TCP報文結構網絡協議
TCP報文結構
固定首部長度為20字節,可變部分0~40字節,各字段解釋:
source port number:源端口,16bits,范圍0~65525。
target port number:目的端口,16bits,范圍同上。
sequence number:數據序號,32bits,TCP 連接中傳送的數據流中的每一個字節都編上一個序號。序號字段的值則指的是本報文段所發送的數據的***個字節的序號。
acknoledgement number:確認號,32bits,期望收到對方的下一個報文段的數據的***個字節的序號。
header length:數據偏移,4bits,單位為4字節,它指出報文數據距TCP 報頭的起始處有多遠(TCP報文頭長度?)。
reserved:保留字段(圖中,包含CWR,ECE),6bits,保留今后使用,目前置0處理。
URG:緊急比特,1bit,當 URG=1 時,表明緊急指針字段有效。它告訴系統此報文段中有緊急數據,應盡快傳送(相當于高優先級的數據)。
ACK:確認比特,1bit,只有當 ACK=1 時確認號字段才有效。當 ACK=0 時,確認號無效。
PSH:推送比特,1bit,接收方 TCP 收到推送比特置1的報文段,就盡快地交付給接收應用進程,而不再等到整個緩存都填滿了后再向上交付。
RST:復位比特,1bit,當 RST=1 時,表明 TCP 連接中出現嚴重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。
SYN:同步比特,1bit,同步比特 SYN 置為 1,就表示這是一個連接請求或連接接受報文。
FIN:終止比特,1bit,用來釋放一個連接。當FIN=1 時,表明此報文段的發送端的數據已發送完畢,并要求釋放運輸連接。
window size:窗口大小,16bits,窗口字段用來控制對方發送的數據量,單位為字節。TCP 連接的一端根據設置的緩存空間大小確定自己的接收窗口大小,然后通知對方以確定對方的發送窗口的上限。
checksum:檢驗和,16bits,檢驗和字段檢驗的范圍包括首部和數據這兩部分。在計算檢驗和時,要在 TCP 報文段的前面加上 12 字節的偽首部。
urgent pointer:緊急指針字段,16bits,緊急指針指出在本報文段中的緊急數據的***一個字節的序號。
options:選項字段,長度可變。TCP 首部可以有多達40字節的可選信息,用于把附加信息傳遞給終點,或用來對齊其它選項。
抓取TCP報文