MTU是Maximum Transmission Unit的縮寫。意思是網絡上傳送的最大數據包。MTU的單位是字節。大部分網絡設備都是1500。如果本機的MTU比網關的MTU大,大的數據包就會被拆開來傳送,這樣會產生很多數據包碎片,增加丟包率,降低網絡速度。把本機的MTU設成比網關的MTU小或相同,就可以減少丟包
測試 (1472 + 8(ICMP回顯示請求和回顯應答報文格式長度) + 20(IP首部) = 1500)
$ ping -c 2 -M do -s 1472 192.168.0.6
輸出
PING 192.168.0.6 (192.168.0.6) 1472(1500) bytes of data. 1480 bytes from 192.168.0.6: icmp_seq=1 ttl=127 time=1.06 ms 1480 bytes from 192.168.0.6: icmp_seq=2 ttl=127 time=1.06 ms --- 192.168.0.6 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 1.060/1.062/1.064/0.002 ms
查看本機的mtu
$ netstat -i
輸出
Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 82879 0 0 0 69000 0 0 0 BMRU lo 16436 0 84 0 0 0 84 0 0 0 LRU
設置
# 設置本機的mtu sudo ifconfig eth0 mtu 1472 # 查看設置后的結果 $ netstat -i