Variations of Weighted Fair Queueing
Issues with WFQ WFQ does not run behind GPS by more than Lmax/C . However, WFQ may run ahead of GPS by a lot Improvement: Bound the time by which WFQ can run ahead of GPS WF2Q, WF2Q+ Implementation overhead of computing virtual time Improvement: Avoid virtual time computation, while maintaining fairness properties SCFQ, SFQ, WF2Q+ Need to maintain a sorted queue (sorted in order of timestamps) Improvement: Use a round-robin approach WRR, DRR (Stratified Round Robin)
Weighted Round Robin (WRR) Parameters: Li is the average packet size of flow i ϕi : weight of flow i (ϕi > 0) One FIFO queue for each flow Operates in “rounds”, where each queue with a backlog is visited once in a round Calculate the number of packets to be served in each round: For each flow i: xi = ϕi / Li x = mini { xi } For each flow i: packets_per_roundi = xi / x
Weighted Round Robin (WRR) If all flows are active and packets are equal to the average Li , then the rate allocated to flow i is WRR is a good approximation of GPS if All flows are active over long periods of time Packet sizes are equal to the average size Li Otherwise, WRR can deviate substantially from the desired fair allocation
Deficit Round Robin (DRR) Can be viewed as Improvement to WRR without need for average packet size Approximation of WFQ without need for a sorted queue One FIFO queue for each flow Operates in “rounds”, where each queue with a backlog is visited once in a round Qi : Quantum of flow Maximum number of bytes from flow i that are sent in one round (Quantum is greater than max. size of flow i packets (Qi > Limax)) DCi : Deficit counter of flow i Credit of flows (in bytes) saved for the next round Credits 50 100 75 50 50 50 75 50 50 50 75 150 75 Credits 50 100 75 Time 50 50 50 50 25 50 50 25 150 75 Credits 50 100 150 50 50 100 50 50 100 150 150 Drawing from:https://web.stanford.edu/class/ee384y/projects/download03/francois_muralee.ppt
Deficit Round Robin (DRR) If queue is empty: Qi=0 Otherwise, Add quantum Qi to flow i in each round: DCi = DCi + Qi Transmit packet with size L from head of queue i and set DCi = DCi - L Continue transmitting (and subtracting DCi) until packet size at head of queue i is larger than DCi Credits 50 100 75 50 50 50 75 50 50 50 75 150 75 Credits 50 100 75 Time 50 50 50 50 25 50 50 25 150 75 Credits 50 100 150 50 50 100 50 50 100 150 150 Drawing from:https://web.stanford.edu/class/ee384y/projects/download03/francois_muralee.ppt 6
Deficit Round Robin (DRR) The share of flow i: The bandwidth guarantee of flow i: Fairness metric for two backlogged flows i and j in [t1,t2]:
Self-Clocked Fair Queueing (SCFQ) Start-time Fair Queueing (SFQ)
Self-Clocked Fair Queueing (SCFQ) Objective: Avoid the need to keep track of system virtual time Idea: System virtual time keeps track of the service received by a flow with weight ϕi =1 Virtual finishing time of a packet is the finishing time of the packet in system virtual time Virtual finishing time encodes information on system virtual time Use virtual finishing time of a packet instead of system virtual time Fairness metric for two backlogged flows i and j in [t1,t2]:
Worst-Case Fair Fair Queueing (WF2Q)
WFQ and WF2Q … … 12 flows, all packets have size 1, C = 1: Flow 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Flow 1 f1 = 0.5 time Flow 2 f2 = 0.05 time … … Flow 11 f11 = 0.05 time fluid flow system 20 2 6 4 21
WFQ and WF2Q … … … … 12 flows, all packets have size 1, C = 1: Flow 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 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 20 2 6 4 21
WFQ transmission order WFQ and WF2Q 12 flows, all packets have size 1, C = 1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Flow 1 f1 = 0.5 time Flow 2 f2 = 0.05 time … … Flow 11 f11 = 0.05 time WFQ transmission order time 10 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: Flow 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 20 21
WFQ and WF2Q … … 12 flows, all packets have size 1, C = 1: Flow 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 20 21