CS 557 Fair Queuing Analysis and Simulation of a Fair Queueing - - PowerPoint PPT Presentation

cs 557 fair queuing
SMART_READER_LITE
LIVE PREVIEW

CS 557 Fair Queuing Analysis and Simulation of a Fair Queueing - - PowerPoint PPT Presentation

CS 557 Fair Queuing Analysis and Simulation of a Fair Queueing Algorithm A. Demers, S. Keshav, and S. Shenker, 1989 Spring 2013 The Story So Far . Some Essential Apps: DNS (naming) and NTP (time). Transport layer: End to End


slide-1
SLIDE 1

CS 557 Fair Queuing

Analysis and Simulation of a Fair Queueing Algorithm

  • A. Demers, S. Keshav, and S. Shenker, 1989

Spring 2013

slide-2
SLIDE 2

Network layer: Addressing, Fragmentation, Dynamic Routing, Best Effort Forwarding Transport layer: End to End communication, Multiplexing, Reliability, Congestion control, Flow control,

The Story So Far….

Data Layer: richly connected network (many paths) with many types of unreliable links Some Essential Apps: DNS (naming) and NTP (time).

slide-3
SLIDE 3

Fair Queuing Main Points

  • Objective:

– Modify router queuing algorithms to ensure fairness

  • Approach:

– Classify packets into <src, dest> flows – Send packets based on finishing time in bit round-robin protocol

  • Contributions:

– Well known technique and implemented in production routers

slide-4
SLIDE 4

Congestion Control Options

  • Control Congestion at Source

– Typically adjust congestion windows – But can’t assume everyone will do this

  • Faulty implementation of the control algorithm
  • Intentional ignorance of the control algorithm
  • Dynamic Routing

– Route packets around congestion – Has problems with jitter, convergence, etc.

  • Managing the Queues at the Routers

– Topic of this paper

slide-5
SLIDE 5

Queue Management

  • Fairly Allocate the Bandwidth

– Which packets get transmitted

  • Fairly Allocate the Delay

– When does a packet get transmitted

  • Fairly Allocate the Buffer Space

– Which packets to drop when too many packets arrive

slide-6
SLIDE 6

Previous Approaches

  • FIFO Queuing (FCFS in the paper)

– Packets served on first come, first served basis – Assumptions used in the previous papers – RED will modify rules for dropping packets

  • Attempt to provide fairness for buffer allocation
  • Aggressive sender can still capture most

bandwidth

  • Seek a solution that is “fair” to all flows
slide-7
SLIDE 7

Defining Fairness: Flows

  • First ask “fair” to whom?

– “Conversations” in this paper – Flows is the common term today

  • What is a flow?

– Source address? – Desitnation address? – Process pair?

  • Typical definition:

<source, destination> pair why choose this definition?

slide-8
SLIDE 8

Defining Fairness: MaxMin

  • Given a resource utotal and several requests pi
  • Assign allocations of ui to node i.
  • Allocation is fair if

– No one receives more than they requested: ui <= pi for all i – No other allocation has higher minimum allocation (for allocations meeting requirement above) – Recursive true after removal of minimum node: let j = user with minimum allocation let utotal = utotal - uj remove user j above conditions should still hold

slide-9
SLIDE 9

A Simple (Incorrect) Approach

  • Allocate buffer space for each flow

– Only drop packet if individual flow buffer overflows – Seems fair in terms of buffer allocation….

  • Round-Robin Rule for Sending Packets

– Transmit packet from queue 1, then queue 2, etc.

  • Is this approach fair?

– What should a sender do to optimize its share of bandwidth?

slide-10
SLIDE 10

A Simple (Impractical) Approach

  • Allocate buffer space for each flow

– Only drop packet if individual flow buffer overflows – Seems fair in terms of buffer allocation….

  • Round-Robin Rule for Sending Bits

– Transmit one bit from queue 1, then queue 2, etc.

  • Is this approach fair?
  • Some notation:

R(t) = the number of rounds up to time t Nac(t) = the number of active flows at time t S(i,a) = the time packet i from flow a arrives F(i,a) = the time packet i from flow a left

slide-11
SLIDE 11

Notations

  • Some notation:

R(t) = the number of rounds up to time t Nac(t) = the number of active flows at time t S(i,a) = the round packet i from flow starts F(i,a) = the round packet i from flow finishes

  • In which round is a packet transmitted?

S(i,a) = Max(R(arrival_time), F(i-1,a)) F(i,a) = S(i,a) + P

  • Can order packets by their finishing time F(i,a)
slide-12
SLIDE 12

A Fair Queuing Algorithm

  • Important factor is the finishing time F(i,a)

– Packet arrived bit by bit (impractical approach) – But it does not matter how bits arrived – Packet is not available until F(i,a) anyway

  • Fair Queuing Approach

– Send packet with lowest F(i,a)

  • Pre-emption

– What if packet arrives with lower F(i,a) then current packet? – Could choose to pre-empt (easier to analyze) or wait (easier to implement)

slide-13
SLIDE 13

Fairness in Delay

  • Give less delay to flows that use less than their fair

share of bandwidth

– Example

  • FTP uses large bandwidth so provide reasonable delay
  • TCP uses little bandwidth so provide only small delay
  • Add a new delay parameter D

– Bid = P(i,a) + MAX(F(i-1,a), R(t(i,a)) - D)

  • Impact of D

– Suppose previous packet sill in queue Bid = P(I,a) + F(i-1,a) (so D has no impact) – If queue has been empty and D is large, Bid is reduced down as low as last packet completion time

slide-14
SLIDE 14

(Please refer to table on page 7) Note TCP Delay. Why does Telnet do Better with FQ?

slide-15
SLIDE 15

(Please refer to table on page 8) Note TCP Bandwidth. Why Ill-behaved receive near 0 for FQ?

slide-16
SLIDE 16

Summary

  • Effective approach to ensure fairness at router

queues

– Does not assume a particular transport protocol, – Does not assume transport protocol is well behaved

  • Provides a balance of throughput, delay, and

loss

– On a per flow (source,destination pair) basis

  • Some limitations

– May want some “biased” fairness – Requires per flow state at the router