[Ns-developers] Add-in module with Compound TCP control congestion algorithm
Tom Henderson
tomh at tomh.org
Sat Jun 14 21:05:02 PDT 2008
Dmitry, inline below:
Dmitry Sinelnikov wrote:
> Hello to all ns-3 developers,
>
> I am a representative of Nizhniy Novgorod State University, Russia
> (Radiophysical faculty, "Information Systems and Technologies (in
> radiophysics and telecommunications)" occupation). I had a chance to
> use Ns-2 (v 2.33) in my Masters Degree work which is related to
> developing of a Loss Discrimination Algorithm (LDA) to improve TCP
> performance over wireless networks. It was decided to implement and
> integrate this algorithm as an additional feature of Compound TCP
> congestion control algorithm which is the latest protocol announced
> in Windows OS.
>
> So implementation of Compound TCP in Ns-2 was the first task during
> the work. I know that there was a special Linux patch for NS 2.31
> (backward compatible with versions 2.30 & 2.29) which then became a
> permanent part of Ns 2.32 and finally Ns 2.33 (this patch web page is
> the following:
> http://netlab.caltech.edu/projects/ns2tcplinux/ns2linux/index.html (*)).
> It contains implementation of numerous Linux TCP congestion control
> algorithms. Compound TCP is one of them.
>
> But simple simulations showed that this algorithm result didn't
> legitimate our expectations (basically according to the CTCP official
> design document; event notes at (*) state that this is an experimental
> implementation). Thus it was decided to make our own CTCP model. It was
> implemented according to the latest documentation regarding CTCP and
> works as expected.
>
> The following files contain all necessary changes
>
> \ns-2.33\tcp\tcp.cc # core of the algorithm
> \ns-2.33\tcp\tcp.h # several new declarations
> \ns-2.33\tcp\tcp-reno.cc #minor changes in window() function
> \ns-2.33\tcl\lib\ns-default.tcl #setting default values to several new variables
> \ns-2.33\queue\drop-tail.cc #minor change correcting queue bug (which
> was not corrected even after submitting a "bug report" about half of a year ago)
>
> This congestion control algorithm is a building-up above TCP Reno or
> Newreno algorithm. It can be turned on just by switching "wnd_option_"
> to a specified value in the tcl script. So it does not require huge code
> review and risky changes.
>
> So the general question is if our implementation could become a part of
> ongoing NS-3 development process? We understand that NS is proprietary
> software and it is closed for new add-in / patches implementation for
> non-ns-developers so to say. But we suggest a freeware implementation of a
> standard algorithm which could be a part of future NS releases and
> available for all ns-users in their research.
Neither ns-2 nor ns-3 is proprietary or closed for new add-ins or
patches; quite the opposite. Several groups have been adding in new
models to each over the past year. Please review these pages for some
guidance and status:
ns-2: http://nsnam.isi.edu/nsnam/index.php/Contributing
http://nsnam.isi.edu/nsnam/index.php/Roadmap
ns-3: http://www.nsnam.org/contributing.html
http://www.nsnam.org/wiki/index.php/Current_Development
>
> Any comment / answer concerning this theme will be appreciated. If future
> discussion takes place I will prepare all code changes and make them
> available for downloading.
>
There are several options for contributing (posting as contributed code,
merging into the main source tree) but they all are based on making the
code available and announcing it, so I would recommend that regardless
of the option you choose.
- Tom
More information about the Ns-developers
mailing list