8

Can anyone explain why the ethernet payload size is fixed between 46 and 1500 bytes ?

I read so many articles never get the clarification?

Mike Pennington
  • 29,876
  • 11
  • 78
  • 152
user2720323
  • 1,611
  • 9
  • 20
  • 26
  • 4
    I think the minimum size is set so, to have time to detect collisions, not very relevant in modern networking when half-duplex is nearly gone. Maximum size is likely set so, to allow some guarantees from 4B FCS check, larger frame and you'd either lose some guarantees of FCS or you'd need more bytes in FCS. – ytti Dec 01 '13 at 11:05
  • @ytti, half duplex operation is officially included in the 1000BaseT spec, and IEEE has been very adamant about backwards compatibility. Saying it's not very relevant is besides the point. Half-duplex is included in every 802.3 compliant 1000BaseT PHY that's been manufactured. – Mike Pennington Dec 01 '13 at 13:10
  • Did any answer help you? if so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could post and accept your own answer. – Ron Maupin Jan 03 '21 at 19:17

1 Answers1

11

The reason for 46 byte payloads:

According to paragraph 6.3.2.3 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.

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.

Mike Pennington
  • 29,876
  • 11
  • 78
  • 152
  • 1
    You write "minimum frame size does not exceed the longest possible length of cable" which I interpret the opposite to what is true. The minimum frame's transmission time must exceed the propagation time for the longest possible length of the cable for collision detection to properly work. – kll Oct 29 '15 at 12:58
  • I'd suggest "a minimum frame size is required to enable collision detection and signaling across the network while the sender is still transmitting". – Zac67 Feb 21 '19 at 17:58
  • @kll, if you insist on the opposite of the minimum frame, then of course _multiple_ minimum size frames could exist on the wire before a valid collision is detected. That's obviously not desirable. – Mike Pennington Apr 03 '19 at 17:34
  • @MikePennington four years later.. ;) I agree that it's undesirable to have multiple frames on the wire... but you say the minimum frame size should *not exceed* the longest possible length of cable, which seems wrong. If the cable length exceeds the frame size, then it allows for multiple frames, which we just agreed was undesirable, thus the frame size must exceed the cable length. Are you somehow using exceeding to mean the opposite to how I interpret it? Which direction is exceeding to you? Shorter / fewer bytes of the frame? – kll Apr 05 '19 at 10:39
  • @MikePennington we must somehow talk past each other. We agree minimum frame size is 64 bytes. That covers one RTT of max network diameter so we can reliably detect collisions. If frame size is 10 bytes we can't detect collisions because the cable length exceeds the frame size. Conversely, if the packet is 64 bytes or more the frame size exceeds the cable length and we can detect collisions. I think of the frame having a length since since when serialised on the cable it propagates with a certain speed and thus gets a length in the medium. – kll Apr 09 '19 at 07:16
  • @MikePennington and a 65 byte packet? We can agree it is longer than a 64 byte packet and so it will exceed the cable length. Similarly, if we shorten our cable, the packet will exceed the cable length, as it should, since that is how we detect collisions. I tried to explain my use of exceed and length previously but you neither confirmed or commented on if you used these words in a different way which might explain why we don't agree. – kll Jun 02 '19 at 20:48
  • @kll, what exactly your question is about a 65 byte packet is unclear. However, by definition of the ethernet slot time, a 65 byte packet takes longer to transmit than a 64 byte packet. As such collision detection is guaranteed for a packet at or longer than the minimum ethernet frame size (64 bytes, not including IFG and preamble). – Mike Pennington Jun 02 '19 at 21:09
  • @MikePennington the context is our conversation, which is about you saying "minimum frame size does not exceed the longest possible length of cable" and I'm saying it *does exceed* (or at the very least equal it), because that is how CD works. The specific question, elaborated: If min frame size (64) does not exceed, then what about 65? Surely, the frame length will exceed the cable length since it's a larger / longer frame. I'm trying to find how we can use the same word ("exceed") to mean the opposite thing ;) are we somehow measuring different things? ¯\_(ツ)_/¯ – kll Jun 04 '19 at 08:25
  • I concede that one bit at 10Mbps Ethernet is 23.1 meters. Therefore, a 64 byte frame is longer than any standardized cable today. Even at 1Gbps, a 64 byte frame comes out to 118 meters. – Mike Pennington Dec 05 '19 at 18:10