Transport Layer 3-2
Principles 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!
Transport Layer 3-3
Causes/costs of congestion: scenario 1
two senders, two receivers
one router, infinite buffers
no retransmission
large delays when congested
maximum achievable throughput
unlimited shared output link buffers
Host Alin : original data
Host B
lout
Transport Layer 3-4
Causes/costs of congestion: scenario 2
one router, finite buffers sender retransmission of lost packet
finite shared output link buffers
Host A lin : original data
Host B
lout
l'in : original data, plus retransmitted data
Transport Layer 3-5
Causes/costs of congestion: scenario 2 always: (goodput)
“perfect” retransmission only when loss:
retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
lin
lout
=
lin
lout
>l
inl
out
“costs” of congestion: more work (retrans) for given “goodput” unneeded retransmissions: link carries multiple copies of
pkt
R/2
R/2lin
l ou
t
b.
R/2
R/2lin
l ou
t
a.
R/2
R/2lin
l ou
t
c.
R/4
R/3
Transport Layer 3-6
Causes/costs of congestion: scenario 3 four senders multihop paths timeout/retransmit
lin
Q: what happens as and increase ?
lin
finite shared output link buffers
Host Alin : original data
Host B
lout
l'in : original data, plus retransmitted data
Transport Layer 3-7
Causes/costs of congestion: scenario 3
another “cost” of congestion: when packet dropped, any “upstream
transmission capacity used for that packet was wasted!
Host A
Host B
lo
u
t
Transport Layer 3-8
Approaches towards congestion control
end-end congestion control:
no explicit feedback from network
congestion inferred from end-system observed loss, delay
approach taken by TCP
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
two broad approaches towards congestion control:
Network assisted congestion control Active Queue Management
monitor queue, do not just drop upon overflow more intelligent decisions
maintain low average queue length, alleviate phase effects, enforce fairness
Explicit Congestion Notification (ECN) Instead of dropping, set a bit; reduced loss - major benefit!
Explicit Congestion Control (ECN)
Receiver informs sender about bit; sender behaves as if a packet was dropped actual communication between end nodes and the network
Typical incentives: sender = server; efficiently use connection, fairly distribute
bandwidth use ECN as it was designed receiver = client; goal = high throughput, does not care about others ignore ECN flag, do not inform sender about it
Need to make it impossible for receiver to lie about ECN flag when it was set Solution: nonce = random number from sender, deleted by router
when setting ECN Sender believes “no congestion” if correct nonce is sent back
Source: http://www.cis.udel.edu/~yackoski/856_ecn.ppt
2 bits => 4 ECN Codepoints
ECT(0) (ECN Capable Transport (0) )
10
CE (Congestion Experienced)11
ECT(1) (ECN Capable Transport(1) )
01
Not-ECT (Not ECN Capable Transport)
00
NameValue
ECN Bits in IP Header
CWR flag - Congestion Window Reduced flag
ECE flag - ECN-Echo flag
ECN Bits in TCP Header
Source: http://www.cis.udel.edu/~yackoski/856_ecn.ppt
Data packets
ACKs
Send packet w ithECT = 1, CE = 0,nonce = random
ECT = 1, so don’t dropupdate: CE = 1nonce = 0
Set ECE = 1 insubsequent ACKseven if CE = 0
Reduce cw nd,set CW R = 1
Only set ECE = 1in ACKs againwhen CE = 1
Sender Receiver
1 2 3
4 5
Congestion
ECN in action
Nonce provided by bit combination: ECT(0): ECT=1, CE=0 ECT(1): ECT=0, CE=1
Nonce usage specification still experimental
Transport Layer 3-14
Case study: ATM ABR congestion control
ABR: available bit rate:
“elastic service” if sender’s path
“underloaded”: sender should use
available bandwidth if sender’s path
congested: sender throttled to
minimum guaranteed rate
RM (resource management) cells:
sent by sender, interspersed with data cells
bits in RM cell set by switches (“network-assisted”) NI bit: no increase in rate
(mild congestion) CI bit: congestion
indication RM cells returned to sender
by receiver, with bits intact
Transport Layer 3-15
Case study: ATM ABR congestion control
two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sender’ send rate thus maximum supportable rate on
path 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