Title: CS218 Final Project A SmallScale ApplicationLevel Multicast Tree Protocol
1CS218 Final ProjectA Small-Scale
Application-Level Multicast Tree Protocol
- Jason Lee, Lih Chen
- Prabash Nanayakkara
- Tutor Li Lao
2Overview
- 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
3Hybrid Overlay Multicast Architecture
- Combines the idea "overlay multicast" and
application-level multicast. - A network of backbone (or transit) domains and
stub domains
4Backbone and Stub Domains
- image from http//www.arl.wustl.edu/sherlia/amcas
t.html
5Proxy 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.
6Motivation
- 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
7Small-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)
8Project 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
9Challenges
- Construct a tree based on an arbitrary metric
- Have to address scalability
- Have to assign parents and children relationships
- Handle arbitrary client joins/leaves
10Implementation
- 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 proxys
messages
11ImplementationDetails
- Since testing done on 1 machine, implemented code
to simulate latencies between nodes - Total lines of code gt 8kLibraries, Utilities
5kNode (proxy, client) 2.4k - Started from scratch no framework given, no
pre-existing source code, or libraries for
sockets and serialization
12ImplementationCodeBasic Framework
13Another 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
14ImplementationBasic 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
15Basic Tree Algorithm
PROXY NODE
NEW NODE
16Dynamic Join and LeaveOptimized 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
17Basic Tree Algorithm
PROXY NODE
18Basic Tree Algorithm
PROXY NODE
19ImplementationOptimized 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.
20ImplementationOptimized Cluster Tree Details
PROXY NODE
21ImplementationOptimized Cluster Tree Details
PROXY NODE
22ImplementationOptimized Cluster Tree Details
PROXY NODE
23ImplementationOptimized Cluster Tree Details
24Cluster Dynamic Join
- Simultaneously maintain two multicast trees
- Clustered
- Un-optimized
- New nodes get placed on the un-optimized tree
until the entire network is clustered.
25ImplementationOptimized 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.
26Dynamic Join and LeaveOptimized 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 nodes children
27Cluster Dynamic Departures
- Re-cluster from parent of dead child
28Cluster Dynamic Departures
- Re-cluster from parent of dead child
29Simulations
- 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
30SimulationSimulation 1 - Churning
- Start with N nodes already in the tree
- Extended period of constant leaving and joining
(1-3 nodes) - Allow the tree to stabilize
31SimulationSimulation 2 Mass join / leave
- Start with N nodes
- Inactive period to ensure nodes have stabilized
- 0.5N leave the tree
- Short duration
- 2N join the tree
32Measurements 1 Average latency
- Start the multicast process.
- Measure delay to each node in the tree
- Compare results between balanced tree and
clustered nodes
33Measurements 2 Average Delivery Rate
- Start the multicast process
- Measure percentage of delivery of the original
data to each node - Compare results between balanced tree and
clustered nodes
34Other Multicast Algorithms
- Focusing on small-scale, so take advantage of the
proxy nodes 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
35Issues
- Clustering algorithms handling of proxys 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
36Conclusion
- 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