linux mtu是指網路的最大傳輸單元,其英文全名是“Maximum Transmission Unit”,是指一種通訊協定的某一層上面所能通過的最大資料包大小,最大傳輸單元這個參數通常與通訊介面有關。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
linux mtu是什麼?
Linux上合理設定網路卡的MTU值
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等
推薦學習:《Linux影片教學》
以上是linux mtu是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!