The rapid development of network communication infrastructure enables networked multimedia streaming applications ranging from on-demand video streaming to highly interactive video conferencing. Peer-to-Peer (P2P) technologies have emerged as a powerful and popular paradigm for bringing such emerging multimedia services to a large number of users. The essential advantage of P2P systems is that the system capacity scales up when more peers join, as peer upload capacity is utilized. However, providing satisfactory streaming services over P2P networks is challenging because of their inherent instability and unreliability and the limited adaptability of traditional video coding techniques. On one hand, different from dedicated servers, users may not have enough bandwidth to serve other users as most user connections are asymmetric in their upload and download capacity, and they are heterogeneous in terms of bandwidth and preferences. In addition, users can join and leave the system at any time as there are no guarantees on their contribution to the system. On the other hand, although traditional video coding techniques are efficient in terms of resource consumption, compression ratio, and coding and decoding speed, they do not support scalable modes efficiently as such modes come along with high computation cost. Consequently, in traditional P2P streaming systems, the bit rate (the video quality) of media streams is determined based on the capacities of the low-end users, i.e. the lowest common denominator, to make sure that most of their users can perceive acceptable quality. This causes two critical limitations of the current P2P streaming systems. First, users perceive the same quality regardless of their bandwidth capacity, i.e., no differentiated QoS. Second, with the current best-effort Internet and peer dynamics, the streaming quality at each peer is easily impaired, i.e., no continuous playback.
Recently, multiple layer codec research has become more refined, as SVC (the scalable extension of the H.264/AVC standard) has been standardized with a bit rate overhead of around 10% and an indistinguishable visual quality compared to the state of the art single layer codec. The hypothesis of this research work is that the adaptable coding technique can bring significant benefits to P2P streaming as it enables adaptability in P2P streaming. In addition, to improve the robustness of the system to network fluctuations and peer dynamics, network coding and social networking are also applied. The overall goal of this research is to achieve adaptive and robust P2P streaming services, which are believed to be the next generation of P2P streaming on the Internet. Several major contributions are presented in this dissertation. First, to use SVC in P2P streaming, a segmentation method to segment SVC streams into scalable units is proposed such that they can be delivered adaptively by the P2P paradigm. The method is demonstrated to be able to preserve the scalability features of a stream, i.e., adaptation can be applied on segments and the re-generated stream at each peer is a valid stream. Second, a novel and complete adaptive P2P streaming protocol, named Chameleon, is presented. Chameleon uses the segmentation method to use SVC and combine it with network coding in P2P streaming to achieve high performance streaming. The core of Chameleon is studied, including neighbor selection, quality adaptation, receiver-driven peer coordination, and sender selection, with different design options. Experiments on Chameleon reveal that overlay construction is important to system performance, and traditional gossip-based protocols are not good enough for layered P2P streaming. Therefore, third, a SCAMP-based neighbor selection protocol and a peer sampling-based membership management protocol for layered P2P streaming are proposed. These gossip-based protocols are quality- and context-aware as they form robust and adaptable overlays for layered P2P streaming so that high capacity peers have a higher priority to be located at good positions in the overlay, e.g. closer to the server, and peers with similar capacity are connected to each other to better utilize resources. Fourth, to better deal with peer dynamics, Stir, a social-based P2P streaming system, is suggested. In Stir, the novel idea of spontaneous social networking is introduced. Stir users who join the same streaming session can make friends and communicate with each other by cheap yet efficient communication means, e.g., instant messaging and Twitter-like commenting. Such friendship networks are exploited directly by the underlying social-based P2P streaming protocol. The tight integration between the high level social networking of users and the low level overlay of peers is demonstrated to be beneficial in dealing with high churn rates and providing personalized streaming services. Finally, as the approaches are about different aspects of adaptive and robust P2P streaming, to complete the picture, Chameleon++, which combines Chameleon and Stir, is presented. The design and the evaluation of Chameleon++ demonstrate the feasibility and the benefits of the approaches, and the consistency of the study.