[p2p-hackers] UDP file transfer link speed identification
Daniel Stutzbach
agthorr at cs.uoregon.edu
Thu Jul 21 21:59:20 UTC 2005
On Thu, Jul 21, 2005 at 01:49:01PM -0700, David Barrett wrote:
> However, I'm finding this surprisingly tricky. Either I ramp up too
> slow, or I ramp up and down erratically. I've considered some FSM
> approaches, and some formulaic approaches, and I still haven't come up
> with something I like. I've read the TCP RFC for guidance, but it
> leaves the specifics left as an exercise to the reader. Other than
> that, I'm not sure where else to read for inspiration.
TCP ramps up and down erratically. To a certain extent that's OK.
Make sure to read *all* the TCP RFCs; there are several of them. I
recommend reading in the following order:
Van Jacobson, "Congestion Avoid and Control", SIGCOMM 1988.
http://www-nrg.ee.lbl.gov/papers/congavoid.pdf
RFC 2581
RFC 3782
RFC 3517
There's a standard experiment to test whether your implementation is
"TCP-friendly" (i.e., that it won't starve TCP, nor will it be starved
by TCP).
Setup a network configuration like this:
host ------ router ------------ router ----------- host
Where the link between the two routers is the bottleneck link, and the
host connections are much faster.
Then, start up a large TCP flow between the two hosts (transfer a
gigabyte file, for instance with HTTP/FTP), and start up a flow using
your protocol.
Plot the bandwidth each flowing is using as a function of time. They
should stabilize so that both flows get around half the bottleneck
bandwidth.
--
Daniel Stutzbach Computer Science Ph.D Student
http://www.barsoom.org/~agthorr University of Oregon
More information about the P2p-hackers
mailing list