380 likes | 516 Views
Intro to Quality of Service. Tahir Azim. The problems caused by FIFO queues in routers. In order to maximize its chances of success, a source has an incentive to maximize the rate at which it transmits.
E N D
Intro to Quality of Service Tahir Azim Courtesy: Nick McKeown, Stanford
The problems caused by FIFO queues in routers • In order to maximize its chances of success, a source has an incentive to maximize the rate at which it transmits. • (Related to #1) When many flows pass through it, a FIFO queue is “unfair” – it favors the most greedy flow. • It is hard to control the delay of packets through a network of FIFO queues. Fairness Delay Guarantees Courtesy: Nick McKeown, Stanford
Fairness 10 Mb/s 0.55 Mb/s A 1.1 Mb/s 100 Mb/s C R1 e.g. an http flow with a given (IP SA, IP DA, TCP SP, TCP DP) 0.55 Mb/s B What is the “fair” allocation: (0.55Mb/s, 0.55Mb/s) or (0.1Mb/s, 1Mb/s)? Courtesy: Nick McKeown, Stanford
Fairness 10 Mb/s A 1.1 Mb/s R1 100 Mb/s D B 0.2 Mb/s What is the “fair” allocation? C Courtesy: Nick McKeown, Stanford
Max-Min FairnessA common way to allocate flows N flows share a link of rate C. Flow f wishes to send at rate W(f), and is allocated rate R(f). • Pick the flow, f, with the smallest requested rate. • If W(f)<C/N, then set R(f) = W(f). • If W(f) > C/N, then set R(f) = C/N. • Set N = N – 1. C = C – R(f). • If N > 0 goto 1. Courtesy: Nick McKeown, Stanford
Max-Min FairnessAn example W(f1) = 0.1 1 Round 1: Set R(f1) = 0.1 Round 2: Set R(f2) = 0.9/3 = 0.3 Round 3: Set R(f4) = 0.6/2 = 0.3 Round 4: Set R(f3) = 0.3/1 = 0.3 W(f2) = 0.5 C R1 W(f3) = 10 W(f4) = 5 Courtesy: Nick McKeown, Stanford
Max-Min Fairness • How can an Internet router “allocate” different rates to different flows? • First, let’s see how a router can allocate the “same” rate to different flows… Courtesy: Nick McKeown, Stanford
Fair Queueing • Packets belonging to a flow are placed in a FIFO. This is called “per-flow queueing”. • FIFOs are scheduled one bit at a time, in a round-robin fashion. • This is called Bit-by-Bit Fair Queueing. Flow 1 Bit-by-bit round robin Classification Scheduling Flow N Courtesy: Nick McKeown, Stanford
Weighted Bit-by-Bit Fair Queueing Likewise, flows can be allocated different rates by servicing a different number of bits for each flow during each round. R(f1) = 0.1 1 R(f2) = 0.3 C R1 R(f3) = 0.3 R(f4) = 0.3 Order of service for the four queues: … f1, f2, f2, f2, f3, f3, f3, f4, f4, f4, f1,… Also called “Generalized Processor Sharing (GPS)” Courtesy: Nick McKeown, Stanford
Packetized Weighted Fair Queueing (WFQ) Problem: We need to serve a whole packet at a time. Solution: • Determine what time a packet, p, would complete if we served flows bit-by-bit. Call this the packet’s finishing time, Fp. • Serve packets in the order of increasing finishing time. Also called “Packetized Generalized Processor Sharing (PGPS)” Courtesy: Nick McKeown, Stanford
6 5 4 3 2 1 0 Time A1 = 4 1 1 1 1 1 1 1 1 1 1 1 1 B1 = 3 C2 = 1 C1 = 1 D1 = 1 D2 = 2 Weights : 1:1:1:1 6 5 4 3 2 1 0 D1, C1 Depart at R=1 Time A2, C3 arrive A2 = 2 A1 = 4 D1 C1 B1 A1 B1 = 3 C3 = 2 C2 = 1 C1 = 1 Round 1 D1 = 1 D2 = 2 Weights : 1:1:1:1 6 5 4 3 2 1 0 Time C2 Departs at R=2 A2 = 2 A1 = 4 D2 C2 B1 A1 D1 C1 B1 A1 B1 = 3 C3 = 2 C2 = 1 C1 = 1 Round 2 Round 1 D1 = 1 D2 = 2 Weights : 1:1:1:1 Understanding bit by bit WFQ 4 queues, sharing 4 bits/sec of bandwidth, Equal Weights Courtesy: Nick McKeown, Stanford
6 5 4 3 2 1 0 Time D2, B1 Depart at R=3 A2 = 2 A1 = 4 1 1 1 1 1 1 1 1 1 1 1 1 D2 C2 B1 A1 D2 C3 B1 A1 D1 C1 B1 A1 B1 = 3 C3 = 2 C2 = 1 C1 = 1 D1 = 1 D2 = 2 6 5 4 3 2 1 0 A2 Departs at R=6 C3, A1 Depart at R=4 Weights : 1:1:1:1 Time A2 = 2 A1 = 4 D2 C2 B1 A1 A2 A2 C3 A1 D2 C3 B1 A1 D1 C1 B1 A1 B1 = 3 C3 = 2 C2 = 1 C1 = 1 6 5 Round 4 Round 3 D1 = 1 D2 = 2 Sort packets Weights : 1:1:1:1 Time 6 5 4 3 2 1 0 Departure order for packet by packet WFQ: Sort by finish round of packets A2 = 2 A1 = 4 A2 A2 C3 C3 A 1 A 1 A1 A 1 D2 D2 B1 B1 B1 C2 D1 C1 B1 = 3 Round 2 Round 2 Round 1 Round 1 C3 = 2 C2 = 1 C1 = 1 D1 = 1 D2 = 2 Weights : 1:1:1:1 Understanding bit by bit WFQ 4 queues, sharing 4 bits/sec of bandwidth, Equal Weights Round 3 Courtesy: Nick McKeown, Stanford
The use of WFQ for (weighted) fairness • WFQ can be used to provide different rates to different flows. • Most routers today implement WFQ and can be used to give different rates to different flows. (Not used much yet). • Different definitions of a flow are possible: Application flow, all packets to a destination, all packets from a source, all http packets, the CEO’s traffic, … etc. Courtesy: Nick McKeown, Stanford
The problems caused by FIFO queues in routers • In order to maximize its chances of success, a source has an incentive to maximize the rate at which it transmits. • (Related to #1) When many flows pass through it, a FIFO queue is “unfair” – it favors the most greedy flow. • It is hard to control the delay of packets through a network of FIFO queues. Fairness Delay Guarantees Courtesy: Nick McKeown, Stanford
Some applications that would like bounds on packet delay • Multimedia Applications • One-to-many streaming stored audio or video. • Interactive streaming audio or video. • Other delay-sensitive applications • Real-time control. • Other delay-sensitive applications • Premium Internet/web access Courtesy: Nick McKeown, Stanford
The need for a playback buffer e.g. 10fps, 600x500 bytes per frame ~= 24Mb/s 45 45 24Mb/s 45 100 100 Courtesy: Nick McKeown, Stanford
The need for a playback buffer Source Destination Cumulative Bytes 24Mb/s 24Mb/s Total delay Time Courtesy: Nick McKeown, Stanford
In real life: Delay Variation Prob 99% Delay/latency e.g. 200ms Min Courtesy: Nick McKeown, Stanford
The need for a playback buffer Source Destination Cumulative Bytes 24Mb/s delay buffer Time Courtesy: Nick McKeown, Stanford
The need for a playback buffer Playback point 24Mb/s 24Mb/s Courtesy: Nick McKeown, Stanford
24Mb/s 24Mb/s The need for a playback buffer Cumulative Bytes latency buffer Time Courtesy: Nick McKeown, Stanford
Playback buffer • How to set the playback point? • Why not just set it to be very large? • How big to make the buffer? • Can we ever know how big to make the buffer? Courtesy: Nick McKeown, Stanford
Cum. Bytes latency buffer Time Some observations 45 45 24Mb/s 45 100 100 • Has a maximum instantaneous rate of <= 100Mb/s • Has an average rate of <= 24Mb/s • Has a short-term average rate of <= 45Mb/s Courtesy: Nick McKeown, Stanford
Deterministic analysis of a router queue FIFO delay, d(t) Cumulative bytes Model of router queue A(t) D(t) A(t) D(t) R B(t) B(t) R time Courtesy: Nick McKeown, Stanford
So how can we control the delay of packets? Assume continuous time, bit-by-bit flows for a moment… • Let’s say we know the arrival process, Af(t), of flow f to a router. • Let’s say we know the rate, R(f) that is allocated to flow f. • Then, in the usual way, we can determine the delay of packets in f, and the buffer occupancy. Courtesy: Nick McKeown, Stanford
Model of FIFO router queue Router Without QoS: A(t) D(t) R B(t) Model of WFQ router queues R(f1) A1(t) Router With QoS: D(t) A(t) A2(t) R(f2) AN(t) R(fN) Courtesy: Nick McKeown, Stanford
How to bound packet delay? Cumulative bytes Key idea: In general, we don’t know the arrival process. So let’s constrain it. A1(t) D1(t) R(f1) time Courtesy: Nick McKeown, Stanford
Let’s say we can bound the arrival process r Cumulative bytes Number of bytes that can arrive in any period of length t is bounded by: This is called “(s,r) regulation” A1(t) s time Courtesy: Nick McKeown, Stanford
dmax Bmax (s,r) Constrained Arrivals and Minimum Service Rate Cumulative bytes A1(t) D1(t) r s R(f1) time Theorem [Parekh,Gallager ’93]: If flows are leaky-bucket constrained,and routers use WFQ, then end-to-end delay guarantees are possible. Courtesy: Nick McKeown, Stanford
The leaky bucket “(s,r)” regulator Tokens at rate,r Token bucket size,s Packets Packets One byte (or packet) per token Packet buffer Courtesy: Nick McKeown, Stanford
How the user/flow can conform to the (s,r) regulation Tokens at rate,r Token bucket sizes To network Variable bit-rate compression C r bytes bytes bytes time time time Courtesy: Nick McKeown, Stanford
Providing Delay Guarantees: Summary • Before starting a new flow, source asks network for end-to-end delay guarantee. • Source negotiates(s,r) values with each router along the path so as to bound delay through every router, and hence bound the end-to-end delay. • Routers perform admission control to check whether they have sufficient resources (link data rate and buffers). • Each router along path reserves resources. • Flow starts, and source starts sending packets according to agreed (s,r) values. • Router determines which flow each arriving packet belongs to, and puts it in the right queue. • Router serves queues, using WFQ, so as to bound packet delay through the router. Courtesy: Nick McKeown, Stanford
Steps Involved in Providing Delay Guarantees • Per-session • Call setup, call admission and resource reservation “Can the network accept the call and provide the QoS?” • Per-packet • Packet Classification: “What flow does this packet belong to, and when should I send it?” • Shaping: “Am I keeping my side of the contract?” • Policing: “Did the user keep his/her side of the contract?” • Packet Scheduling: “Sending the packet at the right time.” Courtesy: Nick McKeown, Stanford
Proposed Techniques for QoS in the Internet • Resource ReSerVation Protocol (RSVP) • Integrated Services: Uses RSVP • Differentiated Services Courtesy: Nick McKeown, Stanford
Differentiated Services • Instead of per-flow queues and rates, uses per-class queues and rates. • Much simpler to implement, introduce and manage. • But… means that many flows share the same queue, state and capacity. So, it is like a simple approximation to Integrated Services. Courtesy: Nick McKeown, Stanford
Quality of Service in the Internet Some Interesting Questions • How can we implement per-flow buffering and scheduling when the number of flows is large? • How can we encourage/force users to ask for only the resources they need? • How can we bill users for the service they receive? Courtesy: Nick McKeown, Stanford
Quality of Service in the Internet The jury is still out as to what scheme makes most sense, if any. • Some people believe that fine-grained guarantees are needed. • Others believe that simple, coarse-grained guarantees will be sufficient. • Still others believe that a simple strict priority mechanism between “premium” and “best-effort” service will be OK. • Many people believe we should just provision a lot more capacity and be done with it! Courtesy: Nick McKeown, Stanford