Subject: Re: Melting down your network [Subject changed]
To: Jonathan Stone <jonathan@dsg.stanford.edu>
From: Christos Zoulas <christos@zoulas.com>
List: tech-kern
Date: 03/28/2005 19:44:50
On Mar 28, 4:30pm, jonathan@dsg.stanford.edu (Jonathan Stone) wrote:
-- Subject: Re: Melting down your network [Subject changed]
| > 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.
But it does not curb congestion. I can keep spinning and sending.
| 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.
That is the job of a higher level protocol/api not send()
| 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.
The point of the discussion is the behavior of send() on a full
interface. If an application decided to flood the network, it is
not the job of the kernel to stop it (in UDP).
christos