0% found this document useful (0 votes)
83 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 congestion control with an additive-increase multiplicative-decrease approach. It increases the congestion window slowly but reduces it by half after packet loss. The congestion window starts at 1 packet and grows exponentially until packet loss occurs, then it grows linearly. This helps ensure high throughput while avoiding overloading the network.

Uploaded by

Abhishek Regmi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 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 congestion control with an additive-increase multiplicative-decrease approach. It increases the congestion window slowly but reduces it by half after packet loss. The congestion window starts at 1 packet and grows exponentially until packet loss occurs, then it grows linearly. This helps ensure high throughput while avoiding overloading the network.

Uploaded by

Abhishek Regmi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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
in : original data out
 two senders, two
receivers
unlimited shared
 one router,
Host B
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 in : original data out

'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 
 multihop paths in
and  increase ?
 timeout/retransmit in
Host A out
in : original data
'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
 CongWin
3 duplicate acks
 Roughly,  TCP sender reduces
rate (CongWin) after
CongWin
loss event
rate = Bytes/sec
RTT function of
 CongWin is dynamic, three mechanisms:
perceived network congestion  AIMD
 slow start
 conservative after
timeout events

Transport Layer 3-7


TCP AIMD
multiplicative decrease: additive increase: increase
cut CongWin in half CongWin by 1 MSS every
after loss event RTT in the absence of
loss events: probing
c o n g e s tio n
w in d o w

2 4 K b y te s

1 6 K b y te s

8 K b y te s

tim e

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
one segm
ent

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

Transport Layer 3-10


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

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
ACK for segment being acked not changed

Transport Layer 3-14

You might also like