Mutualcast is a one-to-many (peer-to-peer) scheme for content distribution that maximizes the overall throughput during a broadacast session. It is based on a fully-connected graph (full mesh topology), which introduces benefits such as robustness or simultaneous transmission from/to multiple devices. The main disadvantage of Mutualcast is scalability; it is constraint to a small P2P group for content distribution. In this paper, we make Mutualcast scalable. We propose a highly collaborative and scalable P2P tree-based architecture made of two main components: 1) Peer grouping or clustering and 2) Hierarchical tree-based content distribution. In step 1), peer nodes (content receivers) are grouped into equal-size clusters by using a proposed heuristic size-constrained algorithm based on k-means. In step 2), clusters (which become the nodes of the tree) are organized into a single hierarchical n-ary tree-based architecture, in which the root of the tree (Root Cluster) is the one closest to source peer, while intermediate and leaf clusters are positioned in the tree according to their delay-proximity to previously inserted clusters. During content distribution, the root cluster receives the blocks of content before any other cluster in the tree and directly from (and only from) the source peer; blocks are then passed on to the next hierarchical level down the tree in order (higher levels of the tree receive the content before lower levels). Inter-clusters and intra-clusters content distribution is performed concurrently and takes into account peers upload/download capacities to relay blocks of content. The evaluation of our hierarchical P2P architecture concentrates on the following metrics: scalability of the systems, overall end-to-end delay distribution, and efficient cluster size. Finally, our architecture is compared against two well-known P2P technologies in the literature, Super-Peer and Kademlia.
Read full abstract