Top Banner
Fair Queueing
32

Fair Queueing

Jan 06, 2016

Download

Documents

Kevin D. Lam

Fair Queueing. First-Come-First Served (FIFO). Packets are transmitted in the order of their arrival Advantage: Very simple to implement Disadvantage: Cannot give different service to different types of connections Each flow (even with low data rate) can experience long delays. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fair Queueing

Fair Queueing

Page 2: Fair Queueing

2

First-Come-First Served (FIFO)

• Packets are transmitted in the order of their arrival• Advantage:

– Very simple to implement • Disadvantage:

– Cannot give different service to different types of connections– Each flow (even with low data rate) can experience long delays

Page 3: Fair Queueing

3

Static Priority

• Also called Head-of-Line (HOL) queueing:

– Each traffic flow belong to a class

– Each class has a priority

– One FIFO queue for each class

– Transmit from the highest priority queue with a backlog

• Advantage:

– Simple

• Disadvantage:

– Tends to “starve” the lower priority classes

Page 4: Fair Queueing

4

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

FIFO

Fair Queueing

Page 5: Fair Queueing

5

Discussion of Fair Rate Allocation

• See class notes

Page 6: Fair Queueing

6

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 when1. Traffic is transmitted in packet of variable size2. Transmission of a packet cannot be interrupted

Page 7: Fair Queueing

7

Fair Queuing in packet networks

• Approach:1. 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

2. Approximate fluid-flow schedule by a packet-level scheduling algorithm

Page 8: Fair Queueing

8

Fair Queuing (FQ): From fluid to packets

1 2 3 4 5

1 2 3 4 5 6Flow 2(arrival traffic)

Flow 1(arrival traffic)

Servicein fluid flow

system

time

time

time (ms)

Packet Size (bits)

Packet inter-arrival time (ms)

Rate (Kbps)

Flow 1 1000 10 100

Flow 2 500 10 50

100 KbpsFlow 1 (1 = 1)

Flow 2 (2 = 1)

0 10 20 30 40 50 60 70 80

Slide from Ion Stoica

Page 9: Fair Queueing

9

Fair Queueing (FQ): From fluid to packets (complete)

1 2 3 4 5

1 2 3 4 5 6Flow 2(arrival traffic)

Flow 1(arrival traffic)

time

time

Packet Size (bits)

Packet inter-arrival time (ms)

Rate (Kbps)

Flow 1 1000 10 100

Flow 2 500 10 50

100 KbpsFlow 1 (1 = 1)

Flow 2 (2 = 1)

1 2 31 2

43 4

55 6

Servicein fluid flow

system time (ms)0 10 20 30 40 50 60 70 80

Page 10: Fair Queueing

10

Fair Scheduling (fluid flow)

0 40 80

1000

Flow 1

2000

3000

4000

5000

10 20 30 50 60 70 0 40 80

1000

Flow 2

2000

3000

4000

5000

10 20 30 50 60 70

Page 11: Fair Queueing

11

Fair Scheduling (fluid flow)

0 40 80

1000

Flow 1

2000

3000

4000

5000

10 20 30 50 60 70 0 40 80

1000

Flow 2

2000

3000

4000

5000

10 20 30 50 60 70

Page 12: Fair Queueing

12

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:

Page 13: Fair Queueing

13

Weighted Fair Scheduling (WFQ)(fluid flow view)

• There are N flows with weights 1 , 2 , …,N

• 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:

Page 14: Fair Queueing

14

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

Page 15: Fair Queueing

15

WFQ scheduling (with place holder)

1 2 3 4 5

1 2 3 4 5 6Flow 2(arrival traffic)

Flow 1(arrival traffic)

time

time

Packet Size (bits)

Packet inter-arrival time (ms)

Rate (Kbps)

Flow 1 1000 10 100

Flow 2 500 10 50

100 KbpsFlow 1 (1 = 1)

Flow 2 (2 = 1)

Servicein packetsystem time (ms)0 10 20 30 40 50 60 70 80

1 2 31 2

43 4

55 6

Servicein fluid flow

system time (ms)0 10 20 30 40 50 60 70 80

Page 16: Fair Queueing

16

WFQ scheduling (complete)

1 2 3 4 5

1 2 3 4

1 2

5 6Flow 2(arrival traffic)

Flow 1(arrival traffic)

time

time

Packet Size (bits)

Packet inter-arrival time (ms)

Rate (Kbps)

Flow 1 1000 10 100

Flow 2 500 10 50

100 KbpsFlow 1 (1 = 1)

Flow 2 (2 = 1)

Slide from Ion Stoica

Servicein packetsystem time (ms)0 10 20 30 40 50 60 70 80

1 3 2 3 4 4 55 6

1 2 31 2

43 4

55 6

Servicein fluid flow

system time (ms)0 10 20 30 40 50 60 70 80

Page 17: Fair Queueing

17

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

Page 18: Fair Queueing

18

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

Page 19: Fair Queueing

19

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

Page 20: Fair Queueing

20

WFQ: Implementation

• Virtual finish time of k-th packet from flow j

• ajk is the arrival time and Lk

j is thesize of the k-th packet from flow j

• Packets are sorted and transmitted in the order of virtual finishing times– Virtual times needs to be computed only at arrival time of

packets

– must keep track of the busy set Bl

Page 21: Fair Queueing

21

WFQ Example (packet level)

0 40 80

1000

2000

3000

4000

5000

10 20 30 50 60 70

Time t 0 10 20 30 40 50 60 70 80

V(t)(x 100)

Fn1

(x 100)

Fn2

(x 100)

Virtual time V(t)

time t

1 2

time (ms)

0 10 20 30 40 50 60 70 80

1 3 2 3 4 4 55 6actual

transmissionorder

1 2 3 4 5

1 2 3 4 5 6Flow 2(arrival traffic)

Flow 1(arrival traffic)

time

time

Page 22: Fair Queueing

22

WFQ Example (packet level)

0 40 80

1000

2000

3000

4000

5000

10 20 30 50 60 70

Time t 0 10 20 30 40 50 60 70 80

V(t)(x 100)

0 10 20 25 30 35 40 45 50

Fn1

(x 100)

10 20 30 40 50

Fn2

(x 100)

25 30 35 40 45 50

Virtual time V(t)

time t

1 2

time (ms)

0 10 20 30 40 50 60 70 80

1 3 2 3 4 4 55 6actual

transmissionorder

1 2 3 4 5

1 2 3 4 5 6Flow 2(arrival traffic)

Flow 1(arrival traffic)

time

time

Page 23: Fair Queueing

23

Approximations of Fair Queueing

• Since the packet implementation of WFQ is complex, packet switches often use approximations:

– Weighted Round Robin (WRR)– Virtual Clock (VC)

– Many others

Page 24: Fair Queueing

24

Weighted Round Robin (WRR)

• Simple emulation of GPS– Operates in “rounds”

– Li is the average packet size of flow i

• Calculate the number of packets to be served in each round:– For each flow i: xi = wi / Li

– x = mini { xi }

– For each flow i: packets_per_roundi = xi / x

• WRR is a good approximation of GPS if– All flows are active– Over long periods of time

Page 25: Fair Queueing

25

Virtual Clock (VC)

• Emulates a system with transmissions in periodic intervals

• Two state variables for each flow j:

– auxVCj virtual transmission time of the flow

– rj reserved rate

• The variable auxVCj keeps track of hypothetical departure times. If all traffic from flow j is limited to the reserved rate, then auxVCj is the departure time of an arrival.

• Upon arrival of a packet from flow j with size Ljk at time aj

k:

– auxVCj = max (auxVCj , ajk ) + Lj

k / rj

– Stamp auxVCj in packet header

– Packet are transmitted in increasing order of virtual transmission times

Page 26: Fair Queueing

26

Example: Virtual Clock (with place holder)C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits

r1=1/3

auxVC1

time

r2=1/3

auxVC2

time

r3=1/3

auxVC3

time

Virtual clock order

(with auxVCi)time

0 1 3 4 6 7 8 92 5 10 11wall clock (ms)=

1 2 3 4 5 6 7 8 9 10 11 12

1 2 3 4 5 6 7 8 9 10 11 12

1 2 3 4

0 1 3 4 6 7 8 92 5 10 11

Page 27: Fair Queueing

27

Example: Virtual Clock C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits

r1=1/3

auxVC1=time

r2=1/3

auxVC2 =time

r3=1/3

auxVC3 =time

timeVirtual clock

order(with auxVCi)

wall clock (ms)=

1 2 3 4 5 6 7 8 9 10 11 12

1 2 3 4 5 6 7 8 9 10 11 12

1 2 3 4

1 1 1 222 3 3 3

3 3 3 6 6 6 9 9 9 12 12 12

4 4 4

3 6 9 12 15 18

3 6 9 12 15 18

3 6 9 12

0 1 3 4 6 7 8 92 5 10 11

Page 28: Fair Queueing

28

Example: Virtual Clock (with place holder)C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits

r1=1/3

auxVC1

time

r2=1/3

auxVC2

time

r3=1/3

auxVC3

time

time

Virtual clock order

(with auxVCi)

1 2 3 4

1 2 3 4

1 2 3 4

• “auxVCj = max (auxVCj , ajk ) + Lj

k / rj” prevents credit accumulation of idle flows

0 1 3 4 6 7 8 92 5 10 11wall clock (ms)=

Page 29: Fair Queueing

29

Example: Virtual Clock (complete)C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits

r1=1/3

auxVC1

time

r2=1/3

auxVC2

time

r3=1/3

auxVC3

time

time

Virtual clock order

(with auxVCi)

wall clock (ms)=

1 2 3 4

1 2 3 4

1 2 3 4

11 1 2 2 3 3 2 4 4 3 4

3 6 9 12

3 6 9 12

9 12 15 18

3 3 6 6 9 9 9 12 12 12 15 18

• “auxVCj = max (auxVCj , ajk ) + Lj

k / rj” prevents credit accumulation of idle flows0 1 3 4 6 7 8 92 5 10 11

Page 30: Fair Queueing

30

Problem with Virtual Clock (with place holder)

• Flow that gets more than reserved rate may be penalized in the future

r1=1/3

auxVC1=time

r2=1/3

auxVC2 =time

r3=1/3

auxVC3 =time

Virtual clock order

(with auxVCi)

time

1 2 3 4 5 6 7 8

1 2 3 4

1 2 3 4

3 6 9 12 15 18

8 11 14 17

8 11 14 17

21 24

9 10 110 1 3 4 6 7 8 92 5 10 11

Page 31: Fair Queueing

31

Problem with Virtual Clock (with place holder)

• Flow that gets more than reserved rate may be penalized in the future

r1=1/3

auxVC1=time

r2=1/3

auxVC2 =time

r3=1/3

auxVC3 =time

timeVirtual clock order

(with auxVCi)

time

1 2 3 4 5 6 7 8

1 2 3 4

1 2 3 4

1 2 3 4 5 1 1 2 2

3 6 9 12 15 8 8 11 11 14 14 17

3 3 4

3 6 9 12 15 18

8 11 14 17

8 1 14 17

21 24

4 6 7 8

18 21 2417

0 1 3 4 6 7 8 92 5 10 11

Page 32: Fair Queueing

32

Problem with Virtual Clock (complete)

• Flow that gets more than reserved rate may be penalized in the future

0 1 3 4 6 7 8 92 5 10 11wall clock (ms)=