190 likes | 262 Views
2004.5.18. Last Class This Class Chapter 6.3. ~ 6.4. TCP congestion control. When congestion happens …. ssthresh = ½ of cwnd In case of TCP Tahoe, cwnd = 1 When timeout happened/triple ACKs arrived Start from minimum sending rate (slow start) In case of TCP Reno, cwnd = ssthresh
E N D
2004.5.18. • Last Class • This Class • Chapter 6.3. ~ 6.4. • TCP congestion control
When congestion happens … • ssthresh = ½ of cwnd • In case of TCP Tahoe, cwnd = 1 • When timeout happened/triple ACKs arrived • Start from minimum sending rate (slow start) • In case of TCP Reno, cwnd = ssthresh • When triple duplicate ACKs arrive • Sending rate decreased only by half (fast recovery) • When timeout happened, same as in Tahoe.
Problems with TCP Reno • Triple ACKs often fails to be triggered due to either • Losses in burst • Small sending window • Timeout needs unnecessarily long delay. • Congestion control in Reno • Need to create packet losses to find the available bandwidth of the connection • Continually congesting the network • Creating losses for other connections sharing the link. • Oscillations
TCP Vegas • Ideas • Detect congestion before losses occur • Compare RTT between two ACKs • If delay has increased, retransmit before a third ACK • Lower the rate when this imminent packet loss is detected • Estimate the thruput by cwnd and RTT • Increase/decrease cwnd by 1
How would you compare Tahoe, Reno, and Vegas? • Which town offers best skiing? • Highest probability to win a jackpot? • All employ AIMD • Distributed – no coordinationbetween connections needed? • Efficient – desired load level close to total? • Fairness – connections split the share equally? • Responsive to and smooth in equilibrium?
Congestion Avoidance • Instead of reacting to congestion, try to predict when congestion is about to happen and reduce sending rates • DECbit • router sets congestion bit to notify users of impending congestion • Random Early Detection • Source-based Congestion Avoidance
Random Early Drop (RED) • Main idea • Instead of waiting for the queue to get full to start dropping, it drops arriving packets with some drop probability whenver queue length exceeds some threshold.
MaxT MinT Drop Probability 1 MaxP AvgQLen MinT MaxT Drop with some p Drop all
AvgQLen = (1-α) AvgQLen + α SampleLen Queue Length Instantaneous Average Time
Drop Probability of RED TempP = MaxP ·(AvgQLen – MinT)/(MaxT-MinT) P = TempP/(1-count · TempP) count = # of pkts not dropped while MinT < AvgQLen < MaxT
Source-Based Congestion Avoidance • Key idea • Figure out that some router’s queue is building up • Monitor RTT for increase
Source-Based Congestion Avoidance Mechanisms • If CurrRTT > (minRTT+maxRTT)/2 Then decrease cwnd by 1/8 • If (CurrW – OldW) x (CurrRTT – OldRTT) > 0 Then decrease cwnd by 1/8 Else increase cwnd by 1/8 • Per RTT, increase/decrease cwnd by 1 pkt Compare thruput with previous one • TCP Vegas
When congestion happens … • ssthresh = ½ of cwnd • In case of TCP Tahoe, cwnd = 1 • When timeout happened/triple ACKs arrived • Start from minimum sending rate (slow start) • In case of TCP Reno, cwnd = ssthresh • When triple duplicate ACKs arrive • Sending rate decreased only by half (fast recovery) • When timeout happened, same as in Tahoe.
Problems with TCP Reno • Triple ACKs often fails to be triggered due to either • Losses in burst • Small sending window • Timeout needs unnecessarily long delay. • Congestion control in Reno • Need to create packet losses to find the available bandwidth of the connection • Continually congesting the network • Creating losses for other connections sharing the link. • Oscillations
TCP Vegas • Ideas • Detect congestion before losses occur • Compare RTT between two ACKs • If delay has increased, retransmit before a third ACK • Lower the rate when this imminent packet loss is detected • Estimate the thruput by cwnd and RTT • Increase/decrease cwnd by 1
Quality of Service • Real-time applications • need more than best-effort • require some form of QoS guarantee • intolerant of loss/delay
VoIP Timing Charts Sue speaks encoded and packetized at receiver played out
QoS Support Approaches • IntServ’s RSVP • DiffServ • EF/AF • ATM • CBR • VBR-rt, VBR-nrt • ABR • UBR • Equation-based congestion control
Next Class • HW #8 due • End-to-End data (Chap. 7)