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