Design and Implementation of Overlay Multicast Tree Protocol June 17 th Jeonghun Noh Eric Setton Professor Bernd Girod Design and Implementation of Overlay Multicast Tree Protocol
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Outline Introduction –Internet multicast –Peer-to-peer multicast Our overlay multicast system –Cross layer approach –An overall system architecture –Operation of the protocol Simulation setup & results Conclusion & future work
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Internet multicast What is multicast? –Involves more than two communicating hosts –Two categories –One sender to multiple receivers –Multiple senders to multiple receivers –Example –TCP, UDP are unicast protocol –DVMRP, MOSPF were widely used multicast protocol Mbone (multicast testbed) was born in 1992 –Stands for Multicast backbone –Tunnel-based overlay network on the IP internet –About 1500 subnets in 1995 (less than 3% of the Internet)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Why IP multicast isn’t popular? It’s too slow –One shared backbone network –Restricted scalability in terms of the number of sessions Router equipment venders were skeptical –A proven need of multicast apps is lacking –Routers may become a bottleneck due to state maintenance –Passive network is more robust than active network Alternatives get more popular –Server-Client model (one-to-one connection) is successful –Contents delivery network (ex. Akamai)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th A new approach emerges Peer-to-peer file delivery works very well –Napster, Gnutella, Edonkey, Usenet, and so on A wider bandwidth of access network –From 56k Modem to xDSL, cable modem (~a few Mbps of downlink) –Abundant unused network resource Multicast paradigm shift –What we have : –“enough resource” and “powerful end-user PCs” – “Rely on networks” ----> “Do everything on edge hosts”
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Existing peer-to-peer multicast (Reliable) Distributed systems –NICE (Univ. of Maryland) –To construct a single efficient tree structure –Pastry (Microsoft) and Tapestry (UC Berkeley) –Scalable resource lookup using Distributed Hash Table Multimedia distribution –End System Multicast (CMU) –CoopNet (MicroSoft)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Outline Introduction –Internet multicast –Peer-to-peer multicast Our overlay multicast system –Cross layer approach –An overall system architecture –Operation of the protocol Simulation setup & results Conclusion & future work
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Cross layer design Most existing literature is not aware of video application characteristics Retransmission is important –One missing packet can result in severe damage to many peers –ESM relies on TCP retransmission (quick time player uses HTTP) –MS CoopNet adapts to local congestion based on packet loss –Both use multiple trees and MDC for robustness Our goal is to integrate : –Path Diversity –CoDiO packet scheduling –Encoding method tailored to network situation Identification of issues in designing a new protocol –scalability | robustness | efficiency | user experience
Design and Implementation of Overlay Multicast Tree Protocol June 17 th An overall system architecture Decides the number of trees Distributes video to its direct peer Maintains a member list (not accurate) Moderate effort to keep the list updated Responds to peer “join request” As an active peer (like a client) Join / leave a session Detect parent leave and react Send hello messages to parents Source peer (ordinary) peer As a passive peer (like a server) Respond to Hello Forward video on attachment request Detect child leave and discard it Note : Load balance between source and other peers Common in high-performance end users
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Protocol network architecture IP UDP Overlay Multicast Layer Video Encoder Video player IP UDP Overlay Multicast Layer VIDEO SOURCE VIDEO RECEIVERS buffer
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Protocol state diagram OFFLINE JOIN PROBE ATTACH ONLINE LEAVE HELLO User command Timer expires state flow REJOIN
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Join procedure – design phase [Source] On “Join request” from a new peer –How many parent candidates? –too many : traffic overhead, (negative) impact on other peers –too small : low efficiency, higher failure rate to join at one time –Our decision : N * number of trees (N is obtained empirically) –Whom to choose? –Recent first, or random selection (our choice) [New peer] Which parent to choose? –Several metrics : –Available bandwidth –Diversity –RTT ( from a parent peer or source peer ) –Number of hops ( from a source peer ) –Join each tree INDEPENDENTLY or in a COUPLED way
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Join procedure – 6 way handshaking SOURCE PARENT CANDIDATESPARENT NEW PEER JOIN REQUESTPROBE ATTACH
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Leave procedure – Explicit leave Parent Child SERVER Leaving Host
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Hello protocol - overview Why do we need this? –Hosts may leave ungracefully –Need to keep track of neighbors to check if alive Two design approaches –[Approach 1] To every neighbor –Used in mobile ad Hoc network –More complex –Different handling of its parent and children –[Approach 2] To its parent only for each tree –Less traffic –Still needs to be bidirectional (expects parent response)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Hello protocol – timer mechanism Parent leave detection Time flow CHILD : say hello to parent PARENT : respond to child : Timer expiration points Parent leaves ungracefully Notice of parent leave 1 st no reply 2 nd no reply
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Parent ungraceful leave Parent 0 Child Hello No Reply Host 0 will… Parent 1 Parent 2 Host 0 -Detect the leave via hello -When the leave is detected 1. Ask other parents for rejoin (can use extra control plane) 2. ask for retransmission of missing video packets 3. If things don’t work well, rejoin through server. -> explicit leave message to host 0’s children
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Local retransmission A video packet is lost A parent host leaves When… Other Peers I missed a packet. Let’s choose a parent to ask for it I am happy.
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Outline Introduction –Internet multicast –Peer-to-peer multicast Our overlay multicast system –Cross layer approach –An overall system architecture –Operation of the protocol Simulation setup & results Conclusion & future work
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Simulation setup - source Video source peer –video stream (encoded by H.264 with SP/SI frames) –Video rate : 676Kbps –Parent candidate list size : 5 * number of trees ( tentative ) –Number of trees >= 1 ( equal bit rate per tree ) –Starts streaming on simulation beginning –Distributes video packet to trees in round robin Host characteristics –Resides in the middle of the network –Uplink bandwidth : 5Mbps (support 7 children in case of one tree)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Simulation setup - receiver Video receiver –Resides on the edge of the network –Uplink bandwidth : 1Mbps ~ 4Mbps (access bw distribution) –Downlink bandwidth : uplink bandwidth * 3 –Heterogeneous access networks : DSL, dialup/cable modem, LAN –Repeat of “join” and “ungraceful leave” (scheduled for each receiver) OnOn Off High join rate (1 / sec) Low leave rate(0.03/sec)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th NAM Snapshot (100 nodes)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Performance evaluation Protocol states: –Join time, first tree min: 0.2 s, max: 0.4 s –Leave detectionmin: 1.8 s, max: 2.1 s –Re-join time min: 1.0 s, max: 1.2 s (since last video packet received) Simulations over ns-2 Number of hosts: 40 Playout deadline: 1 secNumber of trees: 4 Average bandwidth: 2*videoMinimum online length: 10s
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Influence of the bandwidth Average bandwidth 1.1 Mbps Sequence rate: 676 kbpsPlayout deadline: 1 sec Number of hosts: 40Length of simulation: 60s Average bandwidth 1.3 Mbps Average bandwidth 1.5 Mbps
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Average tree heights (active peers only)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Simulation overhead (CPU usage)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Protocol overhead (additional traffic)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Video quality over all peers
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Video quality vs the number of trees
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Conclusion & Future work Design and implementation of –Building and maintaining of variable multiple trees –Parent / child leave detection & rejoin procedure –Implementation of a simple retransmission functionality –Heterogeneous receiver setup based on real statistics –Testbed design tool Future work –Design more realistic simulations –Optimization of the timer expiration interval for each protocol state –Improve retransmission mechanism –Distortion optimized scheduling –Comparison with other schemes
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Acknowledgement Work done as an independent study with Prof. Bernd Girod I thank Prof. Bernd Girod for –introducing such an interesting topic and –a feedback on the first stage report I thank Eric Setton for –his valuable collaboration on code integration and –uncountable discussions on simulation results and project progress Thank all of you for attending the meeting for this talk
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Additional Slides Mbone map End System Multicast Mechanism CoopNet Mechanism Local retransmission details Simulation Setup – edge link bandwidth Etc.
Design and Implementation of Overlay Multicast Tree Protocol June 17 th The topology of the Mbone May, 1994
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Mbone map (as of July 1993) Existing research based on peer-to-peer
Design and Implementation of Overlay Multicast Tree Protocol June 17 th End System Multicast Developed at CMU ( Proceedings of ACM SIGMETRICS, 2000 ) NARADA protocol –Single tree, on top of mesh topology Simulation and internet experiment are performed We can download their client program at Unicast (server-client) Overlay multicast
Design and Implementation of Overlay Multicast Tree Protocol June 17 th CoopNet (MS) Centralized tree construction
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Source peer Decides the number of distribution trees Keeps a member list (potentially not accurate) –Member list updates when: –A new host reports ‘attachment’ –A host informs of ‘explicit leave’ –A child of a parent leaving ungracefully reports the leave –Server does its best to keep it updated with smallest effort Responds to host “join request” Distributes video to its direct children
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Other peers As an active peer ( client in server-client model ) –Join / leave a session –Detect parent leave and react –Send hello messages to parents As a passive peer ( like a server ) –React to hello messages –Forward video on attachment request –Discard a child if no more hello messages arrive Note : –More burden on receivers than on server –Common in high-performance clients
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Join procedure - philosophy Centralized vs. Distributed Algorithm –Whether a server maintains a tree topology –Subtle meaning of ‘distributed’ –Who should a new host contact? Hybrid p2p : server Pure p2p : peers –How to maintain a membership list –Examples –Microsoft : a dedicated server (e.g. Napster) –CMU : bootstrapping (e.g. Gnutella) Our choice –Distributed tree construction with video source for initial contact
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Leave Protocol – What to do Parent Child SERVER Discards a leaving host from the list Discards the child from forwarding Table -Sends ‘Leave message’ to its children ‘Recursively’ -Rejoin
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Local Retransmission Request Generation –Requestee Selection –Sending & Scheduling of request packet Request Processing Request Reply Processing
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Hello protocol Parent Child Hello Hello Reply APPROACH 2
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Simulation Setup – edge link bandwidth
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Hello packet interarrival (sample trace)
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Simulation topics (X)PSNR vs tree count (O)PSNR vs # peers (X)Tree height vs PSNR (X)Video packet interarrival Time (O)# peers vs average tree height (O)PSNR vs tree count 1~18 (for a group of 300 nodes only) (X)Hello packet interarrival over simulation time (O)CPU time vs # peers (O) abundant group vs starving group (planned) comparison of jitter w/ packetization (O)Control overhead
Design and Implementation of Overlay Multicast Tree Protocol June 17 th Algorithms evaluation via Simulation Member selection Algorithm (for server) on join request Parent candidates selection Algorithm (for receiver) –Jointly (for initial join), individually Multiple tree counts selection Algorithm (for server) –Factors : topology type, RTT distribution, session group size Rejoin Algorithm (for receiver) Retransmission Request / Reply routine