Ten years ago, end-to-end congestion control in the Internet was
characterized by routers with simple packet scheduling and queue
management; a single best-effort class of service; and a single
dominant transport protocol, TCP, that responded to packet drops as
indications of congestion. Changes since then have included the
emergence of the web and the initial deployment of a global web
caching infrastructure; the initial deployment of active queue
management (e.g., RED) and sophisticated scheduling mechanisms in
routers; modifications to TCP's congestion control mechanisms (e.g.,
Selective Acknowledgement); and the problematic deployment of new
traffic classes (e.g., IP multicast).
The dynamics of end-to-end congestion control will be affected even
further by additional changes: the addition of Explicit Congestion
Notification and of new congestion control mechanisms (e.g., reliable
multicast); the deployment of integrated and differentiated services,
accompanied by new pricing structures; and more. This talk gives
an idiosyncratic look at the evolution of end-to-end congestion
control in the Internet, with particular attention to the dangers
(or lack of dangers) of congestion collapse, the need for mechanisms
in the network to support the use of end-to-end congestion control;
and the unanticipated interactions between different proposed
changes.