Subject: Re: Melting down your network [Subject changed]
To: Christos Zoulas <christos@tac.gw.com>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-kern
Date: 03/28/2005 16:30:30
In message <h2imh2-uuc.ln1@morgoth.gw.com>Christos Zoulas writes
>In article <E1DG3gL-0007l4-00@smeg.dsg.stanford.edu>,
>Jonathan Stone  <jonathan@dsg.stanford.edu> wrote:

>I don't understand how the discussion got sidetracked to: if this
>is the right thing to do, or how the application should be programmed,
>and what protocol it should be using.

Uh... because that's pretty much where we ended up, Emmanuel what he
was really trying to accomplish/k. what What Emmanuel said left me
with a moral duty to persuade him *not* to do that (or at least to
keep it private) becuase it was both "Bloody Stupid" (in the Terry
Pratchett the sense) and dangerous?



> The point is much simpler:
>How send(2) should behave when the interface queue gets full. 

No Christos, that point is not open for discussion.  There one and is
only one acceptable answer: such a scenario is congestion, and under
such congestion we _must_ drop packets.  If for nothing else, to curb
congestion by misbehaving apps.

To guarantee stability, I believe a stronger push-back is required
than can be given by merely sleeping until the interface queue has
space: the classic multiplicative decrease part of AIMD.

If you want to disagree, please first re-read Van Jacobsn's paper on
congestion control, including the cited Royal Society paper with the
underlying justification.  (I have to run to a meeting; I will send a
full citation later this evening if you wish.)

Jon Crowcroft has alluded, on the e2e mailing list, to newer results
in control theory, based on newer analysis in the complex plane, which
may allow a looser response to congestion; I have never found the
details alluded to. If you can, I'd be glad to discuss them.



>Let's concentrate on that please instead of hijacking the discussion.

No. Sorry Christos, but congestion control -- packet drop under
control -- *is* the point of the discussion.


>At this point we know the following:

   [what linux and *BSDs do]

Valid facts, but I see them largely irrelevant, insofaras the need to
avoid congestion by malformed apps will trump whatever you'd like to
do differently that prevents packet drop.

The key point here is that any well-behaved OS _should_ stop Emmanuel
from creating the sustained congestion he is deliberately setting out
to create.