5

Perhaps this is better to ask an electronics engineer because it might have to do with something at the physical layer rather than programming. But we all user ethernet, and I know that the minimum frame size is 64 bytes but I've never bothered to ask why that is the case. Until now! So can someone help me out? Why does it have to be 64 bytes long?

ultrajohn
  • 2,527
  • 4
  • 31
  • 56
dave
  • 4,812
  • 4
  • 25
  • 38
  • https://en.wikipedia.org/wiki/Ethernet_frame – user3528438 Oct 09 '15 at 13:30
  • Do you mean why isn't it *smaller*? Thats because there is a minimum length enforced on the frames payload to allow collision detection to work reliably. – Alex K. Oct 09 '15 at 13:31
  • Minimum frame size is 64 bytes (not bits) including CRC. – maxy Oct 09 '15 at 15:29
  • @user3528438: would you care to point to me where in that page it talks about why 64 was chosen and not 128 or why wasn't it smaller? – dave Oct 10 '15 at 11:07
  • @maxy, I know minimum frame size is 64, that's what it says in my question. But why is that the case? – dave Oct 10 '15 at 11:08
  • @AlexK.: well why 64? Why doesn't it have to be 128 for collision detection to work and why doesn't collision detection work if I have a smaller frame size? – dave Oct 10 '15 at 11:08

2 Answers2

15

I read one article long time back. I liked the explanation.

Ethernet minimum packet size is 64 bytes for 10/100M but 512 bytes for 1000M. Minimum packet size is chosen on the basis that in case of half duplex, the sender should be able to detect collision before it finishes sending the frame.

At best the signals propagate (radiate) through free space at the speed of light (3*10^8 m/s). In contrast, the speed of propagation through twisted pair wire or coax is 2/3 of this value(2*10^8 m/s).

2*Maximum Distance between two hosts= speed of light in twisted pair * time

time=packet size/Bandwidth

For 10M, Bandwdith =10^7bps

time=8*64bits/10^7bps=51.2us

So Maximum Distance between two hosts=(2*10^8)*(51.2*10^-6)/2=5.12km

For 10Mbps, this LAN length was more than sufficient.

For 100Mbps, LAN length comes out to be 512m which is also good enough.

But for 1Gbps, LAN length comes out to be only 51.2m. So the solution proposed was to increase the minimum ethernet packet size to 4096bits, i.e., 512bytes.

So max LAN length becomes 409.6m.

I don't know why they chose only this length.

Adi06411
  • 356
  • 2
  • 7
  • There are no collisions on a full duplex, only switches, 1000Mbps lan. –  Dec 17 '19 at 13:56
  • This answer is trying to explain why the packet size was increased for 1000Mbps. But doesn't explain why it was 64bytes. –  Dec 17 '19 at 13:58
6

Because earlier Ethernet infrastructure was using half-duplex communication (HUBs instead of switches, a shared medium instead of separate receive/transmit channels).

A device can start sending a frame at any time when the network is idle, so it has to check for collisions with other senders who start at the same time. Frames take some time to propagate depending on the number of HUBs and cable length. You want to detect a collision before you finish sending your frame, so you can insert a jamming code to abort properly. For this you need a minimum frame size.

Today with switched networks this is no longer an issue, but one of the golden rules of the Ethernet standard is that the frame format never changes.

In addition, with todays network speeds, the per-packet processing time can become a performance problem. With a minimum size you have at least some guaranteed number of clock cycles available to process each frame (e.g. for switching) before the next one arrives. A standard Linux PC will usually freeze when faced with a 100Mbit/s stream of minimum-sized frames.

maxy
  • 4,971
  • 1
  • 23
  • 25
  • This answers why there is a minimum frame size, but that isn't really the question. The question is why is the minimum frame size 64? Why was that chosen? – dave Oct 10 '15 at 11:09
  • 1
    I don't know that, but I guess it has to do with being a power of two and with an engineering choice about maximum number of repeaters (HUBs) in a network back in 1983. – maxy Oct 10 '15 at 12:34