Description
TCP Vegas implementation in |ns3|
------------------------------------------------
This chapter describes TCP Vegas implementation in |ns3|. This implementation is contained in the following files:
.. sourcecode:: text
src/internet/model/tcp-vegas.{cc,h}
Model Description
*****************
TCP Vegas is a pure delay-based congestion control algorithm implementing a proactive
scheme that tries to prevent packet drops by maintaining a small backlog at the bottleneck queue.
Vegas continuously samples the RTT and computes the actual throughput a connection achieves using
Equation (1) and compares it with the expected throughput calculated in Equation (2).
The difference between these 2 sending rates in Equation (3) reflects the amount of
extra packets being queued at the bottleneck.
actual = cwnd / RTT (1)
expected = cwnd / BaseRTT (2)
diff = expected - actual (3)
To avoid congestion, Vegas linearly increases/decreases its congestion window to ensure
the diff value fall between the 2 predefined thresholds, alpha and beta.
diff and another threshold, gamma, are used to determine when Vegas should change from
its slow-start mode to linear increase/decrease mode.
Following the implementation of Vegas in Linux, we use 2, 4, and 1 as the default values
of alpha, beta, and gamma, respectively.
References
==========
.. [Brakmo1995] L. S. Brakmo and L. L. Peterson, "TCP Vegas: end to end congestion avoidance on a global Internet,"
in IEEE Journal on Selected Areas in Communications, vol. 13, no. 8, pp. 1465-1480, Oct 1995.
DOI=http://dx.doi.org/10.1109/49.464716
Validation
==========
The TCP Vegas model is tested using :cpp:class:`TcpVegasTestSuite` class defined in `src/internet/test/tcp-vegas-test.{cc,h}`.
This test suit can be run using the following commands:
::
$ ./waf configure --enable-examples --enable-tests
$ ./waf build
$ ./test.py -s tcp-vegas-test
Example
=======
TCP Vegas can be simulated using the example `tcp-variants-comparison.cc` located in ``examples/tcp``.
Patch Set 1 #
Total comments: 4
MessagesTotal messages: 1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||