Description
Scalable TCP implementation in |ns3|
------------------------------------------------
This chapter describes Scalable TCP implementation in |ns3|. This implementation is contained in the following files:
.. sourcecode:: text
src/internet/model/tcp-scalable.{cc,h}
Model Description
*****************
Scalable improves TCP performance to better utilize the available bandwidth of a highspeed wide area network by altering NewReno congestion window adjustment
algorithm. When congestion has not been detected, for each ACK received in an RTT, Scalable increases its cwnd per:
cwnd = cwnd + 0.01 (1)
Following Linux implementation of Scalable, we use 50 instead of 100 to account for delayed ACK.
On the first detection of congestion in a given RTT, cwnd is reduced based on the following equation
cwnd = cwnd - ceil(0.125 * cwnd) (2)
References
==========
.. [Kelly2003] Tom Kelly. 2003. Scalable TCP: improving performance in highspeed wide area networks. SIGCOMM Comput. Commun. Rev. 33, 2 (April 2003), 83-91. DOI=http://dx.doi.org/10.1145/956981.956989
Validation
==========
The Scalable TCP model is tested using :cpp:class:`TcpScalableTestSuite` class defined in `src/internet/test/tcp-scalable-test.cc`. This test suit can be run using the following commands:
::
$ ./waf configure --enable-examples --enable-tests
$ ./waf build
$ ./test.py -s tcp-scalable-test
Example
=======
Scalable TCP can be simulated using the example `tcp-variants-comparison.cc` located in ``examples/tcp``.
Patch Set 1 #Patch Set 2 : Removed ss string from scalable test and modified TcpVariantsComparison #
Total comments: 14
Patch Set 3 : Addressed Nat's comments #
MessagesTotal messages: 4
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||