ATM overheads options
There are a number of protocol layers involved in data transfer over a broadband line, each of which adds some overhead.
The actual line carries data using a protocol called ADSL. This includes layers of data framing and control information which we do not have to consider. What matters is the line rate that is quoted. This is what your ADSL router will quote on its management interface as the sync rate and is what BT quote to us in line tests, etc. This is the headline line rate and it is this rate which can get up to 24Mbit/s on ADSL2+ for download.
This rate is actually the ATM data rate - the rate at which the bits that make up the 53 byte ATM cells can carry. So 24Mbit/s is 24,000,000 bits per second carrying ATM cells.
ATM cells are 53 bytes long. So at 24Mbit/s it is possible to transfer 56,603 cells per second. Each cell contains 48 bytes of payload data and a 5 byte header. So in terms of transferring payload a 24Mbit/s line can manage 21,735,849 bits/second.
ATM cells are used to carry PPP frames. These are placed in the cells one after the other using 48 bytes. At the end there is wasted space at the end of the cell. The last cell has a fixed 8 byte AAL5 trailer so only holds 40 bytes of payload. This means a 1,502 byte PPP frame would take 32 cells.
PPP frames carry IP frames using typically a 2 byte header. So a 1,500 byte IP packet takes 1,502 bytes at PPP. The Ip header (for IPv4) is at least 20 bytes so this means that payload of the IP is only 1,480 bytes in a 1,500 byte IP frame. Note we meter usage at the IP level, i.e. a 1,500 byte IP frame is metered as 1,500 bytes.
TCP is used to actually carry data. TCP has at least 20 bytes of header, so a 1,500 byte IP frame carries 1,480 bytes of TCP data. It is the TCP payload rate that your software is likely to show when reporting speeds
Bits and bytes
Applications often report bytes per second rates not bits per second rates for speed of download. A byte is 8 bits.
Mebi and Mega
Applications often report based on Mebibytes not Megabytes, or Gibibytes not Gigabytes, and as such there is a difference in the speed you expect of 5% or 7%
On 20CN lines, BT also have a system whereby they rate limit traffic to one of a number of pre-set limits. This could mean as much as 1Mbit/s less data throughput that you may expect (½Mb/s for rates under 8Mbit/s, ¼Mb/s for rates under 2Mbit/s).
Doing the sums
So considering the throughput of TCP on a line syncing at 24Mbit/s.
24,000,000bit/s ATM rate 21,735,849bit/s ATM payload for PPP 21,254,716bit/s PPP rate assuming 1,502 byte PPP packets 21,226,415bit/s IP rate assuming 1,500 byte IP packets 20,943,396bit/s TCP payload rate assuming 1,460 MSS 2,617,924B/s TCP payload rate 2.496MiB/s data transfer rate
So, as a rough guide, take the line rate and divide by 10 for byte rate for TCP data transfer and that is likely to be an absolute maximum.
The following table shows the IP rate you can expect for each ADSL sync rate (as reported by your router)
20CN ATM rate: from IP rate 288K ¼M 576K ½M 864K ¾M 1152K 1M 1440K 1¼M 1728K 1½M 2016K 1¾M 2272K 2M 2848K 2½M 3424K 3M 4000K 3½M 4544K 4M 5120K 4½M 5696K 5M 6240K 5½M 6816K 6M 7392K 6½M 7968K 7M 8128K 7.15M
There is also a low level 135K BRAS profile which is normally an indication of a serious problem with a line. For ADSL2+ there are BRAS rates of 9Mbit/s to 21Mbit/s in 1Mbit/s steps.