260 likes | 423 Views
Dynamic routing – QoS routing. Load sensitive routing QoS routing. Load sensitive routing. In what we have seen in this class so far costs are static Administrator configures them Why not try to adapt to the conditions of the network? Use less loaded links Use links with less delay
E N D
Dynamic routing – QoS routing • Load sensitive routing • QoS routing
Load sensitive routing • In what we have seen in this class so far costs are static • Administrator configures them • Why not try to adapt to the conditions of the network? • Use less loaded links • Use links with less delay • Use links that have less loss • Two problems: • Need to know the condition of the links • Can have positive feedback • Oscillations
In the very early days • In ARPANET, from 1969 • Delay SPF: compute shortest paths based on the delay on a link • Use the queue length to estimate it • Delay values where exchanged each time they changed significantly • But (usually under heavy load): • A link that has low delay may become too attractive • Traffic will start using it • Delay will increase, will become less attractive • Traffic will stop using it and so on… • Oscillation • Oscillations cause too many advertisements, too much CPU load on routers, and low utilization of some of the links
Improvements • The “revised” Internet Metric • Metric advertised should be relative to other links and not just the queue length • If average link cost is 10 advertise 20 when link is overloaded • 20 is almost like two links • Some traffic will start using paths that are 1 hop longer • Have a lot of damping in the advertisements of metrics • Result in more gradual changes in traffic and link utilization • There will still be oscillations • Smaller magnitude • Better overall network utilization under heavy load
But only a single metric • SPF can have only a single cost value per link • SPF can not compute paths that minimize two metrics • Unless I do a linear combination of all into a single value • Example • EIGRP from Cisco allows to advertise dynamic information and select paths using it • Combines multiple performance metrics into a single per-link value • Load sensitive routing is mostly abandoned today • Oscillations are very undesirable
ToS routing • What we have today is Type of Service (ToS) routing • Even than is not really used • IP packets have 4 bits of ToS in their header • Some combinations have pre-assigned meaning • 0100 = max throughput • 1000 = min delay • Etc… • In principle routers compute different routes for each of these bits • Links may have different costs for each ToS value • OSPF can advertise different link costs for each ToS
Oscillations revisited • Oscillations happen because traffic can shift around • What happens if I could “pin” traffic on a certain path? • Using source route, MSPL LSP, or some other explicit routing technology? • No more oscillations • Now I need to find good paths for traffic • From source S to destination D • Satisfying one or more QoS constraints • This is “QoS Routing”
Quality of Service (QoS) • Quantitative metrics that express how well my traffic is treated • Most common • Delay (end-end or per link) • Queuing delay • Propagation delay (hop length related) • Loss • Jitter (delay variation) • Available bandwidth • A QoS guarantee tells me that one of the above metrics will have a bounded value
How to achieve QoS • Need to schedule resources in each router/link • Link transmission slots • To ensure available bandwidth • Queue lengths and entries • To ensure that a packet will not be delayed by queuing too much • Buffers • To ensure low loss rates • Huge body of work on resource scheduling for QoS
Reservations • Assume I found a path that satisfies the requirements • To ensure I get the requested service I will need to reserve resources on the path • Reserve the 100 Mbit/sec bandwidth • Reserve queue entries and link scheduling resources to limit my latency, loss and jitter • After reservation, less resources are available to other traffic • Admission control • New traffic may be rejected if there are not enough resources available
Signaling • Combine path pinning and resource reservation in a single signaling step • Not unlike setting up an LSP with RSVP-TE • Two pass • Forward pass: • send the request • perform admission control • Initial reservation • Reverse pass: • Fine tune reservations
QoS routing • Find a path to destination D with end-end delay=20 msec, loss rate < 1% and available bandwidth 200 Mbit/sec • How to find the path? • Need to have an algorithm to compute a path that satisfies all these constrains • Need to have up to date information about what happens in all links and nodes in the network
Metric types • Additive metrics: • The metric for the path is the sum of the metric for the links of the path • Delay, jitter • Multiplicative metrics: • The metric for the path is the product of the metrics for the links of the path • Loss rate • Bottleneck metrics: • The metric for the path is the largest (or smaller) of the metrics for the links of the path • available bandwidth
Constrained path computation • How to find a path that optimizes multiple metrics? • E.g a min delay and min loss path? • How to find bounded paths? • E.g. a path that has delay < 50 msec and available bandwidth > 100 Mbit/sec • Well I can not [Wang, Crowcroft 1996] • More than 1 additive and/or multiplicative metrics is NP-complete • 1 additive + 1 multiplicative, 2 additive, 2 multiplicative: all NP-complete • 1 additive, 1 multiplicative: OK
All is not lost • Available bandwidth allows some flexibility • Find paths that have at least B bottleneck bandwidth and satisfy 1 more condition is possible • Prune all links that have less than B available bandwidth • And then compute the best path for the second metric • E.g delay and bandwidth, bandwidth and loss, bandwidth and jitter are all possible
Example • Delay and bandwidth: path with bandwidth 100 Mbit/sec and delay < 10 msec • Prune all the links with less than 100 Mbit/sec available bandwidth • Run SPF to find the least delay path to destination • If least delay > 10 msec no path exists • If delay <= 10 msec found my path
Pre-computing QoS routes • I may have a lot of incoming requests for QoS routes • Computation of routes may become an issue • Pre-compute routes • But for pre-computed routes I do not know the QoS requirements of the requests • Compute a range of paths for all possible requests • More storage • E.g. compute paths with 10, 100, 1000 Mbit/sec available capacity and 10, 20, 40 msec delay • When a request comes, fit it in the appropriate path • Compute the “widest” paths for different hop lengths and use the shortest one where the request can fit in • “shortest-widest” path
A “good” routing algorithm? • What is the optimization goal? • To fit as much traffic as possible in the network • Increases utilization of resources • Increases revenue • A request is blocked when it can not find a path with the QoS it needs • Reduce the blocking • Number of requests blocked • Requests have different bandwidth requirements • Sum of bandwidth of the blocked requests • Routing algorithm A is better than B if: • for a given set of requests A can achieve less blocking that B
Hard to evaluate • Needs simulation • Traffic models are not known • What kind of QoS traffic will want • How big/small are the bandwidth requests • Relative to the link sizes • Topology has a very large effect • Traffic patterns too • Hot-spot vs. uniform load • Overall load in the network • No standards exist for QoS routing performance evaluation
Why QoS routing works • Conventional routing uses only the shortest path(s) (maybe more than one) • Resources on other links are underutilized • QoS routing can switch traffic to longer (alternate) paths when the shortest paths fill up • Better network resource utilization • Less blocking • Only if there are unloaded alternate paths • If network is heavily loaded and all paths are full QoS routing can not do much
Problem • QoS routing works on-line • Given a set of requests I find a route and establish it one by one • The path I find for a route will affect the availability of paths for future requests • Picking a bad route now may result in blocking many future requests • EXAMPLE • How can I ever optimize for requests that do not know yet • Have to rely on heuristics
Optimization heuristics • Longer or shorter paths? • Shorter paths use less resources in the network • Avoid completely very long paths • Best or worse fit? • If I fit request too tightly on a link I cause bandwidth fragmentation • May cause blocking later on • Trunk reservation • Traffic on alternate paths may starve traffic that could use the shortest paths • Reserve some amount of resources on the shortest paths
Amount of update traffic • When conditions change on a link send an update • In an IGP updates are flooded • If conditions on a link change very frequently there will be a lot of updates • A lot of bandwidth and CPU will be lost • Must limit the rate of updates • But then link state information will not be accurate anymore • “stale” state • Fundamental trade-off • Accuracy of routing vs. cost of updates • How can I get good routings even if state information is stale?
Limiting the update rate • Update threshold • Generate an update when link information changes more than t% since last advertisement • E.g available bandwidth changes more than 10% • More accurate when available bandwidth is small • This is good we need more accuracy then • Clamp down timer • Do not send more than x updates per second
More limiting • Divide the link bandwidth in regions • Equal sizes • Exponential sizes • When available bandwidth moves to a different region since last advertisement send a new one • Can advertise the region and not the exact value of available bandwidth • Many links will have same available bandwidth • More availability of equal bandwidth paths to choose from
Routing with stale values • Randomized routing • Do not believe the information we have • Add some randomness in the path selection decisions