Fair Queueing.

Slides:



Advertisements
Similar presentations
CS 268: Packet Scheduling Ion Stoica March 18/20, 2003.
Advertisements

1 Comnet 2010 Communication Networks Recitation 4 Scheduling & Drop Policies.
1 Weighted Fair Queueing GPS PGPS SCFQ Implementation.
1 CNPA B Nasser S. Abouzakhar Queuing Disciplines Week 8 – Lecture 2 16 th November, 2009.
Abhay.K.Parekh and Robert G.Gallager Laboratory for Information and Decision Systems Massachusetts Institute of Technology IEEE INFOCOM 1992.
CS 268: Lecture 8 Router Support for Congestion Control Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences.
# 1 Scheduling: Buffer Management. # 2 The setting.
Worst-case Fair Weighted Fair Queueing (WF²Q) by Jon C.R. Bennett & Hui Zhang Presented by Vitali Greenberg.
Scheduling CS 215 W Keshav Chpt 9 Problem: given N packet streams contending for the same channel, how to schedule pkt transmissions?
CS 268: Lecture 15/16 (Packet Scheduling) Ion Stoica April 8/10, 2002.
Networking Issues in LAN Telephony Brian Yang
Generalized Processing Sharing (GPS) Is work conserving Is a fluid model Service Guarantee –GPS discipline can provide an end-to-end bounded- delay service.
Service Disciplines for Guaranteed Performance Service Hui Zhang, “Service Disciplines for Guaranteed Performance Service in Packet-Switching Networks,”
Katz, Stoica F04 EECS 122: Introduction to Computer Networks Packet Scheduling and QoS Computer Science Division Department of Electrical Engineering and.
תזכורת  שבוע הבא אין הרצאה m יום א, נובמבר 15, 2009  שיעור השלמה m יום שישי, דצמבר 11, 2009 Lecture 4: Nov 8, 2009 # 1.
CS 268: Lecture 8 (Router Support for Congestion Control) Ion Stoica February 19, 2002.
May, Bit Round Robin Scheduling t t t. May, Bit Round Robin Scheduling t t t.
Lecture 4#-1 Scheduling: Buffer Management. Lecture 4#-2 The setting.
7/15/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Schedulers.
Packet Scheduling From Ion Stoica. 2 Packet Scheduling  Decide when and what packet to send on output link -Usually implemented at output interface 1.
CIS679: Scheduling, Resource Configuration and Admission Control r Review of Last lecture r Scheduling r Resource configuration r Admission control.
CONGESTION CONTROL and RESOURCE ALLOCATION. Definition Resource Allocation : Process by which network elements try to meet the competing demands that.
Advance Computer Networking L-5 TCP & Routers Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan.
Fair Queueing. 2 First-Come-First Served (FIFO) Packets are transmitted in the order of their arrival Advantage: –Very simple to implement Disadvantage:
March 29 Scheduling ?. What is Packet Scheduling? Decide when and what packet to send on output link 1 2 Scheduler flow 1 flow 2 flow n Buffer management.
CS640: Introduction to Computer Networks Aditya Akella Lecture 20 - Queuing and Basics of QoS.
Packet Scheduling: SCFQ, STFQ, WF2Q Yongho Seok Contents Review: GPS, PGPS SCFQ( Self-clocked fair queuing ) STFQ( Start time fair queuing ) WF2Q( Worst-case.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 18: Quality of Service Slides used with.
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems Real-Time Networks – WAN Packet Scheduling.
Scheduling Determines which packet gets the resource. Enforces resource allocation to each flows. To be “Fair”, scheduling must: –Keep track of how many.
Scheduling CS 218 Fall 02 - Keshav Chpt 9 Nov 5, 2003 Problem: given N packet streams contending for the same channel, how to schedule pkt transmissions?
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Weighted Fair Queuing Some slides used with.
Lecture Note on Scheduling Algorithms. What is scheduling? A scheduling discipline resolves contention, “who is the next?” Goal: fairness and latency.
1 Fair Queuing Hamed Khanmirza Principles of Network University of Tehran.
Queue Scheduling Disciplines
Spring Computer Networks1 Congestion Control Sections 6.1 – 6.4 Outline Preliminaries Queuing Discipline Reacting to Congestion Avoiding Congestion.
Providing QoS in IP Networks
Univ. of TehranIntroduction to Computer Network1 An Introduction Computer Networks An Introduction to Computer Networks University of Tehran Dept. of EE.
Scheduling for QoS Management. Engineering Internet QoS2 Outline  What is Queue Management and Scheduling?  Goals of scheduling  Fairness (Conservation.
Scheduling Mechanisms Applied to Packets in a Network Flow CSC /15/03 By Chris Hare, Ricky Johnson, and Fulviu Borcan.
04/02/08 1 Packet Scheduling IT610 Prof. A. Sahoo KReSIT.
Packet Scheduling (and QoS)
Khiem Lam Jimmy Vuong Andrew Yang
QoS & Queuing Theory CS352.
Sriram Lakshmanan Zhenyun Zhuang
Intro to Deterministic Analysis
Wireless Scheduling.
Stratified Round Robin: A Low Complexity Packet Scheduler with Bandwidth Fairness and Bounded Delay Sriram Ramabhadran Joseph Pasquale Presented by Sailesh.
Lottery Scheduling Ish Baid.
EE 122: Router Support for Congestion Control: RED and Fair Queueing
TCP, XCP and Fair Queueing
Quality of Service For Traffic Aggregates
COMP/ELEC 429/556 Introduction to Computer Networks
Variations of Weighted Fair Queueing
Scheduling Algorithms in Broad-Band Wireless Networks
Intro to Deterministic Analysis
Advance Computer Networking
Scheduling: Buffer Management
Computer Science Division
Advance Computer Networking
Variations of Weighted Fair Queueing
Network Simulation NET441
COMP/ELEC 429 Introduction to Computer Networks
Introduction to Packet Scheduling
EECS 122: Introduction to Computer Networks Packet Scheduling and QoS
VirtualClock.
Fair Queueing.
A Simple QoS Packet Scheduler for Network Routers
Introduction to Packet Scheduling
کنترل جریان امیدرضا معروضی.
Presentation transcript:

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

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

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

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 Packet Size (bits) Packet inter-arrival time (ms) Rate (Kbps) Flow 1 1000 10 100 Flow 2 500 50 Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 1) Flow 1 (arrival traffic) 1 2 3 4 5 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time Service in fluid flow system 10 20 30 40 50 60 70 80 time (ms) Slide from Ion Stoica

Fair Queueing (FQ): From fluid to packets (complete) Packet Size (bits) Packet inter-arrival time (ms) Rate (Kbps) Flow 1 1000 10 100 Flow 2 500 50 Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 1) Flow 1 (arrival traffic) 1 2 3 4 5 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time 1 2 3 4 5 6 Service in fluid flow system time (ms) 10 20 30 40 50 60 70 80

Fair Scheduling (fluid flow) 5000 5000 Flow 1 Flow 2 4000 4000 3000 3000 2000 2000 1000 1000 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80

Fair Scheduling (fluid flow) 5000 5000 Flow 1 Flow 2 4000 4000 3000 3000 2000 2000 1000 1000 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80

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

WFQ scheduling (with place holder) Packet Size (bits) Packet inter-arrival time (ms) Rate (Kbps) Flow 1 1000 10 100 Flow 2 500 50 Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 1) Flow 1 (arrival traffic) 1 2 3 4 5 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time 1 2 3 4 5 6 Service in fluid flow system time (ms) 10 20 30 40 50 60 70 80 Service in packet system 10 20 30 40 50 60 70 80 time (ms)

WFQ scheduling (complete) Packet Size (bits) Packet inter-arrival time (ms) Rate (Kbps) Flow 1 1000 10 100 Flow 2 500 50 Flow 1 (f1 = 1) 100 Kbps Flow 2 (f2 = 1) Flow 1 (arrival traffic) 1 2 3 4 5 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time 1 2 3 4 5 6 Service in fluid flow system time (ms) 10 20 30 40 50 60 70 80 Service in packet system 1 2 1 3 2 3 4 4 5 5 6 10 20 30 40 50 60 70 80 time (ms) 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

Rate of 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 and Lkj 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

WFQ Example (packet level) Flow 1 (arrival traffic) 1 2 3 4 5 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time 5000 Virtual time V(t) 4000 Time t 10 20 30 40 50 60 70 80 V(t) (x 100) Fn1 (x 100) Fn2 (x 100) 3000 2000 actual transmission order 1 2 1 3 2 3 4 4 5 5 6 1000 10 20 30 40 50 60 70 80 time t time (ms) 10 20 30 40 50 60 70 80

WFQ Example (packet level) Flow 1 (arrival traffic) 1 2 3 4 5 time Flow 2 (arrival traffic) 1 2 3 4 5 6 time 5000 Virtual time V(t) 4000 Time t 10 20 30 40 50 60 70 80 V(t) (x 100) 25 35 45 Fn1 (x 100) Fn2 (x 100) 3000 2000 actual transmission order 1 2 1 3 2 3 4 4 5 5 6 1000 10 20 30 40 50 60 70 80 time t time (ms) 10 20 30 40 50 60 70 80

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

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

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 ajk: auxVCj = max (auxVCj , ajk ) + Ljk / rj Stamp auxVCj in packet header Packet are transmitted in increasing order of virtual transmission times

Virtual clock order (with auxVCi) Example: Virtual Clock (with place holder) C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits wall clock (ms)= 1 3 4 6 7 8 9 2 5 10 11 1 2 3 4 5 6 7 8 9 10 11 r1=1/3 auxVC1 1 2 3 4 5 6 7 8 9 10 11 12 time r2=1/3 auxVC2 1 2 3 4 5 6 7 8 9 10 11 12 time r3=1/3 auxVC3 1 2 3 4 time Virtual clock order (with auxVCi) time

Example: Virtual Clock C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits wall clock (ms)= 1 3 4 6 7 8 9 2 5 10 11 r1=1/3 auxVC1= 1 2 3 4 5 6 7 8 9 10 11 12 time 3 6 9 12 15 18 r2=1/3 auxVC2 = 1 2 3 4 5 6 7 8 9 10 11 12 time 3 6 9 12 15 18 r3=1/3 auxVC3 = 1 2 3 4 time 3 6 9 12 Virtual clock order (with auxVCi) 1 1 1 2 2 2 3 3 3 4 4 4 time 3 3 3 6 6 6 9 9 9 12 12 12

Virtual clock order (with auxVCi) Example: Virtual Clock (with place holder) C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits “auxVCj = max (auxVCj , ajk ) + Ljk / rj” prevents credit accumulation of idle flows wall clock (ms)= 1 3 4 6 7 8 9 2 5 10 11 r1=1/3 auxVC1 1 2 3 4 time r2=1/3 auxVC2 1 2 3 4 time r3=1/3 auxVC3 1 2 3 4 time Virtual clock order (with auxVCi) time

Virtual clock order (with auxVCi) Example: Virtual Clock (complete) C = 1 Mbps, r1=r2=r3=1/3 Mbps, L=1000 bits “auxVCj = max (auxVCj , ajk ) + Ljk / rj” prevents credit accumulation of idle flows 1 3 4 6 7 8 9 2 5 10 11 wall clock (ms)= r1=1/3 auxVC1 1 2 3 4 time 3 6 9 12 r2=1/3 auxVC2 1 2 3 4 time 3 6 9 12 r3=1/3 auxVC3 1 2 3 4 time 9 12 15 18 Virtual clock order (with auxVCi) 1 1 2 2 1 3 3 2 4 4 3 4 time 3 3 6 6 9 9 9 12 12 12 15 18

Problem with Virtual Clock (with place holder) Flow that gets more than reserved rate may be penalized in the future 1 3 4 6 7 8 9 2 5 10 11 9 10 11 r1=1/3 auxVC1= 1 2 3 4 5 6 7 8 time 3 6 9 12 15 18 21 24 r2=1/3 auxVC2 = 1 2 3 4 time 8 11 14 17 r3=1/3 auxVC3 = 1 2 3 4 time 8 11 14 17 Virtual clock order (with auxVCi) time

Problem with Virtual Clock (with place holder) Flow that gets more than reserved rate may be penalized in the future 1 3 4 6 7 8 9 2 5 10 11 r1=1/3 auxVC1= 1 2 3 4 5 6 7 8 time 3 6 9 12 15 18 21 24 r2=1/3 auxVC2 = 1 2 3 4 time 8 11 14 17 r3=1/3 auxVC3 = 1 2 3 4 time 8 1 14 17 1 2 3 4 5 1 1 2 2 3 3 4 4 6 7 8 Virtual clock order (with auxVCi) time 3 6 9 12 15 8 8 11 11 14 14 17 17 18 21 24 time

Problem with Virtual Clock (complete) Flow that gets more than reserved rate may be penalized in the future wall clock (ms)= 1 2 3 4 5 6 7 8 9 10 11

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