[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ih] Why did congestion happen at all? Re: why did CC happen at all?

    > From: Brian E Carpenter <brian.e.carpenter at gmail.com>

    > I vividly recall Ross Callon speaking about why QOS routing doesn't
    > work ... using the analogy of dancing in your own shadow, with a
    > practical demonstration that it can't be done.

Err, no.

First, 'QoS routing' != 'load-dependent routing' (depending on how you define
'QoS routing'). As John Day says, they are very different time scales. I take
'QoS routing' to mean 'different traffic groups have their paths selected
independently, based on some characterics of the traffic _and_ links; and
'characteristics' can be an almost-infinite range, not just bandwidth and
delay (which are so over-engineered these days that it's almost not worth
thinking about them any more, in path selection). E.g. some traffic might
want to keep off links which are in country 'X', whereas other traffic might
be OK with going through 'X'.

Although I suppose 'low delay' - the main measurable impact of congestion -
might be seen as a QoS type, but to bring up John's point again, the
time-scale can be different; there's a _big_ difference between _baseline_
high delay (e.g. a satellite hop), which one would approach with classic QoS
type mechanisms, versus _dynamic_ (i.e. queuing) delays, which are _so_
dynamic that they almost inevitable will demand a specialized mechanism.

Second, it is not at all impossible to do load-dependent path selection. The
ARPANET showed it could be done (albeit on a 'smallish' network). TLi has
alluded to sophisticated damping. But the best way to approach the
instability issue is just to cut the Gordian knot and get rid of the feedback

One can do this if one uses a Map-Distribution/Explicit-Path-Selection
architecture (one the many charms of that design quadrant). If one picks a
path for flow X, and sets it up (doing reservations if needed), and _then
doesn't vary it_ (unless a link fails), then by definition there cannot be
any oscillation. As a nice side-effect, this also allows one to do 'pull' on
the distribution of the load level information - in the setup - not 'push',
thereby attacking another of the fundamental issues with large-scale
load-dependent routing.

This is a 'not enough rooom in this margin' gloss on a very complex issue
(the interaction with the nice stat mux property that Vint alluded to is an
issue, for example), but since this is the Internet-_History_ list, not the
Network-_Design_ list, I'm going to stop there.

Although of course, in practice (not theory), this is all irrelevant, since
<sarcasm>as we all know, routing == BGP, and there is no such thing as
non-BGP-based routing</sarcasm>.

I fear the Internet has reached a stage of ossification, where nothing will
change until something entirely new comes along, and does to it what the
internal-combustion engine did to buggy whips.