MSS[最大報文段長度]

MSS[最大報文段長度]

最大報文段長度MSS選項是TCP協定定義的一個選項,MSS選項用於在TCP連線建立時,收發雙方協商通信時每一個報文段所能承載的最大數據長度。

TCP選項

選項位於報文段的最後,並且長度必須為位元組的整數倍。選項欄位是一個選項的列表,可包含多個選項,每個選項可出現在任何位元組的邊界上。列表中的選項包括兩種格式:一種是單位元組選項;另一種是可變長的選項。單位元組選項由一個位元組的選項類型(Option Kind)構成。變長選項則包含了1位元組的選項類型,1位元組的選項長度(Option Length)和一個可變長的選項數據(Option data)。TCP協定定義的選項主要包括:

(1)選項類型0,單位元組選項,表示選項列表的結束。

(2) 選項類型1,單位元組選項,無操作,該選項可用在兩個選項之間,用於選項結構的對齊。

(3)選項類型2,最大報文段長度(MSS,Maximum Segment Size)選項。

(4)選項類型3,視窗擴大因子選項。

(5)選項類型8,時間戳選項。

除此之外,選項類型為4、5、6、7的用於ACK選擇和回顯。其中回顯選項已經被時間戳選項所替代。類型11、12、13的選項用於TCP事物(T/TCP)。

最大報文段長度選項

最大報文段長度選項MSS,MSS選項用於在TCP連線建立時,收發雙發協商通信時每一個報文段所能承載的最大數據長度。這個選項由4個位元組構成:第1位元組(選項類型)為2;第2位元組(選項長度)為4,然後是一個16比特的選項數據,指出報文段中允許的最大數據長度(以位元組為單位)。MSS選項只能在初始化連線請求(SYN=1)的報文段中使用。在報文段中傳送MSS選項的終端利用該選項來對端TCP實體通告本端點在一個報文段中所能夠接受的最大數據長度。若沒有指定這個選項意味著本終端能夠接受任何長度的報文段。

在一個TCP連線上允許各種長度報文段的傳輸,因此連線的兩端利用MSS選項來協商報文段中最大數據長度時必要的。例如在一個小型系統中由於空間限制,TCP僅能提供較小的接受緩衝區。它與其他系統通信時,就必需互相協商一個合適的MSS,使對端發出的報文段中的數據能夠存入其接受緩衝器。由於TCP連線的連個端點可能存在的差異,在一個TCP連線的兩個數據流方向上常常可能採用不同的MSS值。

進行MSS協商的另一個好處是能夠提高網路頻寬的利用率。在一個區域網路中進行通信的兩個節點可以選擇一個比較大的MSS,使得報文段封裝成IP分組時能夠充分利用網路的頻寬。但是實際上在一般的Intenet 環境中,為連線選擇一個合適的MSS是相當困難的。這是因為MSS的取值過大或過小都會影響網路和TCP的性能。如果報文段太小,將會大大降低網路的利用率。但如果報文段太大也可能影響網性能。這是由於長IP分組在網路中傳輸時往往需要被分片傳輸。分片和重組的過程自然將帶來一定的網路處理開銷。而且IP分組被分片後獨立傳輸,任何一個分片出現錯誤或丟失都將導致整個分組被丟棄,這也意味著整個報文段丟失,TCP只能對整個IP分組進行確認和重傳。由於在IP通信子網中分組丟失的機率總是存在的,因此MSS的增加所導致的分片將會使報文段成功達到目的端的機率下降,從而影響TCP的性能和和降低網路的吞吐率。

從理論上講,理想的MSS應該能儘可能多地承載用戶數據,勇士在傳輸通路上又可能避免分片。但實際中確定這樣一個最佳的MSS很困難。一種通路MTU發現技術可以幫助TCP來確定最佳的MSS值。但是,仍然有許多TCP的實現並不能提供這樣的鞥。同時,由於Internet中採用的是動態的路由選族,CP報文段的傳輸通路可能不斷地發生改變,這使動態地計算最佳MSS更加困難。

相關詞條

熱門詞條

聯絡我們