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 send 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.