Note on Experimental High-speed TCP
The experimental highspeed TCP code was added to NS in December 2001, and is
described in the
CVS log for tcp.cc, as follows:
- 1.130 Sun Dec 30 4:52:31 US/Pacific 2001 by sfloyd
Added wnd_option_=8 for experimental algorithm for highspeed TCP.
Also added two variables for tracing, ncwndcuts_ (number of times
slowdown() was called), and necnresponses_ (number of times slowdown()
was invoked because of ecn marks).
Code from Sylvia Ratnasamy.
-
Fri Mar 29 5:06:33 US/Pacific 2002 by sfloyd
Adding variables for experimental high-speed TCP, and cleaning up the
code. Changes by Sally Floyd and Evandro de Souza.
The modification to slow-start was added in April 2002, and
is
described in the
CVS log for tcp.cc, as follows:
- Tue Apr 23 5:07:17 US/Pacific 2002 by sfloyd
Added max_ssthresh_ to limit the slow-start threshold during
the initial slow-start.
Validated in "./test-all-tcpHighspeed tcp1A" in tcl/test.
- Mon Apr 29 1:56:39 US/Pacific 2002 by sfloyd
Modifications to the initial slow-start when the new variable
max_ssthresh_ is used to limit the initial slow-start. During the
initial slow-start, the sender increases its congestion window
by at most max_ssthresh_/2 packets each round-trip time, when
max_ssthresh_ is not set to zero. When max_ssthresh_ is set to zero,
it is ignored, and the standard slow-start is used.
The validation test can be run in
tcl/lib with the command "./test-all-tcpHighspeed".
The new TCP variant is specified with the tcl command:
Agent/TCP set windowOption_ 8
The modified slow-start is specified with the tcl command:
Agent/TCP set max_ssthresh_ 100
The To-do list for the HighSpeed TCP code in NS, in case anyone
is interested in taking it on:
- The current HighSpeed TCP code in NS calculates the increase and decrease parameters
anew for each packet. The code would run much more efficiently if
a table was created at the beginning of the simulation, as described
in the internet-draft, and
the TCP sender simply looked up its increase or decrease parameter
in the table.
Old
simulation scripts are also available,
but it is better to use the more recent ones on
Evandro de Souza's web page.
Last updated: June 2002.