Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS218 – Final Project A “Small-Scale” Application- Level Multicast Tree Protocol Jason Lee, Lih Chen & Prabash Nanayakkara Tutor: Li Lao.

Similar presentations


Presentation on theme: "CS218 – Final Project A “Small-Scale” Application- Level Multicast Tree Protocol Jason Lee, Lih Chen & Prabash Nanayakkara Tutor: Li Lao."— Presentation transcript:

1 CS218 – Final Project A “Small-Scale” Application- Level Multicast Tree Protocol Jason Lee, Lih Chen & Prabash Nanayakkara Tutor: Li Lao

2 Overview Big Picture: part of a larger project, Hybrid Overlay Multicast Architecture Small-Scale Application-Level Multicasts Two-tier Grouping Algorithms, featuring Euclidean Distance-Based Clustering Results

3 Hybrid Overlay Multicast Architecture Combines the idea "overlay multicast" and application-level multicast. A network of backbone (or transit) domains and stub domains

4 Backbone and Stub Domains image from http://www.arl.wustl.edu/~sherlia/amcast.html

5 Proxy Nodes & Stub Domains Inside the backbone domains, a set of fixed proxy nodes are deployed to form an overlay network. These proxy nodes also responsible for setting up overlay multicast trees within the backbone domain. In each stub domain, end users and one proxy node form application-level multicast trees.

6 Motivation Advantages: overlay multicast - efficient resource usage and better multicast performance application-level multicast - flexibility and its ability to adapt to network dynamics two-tier infrastructure more scalable to large group size because control messages between end users are limited to the local scope

7 “Small-Scale” Application-Level Multicast Tree Construction Assumptions: Use of a centralized proxy node to set up and maintain multicast trees. Metric used is link delay (for now)

8 Project Goals Implement a application level multicast protocol [to be incorporated into an overlay network] Algorithm to construct a multicast tree based on some metric (e.g., latency, bandwidth) Algorithm to construct a optimized tree for best resiliency and performance Limited fanout per node

9 Challenges Construct a tree based on an arbitrary metric Have to address scalability Have to assign parents and children relationships Handle arbitrary client joins/leaves

10 Implementation Linux/C++ implementation Proxy node –Use clustering algorithm to create tree –Aware of the whole tree. –Handles all joins and leaves and repairing Client nodes –basically dumb nodes –Used to distribute data and answer proxy’s messages

11 Implementation Details Since testing done on 1 machine, implemented code to simulate latencies between nodes Total lines of code: > 8k Libraries, Utilities: 5k Node (proxy, client): 2.4k Started from scratch: no framework given, no pre-existing source code, or libraries for sockets and serialization

12 Implementation Code… Basic Framework

13 Another Two-Tier Approach New nodes get assigned to the un- optimized balanced tree. Used for simplicity and as a baseline for reliability that the more optimized solution should provide Stables nodes rewarded with a clustered multicast tree based on Euclidean mean distances

14 Implementation Basic Tree Simple un-optimized balanced tree Each parent is responsible at most MaxFanout children. When a parent gets filled, new clients are added to open parents or leaf nodes

15 Basic Tree Algorithm PROXY NODE NEW NODE

16 Dynamic Join and Leave Optimized Cluster Tree New clients go to the bottom of the tree as leaves If a node dies, we use the most recently added node to plug in the “hole”

17 Basic Tree Algorithm PROXY NODE

18 Basic Tree Algorithm PROXY NODE

19 Implementation Optimized Cluster Tree Squared Euclidean Mean Distances - geometric distance between objects, emphasizing the weight on objects further apart Between-groups linkage - average similarity within each cluster is calculated.

20 Implementation Optimized Cluster Tree: Details PROXY NODE

21 Implementation Optimized Cluster Tree: Details PROXY NODE

22 Implementation Optimized Cluster Tree: Details PROXY NODE

23 Implementation Optimized Cluster Tree: Details

24 Cluster – Dynamic Join Simultaneously maintain two multicast trees 1)Clustered 2)Un-optimized New nodes get placed on the un- optimized tree until the entire network is clustered.

25 Implementation Optimized Cluster Tree: Details Proxy sends out ping requests to nodes – results used to fill a NxN matrix with ping latencies (can be easily extended for b/w) Proxy calculates clusters based on max fanout per node. If too many nodes for a given clusterhead, recursively calculate the clusters for this subgroup.

26 Dynamic Join and Leave Optimized Cluster Tree Details Recalculate the clusters (if appropriate) at the parent of the dead node If the parent of such a dead node is the proxy, the proxy just adopts the dead node’s children

27 Cluster – Dynamic Departures Re-cluster from parent of dead child

28 Cluster – Dynamic Departures Re-cluster from parent of dead child

29 Simulations Simulation 1 - Test the tree under conditions of constantly joining and leaving nodes Simulation 2 - Test effects of heavy, but highly bursty traffic conditions Measurements - Average latency - Average rate of successful transmission For: -Clustered Nodes vs. Balanced Tree -Fanouts of size 2 and 6

30 Simulation Simulation 1 - Churning 1.Start with N nodes already in the tree 2.Extended period of constant leaving and joining (1-3 nodes) 3.Allow the tree to stabilize

31 Simulation Simulation 2 – Mass join / leave 1.Start with N nodes 2.Inactive period to ensure nodes have stabilized 3.0.5N leave the tree 4.Short duration 5.2N join the tree

32 Measurements 1 – Average latency 1.Start the multicast process. 2.Measure delay to each node in the tree 3.Compare results between balanced tree and clustered nodes

33 Measurements 2 – Average Delivery Rate 1.Start the multicast process 2.Measure percentage of delivery of the original data to each node 3.Compare results between balanced tree and clustered nodes

34 Other Multicast Algorithms Focusing on small-scale, so take advantage of the proxy node’s total awareness Minimum Spanning Trees and Shortest Path Trees are not optimized for latencies and/or bandwidth Other application-level multicast protocols, e.g. NICE and Narada

35 Issues Clustering algorithm’s handling of proxy’s dead Currently using latency only The un-optimized tree constructed without regards to link metrics However, all limitations can easily be changed and tested against this current implementation

36 Conclusion Implementation of a two-tier multicast tree using Squared Euclidean distance clustering multicast algorithm for the optimized tree Extensible, and can create performance benchmarks with other multicast algorithms Addresses small-scale multicast without requiring any information of neighbors upon initiation


Download ppt "CS218 – Final Project A “Small-Scale” Application- Level Multicast Tree Protocol Jason Lee, Lih Chen & Prabash Nanayakkara Tutor: Li Lao."

Similar presentations


Ads by Google