0% found this document useful (0 votes)
19 views

Congestion Control: Transport Layer 3-1

Congestion occurs when there is too much data for the network to handle, leading to lost packets and delays. TCP uses end-to-end congestion control without network assistance, inferring congestion from packet loss and increased delays. The sender limits transmission rate by increasing a congestion window size slowly after losses or timeouts to probe for available bandwidth, while quickly reducing the window size in response to congestion to minimize its impact.

Uploaded by

Tuấn Bùi
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Congestion Control: Transport Layer 3-1

Congestion occurs when there is too much data for the network to handle, leading to lost packets and delays. TCP uses end-to-end congestion control without network assistance, inferring congestion from packet loss and increased delays. The sender limits transmission rate by increasing a congestion window size slowly after losses or timeouts to probe for available bandwidth, while quickly reducing the window size in response to congestion to minimize its impact.

Uploaded by

Tuấn Bùi
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

Congestion Control

Transport Layer 3-1


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-2


Scenario 1: Queuing Delays
Host A lout
 two senders, two
lin : original data

receivers
 one router,
Host B unlimited shared
output link buffers

infinite buffers
 no retransmission

 large delays
when congested
 maximum
achievable
throughput
Transport Layer 3-3
Scenario 2: Retransmits

 one router, finite buffers


 sender retransmission of lost packet

Host A lin : original lout


data
l'in : original data, plus
retransmitted data

Host B finite shared output


link buffers

Transport Layer 3-4


Scenario 3: Congestion Near Receiver
 four senders
Q: what happens as l
 multihop paths in
and l increase ?
 timeout/retransmit in
Host A lout
lin : original data
l'in : original data, plus
retransmitted data

finite shared output


link buffers

Host B

Transport Layer 3-5


Approaches towards congestion control
Two broad approaches towards congestion control:

End-end congestion Network-assisted


control: congestion control:
 no explicit feedback from  routers provide feedback
network to end systems
 congestion inferred from  single bit indicating
end-system observed loss, congestion (SNA,
delay DECbit, TCP/IP ECN,
 approach taken by TCP ATM)
 explicit rate sender
should send at

Transport Layer 3-6


TCP Congestion Control
 end-end control (no network How does sender
assistance) perceive congestion?
 sender limits transmission:  loss event = timeout or
LastByteSent-LastByteAcked 3 duplicate acks
 CongWin  TCP sender reduces
 Roughly, rate (CongWin) after
CongWin loss event
rate = Bytes/sec
RTT three mechanisms:
 CongWin is dynamic, function  AIMD
slow start
of perceived network 
conservative after
congestion 
timeout events
Transport Layer 3-7
TCP AIMD
multiplicative decrease: additive increase:
cut CongWin in half increase CongWin by
after loss event 1 MSS every RTT in
the absence of loss
congestion
window
events: probing
24 Kbytes

16 Kbytes

8 Kbytes

time

Long-lived TCP connection


Transport Layer 3-8
TCP Slow Start
 When connection begins,
 When connection begins,
CongWin = 1 MSS increase rate
exponentially fast until
 Example: MSS = 500
bytes & RTT = 200 msec first loss event
 initial rate = 20 kbps
 available bandwidth may
be >> MSS/RTT
 desirable to quickly ramp
up to respectable rate

Transport Layer 3-9


TCP Slow Start (more)
 When connection Host A Host B
begins, increase rate
exponentially until

RTT
first loss event:
 double CongWin every
RTT
 done by incrementing
CongWin for every ACK
received
 Summary: initial rate
is slow but ramps up
exponentially fast time

Transport Layer 3-10


Refinement
Philosophy:
 After 3 dup ACKs:
• 3 dup ACKs indicates
 CongWin is cut in half
network capable of
 window then grows delivering some segments
linearly • timeout before 3 dup
 But after timeout event: ACKs is “more alarming”
 CongWin instead set to
1 MSS;
 window then grows
exponentially
 to a threshold, then
grows linearly

Transport Layer 3-11


Refinement (more)
Q: When should the
exponential
increase switch to
linear?
A: When CongWin
gets to 1/2 of its
value before
timeout.

Implementation:
 Variable Threshold
 At loss event, Threshold is
set to 1/2 of CongWin just
before loss event

Transport Layer 3-12


Summary: TCP Congestion Control

 When CongWin is below Threshold, sender in


slow-start phase, window grows exponentially.
 When CongWin is above Threshold, sender is in
congestion-avoidance phase, window grows linearly.
 When a triple duplicate ACK occurs, Threshold
set to CongWin/2 and CongWin set to
Threshold.

 When timeout occurs, Threshold set to


CongWin/2 and CongWin is set to 1 MSS.

Transport Layer 3-13


TCP sender congestion control
Event State TCP Sender Action Commentary
ACK receipt Slow Start CongWin = CongWin + MSS, Resulting in a doubling of
for previously (SS) If (CongWin > Threshold) CongWin every RTT
unacked set state to “Congestion
data Avoidance”
ACK receipt Congestion CongWin = CongWin+MSS * Additive increase, resulting
for previously Avoidance (MSS/CongWin) in increase of CongWin by
unacked (CA) 1 MSS every RTT
data
Loss event SS or CA Threshold = CongWin/2, Fast recovery,
detected by CongWin = Threshold, implementing multiplicative
triple Set state to “Congestion decrease. CongWin will not
duplicate Avoidance” drop below 1 MSS.
ACK
Timeout SS or CA Threshold = CongWin/2, Enter slow start
CongWin = 1 MSS,
Set state to “Slow Start”
Duplicate SS or CA Increment duplicate ACK count CongWin and Threshold not
ACK for segment being acked changed

Transport Layer 3-14

You might also like