ping -l 1472 8.8.8.8
ping -l 1473 8.8.8.8
可以看見 1472 OK
網通人LINE社群的討論
MTU 講的是網路層最大的封包大小,通常是 1500。而 ping 指令中 -l 參數所指定的大小為 ping 這個 ICMP 封包的 payload 大小。
根據規格,IPv4 的 ICMP 封包會包含 20 bytes 的 IPv4 header 與 8 bytes 的 ICMP header。因此如果 MTU 是 1500 的網路,ping 可以指定的最大 payload 大小為 1472 (1500-20-8=1472)。1472 這個數字並不是 MTU 大小,是 ICMP payload 的大小,實際上的 MTU 還是 1500。
另外我測試的網路環境因為是使用Hinet PPPoE,需要扣掉 PPPoE 會用到的 8 bytes header 大小,實際 MTU 為 1492。ping 可以指定的最大 payload 就會變成 1464。
Good Job