Congestion Control

Congestion Control

What is congestion and why is it an important problem for CS 78 Computer Networks Internet? Congestion Control Andrew T. Campbell [email protected] How does the source Principles of Congestion Control determine congestion? 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) • Can be a serious problem Two approaches towards congestion Congestion Scenarios control - what’s the tradeoffs? H λ o s o u t t End-end congestion Network-assisted congestion A control control H o • routers provide feedback s • no explicit feedback t to end systems B from network – single bit indicating • congestion inferred congestion (SNA, from end-system DECbit, TCP/IP ECN, observed loss, delay ATM) • approach taken by TCP – explicit rate sender Another “cost” of congestion: should send at • when packet dropped, any “upstream transmission capacity used for that packet was wasted! 1 TCP’s end-to-end approach TCP congestion control: additive AIMD (Additive Increase, Multiplicative increase, multiplicative decrease Decrease) Algorithm • Approach: increase transmission rate (window size), probing for usable bandwidth, until loss occurs – additive increase: increase CongWin by 1 MSS every RTT until loss detected – multiplicative cdongeestcion rease: cut CongWin in half window after loss 24 Kbytes 16 Kbytes Saw tooth 8 Kbytes behavior: probing time for bandwidth time TCP Congestion Control TCP Slow Start • Sender limits transmission: How does sender • When connection • When connection LastByteSent-LastByteAcked perceive congestion? begins, CongWin = 1 begins, increase rate ≤ CongWin • loss event = timeout or MSS • Roughly, exponentially fast until 3 duplicate acks – Example: MSS = 500 first loss event CongWin bytes & RTT = 200 rate = Bytes/sec • TCP sender reduces RTT rate (CongWin) after msec • CongWin is dynamic, function of loss event – initial rate = 20 kbps perceived network congestion Three mechanisms: • available bandwidth – AIMD may be >> MSS/RTT – slow start – desirable to quickly – conservative after ramp up to timeout events respectable rate TCP Slow Start (more) TCP timing during slow start • When connection Host A Host B begins, increase rate one segment exponentially until first T T loss event: R two – double CongWin every segments RTT – done by incrementing CongWin for every ACK fo ur segme received nts • Summary: initial rate is slow but ramps up exponentially fast time 2 Refinement Inferring loss Q: When should the exponential • After 3 dup ACKs: • 3 dup ACKs indicates increase switch to – CongWin is cut in half linear? network capable of – window then grows linearly A: When CongWin delivering some segments gets to 1/2 of its • But after timeout event: value before – CongWin instead set to 1 Max timeout. Seg Size (MSS); •timeout indicates a “more – window then grows alarming” congestion exponentially scenario Implementation: – to a threshold, then grows • Variable Threshold linearly • At loss event, Threshold is set to 1/2 of CongWin just before loss event TCP sender congestion control 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. Congestion control’s evolution TCP throughput • What’s the average throughout of TCP as a function of window size and RTT? – Ignore slow start • Let W be the window size when loss occurs. • When window is W, throughput is W/RTT • Just after loss, window drops to W/2, throughput to W/2RTT. • Average throughout: .75 W/RTT 3 TCP: The fairness issue Why is TCP fair? if K TCP sessions share same bottleneck link Two competing sessions: of bandwidth R, each should have average • Additive increase gives rate of R/K slope of 1, as throughout increases • Multiplicative decrease decreases throughput proportionally Fairness Fairness and UDP Fairness and parallel TCP • Multimedia apps often connections do not use TCP • nothing prevents app from – do not want rate throttled opening parallel by congestion control connections between 2 • Instead use UDP: hosts. – pump audio/video at • Web browsers do this constant rate, tolerate • Example: link of rate R packet loss supporting 9 cnctions; • Research area: TCP – new app asks for 1 TCP, gets friendly rate R/10 – new app asks for 11 TCPs, gets R/2 ! 4.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us