Considering Ethernet MTU size of 1500 Bytes, why Ethernet payload size is fixed between 46 and 1500?
The answer was originally posted here.
“The reason for 46 byte payloads:
The minimum ethernet frame is based on the Ethernet Slot Time, which is 512 bit lengths (64 Bytes) for 10M ethernet. After subtracting 18 bytes for the ethernet header and CRC, you get 46 bytes of payload.
Ethernet Slot Time was specified so CSMA/CD would correctly function. One must be sure that the minimum frame size does not exceed the longest possible length of cable; if it did deterministic collision detection would be impossible. After collision detection at the maximum length of cable, you need the collision detection signal to return to the sender. This winds up being the round trip time through the maximum cable length. Technically, the maximum was calculated as low as 450 bit times (ref Table 7-1 in the Original Ethernet V1 Spec); however, 512 bits was used as the official ethernet slot time.
1500 byte payloads:
We have already discussed the reason for 1500 byte MTUs; please refer to that question for specifics.
Note: ytti’s comment about the FCS limitation of ethernet is not the reason that 1500 bytes was chosen. It was chosen due to issues with interpreting the Length field in 802.3 encap frames vs the Type field in Ethernet II frames.”
When dealing with MPLS (and other similar approaches), an extra bytes are added to the Ethernet frame which means an increase of the frame size. Maybe, that’s why GSO (Generic Segmentation Offload) is needed to segment the frame in smaller peaces in order to respect the Ethernet minimum lenght of 64 bytes long. As I’m not familiar with GSO and never read carefully about it, I’m not sure about my statement. So, take care. 🙂