Congestion Dr. Abdulaziz Almulhem
Almulhem©20012 Congestion It occurs when network resources are becoming scarce High demand Over utilized Offered load exceeds throughput
Almulhem©20013 Ideal case: Infinite buffers
Almulhem©20014 Practical case: finite buffers
Almulhem©20015 Taxonomy Router-Centric vs. Host-Centric Routers takes responsibility for forwarding decisions. Host observes the network behavior and make decisions.
Almulhem©20016 Taxonomy Reservation-Based vs. Feedback- Based Resources are allocated based on request
Almulhem©20017 Congestion Control Proactive vs. Reactive Backpressure Choke packets Implicit congestion control Explicit congestion control Policing
Almulhem©20018
9 Taxonomy Window-Based vs. Rate-Based Same terminology applies to flow control; however congestion control deals with resource allocation.
Almulhem© TCP Congestion Control Congestion control in TCP/IP is complex and difficult, because: IP is connectionless: no way to provision congestion TCP is end-to-end: deduces indirectly presence of congestion TCP entities cannot cooperate to maintain certain level of flow (greedy way)
Almulhem© 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© Network Congestion
Almulhem© Destination Congestion
Almulhem© Improving Performance Retransmission timer management: The value has a critical effect on TCP reaction to congestion: RTT variance estimation Exponential RTO backoff Karn ’ s algorithm
Almulhem© Improving Performance Window management Managing the size of the send window has a critical effect on TCP Slow start Dynamic window sizing on congestion Fast retransmit Fast recovery
Almulhem© 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© Dynamic Window Sizing Slow start is effective for initializing a connection This 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© Congestion detection Congestion recovery Congestion avoidance
Almulhem© Fast Retransmit Instead of reacting to lost segments by setting the window to 1 Ack 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© 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©200121