[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?

On 1 Sep 2014, at 16:17, Noel Chiappa <jnc at mercury.lcs.mit.edu> wrote:

>> From: Detlef Bosau <detlef.bosau at web.de>
>> What is precisely the difference between flow control and congestion
>> control?
> I think it would be hard to beat the definitions given in Davies' '72 paper:
> Flow control is about end-to-end control on individual 'connections' (in the
> generic sense of the term, i.e. not limited to a reliable stream); i.e. for
> the transmitter to make sure it does not send data faster than the ultimate
> consumer can deal with it.
> Congestion control is about too much traffic being offered to _the network_
> between them, and often involves the interaction of _multiple_ connections
> (although a single connection can cause network congestion on its own, if the
> ends can produce/consume data faster than the network between them can carry
> it across.

Exactly.  I rephrase slightly when I lecture:

Flow control is an (purely) end-to-end mechanism so that the sender does not overwhelm the receiver.

Congestion control is a mechanism so that senders do not overwhelm the network, and requires interaction between the network and end systems.

I intend to type a longer response to the Autobahn analogy when I?m on the plane back to Europe tomorrow, because it is very interesting and I use analogies such as this when I?m lecturing, but a couple of quick notes now.  

First, while I expect that Detlef drives on the Autobahnen far more often than I, I?ve experienced congestion on multiple occasions, including multiple times on the A8 near Stuttgart, IIRC.  As a sanity check, I find in the Wikipedia (English) article [https://en.wikipedia.org/wiki/Bundesautobahn_8] "In combination with today's traffic this makes the A8 one of the most crowded and dangerous autobahns in Germany.?  The pots at [http://www.auguszt.de/english/pics/stau.jpg] and [http://a123.g.akamai.net/f/123/12465/1d/media.canada.com/idl/wist/20130820/wist_20130820_early_d2_01_i001.jpg] also seem to confirm that congestion is possible on the Autobahnen, and there are many hits in Google Scholar for ?Autobahn congestion? papers.  And it appears to be systemic: "A Deutsche Bank report says congestion on the autobahn system has reached crisis proportions with 20% of the 12,200km (7580 mile) network is heavily overloaded and chronically congested.? [http://tollroadsnews.com/news/german-toll-concession-closes-on-munich-augsburg-a8-autobahn]  (if I were publishing this, I?d look for the original citation, of course).

Second, cars are very different from packets in many respects, including physical existence, copies buffered at the source, range of velocities, laminar and sequential flow (vs. turbulent and parallel flow), and time scales of flow- and congestion-control feedback.  But I the proper analogue for automobile flow control would be getting destination-based feedback from a *flow* of cars (which rarely exists, because most cars are individual transactions rather than caravans going between the same source-destination).  Thus if a convoy (flow) of cars were all going to a carwash, the carwash might have a receive window to make sure that cars wouldn?t arrive faster than could enter the wash pipeline.  This is completely orthogonal to the problem of many flows of cars entering the road network and congesting at its intersections and interchanges.

This analogy is actually a very interesting case, and would make a good exam topic, as understanding where the analogue holds (and doesn?t) is a good indicator of understanding networking.


James P.G. Sterbenz   jpgs@{ittc|eecs}.ku.edu   jpgs at comp.lancs.ac.uk
www.ittc.ku.edu/~jpgs   154 Nichols ITTC|EECS   InfoLab21 Lancaster U
+1 508 944 3067      The University of Kansas     jpgs at tik.ee.ethz.ch
jpgs@{acm|ieee|comsoc|computer|m.ieice}.org     jpgsterbenz at gmail.com
gplus.to/jpgs  www.facebook.com/jpgsterbenz          jpgs at ittc.ku.edu