How Ethernet Sends Data - Computerphile
Key Moments
Ethernet data transmission evolves encoding for speed and reliability, from serial bits to complex 66-bit schemes.
Key Insights
Serial transmission (like old modems) uses start/stop bits and agreed baud rates for byte framing.
Manchester encoding, used in early Ethernet, doubles bit count, creating 100% overhead.
8b/10b encoding for Gigabit Ethernet maps 8 data bits to 10 code bits, reducing overhead to 25% and ensuring clock sync and DC balance.
Higher Ethernet speeds (10Gbps+) use 64b/66b encoding, employing pseudo-random data generation (LFSR) to achieve clock sync and DC balance with minimal overhead.
Encoding methods address physics challenges like signal degradation, clock synchronization, and DC balance.
These encoding techniques are foundational for various high-speed data communication standards beyond Ethernet, including PCI and SATA.
FUNDAMENTALS OF SERIAL DATA TRANSMISSION
The video begins by revisiting serial data transmission, highlighting its use in older technologies like floppy disks, modems, and serial cables. This method involves sending data bit by bit, requiring both sender and receiver to agree on clock speeds (baud rates) and a framing mechanism. Protocols like '8N1' specify the structure: one start bit to signal the beginning of data, eight bits of actual data, and one or more stop bits to mark the end. This ensures that even with long strings of zeros, the receiver can maintain synchronization, essential for reliable data transfer.
MANCHESTER ENCODING FOR EARLIER ETHERNET
Moving to Ethernet, the discussion introduces Manchester encoding, a method used in early Ethernet standards (1 Mbps and 10 Mbps). This encoding scheme uses two clock phases to represent a single bit, typically a transition in the middle of the bit period. A one might be a transition from low to high, while a zero is from high to low. While it ensures a clock transition for every bit, thus aiding synchronization and avoiding long periods of silence, it effectively doubles the number of bits to be transmitted, leading to a 100% overhead.
8B/10B ENCODING: THE GIGABIT SHIFT
Gigabit Ethernet (1 Gbps) and higher speeds introduced 8b/10b encoding. This approach maps 8 bits of data into a 10-bit code word. With 2^10 (1024) possible 10-bit combinations and only 2^8 (256) unique data bytes, there's ample room to select code words with specific properties. The primary goals are to ensure sufficient transitions for clock synchronization and to maintain 'DC balance,' meaning an roughly equal number of ones and zeros over time, preventing signal drift. This reduces the overhead to 25% (2 extra bits for every 8 data bits).
ADDRESSING DC BALANCE AND SIGNAL INTEGRITY
A critical challenge in high-speed data transmission is maintaining signal integrity, particularly 'DC balance.' Receivers often use automatic gain control (AGC) that averages the signal. If a signal is heavily biased towards ones or zeros, this averaging mechanism can fail, leading to errors. Encoding schemes like 8b/10b are designed to mitigate this by selecting specific 10-bit patterns that prevent excessively long runs of identical bits or ensure a near-equal distribution of ones and zeros, thereby keeping the average signal voltage close to the midpoint.
THE 64B/66B ENCODING FOR MODERN ETHERNET
For speeds of 10 Gbps and beyond, even the 25% overhead of 8b/10b encoding became too large. The 64b/66b encoding scheme was developed, representing 64 bits of data with 66 bits. Instead of large lookup tables, this method uses a Linear Feedback Shift Register (LFSR) to generate pseudo-random data. By XORing the data with this pseudo-random sequence, the transmitted signal appears random. This randomness naturally ensures sufficient bit transitions for clock recovery and DC balance, achieving a mere 3% overhead (2 bits for 64 data bits).
PSEUDO-RANDOMIZATION AND SYNCHRONIZATION IN 64B/66B
The clever part of 64b/66b encoding is how it achieves synchronization without explicit lookup tables for every combination. The transmission starts with a short preamble (two bits, e.g., 01 or 10). The subsequent 64 bits are 'scrambled' using a synchronized LFSR at both ends. After an initial 'learning' period (e.g., 58 bits), both the sender and receiver possess identical LFSR states. This allows the receiver to accurately 'descramble' the incoming data, effectively decoding the original 64 bits, while ensuring the data stream has the necessary properties for reliable transmission.
UNIVERSAL APPLICATION OF DATA ENCODING
The principles discussed for Ethernet are not limited to network cables. These sophisticated encoding techniques are fundamental to many high-speed digital communication systems. Examples include internal computer buses like PCI and serial ATA (SATA), and even wireless communication protocols. The need to reliably transmit ones and zeros efficiently, while overcoming physical limitations and synchronization issues, drives the development and adoption of these varied encoding strategies across diverse technological applications.
Mentioned in This Episode
●Products
●Companies
●Concepts
Ethernet Encoding Overheads
Data extracted from this episode
| Encoding Scheme | Data Bits | Encoded Bits | Overhead |
|---|---|---|---|
| Manchester Encoding | 8 | 16 (effectively) | 100% |
| 8B/10B Encoding | 8 | 10 | 25% |
| 64b/66b Encoding | 64 | 66 | Approx. 3% |
Common Questions
Serial transmission sends data one bit at a time, sequentially. Older methods like clapping demonstrated this, and it was fundamental to serial cables and dial-up modems, requiring agreed-upon clock speeds and framing bits (start/stop bits) to ensure data integrity.
Topics
Mentioned in this video
Serial ATA, a computer bus interface that utilizes encoding methods comparable to those discussed for Ethernet.
Radio-frequency identification tags that reportedly employ similar data transmission encoding tricks.
A method of transmitting data one bit at a time, demonstrated through clapping, and used in older serial cables and dial-up modems.
A common serial communication protocol setting specifying 8 data bits, no parity bit, and 1 stop bit, used in modems.
The channel sponsor, a quantitative trading firm offering educational programs and internships for students.
A type of cable used for transmitting data at various speeds, with different encoding strategies employed for faster versions.
A data encoding method discussed in relation to old hardware, mentioned as a precursor to other methods.
A data encoding method discussed in relation to old hardware and similar to FM, having a 100% overhead.
An encoding scheme developed at the University of Manchester, used in 1-megabit and 10-megabit Ethernet, which uses transitions in the middle of each bit period for clock recovery but introduces 100% overhead.
An encoding technique used in 1-gigabit Ethernet and faster, where 8 bits of data are expanded to 10 bits to ensure sufficient transitions for clock synchronization and DC balance, resulting in a 25% overhead.
An internal computer bus standard that uses encoding strategies similar to Ethernet.
More from Computerphile
View all 82 summaries
21 minVector Search with LLMs- Computerphile
15 minCoding a Guitar Sound in C - Computerphile
13 minCyclic Redundancy Check (CRC) - Computerphile
13 minBad Bot Problem - Computerphile
Found this useful? Build your knowledge library
Get AI-powered summaries of any YouTube video, podcast, or article in seconds. Save them to your personal pods and access them anytime.
Try Summify free