2.TCP的偏移位:用於表示TCP所傳輸的數據部分應該從TCP包的哪個位開始計算。
3.TCP報文段首部的6個控制位:URG、ACK、PSH、RST、SYN、FIN;下面將對這6個控制位做詳細解釋。
1)緊急URG(URGent)?
當URG=1時,表明緊急指針字段有效。它告訴系統此報文段中有緊急數據,應盡快傳送(相當於高優先級的數據),而不要按原來的排隊順序來傳送。
當URG置1時,發送應用進程就告訴發送方的TCP有緊急數據要傳送。於是發送方TCP就把緊急數據插入到本報文段數據的最前面,而在緊急數據後面的數據仍是普通數據。這時要與手不中緊急指針(Urgent Pointer)字段配合使用。 ?
2)確認ACK(ACKnowledgment)
僅當ACK=1時確認號字段才有效。當ACK=0時,確認號無效。TCP規定,在連接建立後所有傳送的報文段都必須把ACK置1。
3)推送PSH(PuSH)
當兩個應用進程進行交互式的通信時,有時在壹端的應用進程希望在鍵入壹個命令後立即就能夠收到對方的響應。這種情況下,TCP就可以使用推送(push)操作。這時,發送方TCP把PSH置1,並立即創建壹個報文段發送出去。接收方TCP收到PSH=1的報文段,就盡快的(即“推送”向前)交付接收應用進程,而不再等到整個緩存都填滿了後再向上交付。
4)復位RST(ReSeT)
當RST=1時,表明TCP連接中出現嚴重差錯,必須釋放連接,然後再重新建立運輸連接。RST置1還用來拒絕壹個非法的報文段或拒絕打開壹個連接。RST也可稱為重建位或重復位。
5)同步SYN(SYNchronization)
在連接建立時用來同步序號。當SYN=1而ACK=0時,表明這是壹個連接請求報文段。對方若同意建立連接,則應在響應的報文段中使SYN=1和ACK=1。因此,SYN置1就表示這是壹個連接請求或連接接受報文。
6)終止FIN(FINis)
用來釋放壹個連接。當FIN=1時,表明此報文段的發送方的數據已發送完畢,並要求釋放運輸連接。