Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the rationale behind bandwidth delay product

Tags:

networking

tcp

My understanding is that Bandwidth delay product refers to the maximum amount of data "in-transit" at any point in time, between two endpoints.

The thing that I don't get is, why multiply bandwidth by RTT. Bandwidth is a function of underlying medium, such as copper wire, fire optics etc and RTT is function of how busy intermediate nodes are, any scheduling applied at the intermediate nodes, distance etc. RTT can change, but bandwidth for practical purposes can be considered as fixed. So how does multiplying a constant value (capacity aka bandwidth) by fluctuating value (RTT) represents total amount of data in transit?

Based on this, will a really really slow have very large capacity? Chances are the "Causes" of RTT will start dropping.

like image 467
Jimm Avatar asked Dec 06 '12 17:12

Jimm


People also ask

What is the purpose of bandwidth delay product?

Bandwidth delay product is a measurement of how many bits can fill up a network link. It gives the maximum amount of data that can be transmitted by the sender at a given time before waiting for acknowledgment.

What is the relationship between bandwidth and delay time?

The lower your bandwidth, the more time it will take for data packets to reach their destination, which can lead to higher latency. Similarly, the higher bandwidth, the quicker your packets will travel, which can result in lower latency.

Does bandwidth affect propagation delay?

This also happens as networks get faster: bandwidth delay goes down, but propagation delay remains unchanged. An important difference between bandwidth delay and propagation delay is that bandwidth delay is proportional to the amount of data sent while propagation delay is not.

How is BDP calculated?

To calculate BDP, multiply the available bandwidth by the value of the connection latency. Use the ping –s host command to obtain the value of the connection latency. The appropriate receive buffer size approximates the value of the BDP.


1 Answers

Look at the units:

  • [bandwidth] = bytes / second
  • [round trip time] = seconds
  • [data volume] = bytes

[data volume] = [bandwidth] * [round trip time].

Unit-wise, it is correct. Semantically,

What is bandwidth * round trip time? It's the amount of data that left the sender before the first acknowledgement was received by the sender. That is, bandwidth * round trip time = the desired window size under perfect conditions.

If the round trip time is measured from the last packet and the sender's outbound bandwidth is perfectly stable and fully used, then the measured window size exactly calculates the number of packets (data and ACKs together) in transit. If you want only one direction, divide the quantity by two.

Since the round trip time is a measured quantity, it naturally fluctuates (and gets smoothed out). The measured bandwidth could fluctuate as well, and thus the estimated total volume of data in transit fluctuates as well.

Note that the amount of data in transit can vary with the data transfer rate. If the bottleneck is wire delay, then RTT can be considered constant, and the amount of data in transit will be proportional to the speed with which it's sent to the network.

Of course, if a round trip time suddenly rises dramatically, the estimated max. amount of data in transit rises as well, but that is correct. If there is no accompanying packet loss, the sliding window needs to expand. If there is packet loss, you need to reconsider the bandwidth estimate (and the bandwidth delay product drops accordingly).

like image 84
John Dvorak Avatar answered Oct 11 '22 14:10

John Dvorak