Chapter 6: Congestion
This chapter deals withTCP's congestion-reduction mechanisms. The chapter
also contains some other, more general, discussion of congestion management
issues.
TCP's congestion-control mechanisms were pretty much finalized by 1988, at
a time when the nascent Internet was facing severe congestion issues. These
mechanisms have been, overall, very successful over a decade later even though
they were originally developed for an Internet with only two to three
transcontinental connections at a time. Today there are thousands of
such simultaneous connections. An active topic of current Internet research
is to extend TCP's congestion algorithms to other, non-TCP-based, protocols
(eg RealAudio).
Section 6.3 - TCP Congestion control
TCP tries to monitor the connection for signs of congestion, and, whencongestion
is encountered, tries to reduce the flow in order to reducecongestion. Specifically,
TCP interprets lost packets as congestion indicators.On a typical Ethernet,
perhaps one packet in 100,000 might be lost purelyto noise and error, but
one in 10 might be lost due to congestion. Interpretingloss as a sign of
congestion is usually a pretty safe bet.
TCP reduces the rate of flow by reducing the window size. Specifically,
TCP maintains a variable CongestionWindow, which is an upper bound on the
window size used.
The general strategy TCP uses is sometimes called additive increase/multiplicative
decrease. On loss, TCP (eventually) reduces CongestionWindow by a factorof
2 (the multiplicative decrease). Each windowful of successful transmissions,
on the other hand, causes CongestionWindow to be incremented by 1 (theadditive
increase). TCP is thus quick to reduce the window, but slow togrow it.
Actually, whenever TCP starts up cold or restarts (initially, or after
a packet loss) it sets CongestionWindow to 1. It then enters the so-called
"slow-start" phase, where the window size doubles for each roundtrip.
Study Questions
Exercises
14 Counting RTTs in slow start
15 Simple congestion-control example
20 TCP congestion at a router R
24 Detecting whether TCP implementations are behaving
25 Examining a TCP trace diagram
28 Sharing connections
39a Two kinds of congestion (don't do 39b)