關於TCP MSS值

來源:互聯網
上載者:User

From:http://blog.chinaunix.net/u2/72886/showart_1802033.html

中低端路
由器

tcp mss


的實現原理


為何經常要在內網口和外網口都要配置
tcp mss 值呢




PC1(192.168.0.1)
―――
Router
――――
Internet
―――-
www
server(238.135.1.1)





建立
tcp
串連的兩端在三向交握時會協商
tcp mss
大小,具體如下:



pc1


syn
報文,其中
option
選項填充的
mss
欄位一般為
1460
,同樣
www server
收到
syn
報文後,會發送
syn

ack
報文應答,
option
選項填充的
mss
欄位也為
1460
;協商雙方會比較
syn

syn+ack
報文中
mss
欄位大小,選擇較小的
mss
作為發送
tcp
分區的大小。通過比較,協商雙方的
tcp mss
都是
1460






對於涉及
mpls l3vpn

pppoe

nat

ipsec

l2tp

gre
等組網,通常由於報文太大需要分區,一般可以
通過設定
tcp mss

決。

針對上例說明
tcp mss
如何?



1、



假設在路由器內網口配置
tcp mss 1200



a)



路由器收到
www server

syn

ack
報文時會修改
option
選項中的
mss
欄位為
1200
,然後再轉寄給
PC1

PC1
收到報文後認為對端的
tcp mss

1200
,這樣
PC1
發送資料給
www server
時會以
1200
作為分區大小;但路由器修改
tcp mss

1200
的操作
www server
是不知道的,因此
www server
還會以
1460
作為分區大小發送報文。





2、



假設再路由器外網口配置
tcp mss 1200



a)



路由器收到
PC1

syn
報文時會修改
option
選項中的
mss
欄位為
1200
,然後再轉寄給
www server
,同樣
www server
發送資料給
PC1
時會以
1200
作為分區大小;同樣
PC1
不知道路由器修改
tcp mss

1200
,因為
PC1
還會以
1460
作為分區大小發送報文。

3、



因此在實現雙向大包傳輸時需要在內外網同時修改
tcp mss

綜上所述:
在路由器介面上配置的



tcp mss
命令僅對出介面方向的

syn
報文和

syn


ack
報文有效,對於入介面方向的

syn


syn


ack
報文無效。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.