Can anyone explain why the ethernet payload size is fixed between 46 and 1500 bytes ?
I read so many articles never get the clarification?
Network Engineering Stack Exchange is a question and answer site for network engineers. It only takes a minute to sign up.Sign up to join this community
According to paragraph 184.108.40.206 of the Ethernet V2 Spec, the minimum ethernet frame is based on the Ethernet Slot Time, which is 512 bit lengths (64 Bytes) for 10M ethernet. Slot time governs both maximum cable length and minimum frame size.
After subtracting 18 bytes for the ethernet header and CRC, you get 46 bytes of Ethernet payload as the minimum payload size.
Slot time (and thus the minimum frame size) is also closely related to Ethernet collision detection. Quoting An Introduction to Computer Networks, paragraph 2.1.2:
... a collision can be received, in principle, at any point up until the end of the slot time. As a result, Ethernet has a minimum packet size, equal to the slot time, ie 64 bytes (or 46 bytes in the data portion). A station transmitting a packet this size is assured that if a collision were to occur, the sender would detect it (and be able to apply the retransmission algorithm, below). Smaller packets might collide and yet the sender not know it, ultimately leading to greatly reduced throughput
Ethernet Slot Time was specified so CSMA/CD would correctly function. The minimum size of a frame is defined to make sure that its transmission takes enough time so that even with a shortest valid frame, a possible collision can be reliably detected; if the frame size is too small (with respect to the maximum cable length), deterministic collision detection would be impossible.
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.