Skip to contentSkip to conversation

Long-term TCP connections suffer on high-latency links.

DISCUSSION Ben Greear 4 participants 5 messages Jul 30, 2004

Subsystems (2)
lore
Share & tools
lore

Ben Greear

author
#0 lore raw

I have been running a TCP connection over a link with 2 seconds round-trip-time.

It started off well, about 16Mbps in both directions (cwnd trained up to 2100 after a few seconds).

After several hours of running, it is now doing only about 2.2Mbps in one direction, and 3.4Mbps in the other direction. I have watched the cwnd slowly increasing by one every 2-5 seconds (it is at 440 on one side and 655 on the other as I type).

Occasionally, the cwnd drops in half or maybe even goes to zero.

The un-acked packets is always == snd_cwnd.

My suspicion is that for connections needing a cwnd of 2000 or so, the cwnd does not grow nearly fast enough after the connection has been established for a while. My naive suggestion would be to increase cwnd by a certain percentage instead of a fixed number (1).

But, TCP has been around a long while, and surely other people have noticed things like this, so what am I missing?

Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#1 lore raw

Ben,

Quoted 2 lines

But, TCP has been around a long while, and surely other people have noticed things like this, so what am I missing?

There are a number of research groups working on addressing the inefficiencies of the current TCP (NewReno) at large windows in both theory and experimental work.

The experimental work would probably be more interesting for this mailing list. The protocols (that I know) that try to address this issue are:

Highspeed TCP: http://www.icir.org/floyd/hstcp.html
Scalable TCP: http://www-lce.eng.cam.ac.uk/~ctk21/scalable/
FAST TCP: http://netlab.caltech.edu/FAST
H-TCP: http://hamilton.ie/net/main.htm?index
BIC TCP/CUBIC: http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/
a related project for finding performance bottlenecks in the network stack is web100: http://www.web100.org

As of 2.6.6 kernel, TCP Westwood, which mainly addresses issues in wireless networks, BIC TCP, and TCP Vegas are all included besides TCP NewReno, although not enabled by default. The others can be downloaded from the given websites. There are probably others that I forgot to mention. Apologies to them in advance.

Making the current TCP more ``efficient'' by increasing cwnd faster is not an adequate solution, although doing that will likely produce higher throughput in today's Internet. We also must consider issues such as fairness to other flows, stability of the network in terms of queue oscillation and packet loss, and how well these solutions would scale in future networks. A lot of experiments are still needed to determine which is the most appropriate under what circumstances.

Cheng

author
#2 lore raw
Quoted 1 line · Cheng Jin

As of 2.6.6 kernel, TCP Westwood, which mainly addresses issues in wireless networks, BIC TCP, and TCP Vegas are all included besides TCP NewReno, although not enabled by default. The others can be downloaded from the given websites. There are probably others that I forgot to mention. Apologies to them in advance.

Any chance Westwood will get into the 2.4 kernel as well?

Quoted 2 lines

Making the current TCP more ``efficient'' by increasing cwnd faster is not an adequate solution, although doing that will likely produce higher throughput in today's Internet. We also must consider issues such as fairness to other flows, stability of the network in terms of queue oscillation and packet loss, and how well these solutions would scale in future networks. A lot of experiments are still needed to determine which is the most appropriate under what circumstances.

Both of the two that I read about (Highspeed TCP and FAST tcp) did indeed increase the cwnd faster, unless I mis-understood the papers. Granted they do it in clever ways...

Thanks for the links.

Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#3 lore raw
Quoted 18 lines · Ben Greear
Quoted 5 lines · Cheng Jin

As of 2.6.6 kernel, TCP Westwood, which mainly addresses issues in wireless networks, BIC TCP, and TCP Vegas are all included besides TCP NewReno, although not enabled by default. The others can be downloaded from the given websites. There are probably others that I forgot to mention. Apologies to them in advance.

Any chance Westwood will get into the 2.4 kernel as well?

Quoted 7 lines

Making the current TCP more ``efficient'' by increasing cwnd faster is not an adequate solution, although doing that will likely produce higher throughput in today's Internet. We also must consider issues such as fairness to other flows, stability of the network in terms of queue oscillation and packet loss, and how well these solutions would scale in future networks. A lot of experiments are still needed to determine which is the most appropriate under what circumstances.

Quoted 3 lines

Both of the two that I read about (Highspeed TCP and FAST tcp) did indeed increase the cwnd faster, unless I mis-understood the papers. Granted they do it in clever ways...

At least H-TCP does increase the alpha parameter to increase the rate of change, but it also changes the beta parameter in accordance with the alpha, this is done to maintain fairness and the other good values we want to promote.

You can find the patches for Linux 2.4.23 on the Hamilton website at:
http://hamilton.ie/net/main.htm?index

The parameters are changed in a mode-switch method so that H-TCP will work together with TCP and will work also on low Bandwidth Delay Product networks.

Baruch

#4 lore raw
In reply to Ben Greear
Quoted 9 lines · On Thu, 29 Jul 2004 23:25:36 -0700 Ben Greear <[email protected]> wrote:
Quoted 5 lines · Cheng Jin

As of 2.6.6 kernel, TCP Westwood, which mainly addresses issues in wireless networks, BIC TCP, and TCP Vegas are all included besides TCP NewReno, although not enabled by default. The others can be downloaded from the given websites. There are probably others that I forgot to mention. Apologies to them in advance.

Any chance Westwood will get into the 2.4 kernel as well?

Both BIC and westwood are in 2.4 now.