tcp報文首部值含義?
首部固定部分各字段的意義如下:1.源端口和目的端口,各占2個字節。
2.序號:占4個字節,序號范圍為0到2的32次方-1,序號增加到2的32次方-1之后,下一個序號變為0,在一個TCP連接中傳送的字節流中的每一個字節都按順序編號。首部中的序號字段值指的是本報文段所發送的數據的第一個字節的序號。可對4GB的數據進行編號。在一般情況下可保證當序號重復使用時,舊序號的數據早已通過網絡到達終點了。
3.確認號:占4字節,是期望收到對方下一個報文段的第一個數據字節的序號。記住:若確認號是N,則表明:到序號N-1為止的所有數據都已正確收到。
4.數據偏移:占4位,它指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠,這個字段實際上是指出TCP報文段的首部長度。
6.保留:占6位。保留為今后使用,目前置為0
7.緊急URG(URGent):當URG=1時,表明緊急字段有效,告訴系統此報文中有緊急數據,應盡快傳送。于是發送方TCP就把緊急數據插入到本報文段數據的最前面,而在緊急數據后面的數據仍是普通數據。這時要與首部中緊急指針字段配合使用。
8.確認ACK(ACKnowlegment)僅當ACK=1時確認號字段才有效,TCP規定,連接建立后所有傳送的報文段都必須把ACK置1.
9.推送PSH(PuSH):當兩個應用進程進行交互式的通信時,有時在一端的應用進程希望在鍵入一個命令后立即就能收到對方的響應。在這種情況下,TCP就可以使用推送操作。
10.復位RST(ReSeT):當RST=1時,表明TCP連接中出現嚴重錯誤,必須釋放連接,然后再重新建立運輸連接。
11.同步SYN,在連接建立時用來同步序號,當SYN=1而ACK=0時,表明這是一個連接請求報文段。對方若同意時,則應在響應的報文段中使SYN=1和ACK=1,因此,SYN置1就表示這是一個連接請求或連接接受報文。
12.終止FIN,用來釋放一個連接,當FIN=1時,表示此報文段的發送方的數據已發送完畢,并要求釋放運輸連接。
13.窗口,占2個字節,窗口指的是發送本報文段的一方的接收窗口,不是自己的發送窗口,告訴對方:從本報文段首部中的確認號算起,接收方目前允許對方發送的數據量。窗口值作為接受方讓發送方設置其發送窗口的依據。
14.校驗和,占2字節。校驗和字段檢驗的范圍包括首部和數據這兩部分。
15.緊急指針:占2個字節,緊急指針僅在URG=1時才有意義,它指出本報文段中的緊急數據的字節數。當所有緊急數據處理完畢時,TCP就告訴應用程序恢復到正常操作。值得注意的是,即使窗口為0時也可發送緊急數據。
15.選項:長度可變,最長可達40字節,當沒有選項時,TCP的首部長度是20字節。
最大報文段長度MSS,MSS是指每一個TCP報文段中的數據字段的最大長度。