[Ns-developers] GSoC TCP Congestion Avoidance
Alex Borisov
b0ric.alex at gmail.com
Sat Mar 20 18:16:53 PDT 2010
Thank you for your reply!
Here we go:
As listed at the 'Ideas' page:
> This project would attempt to provide a library of congestion avoidance
types, including test suites that exercised each one.
So what kinds of congestion control should be implemented? Are there any
highly prioritized?
I propose Reno. New-Reno, Vegas variant. And maybe SACK TCP variant, but it
also implies more work than average implementation (I also don't know the
right amount of work required by the GSoC project, so I need some help to
adjust it). And it is not all clear about current (Tahoe) implementation. Is
it fully implemented, has to be validated or corrected?
What information should I rely on implementing this features? Should I use
original papers (like Jac88 <ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z> or
this <ftp://ftp.cs.arizona.edu/xkernel/Papers/vegas.ps>) or I have to follow
strictly Linux implementation or use other sources?
And the last question is about implementation.
As I see there are two ways:
Firstly It can be done by adding new attribute to TcpSocket class and
implement it in TcpSocketImpl. But I don't like this way. 'cause, in my
opinion, it it will tangle TCP socket logic and it will be hard to add every
next congestion control variant.
The other way to do it is to create a set of classes like
TahoeTcpSocketImpl, RenoTcpSocketImpl and so forth. They will be very
similar except congestion control logic. Of course it isn't good idea to
have such set of similar classes 'cause it will be hard to maintain. But it
seems that it is better way than the first one.
Does somebody have any better ideas about this issue?
More information about the Ns-developers
mailing list