12

I think the minimum is 64 Bytes. Why is that minimum necessary?

mfinni
  • 36,144
  • 4
  • 53
  • 86
user46749
  • 353
  • 2
  • 3
  • 6

6 Answers6

17

Doing some quick reading, it seems it is related to the Collision Detection part of CSMA/CD. If frames were too small on old broadcast media, then some collisions would be undetectable. Continuing my theme of automobile analogies today, it's for the same reason that we don't allow bicycles on high-speed highways - it's just not safe for them.

mfinni
  • 36,144
  • 4
  • 53
  • 86
4

In addition to mfinni's (absolutely correct) answer, setting a minimum frame size allows you to spend multiple receive cycles verifying your frames' checksums. In Ye Olde Days, one can easily imagine a chip that processes one bit per cycle, but takes many cycles to compute a checksum on a dedicated pathway that runs parallel to the receive pathway. Receiving many short messages could result in this checksum logic becoming garbled by having multiple simultaneous operations triggered in it. Discarding anything below a certain size threshold allows you to avoid this issue in a simple way.

BMDan
  • 7,249
  • 2
  • 23
  • 34
  • I believe this answer is wrong; it has to do with the propagation delay in the medium and collision detection. – Andrew Wagner May 23 '14 at 05:33
  • @AndrewWagner, As I already said in my response, mfinni's answer above, which is about collision detection, is correct. My point was that this "quirk" of the specification also allows hardware designers to take a few shortcuts of their own. – BMDan May 27 '14 at 22:05
2

Ethernet is designed to work over a shared medium (the ether!). Senders are capable of sensing when the signal they are driving the ether with is different from what is on the ether.

Unfortunately all media have a propagation delay (unfortunately even light travels at a finite speed).

Suppose you send a very short frame. To detect if the receiver transmits right at the same time they were receiving your frame, you must wait for the signal they send to reach you, so you must therefore wait/listen for twice the propagation delay of the medium before you know if there was a collision at the receiving end.

Now, instead of just listening (sending silence) during that time, you might as well go ahead and send some useful information during that time.

The standard therefore sets the minimum frame size to be the amount of data you can send in TWICE the worst-case propagation delay in the shared medium.

So if you're unhappy because the large frames feel "un-optimized" for your small message, think of that extra space in the packet as an opportunity to find something else to send, when you'd otherwise have to send zeros anyway.

Of course there are many other ways of dealing with collisions and propagation delays in a local networking standard, but then it wouldn't be ethernet, and I think we can all agree that ethernet is pretty sweet.

  • Question: So I understand why you need a minimum or `2 x PD` but where does 64 bytes come from? Shouldn't it depend on the length/type of the cable? 64 bytes seems arbitrary – CodyBugstein Mar 02 '15 at 07:56
  • It comes back to the old efficiency VS complexity tradeoff. You could build some system to automatically measure the network and select an appropriate minimum packet size but it would add nontrivial complexity for relatively little gain. – Peter Green Sep 19 '16 at 12:36
0

The minimum size of the data in Ethernet to detect a collision is 46 bytes and the adding CRC, Data, Length, Destination address, and Source address give 64 bytes as the total length.

0

For CSMA/CD to work correctly you want consistent collision detection.

If the receiver sees a collision and the sender doesn't then the packet would be lost. Similarly if the sender sees a collision but the receiver doesn't you would get a duplicate packet after the sender retransmits. Neither is desirable.

Since data travels at a finite speed a minimum packet size was required to ensure that if a collision happens it happened everywhere. The larger you make the minimum packet size the larger and/or faster you can make the network before CSMA/CD breaks down.

As for why 64-bytes I don't know for sure but I expect it was just a round number that "seemed about right at the time", given the speeds they were operating at, the expected size of Ethernet networks and the expected size of higher level packets.

Peter Green
  • 4,211
  • 12
  • 30
0

64 bytes minimum packet length is not an arbitrary number. In a 10Base5 physical layer ("Fat Ethernet" coaxial, the one of the originally specified physical layers, which has the longest cables allowed) it results in a minimum packet lenght, in microseconds, which is twice the round trip time of the maximum length cable, which is 2500 meters, consisting of five 500 meter segments with four repeaters. This is to ensure that packets transmitted from opposite sides of the cable collide fully at each point in the cable, for reliable collision detection in all nodes.

Trivia:

  • It's twice the minimum amount for a safety overhead
  • Collision detection in the coaxial cable can be done by an analog voltage comparator (since collided packets result in twice the normal signal voltage)
  • Speed of electricity in copper cable is about 200000 kilometers per second
  • Each bit in 10Base5 Ethernet is 20 meters long in the cable
PkP
  • 101
  • 1