1.源端口和目的端口
源端口字段占16比特,用來寫入源端口號。源端口號用來標識發(fā)送該TCP報文段的應用進程。
目的端口字段占16比特,用來寫入目的端口號。目的端口號用來標識接收該TCP報文段的應用進程。
2.序號
當序號增加到最后一個時,下一個序號又回到0。序號字段的值用來指出本TCP報文段數據載荷的第一個字節(jié)的序號。
3.確認序號
指出期望收到對方下一個TCP報文段的數據載荷的第一個字節(jié)的序號,同時也是對之前收到的所有數據的確認。
只有當ACK置為1時,確認號字段才有效,ACK取值為0時,確認號字段無效。TCP規(guī)定:在TCP連接建立后所有傳送的TCP報文段都必須把ACK置1。
4.首部長度
5.保留字段
保留字段占6比特位,保留為今后使用,目前應置為0。
6.窗口字段
用來指出發(fā)送本報文段的一方的接收窗口的大小,即接收緩存的可用空間大小,這表征接收方的接受能力.可以使用接收方接受能力的大小來控制發(fā)送方的數據發(fā)送量,這就是所謂的流量控制.
7.校驗和
檢查整個TCP報文段在傳輸過程中是否出現了誤碼。
8.標志位
(1)SYN
同步標志位(SYN)用于TCP雙方建立連接。
(1)當SYN=1且ACK=0時,表明這是一個TCP連接請求報文段。
(2)若對方同意建立連接,則應在響應的TCP報文段的首部中使SYN=1且ACK=1。
綜上所述,SYN為1的報文段要么是一個連接請求報文段,要么是一個連接響應報文段。
(2)FIN
終止標志位(FIN)用于釋放TCP連接。
當FIN=1時,表明此TCP報文段的發(fā)送方已經將全部數據發(fā)送完畢,現在要求釋放TCP連接。
(3)RST
復位標志位(RST)用于復位TCP連接。
當RST=1時,表明TCP連接中出現嚴重差錯(例如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立連接。
RST置1也可以拒絕一個非法的TCP報文段或拒絕打開一個TCP鏈接。
(4)PSH
推送標志位(PSH)用于提醒對方盡快將報文交付給應用層。
出于效率的考慮,TCP可能會延遲發(fā)送數據或向應用程序延遲交付數據,這樣可以一次處理更多的數據(返回的ACK報文中窗口大小會更大)。但是當兩個應用進程進行交互式的通信時,有時在一端的應用進程希望在鍵入一個命令后立即就能夠收到對方的響應。在這種情況下,應用程序可以通知TCP使用推送(PUSH)操作。
發(fā)送方TCP把PSH置為1,并立即創(chuàng)建一個TCP報文段發(fā)送出去,而不需要積累到足夠多的數組在發(fā)送。
接收方TCP收到PSH為1的TCP報文段,就盡快交付給應用進程,而不再等到接收到足夠多的數據在發(fā)送。
(5)ACK
(6)URG
當URG置為1時,緊急指針字段有效;當URG置為0時,緊急指針字段無效。
16位緊急指針以字節(jié)為單位,用來指明緊急數據的長度。
當發(fā)送方有緊急數據時,可將緊急數據“插隊”到發(fā)送緩存的最前面,并立即封裝到一個TCP報文段中進行發(fā)送。緊急指針會指出本報文段數據載荷部分包含了多長的緊急數據,緊急數據之后是普通數據。
接收方收到緊急標志位為1的TCP報文段,會按照緊急指針字段的值從報文段數據載荷中取出緊急數據并直接上交應用進程,而不必在接收緩存中排隊。
9.選項:
TCP報文段首部除了20字節(jié)的固定部分,還有最大40字節(jié)的選項部分。增添選項可以增加TCP的功能。
最大報文段長度(Maximum Segment Size,MSS)選項:
不要被最大報文段長度的名稱所誤導,MSS用來指出的是TCP報文段有效載荷部分的最大長度,而不是整個TCP報文段的長度。MSS的選擇并不簡單。
>若選擇較小的MSS,網絡的利用率就會降低。設想在極端的情況下,TCP報文段只包含1字節(jié)的數據載荷,但有20字節(jié)的TCP首部,在網絡層封裝成IP數據報時又會添加20字節(jié)的IP首部,為了傳輸1字節(jié)的數據,額外要傳輸共40字節(jié)的 TCP首部和IP首部,到了數據鏈路層還要加上一些開銷,因此網絡的利用率不會超過1/40。
>若選擇很大的MSS,則TCP報文段在網絡層封裝成IP數據報時,有可能要分片成多個短的數據報片。在目的站要將收到的各個短數據報片裝配成原來的TCP報文段,當傳輸出錯時還要進行重傳,這些都會使開銷增大。
一般認為,TCP報文段的MSS應盡可能大些,只要在網絡層將TCP報文段封裝成IP數據報時不需要分片就行。在TCP連接建立的過程中,雙方可以將自己能夠支持的MSS寫入該字段中。在以后的數據傳輸階段,MSS取雙方提出的較小的那個數值。若主機未填寫這一項,則MSS的默認值是536。因此,所有在因特網上的主機都應能夠接受的TCP報文段的長度為20+536=556字節(jié)。
窗口擴大選項:
用來擴大窗口,提高吞吐率。
時間戳選項:有以下兩個功能
>用于計算往返時間(RTT)
>用來處理序號超范圍的情況,又稱為防止序號繞回。文章來源:http://www.zghlxwxcb.cn/news/detail-730232.html
選擇確認選項:
用來實現選擇確認功能。文章來源地址http://www.zghlxwxcb.cn/news/detail-730232.html
到了這里,關于【網絡協議】TCP報文格式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!