Utility Maximization in P2P Systems

Peer-to-Peer (P2P) applications have witnessed unprecedented growth on the Internet and are increasingly being used for real-time applications such as video conferencing and live streaming. The design of the majority of P2P systems today, however, does not strive to achieve any systematic optimization of the total value to all peers under a resource sharing constraint. This may well be the next step in improving the performance of P2P systems. We study the problem of utility maximization in P2P systems in which aggregate application-specific utilities are maximized by running distributed algorithms on P2P nodes which are constrained by their uplink capacities. This may be understood as extending Frank Kelly's seminal framework from single-path unicast over general topology to multi-path multicast over P2P topology, with network coding allowed. For certain classes of popular P2P topologies, we show that routing along a linear number of trees per source can achieve the largest rate region that can be possibly obtained by (multi-source) network coding. This simplification result allowes us to develop a new multi-tree routing formulation for the problem. We develop Primal and Primal-dual distributed algorithms to maximize the aggregate utility of all receivers in all groups by multi-tree routing and show their exponentially-fast convergence to the optimal solution. The Primal-dual algorithm can be implemented by utilizing only end-to-end delay measurements between P2P nodes; hence, it can be readily deployed on today's Internet. To support this claim, we implement the algorithm for use in a peer-assisted multi-party conferencing system and evaluate its performance through experiments on a LAN testbed and the Internet. This approach offers low end-to-end delay, low complexity and fast convergence along with automatic adaptation to dynamic network conditions and video stream characteristics. Moreover, we systematically extend the optimal tree structure for single-rate P2P content delivery to handle the multi-rate case where different receivers in the same group can receive data at different rates and we show its performance in a video-conferencing application using scalable layered coding.