TCP首部格式

2021-09-27 04:45:15 字數 1257 閱讀 1201

先看tcp報文段的格式,如下;

tcp報文段首部的前20個位元組是固定的,後面有4n位元組是根據需要而增加的選項。因此tcp報文段的最小長度為20個位元組。

首部固定部分的各字段的意義如下:

2、序號:佔4個位元組,序號的範圍為[0,4284967296]。由於tcp是面向位元組流的,在乙個tcp連線中傳送的位元組流中的每乙個位元組都按順序編號,首部中的序號欄位則是指本報文段所傳送的資料的第乙個位元組的序號。另外,序號是迴圈使用的,當序號增加到最大值時,下乙個序號就又回到了0。

4、頭部長度:tcp報文段的頭部長度,它指出tcp報文段的資料部分的起始位置與tcp報文段的起始位置的距離。頭部長度佔4個位元組,但它的單位是32位字,即以4位元組為計算單位,因此頭部長度的最大值為15*4=60個位元組,這就意味著選項的長度不超過40個位元組。

5、保留位:必須為0.

6、下面的六個控制位說明報文段的性質:

1)urg:與首部中的緊急指標字段配合使用。urg為1時,表明緊急指標字段有效,傳送應用程序告訴傳送方的tcp有緊急資料要傳送,於是傳送方tcp就把緊急資料插入到本報文段資料的最前面,而其後面仍是普通資料。

2)ack:僅當ack=1時確認號字段才有效,當ack=0時,確認號無效。tcp規定,在連線建立後所有的傳送報文段都必須把ack置1。

3)psh:如果傳送的報文段中psh為1,則接收方接受到該報文段後,直接將其交付給應用程序,而不再等待整個快取都填滿後再向上交付。

4)rst:rst=1時,表明tcp連線**現嚴重差錯,必須釋放連線,然後重新建立運輸連線。

5)syn:同步序號,用來發起乙個連線。當syn=1而ack=0時,表明這是乙個連線請求報文段,若對方同意建立連線,則應在響應的報文段中使syn=1和ack=1。

6)fin:用來釋放乙個連線。當fin=1時,表明此報文段的傳送方的資料已傳送完畢,並要求釋放連線。

7、視窗:接收方讓傳送方下次傳送報文段時設定的傳送視窗的大小。

8、校驗和:校驗的字段範圍包括首部和資料這兩部分。

9、緊急指標:緊急指標當urg=1時才有效,它指出本報文段中的緊急資料的位元組數。值得注意的是,即使視窗為0時,也可傳送緊急資料。

10、選項與填充:選項應該為4位元組的整數倍,否則用0填充。最常見的可選字段是最長報文大小mss(maximum segment size),每個連線方通常都在通訊的第乙個報文段中指明這個選項。它指明本端所能接收的最大長度的報文段。該選項如果不設定,預設為536(20+20+536=576位元組的ip資料報),其中ip首部和tcp首部各20個位元組,而internet 上標準的mtu (最小)為576b。  

TCP 首部格式

源埠 表示傳送端埠,字段長度16位。目標埠 表示接收端埠,字段長度16位。序列號 sequence number 字段長32位。指傳送資料的位置。每傳送一次資料,就會累加一次該資料位元組的大小。序列號不會從0或1開始,建立連線時計算機隨機生成初始值,通過syn包傳給接收端主機。然後將每 過去的位元組...

TCP首部報文段格式

最近 計算機網路 這本書看到了傳輸層的 tcp 協議,因為tcp 的全部功能都體現在它的首部中,因此覺得有必要將這些知識梳理一下。首先tcp 是面向位元組流的。這個流指的是流入到程序或從程序流出的位元組序列。面向位元組流的含義是 應用程式與 tcp 的互動是一次乙個資料塊 大小不等 但是 tcp 把...

TCP報文的首部格式

tcp 長度不一 tcp 協議是能夠實現資料的分段傳輸,流量控制,可靠傳輸,擁幫浦控制等功能,因此tcp報文的首部要比udp的報文首部欄位要多,並且首部長度不固定。2個位元組所能表達的數 65536 埠號範圍是0 65535.2 16 65536 tcp的分用功能是通過埠實現的。4 8 32.資料偏...