340 likes | 355 Views
Explore algorithms for precomputing multicast trees with QoS constraints. Learn about network models & proposed solutions from the paper by Stavroula Siachalou, Leonidas Georgiadis. Presented by Jeremy Witmer in CS622.
E N D
Algorithms for Precomputing Constrained Widest Paths and Multicast Trees Paper by Stavroula Siachalou and Leonidas Georgiadis Presented by Jeremy Witmer CS 622 Fall 2007
Multicast Trees Precomputing Multicast Trees - CS622
Large Multicast Trees • In large networks, adding nodes becomes inefficient • Adding on a widest-bandwidth path • Paths with QoS constraints Precomputing Multicast Trees - CS622
Proposed Solution • Precompute as much of the tree as possible • When a node is added, choose the path with the highest available bandwidth while obeying QoS delay constraints Precomputing Multicast Trees - CS622
Proposed Solution • Solution defined as solutions to two separate problems • First, the precomputation of the links in the tree • Second, selection of a new path when a new node subscribes to the multicast tree • The paper proposes three algorithms to accomplish the first goal Precomputing Multicast Trees - CS622
Network Model • Given a directed graph G = (V, E) • V is the set of nodes in the graph • E is the set of edges in the graph • N = |V| • M = |E| Precomputing Multicast Trees - CS622
Network Model • Each edge in E has a corresponding delay and width, (d,W) • A path from source node s to another node in the network u is with delay no greater than d represented as Pu(d) • The optimal path is represented as Pu*(d) Precomputing Multicast Trees - CS622
Network Model Precomputing Multicast Trees - CS622
Network Model Precomputing Multicast Trees - CS622
Problem 1 Definition • Find the path Pu*(d) that has the greatest width of all the paths from s to u, meeting the bandwidth requirement W(pu*) > W(p) for all paths Pu(d) Precomputing Multicast Trees - CS622
Dominated Pairs • Pair (D(p1), W(p1)) dominates pair (D(p2), W(p2)) or path p1 dominates path p2iff • W(p1) > W(p2) and D(p1) < D(p2) • OR • W(p1) > W(p2) and D(p1) < D(p2) Precomputing Multicast Trees - CS622
Algorithm 1 • Create a heap P to store all possible discontinuities • For each node u in G, except for the source node s: • Initialize queue D’(u) • Create all possible successor discontinuities to u • Store the discontinuities (d, W, u) for each u in P • Note: (d, W, u) is generally stored as (d, W, u, prev_node) Precomputing Multicast Trees - CS622
Algorithm 1 • Take the discontinuity in the minimum lexicographic order off of the queue. • If the current discontinuity pair isn’t dominated by any pair currently on D’(u), add the current pair to D’(u), otherwise, discard the pair. • Do this for all discontinuities in P Precomputing Multicast Trees - CS622
Algorithm 1 • This will result in a set of queues D’(u), one for each node u in G. • Each queue is then sorted in lexicographical order, so the optimal discontinuity for each node u is at the head of the queue • Because each discontinuity except for the source s has a predecessor discontinuity (d, W, v), the path can be found by keeping track of these discontinuity links • Note: P is implemented as a heap in this algorithm Precomputing Multicast Trees - CS622
Algorithm 2 • Operation is similar to Algorithm 1 • Instead of the heap/queue data structures, discontinuities are stored in arrays indexed by a function of the link width w • P is an array A[u,k] where 1 < k < K, K < M • Instead of storing possible discontinuities by node u, on queues D’(u), store on K heaps H(k) Precomputing Multicast Trees - CS622
Algorithm 2 • Algorithm execution is identical to Algorithm 1 except that the heaps H(k) only need to contain one possible discontinuity at a time • When a new discontinuity (d, k, u) is found, it can replace the current discontinuity on heap H(k), instead of being added to the queue Precomputing Multicast Trees - CS622
Algorithm 3 • Given the same graph G = (V, E) • Find the widest-shortest path from s to all nodes in G • Let W* be the minimum among the widths of the paths pu • For all nodes u in V if W(pu) = W* then add (D(u), W(pu)) to the appropriate queue D’(u) • Remove from G all links with width at most W* • If s has no more outgoing links, then stop, else repeat Precomputing Multicast Trees - CS622
Algorithm 3 • The widest-shortest paths in step 1 are found by a version of Dijkstra’s algorithm • Static-Heap Dijkstra’s algorithm has been shown to be the most efficient implementation. Precomputing Multicast Trees - CS622
Time and Space Requirements Precomputing Multicast Trees - CS622
Current Multicast Tree Design • The optimization problem to conserve resources is known to be NP complete. • Existing tree-calculation protocols do not solely optimize resources • Problem aggravated by the need to satisfy QoS restraints Precomputing Multicast Trees - CS622
Computation of Constrained Trees • Obtain a multicast tree from the discontinuities previously calculated, with the following QoS constraints • Path width W(p) will be >Wmin • Path delay D(p) will be <d Precomputing Multicast Trees - CS622
Computation of Constrained Trees • Assume that we need to create a multicast tree T • T is a subset U of the nodes V in G • Where D(T) < QoS constraint d • And W(T) is the width of the narrowest link in T Precomputing Multicast Trees - CS622
Computation of Constrained Trees • Any calculated tree T must satisfy Property 1: • The delay duof discontinuity (du, Wu) is the smallest one among the delays of the discontinuities in D’(u) whose width is larger than or equal to Wmin Precomputing Multicast Trees - CS622
Algorithm 4 • Assuming that D’(u) is an array • For each node u in U, determine W(p*u) • Determine Wmin of p*u • For each (d, W, u) in U determine the discontinuity having property 1 • Construct G’ using the predecessor node information stored in D’(u) Precomputing Multicast Trees - CS622
Algorithm 4 Performance • Running Time: O(max{|U|logN, N}) Precomputing Multicast Trees - CS622
Simulation Results • Simulations were run on two different networks • Power Law Networks: a network with N nodes and M links, where M=άN, ά > 1 • Real Internet Networks: observed internet topologies from 9/20/1998, 1/1/2000, and 2/1/2000 Precomputing Multicast Trees - CS622
Simulation Results • The delays of the links in both network types were picked randomly. • Width 1 networks: width of each link chosen at random from the interval [1,100] • Width 2 networks: link width is a function of link delay, based on w = β(101 – d), where β is random from the interval [1,10] Precomputing Multicast Trees - CS622
Simulation Results • Power Law networks generated with 400, 800, and 1200 nodes and ratios ά = 4, 8, 16 • Real networks selected with M = 9360, 16568, 27792 and N = 2107, 4120, 6474 Precomputing Multicast Trees - CS622
Simulation Results Precomputing Multicast Trees - CS622
Simulation Results Precomputing Multicast Trees - CS622
Simulation Results • Running times are increased using Width 2 method, as there are more available discontinuities • Algorithm 2 has the best running time, Algorithm 3 the worst • Algorithm 1 takes up to 1.6 times as long as Algorithm 2 • Algorithm 3 takes up to 14 times as long as Algorithm 2 • Algorithm 2 performs the best, especially on larger networks Precomputing Multicast Trees - CS622
Simulation Results • Algorithm 3 has the smallest memory requirements, followed closely by Algorithm 1. • Algorithm 2 requires significantly more space than either of Algorithms 1 and 3, due to the memory requirements of the two-dimensional array A[u, k] Precomputing Multicast Trees - CS622
Conclusions • The performance of all algorithms decreases rapidly as u increases • Algorithm 1 presents the best trade-off between time and space requirements for precomputing tree paths. Precomputing Multicast Trees - CS622
References • [1] S. Siachalou and L. Georgiadis. “Algorithms for Precomputing Constrained Widest Paths and Multicast Trees”. IEEE/ACM Transactions on Networking. Vol. 13, No. 5. pp 1174-1187. October 2005. • [2] S. Siachalou and L. Georgiadis. “Efficient QoS Routing”. INFOCOM 2003. 22nd Annual Joint Conference of the IEEE Computer and Communications Societies. Vol. 2. pp 938-947. 30 March-3 April 2003. Precomputing Multicast Trees - CS622