1)源端口號(hào)和目的端口號(hào)這個(gè)字段均為16位的長度嗤形,表示發(fā)送端和接收端的端口尖淘,用于確認(rèn)發(fā)送端和接收端的應(yīng)用程序谷羞。發(fā)送端的IP地址和斷就好及接收端的IP地址和端口號(hào)可以確認(rèn)一個(gè)在Internet上的TCP連接寞奸。
2)序列號(hào)序列號(hào)是一個(gè)32位長度的字段吃溅,表示分配給TCP包的編號(hào)。序列號(hào)用來表示應(yīng)用程序從TCP的發(fā)送端到接收端發(fā)送的字節(jié)流凌箕。當(dāng)TCP開始連接的時(shí)候發(fā)哦少年宮一個(gè)序列號(hào)給接收端拧篮,連接成功后,這個(gè)序列號(hào)作為初始的序列號(hào)ISN(Initial Sequence Number)牵舱。建立連接成功后發(fā)送的第一個(gè)字節(jié)的序列號(hào)為ISN+1串绩,之后發(fā)送數(shù)據(jù)ISN將按照字節(jié)的大小進(jìn)行遞增。序列號(hào)是一個(gè)32位的無符號(hào)數(shù)芜壁,到達(dá)2的32此房減1之后從0開始礁凡。
3)確認(rèn)號(hào)發(fā)送方對(duì)發(fā)送的首字節(jié)進(jìn)行了編號(hào)高氮,當(dāng)接收方成功接收后,發(fā)送回接收成功的序列號(hào)+1表示確認(rèn)把篓,發(fā)送方再次發(fā)送的時(shí)候從確認(rèn)號(hào)開始纫溃。
4 )頭部長度表示TCP頭部的長度腰涧,由于TCP的數(shù)據(jù)有可選字段韧掩,頭部長度用于表示頭部的長度。此字段的長度為4位窖铡,表示的是以32位長的數(shù)據(jù)疗锐。因此TCP的頭部最長為60個(gè)字節(jié),如果沒有可選字段通常為20個(gè)字節(jié)费彼。
5)保留位6位長度沒有使用滑臊,必須設(shè)為0.
6)控制位6b,用作控制位,可以多個(gè)位一起設(shè)置箍铲。
TCP/IP 的三揮四握
三次握手
第一次握手:建立連接時(shí)雇卷,客戶端發(fā)送syn包(syn=j)到服務(wù)器,
并進(jìn)入SYN_SENT狀態(tài)颠猴,等待服務(wù)器確認(rèn)关划;SYN:同步序列編號(hào)
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1)翘瓮,
同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k)贮折,即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)资盅;
第三次握手:客戶端收到服務(wù)器的SYN+ACK包调榄,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1)此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài)呵扛,完成三次握手
四次揮手
四次揮手
別名連接終止協(xié)議每庆。其性質(zhì)為終止協(xié)議
(1) TCP客戶端發(fā)送一個(gè)FIN,用來關(guān)閉客戶到服務(wù)器的數(shù)據(jù)傳送今穿。
(2) 服務(wù)器收到這個(gè)FIN缤灵,它發(fā)回一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1荣赶。和SYN一樣凤价,一個(gè)FIN將占用一個(gè)序號(hào)
(3) 服務(wù)器關(guān)閉客戶端的連接,發(fā)送一個(gè)FIN給客戶端拔创。
(4) 客戶端發(fā)回ACK報(bào)文確認(rèn)利诺,并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1。