固定首部長度爲20字節,可變部分0~40字節,各字段解釋:緩存
source port number:源端口,16bits,範圍0~65525。ide
target port number:目的端口,16bits,範圍同上。學習
sequence number:數據序號,32bits,TCP 鏈接中傳送的數據流中的每個字節都編上一個序號。序號字段的值則指的是本報文段所發送的數據的第一個字節的序號。spa
acknoledgement number:確認號,32bits,指望收到對方的下一個報文段的數據的第一個字節的序號。指針
header length:數據偏移,4bits,單位爲4字節,它指出報文數據距TCP 報頭的起始處有多遠(TCP報文頭長度?)。blog
reserved:保留字段(圖中,包含CWR,ECE),6bits,保留從此使用,目前置0處理。進程
URG:緊急比特,1bit,當 URG=1 時,代表緊急指針字段有效。它告訴系統此報文段中有緊急數據,應儘快傳送(至關於高優先級的數據)。get
ACK:確認比特,1bit,只有當 ACK=1 時確認號字段纔有效。當 ACK=0 時,確認號無效。同步
PSH:推送比特,1bit,接收方 TCP 收到推送比特置1的報文段,就儘快地交付給接收應用進程,而再也不等到整個緩存都填滿了後再向上交付。it
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字節的可選信息,用於把附加信息傳遞給終點,或用來對齊其它選項。
抓包驗證一下:
先學習清楚它的結構在分析工做原理、