Bandwidth Delay Product

Excellent Excellent stuff.

A dizzy Cosy question Rene.

I think Satellite communication is what normally TV channels use for live broadcast , If there a big waiting time then how the realtime applications work?

I guess this depends on your definition of “big waiting time.” Communication satellites are in geosynchronous orbit about 42,000 km above the earth. Given the speed of light, and the fact a signal must travel round trip, the minimum possible delay is about 1/4 of a second. In reality, the delay is much more than this–probably 2-3 seconds, when you factor in the path the packets must travel through networks on Earth. I am sure you have seen it on a live news program, where a news presenter asks a remote reporter in the field a question, and there is 4-5 second pause before you see an answer.

I think the answer to your question is that real-time applications (where close to real time responsiveness is required) will not use satellites. For example, stock trading applications, where even 10ths of a second matter, could not use satellites. Other applications, for which a 2-3 second delay is acceptable, have no problems.

Rene/ Andrew, I came across that CISCO can be used and iperf client and server for testing such tests? Any insight? or usable link?

You can use Iperf to test optimal window sizes yes, that’s what I did in this lesson:

Cisco VIRL allows you to add delay to interfaces so you can simulate satellite links:

I haven’t tested this before but it might be nice to try.

13 posts were merged into an existing topic: Bandwidth Delay Product


If I have understood the previous lessons on TCP correctly, it increases and decreases the window size dynamically according to network conditions. If that’s the case, what is the purpose of knowing the optimal window size for a network, given that it should figure that out dynamically?
Not sure if I have misunderstood…


Hello Paul

This is a very good question. The initial optimal window size is calculated based on the bandwidth delay product as described in the lesson.

However, because network conditions are not static and continually change, the window size must also dynamically change to accommodate these changes. Even if the optimal window size is calculated and used, the receiver may still be overwhelmed by the amount of data that is being received during the TCP session due to additional information being sent to it on other TCP sessions for example. Or because traffic has suddenly increased on the network segment due to file transfers that have been initiated in the meantime. The result is that it may be losing information and asking repeatedly for segments to be resent. If this occurs, the receiver requests that the window size be made smaller. After several successful segment transfers the receiver may request an increase in window size to increase efficiency. This may be done and if successful, the window size is kept…

These changes can occur multiple times over the lifetime of a session, and this is why the window size must be something dynamic in order to optimise the efficiency of the transfer.

I hope this has been helpful!


Hi Rene

On the bandwidth delay product your conversion from ms to second is not correct.
You converted 1ms to 0.01 seconds, this is not correct.
1ms =0.001seconds


1 Like

Hello Raul

Yes you are correct, thanks for picking that up. I will let @ReneMolenaar know. Here’s the specific part that is incorrect:

The 1 ms should be 10 ms or the value in the equations should be 0.001

Thanks again!


Thanks guys, it has been fixed.

Hi Rane ,does iperf command supported by Cisco switches like 3650 etc.

HI Rene,
We are making some test of bandwidth with IPERF.
I have two links of dark fiber connected to a Cisco OADM 8A. It is supposed that I have 20Gbps I made some test with IPERF with different windows size but it just gaves me like 0.44 Gbits/sec.

Does IPERF is telling me that I dont have the bandwidth I supossed to have?

iperf.pdf (161.9 KB)

Hello Vinod

iperf is a utility that runs on Linux, Unix and Windows operating systems. It is not a command that is actually implemented on a Cisco device itself. In the lesson, the iperf command was implemented on the Client and Server devices, which were PCs.

I hope this has been helpful!


Hello Helen

Because you’re using a high speed link, I suggest you try various values for the window starting with 128000, and keep doubling until you get a maximum throughput. A window size of 128000 is typical to maximise throughput on a gigabit link, so it’s a good start. Specifically, test out the following window sizes:


For each window size, record the throughput. When you reach a maximum value of throughput, that is the maximum throughput that you can expect from the link.

If it is different than what you expect, you should then begin troubleshooting other issues. Let us know what results you get.

I hope this has been helpful!


Hi Lazaros, thank you for your reply.
I made a bandwith test with differents windows sizes and I get just 3.5Gbps but when I add the -P (number of parralel clients) with different windows size I get 8.6Mbps of bandwidth.

Now Im more confuse I dont know how many bandwidth does my link really has.iperf-windowssize.pdf (637.5 KB)

Hello Helen

Can you set up a different test without iperf? Try setting up an FTP client and an FTP server, one on each end of the link. Place a large file (several gigabytes if possible) and try to transfer it from server to client and see what kinds of speeds you get. This is a real world example, so it might more accurately state your link’s speeds. If speed is still limited you may find that there is an issue with your cabling or your terminations. Check out the error rates on the interfaces on both ends to see if that may be the culprit.

You can find large files to use for your tests by searching Google and typing “large test files to download”. Several sites have 1 and 10 GB test files that you can use. You will need to first download such a file to your server and then test the FTP transfer from server to client.

Let us know your results!

I hope this has been helpful!


I was thinking the same until saw Rene’s Post


Hi Rene,

how do we manually change the TCP window size on Windows 10 PC? and how? is there a command we can enter in command line?

Kind regards,


Hello John

Each program that runs on a Windows 10 computer creates TCP sessions has its own mechanisms to create and change its window size. However, you can adjust these parameters using the Set-NetTCPSetting command on the Power Shell. You can find out more information about this at the following link:

I hope this has been helpful!