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 headlineline rate and it is this rate which can get up to 24Mb/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 24Mb/s is 24,000,000 bits per second carrying ATM cells.
ATM cells are 53 bytes long. So at 24Mb/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 24Mb/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 1Mb/s less data throughput that you may expect (½Mb/s for rates under 8Mb/s, ¼Mb/s for rates under 2Mb/s).
Doing the sums
So considering the throughput of TCP on a line syncing at 24Mb/s.
- 24,000,000b/s ATM rate
- 21,735,849b/s ATM payload for PPP
- 21,254,716b/s PPP rate assuming 1,502 byte PPP packets
- 21,226,415b/s IP rate assuming 1,500 byte IP packets
- 20,943,396b/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
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 9Mb/s to 21Mb/s in 1Mb/s steps.