[MUD-Dev] TCP Vegas

Bruce Mitchener bruce at puremagic.com
Mon Oct 15 19:33:28 CEST 2001


Eli Stevens wrote:

> Is this something that could be switched out at the application
> level (presumably by a different set of libraries)?  Or is this
> something closer to the OS / network driver level?
 
> If it is just the libraries one uses, does anyone have any
> pointers to free libraries that implement it (Linux in particular
> ;)?

This sort of thing isn't something that is visible in user space in
Linux.  You can implement a TCP-like protocol on UDP of course, or
whatever your needs may be.  Something that I don't think has
recently been mentioned on MUD-Dev is PGM, which has an open source
implementation around somewhere (called OpenPGM I think).

There was some work done up until sometime in 1999 on a Vegas patch
for the 2.2 and 2.3 kernels which seems to have died.  A quick peek
at the 2.4.5 kernel source didn't show any signs that the patch had
been incorporated.  And it looks like in general, the Vegas work
wasn't looked upon favorably by the IETF from random comments that
I'd seen around on the net in some quick google searches.  (Which is
not to say that the ideas from the Vegas work wouldn't be useful in
a different/custom protocol in a stolen/borrowed form as Daniel
Harman said.)

Another interesting bit of work is "Almost TCP over UDP":

http://www.epm.ornl.gov/~dunigan/netperf/atou.html

-- begin quote --
    As part of our efforts in improving bulk transfers over high
    speed, high latency networks, we have developed an instrumented
    and tunable version of TCP that runs over UDP. The UDP TCP-like
    transport serves as a test-harness for experimenting with
    TCP-like controls at the application level similar to TReno.
    The implementation provides optional event logs and packet
    traces and can provide feedback to the application to tune the
    transport protocol, much in the spirit of Web100 but without the
    attendant kernel modifications. Part of the motivation for
    developing such a test harness arose from bugs in the AIX TCP
    stack.

    The experimental UDP protocol includes segment numbers, time
    stamps, selective ACKs, optional delayed ACKs, sliding window,
    timeout-retransmissions with rate-based restart, bigger initial
    window, bigger MSS, burst avoidance, congestion avoidance (but
    more aggressive, experimenting with initial window size and AIMD
    parameters). The test harness consists of a configurable client
    (transmitter) and an ACK-server (receiver). The transmitter
    supports Reno, NewReno, and SACK/FACK. (For a quick review of
    TCP, visit our bulk transfer page.
--- end quote ---

Near the end of that page, they mention that:

    "We are working on a Vegas-version, though Vegas doesn't compete
    well with standard congestion algorithms on the same link."

> More info!  More info!  :)

Hope that helped and provided some useful info.  But there's a lot
of useful and informative research in this field from several
directions and sources.  Some searching on google or citeseer ought
to turn up plenty of things.

  - Bruce

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list