Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all...

23
Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1 ,…,V k ) over all paths

Transcript of Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all...

Page 1: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Multicost (or QoS) routing

For example:

More generally,

Minimize f(V)=f(V1,…,Vk) over all paths

Page 2: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Cost of a path:

Page 3: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.
Page 4: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.
Page 5: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Examples of cost functions

Page 6: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.
Page 7: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Scheduling

switch

• Sharing always results in contentionSharing always results in contention• A scheduling discipline resolves contention and decides order: A scheduling discipline resolves contention and decides order:

who’s next?who’s next?• The objective is to share resources The objective is to share resources fairlyfairly and provide and provide performance performance

guaranteesguarantees

Page 8: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

What can scheduling disciplines do? Give different users different QoS (example: passengers Give different users different QoS (example: passengers

waiting to board a plane). Best effort vs guaranteed servicewaiting to board a plane). Best effort vs guaranteed service Scheduling disciplines can allocate Scheduling disciplines can allocate bandwidthbandwidth, , delaydelay, , lossloss They also determine how They also determine how fairfair the network is the network is

Requirements

An ideal scheduling discipline is An ideal scheduling discipline is easy to implementeasy to implement, is , is fairfair,, provides performance boundsprovides performance bounds, , etcetc

Page 9: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Notion of fairness

Τι είναι δίκαιο?• Ο καθένας παίρνει το ίδιο?• Ο καθένας παίρνει αυτό που θέλει? (Τι γίνεται με τo

congestion?)• Πως σχετίζεται η δικαιοσύνη με την ικανότητα κάποιου να

χρησιμοποιήσει ένα resource?• Τι γίνεται με τα excess resources?• Πως παίρνουμε υπ’ όψιν μας την δυνατότητα κάποιου να πληρώσει παραπάνω κόστος για ένα resource? Π.χ. φορολογικό σύστημα (flat tax rate ή progressive tax rate)

Page 10: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

max-min fairnessmax-min fairness

Intuitively: each connection gets no more than what it wants, Intuitively: each connection gets no more than what it wants, and the excess, if any, is equally sharedand the excess, if any, is equally shared

A B C A B C

Transfer half of excess

Unsatisfied demand

Demanded Rates

Max-Min Fair Sharing(First iteration)

Max-Min Fair Sharing(Second iteration)

Fair Rates

10 7.5 10 10

3 3 3 3

5 5 5 5

15 7.5 11 12

Residue 30-23=7 1 0

Table 1: An example of the non-weighted Max-Min fair Sharing algorithm if the overall processor capacity is 30.

Page 11: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Fairness is a Fairness is a global global objective, but scheduling is localobjective, but scheduling is local

Page 12: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.
Page 13: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Performance guarantees This is a way to obtain a desired level of serviceThis is a way to obtain a desired level of service Can be Can be deterministic deterministic or or statisticalstatistical Common parameters are bandwidth, delay, delay-jitter, lossCommon parameters are bandwidth, delay, delay-jitter, loss

Specified as minimum bandwidth measured over a prespecified Specified as minimum bandwidth measured over a prespecified interval (e.g. > 5Mbps over intervals of > 1 sec)interval (e.g. > 5Mbps over intervals of > 1 sec)

Meaningless without an interval!Meaningless without an interval! Can be a bound on average (sustained) rate or peak rateCan be a bound on average (sustained) rate or peak rate

Delay and delay-jitter Bound on some parameter of the delay Bound on some parameter of the delay

distribution curvedistribution curve

Bandwidth

Page 14: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Priority Packet is served from a given priority level only if no packets Packet is served from a given priority level only if no packets

exist at higher levels exist at higher levels Highest level gets lowest delayHighest level gets lowest delay Watch out for starvation!Watch out for starvation!

Low bandwidth urgent messagesLow bandwidth urgent messages

RealtimeRealtime

Non-realtime Non-realtime

Priority

Fundamental choices

1. Number of priority levels1. Number of priority levels

2. Degree of aggregation2. Degree of aggregation

3. Service order within a level3. Service order within a level

Page 15: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Degree of aggregation More aggregationMore aggregation

less stateless state cheaper (e.g. smaller VLSI)cheaper (e.g. smaller VLSI) BUT: less individualization/differentiationBUT: less individualization/differentiation

SolutionSolution aggregate to a aggregate to a class, class, members of class have same members of class have same

performance requirementperformance requirement no protection within classno protection within class

Issue: what is the appropriate class definition?Issue: what is the appropriate class definition?

Page 16: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Work conserving vs non-work-conserving Work conserving discipline is never idle when packets await serviceWork conserving discipline is never idle when packets await service Why bother with non-work conserving?Why bother with non-work conserving?

Non-work-conserving disciplines

Key conceptual idea: delay packet till Key conceptual idea: delay packet till eligibleeligible Reduces delay-jitter => fewer buffers in networkReduces delay-jitter => fewer buffers in network Increases mean delay (not a problem for Increases mean delay (not a problem for playbackplayback applications) applications) Wastes bandwidth (can serve best-effort packets instead)Wastes bandwidth (can serve best-effort packets instead) Always punishes a misbehaving sourceAlways punishes a misbehaving source How to choose eligibility time?How to choose eligibility time?

rate-jitter regulator (bounds maximum outgoing rate)rate-jitter regulator (bounds maximum outgoing rate) delay-jitter regulator (compensates for variable delay at previous hop)delay-jitter regulator (compensates for variable delay at previous hop)

Page 17: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Scheduling best-effort connections Main requirement is Main requirement is fairness (in the max-min sense)fairness (in the max-min sense) Achievable using Achievable using Generalized processor sharing (GPS)Generalized processor sharing (GPS)

Visit each non-empty queue in turnVisit each non-empty queue in turn Serve infinitesimal from eachServe infinitesimal from each This is exactly the definition of max-min fairness (but This is exactly the definition of max-min fairness (but

impractical)impractical) How can we give weights to connections?How can we give weights to connections?

We can’t implement GPS, so, lets see how to emulate itWe can’t implement GPS, so, lets see how to emulate it We want to be as fair (i.e. as close to GPS) as possibleWe want to be as fair (i.e. as close to GPS) as possible But also have an efficient implementationBut also have an efficient implementation

Page 18: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Weighted round robin

Serve a packet from each non-empty queue in turnServe a packet from each non-empty queue in turn Unfair if packets are of different length or weights are not equalUnfair if packets are of different length or weights are not equal Solution: Normalize weights by meanSolution: Normalize weights by mean packet sizepacket size

e.g. weights {0.5, 0.75, 1.0}, mean packet sizes {50, 500, e.g. weights {0.5, 0.75, 1.0}, mean packet sizes {50, 500, 1500}1500}

normalize weights: {0.5/50, 0.75/500, 1.0/1500} = { 0.01, normalize weights: {0.5/50, 0.75/500, 1.0/1500} = { 0.01, 0.0015, 0.000666}, normalize again {60, 9, 4}0.0015, 0.000666}, normalize again {60, 9, 4}

Problems with Weighted Round Robin With variable size packets and different weights, need to With variable size packets and different weights, need to

know mean packet size in advanceknow mean packet size in advance Can be unfair for long periods of time. E.g.:Can be unfair for long periods of time. E.g.:

T3 trunk with 500 connections, each connection has mean packet T3 trunk with 500 connections, each connection has mean packet length 500 bytes, 250 with weight 1, 250 with weight 10length 500 bytes, 250 with weight 1, 250 with weight 10

Each packet takes 500 * 8/45 Mbps = 88.8 Each packet takes 500 * 8/45 Mbps = 88.8 μμss Round time =2750 * 88.8 = 244.2 msRound time =2750 * 88.8 = 244.2 ms

Page 19: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Weighted Fair Queueing (WFQ) Deals better with variable size packets and weightsDeals better with variable size packets and weights GPS is fairest disciplineGPS is fairest discipline Find the Find the finish timefinish time of a packet, of a packet, had we been doing GPShad we been doing GPS Then serve packets in order of their finish timesThen serve packets in order of their finish times

WFQ: first cut Suppose, in each Suppose, in each round, round, the server served one bit from each active the server served one bit from each active

connectionconnection Round numberRound number is the number of rounds already completed (can be is the number of rounds already completed (can be

fractional)fractional) If a packet of length If a packet of length p p arrives to an empty queue when the round arrives to an empty queue when the round

number is number is RR, it will complete service when the round number is , it will complete service when the round number is R + p => R + p => finish numberfinish number is is R + pR + p (independent of the number of other (independent of the number of other connections)connections)

If a packet arrives to a non-empty queue, and the previous packet has a If a packet arrives to a non-empty queue, and the previous packet has a finish number of finish number of ff, then the packet’s finish number is , then the packet’s finish number is f+pf+p

Serve packets in order of finish numbersServe packets in order of finish numbers

Page 20: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

WFQ: computing the round number

Page 21: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

WFQ implementation On packet arrival:On packet arrival:

use source + destination address (or VCI) to classify it and use source + destination address (or VCI) to classify it and look up finish number of last packet waiting to be servedlook up finish number of last packet waiting to be served

recompute round numberrecompute round number compute finish numbercompute finish number insert in priority queue sorted by finish numbersinsert in priority queue sorted by finish numbers if no space, drop the packet with largest finish numberif no space, drop the packet with largest finish number

On service completionOn service completion select the packet with the lowest finish numberselect the packet with the lowest finish number

Scheduling guaranteed-service connections With best-effort connections, goal is fairnessWith best-effort connections, goal is fairness With guaranteed-service connectionsWith guaranteed-service connections what performance what performance

guarantees are achievable?guarantees are achievable?

Page 22: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

WFQ Turns out that WFQ also provides performance guaranteesTurns out that WFQ also provides performance guarantees Bandwidth bound (=ratio of weights * link capacity)Bandwidth bound (=ratio of weights * link capacity)

e.g. connections with weights 1, 2, 7; link capacity 10e.g. connections with weights 1, 2, 7; link capacity 10 connections get at least 1, 2, 7 units of b/w eachconnections get at least 1, 2, 7 units of b/w each

End-to-end delay boundEnd-to-end delay bound assumes that the connection is assumes that the connection is leaky-bucket leaky-bucket regulatedregulated # bits sent in time [t# bits sent in time [t11, t, t22] <= r (t] <= r (t22 - t - t11) + ) + σσ

Parekh-Gallager theorem gg= least bandwidth a connection is allocated at a WFQ scheduler= least bandwidth a connection is allocated at a WFQ scheduler The connection pass through The connection pass through KK schedulers, where the schedulers, where the kkth has rate th has rate

r(k)r(k) PP = the largest packet allowed in the network be = the largest packet allowed in the network be PP

1

1 1

)(///___K

k

K

k

krPgPgdelayendtoend

Page 23: Multicost (or QoS) routing For example: More generally, Minimize f(V)=f(V 1,…,V k ) over all paths.

Significance

Theorem shows that WFQ can provide end-to-end delay boundsTheorem shows that WFQ can provide end-to-end delay bounds So WFQ provides both fairness and performance guaranteesSo WFQ provides both fairness and performance guarantees Bound holds regardless of cross traffic behavior Bound holds regardless of cross traffic behavior