[vworld-tech] TCP for large bandwidth

ceo ceo at grexengine.com
Mon Jan 19 02:53:29 PST 2004

Ben Garney wrote:
> Howdy,
> My two bits:
> TCP is great for streamed transfers of data where you don't care too 
> much about latency issues. Most file transfer falls under this. Telnet 
> sessions. Transactions - as TCP is reliable. TCP will scale to pretty 
> much any connection, large or small, though of course, it's not going to 
> be optimally efficient if you're in an odd case. (Too much overhead to 
> be really effective on 300 baud... and it can be a bit conservative if 
> you're running on a multigigabit link... maybe. These are minor nits.) 
> In the world of internet, TCP is the standard solution to getting data 
> from point A to B.

Although it's rarely relevant to games, there are some big dodgy areas 
for TCP on large bandwidth connections (and if games start streaming 
video across the net, it will become very relevant).

First of all, "standard"/vanilla TCP has an inherent bandwidth limit 
that is impossible to break. This is defined by your packet loss and RTT.

Secondly, there are a large number of companies spreading a HUGE amount 
of BS - and even outright lies - about this problem, making it up to be 
much worse than it is. According to their websites, you can't do TCP 
transfers continent-to-continent with more than a few hundred (or, 
according to some, far less) Megabits. This is not true (I've done it 
myself). These companies are selling "alternatives" to TCP, hence their 
marketing BS.

I'm still actively researching this, but talks with the Professor of 
communications at my old university confirm this problem is much less 
bad than is claimed (I can dig out his results if anyone needs them), 
although for a while I was doubting my own sanity - did I really send 
all those files that fast across the Atlantic?. Critically, for low 
packet loss / low RTT (and "low" can get quite high, actually), this 
problem never manifests.

Fundamentally, the problem is that "standard" TCP uses AIMD - i.e. 
linear increase in speed, exponential decrease. For large RTT, the 
linear increase is outpaced by the exponential decrease, and never 
reaches link saturation.

Better, more advanced, TCP implementations theoretically suffer less; 
I'm suspicious that Vegas could handle this without problems (since 
Vegas is designed to replace AIMD with a much smoother adaptive 
behaviour). This is what I'm researching, but I have little time to 
spare for it :( so don't wait for any results from me!


More information about the vworld-tech mailing list