If you are developing or maintaining a TCP stack, or if you are tasked with performance issues for network devices, you should get informed about "Bufferbloat". Wikipedia provides this summary of the Bufferbloat problem:
The problem is that the TCP congestion avoidance algorithm relies on packet drops to determine the bandwidth available. It speeds up the data transfer until packets start to drop, then slows down the connection. Ideally it speeds up and slows down until it finds an equilibrium equal to the speed of the link. However, for this to work the packet drops must occur in a timely manner, so that the algorithm can select a suitable transfer speed. With a large buffer, the packets will arrive, but with a higher latency. The packet is not dropped, so TCP does not slow down even though it really should. It does not slow down until it has sent so much beyond the capacity of the link that the buffer fills and drops packets, but this then means it has far overestimated the speed of the link.
Finally, there is a wiki devoted to developing news.
InterWorking Labs is experimenting with Bufferbloat using Maxwell in our lab network, but so far we have been unable to reproduce it consistently. For more information, please contact InterWorking Labs .