How to deal with Packet Loss in TCP?
Many applications using the Internet today rely on TCP indeed it’s been the workhorse of the internet for over 30 years, and while it still works well for a great many things, it does have room for improvement, particularly in its response to packet loss. For more modern applications, especially those requiring lower latency communication, these shortcomings can have a serious effect on the quality of experience or usability of a service. Fortunately, there are some easy ways to imbibe TCP with some upgrades to improve performance in modern applications.
The simple solution to overcome many of these shortcomings is to upgrade TCP with our low latency FEC Rely. That way modern applications can run seamlessly over older network topologies and equipment with the minimum amount of fuss.
The benchmarking setup:
We ran some benchmarks of both vanilla TCP, and TCP with a Rely tunnel to compare what happens to throughput in both scenarios over a network with 1% packet loss..
For our simulations we used network namespaces and ran iperf through virtual ethernet links, setting the level of packet loss at 1% for each of the 2 networks. Then we sent data across the network at 10Mbit/s and recorded the actual throughput over time for each network.
The results:
The above graph shows that even with relatively low levels of packet loss at 1%, the TCP connection is not very stable and the network is effectively down throttled to an average throughput of between 4-5 Mbit/s. Over 50% of the potential network bandwidth is wasted.
This happens because, when packets are lost along the way, TCP assumes that the reason a packet didn’t arrive is because of congestion, where the channel is oversaturated with packets, and that’s why a packet can’t get through to the destination.
TCP’s response to the packet loss is to throttle the data rate at which data is sent over the connection, until packets start arriving regularly. Of course with 1% packet loss this never really occurs, and TCP will continuously throttle down the throughput, mistakenly believing its responding to congestion on the network.
Lets see what happens when the network is upgraded with Steinwurf’s low latency FEC solution - Rely, using a 9% repair rate.
This network directs traffic over a tunnel implementing Rely FEC, so that TCP will rarely be exposed to packet losses, which are repaired on the fly by the FEC.
The result is that throughput is consistently above 9.95 Mbit/s, rarely below the channel limit, so effectively none of the network bandwidth is wasted.
The conclusion:
Applications running over such a network will run seamlessly with faster, lower latency connectivity, and the highest possible quality of service for the end user.
This method provides a simple and effective solution to upgrade TCP with our next generation forward erasure correction products.
Learn more:
To learn more about our low latency FEC solutions and how we can help you fix packet loss issues for your applications and services, contact us and we’ll be happy to share our FEC expertise and help you try out our software.
Next time we’ll share the results of our benchmarking over a network with 5% packet loss to illustrate what happens over even more inconsistent networks.
Follow us on social media to stay tuned to our updates: