TCP頭部結構

2021-08-29 01:45:11 字數 2040 閱讀 9477

tcp頭部資訊出現再每個tcp報文段中,用於指定通訊的 源端埠,目的埠,管理tcp連線等。

1、tcp固定頭部結構

16位埠號:告知主機該報文段是來自**(源埠)以及傳給哪個上層協議或應用程式(目的埠)的。請注意:進行tcp通訊時,客戶端通常使用系統自動選擇的臨時埠號,而伺服器則使用知名服務埠號。

32位序號(seq):一次tcp通訊(從tcp連線建立到斷開)過程中某乙個傳輸方向上的位元組流的每個位元組的編號。

前面一張圖是相對值,後面是真正的序號,圖中的7是1+6("hello"6個位元組)就是所說的位元組流的每個位元組的編號

32位確認號(ack):用作對另一方傳送來的tcp報文段的響應。其值是收到的tcp報文段的序號值加1。

4位頭部長度:標識該tcp頭部有多少個32bit字(4位元組)。因為4位最大能表示15,所以tcp頭部最長是60位元組。

6位標誌位:1)urg:表示緊急指標是否有效  2)ack:表示確認號是否有效  3)psh:提示接收端應用程式應該立即從tcp接收緩衝區中讀走資料,為接收後續資料騰出空間(如果應用程式不將接收到的資料讀走,它們就會一直停留在tcp接收緩衝區中) 4)rst:表示要求對方重新建立連線,我們稱攜帶rst標誌的tcp報文段為復位報文段   5)syn:表示請求建立乙個連線。我們稱攜帶syn標誌的tcp報文段為同步報文段   6)fin:表示:通知對方本端要關閉連線了,我們稱攜帶fin的tcp報文段為結束報文段

16位視窗大小:是tcp流量控制的乙個手段,該處的視窗指的是接收通告視窗。它告訴對方本端的tcp接收緩衝區還能容納多少位元組的資料,這樣對方就可以控制傳送資料的速度

16位校驗和:由傳送端填充,接收端對tcp報文段執行crc演算法以檢驗tcp報文段在傳輸過程中是否損壞。注意:這個校驗不僅包括tcp頭部,也包括資料部分,這也是tcp可靠傳輸的乙個重要保障

16位緊急指標:是乙個正的偏移量。tcp的緊急指標是傳送端向接收端傳送緊急資料的方法

2、tcp頭部選項:tcp頭部的最後乙個選項欄位是可變長的可選資訊。這部分最多包含40位元組,因為tcp頭部最長是60位元組(其中還包含前面討論的20位元組的固定部分),下圖是tcp頭部選項結構

選項的第乙個欄位kind說明選項的型別。有的tcp選項沒有後面的兩個字段,僅包含1個位元組的kind欄位。第二個欄位length(如果有的話)指定該選項的總長度,該長度包括kind欄位和length欄位佔據的2位元組。第三個欄位info(如果有的話)是選項的具體資訊。常見的tcp選項有7種,如下:

kind = 0 是選項表結束選項。

kind = 1 是空操作(nop)選項,沒有特殊含義,一般用於將tcp選項的總長度填充為4位元組的整數倍

kind = 2 是最大報文段長度選項

kind = 3 是視窗擴大因子選項,該選項只能出現在同步報文段中,否則將被忽略

kind = 4 是選擇確認選項,該選項用在連線初始化時,表示是否支援sack技術,因為tcp通訊時,如果某個tcp報文段丟失,則tcp模組會重傳最後被確認的tcp報文段後續的所有報文段,這樣原先已經正確傳輸的ycp報文段也可能重**送,從而降低了tcp效能,所以利用sack技術,使tcp模組只重新傳送丟失的tcp報文段,不用傳送所有未被確認的tcp報文段

kind = 5 是sack實際工作的選項,該選項的引數告訴傳送方本端已經接收到並快取的不連續的資料塊,從而讓傳送端可以據此檢查並重複丟失的資料塊

kind = 8 是時間戳選項,該選項提供了較為準確的計算通訊雙方之間的迴路時間的方法,從而為tcp流量控制提供重要的資訊。

TCP頭部結構

16位的字段,定義了傳送這個報文段的主機中的應用程式的埠號。16位的字段,定義了接收這個報文段的主機中的應用程式的埠號。32位的字段,定義了指派給本報文段第乙個資料位元組的編號。為了保證連線性,要傳送的每乙個位元組都要編上號。序號可以告訴終點,報文段中的第乙個位元組是這個序列中的哪乙個位元組。在建立...

IP資料報頭部,TCP頭部,偽TCP頭部結構定義

我自己整理出來的彙編版本 ip資料報頭部結構定義 ip head struct h lenver db 4位ip版本號 4位首部長度 tos db 8位服務型別 tcp len dw 16位tcp資料報總長度 ident dw 16位標識 frag and flags dw 3位分片標誌 13位分片...

TCP頭部選項

tcp頭部的最後乙個選項字段 options 是可變長的可選資訊。這部分最多包含40位元組,因為tcp頭部最長是60位元組 其中還包含前面討論的20位元組的固定部分 典型的tcp頭部選項結構如圖3 4所示。選項的第乙個欄位kind說明選項的型別。有的tcp選項沒有後面兩個字段,僅包含1位元組的kin...