Abstract.
In a network of TCP flows, the available capacity ends up
being shared between the flows in a particular way. This allocation is
the solution to a certain optimization problem. In effect, therefore,
TCP is a distributed algorithm for solving this optimization problem.
This can be a useful way to think about TCP: it prompts questions like
"If we change the capacity, how does the solution change?" and "Is this
the optimization problem that we want the network to solve?"
This "teleological perspective" is in fact rather general. In this talk
I will illustrate it with examples from packet scheduling and road traffic, as well as TCP.