I am a bit confused by the MTU limit on different devices. My understanding the default for Ethernet II frames is a max MTU size of 1500. So in other words, MTU is based on the size of the entire frame! Math is not my strong point! So I understand a default frame size of 1500 would mean I could send a 1458 payload size using Path MTU Discovery method(8 bytes for ICMP header + 20 IP Header + 14 for Ethernet II = total frame size 1500. I wasn't able to test this portion. My tests found I could not send a payload size equal to or greater than 1473 to a Cisco router. In this case 1473+42=1515. I also noticed if I only add the ICMP header and the IP header (leaving off the Ethernet II part) I come up with 1501. So is the Cisco routers MTU limit 1500 or 1514?
I also noticed on my Windows 7 system the default MTU is set to 1300. In doing a test ping from my Windows 7 system I noticed I can only send a payload of 1272, 1273 fails. In this case the 1300 limit is reached by adding the 8 bytes for ICMP header and 20 for IP header.
Perhaps my confusion is in the way Wireshark displays the packet details because I am looking at the Frame section and the total bytes on the wire. So is the 14 for Ethernet II taken into account when checking against the MTU size limit on a device?
The Maximum Transmission Unit for a physical layer of a network isn't the largest size of packet that can be sent out on that physical layer, it's the largest size of payload that can be sent; i.e., it's not based on the size of the entire frame. The largest Ethernet packet that can be transmitted on a standard Ethernet is 1518 bytes - 14 bytes of Ethernet header, 1500 bytes of payload, and 4 bytes of CRC.
So the MTU is 1500, but that doesn't count the Ethernet header (or the CRC).
This means that the largest IPv4 packet you can transmit has a payload of 1480 bytes, not 1458 bytes - 14 bytes of Ethernet header, 20 bytes of IPv4 header (with no options), 1480 bytes of IPv4 payload, and 4 bytes of CRC.
answered 06 Apr '12, 10:03
Guy Harris ♦♦