1
play

1 ACK clocking ACK clocking ACK clocking spreads out bursts ACK - PDF document

TCP Congestion Control Review Congestion Control (contd) Congestion control consists of 3 tasks Detect congestion Adjust sending rate Determine available bandwidth How does TCP do each of these? Packets vs. Bytes TCP Start


  1. TCP Congestion Control Review Congestion Control (cont’d)  Congestion control consists of 3 tasks  Detect congestion  Adjust sending rate  Determine available bandwidth  How does TCP do each of these? Packets vs. Bytes TCP Start Up  TCP window sizes are in bytes  How do we set initial window size?  Congestion control works on packets  Additive increase too slow Increase by 1 packet every RTT   Example: DSL line Pcwnd = cwnd / MSS   RTT=100ms, MSS=1500b, BW=200KB/s Pcwnd = Pcwnd + 1/Pcwnd on each ACK   After 1 RTT, rate is 15 KB/s  Multiply by MSS to get byte-sized formula  After 1s, rate is 150 KB/s cwnd = cwnd + MSS*(MSS/cwnd) on each ACK  Increase by 1 MSS every RTT  Takes 8.3s to transfer 500 KB file  Slow Start Window rate control Objective   Congestion window ensures average Source Destination Determine initial available capacity  rate is cwnd / RTT Idea  Begin with CongestionWindow = 1   Instantaneous rate may be larger packet Double CongestionWindow each  RTT Increment by 1 packet for each ACK  window-controlled Continue increasing until loss, then  switch to AIMD transmissions Result  time Exponential growth …  Slower than all at once  rate-controlled 0 1 RTT 2 RTT transmissions 1

  2. ACK clocking ACK clocking ACK clocking spreads out bursts ACK clocking spreads out bursts   Packets sent in a burst arrive spread out Packets sent in a burst arrive spread out   ACKs follow the timing of received rate ACKs follow the timing of received rate   New sending rate follows ACK rate  100 Mbps 5 Mbps 100 Mbps 5 Mbps Sender Router Receiver Sender Router Receiver Slow start Slow start  ACK clocking, with 2 packets per ACK  ACK clocking, with 2 packets per ACK Sender Router Receiver Sender Router Receiver Slow start TCP Timeout cwnd  ACK clocking, with 2 packets per ACK cwnd x timeout Sender Router Receiver retransmit NB: There’s a proposed alternative to slow-start that uses ACK clocking cumulative ack 2

  3. Timeout Handling Congestion Threshold  Cumulative ACK opens up entire  New variable: Congestion Threshold window Target window size  Estimate network capacity  Do we send entire window all at once?   If cwnd < cthresh, increase exponentially  No ACKs to clock transmission slow start   Use slow-start to recover ACK clock  If cwnd > cthresh, increase linearly  Reset cwnd to 1 (packet) additive increase   Use exponential increase  Initially, ctrhesh = max window (add 1 packet to cwnd for every ACK)  At loss, ctrhesh = 1/2 cwnd Slow Start Slow Start Initial values  Example trace of CongestionWindow  cthresh = 8  cwnd = 1  70 Loss after transmission 7  60 50 cwnd currently 12 CW flattens out due to loss  KB 40 Linear increase Set cthresh = cwnd/2 30  20 Set cwnd = 1  10 Slow start until CW = CT 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 Timeout: CT = CW/2 = 11, CW = 1  Problem  Have to wait for timeout  Can lose half CongestionWindow of data Fast Retransmit and Fast Fast Retransmit and Fast Recovery Recovery  Problem  Send ACK for each segment received Sender Receiver Packet 1  When duplicate ACK’s received  Coarse-grain TCP Packet 2 ACK 1 timeouts lead to Resend lost segment immediately Packet 3  Packet 4 ACK 2 idle periods Do not wait for timeout  Packet 5 ACK 2 In practice, retransmit on 3rd duplicate  Solution  Packet 6 ACK 2  Fast recovery  Fast retransmit: ACK 2 When fast retransmission occurs, skip slow start use duplicate  Retransmit packet 3 Congestion window becomes 1/2 previous ACKs to trigger  ACK 6 Start additive increase immediately retransmission  3

  4. TCP Congestion Window TCP Congestion Control Trace Summary  Congestion control mechanisms 70 threshold 60 congestion  Timeouts timeouts window Congestion Window 50  RTT estimation fast retransmission 40  Congestion window 30  Slow start 20 additive increase  Fast retransmit 10 slow start period 0 0 10 20 30 40 50 60 Time Fairness What’s Fair?  TCP congestion control is fair  Both senders will settle at around 5 Mbps Flow A  Intuition: flows using more bandwidth Flow B Flow C Flow D more likely to experience loss Which is more fair: This is the so- called “max-min Globally Fair: Fa = Capacity/4, Fb = Fc = Fd fair” rate = 3Capacity/4 Sender 1 Receiver 1 allocation. The 20 Mbps 10 Mbps or minimum rate is Router maximized. Locally Fair: Fa = Fb = Fc = Fd = Capacity/2 Sender 2 Receiver 2 TCP fairness Why is TCP fair? Two competing sessions:  TCP is “RTT-fair” Additive increase improves fairness  Multiplicative decrease preserves fairness On each congested link, host gets shared of   bandwidth proportional to RTT R equal bandwidth share  Intuition: during additive increase, each t u host adds one new packet every RTT p h g u If RTT twice as large, additive increase is half  o loss: decrease window by factor of 2 r h congestion avoidance: additive increase as fast t 2 loss: decrease window by factor of 2 n  Is this closer to globally fair or locally fair? congestion avoidance: additive increase o i t c e n n o C Connection 1 throughput R 4

  5. Congestion Avoidance Congestion Avoidance TCP’s strategy Control vs. avoidance   Repeatedly cause congestion  Control: minimize impact of congestion when it occurs  Control it once it happens  Avoidance: avoid producing congestion  Alternative Strategy  In terms of operating point limits  Predict when congestion is about to happen and reduce  the rate at which hosts send data just before packets start being discarded optimal load Congestion avoidance, as compared to congestion control  Approaches  avoidance control Routers implement CA (ATM, RSVP) idealized  power Routers help end-hosts implement CA (DECbit, RED)  power curve End-hosts do it themselves (TCP Vegas)  load DECbit (Destination Experiencing Congestion Bit) DECbit  Developed for the Digital Network Router  Architecture Monitors length over last busy + idle cycle  Sets congestion bit if average queue length is greater then 1  Basic idea  when packet arrives One bit allocated in packet header  Attempts to balance throughput against delay  Any router experiencing congestion sets bit  smaller values result in more idle time  Source adjusts rate based on bits larger values result in more queueing delay    Note that responsibility is shared Queue length Averaging interval Routers identify congestion  Current time Hosts act to avoid congestion  Time Previous cycle Current cycle Router-Based Congestion DECbit Avoidance End Hosts Random Early Detection (RED) gateways   Destination echoes congestion bit back to source Developed for use with TCP   Source records how many packets resulted in set bit  Basic idea  If less than 50% of last window had bit set  Implicit rather than explicit notification  Increase CongestionWindow by 1 packet  When a router is “almost” congested  If 50% or more of last window had bit set  Drop packets randomly  Decrease CongestionWindow by 1/8th  Responsibility is again shared  Note:  Router identifies, host acts  Techniques used in DECbit known as explicit congestion  Relies on TCP’s response to dropped packets  notification (ECN) Proposal to add ECN bit to TCP in progress  5

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