Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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

share|improve this question

3 Answers 3

up vote 14 down vote accepted

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.

share|improve this answer
3  
+1 , I did not know that about bicycles ... –  Kyle Brandt Jun 24 '10 at 18:43
5  
+1 Collision detection is the reason. 64 bytes is 0.04ms at 10Mb ethernet speeds. Any smaller and collisions would go undetected (in 1982). –  sysadmin1138 Jun 24 '10 at 18:48

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.

share|improve this answer
    
I believe this answer is wrong; it has to do with the propagation delay in the medium and collision detection. –  Andrew Wagner May 23 at 5: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 at 22:05

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.