標籤:隨機 其他 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通訊