You may be asking yourself: "Why am I getting 160KB/s on my 1.5M DSL instead of 192KB/s?"
The answer is overhead. Your computer sends and receives data in ethernet frames through your
ethernet card, to your DSL modem. The DSL modem acts as an ethernet to ATM bridge. Data sent from
your computer is encapsulated into ATM cells and sent to the DSL central office. Both ethernet
and ATM incur some overhead. ethernet incurs overhead for IP headers, TCP headers, and PPPoE
encapsulation overhead if your connection uses PPPoE. This brief FAQ explains these overheads
and why you won't ever see speeds equal to your DSL companies advertised speeds (note: some DSL
ISPs, notably Verizon, use a higher DSL sync rate to account for some of this overhead).
First, let's take a look at an ethernet frame. For a standard download from, say, a web server,
the protocol used is TCP/IP. Both IP and TCP have headers that store various information necessary
to routing, destination and source ports, etc. It's beyond the scope of this discussion, but there
are a number of resources on the internet that explain the headers in detail. Each ethernet frame
needs the TCP and IP headers, both of which may be encapsulated into PPPoE.
Consider the typical ethernet frame. Typically for residential DSL (and cable for that matter),
ethernet frames are 1500 bytes. This is controlled by the MTU (maximum transfer unit) value. For
PPPoE connections, PPPoE incurs an 8-byte overhead, so the MTU for PPPoE is 1492 bytes instead.
Regardless of whether PPPoE is used or not, TCP requires 20 bytes for its own header, as does IP.
The result is 40 bytes of overhead per ethernet frame (or 48 with PPPoE). So TCP/IP overhead is
roughly 2.67% for an ethernet frame. PPPoE adds an additional 0.533%. So with a typical PPPoE
connection, the overhead is 3.2%.
Your ADSL modem is acting as an ethernet to ATM bridge. That is, data your computer transmits
over ethernet is encapsulated into ATM cells and sent down your DSL loop to the central office.
Likewise, data received by your ADSL modem over ATM is recombined into ethernet frames and sent to
your computer.
Each ATM cell has its own header, and thus its own overhead. ATM cells are 53 bytes long, 5 bytes
of which constitute the header. This means, for any given ATM cell, the overhead incurred is 9.43%!
Now let's consider the "big picture". As your computer sends ethernet frames through your DSL modem,
they are split into ATM cells and sent out.
Since each ATM cell can only hold 48 bytes of payload, the first ATM cell will be entirely
TCP/IP header information (with PPPoE) or contain only 8 bytes of the ethernet payload without
PPPoE. Thus with PPPoE, the first ATM cell is 100% overhead! Subsequent ATM cells contain
48 bytes of ethernet frame data. The last ATM cell in the frame may or may not have null padding.
If more data is being sent through the modem, the ATM cell may be mostly filled, or it could
only contain the last few bytes of the ethernet frame.
Therefore, the number of bytes of overhead for an Ethernet frame encapsulated into an ATM
cell is:
53 bytes (first ATM header)
+ 5*27 bytes (headers of 27 fully filled ATM cells)
+ [5 to 37] bytes (header+potential cell padding of last ATM cell)
So the best-case scenario is:
53 + 5*27 + 5 = 193 bytes for header information
And the wort-case scenario is:
53 + 5*27 + 37 = 225 bytes for header information + worst-case null padding
So worst case, throughput is (1500-225)/1500 = 85.00 % efficient
and best case, throughput is (1500-193)/1500 = 87.13 % efficient
In other words, if your DSL sync rate is 1536 kbps, your maximum throughput would be
between 1305.6 and 1338.37 kbps. In reality, there is some additional overhead due to the TCP/IP
sliding window, latency, and/or packet loss. These represent theoretically maximum throughput.
Copyright Josh Carroll josh.carroll@gmail.com - Feb 26, 2006