Physical layer - encoding

Encoding is the process of converting information into symbols that can then be modulated onto a transmission medium to be transmitted. The reverse process is called decoding.

In the context of networking and telecommunications, encoding takes data represented by bits and converts those bits into symbols that can be modulated onto a carrier wave for transmission over copper wire or over a wireless link.

An example of an encoding method is Manchester code. For transmission over copper cabling, each bit is represented by either a "low then high" representing "1" or a "high then low" waveform representing "0" for each clock cycle. The following diagram shows the relationship between the clock, the data and the Manchester encoding that is applied to the wire.

physical-layer-clock-data-manchester.png

Notice that for each full clock cycle, either a binary "1" or "0" is transmitted. This is represented on the wire as a movement from negative voltage to positive voltage (for 1) or positive voltage to negative voltage (for 0). Thus, the receiver of this signal is able to interpret each of those movements from positive to negative or negative to positive during a single clock cycle, as a 1 or a 0.

Manchester encoding is used for 10 Mbps Ethernet. More efficient methods of encoding are able to encode more than just one bit per clock cycle. These encoding methods include:

  • Two-binary, one-quaternary (2B1Q) - line code typically used in ISDN encoding two bits per clock cycle
  • 4B/5B - line code encoding 4 bits per clock cycle, used in some forms of Fast Ethernet.
  • 8b/10b - line code encoding 8 bits of data per clock cycle, used by some forms of Gigabit Ethernet
  • 64b/66b - line code encoding 64 bits of data per clock cycle, used often in SONET/SDH implementations