天天看點

[TCP/IP] TCP的封包頭

[TCP/IP] TCP的封包頭

1.源端口和目的端口:各占2個位元組,分别寫入源端口和目的端口;

2.序列号:占4個位元組,TCP連接配接中傳送的位元組流中的每個位元組都按順序編号。例如,一段封包的序号字段值是 301 ,而攜帶的資料共有100字段,顯然下一個封包段(如果還有的話)的資料序号應該從401開始;

3.确認号:占4個位元組,是期望收到對方下一個封包的第一個資料位元組的序号。例如,B收到了A發送過來的封包,其序列号字段是501,而資料長度是200位元組,這表明B正确的收到了A發送的到序号700為止的資料。是以,B期望收到A的下一個資料序号是701,于是B在發送給A的确認封包段中把确認号置為701;

4.資料偏移報頭長度:占4位,它指出TCP封包的資料距離TCP封包段的起始處有多遠;

5.保留:占6位,保留今後使用,但目前應都位0;

6.标志位

同步SYN,在連接配接建立時用來同步序号。當SYN=1,ACK=0,表明是連接配接請求封包,若同意連接配接,則響應封包中應該使SYN=1,ACK=1;

确認ACK,僅當ACK=1時,确認号字段才有效。TCP規定,在連接配接建立後所有封包的傳輸都必須把ACK置1;

終止FIN,用來釋放連接配接。當FIN=1,表明此封包的發送方的資料已經發送完畢,并且要求釋放;

緊急URG,當URG=1,表明緊急指針字段有效。告訴系統此封包段中有緊急資料;

推送PSH,當兩個應用程序進行互動式通信時,有時在一端的應用程序希望在鍵入一個指令後立即就能收到對方的響應,這時候就将PSH=1;

複位RST,當RST=1,表明TCP連接配接中出現嚴重差錯,必須釋放連接配接,然後再重建立立連接配接;

7.視窗大小:占2位元組,指的是通知接收方,發送本封包你需要有多大的空間來接受;

8.檢驗和:占2位元組,校驗首部和資料這兩部分;

9.緊急指針:占2位元組,指出本封包段中的緊急資料的位元組數;

10.選項:長度可變,定義一些其他的可選的參數。

[TCP/IP] TCP的封包頭