
Go backward to Announcements
Go up to Top
Go forward to Congestion control in TCP
Congestion Control
- Last time, I briefly reviewed the need for congestion control.
- When routers/switches get overloaded, they drop packets.
- If the hosts whose packets get dropped simply react by
sending duplicates, the congestion is likely to increase
(in a vicious cycle).
and the difference between congestion control and flow control.
- Congestion control is a resource allocation problem. We are allocating
the transmission and buffering capacity of network switches to
handle the flow of packets from end stations.
- Like many allocation problems, there are two basic approaches:
- Avoidance/Prevention -- come up with allocation policies
that make congestion impossible
- This is a reasonable approach in a network based
on virtual circuits. In such a network, when one
machine makes a connection to another, all intermediate
switches can reserve capacity for the connection
(or reject the connection if the resources are not
available).
- Detection and Recovery -- include mechanisms that allow
the network to detect the onset of congestion and
reduce network usage in response.
- This approach is more appropriate in the TCP/IP
world where there are no explicit connections
at the lowest level (IP).
- The prevention approach tends to waste resources on average
since many connections will not continuously used the
capacity allocated to them.
- To avoid congestion, each router will need to reserve
enough capacity for the sum of the maximum bandwidths
of all outstanding connections even though most
connections will transmit below their maximums most
of the time.
- The recovery approach will waste resources during the transient
periods where the network does become congested.
- Given our loyalty to TCP/IP, we will consider the detection/recovery
mechanisms built into TCP for congestion control.
Computer Science 336
Department of Computer Science
Williams College