Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
An Introduction to Computer Networks Lecture 11: Congestion Control University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Univ. of Tehran Introduction to Computer Network 1 Outline  Allocating resource among competing users.       Bandwidth on the line Buffers on the routers Congestion control and resource allocation, two side of the same coin. Different congestion control Policies. Reacting to Congestion Avoiding Congestion Univ. of Tehran Introduction to Computer Network 2 Congestion 10 Mbps 1.5 Mbps 100 Mbps   Different sources compete for resources inside network Why is it a problem?    Sources are unaware of current state of resource Sources are unaware of each other In many situations will result in < 1.5 Mbps of throughput (congestion collapse) Univ. of Tehran Introduction to Computer Network 3 Issues  Two sides of the same coin   pre-allocate resources so to avoid congestion control congestion if (and when) is occurs Router 1.5-Mbps T1 link Destination Source 2  Two points of implementation    hosts at the edges of the network (transport protocol) routers inside the network (queuing discipline) Underlying service model   best-effort (assume for now) Univ. of Tehran Computer Network multiple qualities ofIntroduction serviceto(later) 4 Why is Congestion Bad?   Wasted bandwidth: retransmission of dropped packets. Poor user service : unpredictable delay, reduced throughput. Increased load can even result in lower network throughput. » Switched nets: heavy traffic -> long queues -> lost packets ->retransmits » Ethernet: high demand -> many collisions » compare with highways: too much traffic slows down throughput  Solutions? Redesign the network. » Add capacity to congested links » Reroute traffic. » What are the options? Univ. of Tehran Introduction to Computer Network 5 Evaluation We need to know how good is a resource allocation/congestion aviodness mechanism.     Fairness Power of network (ratio of throughput to delay), Maximize this ratio. Distributedness Efficiency Cost Throughput/delay  Optimal load Univ. of Tehran Introduction to Computer Network Load 6 Evaluation (Fairness)  What is fair resource allocation?     Equal share of bandwidth How about the length of paths? Given a set of flow throughput (x1,x2,…, xn) f(x1,x2,…, xn)= (Σi=1n xi)2/n Σi=1nxi2 Fairness is always between 0, 1 and 1 completely fair and 0 completely unfair. Univ. of Tehran Introduction to Computer Network 7 Possible Solutions  Redesign the network. » Add capacity to congested links » Very slow solution: takes days to months!  Reroute traffic. » Alternate paths are not always available » Also too slow: takes 10s of seconds » In practice, most routing algorithms are static  Adjust the load in the network. Load balancing » What are the options? Univ. of Tehran Introduction to Computer Network 8 Principles of Congestion Control 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 (queuing in router buffers) a top-10 problem! Univ. of Tehran Introduction to Computer Network 9 Causes/costs of congestion: scenario 1    two senders, two receivers one router, infinite buffers no retransmission   Univ. of Tehran Introduction to Computer Network large delays when congested maximum achievable throughput 10 Another scenario    four senders multihop paths timeout/retransmit Univ. of Tehran Q: what happens as lin and lin increase ? Introduction to Computer Network 11 Causes/costs of congestion: scenario 3 Another “cost” of congestion:  when packet dropped, any “upstream transmission capacity used for that packet was wasted! Univ. of Tehran Introduction to Computer Network 12 Framework  Connectionless flows   sequence of packets sent between source/destination pair maintain soft state at the routers Source 1 Router Destination 1 Router Source 2 Router Destination 2 Source 3 Univ. of Tehran Introduction to Computer Network 13 Framework (cont)  Taxonomy: different approaches for congestion Ctrl.  router-centric versus host-centric:    Router-Centric: each router takes the responsibility for dropping packets, and informing the generating host the amount of traffic allowed to be sent. Host-Centric: the end hosts observe the amount of traffic that is successfully getting through the network and adjust their transmission rates accordingly. reservation-based versus feedback-based   Reservation-Based: the end host asks the network for a certain amount of bandwidth when requesting a connection (or flow). If the network does not have enough bandwidth it will reject the connection. Feedback-Based: the end hosts send data without first reserving any capacity and then adjust their sending rate according to the feedback they received   Explicit feedback Implicit feedback. Univ. of Tehran Introduction to Computer Network 14 Framework (cont)  window-based versus rate-based:     Window-Based: the receiver advertises a window to the sender. The window corresponds to how much buffer space the receiver has and it limits how much data the sender can transmit. Network also can do that, like X.25. Rate-Based: How many bit the sender can send or the network can absorb. Rate-Based can support video. Rate-Based still is an open problem Univ. of Tehran Introduction to Computer Network 15 Where to Prevent Collapse?  Can end hosts prevent problem?    Yes, but must trust end hosts to do right thing E.g., sending host must adjust amount of data it puts in the network based on detected congestion Can routers prevent collapse? No, not all forms of collapse  Doesn’t mean they can’t help  Sending accurate congestion signals  Isolating well-behaved from ill-behaved sources Univ. of Tehran Introduction to Computer Network  16 Knee – point after which throughput increases very slow  delay increases fast Cliff – point after which  throughput starts to decrease very fast to zero (congestion collapse)  delay approaches infinity   knee Delay  Throughput What’s Really Happening? packet loss cliff congestion collapse Load Load Univ. of Tehran Introduction to Computer Network 17 Goals Operate near the knee point  Remain in equilibrium  How to maintain equilibrium?  Don’t put a packet into network until another packet leaves. How do you do it?  Use ACK: send a new packet only after you receive and ACK (self-clocking)  This maintains the number of packets in network “constant”  Univ. of Tehran Introduction to Computer Network 18 Self-clocking Pb Pr Sender Receiver As Univ. of Tehran Ab Ar Introduction to Computer Network 19 How Do You Do It?  Detect when network approaches/reaches knee point   Stay there Questions How do you get there?  What if you overshoot (i.e., go over knee point) ?   Possible solution: Increase window size until you notice congestion  Decrease window size if network congested  Univ. of Tehran Introduction to Computer Network 20 TCP Congestion Control  Idea     assumes best-effort network (FIFO or FQ routers)each source determines network capacity for itself uses implicit feedback ACKs pace transmission (self-clocking) Challenge   determining the available capacity in the first place adjusting to changes in the available capacity Univ. of Tehran Introduction to Computer Network 21 Additive Increase/ Multiplicative Decrease   Objective: adjust to changes in the available capacity New state variable per connection: CongestionWindow (cwnd) MaxWindow = min(cwnd, AdvertisedWindow) EffectiveWindow = MaxWindow – (LastByteSent – LastByteAcked) sequence number increases  Idea:   LastByteAcked LastByteSent increase Cwnd when congestion goes down decrease Cwnd when congestion goes up Univ. of Tehran Introduction to Computer Network 22 AIMD (cont)   Question: how does the source determine whether or not the network is congested? Answer: a timeout occurs    timeout signals that a packet was lost packets are seldom lost due to transmission error lost packet implies congestion Univ. of Tehran Introduction to Computer Network 23 AIMD (cont) Algorithm    increment Cwnd by one packet per RTT (linear or additive increase) divide Cwnd by two whenever a timeout occurs (multiplicative decrease) …  Destination Source In practice: increment a little for each ACK Increment = MSS * (MSS/cwnd) cwnd += Increment MSS= Maximum segment size Univ. of Tehran Introduction to Computer Network 24 AIMD (cont) KB  Trace: saw tooth behavior 70 60 50 40 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 Time (seconds) Univ. of Tehran Introduction to Computer Network 25 TCP: Slow Start  Question? How much is the initial cwnd size?     Small cwnd implies less network utilization Big cwnd means congestion again What is optimal of cwnd. Solution: Start with cwnd =1 and Quickly increase cwnd until network congested  get a rough estimate of the optimal of cwnd   Each time a segment is acknowledged increment cwnd by one (cwnd++) Increase of cwnd is exponential 26 Slow Start Example    TCP slows down the increase of cwnd when cwnd >=ssthresh Ssthresh - slow start threshold value. After ssthresh, TCP change from slow start to congestion avoidance! Univ. of Tehran source destination cwnd = 1 cwnd = 2 cwnd = 4 cwnd = 8 Introduction to Computer Network 27 Slow Start/Congestion Avoidance Example  Assume that ssthresh = 8 Cwnd (in segments) 14 Client Server cwnd = 1 cwnd = 2 cwnd = 4 12 10 cwnd = 8 8 ssthresh 6 4 2 cwnd = 9 0 Roundtrip times Univ. of Tehran cwnd = 10 Introduction to Computer Network 28 Putting Everything Together: TCP Pseudocode Initially: cwnd = 1; ssthresh = infinite; New ack received: if (cwnd < ssthresh) /* Slow Start*/ cwnd = cwnd + 1; else /* Congestion Avoidance */ cwnd = cwnd + 1/cwnd; Timeout: /* Multiplicative decrease */ ssthresh = win/2; cwnd = 1; /* Again slow start */ 29 The big picture cwnd Timeout Congestion Avoidance Slow Start Time 30 Slow Start (cont)   Exponential growth, but slower than all at once Used…   Trace KB  when first starting connection when connection goes dead waiting for timeout 70 60 50 40 30 20 10 1.0  2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 Problem: lose up to half a Cwnd’s worth of data Univ. of Tehran Introduction to Computer Network 31 Packet Loss Detection Wait for Retransmission Time Out (RTO)  What’s the problem with this?  Because RTO is performance killer  In BSD TCP implementation, RTO is usually more than 1 second  the granularity of RTT estimate is 500 ms  retransmission timeout is at least two times of RTT   Solution: Don’t wait for RTO to expire Univ. of Tehran Introduction to Computer Network 32 Fast Retransmit  Resend a segment after 3 duplicate ACKs   source destination cwnd = 1 Remember, a duplicate ACK means that an out-of sequence segment was received cwnd = 2 cwnd = 4 Notes:   3 duplicate Duplicate ACKs due ACKs packet reordering! If window is small won’t get duplicate ACKs! • Set cwnd to 1 after each retransmit!! Univ. of Tehran Introduction to Computer Network 33 KB Results 70 60 50 40 30 20 10 1.0   2.0 3.0 4.0 5.0 6.0 7.0 Compare to slow start, it avoids long time out waiting in 4.0 – 5.0 period. How avoid slow start at each fast retransmission? Univ. of Tehran Introduction to Computer Network 34 Fast Recovery  After a fast-retransmit set cwnd to ssthresh/2  i.e., don’t reset cwnd to 1, then, avoid slow start again!. But when RTO expires still do cwnd = 1  Fast Retransmit and Fast Recovery  implemented by TCP Reno; most widely used version of TCP today  Univ. of Tehran Introduction to Computer Network 35 Fast Retransmit and Fast Recovery cwnd Slow Start Congestion Avoidance Fast retransmit    Prevent expensive timeouts No need to slow start again At steady state, cwnd oscillates around the optimal window size. Time 36 Congestion Control Summary   Architecture: end system detects congestion and slow down Starting point:  Slow start/congestion avoidance   Fast retransmission/fast recovery   packet drop detected by retransmission timeout RTO as congestion signal packet drop detected by (three) duplicate acks Router support  Binary feedback scheme: explicit signaling  Today Explicit Congestion Notification [RF99] Univ. of Tehran Introduction to Computer Network 37 Congestion Control vs. Congestion Avoidance Congestion control goal   Stay left of cliff Congestion avoidance knee goal  Stay left of knee Throughput  cliff congestion collapse Load Univ. of Tehran Introduction to Computer Network 38 Congestion Avoidance  TCP’s strategy    Alternative strategy     control congestion once it happens repeatedly increase load in an effort to find the point at which congestion occurs, and then back off predict when congestion is about to happen reduce rate before packets start being discarded call this congestion avoidance, instead of congestion control Two possibilities   router-centric: DECbit and RED Gateways host-centric: TCP Vegas Univ. of Tehran Introduction to Computer Network 39 DECbit   Add binary congestion bit to each packet header Router  monitors average queue length over last busy+idle cycle Queue length Current time Previous cycle Averaging interval   Current cycle Time set congestion bit if average queue length > 1 attempts to balance throughout against delay Univ. of Tehran Introduction to Computer Network 40 End Hosts    Destination echoes bit back to source Source records how many packets resulted in set bit If less than 50% of last window’s worth had bit set   increase Cwnd by 1 packet If 50% or more of last window’s worth had bit set  decrease CongestionWindow by 0.875 times Univ. of Tehran Introduction to Computer Network 41 Random Early Detection (RED)  Notification is implicit    just drop the packet (TCP will timeout) could make explicit by marking the packet Early random drop  rather than wait for queue to become full, drop each arriving packet with some drop probability whenever the queue length exceeds some drop level Univ. of Tehran Introduction to Computer Network 42 RED Details  Compute average queue length AvgLen AvgLen = (1 - Weight) * AvgLen + Weight * SampleLen 0 < Weight < 1 (usually 0.002) SampleLen is queue length each time a packet arrives MaxThreshold MinThreshold Queue AvgLen Univ. of Tehran Introduction to Computer Network 43 RED Details (cont)  Two queue length thresholds if AvgLen <= MinThreshold then enqueue the packet if MinThreshold < AvgLen < MaxThreshold then calculate probability P drop arriving packet with probability P if ManThreshold <= AvgLen then drop arriving packet Univ. of Tehran Introduction to Computer Network 44 RED Details (cont)  Computing probability P TempP = MaxP * (AvgLen - MinThreshold)/ (MaxThreshold - MinThreshold) P = TempP/(1 - count * TempP)  Drop Probability Curve Count is the # of queued from last drop. P(drop) 1.0 MaxP AvgLen MinThresh MaxThresh Univ. of Tehran Introduction to Computer Network 45 Tuning RED      P of a particular flow’s packet(s) is roughly proportional to the share of the flow’s bandwidth. MaxP is typically 0.02, meaning when is halfway between the two thresholds, router drops roughly one out of 50 packets. If traffic is bursty, then MinTh. should be sufficiently large to allow link utilization to be acceptably high. Difference between two thresholds should be larger than the typical increase in the calculated average queue length in one RTT; setting MaxThreshold to twice MinThreshold is reasonable. Penalty Box for Offenders Univ. of Tehran Introduction to Computer Network 46 Sourced-based Cong. Avoidance  End hosts adapt traffic before any lost in the net.   Watch for router queue’s lengths by checking RTT. A collection of related algorithms     In each 2 RTT check if RTT > (minRTT + maxRTT)/2 -> decrease cwnd, cwnd -= cwnd/8. Increase otherwise. Check (currentWind –oldWind)x (CurrentRTT- oldRTT), if the result is positive, decrease cwnd, cwnd -= cwnd/8. Increase 1 otherwise. Check flattening of sending rate. Increase Cwnd by 1 in each RTT, compare throughput with previous one, if it is less than half of one packet, decrease cwnd by one. TCP Vegas is like the last one with a difference to compare to expected rate. Univ. of Tehran Introduction to Computer Network 47 TCP Vegas Idea: source watches for some sign that router’s queue is building up and congestion will happen too; e.g.,  RTT grows  sending rate flattens KB  Queue size in router Sending KBps •Top is cwn size •Middle is ave. rate in source •Bottom is ave. queue length in the bottleneck router •In Shade, Cwnd increase, but ave. rate stay flat. Univ. of Tehran 70 60 50 40 30 20 10 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Time (seconds) 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Time (seconds) 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Time (seconds) 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 1100 900 700 500 300 100 10 5 Introduction to Computer Network 48 TCP Vegas  Keep track of extra data in the network.   Extra data is the amount more than available bandwidth. Maintain “Right” amount of extra data. Univ. of Tehran Introduction to Computer Network 49 Algorithm   Let BaseRTT be the minimum of all measured RTTs (commonly the RTT of the first packet) If not overflowing the connection, then ExpectRate = Cwnd/BaseRTT   Source calculates sending rate (ActualRate) once per RTT Source compares ActualRate with ExpectRate Diff = ExpectedRate - ActualRate if Diff < a increase Cwnd linearly else if Diff > b decrease Cwnd linearly else leave Univ. of TehranCwnd unchanged Introduction to Computer Network 50 Algorithm (cont) Parameters    a = 1 packet b = 3 packets KB  Top Cwn size 70 60 50 40 30 20 10 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 5.0 5.5 6.0 6.5 7.0 7.5 8.0  • black line is Actual rate •Colored expected rate •Shade area is a and b CAM KBps Time (seconds) 240 200 160 120 80 40 0.5 Even faster retransmit   1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Time (seconds) keep fine-grained timestamps for each packet check for timeout on first duplicate ACK Univ. of Tehran Introduction to Computer Network 51