1
play

1 TCP AIMD TCP Congestion Control additive increase: - PDF document

Principles of Congestion Control Congestion: informally: too many sources sending too much Congestion Control data too fast for network to handle different from flow control! manifestations: lost packets (buffer overflow at


  1. Principles of Congestion Control Congestion: ❒ informally: “too many sources sending too much Congestion Control 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 Transport Layer 3-1 3-2 Scenario 1: Queuing Delays Scenario 2: Retransmits Host A λ out λ in : original ❒ two senders, two ❒ one router, finite buffers data receivers ❒ sender retransmission of lost packet unlimited shared Host B ❒ one router, output link buffers infinite buffers Host A λ out λ in : original data ❒ no retransmission λ ' in : original data, plus retransmitted data Host B finite shared output ❒ large delays link buffers when congested ❒ maximum achievable throughput Transport Layer 3-3 Transport Layer 3-4 Scenario 3: Congestion Near Receiver Approaches towards congestion control ❒ four senders Q: what happens as λ Two broad approaches towards congestion control: in λ ❒ multihop paths and increase ? in ❒ timeout/retransmit End-end congestion Network-assisted Host A λ out congestion control: control: λ in : original data λ ' in : original data, plus ❒ no explicit feedback from ❒ routers provide feedback retransmitted data network to end systems finite shared output link buffers ❒ congestion inferred from ❍ single bit indicating end-system observed loss, congestion (SNA, Host B DECbit, TCP/IP ECN, delay ATM) ❒ approach taken by TCP ❍ explicit rate sender should send at Transport Layer 3-5 Transport Layer 3-6 1

  2. TCP AIMD TCP Congestion Control additive increase: multiplicative decrease: increase CongWin by cut CongWin in half ❒ end-end control (no network How does sender perceive after loss event 1 MSS every RTT in assistance) congestion? the absence of loss ❒ sender limits transmission: ❒ loss event = timeout or 3 congestion window events: probing duplicate acks LastByteSent-LastByteAcked 24 Kbytes ❒ TCP sender reduces rate ≤ CongWin ( CongWin ) after loss event ❒ Roughly, 16 Kbytes three mechanisms: CongWin ❍ AIMD rate = Bytes/sec 8 Kbytes RTT ❍ slow start ❍ conservative after ❒ CongWin is dynamic, function time timeout events of perceived network Long-lived TCP connection congestion Transport Layer Transport Layer 3-7 3-8 TCP Slow Start TCP Slow Start (more) ❒ When connection ❒ When connection ❒ When connection Host A Host B begins, increase rate begins, CongWin = 1 begins, increase rate exponentially fast until one segment MSS exponentially until RTT first loss event first loss event: ❍ Example: MSS = 500 two segments bytes & RTT = 200 msec ❍ double CongWin every ❍ initial rate = 20 kbps RTT four segments ❍ done by incrementing ❒ available bandwidth may CongWin for every be >> MSS/RTT ACK received ❍ desirable to quickly ramp ❒ Summary: initial rate up to respectable rate time is slow but ramps up exponentially fast Transport Layer 3-9 Transport Layer 3-10 Refinement (more) Refinement Philosophy: Q: When should the ❒ After 3 dup ACKs: exponential • 3 dup ACKs indicates increase switch to ❍ CongWin is cut in half network capable of linear? ❍ window then grows delivering some A: When CongWin linearly segments gets to 1/2 of its value before • timeout before 3 dup ❒ But after timeout event: timeout. ACKs is “more alarming” ❍ CongWin instead set Implementation: to 1 MSS; ❒ Variable Threshold ❒ At loss event, Threshold is ❍ window then grows set to 1/2 of CongWin just exponentially before loss event ❍ to a threshold, then grows linearly Transport Layer 3-11 Transport Layer 3-12 2

  3. TCP sender congestion control Summary: TCP Congestion Control Event State TCP Sender Action Commentary ACK receipt Slow Start CongWin = CongWin + MSS, Resulting in a doubling of ❒ When CongWin is below Threshold , sender in for (SS) If (CongWin > Threshold) CongWin every RTT previously set state to “Congestion slow-start phase, window grows exponentially. unacked Avoidance” data ACK receipt Congestion CongWin = CongWin+MSS * Additive increase, resulting for Avoidance (MSS/CongWin) in increase of CongWin by ❒ When CongWin is above Threshold , sender is in previously (CA) 1 MSS every RTT unacked congestion-avoidance phase, window grows linearly. 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 ❒ When a triple duplicate ACK occurs, Threshold duplicate Avoidance” drop below 1 MSS. ACK set to CongWin/2 and CongWin set to Timeout SS or CA Threshold = CongWin/2, Enter slow start CongWin = 1 MSS, Threshold . Set state to “Slow Start” Duplicate SS or CA Increment duplicate ACK count CongWin and Threshold ACK for segment being acked not changed ❒ When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS. Transport Layer Transport Layer 3-13 3-14 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend