Presentation is loading. Please wait.

Presentation is loading. Please wait.

15-744: Computer Networking L-5 TCP & Routers. 2 Fair Queuing Core-stateless Fair queuing Assigned reading [DKS90] Analysis and Simulation of a Fair Queueing.

Similar presentations


Presentation on theme: "15-744: Computer Networking L-5 TCP & Routers. 2 Fair Queuing Core-stateless Fair queuing Assigned reading [DKS90] Analysis and Simulation of a Fair Queueing."— Presentation transcript:

1 15-744: Computer Networking L-5 TCP & Routers

2 2 Fair Queuing Core-stateless Fair queuing Assigned reading [DKS90] Analysis and Simulation of a Fair Queueing Algorithm, Internetworking: Research and Experience [SSZ98] Core-Stateless Fair Queueing: Achieving Approximately Fair Allocations in High Speed Networks

3 3 Overview Fairness Fair-queuing Core-stateless FQ Other FQ variants

4 4 Fairness Goals Allocate resources fairly Isolate ill-behaved users Router does not send explicit feedback to source Still needs e2e congestion control Still achieve statistical muxing One flow can fill entire pipe if no contenders Work conserving  scheduler never idles link if it has a packet

5 5 What is Fairness? At what granularity? Flows, connections, domains? What if users have different RTTs/links/etc. Should it share a link fairly or be TCP fair? Maximize fairness index? Fairness = (  x i ) 2 /n(  x i 2 ) 0<fairness<1 Basically a tough question to answer – typically design mechanisms instead of policy User = arbitrary granularity

6 6 Max-min Fairness Allocate user with “small” demand what it wants, evenly divide unused resources to “big” users Formally: Resources allocated in terms of increasing demand No source gets resource share larger than its demand Sources with unsatisfied demands get equal share of resource

7 7 Max-min Fairness Example Assume sources 1..n, with resource demands X1..Xn in ascending order Assume channel capacity C. Give C/n to X1; if this is more than X1 wants, divide excess (C/n - X1) to other sources: each gets C/n + (C/n - X1)/(n-1) If this is larger than what X2 wants, repeat process

8 8 Implementing max-min Fairness Generalized processor sharing Fluid fairness Bitwise round robin among all queues Why not simple round robin? Variable packet length  can get more service by sending bigger packets Unfair instantaneous service rate What if arrive just before/after packet departs?

9 9 Bit-by-bit RR Single flow: clock ticks when a bit is transmitted. For packet i: P i = length, A i = arrival time, S i = begin transmit time, F i = finish transmit time F i = S i +P i = max (F i-1, A i ) + P i Multiple flows: clock ticks when a bit from all active flows is transmitted  round number Can calculate F i for each packet if number of flows is know at all times This can be complicated

10 10 Bit-by-bit RR Illustration Not feasible to interleave bits on real networks FQ simulates bit-by- bit RR

11 11 Overview Fairness Fair-queuing Core-stateless FQ Other FQ variants

12 12 Fair Queuing Mapping bit-by-bit schedule onto packet transmission schedule Transmit packet with the lowest F i at any given time How do you compute F i ?

13 13 FQ Illustration Flow 1 Flow 2 Flow n I/P O/P Variation: Weighted Fair Queuing (WFQ)

14 14 Bit-by-bit RR Example F=10 Flow 1 (arriving) Flow 2 transmitting Output F=2 F=5 F=8 Flow 1Flow 2 Output F=10 Cannot preempt packet currently being transmitted

15 15 Delay Allocation Reduce delay for flows using less than fair share Advance finish times for sources whose queues drain temporarily Schedule based on B i instead of F i F i = P i + max (F i-1, A i )  B i = P i + max (F i-1, A i -  ) If A i < F i-1, conversation is active and  has no effect If A i > F i-1, conversation is inactive and  determines how much history to take into account Infrequent senders do better when history is used

16 16 Fair Queuing Tradeoffs FQ can control congestion by monitoring flows Non-adaptive flows can still be a problem – why? Complex state Must keep queue per flow Hard in routers with many flows (e.g., backbone routers) Flow aggregation is a possibility (e.g. do fairness per domain) Complex computation Classification into flows may be hard Must keep queues sorted by finish times Finish times change whenever the flow count changes

17 Discussion Comments Granularity of fairness Mechanism vs. policy  will see this in QoS Hard to understand Complexity – how bad is it? 17

18 18 Overview Fairness Fair-queuing Core-stateless FQ Other FQ variants

19 19 Core-Stateless Fair Queuing Key problem with FQ is core routers Must maintain state for 1000’s of flows Must update state at Gbps line speeds CSFQ (Core-Stateless FQ) objectives Edge routers should do complex tasks since they have fewer flows Core routers can do simple tasks No per-flow state/processing  this means that core routers can only decide on dropping packets not on order of processing Can only provide max-min bandwidth fairness not delay allocation

20 20 Core-Stateless Fair Queuing Edge routers keep state about flows and do computation when packet arrives DPS (Dynamic Packet State) Edge routers label packets with the result of state lookup and computation Core routers use DPS and local measurements to control processing of packets

21 21 Edge Router Behavior Monitor each flow i to measure its arrival rate (r i ) EWMA of rate Non-constant EWMA constant e -T/K where T = current interarrival, K = constant Helps adapt to different packet sizes and arrival patterns Rate is attached to each packet

22 22 Core Router Behavior Keep track of fair share rate  Increasing  does not increase load (F) by N *  F(  ) =  i min(r i,  )  what does this look like? Periodically update  Keep track of current arrival rate Only update  if entire period was congested or uncongested Drop probability for packet = max(1-  /r, 0)

23 23 F vs. Alpha New alpha C [linked capacity] r1r2r3old alpha alpha F

24 24 Estimating Fair Share Need F(  ) = capacity = C Can’t keep map of F(  ) values  would require per flow state Since F(  ) is concave, piecewise-linear F(0) = 0 and F(  ) = current accepted rate = F c F(  ) = F c /  F(  new ) = C   new =  old * C/F c What if a mistake was made? Forced into dropping packets due to buffer capacity When queue overflows  is decreased slightly

25 25 Other Issues Punishing fire-hoses – why? Easy to keep track of in a FQ scheme What are the real edges in such a scheme? Must trust edges to mark traffic accurately Could do some statistical sampling to see if edge was marking accurately

26 Discussion Comments Exponential averaging Latency properties Hand-wavy numbers Trusting the edge 26

27 27 Overview Fairness Fair-queuing Core-stateless FQ Other FQ variants

28 Stochastic Fair Queuing Compute a hash on each packet Instead of per-flow queue have a queue per hash bin An aggressive flow steals traffic from other flows in the same hash Queues serviced in round-robin fashion Has problems with packet size unfairness Memory allocation across all queues When no free buffers, drop packet from longest queue 28

29 29 Deficit Round Robin Each queue is allowed to send Q bytes per round If Q bytes are not sent (because packet is too large) deficit counter of queue keeps track of unused portion If queue is empty, deficit counter is reset to 0 Uses hash bins like Stochastic FQ Similar behavior as FQ but computationally simpler

30 30 Self-clocked Fair Queuing Virtual time to make computation of finish time easier Problem with basic FQ Need be able to know which flows are really backlogged They may not have packet queued because they were serviced earlier in mapping of bit-by-bit to packet This is necessary to know how bits sent map onto rounds Mapping of real time to round is piecewise linear  however slope can change often

31 31 Self-clocked FQ Use the finish time of the packet being serviced as the virtual time The difference in this virtual time and the real round number can be unbounded Amount of service to backlogged flows is bounded by factor of 2

32 32 Start-time Fair Queuing Packets are scheduled in order of their start not finish times Self-clocked  virtual time = start time of packet in service Main advantage  can handle variable rate service better than other schemes

33 33 Next Lecture: TCP & Routers RED XCP Assigned reading [FJ93] Random Early Detection Gateways for Congestion Avoidance [KHR02] Congestion Control for High Bandwidth-Delay Product Networks

34 Class Project End goal  workshop quality paper 6-8 pages Imagine early versions of the paper you have read so far Need not be experimental/system building Must have some experimental/simulation/theoretical results Must be practical/network oriented in nature 34

35 Class Project Group size  preferably 3 (2 is ok) Project meetings 2/4 2-4pm & 2/5 2-4pm 15 min meetings to discuss project ideas and get feedback Project idea list will be posted by Saturday Proposal (1-2pg) (2/8 – weekend is fine) Basic idea Description of some related work Rough timeline Necessary/requested resources Checkpoint (3/26) Should have preliminary experiments done 35

36 Project Ideas Relation between RED and small buffers. Recent work (McKweon) has suggested that routers don’t need large buffers to support good TCP performance. However, earlier work on RED seems quite similar - are they really so different? Nick McKweon seems to think so. However, they look the same to me. Aren’t the correct tuning parameters for RED just the same as the size of the right buffer for small buffer networks. Isn’t the tradeoff of “fear of underutilization” vs. amount of buffer/delay the same? Relation between TCP and desync All this small buffer stuff seems to rely on a collection of TCP flows becoming desynchronized. Earlier work assumed that this never happened. RED really made the assumption that this never happened and, thus, introduced randomized losses. McKweon’s measurements suggest that it does happen but there seems little sound justification for when this happens. 36

37 Project Ideas Why not duplicate/encode early packets in a TCP connection? Everyone seems to show how their TCP does better. But results are often dominated by timeouts on flows early on. Why not just duplicate the early part of the transfer multiple times or just be more aggressive early on? What would be the overall impact on Internet workload? 37

38 Project Ideas Abstract path model In order to develop a robust distributed application, developers need effective testing and simulation tools. The current approach to improving simulation tools has been to more accurately reproduce the network. Current work has concentrated on providing realistic network topologies and scaling simulation to large numbers of nodes. Future work is likely to examine other aspects of network topology (BW and latency) as well as network traffic loads. An alternate approach to improving realism may be to create the equivalent of "Impulse Response" for a network path. Based on some basic measurements of the path it may be possible to reproduce the response of the path to arbitrary cross traffic. See recent NSDI paper from Utah Emulab 38

39 Project Ideas Congestion control for sensors Is the Sigcomm paper from USC right? Do we really need to specialize congestion control for tree topologies or can we get something like TCP or XCP to work well in multihop wireless environments? 39


Download ppt "15-744: Computer Networking L-5 TCP & Routers. 2 Fair Queuing Core-stateless Fair queuing Assigned reading [DKS90] Analysis and Simulation of a Fair Queueing."

Similar presentations


Ads by Google