Implementation of a Peer-to-Peer Real-time streaming media system Presenter: Kuei-Yu Hsu Advisor: Dr. Kai-Wei Ke 2014/6/9 Outline Introduction Background System Architecture Packet-Delivery Algorithm Push-based System (DMFT and CDMFT) Pull-based System (Revised BitTorrent) Test and Implementation Conclusion 2 Introduction • Client-Server Network • Content Delivery Network • Peer-to-Peer Network • Hybrid CDN & P2P Network 3 Client-Server Network With increasing network Server bandwidth, Network transport are not only text or static image, but also audio and video. The traditional Client-Server Client 4 architecture can't afford the number of growing users. Content Delivery Network There are 2 ways to enhance the multimedia access. Server Side: Content Delivery Network (CDN) 1. 5 Replicate the content from the original content server at its local cache. Distribute the content to clients. CDN Servers Peer-to-Peer Network 2. Client Side: Peer-to-Peer (P2P) Network Clients become active associates by transmitting received content to other clients. Peer-to-Peer 6 Hybrid CDN & P2P Network Hybrid CDN and P2P Network CDN Servers Peer-to-Peer 7 Background • P2P Streaming System • ALM Technique • IPM versus ALM 8 P2P Streaming System A system without a central server, where each participating node, act both as a server and a client. Content to be shared is sourced in parts by each node – peers. Famous Application of P2P Streaming: PPStream CoolStreaming 9 ALM Technique Multiple Connections: Multiple Unicast Unicast is the most common way to make connection in the network. Multiple unicast always produce duplicate paths. IP Multicast (IPM) Failed due to concerns regarding scalability, deployment, and support for higher level functionality. Application Layer Multicast (ALM) Dispatcher algorithm potentially avoids redundant communication in the network. 10 Overlay Network Conceptual Routing Network Peer 1 Peer 4 Physical Routing Network Peer 3 Peer 2 11 IPM versus ALM IP Multicast 12 Application Layer Multicast System Architecture • System Concept Diagram • Three Subsystems • System Block Diagram 13 System Concept Diagram VLC Client Peer 1 VLC Source Peer 4 Camera Source Peer 3 Camera Client Peer 2 VLC Client 14 System Architecture (cont.) Three Subsystems: Streaming Transfer subsystem 1. Data Buffering Ordering Algorithm subsystem 2. Network Management subsystem 3. 15 Set routing information (i.e. Build tree structure) Determine where the streaming packets transport to Manage socket connection status Process multiple asynchronous I/O requests System Architecture System Block Diagram Media Player (Optional) Play Stream Streaming Transfer subsystem Control Messages Algorithm subsystem Routing Informations Data Transport Network Management subsystem Stream Transport Operating System Network Transfer (MAC) 16 Packet-Delivery Algorithm • Push-based System • • DMFT CDMFT • Pull-based System • 17 Revised BitTorrent Push-based System Nodes are arranged in a tree structure. Selected frame is pushed from a parent node to its child node. Delay in the push system occurs when a node leaves – subsequently leading to rediscovery of the parent -child relation - Tree is regenerated. Moreover there can be redundancy when two nodes are pushing the same frame to a node. 18 DMFT DMFT: Distributed Multisource Forwarding Tree A multi-source multicast algorithm in application layer for routing. Every member can not only provide source contents but also can forward data to others. Need to maintain some neighbor information. NIT (Neighbor Information Table) DFT (Data Forwarding Table) 19 DMFT Tables NIT: Neighbor Information Table Record the distance of each member which is in the group NIT Field name Member IP Hop Count DFT: Data Forwarding Table Maintain the routing information DFT Field name 20 Source IP Next Peers IP Parent IP DMFT Flow Chart A Start System No Input the local ip (1) Member Join As a Group Creator? Yes Is new member join? Yes No No Input the one of The members' ip Prune Message Update NIT (2) Construct Routing Tree A 21 Member leave No Update DFT Is parent duplicate? Stream Forward (5) Inquire at regular time A (3) Prune Duplicate Path Yes (4) Recover Tree StructureRecovery CDMFT CDMFT: Cluster Distributed Multisource Forwarding Tree An enhanced DMFT algorithm for reducing control messages. With cluster-based group management, all multicast group members are grouped into different clusters. Each cluster has a cluster head which is responsible for managing cluster members and forwarding multicast data. 22 CDMFT Hierarchical Cluster Headers Cluster Members 23 Pull-based System Peers request neighboring peers for the next frame needed by them. Each peer has a buffer-map of the frames currently held by it and its neighbors. A Peer refers each of its neighbors buffer-map to decide from whom to pull data. Disadvantage: Making requests of pull again and again and exchanging buffer maps can result in congestion. 24 BitTorrent Network (cont.) Common BitTorrent terms: • Tracker: A server that keeps track of which seeds and peers are in the swarm. • Seeder: Refers to a machine possessing some part of the data. • Swarm: Together, all peers (including seeds) sharing a torrent are called a swarm. • Leech: A peer or any client that does not have 100% of the data. Also, refers to a peer (or peers) that has a negative effect on the swarm by having a very poor share ratio. 25 BitTorrent Network BitTorrent download Strategies: 1. Rarest First • The rarest pieces are transmitted with high priority. • The strategy can use in the two cases. 2. Tit for tat • The strategy is used to optimize the download speed • Choking Policy: Peers are uploaded to more cooperating peer. • Optimistic Unchoking: A peer will upload to other peers randomly in a period. 26 Test and Implementation • Code Organization • System Test Cases • Test Tools 27 VLC media player A free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming protocols. Plays most codecs with no codec packs needed: MPEG-2, DivX, H.264, MKV, WebM, WMV, MP3... 28 http://projects.tano.si/vlc-qt Implementation Organize Codes: Original Used IDE UI Eclipse C++ wxWidget wxFormBuilder Current Used Qt C++ Qt UI Test Respectively: 29 IOCP asynchronous transport: Sender, Receiver Buffering and Ordering Thread Manager, Memory Manager Routing Algorithm Code Organization (cont.) Original Used IDE: Eclipse 30 Code Organization Current Used IDE: Qt 31 System Test (cont.) Test Case: Unicast versus Multicast system Different bitrate video sources Test Range: 1 peer localhost (127.0.0.1) loopback 2 peers connect directly 2 peers connect through network 3 peers, 4 peers…… 32 System Test Test Environment: Localhost Self-Contained Network Realistic Network Test Packets loss tool: Wireshark (Telephony) Test Transport Stream packets tool: TSReader MPEG-2 Transport Stream packet analyser 33 Wireshark 34 TSReader 35 MPEG-2 Transport Stream packet analyser 36 Conclusions • Future works 37 Conclusions For enhancing system performance, need to trace the whole project codes to find where the bug is. Will update the prototype to an integrated system. Integrate VLC media player into our system. Compatible with other kind of media players. Find more analysis tools to validate the system results. Hope to use real Live sources (i.e.Camera) when system is stable. 38 References (cont.) J. Liu, S. Rao, B. Li, and H. Zhang,“Opportunities and challenges of peer-to-peer internet video broadcast,” Proc. of the IEEE, vol. 96, no.1, pp. 11-24, Jan. 2008. W. Zhanga, Q. Zhenga, H. Lib and F. Tian,“An overlay multicast protocol for live streaming and delay-guaranteed interactive media,” Journal of Network and Computer Applications, vol. 35, Issue 1, pp. 20-28, Jan. 2012. 39 References Chia-Hui Huang, “Design and Analysis of Application Layer Multicast Routing Protocols,” Unpublished doctoral dissertation, National Taipei University of Technology, April 2013. Wen-Neng Tsai,“Design of a live multimedia streaming system with pull-based P2P transport technology”, Unpublished master dissertation, National Taipei University of Technology, July 2013. Tzu-Tung Liao,“Design of a multisource multimedia streaming system with fast recoverable application layer multicast algorithm”, Unpublished master dissertation, National Taipei University of Technology, July 2013. 40 Thanks for listening 41