python中的socket通訊

來源:互聯網
上載者:User

標籤:隨機   其他   ram   整數   計算   mil   uri   不相容   5.0   

協議的概念

不同的國家說不同的語言人門想溝通就需要用英語,只要有一種大家都認可都遵守的協議即可,這種方式在電腦上要遵守的網路通訊協定叫做TCP/IP協議早期的電腦網路,都是由各廠商自己規定一套協議,IBM、Apple和Microsoft都有各自的網路通訊協定,互不相容為了把全世界的所有不同類型的電腦都串連起來,就必須規定一套全球通用的協議,為了實現互連網這個目標,互連網協議簇(Internet Protocol Suite)就是通用協議標準。因為互連網協議包含了上百種協議標準,但是最重要的兩個協議是TCP和IP協議,所以,大家把互連網的協議簡稱TCP/IP協議

常用的四大協議

鏈路層 ->網路層 -> 傳輸層 ->應用程式層

分化成7層的是

物理層 ->資料連結層  ->網路層 -> 傳輸層 ->    會話層->展示層->應用

tcp/ip 是一個協議組 不是兩層

 

連接埠的概念

在linux系統中,連接埠可以有65536(2的16次方)個之多!

既然有這麼多,作業系統為了統一管理,所以進行了編號,這就是連接埠號碼

連接埠是通過連接埠號碼來標記的,連接埠號碼只有整數,範圍是從0到65535

連接埠(知名連接埠和動態連接埠)

知名連接埠周知的連接埠號碼,範圍從0到1023 好比是一些常用的功能使用的號碼是固定的

動態連接埠的範圍是從1024到65535  這個是不固定的一般隨機分配

查看連接埠 netstat -an

一般都是通過ip地址+連接埠號碼來完成不同的服務

ip地址

用來在網路中標記一台電腦的一串數字,比如192.168.1.1;在本地區域網路上是惟一的。

每一個IP地址包括兩部分:網路地址和主機地址

A類IP地址

一個A類IP地址由1位元組的網路地址和3位元組主機地址組成,網路地址的最高位必須是“0”,

位址範圍1.0.0.1-126.255.255.254

二進位表示為:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110

可用的A類網路有126個,每個網路能容納1677214個主機

B類IP地址

一個B類IP地址由2個位元組的網路地址和2個位元組的主機地址組成,網路地址的最高位必須是“10”,

位址範圍128.1.0.1-191.255.255.254

二進位表示為:10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111110

可用的B類網路有16384個,每個網路能容納65534主機

C類IP地址

一個C類IP地址由3位元組的網路地址和1位元組的主機地址組成,網路地址的最高位必須是“110”

範圍192.0.1.1-223.255.255.254

二進位表示為: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110

C類網路可達2097152個,每個網路能容納254個主機

D類地址用於多點廣播

D類IP地址第一個位元組以“1110”開始,它是一個專門保留的地址。

它並不指向特定的網路,目前這一類地址被用在多點廣播(Multicast)中

多點廣播位址用來一次定址一組電腦

位址範圍224.0.0.1-239.255.255.254

類IP地址

以“1111”開始,為將來使用保留

E類位址保留區,僅作實驗和開發用

私人ip

在這麼多網路IP中,國際規定有一部分IP地址是用於我們的區域網路使用,也就

是屬於私網IP,不在公網中使用的,它們的範圍是:

10.0.0.0~10.255.255.255

 

172.16.0.0~172.31.255.255

 

192.168.0.0~192.168.255.255

注意

IP地址127.0.0.1~127.255.255.255用於迴路測試,

如:127.0.0.1可以代表本機IP地址,用http://127.0.0.1就可以測試本機中配置的Web伺服器。

子網路遮罩

作用:就是將某個IP地址劃分成網路地址和主機地址兩部分子網路遮罩的設定必須遵循一定的規則。與IP地址相同,子網路遮罩的長度也是32位,左邊是網路位,用位元字“1”表示;右邊是主機位,用位元字“0”表示。假設IP地址為“192.168.1.1”子網路遮罩為“255.255.255.0”。其中,“1”有24個,代表與此相對應的IP地址左邊24位是網路號;“0”有8個,代表與此相對應的IP地址右邊8位是主機號。這樣,子網路遮罩就確定了一個IP地址的32位位元字中哪些是網路號、哪些是主機號。這對於採用TCP/IP協議的網路來說非常重要,只有通過子網路遮罩,才能表明一台主機所在的子網與其他子網的關係,使網路正常工作

Socket (通訊端)

網路中進程之間的通訊

TCP/IP協議族已經幫我們解決了這個問題,網路層的“ip地址”可以唯一標識網路中的主機,而傳輸層的“協議+連接埠”可以唯一標識主機中的應用程式(進程)。利用ip地址,協議,連接埠就可以標識網路的進程了,網路中的進程通訊就可以利用這個標誌與其它進程進行互動,實現不同主機間的進程通訊

 

建立一個socket

socket.socket(AddressFamily, Type)

兩個參數Address Family:可以選擇 AF_INET(用於 Internet 處理序間通訊) 或者 AF_UNIX(用於同一台機器處理序間通訊),實際工作中常用AF_INET 其實就是網路屬性裡的tcp/ip

Type:通訊端類型,可以是 SOCK_STREAM(流式通訊端,主要用於 TCP 協議)或者 SOCK_DGRAM(資料通訊端,主要用於 UDP 協議)

 

兩種常用的通訊端

Tcp傳輸慢但是穩定     

Udp傳輸快,但是容易丟包

 

python中的socket通訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.