Congestion
Dr. Abdulaziz Almulhem
Almulhem©2001 2
Congestion
It occurs when network resources are becoming scarce
High demand
Over utilized
Offered load exceeds throughput
Almulhem©2001 3
Idea
l cas
e: I
nfin
ite
buff
ers
Almulhem©2001 4
Pra
ctic
al c
ase:
fin
ite
buff
ers
Almulhem©2001 5
Taxonomy
Router-Centric vs. Host-CentricRouters takes responsibility for forwarding
decisions.Host observes the network behavior and make
decisions.
Almulhem©2001 6
Taxonomy
Reservation-Based vs. Feedback-Based
Resources are allocated based on request
Almulhem©2001 7
Congestion Control
Proactive vs. ReactiveBackpressureChoke packets Implicit congestion controlExplicit congestion controlPolicing
Almulhem©2001 8
Almulhem©2001 9
Taxonomy
Window-Based vs. Rate-BasedSame terminology applies to flow control;
however congestion control deals with resource allocation.
Almulhem©2001 10
TCP Congestion Control
Congestion control in TCP/IP is complex and difficult, because: IP is connectionless: no way to provision
congestionTCP is end-to-end: deduces indirectly
presence of congestionTCP entities cannot cooperate to maintain
certain level of flow (greedy way)
Almulhem©2001 11
TCP Flow Control
The rate at which TCP source can send data is determined by the rate at which acknowledgements are received. Rate of Ack arrival is determined by the bottleneck
in the roundtrip path.
TCP automatically senses the network bottleneck and regulates its flow accordingly TCP’s self-clocking
Almulhem©2001 12
Network Congestion
Almulhem©2001 13
Destination Congestion
Almulhem©2001 14
Improving Performance
Retransmission timer management:The value has a critical effect on TCP
reaction to congestion:RTT variance estimationExponential RTO backoffKarn’s algorithm
Almulhem©2001 15
Improving Performance
Window managementManaging the size of the send window has
a critical effect on TCPSlow startDynamic window sizing on congestionFast retransmitFast recovery
Almulhem©2001 16
Slow start
To avoid reaching congestion levels quickly, the window size is incremented progressively.
Upon receiving an Ack for a specific segment, the window is incremented by 2.
Almulhem©2001 17
Dynamic Window Sizing
Slow start is effective for initializing a connectionThis can grow infinitely however at some point in time resources will fill and a segment will get lost (congestion)What to do?
Reset window to 1 and start all over (not practical, congestion may repeat)
Caution could be possible
Almulhem©2001 18
Congestion detection
Congestion recovery
Congestion avoidance
Almulhem©2001 19
Fast Retransmit
Instead of reacting to lost segments by setting the window to 1Ack for missing segment will be received;
however sender will continue sending subsequent segments.
If three duplicate Acks are received, that segment is retransmitted regardless of time out.
Almulhem©2001 20
Fast Recovery
Since duplicate Ack are getting through fairly regularly, then there is no point to set window to 1.Better to cut window to half Proceed with increasing window size
linearly (congestion avoidance)
Almulhem©2001 21