Algorithm for Multi-Path Hop-By-Hop Routing


Published on

The next generation internet provides resilient wide area networking. Resilience is the ability to resist outer influences such as link failures. During routing protocols reorganize the communication paths after a topology change, data loss can occur. Using multiple paths, network operation can continue after failure detection.

This work examines Multi-Path Hop-by-Hop routing where any single link failure can be locally recovered. We produce acyclic routing graphs for destination-based routing. Our approach results in two edge sets: active and reserve links. Active edges provide an acyclic graph embedding a spanning tree. Any failure that is not covered by redundant active edges is recovered by inserting a reserve edge. We guarantee recovery of the first link failure event and then seamlessly restore a HammockSet for the new topology.

Two similar approaches have been published. The O2-algorithm derived out of the project ”Key Components for the Mobile Internet of Next Generation” [Sch01] and constructs thin Hammock-Sets but is restricted to certain topologies. The MPA-algorithm [Nar00] succeeds on any topology, yet it cannot provide redundancy to all nodes. We specify topologies that allow stand-by recovery to all nodes and destinations, while we construct edge-maximized HammockSets.

For evaluation we introduce link significance, a measure for the forwarding function of inner HammockSet nodes. A heuristic algorithm optimizes the HammockSet layout for traffic distribution. It restricts the number of HammockSets on one network edge, increasing the bandwidth fraction available to the participating HammockSets.

A prototype implementation has been part of this work. It constructs HammockSets for any
destination node of a topology. The final chapter discusses the feasibility of implementing our approach in real-world systems. Further, we point out possibilities for future work.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Algorithm for Multi-Path Hop-By-Hop Routing

  1. 1. Routing in the Next Generation Internet Algorithmus forMulti-Path Hop-By-Hop Routing Diplomand: Jens Oberender Betreuer: Claus Gruber/LKN.TUM Erst-Gutachter: Prof. Brandenburg/TI.Uni Passau Zweit-Gutachter: Prof. Eberspächer/LKN.TUM
  2. 2. HammockSet Representation• Undirected Graph – equal to any destination• Node Sequence – implies edge direction• Implementation – Graph: nodes store connected edges • Array[NodeID->SortedHeap[NodeID]] – HammockSet: supports sequence requests with hash table • Array[Pos->NodeID] • HashMap[NodeID->Pos]• Operations – Test if (x,y) is covered by sequence O(1) – Reverse Convex Hull (x) O(n) 2
  3. 3. Construction Overview• Create node sequences for each destination – Phase 1: Based on Bandwidth Ratings – Phase 2: Based on Estimated Traffic• Choose Shared-Reserve-Link• Set Edge Direction i n o j k• Generate HammockSets e c a p g l h m f b d [ i=j g f ] [ h c b a d n l k o p m ]• Phase 3: search&re-route high load links• Phase 4: traffic planning 3
  4. 4. Avoid HammockSet Symmetry• Set edge direction is based on – Link Capacity measures available bandwidth for all HammockSets together start with (2*C/n) assuming both directions are used – Diversity of Link Capacity failure on 1:1 bandwidth: 200% traffic failure on 1:10 bandwidth: 1100% traffic – Number of Links three and more links can handle failures better – preferred position: in middle of sequence and near to neighbor nodes – Traffic Demands only available for direct traffic, transferring demands depend on succeeding nodes• Bad routing effects, if HammockSets have high symmetry failure reaction is similar for all HammockSets – extensive increasing load on backup links⇒ Algorithm decisions should be 4 relatively independent to constant characteristics
  5. 5. Generate Sequence Order• Algorithm: choose one out of the “border” nodes• HammockSets that provide good bandwith after maximum failure also perform well in normal mode ⇒ Selection criteria: bandwidth after failureFind Maximum node by first argument, if equal by second. func rating (Node k, Neighbors N, Sequence S) E := edges from candidate to N cup S if (count(E) < 2) break; // Capacity after maximum failure D := ( C(Ef) | C(f)=max C(e) ) return { D, C(E) } 5 endfunc
  6. 6. iProvide second outlink to neighbors j 0 Scenario: 1 00 e g• HammockSet but neighbors created ToDo’s: 1000 10 0• construct S-R-Link 0 – Which neighbor component should get a SRL? f 1000 – Capacity remains unused during normal Operation – Direct two links should provide medium to high capacity, since they carry all load – Choose nodes with fewest incoming links• direct remaining edges – From several options, choose least crowded one 6 – Avoid long chains that increase packet running time
  7. 7. Criteria for SRL selection• (Estimated) Traffic distribution available always significantly differs from acceptable distribution• Sum up all traffic demands on convex hull is independent of distribution shows traffic likely proportional to #incoming edges func maxinData (node k) H := convex hull (k) over reverse edges return (sum M[H,t]) / C(k,t) endfunc 7
  8. 8. Neighbor Nodes Convex Hulls n n i i e e j o j o a fa f g g b k b k c c d p d p h l h l m m n n i i e e j o j oa f a f g g b k b k c c d p d p h l h l 8 m m
  9. 9. How to optimize HammockSets• Objective: provide a set of HammockSets, that can handle given traffic demands• Use traffic estimation information with bandwidth-balanced quotes• Each link has two directions, optimal: both occur even often for destinations• What could change the actual load on a link? Depends on the role in this HammockSet – Fixed as a Neighbor – Node sequence may be rearranged 9
  10. 10. Bottleneck Detection• If bottlenecks are obvious, list all HammockSet-Sequences that include this edge• Examine whether few changed sequence could resolve bottleneck whithout generating new ones 10
  11. 11. High load on directed edge (x→y)• Pick destination HammockSets with sequences that include the (x→y) edge →• Edge-Characteristics – TrafficMatrix (x->>t), (y->>t) – Current traffic on (x->y) – Remaining traffic (x->>t x->y) y y x x 11 [ A y B x C ] [ A B x y C ]
  12. 12. Change Sequence Order• Alter one HammockSet having low (traffic(x,y)-traffic(y,x))• Sequence change should not heavily influence other edges (already processed ones) 12
  13. 13. Change the point-of-view • HammockSet-centered optimization HammockSets – What happens in case of link failure? (impl) – Calculate Normal and Backup Capacityedges (impl) – Can the network flow be distributed evenly? HammockSets • Edge-centered optimization – What edges carry heavy load?edges – Is the HammockSet generation independent enough of the network structure? – Generate Scenarios and sample data 13
  14. 14. Objective Implementation• Is there any need to restructure heuristic-generated HammockSets? Find a network type where heuristic fails• What capacity must be reserved for failure occurrence?• Flow Benchmarking 14