鄭州龍華小學(xué)網(wǎng)站建設(shè)今天最新的新聞頭條新聞
四元組,簡單理解就是在TCP協(xié)議中,去確定一個客戶端連接的組成要素,它包括源
IP地址、目標(biāo)IP地址、源端口號、目標(biāo)端口號。
正常情況下,我們對于網(wǎng)絡(luò)通信的認(rèn)識可能是這樣(如圖)。
服務(wù)端通過Server?Socket建立一個對指定端口號的監(jiān)聽,比如8080。客戶端通過目標(biāo)ip和端口就可以和服務(wù)端建立一個連接,然后進(jìn)行數(shù)據(jù)傳輸。
但是我們知道的是,一個Server端可以接收多個客戶端的連接,比如像這種情況(如圖)。
當(dāng)多個客戶端連接到服務(wù)端的時候,服務(wù)端需要去識別每一個連接。
并且(如圖),TCP是全雙工協(xié)議,也就是說數(shù)據(jù)允許在連接的兩個方向上同時傳輸,因此這里的客戶端,如果是反向通信,它又變成了服務(wù)端。
所以基于這兩個原因,就引入了四元組的設(shè)計,也就是說,當(dāng)一個客戶端和服務(wù)端建立一個TCP連接的時候,通過源IP地址、目標(biāo)IP地址、源端口號、目標(biāo)端口號來確定一個唯一的TCP連接。因為服務(wù)器的IP和端口是不變的,只要客戶端的IP和端口彼此不同就OK了。
比如像這種情況(如圖),同一個客戶端主機(jī)上有三個連接連到Server端,那么這個時候源IP相同,源端口號不同。此時建立的四元組就是(10.23.15.3,59461,192.168.8.135,8080)
其中,源端口號是每次建立連接的時候系統(tǒng)自動分配的。