830 likes | 841 Views
Explore the challenges and solutions in implementing application-level multicast networks, covering topics such as overlay networks, end-system multicast, mesh construction, optimization, and tree building. Delve into protocols, maintenance, scaling issues, and resource management.
E N D
Deadlines • 11 Oct: Survey Paper Due • 18 Oct: Paper Reviews Due
Reminder • No lecture next week • Make-up lecture • 23rd October 2004, Saturday • 1-3pm
New Model: IP Multicast sender receivers
Multicast S G A Router B Router Router Router C
Multicast S A Router G B Router Router Router G C
Multicast S G A Router B Router Router G Router C
So, why can’t we multicast? • Who assign multicast address? • Who pay for multicast traffic? • How to inter-operate between protocols? • How can we prevent DoS?
You are Here Encoder Decoder Middlebox Receiver Sender Network
Application-Level Multicast S A A Router B Router Router Router C
Application-Level Multicast S B C A Router B Router Router Router C
Overlay Network S A B C
Penalty: Delay S A Router B Router Router Router C
Penalty: Network Resource S A Router B Router Router Router C
Link Stress S A Router B Router Router Router C
Questions • How to construct overlay multicast tree? • How to maintain overlay multicast tree?
A Case for End-System Multicast Y. Chu, S. Rao, S. Seshan, H. Zhang JSAC 2002
Narada’s Idea • Build a mesh, then build a tree S S A A B C B C
Desirable Property of Mesh • Path between any two nodes must be “good” • Cannot be too sparse or too dense
How to build Mesh? • Node join • Randomly choose some existing members as neighbour S A B C
How to maintain Mesh? • Everybody knows everybody • Each node maintains a table
How to update table? • Refresh messages • Exchange of tables
How to maintain Mesh? • Node failure • Probes if no refresh messages for a while S A B C
How to maintain Mesh? • Mesh Partition • Probes if no refresh messages for a while, add random edges if alive S A B C
How to Optimize Mesh? • Mesh needs to periodically updated because: • nodes join and leave • network condition changes • partition repair add unneeded edges • initial constructions are random
Adding a Link • Node i periodically probe randomly selected members j • Ask “what if I add (i,j)?”
Adding a Link S S A A B C B C
Removing a Link • Harder to ask “what if I remove link (i,j)?” • compute cost(i,j) instead: number of nodes for which i uses j as next hop
cost(i,j) cost(S,A) = 2 S A B C
cost(i,j) cost(S,A) = 3 cost(A,S) = 1 E S A D B C
Removing a link • if max(cost(i,j), cost(j,i)) < Threshold drop (i,j) (Threshold should depends on group size)
Narada’s Idea • Build a mesh, then build a tree S S A A B C B C
How to build tree? • Modify DVMRP • Cost definition • Pick widest path • Break ties by latency
Scalable Application Layer Multicast S. Banerjee, B. Bhattacharjee, and C. Kommareddy SIGCOMM 2002
Problem • Narada does not scale • State maintenance • Message overhead
NICE • NICE is scalable • State maintenance • Message overhead
Nodes per Cluster [k, 3k-1]