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? asked 06 Apr '12, 08:17 networkguy09 edited 06 Apr '12, 08:18 |
One Answer:
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 ♦♦ |
Thanks for the explanation. I drew it out and it makes more sense now looking at it.
I drew something basically like this.
[Ethernet II Header 14 bytes] [DATA] [CRC 4 bytes] (this data section is where the MTU is defined)
Now inside the above data section....
[IPv4 Header 20 bytes] [DATA]
Now inside the above data section....
[ICMP Header 8 bytes] [DATA]
Now inside the above data section....
What's left you can use here, in the case of 1500 MTU limit 1472 can go inside this data field.
Earlier on my original post I was confused about what section is the payload in this instance, because they are all considered payloads.