CS218 – Final Project A “Small-Scale” Application- Level Multicast Tree Protocol Jason Lee,...

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

    21-Dec-2015
  • Category

    Documents

  • view

    234
  • download

    0

Transcript of CS218 – Final Project A “Small-Scale” Application- Level Multicast Tree Protocol Jason Lee,...

CS218 – Final ProjectA “Small-Scale” Application-Level Multicast Tree Protocol

Jason Lee, Lih Chen

& Prabash Nanayakkara

Tutor: Li Lao

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

Hybrid Overlay Multicast Architecture

• Combines the idea "overlay multicast" and application-level multicast.

• A network of backbone (or transit) domains and stub domains

Backbone and Stub Domains

image from http://www.arl.wustl.edu/~sherlia/amcast.html

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.

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

“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)

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

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

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

ImplementationDetails

• Since testing done on 1 machine, implemented code to simulate latencies between nodes

• Total lines of code: > 8kLibraries, Utilities: 5kNode (proxy, client): 2.4k

• Started from scratch: no framework given, no pre-existing source code, or libraries for sockets and serialization

ImplementationCode…

Basic Framework

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

ImplementationBasic 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

Basic Tree Algorithm

PROXY NODE

NEW NODE

Dynamic 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”

Basic Tree Algorithm

PROXY NODE

Basic Tree Algorithm

PROXY NODE

ImplementationOptimized 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.

ImplementationOptimized Cluster Tree: Details

PROXY NODE

ImplementationOptimized Cluster Tree: Details

PROXY NODE

ImplementationOptimized Cluster Tree: Details

PROXY NODE

ImplementationOptimized Cluster Tree: Details

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.

ImplementationOptimized 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.

Dynamic 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 node’s children

Cluster – Dynamic Departures

• Re-cluster from parent of dead child

Cluster – Dynamic Departures

• Re-cluster from parent of dead child

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 transmissionFor:- Clustered Nodes vs. Balanced Tree- Fanouts of size 2 and 6

SimulationSimulation 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

SimulationSimulation 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

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

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

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

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

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