What is 8B/10B line encoding?

A standard Ethernet frame is typically between 64 and 1518 bytes in length.


When transmitting the bytes of the frame onto the physical medium the 8B/10B line code is used to ensure that there are enough 1 / 0 changes on the line in order to enable clock recovery.

Each 8 bits of Ethernet data are encoded into a resulting 10 bits of line data, hence the name 8B/10B.

This encoding also increases the overall line rate from the Ethernet data rate, resulting in a 1G Ethernet data rate utilising a 1.25G line rate. This represents a ~20% overhead just for signalling and is the reason why 8B/10B line coding is not used for 10G Ethernet - the overhead would too large.