[e2e] What happen "after slow start"

Joe Touch touch at ISI.EDU
Tue Sep 27 16:12:40 PDT 2005



Jon Crowcroft wrote:
...
> what type of special knowledge could we have (aside from 
> pre-cognition and telepathy)? (note that case 1/ above is also a type
> of special knowledge - topological restriction on access to the
> bottleneck). well, we might know about time-of-day traffic variation
> and take advantage of that. we might have some sort of _oracle_ that
> we can consult about the distribution of mice/elephant TCP
> connections currently on the link, which might allow us to set TCP
> slow start parameters slightly more cleverly. We might do something
> radical - what could that be?
> 
> well, if everyone modifies slow start, in the absence of special
> knowledge, bad things may happen - but if a few modify it, then they
> may get an unfair advantage. But since people keep asking, when we do
> not have a magic oracle, is there somethign we could do that would be
> a way to get high utilsiation when the bottleneck link is in fact 
> under-utilisaed, and to avoid the awfully long bogus adventure that
> TCP has to engage upon to eventually fulfll the pipe-dream?
> 
> here's a strawman proposal:- apply the good old fashioned ethernet 
> randomness+contention back/off strategy to the slow start itself:
> 
> step 1  - host looks in a cache of destinations (in the host routing table)
> to find a last logged magic number (corresponds to last estimate of
> number of other folks using the bottleneck on that route)
> 
> step 2 - throw a dice with that many sides - 
> 
> step 3 - if this host's number comes up, we get to blast away with a 
> big initial send window and a go-faster increase function...,
> otherwise behave normally 

FYI, we have a small DARPA project here at ISI looking at that, called
"Adaptive Learning Networks", which is a kind of "smart RFC2140", i.e., it:

    Assumes:
	1) TCP does a good job converging on TCB state over time,
	   but a lousy job of guessing initial conditions

	2) TCP experiences stable stable net over the connection,
           and stable offered load

    Does the following:
	1) records TCB end-of-connection state, as well as
	   'kitchen sink' data (weather, endpoint loc, etc.)

	2) trains an adaptive learning module on the
	   state data (TCB state:kitchen sink state)

	3) sets TCBs of new connections based on predictive
	   lookup (i.e., lookup kitchen sink state and
	   retrieve expected TCB state)

This *could* to bad things over the long term. As you point out below,
there are ways to mitigate this:

	a) roll a dice to decide when to do it

	b) if predictions turn out to be bad, adjust the predictor

	c) remember that even a long-idle TCP connection will do some
	   of this anyway, so it just makes new TCPs look a little like
	   they were persistent

> Then there's two possible extreme outcomes:
> 
> a) the net was in use - we cause quite a bit of loss in the first
> RTT, but of course, (especialy if the net is runnign virtual queues
> and small buffers, as per damon wischik/nick mckeown et al work) this
> will settle down to normal behaviour real soon
>
> b) the net was idle, and we will fill it ok and not haev to wait ages.
> 
> over some large number of connection attempts like this, I reckon
> this is also fair
> 
> what is needed in the routers in terms of state to improve this hack?

I'm not sure it requires the participation of routers; we're doing
measurements to see if it just works anyway.

FYI.

Joe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : http://www.postel.org/pipermail/end2end-interest/attachments/20050927/caefef22/signature.bin


More information about the end2end-interest mailing list