Bandwidth-Delay Product
In one sentence: The bandwidth-delay product tells you how much data must be in transit at once to keep a network link full.
Read it out loud: “BDP, the bandwidth-delay product, equals B times RTT. B is the bandwidth in bits per second. RTT is the round-trip time in seconds. The result is an amount of data, measured in bits, or in bytes after dividing by eight.”
Before you start
The ideas and signs this page uses, explained from zero. For powers of ten, Greek letters and other notation in general, see Math basics.
- Bandwidth
Bandwidth is the rate a network link can carry, measured in bits per second. It is a capacity, like the width of a pipe, so a 100 Mbps link can carry up to 100 million bits every second. In radio the same word means the range of frequencies a signal uses, but on this page it means the rate.
- Round-trip time (RTT)
The round-trip time, written RTT, is the time for a message to travel to the other end and for a reply to come back. It is measured in seconds, and the ping command reports it for a network path. The one-way delay counts only the trip in one direction.
- Powers of ten and metric prefixes
A prefix tells you the size of a unit. Kilo, written k, means one thousand, which is . Mega, written M, means one million, which is . Milli, written m, means one thousandth, which is . So 50 ms is 50 thousandths of a second, which is 0.05 seconds.
- Bit and byte
A bit is a 0 or a 1, and a byte is 8 bits. Bandwidth is measured in bits per second, but TCP windows and buffers are counted in bytes. So a rate in bits must be divided by 8 to get the number of bytes.
- TCP, acknowledgments and the window
TCP is a protocol that many internet programs use to make sure all data arrives in order. The receiver sends an acknowledgment, a reply that says data arrived. The window is the amount of data the sender may send before it has to wait for those replies, and the window is counted in bytes.
- Units that cancel
When you multiply a rate by a time, the seconds cancel. Bits per second times seconds leaves bits. For example, bits. This is how we know that the product is an amount of data.
What each symbol means
| Symbol | Meaning |
|---|---|
| The bandwidth-delay product, the amount of data that can be in transit on the link at one time. It is measured in bits, or in bytes after dividing by 8. A larger value means more data must be kept moving to keep the link full. | |
| The bandwidth, the link’s rate, measured in bits per second. For example, 100 Mbps is 100 million bits per second. A faster link has a larger and therefore a larger bandwidth-delay product. | |
| The round-trip time, in seconds: the time for a message to reach the other end and a reply to come back. A 50 ms round trip is written as 0.05 seconds in the formula. A longer distance usually means a longer round trip. | |
| The multiplication sign. It multiplies the rate by the time, which gives the amount of data that flows during that time. Multiplying bits per second by seconds leaves bits, so the product is an amount of data. |
The formula piece by piece
The rate of the link in bits per second. This is how many bits the link can push out each second when it is full. A bigger means more bits can be in the pipe at once.
The time one round trip takes, in seconds. It is the total wait between sending a message and getting its reply. The longer the wait, the more data the sender must keep moving before the first reply comes back.
The rate times the time: the amount of data moving through the link during one round trip. The units are bits per second times seconds, so the seconds cancel and the result is in bits.
The whole formula in one sentence: the bandwidth-delay product equals the bandwidth times the round-trip time, which is the amount of data needed in flight to keep the link full.
The same product in bytes, because a byte is 8 bits. Dividing the bit count by 8 gives the number of bytes, which is the unit that TCP buffers and windows are sized in.
What the formula is doing, and why
The bandwidth-delay product measures how much data can be in flight on a link at once. A sender puts data on the link and then waits for an acknowledgment, which takes a full round trip to arrive. During that wait the sender keeps transmitting, so a stretch of data is always traveling toward the receiver. The product tells you how long that stretch must be to keep the link busy.
Why multiply? The formula multiplies the rate by the time. A link that carries bits per second, with a round-trip time of seconds, holds bits in flight when it is full. This is the same logic as a water pipe: the flow rate times the travel time gives the amount of water inside. Dividing by 8 gives bytes, which is the unit TCP window sizes use.
Why must the window be at least one BDP? To keep the link busy, the sender must have at least one BDP of unacknowledged data outstanding. In TCP, that amount is limited by the window. If the window is smaller than the BDP, the sender runs out of data to send and waits for acknowledgments, so throughput falls below the link rate.
Why do long, fast paths need large windows? Raising the bandwidth or the round-trip time raises the BDP. A satellite link with a long round-trip time needs a much larger window than a short local link of the same speed. The formula gives the amount needed to fill the link, and it assumes the link is steady, so it describes the target rather than every real network.
An everyday picture
Think of a long pipe carrying water. Water flows in at a steady rate and takes time to reach the far end. The water inside the pipe at any moment equals the flow rate times the travel time. The bandwidth-delay product is the same idea for data on a network link, where the link is the pipe and the data in flight is the water.
Worked example: A 100 Mbps link with a 50 ms round trip
Imagine a 100 Mbps connection to a server far away, with a round-trip time of 50 ms, which is s. We want to know how much data must be in flight to keep the link full, and whether the standard TCP window can cover that amount.
- Write the inputs in plain units. The bandwidth is Mbps, which is bits per second. The round trip is 50 ms, and a millisecond is s, so the time is s.
- Multiply the rate by the time. bits. The seconds cancel, which leaves bits. Written out, bits is 5,000,000 bits.
- Convert bits to bytes. TCP counts bytes, and each byte is 8 bits, so we divide: bytes. Kilo means one thousand, so this is 625 kilobytes.
- Find the largest window the standard field allows. The window size in the TCP header is stored in 16 bits. The largest number 16 bits can hold is , so without window scaling the window tops out at 65,535 bytes.
- Find the speed that this small window allows. The sender can have at most 65,535 bytes in flight, which is bits. Dividing by the 0.05 s round trip gives bits per second, about 10.49 Mbps.
- Compare with the link. 10.49 Mbps is only about a tenth of the 100 Mbps link. This is the problem: the sender cannot keep enough data in flight, so most of the link sits idle.
- Use window scaling. TCP’s window scaling option lets the window grow past 65,535 bytes, up to the 625,000 bytes this link needs. With that option, the window can keep the link full.
Answer: The link needs about 625,000 bytes (5 megabits) in flight to stay full. A 65,535-byte window would cap throughput near 10.49 Mbps on this path, so window scaling is needed to use the full link.
The numbers in this example are recomputed by script every time the site is built.
Common mistakes
- Using milliseconds for the round-trip time. The 50 ms must be converted to 0.05 s, or the result is 1000 times too large.
- Mixing bits and bytes. Bandwidth is in bits per second, but TCP windows are in bytes. Divide by 8 at the end.
- Using the one-way delay. The data must travel out and the acknowledgment must travel back, so the full round-trip time counts.
- Assuming a bigger window always helps. Beyond one BDP the link is already full, so extra window only makes data wait longer in the router buffers.
Where you will meet it
- Sizing TCP send and receive buffers on fast or long-distance links.
- Designing satellite and intercontinental links, where the round-trip time is long.
- Tuning file transfer and backup tools, which decide how much data to send before waiting for acknowledgments.
- Checking measured throughput against the limit set by window size and round-trip time.
Questions people ask
What is RTT?
The round-trip time: how long a message takes to reach the other end and a reply to come back. The ping command reports it for a network path.
Does a bigger window always make a connection faster?
Only up to one BDP. Once the window covers the BDP, the link is full, and a larger window does not raise throughput. The link’s own rate is then the limit.
Should the BDP be in bits or bytes?
Either, as long as the units match. Bandwidth in bits per second times seconds gives bits. Divide by 8 to get the bytes that TCP buffers and windows are sized in.
Related formulas
- Data Transfer Time: Data transfer time tells you how long a file takes to send: divide its size by the link’s speed, using units that match.
- Little's Law: Little’s law says the number of things inside a system equals how fast they arrive, multiplied by how long each one stays.
- Shannon-Hartley Theorem: The Shannon-Hartley theorem gives the fastest error-free rate, in bits per second, that a noisy channel can carry, based on its width and how strong the signal is compared with the noise.