EECS 122: Introduction to Computer Networks Packet Scheduling and QoS Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA 94720-1776 Katz, Stoica F04 Today’s Lecture: 15 2 17, 18, 19 6 10,11 Transport 14, 15, 16 7, 8, 9 21, 22, 23 25 Application Network (IP) Link Physical Katz, Stoica F04 2 Packet Scheduling Decide when and what packet to send on output link - Usually implemented at output interface of a router flow 1 1 2 Classifier flow 2 Scheduler flow n Buffer management Katz, Stoica F04 3 Goals of Packet Scheduling Provide per flow/aggregate QoS guarantees in terms of delay and bandwidth Provide per flow/aggregate protection Flow/Aggregate identified by a subset of following fields in the packet header - source/destination IP address (32 bits) source/destination port number (16 bits) protocol type (8 bits) type of service (8 bits) Examples: - All packets from machine A to machine B All packets from Berkeley All packets between Berkeley and MIT All TCP packets from EECS-Berkeley Katz, Stoica F04 4 Outline QoS guarantees Link sharing Service curve (short) Katz, Stoica F04 5 Recap: Token Bucket and Arrival Curve Parameters - r – average rate, i.e., rate at which tokens fill the bucket - b – bucket depth - R – maximum link capacity or peak rate (optional parameter) A bit is transmitted only when there is an available token Arrival curve – maximum number of bits transmitted within an interval of time of size t r bps Arrival curve bits slope r b*R/(R-r) b bits slope R <= R bps time regulator Katz, Stoica F04 6 How Is the Token Bucket Used? Can be enforced by - End-hosts (e.g., cable modems) - Routers (e.g., ingress routers in a Diffserv domain) Can be used to characterize the traffic sent by an end-host Katz, Stoica F04 7 Source Traffic Characterization Arrival curve – maximum amount of bits transmitted during an interval of time Δt Use token bucket to bound the arrival curve bps bits Arrival curve Δt time Katz, Stoica F04 8 Source Traffic Characterization: Example Arrival curve – maximum amount of bits transmitted during an interval of time Δt Use token bucket to bound the arrival curve bits (R=2,b=1,r=1) Arrival curve 2 5 4 bps 3 2 2 1 1 0 1 2 3 4 5 time 1 3 4 Katz, Stoica F04 Δt 9 QoS Guarantees: Per-hop Reservation End-host: specify - the arrival rate characterized by token-bucket with parameters (b,r,R) - the maximum maximum admissible delay D Router: allocate bandwidth ra and buffer space Ba such that - no packet is dropped - no packet experiences a delay larger than D slope ra bits slope r Arrival curve b*R/(R-r) D Ba Katz, Stoica F04 10 Packet Scheduling Make sure that at any time the flow receives at least the allocated rate ra The canonical example of such scheduler: Weighted Fair Queueing (WFQ) Katz, Stoica F04 11 Recap: Fair Queueing Implements max-min fairness: each flow receives min(ri, f) , where - ri – flow arrival rate - f – link fair rate (see next slide) Weighted Fair Queueing (WFQ) – associate a weight with each flow Katz, Stoica F04 12 Fair Rate Computation: Example 1 If link congested, compute f such that min( r , f ) C i i 8 6 2 10 4 4 2 f = 4: min(8, 4) = 4 min(6, 4) = 4 min(2, 4) = 2 Katz, Stoica F04 13 Fair Rate Computation: Example 2 Associate a weight wi with each flow i If link congested, compute f such that min( r , f w ) C i i i (w1 = 3) 8 (w2 = 1) 6 (w3 = 1) 2 10 4 4 2 f = 2: min(8, 2*3) = 6 min(6, 2*1) = 2 min(2, 2*1) = 2 Flow i is guaranteed to be allocated a rate >= wi*C/(Σk wk) If Σk wk <= C, flow i is guaranteed to be allocated a rate >= wi Katz, Stoica F04 14 Fluid Flow System Flows can be served one bit at a time WFQ can be implemented using bit-by-bit weighted round robin - During each round from each flow that has data to send, send a number of bits equal to the flow’s weight Katz, Stoica F04 15 Fluid Flow System: Example 1 Packet Size (bits) Packet inter-arrival time (ms) Rate (Kbps) Flow 1 1000 10 100 Flow 2 500 10 50 Flow 1 (w1 = 1) 100 Kbps Flow 2 (w2 = 1) Flow 1 (arrival traffic) 1 2 5 time Flow 2 (arrival traffic) Service in fluid flow system 4 3 1 2 3 4 5 6 time 1 0 3 2 10 1 20 4 2 30 3 40 5 4 50 5 60 6 70 80 time (ms) Katz, Stoica F04 16 Fluid Flow System: Example 2 link Red flow has packets backlogged between time 0 and 10 - Backlogged flow flow’s queue not empty flows weights Other flows have packets continuously backlogged All packets have the same size 0 2 4 6 8 5 1 10 1 1 1 15 Katz, Stoica F04 17 1 Implementation In Packet System Packet (Real) system: packet transmission cannot be preempted. Why? Solution: serve packets in the order in which they would have finished being transmitted in the fluid flow system Katz, Stoica F04 18 Packet System: Example 1 Service in fluid flow system 1 3 2 1 4 2 3 5 4 5 6 time (ms) Select the first packet that finishes in the fluid flow system Packet system 1 2 1 3 2 3 4 4 5 5 6 time Katz, Stoica F04 19 Packet System: Example 2 Service in fluid flow system 0 2 4 6 8 10 Select the first packet that finishes in the fluid flow system Packet system 0 2 4 6 8 10 Katz, Stoica F04 20 Implementation Challenge Need to compute the finish time of a packet in the fluid flow system… … but the finish time may change as new packets arrive! Need to update the finish times of all packets that are in service in the fluid flow system when a new packet arrives - But this is very expensive; a high speed router may need to handle hundred of thousands of flows! Katz, Stoica F04 21 Example Four flows, each with weight 1 Flow 1 time Flow 2 time Flow 3 time Flow 4 time ε Finish times computed at time 0 time 0 1 2 3 Finish times re-computed at time ε time 0 1 2 3 4 Katz, Stoica F04 22 Solution: Virtual Time Key Observation: while the finish times of packets may change when a new packet arrives, the order in which packets finish doesn’t! - Only the order is important for scheduling Solution: instead of the packet finish time maintain the number of rounds needed to send the remaining bits of the packet (virtual finishing time) - Virtual finishing time doesn’t change when the packet arrives System virtual time – index of the round in the bit-by-bit round robin scheme Katz, Stoica F04 23 System Virtual Time: V(t) Measure service, instead of time V(t) slope – normalized rate at which every backlogged flow receives service in the fluid flow system - C – link capacity - N(t) – total weight of backlogged flows in fluid flow system at time t V(t) V (t ) C t N (t ) time Service in fluid flow system 1 2 1 2 3 3 4 4 5 6 5 time Katz, Stoica F04 24 System Virtual Time (V(t)): Example 1 V(t) increases inversely proportionally to the sum of the weights of the backlogged flows Flow 1 (w1 = 1) time Flow 2 (w2 = 1) time 1 2 V(t) 3 1 4 2 3 5 4 5 6 C/2 C Katz, Stoica F04 25 System Virtual Time: Example w1 = 4 w2 = 1 w3 = 1 w4 = 1 w5 = 1 V(t) C/4 C/8 C/4 0 4 8 12 16 Katz, Stoica F04 26 Fair Queueing Implementation Define - Fi k- virtual finishing time of packet k of flow i k - ai - arrival time of packet k of flow i k - Li - length of packet k of flow i - wi – weight of flow i The finishing time of packet k+1 of flow i is Fi k 1 max( V (aik 1 ), Fi k ) Lki 1/ wi Katz, Stoica F04 27 Properties of WFQ Guarantee that any packet is transmitted within packet_lengt/link_capacity of its transmission time in the fluid flow system - Can be used to provide guaranteed services Achieve max-min fair allocation - Can be used to protect well-behaved flows against malicious flows Katz, Stoica F04 28 Outline QoS guarantees Link sharing Service curve (short) Katz, Stoica F04 29 Hierarchical Link Sharing Link 155 Mbps 55 Mbps 100 Mbps Provider 1 50 Mbps Provider 2 50 Mbps Berkeley 20 Mbps EECS seminar video Stanford. 10 Mbps Math seminar audio Campus Resource contention/sharing at different levels Resource management policies should be set at different levels, by different entities - Resource owner Service providers Organizations Applications WEB Katz, Stoica F04 30 Hierarchical WFQ (H-WFQ) Example Red session has packets backlogged at time 5 Other sessions have packets continuously backlogged 10 5 1 4 1 1 1 1 1 First red packet arrives at 5 …and it is served at 7.5 Service in fluid flow system 0 10 20 Katz, Stoica F04 31 Packet Approximation of H-WFQ Fluid Flow H-WFQ Packetized H-WFQ 10 6 WFQ 2 WFQ WFQ 4 WFQ 1 - Select packet finishing first in H-WFQ assuming there are no future arrivals - Problem: • Finish order in system dependent on future arrivals • Virtual time implementation won’t work 10 WFQ 6 1 3 WFQ WFQ 4 WFQ WFQ 2 WFQ WFQ 3 WFQ Idea 1 Idea 2 - Use a hierarchy of WFQ to approximate H-WFQ Katz, Stoica F04 32 Problems with Idea 1 10 The order of the 4th blue packet finish time and of the first green packet finish time changes as a result of a red packet arrival Make decision here 5 1 4 1 1 1 1 1 Green packet finish first Blue packet finish first Katz, Stoica F04 33 Problem with Idea 2 10 A packet on the second level can miss its deadline (finish time) 5 1 4 1 1 1 1 1 First level packet schedule Second level packet schedule First red packet arrives at 5 …but it is served at 11 ! Katz, Stoica F04 34 Solution Hierarchical-WFQ with a better implementation of WFQ, called Worst-Case Weighted Fair Queueing (WF2Q) Main idea of WF2Q - Consider for scheduling only eligible packets - Eligible packet at time t: a packet that has started being serviced in the fluid flow system at time t Katz, Stoica F04 35 Example Fluid-Flow System WFQ (smallest finish time first) WF2Q (smallest eligible finish time first) Katz, Stoica F04 36 Hierarchical-WF2Q Example 10 In WF2Q, all packets meet their deadlines modulo time to transmit a packet (at the line speed) at each level 5 1 4 1 1 1 1 1 First level packet schedule Second level packet schedule First red packet arrives at 5 ..and it is served at 7 Katz, Stoica F04 37 Outline QoS guarantees Link sharing Service curve (short) Katz, Stoica F04 38 Bandwidth-Delay Coupling Assume - An arrival curve specified by token bucket (R, r, b) - A reservation request (rmin, D), where rmin – minimum bandwidth, D – maximum delay WFQ can be inefficient: to satisfy delay D, the allocated rate ra may need to be much higher than r ! slope ra bits b*R/(R-r) slope r Arrival curve D Katz, Stoica F04 39 Example End-host: request a worst-case delay D=10ms for a flow characterized by token bucket (R=1Mbps, b=10Kb, r=100Kbps) Router: allocate rate ra, where ra = b*R / (D*(R-r) + b) = 0.52Mbps Thus, the router needs to allocate to the flow more than 5 times its average rate r ! Katz, Stoica F04 40 Solution: Service Curve Generalize the service allocated to a flow - Assume a flow that is idle at time s and it is backlogged during the interval (s, t) - Service curve: the minimum service received by the flow during the interval (s, t) bits Arrival Curve D B S (t) = service curve t WFQ implements a linear service curve Katz, Stoica F04 41 Linear Service Curves: Example bits Service curves bits FTP Video t t Arrival process bits bits Arrival traffic t t bits bits Service t Video packets have to wait after ftp packets t t Katz, Stoica F04 42 Non-Linear Service Curves: Example bits Service curves bits FTP Video t t Arrival process bits bits Arrival traffic t t bits bits Service t t Video packets transmitted as soon as they arrive t Katz, Stoica F04 43 What You Need to Know Basic concepts - Arrival & service curve Token-bucket specification System virtual time / finish virtual time WFQ properties Link sharing requirements and challenges Bandwidth-delay coupling problem Mechanisms: - WFQ implementation in the fluid flow & packet system You don’t need to know - Details of WF2Q - How service curve works Katz, Stoica F04 44