Download - Quality of Service Routing
Quality of Service Routing
Anunay Tiwari
Anirudha Sahoo
Motivation
Real time applications like audio and video conferencing, VoIP requires QoS from the Internet to have satisfactory performance.
Internet largely support best effort traffic and routing infrastructure depends on Open Shortest Path First (OSPF).
In OSPF, when a packet experiences congestion, the routing subsystem can not send it through alternate path. Thus it fails in providing Quality of Service. So there is a need to provide QoS routing in networks.
What is QoS Routing ?
The basic function of QoS routing is to find a network path which satisfies the given QoS constraints.
What is QoS Routing? (cont..)
Policy-based Routing commonly means the routing decision is not based on the knowledge of the network topology and metrics, but on some administrative policies.
Constraint-based Routing compute routes that are subject to multiple constraints, including both QoS constraints(QoS requirements and resource availability) and policy constraints
QoS Routing
PolicyBasedRouting
Constraint - basedRouting
How SPF can be improved to behave like QoS routing??
Shortest Path First with Emergency Exits SPF algorithm
SPF assumes that link cost are updated periodically (may be based on link utilization
Link distance remains constant during one route updating period.
Performs well when traffic load is light and changes slowly.
Problems Route Oscillation Maximum Flow
Range of traffic that the network is able to handle between any two nodes. SPF can only go upto bottleneck link bw
Dynamic Response to traffic changes Updating Routing tables, which involves
exchange of information may not be correct. Fault Tolerance
Traffic will still be routed along the failed path until failure is detected and routing table is re-calculated.
SPF-EE
Attempts to eliminate problems associated with SPF by providing alternate paths as emergency exits.
A routing algorithm can be decomposed into 4 procedures
Distance Measurement Information Updating Route Computation Packet ForwardingThe SPF-EE has different Route Computation and Packet
forwarding.
SPF-EE (Cont..)
The alternate paths are only used as emergency exits i.e. when shortest paths are experiencing problems, without initiating route updating.
An emergency exit does not have to be shortest path.
SPF-EE( cont..)
The basic working Node x normally forward packet
destined to z to neighbor NSz. Alternate Path
If Queue Length of NSz exceeds a certain limit, the packet is transmitted to neighbor NAz. If NAz is not an upstream node from
node x in sink tree for destination z, then packet will travel along a SP to z. (NAz will be an exit for destination z).
Otherwise it will loop back to x.
SPF-EE( cont..)
Reverse Alternate Path Node x will send a control packet to
all its neighbors other than NSz to enquire whether they have any exit.
If an exit is found, it sends a reply back to node x and establishes a reverse alternate path (RAP).
Otherwise it will propagate control packet until an exit is found.
SPF-EE( cont..) Example
When AB is congested and A sends packet destined to C through D
When AF is congested and A does not have any exit node for packets destined to F A sends RAP to D and D replies
with E as an exit
SPF-EE( cont..)
Route Computation APs :
When a node x recieves route update, it calculates SPs for all destinations. (TREEx)
It then finds routing tree for all its neighbors (say TREEy) In TREEy if z is not on the subtree rooted at x and node y is
not the next hop, then node y can be the AP nexthop (or exit) for destination z.
Only One AP is calculated.
SPF-EE( cont..)
RAPs Node x send query message to each of its
neighbors r. Upon receiving request, node r checks Routing
Tree of its neighbors m:TREEm. If destination is not on the sub trees rooted at
node x or node r in TREEm then m can be an exit for destination.
SPF-EE( cont..)
Example:
Example
Observe routing tree of node B (neighbor of A) Node D and E are not on the sub tree rooted at A Hence Node A can choose B as the Alternate next hop for
destination D and E RAP
D receives RAP from A (for dest F) D looks at neighbor E’s SPF tree
F is not on the subtree rooted at A or D Hence D replies “yes” to RAP msg from A
E is the exit for packets from A to F
Example
SPF-EE can have loops For destination C, A chooses D as AP D also might choose A as AP for dest C
This is a direct loop Indirect loops also can form
So loops have to be detected Packets are marked as they pass by (called redirected
packets)
SPF-EE( cont..)
Packet forwarding
SPF-EE( cont..)
Performance Comparison Maximum flow
Packet can be sent at a speed greater than capacity of one route. Oscillation
Reported link delay does not oscillate much. Overhead
More Storage Space (need SPF of neighbors) Control Messages
Responsiveness Packet by Packet.
Congestion Control and Fault Tolerance Takes care of uneven traffic distribution . Fast update as compared to SPF. Traffic can be immediately diverted via APs or RAPs if a link fails.
Efficient Computation of Delay-Sensitive Routes from One Source to All Destinations An efficient algorithm for a
constraint shortest path. Given a directed graph with
two weights on each link e, a cost le and a delay te, find the cheapest path from a source to all destinations such that the delay of each path is no more than a given threshold.
Example: find shortest path fromS to all nodes so that delay does Not exceeds 15. cost is shown as(delay, cost) pair.
Delay Scaling Algorithm (DSA) QoS Criteria
Monotone Criteria Routing to a specific
destination taking place along a tree.
Sub paths of optimum paths are themselves optimal.
Example- End to End Bandwidth requirement
DSA (cont..) Additive Metric
Example – Find a cheapest path with respect to cost metric, such that delay of path is less than a user specified end to end threshold.
Cannot use hop by hop routing If S forwards packet destined to D3 to
D1, then D1 will forward it directly to D3 That will be wrong for S
(10,2)
DSA (cont..)
Additive metric Need not result in routing to specific destination
taking place along a tree. It is infeasible (incorrect) to store routing table as
simply next hop tables per destination. Alternative- Store entire path or next hop for each
source –destination pair and delay threshold. Not scalable
So we need an efficient algorithm for calculation of such routes.
DSA (cont..)
Relaxing the delay constraint Observation : It may be acceptable to violate delay
threshold up to a small constant factor ε. So the paths having delay T ( 1+ ε) are also acceptable if
the delay threshold is T. The Result
Feasible destination: Given a source s and delay threshold T, a destination is said to be feasible if there is a path from s to d with delay at most T.
Algorithm computes paths from source s to all destinations d such that The cost of path from s to d is at most the cost of cheapest
path from s to d with delay at most T. The delay of path from s to d is at most ( 1 + ε )T.
DSA (cont..)
Dynamic Programming Algorithm (DAD)
DSA (cont..)
G t A τ-scaling of graph G is obtained by multiplying the delay
on each link in G by τ/T. and then truncating the new delay to an integer.
The delay threshold for Gt will be τ. Algorithm (DSA)
(1) Set t = τ0 ( a small number <<T) (2) Call DAD(Gτ, t) to compute the L(v,t) and P(v,t) tables (3) Compute the delays in the original graph G for each of
paths P(v,t) and store the delays in D(v). (4) If for some v in G such that D(v) > T(1+ ε) set t = 2* t
and go to step 2.
DSA (cont..)
Since Gτ scaled down by τ/T, when the DSA finishes, then the final delay will be at most (when scaled back by T/τ) (T+D.T/ τ) i.e. T(1+D/ τ). Hence ε >= D/τ (or τ >= D/ ε), if delay has to be at most T(1+ ε)
The Complexity: Look at step (3) of DAD: Complexity of DAD = O(mT)
m = number of edges in the graph If DAD is called multiple times (from step 4 of DSA)
Complexity = m τ0 + 2 m τ0 + 4m τ0 +….+ 2k m τ0
= 4. m 2k-1 τ0 < 4mD/ε = O(mD/ε)
Where D = maximum hops in the network (diameter)
(max τ is 2kτ0 which should be equal to D/ε i.e. 2kτ0 = D/ε)
DSA (cont..)
Properties of DSA Time complexity has D but algorithm does not
need to know this value. DSA has progressive property.
Can be terminated in the middle and still produce reasonable result.
DSA is strongly polynomial. Running time does not depend on actual delay and cost
values of the links