410 likes | 550 Views
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 )
E N D
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
Introduction Client-Server Network Content Delivery Network Peer-to-Peer Network Hybrid CDN & P2P Network
Client-Server Network • With increasing network bandwidth, Network transport are not only text or static image, but also audio and video. • The traditional Client-Server architecture can't afford the number of growing users. Server Client
Content Delivery Network • Server Side: Content Delivery Network (CDN) • Replicatethe content from the original content server at its local cache. • Distribute the content to clients. • There are 2 ways to enhance the multimedia access. CDN Servers
Peer-to-Peer Network • Client Side: Peer-to-Peer (P2P) Network • Clientsbecome active associates by transmitting received content to other clients. Peer-to-Peer
Hybrid CDN & P2P Network • Hybrid CDN and P2P Network CDN Servers Peer-to-Peer
Background P2P Streaming System ALM Technique IPM versus ALM
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
ALM Technique • Multiple Connections: • Multiple UnicastUnicast 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.
Overlay Network Conceptual Routing Network Physical Routing Network
IPM versus ALM • IP Multicast • Application Layer Multicast
System Architecture System Concept Diagram Three Subsystems System Block Diagram
System Concept Diagram VLC Client VLC Source Camera Source Camera Client VLC Client
System Architecture (cont.) • Three Subsystems: • Streaming Transfer subsystem • Data Buffering • Ordering • Algorithm subsystem • Set routing information (i.e. Build tree structure) • Determine where the streaming packets transport to • Network Management subsystem • Manage socket connection status • Process multiple asynchronous I/O requests
System Architecture • System Block Diagram
Packet-Delivery Algorithm Push-based System DMFT CDMFT Pull-based System 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.
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)
DMFT Tables • NIT: Neighbor Information Table • Record the distance of each member which is in the group • DFT: Data Forwarding Table • Maintain the routing information
DMFT Flow Chart (1) Member Join (3) Prune Duplicate Path (2) Construct Routing Tree (4) Recover Tree Structure (5) Inquire at regular time
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 hasa cluster head which is responsible for managing cluster members and forwarding multicast data.
CDMFT Hierarchical Cluster Headers Cluster Members
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.
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.
BitTorrentNetwork • BitTorrent download Strategies: • Rarest First • The rarest pieces are transmitted with high priority. • The strategy can use in the two cases. • 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.
Test and Implementation Code Organization System Test Cases Test Tools
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...
Implementation http://projects.tano.si/vlc-qt • Organize Codes: • TestRespectively: • IOCP asynchronous transport:Sender,Receiver • Buffering and Ordering • Thread Manager,Memory Manager • RoutingAlgorithm
Code Organization (cont.) Original UsedIDE:Eclipse
Code Organization Current UsedIDE:Qt
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……
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
Conclusions Future works
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.
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.
References • Chia-Hui Huang, “Design and Analysis of Application Layer Multicast Routing Protocols,” Unpublished doctoral dissertation, National Taipei University of Technology, April 2013. • Wen-NengTsai,“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.