TCP頭部
源端口 |
目的端口 |
||||||||
順序號 |
|||||||||
確認號 |
|||||||||
|
窗口 |
||||||||
校驗和 |
緊急指針
|
||||||||
選項和填充 |
|||||||||
數據 |
TCP協議通過使用“端口”來標識源端和目標端的應用進程。端口號可以使用0到65535之間的任何數字(其中0-1023端口屬於公認端口,綁定一些服務)。在收到服務請求時,操作系統動態地為客戶端的應用程序分配端口號。
端口號:用來識別不同應用進程
源端口:標識報文的返回地址,即報文來源的地方(16bit)
目的端口:明確接收的計算上的應用接口(16bit)
順序號:用來標識從TCP源端向TCP目標端發送的數據字節流,它表示在這個報文段中的第一個數據字節。(32bit)
確認號:ACK標志為1時,確認號字段有效。它包含目標端所期望收到源端的下一個數據字節。(32bit)
頭部長度:給出頭部占32比特的數目。如果沒有任何選項字段,TCP頭部長度為20字節;最多可以有60字節的TCP頭部。(4bit)
標志位字段(U、A、P、R、S、F):各比特的含義如下(6bit):
URG:緊急指針(urgent pointer)有效。(1bit)
ACK:確認序號(acknowledgement )有效。(1bit)
PSH:傳送(push)接收方應該盡快將這個報文段交給應用層。(1bit)
RST:(reset) 重建連接。(1bit)
SYN:(synchronous)發起一個連接。(1bit)
FIN:(finish結束)釋放一個連接。(1bit)
窗口:此字段用來進行流量控制。單位為字節數,這個值是本機期望一次接收的字節數。(16bit)
校驗和:占16比特。對整個TCP報文段,即TCP頭部和TCP數據進行校驗和計算,並由目標端進行驗證。(16bit)
緊急指針字段:占16比特。它是一個偏移量,和序號字段中的值相加表示緊急數據最后一個字節的序號。(16bit)
選項和填充:可能包括"窗口擴大因子"、"時間"等選項。(32bit)