在了解TCP首部各個欄位的意義後,我們就能更清楚的了解TCP協定的。 TCP首部位元組有20個位元組是固定了,後面還有可選選項。 TCP是以32位元(4位元組)對齊的。
來源連接埠和目的連接埠:TCP是透過通口號來進行應用進程間的通訊的。
序號:佔32位,序號的範圍是0~(2^32-1),當序號變成2^32-1後,下一個序號就要重新從0開始了。假如一個報文段的序號為1001,它的長度為100字節,那麼下一個報文段的序號就是1101。
確認號碼:佔32位元。確認號是對收到的分組進行確認的。假如A向B發送了一個報文段,A的序號為101,報文段長度為100字節,那麼B收到該報文段後,就需要對A發送確認報文段,這個確認報文段裡的確認號為201。有以下公式:
如果確認號為N 1,那麼表示到序號N位置的所有資料都已收到。
資料偏移:此欄位即表示tcp首部的長度,此欄位佔4位,單位為4位元組。所以,一個TCP的首部最大為60位元組。
六個控制位元:每個控制位元都只佔一位。
UGR:緊急字段,當該值為1時,表示此報文段含有緊急數據,應優先發送。此欄位需要和後面會說到的緊急指針配合使用。
ACK:確認欄位。此欄位在建立連線和斷線時會用到,傳送資料階段一律為1。
PSH:推送欄位。為1表示是帶有push標誌的數據,指示接收方在接收到該報文段以後,應盡快將這個報文段交給應用程序,而不是在緩衝區排隊。
RST:重設連線字段志。用於重置因主機崩潰或其他原因而出現錯誤的連線。或用於拒絕非法的報文段和拒絕連線請求。
SYN:同步欄位。用於建立連線時使用。
FIN:終止欄位。用於釋放連線時使用。
視窗:佔16位元。視窗值是的範圍是【0,2^16-1】之間的整數。注意,它表示的是接受窗口,表示允許接受的位元組數。例如,B的向A發送了一個確認報文段,該報文段的確認號為101,窗口值為1000.那麼表示B下一個接受的報文段序號應該是101,且報文段長度不能超過1000位元組。
校驗與:佔16位數。用來檢驗報文段有沒有錯誤。
緊急指標:佔16位。只有當URG字段為1時,該字段才有意思。它表示緊急資料的長度
相關推薦:《linux影片教學》
以上是TCP資料段的首部格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!