In single tree-based P2P video streaming, peers are organized into a single tree-structured overlay through which the content is transferred from the source (the root of the tree) to the nodes. Each node receives data from a parent node and transfers data to one or more child nodes. Some nodes are only receivers. The root is a stream server. This structure is similar to the IP multicast tree formed by routers at the network level.
There are a number of techniques for constructing and maintaining the tree-based streaming structure from a given set of peers. The objective of tree construction is to maximize the available bandwidth between the root and all nodes. Construction methods can be divided into two categories: centralized and distributed.
Centralized Server Tree Structure
In the centralized method, a central server controls the tree construction and maintenance. When a peer joins the system, it must contact the central server. The central server decides where the new participant will be located within the existing tree. The decision is based on the characteristics of the new participant, such as type of network access and physical location.
When a peer leaves the network, the central server must be notified, either by the peer signing out or timing out. In this case the central server decides how to restructure the network topology, and instructs the peers to form the new topology. Having a central server might limit the performance for large streaming networks.
Distributed Tree Structure
The distributed method does not require a central server. Instead, tree construction and maintenance occur in a distributed way. Control messages are sent between peers to organize the tree maintenance. The bandwidth required for these control messages depends on how often the tree is reconfigured. Reconfiguring the tree may take a long time since the peers must negotiate a new structure. Each peer must buffer enough data to prevent playback disruption when the tree is reconfigured.
In a single tree live streaming approach, any given peer only receives streams from one source. Each peer maintains information about a small random subset of peers, as well as information about the path from the source to itself.
A new peer joins the broadcast by contacting the source and retrieving a random list of peers that are currently in the tree. Then it analyzes each of those peer’s characteristics and selects one of them as its parent. If the parent can’t match the source rate, it chooses a new parent by probing a random subset of nodes it knows about. The probing is optimized to pick nodes that have not been probed or have low delay.
Hierarchical or Cluster Tree Structure
One popular approach to single tree live streaming with a large number of peers is the hierarchical approach. The set of nodes is arranged into clusters based on the round trip time between nodes. Each cluster chooses a cluster leader. The set of cluster leaders from one level of the hierarchy forms the next level. Each node keeps detailed state information about other nodes that are nearby in the hierarchy, and only has limited knowledge about other nodes. The hierarchical structure helps to localize the consequences of node departure. It also creates trees with a small number of hops between content servers and receivers.
In the hierarchical structure, nodes could be organized into clusters where each cluster has a head and an associate head. The head is responsible for organizing the members of the cluster, and the associate head is responsible for transmitting content to the members. If the head fails, content service is not affected. If the associate head fails, the head can designate a new associate-head quickly, so the disruption is minimal.