TCP performance, packet loss & Net Neutrality
TCP protocol implementation has been enhanced over the years to overcome the latency impact on performance. Large window size enables a TCP end point to fill the transport pipe introduced by latency. Theoretically if there is no packet loss, TCP can achieve line rate no matter how far the other end point is.
However packet loss between the two end points ruins the party. Now days packet loss is most certainly due to receiving buffer overflow at various routers along the path where packets travel to reach to the destination. This is especially true if your two end points are connected over Internet. There is no real service guarantee and the routers by service providers can be oversubscribed at any given time — as it is a best effort delivery — resulting in packet loss.
TCP protocol shrinks its window size immediately when it detects packet loss. Small window size at transmit side means the pipe is not being filled up at sending side. Partially filled pipe leads to immediate performance drop.
That’s why even if you buy a 1Gbps Internet link, you TCP throughput could fluctuate between tens of mbps to hundreds of mbps.
Without using networking tools, you can’t really know for sure if your TCP session suffers any packet loss (other than experiencing a file transfer being slow).
tcpdump or wireshark is a tool that gives good insight on what’s going on with a TCP session. If you see duplicate ACKs and fast retransmission on wireshark, the TCP session experienced packet loss.
You can also run a iperf test. If you see TCP performance behaves like a yo-yo or see-saw — reach to high throughput, followed by very low throughput and then building up to high throughput again — chances are there are packet loss in the TCP session.
What does this all have to do with net neutrality?
As an enterprise or end user, you should have a choice to pay to get a predictable Internet performance or not to pay and live with the best effort model. Removing net neutrality could potentially provide you with that option.