Implemenation and Performance Evaluation of Real-time Peer-to-Peer Video Streaming System
Introduction
P2P networks require installing an application on Internet-connected computers, which become nodes, or peers, that communicate with one another. The nodes create large, interconnected networks through which files are transferred. P2P users can see lists of files that are available on other nodes in the network and can submit a request to the network for any available file.
In some services, the entire file is transferred from one peer computer to the requestor. With other protocols, such as Bit Torrent, different parts of a file are downloaded from multiple nodes on the network and reassembled on the requestor’s computer, further improving the efficiency of file transfers by reacting to moment-by-moment fluctuations in network traffic.
Peer-to-peer (P2P) technology has been recently exploited to offer video service over IP (P2P-TV), as for example done by PPLive, Sop Cast, TV Ants, CoolStreming/UUSee, and TVUplayer to name a few commercial systems .In a traditional P2P-TV system, a video source chops the video stream into chunks of data, which are then exchanged among nodes distributing them to all participating peers. Peers form an overlay topology at the application layer, where neighbor peers are connected by virtual links over which chunks are exchanged using the underlying IP network. Two networking layers can be identified: the overlay layer in which peers exchange content, and the IP layer, in which routers and links transfer the packets.
In traditional P2P systems, only two main actors can be identified: the network providers and the application users; and their interests are often in contrast. In the case of P2PTV, a new main actor comes into play: the content producer, whose interests are mainly in distributing its contents through the Internet in the safest possible way, thus avoiding every possible problem, either technical or legal, which could induce users to migrate away. This is a major shift with respect to today P2P applications, where users provide contents, a shift that provides further incentives for network operators to cooperate with the content providers and the users to successfully deliver the video. Note that cooperation between network providers and P2P applications has been already investigated in the context of file sharing P2P applications but it has never been applied in the context of P2P-TV system design and performance evaluation. The project is proposing an innovative network cooperative P2P-TV architecture that explicitly targets the optimization of the quality perceived by the users while minimizing the impact on the underlying transport network. The focus is on the study, design and development of a P2PTV system, in which peers setup a generic mesh based overlay topology, over which video chunks are exchanged according to a swarming-like approach. A source peer produces the video stream, chops it into chunks, and injects them in the overlay where peers cooperate to distribute them.
An important element of the cooperative P2P-TV system is represented by the built-in distributed monitoring tool that allows the application to continuously gather real time information both on network conditions and users’ perceived performance. Information collected by the monitoring tool can be used to trigger reconfiguration algorithms acting both at the level of the chunk distribution mechanism (scheduling) and at level of the overlay topology reconfiguration. In addition, potentially useful information on the system state can be also exported to the network, so that it is aware of the status of the P2P-TV system. The architecture we propose also allows the network layer to expose useful information to the application layer.
Introduction
Peer-to-peer (P2P) is an approach to content distribution in which digital files are transferred between “peer” computers over the Internet. In a client/server structure, servers store content and, when requested, send that content to client machines—a one-to-many distribution model. With P2P, the client machines are peers and communicate with one another. A computer in the network can submit a request for specific content, and any peer in the net work that has a copy of the file can send it, resulting in a many-to-many model that does not rely on a central repository.
P2P networks require installing an application on Internet-connected computers, which become nodes, or peers, that communicate with one another. The nodes create large, interconnected networks through which files are transferred. P2P users can see lists of files that are available on other nodes in the network and can submit a request to the network for any available file.
In some services, the entire file is transferred from one peer computer to the requestor. With other protocols, such as Bit Torrent, different parts of a file are downloaded from multiple nodes on the network and reassembled on the requestor’s computer, further improving the efficiency of file transfers by reacting to moment-by-moment fluctuations in network traffic.
Peer-to-peer (P2P) technology has been recently exploited to offer video service over IP (P2P-TV), as for example done by PPLive, Sop Cast, TV Ants, CoolStreming/UUSee, and TVUplayer to name a few commercial systems .In a traditional P2P-TV system, a video source chops the video stream into chunks of data, which are then exchanged among nodes distributing them to all participating peers. Peers form an overlay topology at the application layer, where neighbor peers are connected by virtual links over which chunks are exchanged using the underlying IP network. Two networking layers can be identified: the overlay layer in which peers exchange content, and the IP layer, in which routers and links transfer the packets.
In traditional P2P systems, only two main actors can be identified: the network providers and the application users; and their interests are often in contrast. In the case of P2PTV, a new main actor comes into play: the content producer, whose interests are mainly in distributing its contents through the Internet in the safest possible way, thus avoiding every possible problem, either technical or legal, which could induce users to migrate away. This is a major shift with respect to today P2P applications, where users provide contents, a shift that provides further incentives for network operators to cooperate with the content providers and the users to successfully deliver the video. Note that cooperation between network providers and P2P applications has been already investigated in the context of file sharing P2P applications but it has never been applied in the context of P2P-TV system design and performance evaluation. The project is proposing an innovative network cooperative P2P-TV architecture that explicitly targets the optimization of the quality perceived by the users while minimizing the impact on the underlying transport network. The focus is on the study, design and development of a P2PTV system, in which peers setup a generic mesh based overlay topology, over which video chunks are exchanged according to a swarming-like approach. A source peer produces the video stream, chops it into chunks, and injects them in the overlay where peers cooperate to distribute them.
An important element of the cooperative P2P-TV system is represented by the built-in distributed monitoring tool that allows the application to continuously gather real time information both on network conditions and users’ perceived performance. Information collected by the monitoring tool can be used to trigger reconfiguration algorithms acting both at the level of the chunk distribution mechanism (scheduling) and at level of the overlay topology reconfiguration. In addition, potentially useful information on the system state can be also exported to the network, so that it is aware of the status of the P2P-TV system. The architecture we propose also allows the network layer to expose useful information to the application layer.