Pages

12/7/09

Ethernet - 80% Efficient

Recently, I've been making an effort to help our server administrators better understand networking concepts.  In doing this, I discovered that many of them focus on statistics that they've heard but don't understand, such as "Ethernet is only 80% efficient."  This is extrapolated into link utilization numbers where it's thought that Gigabit Ethernet links can only push 800 mbps; this is not true.

The Gigabit Ethernet PHY (PCS) for 1000Base-SX/LX/CX uses 8B/10B encoding.  This means that for every 8 data bits, 10 bits are placed on the wire.  That resulting 10 bit entity is called a 10 bit symbol.  Those two additional bits serve a number of functions, some of which are control character transmission, bit synchronization, and error detection.

The Gigabit speed rating of an interface is a data rate and not a symbol rate.  Gigabit Ethernet is actually transmitting at 1.250 gigabaud (the symbol rate).  With 8B/10B encoding we have 20% overhead.  This 20% overhead is reduced from the symbol rate to reveal the data rate:  1.250 x .8 = 1 gbps.  Gigabit Ethernet is indeed only 80% efficient, but operates at 1.250 gigabaud to a yield 1 gbps data rate.

The same principle can be applied to Ten Gigabit Ethernet, but the encoding is 64B/66B, and the symbol rate is 10.3125 gigabaud, resulting in a 10.0 gbps data rate.

As a side note, you may not want them to have sustained utilization rates above 80% because of queue delays, but that's another issue.

4 comments:

  1. "for every 8 data bits, 10 bits are placed on the wire"
    may be
    for every 10 data bits, 8 bits are placed on the wire

    ReplyDelete
  2. Luis - I'm not sure I follow. Can you elaborate your comment?

    ReplyDelete
  3. The 80% rule is not about theoretical bandwidth, it's about goodput - all that encapsulation comes at a cost.

    ReplyDelete
  4. The encapsulation/header size of Ethernet is only 38 bytes, that's if you count the preamble and the IFG. That's only 5% of overhead on a 750 byte frame. That's less overhead than an the IP and TCP headers - which is 40 bytes - minimum.

    ReplyDelete