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

[ih] FC vs CC Re: [e2e] Fwd: Re: Once again buffer bloat and CC. Re: A Cute Story. Or: How to talk completely at cross purposes. Re: When was Go Back N adopted by TCP

On 08/25/2014 10:09 AM, Detlef Bosau wrote:
> Am 23.08.2014 um 05:34 schrieb Jack Haverty:
>> It's been a looonnggg time, but I still remember studying a lot of
>> mathematics about 50 years ago - queueing theory, graph theory, etc. 
>> Used to be able to do it too.
>> My recollection is that terms such as "flow control" and "congestion
>> control" were used in mathematics, well before they were used in
>> computer networks. 
> Hm. I read quite a lot of mathematical models used for computer networks.
> However, I never happened to see, how flow control and congestion
> control were modelled. The models were made that abstract, that
> congestion control and flow control vanished.
> I really appreciate concrete pointers here.
> Detlef


I suggest you research the literature of the "Operations Research"
branch of mathematics.   That is where pure mathematics concepts of
queueing theory et al. were applied to real-world problems.

I did a quick google search of ("queueing theory" "flow control") and
found this example of a mathematical paper discussing queues and "flow
control" in computer networks:


Here's another one, about flow control in "supply chain networks" in the
manufacturing environment:


What we might call "packet loss" they might call "supply chain disruption".

I suspect most of the material you may find online will be about the use
of mathematics in computer networks.  Unfortunately, most earlier work,
before we had the Internet, is probably not available online - it may
only be in university libraries.  So that's where you may be able to
find papers on flow control in pre-computer environments like railroads.

Also, the basic mathematical concept which we networking people call
"flow control" might have been described using different terminology in,
for example, the old railroad or other business examples.

I suggest researching Bell Laboratories work from before 1970.   They
did a lot of theoretical work modelling the telephone network, and in
particular the issues of managing many simultaneous voice calls.  The
problem of designing the telephone network to minimize the probability
of busy signals is about the management of multiple simultaneous flows
and controlling congestion on circuits in the interior of the network.  
But they may have used different terminology.

My recollection is also that, as you said, the mathematical models were
so abstract that they were not very useful in the real world of computer
networks.  Mathematics could be used to model hypothetical cases, and
was useful to see how things might behave in theory.   The real-world
was sufficiently chaotic and unpredictable that it was difficult to
model with sufficient accuracy.   That's why the Internet was built by a
continuing series of experiments and refinements.

At one point, someone published a mathematical paper that proved that
the ARPANET would lock up and all traffic flows would stop.   This cause
some great concerns among the users of the ARPANET who were depending on
it.  Our analysts at BBN examined that paper in great detail and
concluded that it was mathematically correct -- but one of the
assumptions made in the model was that every packet switch computer was
started at the same moment in time, and all those computers ran at
exactly the same speed so instructions in all machines were executed in
total synchrony.   We advised the users that, if such a situation could
be created, the ARPANET would crash, but that the likelihood of that
situation of perfect synchrony was so tiny that there was no reason to
worry.  It was a mathematically interesting theoretical problem, but not
a real-world concern.

I can't recall when I first encountered the terms "flow control" or
"congestion control" in computer networks, or seeing any formal
definitions of those terms. 

My personal view is that "flow control" refers to the management of a
single flow of information between two end-points.  It could be a TCP
connection, or a telephone call, or a stream of railroad cars between a
factory and warehouse.   There are mechanisms in the endpoints, as well
as in the interior, to manage that flow.

Conversely, "congestion control" refers to the management of a set of
many flows as they compete for resources.   If there are too many flows
going through a bottleneck, congestion happens and may result in broken
flows or "busy signals".

These two phenomena interact in complex ways, so it was common in the
early Internet work to discuss them both when working on any particular
problem.   For example, the TCP algorithms in host computers would
interact with the routing algorithms in switching components, the
error-control algorithms on individual circuits, the load-levelling
schemes of server farms, and almost anything else you can imagine that's
involved in regulating the flows through the Internet.

IMHO, the Internet is way more complex than we know how to model.  It's
probably at the same level of complexity as other hard problems -
weather, astronomy, etc.

We didn't model it.  We just built it.

Hope this helps,
/Jack Haverty

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://elists.isoc.org/pipermail/internet-history/attachments/20140825/c5c0d65a/attachment.html>