Title: Principles of Congestion Control
1Principles of Congestion Control
EECS 325/425, Fall 2005 October 10
2Chapter 3 outline
- 3.1 Transport-layer services
- 3.2 Multiplexing and demultiplexing
- 3.3 Connectionless transport UDP
- 3.4 Principles of reliable data transfer
- 3.5 Connection-oriented transport TCP
- segment structure
- reliable data transfer
- flow control
- connection management
- 3.6 Principles of congestion control
- 3.7 TCP congestion control
3Principles of Congestion Control
- Congestion
- informally too many sources sending too much
data too fast for network to handle - different from flow control!
- manifestations
- lost packets (buffer overflow at routers)
- long delays (queueing in router buffers)
- a top-10 problem!
4Causes/costs of congestion scenario 1
- two senders, two receivers
- infinite file length
- one router, infinite buffers
- no retransmission
- random data arrival at router
- large delays when congested
- maximum achievable throughput
1/(C/2 ?in)
5Causes/costs of congestion scenario 2
- one router, finite buffers
- sender retransmission of lost packet
Host A
lout
lin original data
l'in original data, plus retransmitted data
Host B
finite shared output link buffers
6Causes/costs of congestion scenario 2
l
l
- always (goodput)
- perfect retransmission only when loss
- retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
in
out
l
l
gt
in
out
l
in
l
out
- costs of congestion
- more work (retransmission) for given goodput
- unneeded retransmissions link carries multiple
copies of packet
7Causes/costs of congestion scenario 3
l
- four senders
- multi-hop paths
- timeout/retransmit
l
Q what happens as and increase?
in
in
lout
lin original data
l'in original data, plus retransmitted data
finite shared output link buffers
finite shared output link buffers
8Causes/costs of congestion scenario 3
lout
- Another cost of congestion
- when packet dropped, any upstream transmission
capacity used for that packet was wasted!
9Congestion collapse happens often
- Another example
- All flows send data at the same rate ?in.
- All links have uniform capacity C.
- Q what is the expected good-put of the first
flow as a function of R?
?
?in
C
C
C
?in
?in
10Approaches towards congestion control
Two broad approaches towards congestion control
- Network-assisted congestion control
- routers provide feedback to end systems
- single bit indicating congestion (SNA, DECbit,
TCP/IP ECN, ATM) - explicit rate sender should send at
- End-end congestion control
- no explicit feedback from network
- congestion inferred from end-system observed
loss, delay - approach taken by TCP
11Different implementations of congestion control
- Window-based
- Sending rate is determined by a window size
- Window size increases/decreases when network
conditions change (need to find out) - Clocked (window adjustment on ACKs and
losses/timeouts) - Rate-based
- Sending rate is calculated based on information
from the network or the other end host. - Other implementation issues often implemented at
the sender side, but the receiver may also
determine (in some schemes).
12Network-assisted CC Example
- ATM ABR congestion control
- Much different from TCP congestion control
- Virtual circuit networks
- Per-flow state in switches
13Case study ATM ABR congestion control
- ABR available bit rate
- elastic service
- if senders path underloaded
- sender should use available bandwidth
- if senders path congested
- sender throttled to minimum guaranteed rate
14Case study ATM ABR congestion control
- Data cells
- Special bit to indicate congestion in switches
- RM (resource management) cells
- sent by sender, interspersed with data cells
- RM cells returned to sender by receiver, with
bits intact - Multiple bits to indicate congestion level, and
explicit rate
15Case study ATM ABR congestion control
- Bits in RM cell set by switches
(network-assisted) - NI bit no increase in rate (mild congestion)
- CI bit congestion indication
- EFCI bit in data cells set to 1 in congested
switch - if data cell preceding RM cell has EFCI set,
sender sets CI bit in returned RM cell - two-byte ER (explicit rate) field in RM cell
- congested switch may lower ER value in cell
- sender send rate thus minimum supportable rate
on path
16Readings
- Section 3.6 Principles of Congestion Control
- Section 3.7 TCP Congestion Control