An ant-based rate allocation algorithm for media streaming in peer to peer networks: extension to multiple sessions and dynamic networks
In this paper, we introduce a novel algorithm for rate allocation in media stream- ing P2P networks where multimedia contents are distributed among network members and streamed toward any requesting peer. The proposed algorithm is based on ant-colony optimization. It is capable of handling network dynamism, which is an inherent property of unstructured P2P networks. Another advantage of our algorithm is its ability to get over uncertainties in network state information, particularly the rate of supplying peers that could happen due to lack of accurate measurements. In addition, the suggested method does not rely on any information about the topology of the network. We have investigated both single and multiple streaming sessions scenarios in which more than one peer is receiving media streams from media providers. We show that the suggested algorithm will reach the maximum achievable rate of the network quite fast. A key feature of the proposed algorithm is its low pass filter property, which makes it discriminate between transient and permanent network changes. If the changes are transient, the algorithm easily and rapidly compensates the temporary losses. In cases where the network changes last longer, the algorithm overcomes losses by employing other nodes that have the media stream available. The rate of adaptation is adjustable and must be carefully determined according to network conditions. Moreover, adaption rate is not constant and varies during the streaming session. This results in uninterrupted services for current users in cases where multiple sessions are present in the network. Finally, since we have assumed that fountain codes are used to encode media streams in the P2P networks, the suggested algorithm does not require the user to receive different parts of the streams according to a predefined order and from a specific list of media suppliers. It suffices that the user gets as many stream chunks as necessary, regardless of their order or the fact that not all the media suppliers have all the parts available. In other words, using fountain codes enables us to overcome a big difficulty of P2P media streaming and that is to receive different parts of media streams according to a specific order.