210 likes | 376 Views
Congestion Control - Supplementary. Slides are adapted on Jean Walrand’s Slides. TOC: Congestion Control. Congestion control for bandwidth sharing Cheating TCP Buffer Size ECN RED TCP Unfairness TCP Vegas. Congestion Control: Questions. How to avoid network congestion?
E N D
Congestion Control - Supplementary Slides are adapted on Jean Walrand’s Slides
TOC: Congestion Control • Congestion control for bandwidth sharing • Cheating TCP • Buffer Size • ECN • RED • TCP Unfairness • TCP Vegas
Congestion Control: Questions • How to avoid network congestion? • How to recover from congestion? • Congestion occurs at access link and access network • How to share the links bandwidth? • If bandwidth is allocated and enforced properly, no congestion should occur. • Can improve treatment of flows • E.g., one flow should not get a much smaller fraction of bandwidth • Some flows might need some guaranteed bandwidth • Discovering available bandwidth • What is fair?
= router = host = link with bandwidth of 3Mbps(same for 6 and 10) 3 Questions: Available bandwidth? • Example: x, y, z = throughput of flows
Questions: Available bandwidth? • Example: • What is available bandwidth? (See later) • How does A “discover” the available bandwidth to B? • Some approaches: • Reservation: e.g., Telephone • Adapt to congestion: TCP • Pricing congestion: research topic
Available bandwidth: Reservation • Routers (or manager) keep track of reserved rates • A requests a rate R to B from the network • The network figures out if R is available • If R is available, routers (or manager) update reservations and confirm to A • Note: complex, slow, requires connection setup and enforcement
Available bandwidth: Adapt • Transmit and slow down if congestion occur • Example: • Initially: x= 0, y = 3, z = 3 • Then A increases its rate; C and E notice congestion and slow down • Later, C stops: A and E increase rates • Notes: • No guarantees: throughput may drop • Key question: how to adapt rates, e.g., TCP
Available bandwidth: Pricing • Example: • When they get saturated, routers mark packets • If a flow with rate R uses saturated links, it gets marks with rate R • Each mark costs one unit • Source slows down if price becomes excessive • x= 1+, y = 2+, z = 2+ pA = 1 + 1; pC = pE = 2 • x = 2+, y = 1+, z = 1+ pA = 2 + 2; pC = pE = 1
Questions: What is Fair? • Example: • x = y = z = 1.5: fair in max-min sense • x = 0, y = z = 3: maximizes x + y + z • 5x = 4y = 4z: equalizes resources flows use with x = 1.33, y = z = 1.67 • What if AB needs 2Mbps?(and is willing to pay for it)
C x A B y D E Cheating: Increase Faster y C x increases by 2 MSS/RTT per RTT y increases by 1 MSS/RTT per RTT Limit rates: x = 2y x
C = 50 x A B y D E Cheating: Increase Faster Rate time
C x A B y D E Cheating: Start SS with CongWin > 1 x starts SS with CongWin = 4 y starts SS with CongWin = 1
C x A B y D E Cheating: Open Many Connections • Assume • A starts 10 connections to B • D starts 1 connection to E • Each connection gets about the same throughput • Then A gets 10 times more throughput than D
ECN: Explicit Congestion Notification • Standard TCP: • Losses needed to detect congestion • Wasteful and unnecessary • ECN: • When congested, routers mark (IP) packets instead of dropping them • Destination marks ACKs of marked packets • Source set CongWin = CongWin/2 when it sees mark • Advantages: • No time wasted to retransmit • Link errors not confused with congestion • Example: without ECN, at wireless link, packets can get corrupted by noise and interference, and get dropped eventually. Sender will think congestion has occurred.
Explicit Congestion Notification • Illustration: A B A B CongWin = CongWin/ 2
Explicit Congestion Notification Backward Compatibility: • Unused bits from TCP and IP headers are used for ECN. • One bit in IP header indicates if hosts implement ECN • If it does, router marks packet • If it does not, router drops packet
RED Random Early Detection:As queue builds up, drop or mark packets with increasing probability (before queue gets full) • Advantages: • Avoids penalizing streams with large bursts • This is done by keeping the queue size smaller than the buffer size • Earlier marking reduces dropped packets • De-synchronizes the source behaviors
RED: Illustration C Mbps PACKETS • Calculate recent average of queue length: Qav Qav(n+1) = (1 – b) Qav(n) + b Q(n) • 0 < b < 1 • Determine drop or mark probability p(Qav): 1 k Qav 0 H L
Router Buffers: Rule of Thumb • Imagine that all connections on input port with rate R “burst” for RTT seconds (until stopped by RED) • Router must store RxRTT for each port • Example: • 40 Gbps throughput (sum of port rates) • RTT = 200 ms (worst case?) • Then storage = 8 Gbits = (about) 1 GByte • Question: Is this reasonable?
Unfairness • Fact: • TCP favors connections with short RTT • Cause: • Increase rate is 1 MSS/RTT, so that it is faster for connections with small RTT • Recall our discussion of “Cheating RTT” • It is quite possible for a connection to get only a few percent of its fair share • Solutions: • Modify TCP to increase in proportion to RTT?Problem: Estimate of RTT is noisy • TCP Vegas (see next)
TCP Vegas • Consider one queue: C x A B y D E • Assume both connections have the same backlog • Then they have the same throughput … • Vegas Algorithm: • Estimate backlog by • Q = Outstanding – Rate Base_RTT • Rate = Bytes_Sent_Successfully / Current_RTT • If Q > 3 MSS, then slow down; otherwise, speed up • Problem: Reno clobbers Vegas (unlike in real life)