270 likes | 288 Views
Explore Fair Queueing (FQ) and Weighted Fair Queueing (WFQ) algorithms for achieving fair rate allocation and weighted fair rate allocation in packet networks. Understand the challenges and approaches to implementing these algorithms, transitioning from a fluid-flow view to packet-level scheduling. Learn about system virtual time and how WFQ emulation strives to mimic fluid-flow behavior.
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