270 likes | 273 Vues
Fair Queueing. FIFO. Fair Queueing. Fair Queueing. Attempts to implement a scheduler that simultaneously serves all flows with a backlog at the same rate Not easy to implement Fair Queuing in a packet network. Discussion of Fair Rate Allocation. See class notes. Fair Scheduling Algorithms.
E N D
FIFO Fair Queueing Fair Queueing • Attempts to implement a scheduler that simultaneously serves all flows with a backlog at the same rate • Not easy to implement Fair Queuing in a packet network
Discussion of Fair Rate Allocation • See class notes
Fair Scheduling Algorithms • Fair Queueing (FQ), a.k.a as Processor Sharing (PS) Objective: Achieve fair rate allocation • Weighted Fair Queueing (WFQ), a.k.a. Generalized Processor Sharing (GPS) Objective: Achieve weighted fair rate allocation Problem: How to realize a fair rate allocation when • Traffic is transmitted in packet of variable size • Transmission of a packet cannot be interrupted
Fair Queuing in packet networks • Approach: • Take a fluid-flow view of traffic • View output link as a “pipe” with a given width • Transmitted traffic flows like a fluid through the pipe Scheduler can transmit traffic from multiple flows at the same time • Scheduler controls the “output rate” for each flow Output rates are set to satisfy “fairness” • Result is a fluid flow schedule • Approximate fluid-flow schedule by a packet-level scheduling algorithm
Fair Queuing (FQ): From fluid to packets Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 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 Slide from Ion Stoica
Service in fluid flow system 3 4 5 1 2 1 2 3 4 5 6 time (ms) 0 10 20 30 40 50 60 70 80 Fair Queueing (FQ): From fluid to packets (complete) Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 1) Flow 1 (arrival traffic) 1 2 4 5 3 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time
Fair Scheduling (fluid flow) 5000 5000 Flow 2 Flow 1 4000 4000 3000 3000 2000 2000 1000 1000 0 10 40 50 70 80 20 30 60 0 10 40 50 70 80 20 30 60
Fair Scheduling (fluid flow) 5000 5000 Flow 2 Flow 1 4000 4000 3000 3000 2000 2000 1000 1000 0 10 40 50 70 80 20 30 60 0 10 40 50 70 80 20 30 60
Fair Scheduling (FQ)(fluid flow view) • There are N flows • At any time t, all backlogged flows are served at the same rate of: where B(t) is the set of backlogged flows at time t C is the capacity of the link • The total rate guarantee to a flow j is:
Weighted Fair Scheduling (WFQ)(fluid flow view) • There are N flows with weights f1 , f2 , …,fN • The service given to two backlogged flows is proportional to their weights • At any time t , the rate allocated to a backlogged flow i is: where B(t) is the set of backlogged flows at time t C is the capacity of the link • The total rate guarantee to a flow is:
FQ/WFQ Scheduling for Packets(packet-level view) • Packet-level implementation of FQ and WFQ tries to emulate the fluid-flow version • Scheduling decision: Always select the packet that will finish next in the ideal fluid-flow FQ/WFQ system
Service in fluid flow system 3 4 5 1 2 1 2 3 4 5 6 time (ms) 0 10 20 30 40 50 60 70 80 WFQ scheduling (with place holder) Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 1) Flow 1 (arrival traffic) 1 2 4 5 3 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time Service in packet system time (ms) 0 10 20 30 40 50 60 70 80
Service in fluid flow system 3 4 5 1 2 1 2 3 4 5 6 time (ms) 0 10 20 30 40 50 60 70 80 WFQ scheduling (complete) Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 1) Flow 1 (arrival traffic) 1 2 4 5 3 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time Service in packet system 1 3 2 3 4 1 2 4 5 6 5 time (ms) 0 10 20 30 40 50 60 70 80 Slide from Ion Stoica
Packet-level Implementation of WFQ Problems to deal with: • The finishing time of a packet in the fluid-flow system may depend on arrivals after a packet has been selected packet-level version of WFQ cannot be 100% accurate • Once started, packet transmission cannot be preemtped • Implementation: • When a packet arrives, it is assigned a “virtual finishing time” • This is the finishing time in the fluid flow system if the set of backlogged flows does not change after packet arrival • Orders packets in increasing order of virtual finishing times • Compute virtual finishing time with the help of a system virtual time
System Virtual Time • B(t) : the set of backlogged flows at time t • The rate allocated to a backlogged flow i at time t is or : service that a backlogged flow with weight 1 receives in GPS Rate of Rate of system virtual time
WFQ: System Virtual Time • WFQ uses a System Virtual Time which tracks the progress of GPS system • Suppose the times when the set B(t) changes are • Let Bl be the set of backlogged flows in time interval • Then we have • When fewer flows are active, virtual time moves faster
WFQ: Implementation • Virtual finish time of k-th packet from flow j • ajk is the arrival time andLkj is thesize of the k-th packet from flow j • Packets are sorted and transmitted in the order of virtual finishing times • Virtual time needs to be computed only at arrival time of packets • must keep track of the busy set Bl
WFQ Example (packet level) Flow 1 (arrival traffic) 1 2 4 5 3 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time Virtual time V(t) 5000 4000 3000 2000 actualtransmissionorder 1 3 2 3 4 4 5 6 5 1 2 1000 0 10 20 30 40 50 60 70 80 time t time (ms) 0 10 40 50 70 80 20 30 60
WFQ Example (packet level) Flow 1 (arrival traffic) 1 2 4 5 3 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time Virtual time V(t) 5000 4000 3000 2000 actualtransmissionorder 1 3 2 3 4 4 5 6 5 1 2 1000 0 10 20 30 40 50 60 70 80 time t time (ms) 0 10 40 50 70 80 20 30 60
WFQ and WF2Q 12 flows, all packets have size 1, C = 1: 4 10 1 2 3 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 0 Flow 1 f1 = 0.5 time Flow 2 f2 = 0.05 time … … Flow 11 f11 = 0.05 time fluid flow system 0 2 4 6 20 21
WFQ and WF2Q 12 flows, all packets have size 1, C = 1: 4 10 1 2 3 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 0 Flow 1 f1 = 0.5 time Flow 2 f2 = 0.05 time … … Flow 11 f11 = 0.05 time Flow 1 fluid flow system Flow 2 … … Flow 11 0 2 4 6 20 21
WFQ and WF2Q 12 flows, all packets have size 1, C = 1: 4 10 1 2 3 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 0 Flow 1 f1 = 0.5 time Flow 2 f2 = 0.05 time … … Flow 11 f11 = 0.05 time WFQ transmission order time 10 0 20 21
Worst-Case Fair Fair Queueing • Issue: While WFQ never falls behind the fluid-flow schedule by more than one packet size, it can run ahead of the fluid-flow schedule by an arbitrary amount. • WF2Q Scheduling: • Only considers packets for transmission that have already started transmission in the fluid-flow system • Of these, it selects the packet with the smallest finishing time (in the fluid-flow system) • WF2Q Properties: • Like WFQ, WF2Q never falls behind the fluid-flow schedule by more than one packet size ( same end-to-end delay bounds as WFQ) • Unlike WFQ, it never runs ahead of the fluid-flow schedule by more than one packet size
WFQ and WF2Q 12 flows, all packets have size 1, C = 1: 4 10 1 2 3 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 0 Flow 1 f1 = 0.5 time Flow 2 f2 = 0.05 time … … Flow 11 f11 = 0.05 time WFQ transmission order WF2Q transmission order time 10 0 20 21
WFQ and WF2Q 12 flows, all packets have size 1, C = 1: 4 10 1 2 3 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 0 Flow 1 f1 = 0.5 time Flow 2 f2 = 0.05 time … … Flow 11 f11 = 0.05 time WFQ transmission order WF2Q transmission order time 10 0 20 21