Building multicast trees for multimedia streaming in ... - IEEE Xplore

2 downloads 0 Views 132KB Size Report
ticast tree and a single video stream. We propose new algo- rithms for building multicast trees for multimedia streaming in heterogeneous P2P networks.
Building multicast trees for multimedia streaming in heterogeneous P2P networks Xiangrong Tan and Suprakash Datta Computer Science and Engineering Department, York University, Toronto, Canada email: [email protected], [email protected]

Abstract

administration and make use of existing infrastructure (e.g. broadband access). The essential difference in different P2P networks is in the way the overlay graph is constructed – unstructured networks (e.g. Gnutella) add nodes in an a priori unpredictable manner while structured networks use some mathematical scheme (e.g. distributed hash tables) for maintaining a structured overlay graph (e.g. Chord). P2P networks have been used with great success in large-scale file sharing. Kazaa (www.kazaa.com) claims to have over 70 million users globally, and to have served close to a million files a week. P2P systems have also been shown to be an effective solution for the problem of flash crowds which are large groups of users who download content at unpredictable times [19], often as a reaction to some big news event or some catastrophic situation. However, multimedia content is often streamed rather than downloaded. This may be because the event has to be webcast live, or because storing large video files is unrealistic on typical disks in home computers. P2P streaming multimedia networks are expected to retain the benefits of file-sharing P2P systems but still provide efficient streaming performance. Typically, P2P streaming networks connect receivers using a overlay network and then stream content using application-layer-multicast over this overlay network.

P2P networks have been proposed as a scalable, inexpensive solution to the problem of distributing multimedia content over the Internet. Since real P2P systems exhibit considerable heterogeneity in hardware, software and network connections, the design of P2P streaming networks must factor in this variation. There are two different sources of heterogeneity in P2P networks. Most existing work in the literature handle heterogeneity among receivers and requirements by the use of different multimedia encodings of the same content. In this paper, we focus on the problems caused by heterogeneity in the network delays connecting receivers to the sender. We assume that there is a single multicast tree and a single video stream. We propose new algorithms for building multicast trees for multimedia streaming in heterogeneous P2P networks. Our algorithms differ in the amount of communication and computational resources they require. We compare the performance (using simulations) of our algorithms with an existing algorithm Zigzag [20, 21]. Our results show that two of our algorithms (algorithm FollowTree-Landmark-II and algorithm FollowTree) significantly outperform Zigzag.

1 Introduction

1.1 Network connection heterogeneity in P2P systems

Distributing multimedia content to a large number of receivers over the Internet is a challenging problem. Several solutions have been proposed, including the use of content distribution networks and Peer-to-peer overlay networks. Content distribution networks use a large network of servers to distribute information. Their success depends on the placement of servers at the network edge, close to any receiver. Naturally, content distribution networks offer good performance at the cost of large infrastructure setup and administration costs. Peer-to-peer (henceforth called P2P) systems are potentially large and dynamic networks of hosts who join the network to share content. These systems organize the peers in an overlay graph, need little or no

P2P networks allow hosts from different parts of the world and with different network technologies to join the network and receive (among other content) streaming multimedia content. This implies that an essential feature of P2P networks is the heterogeneity observed – the hosts use a wide variety of hardware and software and are connected by a large variety of access networks and Internet service providers (ISPs). The connections between the ISPs and the rest of the Internet may also vary considerably. Therefore, this heterogeneity has to be factored into the design of P2P streaming overlays. Most existing work focus on the heterogeneity in the receiver bandwidths. They assume that different receivers have different bandwidths they can re1

Proceedings of the 2005 Systems Communications (ICW’05) 0-7695-2422-2/05 $20.00 © 2005 IEEE

set of unique problems, and will not be dealt with at all in this paper. We refer the interested reader to the survey [14]. Existing work on streaming P2P networks can be classified in many ways. In this paper we classify algorithms as follows by the way content is disseminated: tree-based algorithms that use multicast trees to transmit the streams, mesh-based algorithms and gossip-based algorithms.

ceive. Thus a really low bandwidth host may choose a very low-quality, very low bit rate version of the content while other hosts with higher bandwidths will choose appropriate higher-quality (and higher bit rate) versions of the content. Under this assumption, these papers [4, 18, 15] propose using different multimedia streams (with different encodings and bit rates) for the same content. In this work we focus on a different source of heterogeneity, namely the network delay between the source and receivers. The network delay is significant since the delay at which live events are viewed is an important metric in evaluating a streaming system – many applications specify a maximum delay (e.g., 5 seconds) between the actual event and its “live” feed. Ideally, we would like to have a shortest path (or some good approximation of it) from the source to a receiver that is “far away” from the source in terms of delay. For receivers that are “close” to the root in terms of delay, we can afford to send content over significantly longer paths than the shortest path ans still remain within the tolerable delay limit. This notion has gotten little importance in the literature. Indeed, one of the most common metrics used for evaluating P2P systems, peer stretch is not always meaningful for a heterogeneous network. Peer stretch is defined as the ratio of the delay from source to a receiver along the multicast tree to the delay along the best (in terms of delay) unicast path from source to the receiver [15]. The intuitive idea is that an algorithm with a lower maximum peer stretch is better than an algorithm with a higher maximum peer stretch. However, an algorithm that produces low peer stretch (say 1.1) for receivers that are far away from the source and possibly high peer stretch (say 5) for receivers very close to the source may result in lower maximum delay (and therefore better user experience) than an algorithm that produces a peer stretch of 1.5 for all receivers.

Tree-based algorithms: Padmanabhan et al [18] proposed CoopNet, which uses multiple multicast trees and multiple description coding, with each tree distributing a description. They also use landmark-based distancecomputation in deciding where a new receiver should be added to the existing tree. Note that landmarks are a small set of designated nodes that run a service similar to ping that is used for measuring delays. In a landmark based scheme, every receiver computes its delay coordinates (the vector of delays from the set of landmark hosts). Then the distance between two nodes is defined as the Euclidean distance between their delay coordinates. Intuitively, it is hoped that if two nodes are close in terms of delay coordinates, they will be close to each other in terms of the delay as well. Banerjee et al [4] proposed NICE, which deals with homogeneous networks and produces balanced trees. Tran et al proposed algorithm Zigzag [20] for streaming in homogeneous P2P networks. Zigzag is a modification of NICE and, like NICE, maintains a balanced bounded degree tree and thus ensures that the height of the tree is logarithmic in the number of receivers. In addition, Zigzag yields fast adjustment of the tree when receivers join and leave. In [21], Tran et al proposed an improved version of Zigzag that has lower overhead when receivers join or leave. Our work was inspired by this work and extends it to handle heterogeneity in delays between hosts and the source. Hefeeda et al [12] proposed PROMISE which assumes that the P2P system uses a DHT-based scheme like Chord or Pastry. PROMISE uses a service called CollectCast [13] which uses topology inference algorithms (see e.g., [8] to estimate the underlying network topology.

1.2 Problem statement The problem we are studying involves the design of efficient multicast-tree construction algorithms for streaming multimedia content in a P2P network of hosts with heterogeneous network connections. It has been shown that the problem of constructing optimal multicast trees is intractable [5] even under very simplified assumptions. Even heuristics for constructing suboptimal trees needs time polynomial in the number of receivers [7] and significant local coordination. We need faster algorithms (perhaps at the cost of bad worst-case performance) in order to solve the problem in reality.

Mesh-based algorithms: A system called Narada was proposed in [15]. This system makes peers self-organize into a mesh in a distributed manner and then utilize the mesh for constructing multicast trees. We note that the tree-construction is by no means the only problem faced by tree-based P2P streaming systems. Xu et al [22] focus on the problem of scheduling data transmission by different peers for the case when the outgoing bandwidth of receivers are not large enough to support even a single stream. Kwon et al [16] present improved algorithms for the same problem.

1.3 Previous work There is a considerable body of work on multimedia streaming in P2P networks. We refer the reader to [3] for a survey of this problem. We note also that the problem of streaming stored video, the the associated problem of streaming stored video on demand [11, 10], have their own

Gossip-based algorithms: Several gossip-based algorithms have been proposed, including the very recent work by Zhang et al [23]. These algorithms do not create or main2

Proceedings of the 2005 Systems Communications (ICW’05) 0-7695-2422-2/05 $20.00 © 2005 IEEE

We study the average delays of receivers as well as the variance in the delays across receivers. The average of the delays seen at the receivers is a measure of the performance of the algorithm – we expect that a better algorithm will produce a smaller average delay. The standard deviation of the delays at each receiver is a measure of fairness – the average delay can be small even when some receivers are placed far away from the root and experience large delays. A high value of the standard deviation indicates that some receivers are relatively close to the root and experience low delays while others are relatively far away and experience high delays. We note that the absolute values of the standard deviation are less useful than relative values, since receivers geographically closer to the source should experience lower delays than receivers that are far away, which implies that the standard deviation is some non-zero value for any reasonable algorithm.

tain a tree or mesh but rather disseminate data by having each receiver send data to a small, randomly selected, set of neighbors. Interestingly, this work has a real-world implementation called CoolStreaming. Video encoding research: There are many papers that propose to address heterogeneity by using sophisticated video encodings. These include layered video coding [9] and Multiple description coding [18]. We do not survey work in this area and refer the interested reader to [17]. 1.4 Our contributions Our main contributions are as follows. We propose algorithms for building overlay multicast trees on a heterogeneous network of hosts/peers. We compare our algorithms with a existing algorithms and show that two of our algorithms have superior performance than the well-known existing algorithm. Our algorithms have low communication requirements and are easy to implement.

3 Our algorithms

2 Our model and metrics

Let us define D(X, Y ) to be the delay from node X to node Y along the multicast tree, and let ρ(X, Y ) be the delay from node X to node Y along the shortest-delay path from X to Y over the underlying network. For ease of exposition only, we assume throughout this section that D(, ) and ρ(, ) are symmetric. Also, define C(v) to be the set of children of node v in the multicast tree. A reasonable heuristic to use would be to find for a new receiver X the delay D(X, Y ) for every receiver Y and then make X a child of Y that satisfies

We assume that there is a single multicast tree and a single video stream. The offline version of our problem is to compute the optimal multicast tree (which is optimal in the average delay to a receiver). We are forced to settle for a suboptimal solution, not only because the problem is NP-hard [5], but also since we must solve the online problem. To make matters worse, no node knows the underlying graph, and we cannot afford to communicate with all existing receivers, since that would severely diminish scalability. Therefore, our solution must have low communication complexity and provide a good, rather than optimal, joining point for each arriving receiver. In addition, it should address the problem of heterogeneity in the network delays connecting receivers to the sender.

Condition 1: |C(Y )| < d(Y ) and Condition 2: D(R, Y ) + ρ(Y, X) is the minimum among receivers that satisfy condition 1.

The network model We model a P2P network as a graph G = (V, E) where V is the set of vertices or nodes and E is the set of edges or links. We associate with each node v a number d(v) which equals the maximum number of children the node can support. We do not assume any specific properties of the P2P network. We do not assume that the nodes know their geographic locations since very few real networks have such knowledge. Our algorithms are oblivious to the structure (or lack thereof) of the overlay since we do not make use of the overlay. We assume that the underlying network is able to compute paths between nodes. Multiple multicast trees usually provide better performance at the cost of larger maintenance overheads. We do not consider multiple multicast trees in this paper, since we view it as an orthogonal problem – our algorithms can also be applied to the construction of multiple multicast trees.

However, this algorithm requires that a new receiver probe all receivers and the root and therefore does not scale well. All the following algorithms require a much smaller number of probes, proportional to the height of the tree. Our first two algorithms have very low computation requirements. 3.1 Algorithms with low computational requirements Algorithm ShortestDelay: In this algorithm, the root node R maintains a list L of delays D(R, Xi ) for every receiver Xi that can accept more children. The intuition behind this algorithm is to add a new receiver at a receiver that has the lowest delay from the root. The drawback is that it only considers the first term in condition 2 listed before, and so a new receiver X may become a child of receiver Y such that ρ(Y, X) is large. The advantage is that measuring ρ(X, Y ) for all receivers Y is expensive and this algorithm avoid that by having a new receiver only send messages to the root node.

The metrics Our primary metric in this paper is the delays from the root node of a multicast tree to the receivers. 3 Proceedings of the 2005 Systems Communications (ICW’05) 0-7695-2422-2/05 $20.00 © 2005 IEEE

3.2 Algorithms with higher computation requirements

The steps of the algorithm are as follows. 1. If R is the only node in the tree, define B = R; else let

Since landmark-delay-based algorithms require a new receiver to compute distances to all landmarks and then have the root determine the nearest neighbor(s) of the new receiver, the following algorithms have higher communication as well as computation complexity. The first algorithm (algorithm FollowTree-Landmark-I) proposed below relies on the intuition that it is possible to “go off in the wrong direction” in some situations when following a tree. By starting the tree-following algorithm from a receiver close to the new receiver, it tries to ensure that the new receiver is assigned a parent close to it. Algorithm FollowTree-Landmark-I: 1. A new receiver X contacts root R, and reports its delay coordinates DX (vector of delays from landmark hosts) to R 2. R chooses the nearest neighbor B from the list of receivers as follows

B = arg min {D(R, Y )}. Y ∈L

When a new receiver X wishes to join the network, it sends a message to R. R computes B, and forwards the request from X to B. 2. B makes X its child and also estimates ρ(B, X) and computes D(R, X) = D(R, B) + ρ(B, X) and sends it to R. 3. Insert D(R, X) in the list L at R. If |C(B)| == d(B) then remove D(R, B) from L. Our second algorithm resembles some aspects of Zigzag. It starts at the root node and follows a greedy path down the tree until it reaches a receiver to which the new receiver can be attached. We describe the algorithm below and then outline its differences with Zigzag. Algorithm FollowTree: When a new receiver X wishes to join the tree, it sends a message to the root R. 1. Y = R 2. If Y has capacity, X becomes a child of Y ; 3. otherwise, select a child C of Y that makes D(R, C) + ρ(X, C) minimum. 4. Forward the join request to C, make Y = C. 5. Goto 2.

B = arg min{E(DX , DY )}. Y

where DX is the delay coordinates of receiver X and E() is the Euclidean distance between two vectors. 3. With B as the starting point, the algorithm proceeds like the algorithm FollowTree. Landmark distance computation issues: • Clearly the agreement of landmark-based distances and true distances (all distances being in terms of delays) depends on the proper choice of landmarks in the area in which the network exists. We do not study this issue in detail in this paper and assume instead that randomly chosen landmarks are available, and that the randomness guarantees good agreement between the landmark-based distance and the true distance.

Differences with ZigZag: We now outline the major differences between Zigzag and FollowTree. First, Zigzag is a much more complicated protocol, since it guarantees that the multicast tree is always balanced. ZigZag organizes receivers into bounded size clusters and builds a tree using these clusters. This tree is a logical organization in that it is maintained for administrative and control purposes. The data delivery tree is derived from the logical tree. ZigZag determines a parent for a new receiver by following the tree, but that is where the similarity with our algorithm ends. Note that ZigZag was designed for networks that are homogeneous in terms of delay, although the bandwidths at different receivers may be different. Second, ZigZag ensures that the height of the tree be O(log N ) at all times whereas our trees can have maximum height asymptotically larger than log N , i.e., ω(log N ). While this yields optimal average delays for homogeneous networks, it does not work well for heterogeneous-delay networks (as will be seen in our experiments in Section 4). The next two algorithms use landmark delay coordinates to shortlist a set of nodes that are close to the new node (in terms of the delay coordinates and hopefully in terms of delay as well).

• Computing nearest-neighbors in high dimensional spaces is an active research area in itself (see, e.g., [6]). We do not consider such improvements to the following algorithm, because we expect the number of landmarks to be fairly small (around 10). Our next algorithm (FollowTree-Landmark-II) is more robust to temporary fluctuations in delay than algorithm FollowTree-Landmark-I. Assume that m is a small constant. In this algorithm, each new receiver finds a set of m nearest neighbors C1 , C2 , . . . Cm in terms of delay coordinates, and for each Ci it computes the total delay it would have (from the source) if it were made a child of Ci . The Ci that makes this delay minimum is used as a starting point for tree-following. Algorithm FollowTree-Landmark-II: 1. A new receiver X contacts root R, and reports its delay coordinates DX to R. 4

Proceedings of the 2005 Systems Communications (ICW’05) 0-7695-2422-2/05 $20.00 © 2005 IEEE

4.1 Simulation results

2. R chooses the m nearest neighbors of X from the list of receivers, i.e., it selects receivers Y1 , . . . , Ym , that have the minimum Euclidean distances from X. Then, B is chosen as follows

The description of the algorithm shows that it has low communication and computation complexity. In this section we study how the average delays experienced by receivers scales with the number of receivers.

B = Yj , where j = arg min{ρ(X, Yi ) + D(R, Yi )}. i

3. With B as the starting point, the algorithm proceeds like the algorithm FollowTree.

8000

Join overhead: In ZigZag, a new receiver contacts O(k × log N ) nodes to find its parent. In FollowTree-Landmark-I and FollowTree-Landmark-II, a new receiver initially communicates with the landmarks and the root. The root informs the receiver about its probable parent P . After this, the receiver follows the tree starting at P . In the worst case, the receiver may have to communicate with Ω(D) nodes where D is the height of the tree, and thus have the same asymptotic complexity as algorithm FollowTree. However, our experiments show that receivers typically find a parent very quickly and the join overhead is less than that of ZigZag.

Average delay

6000 5000 4000 3000 2000 1000 0 0

4 Performance evaluation

1000 2000 3000 4000 5000 6000 7000 8000 Number of receivers

Figure 1. Mean delays for the algorithms

We have simulated the model used in this paper using a homegrown program written in C/C++. Our program simulates nodes and edges and packet exchanges between nodes. The current implementation simulates propagation delays but does not simulate queuing delays. While this does not yield accurate estimates of the complete delays, it does allow us to differentiate between algorithms based on their performance using only the propagation delays. In the near future, we plan to implement the two best algorithms in ns2 [2] and evaluate their performance using complete delays. We needed a family of networks in which we could accurately vary the average delays of receivers, and study the scaling behaviour of the algorithm. Since our experiments use only propagation delays, the delay of a receiver depends (approximately) linearly with its distance from the root. In order for the results to be meaningful, we wanted to keep the node density constant and increase the maximum distance propositional to the number of receivers. All of this is hard to achieve in general. So we used ideas from geometric random graphs and generated positions of nodes and connected some of them with straight edges. We make the delay of an edge proportional to its distance. This allows us to study networks of different sizes (with the same node density) by increasing the receivers proportional to the length of the geographical region and keeping its width fixed. While these graphs may not be representative of the Internet, they allow finer control of the distribution of delays than in real graphs, and are therefore useful for testing our algorithms. In our experiments, each node was set to have maximum degree 5 and for FollowTree-Landmark-II, the parameter m was set to 5.

Scalability of each algorithm: Figure 1 shows a graph of the average delays experienced by receivers plotted against the number of receivers for the four algorithms proposed and for Zigzag. The results show that algorithms FollowTree, FollowTree-Landmark-I and FollowTree-Landmark-II significantly outperform Zigzag and ShortestDelay. As noted before, Zigzag always maintains a balanced tree (in terms of number of hops) and gives no preference to receivers that are far away from the root in terms of delay. This likely hurts its performance. The ShortestDelay algorithm attaches receivers as close to the root as possible (again in terms of delay) but that point itself may be far away from the new receiver. Fairness of each algorithm: As mentioned in Section 2, we measure fairness using the standard deviation of the delays to each receiver along the multicast tree produced. Figure 2 shows a graph of the standard deviation of the delays experienced by receivers plotted against the number of receivers for the four algorithms proposed and for Zigzag. The results show that all four proposed algorithms significantly outperform Zigzag. Among our algorithms, FollowTree and FollowTree-Landmark-II are seen to be far superior to the other two algorithms. We remind the reader that low standard deviation essentially means that the delays at different users are closer to each other, which makes the algorithm fairer.

5 Discussion and conclusions In this paper, we study the problem of constructing multicast trees for streaming multimedia content in heteroge5

Proceedings of the 2005 Systems Communications (ICW’05) 0-7695-2422-2/05 $20.00 © 2005 IEEE

ShortestDelay FollowTree FollowTree-Landmark-I FollowTree-Landmark-II ZIGZAG

7000

2000 1800 Std. Dev. of delay

[8] M. Coates, A. Hero, R. Nowak, and B. Yu. Internet tomography. IEEE Signal Processing Magazine, May 2002. [9] Y. Cui and K. Nahrstedt. Layered peer-to-peer streaming. In Proceedings of International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV ’03), 2003. [10] T. T. Do, K. A. Hua, and M. Tantaoui. P2VoD: Providing fault tolerant video-on-demand streaming in peer-to-peer environment. In Proceedings of the IEEE International Conference on Communications, 2004. [11] Y. Guo, K. Suh, J. Kurose, and D. Towsley. P2Cast: Peerto-peer patching scheme for vod service. In Proceedings of the 12th World Wide Web Conference (WWW-03), 2003. [12] M. Hefeeda, A. Habib, B. Botev, D. Xu, and B. Bhargava. Promise: Peer-to-peer media streaming using collectcast. In ACM Multimedia ’03, November 2003. [13] M. Hefeeda, A. Habib, D. Xu, B. Bhargava, and B. Botev. Collectcast: A peer-to-peer service for media streaming. ACM/Springer Multimedia Systems Journal, 2005. also appeared in ACM SIGCOMM’03 Poster Session. [14] K. A. Hua and M. A. Tantaoui. Cost effective and scalable video streaming techniques. In B. Furht and O. Marques, editors, Handbook of Video Databases. CRC Press, March 2003. [15] Y. hua Chu, S. G. Rao, and H. Zhang. A case for end system multicast (keynote address). In SIGMETRICS ’00: Proceedings of the 2000 ACM SIGMETRICS international conference on Measurement and modeling of computer systems, pages 1–12, 2000. [16] J. B. Kwon and H. Y. Yeom. Distributed multimedia streaming over peer-to-peer networks. In International Conference on Parallel and Distributed Computing (Euro-Par 2003), August 2003. [17] B. Li and J. Liu. Multirate video multicast over the internet: An overview. IEEE Network, pages 24–29, Jan/Feb 2003. [18] V. N. Padmanabhan, H. J. Wang, P. A. Chou, and K. Sripanidkulchai. Distributing streaming media content using cooperative networking. In Proceedings of ACM NOSSDAV, 2002. [19] D. Rubenstein and S. Sahu. Can unstructured P2P protocols survive flash crowds? IEEE/ACM Transactions on Networking, April 2005. [20] D. A. Tran, K. A. Hua, and T. T. Do. Zigzag: An efficient peer-to-peer scheme for media streaming. In Proceedings of IEEE INFOCOM, 2003. [21] D. A. Tran, K. A. Hua, and T. T. Do. A peer-to-peer architecture for media streaming. IEEE Journal on Selected Areas in Communications, 22(1), January 2004. [22] D. Xu, M. Hefeeda, S. Hambrusch, and B. Bhargava. On peer-to-peer media streaming. In Proceedings of ICDCS, 2002. [23] X. Zhang, J. Liu, B. Li, and T.-S. P. Yum. Coolstreaming/DONet: A data-driven overlay network for live media streaming. In IEEE INFOCOM ’05, 2005.

ShortestDelay FollowTree FollowTree-Landmark-I FollowTree-Landmark-II ZIGZAG

1600 1400 1200 1000 800 600 400 200 0 0

1000 2000 3000 4000 5000 6000 7000 8000 Number of receivers

Figure 2. Standard deviation of delays neous P2P networks. While most existing work focus on the bandwidth heterogeneity in P2P networks, we focus on solving problems arising from heterogeneity of delays from receivers to a source. We propose several algorithms for multicast tree construction, and evaluate their performance using simulation. Our results show that two of our algorithms (FollowTree and FollowTree-Landmark-II) perform very well and far outperform Zigzag. We have only focused on the multicast tree construction problem in this paper. We are testing our algorithms on Internet-like graphs generated by BRITE [1]. We are also working on efficient reorganization of multicast trees when nodes leave abruptly, and network conditions (e.g. congestion) change sharply.

References [1] Brite topology generator. Available at http://www.cs. bu.edu/brite/. [2] The network simulator: ns-2. Available at http://www. isi.edu/nsnam/ns/. [3] J. Apostolopoulos, W. Tan, and S. Wee. Video streaming: Concepts, algorithms, and systems. In Handbook of Video Databases. CRC Press, March 2003. [4] S. Banerjee, B. Bhattacharjee, and C. Kommareddy. Scalable application layer multicast. In SIGCOMM ’02: Proceedings of the 2002 conference on Applications, technologies, architectures, and protocols for computer communications, pages 205–217, 2002. [5] A. Bar-Noy, S. Guha, J. S. Naor, and B. Schieber. Message multicasting in heterogeneous networks. SIAM J. Comput., 30(2):347–358, 2000. [6] S. Berchtold, B. Ertl, D. A. Keim, H.-P. Kriegel, and T. Seidl. Fast nearest neighbor search in high-dimensional space. In Proceedings of the 14th International Conference on Data Engineering (ICDE’98), 1998. [7] E. Brosh and Y. Shavitt. Approximation and heuristic algorithms for minimum-delay application layer multicast trees. In Proceedings of the IEEE INFOCOM, 2004.

6 Proceedings of the 2005 Systems Communications (ICW’05) 0-7695-2422-2/05 $20.00 © 2005 IEEE