How does latency effect throughput?

How does latency effect throughput?

One of the questions I get asked several times a week by my clients is as such. While most people never associate latency with the amount of data they can send across a single TCP stream, engineers need to understand this concept.

Luckily, someone has done most of the leg work for us. Many years ago, a college forwarded me a thesis paper written by Jesper Dangaard Brouer from Copenhagen University in Denmark. While this paper mainly focuses on issues concerning ADSL, he does analyze our exact question on page 21. (28 on the pdf)

Throughput = Window Size / RTT

This very simple formula is the key to your single stream transmission rates. Your throughput on a single stream TCP connection is limited to the WindowSize divided by your RTT or latency. So lets try this out…

bash
ping 6.6.7.4
PING 6.6.7.4 (6.6.7.4) 56(84) bytes of data.
64 bytes from 6.6.7.4: icmp_seq=1 ttl=51 time=69.0 ms
64 bytes from 6.6.7.4: icmp_seq=2 ttl=51 time=69.6 ms
64 bytes from 6.6.7.4: icmp_seq=3 ttl=51 time=67.1 ms
64 bytes from 6.6.7.4: icmp_seq=4 ttl=51 time=69.1 ms
64 bytes from 6.6.7.4: icmp_seq=5 ttl=51 time=69.2 ms
--- 6.6.7.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 67.113/<b>68.848</b>/69.687/0.954 ms

That shows our connections average RTT is 69ms. And you should by now know that your TCP Window size for Ethernet is 65,535 bytes. When we plug this data into our formula, it shows..

65535 / 69 = 949.78 kBytes/s

Or about 7.4mbit per second. Lets go ahead and see what kind of data we can come up with by running our own test.

bash
tcpspray -n 2000 6.6.7.4
Transmitted 8048000 bytes in 8.400634 seconds (902.094 kbytes/s. <b>7216.748</b> kbits/s)

Thats pretty close, 7.2 mbit per second. Now, these results wont always come out as perfect, but it will give you a good idea of what to expect. Just remember, QOS will affect your results, so please disable it while testing. If you have any questions, please feel free to leave a comment. Thanks you!

note: ip address changed to protect public networks

comments powered by Disqus

Related Posts

An Essential Alias for Forgetful Engineers Like Myself (updated)

An Essential Alias for Forgetful Engineers Like Myself (updated)

How many times a day do you issue a show command from configuration mode ? If you’re anything like me, its enough to get annoying. Luckily Cisco has given us the ability to user …

iPhone – Rock App Causing Devistation

iPhone – Rock App Causing Devistation

Recently, an update to all jailbroken phones could of caused major damage to anyone who uses Rock… There were several community updates in the last few days due to the iPad and new …

Ixia Vision ONE – Tap the Planet

Ixia Vision ONE – Tap the Planet

Whenever I start talking about network visibility and aggreagation taps I can’t help but think of The Matrix. Millions of packets flowing through your network every minute of every …