1 / 31

EECS 122: QoS and Packet Scheduling: Token-Bucket, WFQ, Hierarchical Link Sharing

EECS 122: QoS and Packet Scheduling: Token-Bucket, WFQ, Hierarchical Link Sharing. Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA 94720-1776. Quality of Service (QoS). IP provides only best effort service

mcbean
Télécharger la présentation

EECS 122: QoS and Packet Scheduling: Token-Bucket, WFQ, Hierarchical Link Sharing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EECS 122: QoS and Packet Scheduling: Token-Bucket, WFQ, Hierarchical Link Sharing Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA 94720-1776

  2. Quality of Service (QoS) • IP provides only best effort service • Many applications want better services • IP telephony • Video teleconferencing • …. • Design a network that provides better than best-effort service • Basic service parameters • Delay • Bandwidth • Loss rate

  3. QoS Service • A contract between end-hosts and the network • End-host specify • Traffic characteristics (e.g., send no more than 100 Kbps) • Service requirements (e.g., delay < 50ms, loss < 0.1%) • Network performs: • Admission control: check whether it can grant end-host’s wish • Reserve resources for the traffic sent by end-host • Schedule packets to make sure that end-host’s requirements are met • If end-host violates the contract (e.g., sends more traffic than it said) all bets are off!

  4. QoS Granularity • 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

  5. Token Bucket • A simple traffic model used to: • Enforce traffic sent by a sender (e.g., cable modem) • Characterize the traffic sent by a sender

  6. Token Bucket • 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 Maximum # of bits sent r bps bits slope r b*R/(R-r) b bits slope R <= R bps time regulator

  7. (b) (a) 3Kb 2.2Kb T = 2ms : packet transmitted b = 3Kb – 1Kb + 2ms*100Kbps = 2.2Kb T = 0 : 1Kb packet arrives (c) (d) (e) 3Kb 2.4Kb 0.6Kb T = 4ms : 3Kb packet arrives T = 10ms : packet needs to wait until enough tokens are in the bucket! T = 16ms : packet transmitted Traffic Enforcement: Example • r = 100 Kbps; b = 3 Kb; R = 500 Kbps

  8. Source Traffic Characterization: Arrival Curve • 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

  9. (R=2,b=1,r=1) Arrival Curve: Example • Arrival curve – maximum amount of bits transmitted during an interval of time Δt • Use token bucket to bound the arrival curve Arrival curve bits 4 bps 3 2 2 1 1 Δt 0 1 2 3 4 5 1 2 3 4 5 time

  10. D Ba 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, no losses • Router: allocate bandwidth ra and buffer space Ba such that • no packet is dropped • no packet experiences a delay larger than D slope ra slope r bits Arrival curve b*R/(R-r) R

  11. Packet Scheduling • Decide when and what packet to send on output link • Make sure that the flow gets the allocated bandwidth • Usually implemented at output interface of a router flow 1 Classifier flow 2 Scheduler 1 2 flow n Buffer management

  12. Packet Scheduling: Example • 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)

  13. Weighted Fair Queueing (WFQ) • 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

  14. Fair Rate Computation: Example 1 • If link congested, compute f such that f = 4: min(8, 4) = 4 min(6, 4) = 4 min(2, 4) = 2 8 10 4 6 4 2 2

  15. 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 Fair Rate Computation: Example 2 • Associate a weight wiwith each flow i • If link congested, compute f such that f = 2: min(8, 2*3) = 6 min(6, 2*1) = 2 min(2, 2*1) = 2 8 (w1 = 3) 10 4 6 (w2 = 1) 4 2 2 (w3 = 1)

  16. 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

  17. transmission time 3 4 5 1 2 C 1 2 3 4 5 6 Fluid Flow System: Example 1 Flow 1 (w1 = 1) 100 Kbps Flow 2 (w2 = 1) Flow 1 (arrival traffic) 1 2 4 5 3 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time Service in fluid flow system time (ms) 0 10 20 30 40 50 60 70 80 Area (C x transmission_time) = packet size

  18. Fluid Flow System: Example 2 link • Red flow has sends packets between time 0 and 10 • Backlogged flow  flow’s queue not empty • Other flows send packets continuously • All packets have the same size flows weights 5 1 1 1 1 1 0 2 4 6 8 10 15

  19. Implementation In Packet System • Packet (Real) system: packet transmission cannot be preempted. • Solution: serve packets in the order in which they would have finished being transmitted in the fluid flow system

  20. Select the first packet that finishes in the fluid flow system 1 2 1 3 2 3 4 4 5 5 6 Packet System: Example 1 Service in fluid flow system 3 4 5 1 2 1 2 3 4 5 6 time (ms) Packet system time

  21. Select the first packet that finishes in the fluid flow system Packet System: Example 2 Service in fluid flow system 0 2 4 6 8 10 Packet system 0 2 4 6 8 10

  22. 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!

  23. Finish times computed at time 0 time 0 1 2 3 Finish times re-computed at time ε time 0 1 2 3 4 Example • Four flows, each with weight 1 Flow 1 time Flow 2 time Flow 3 time Flow 4 time ε

  24. 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

  25. 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) time

  26. 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 3 4 5 1 2 1 2 3 4 5 6 V(t) C/2 C

  27. 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

  28. Fair Queueing Implementation • Define • - virtual finishing time of packet k of flow i • - arrival time of packet k of flow i • - length of packet k of flow i • wi – weight of flow i • The finishing time of packet k+1 of flow i is / wi

  29. 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

  30. Hierarchical Link Sharing 155 Mbps Link 55 Mbps 100 Mbps Provider 1 Provider 2 50 Mbps 50 Mbps Berkeley Stanford. • Resource contention/sharing at different levels • Resource management policies should be set at different levels, by different entities • Resource owner • Service providers • Organizations • Applications 20 Mbps 10 Mbps Math Campus EECS seminar video seminar audio WEB

  31. Packet Approximation of H-WFQ • Idea 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 • Idea 2 • Use a hierarchy of WFQ to approximate H-WFQ Fluid Flow H-WFQ Packetized H-WFQ 10 10 WFQ WFQ 6 4 6 4 WFQ WFQ WFQ WFQ 1 1 3 3 2 2 WFQ WFQ WFQ WFQ WFQ WFQ

More Related