TCP最初只規定了一種選項
發布時間:2014/9/6 20:45:52 訪問次數:1444
選項 長度可變,最長可達40字節。當沒有使用“選項”時,TCP的首部長度是20字節。
TCP最初只規定了一種選項, MSS5131-124MLC即最大報文段長度MSS (Maximum Segment Size) [RFC879]。請注意MSS這個名詞的含義。MSS是每一個TCP報文段中的數據字段的最大長度。數據字段加上TCP首部才等于整個的TCP報文段。所以MSS并不是整個TCP報文段的最大長度,麗是“TCP報文段長度減去TCP首部長度”。
為什么要規定一個最大報文段長度MSS呢?這并不是考慮接收方的接收緩存可能放不卜TCP報文段中的數據。實際上,MSS與接收窗口值沒有關系。我們知道,TCP報文段的數據部分,至少要加上40字節的首部(TCP首部20字節和lP首部20字節,這里都還沒有考慮首部中的選項部分),才能組裝成一個IP數據報。若選擇較小的MSS長度,網絡的利用率就降低。設想在極端的情況下,當TCP報文段只含有1字節的數據時,在IP層傳輸的數據報的開銷至少有40字節(包括TCP報文段的首部和IP數據報的首部)。這樣,對網絡的利用率就不會超過l/41。到了數據鏈路層還要加上一些開銷。但反過來,若TCP報文段非常長,那么在lP層傳輸時就有可能要分解成多個短數據報片。在終點要把收到的各個短數據報片裝配成原來的TCP報文段。當傳輸出錯時還要進行重傳。這些也都會使開銷增大。
因此,MSS應盡可能大些,只要在lP層傳輸時不需要再分片就行。由于lP數據報所經歷的路徑是動態變化的,因此在這條路徑上確定的不需要分片的MSS,如果改走另一條路徑就可能需要進行分片。因此最佳的MSS是很難確定的。在連接建立的過程中,雙方都把自己能夠支持的MSS寫入這一字段,以后就按照這個數值傳送數據,兩個傳送方向町以有不同的MSS值“。。若主機未填寫這一項,則MSS的默認值是536字節長。因此,所有在因特網上的主機都應能接受的報文段長度是536 +20(固定首部長度)=556字節。
選項 長度可變,最長可達40字節。當沒有使用“選項”時,TCP的首部長度是20字節。
TCP最初只規定了一種選項, MSS5131-124MLC即最大報文段長度MSS (Maximum Segment Size) [RFC879]。請注意MSS這個名詞的含義。MSS是每一個TCP報文段中的數據字段的最大長度。數據字段加上TCP首部才等于整個的TCP報文段。所以MSS并不是整個TCP報文段的最大長度,麗是“TCP報文段長度減去TCP首部長度”。
為什么要規定一個最大報文段長度MSS呢?這并不是考慮接收方的接收緩存可能放不卜TCP報文段中的數據。實際上,MSS與接收窗口值沒有關系。我們知道,TCP報文段的數據部分,至少要加上40字節的首部(TCP首部20字節和lP首部20字節,這里都還沒有考慮首部中的選項部分),才能組裝成一個IP數據報。若選擇較小的MSS長度,網絡的利用率就降低。設想在極端的情況下,當TCP報文段只含有1字節的數據時,在IP層傳輸的數據報的開銷至少有40字節(包括TCP報文段的首部和IP數據報的首部)。這樣,對網絡的利用率就不會超過l/41。到了數據鏈路層還要加上一些開銷。但反過來,若TCP報文段非常長,那么在lP層傳輸時就有可能要分解成多個短數據報片。在終點要把收到的各個短數據報片裝配成原來的TCP報文段。當傳輸出錯時還要進行重傳。這些也都會使開銷增大。
因此,MSS應盡可能大些,只要在lP層傳輸時不需要再分片就行。由于lP數據報所經歷的路徑是動態變化的,因此在這條路徑上確定的不需要分片的MSS,如果改走另一條路徑就可能需要進行分片。因此最佳的MSS是很難確定的。在連接建立的過程中,雙方都把自己能夠支持的MSS寫入這一字段,以后就按照這個數值傳送數據,兩個傳送方向町以有不同的MSS值“。。若主機未填寫這一項,則MSS的默認值是536字節長。因此,所有在因特網上的主機都應能接受的報文段長度是536 +20(固定首部長度)=556字節。
上一篇:MSS5131-123MLC
上一篇:窗口擴大選項是為了擴大窗口