合理設定作業系統網路卡的MTU值

安全劍客發表於2019-08-16
MTU:是網路的最大傳輸單元,通訊術語:最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通訊協議的某一層上面所能透過的最大資料包大小(以位元組為單位)。最大傳輸單元這個引數通常與通訊介面有關。
當MTU不合理時會造成如下問題

1.本地MTU值大於網路MTU值時,本地傳輸的"資料包"過大導致網路會拆包後傳輸,不但產生額外的資料包,而且消耗了“拆包、組包”的時間。

2.本地MTU值小於網路MTU值時,本地傳輸的資料包可以直接傳輸,但是未能完全利用網路給予的資料包傳輸尺寸的上限值,傳輸能力未完全發揮。

什麼是合理的MTU值

讓本地MTU值與網路的MTU值一致,以致於不會出現資料包的大小超過網路傳輸的MTU值,而不得不進行拆包,然後組包,再進行轉發,所謂合理的設定MTU值,就是讓本地的MTU值與網路的MTU值一致,既能完整發揮傳輸效能,又不讓資料包拆分。

怎麼探測合理的MTU
linux下探測MTU值
ping -s 1460 -M do baidu.com
含義:傳送大小包大小是1460(+28)位元組,禁止路由器拆分資料包。
windows下探測MTU值
ping -f -l 1460 baidu.com
回覆結果

1.如果正常回復,說明網路允許最大MTU就是1500位元組,與系統預設相同,只需將自己的路由的MTU也設定為1500即可。

2.如果沒正常回復,說明資料包大小超過了網路限定的MTU大小。需要減小探測包大小再次嘗試。

如何修改MTU值
linux臨時修改
ifconfig eth0 mtu 1488 up
為什麼mtu值是探測出來的值加上28

因為ping使用icmp協議,你指定的探測值是資料包資料淨荷的長度,還需要加上20位元組的ip頭部,和8位元組的icmp封裝

#MTU設定不正確可能會造成什麼問題(平時都是預設1500)
	第一:使用pptp後,未將伺服器上mtu改小,可能造成頻寬跑不上去
	第二:使用GRE後,未將伺服器上mtu改小,可能造成部分網站無法開啟,如百度,hao123等


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2653888/,如需轉載,請註明出處,否則將追究法律責任。

相關文章