[vworld-tech] TCP for large bandwidth

Jeremy Noetzelman jjn at kriln.com
Mon Jan 19 11:12:24 PST 2004


On Mon, 19 Jan 2004, ceo wrote:

> 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.

Standard TCP has no bandwidth limits.  Real world bandwidth limits are a
result of the two things you mention and the buffer sizes in the source
and destination stacks.  But there are no hard limits in the protocol
implementation itself.


> 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.

Yup.  I've personally done 2.4Gbit/sec TCP streams from Seattle to
Amsterdam.  It's really a simple calculation to determine the proper
settings for buffer sizes given a specific RTT.  After that just tune your
buffers and voila.


> 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.

You're mixing up your problems here.  The problem you describe also
requires a significant amount of packet loss.  If you have zero packet
loss, you can easily saturate any link, given sufficient client/server
horsepower.


I've been doing alot of high speed networking work over the last few years
(45Tbit/sec of streaming media anyone?) and have played around with all
sorts of methods for enabling super high speed TCP transfers.  More than
happy to help anyone with questions.  I'd also refer you to a post on
MUD-Dev I made on the topic (link not handy).

J


More information about the vworld-tech mailing list