Formula Bro

Math and physics formulas, explained like you are new.


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.

BDP=B×RTT\text{BDP} = B \times \text{RTT}

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 10310^{3}. Mega, written M, means one million, which is 10610^{6}. Milli, written m, means one thousandth, which is 10−310^{-3}. 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, 100 bits/s×2 s=200100 \text{ bits/s} \times 2 \text{ s} = 200 bits. This is how we know that the product is an amount of data.

What each symbol means

SymbolMeaning

BDP\text{BDP}

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.

BB

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 BB and therefore a larger bandwidth-delay product.

RTT\text{RTT}

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.

×\times

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

BB

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 BB means more bits can be in the pipe at once.

RTT\text{RTT}

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.

B×RTTB \times \text{RTT}

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.

BDP=B×RTT\text{BDP} = B \times \text{RTT}

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.

BDP=B×RTT8\text{BDP} = \frac{B \times \text{RTT}}{8}

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 BDP=B×RTT\text{BDP} = B \times \text{RTT} multiplies the rate by the time. A link that carries BB bits per second, with a round-trip time of RTT\text{RTT} seconds, holds B×RTTB \times \text{RTT} 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 RTT=0.05\text{RTT} = 0.05 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.

  1. Write the inputs in plain units. The bandwidth is B=100B = 100 Mbps, which is 100×106=100,000,000100 \times 10^{6} = \text{100,000,000} bits per second. The round trip is 50 ms, and a millisecond is 10−310^{-3} s, so the time is 50×10−3=0.0550 \times 10^{-3} = 0.05 s.
  2. Multiply the rate by the time. BDP=100×106 bit/s×0.05 s=5×106\text{BDP} = 100 \times 10^{6} \text{ bit/s} \times 0.05 \text{ s} = 5 \times 10^{6} bits. The seconds cancel, which leaves bits. Written out, 5×1065 \times 10^{6} bits is 5,000,000 bits.
  3. Convert bits to bytes. TCP counts bytes, and each byte is 8 bits, so we divide: 5×1068=625,000\frac{5 \times 10^{6}}{8} = \text{625,000} bytes. Kilo means one thousand, so this is 625 kilobytes.
  4. 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 216−1=65,5352^{16} - 1 = \text{65,535}, so without window scaling the window tops out at 65,535 bytes.
  5. Find the speed that this small window allows. The sender can have at most 65,535 bytes in flight, which is 65535×8=524,28065535 \times 8 = \text{524,280} bits. Dividing by the 0.05 s round trip gives 524,2800.05≈10.49×106\frac{\text{524,280}}{0.05} \approx 10.49 \times 10^{6} bits per second, about 10.49 Mbps.
  6. 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.
  7. 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

Where you will meet it

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.

Sources

  1. Bandwidth-delay product, Wikipedia
  2. Transmission Control Protocol, Wikipedia

| All Computer Science formulas |

Published 2026-10-22. Plain-text copy for AI agents and readers: computer-science/bandwidth-delay-product.md.