3 ESCUELA DE INGENIERÍA DE LA UNIVERSIDAD CATOLICA DEL NORTE
3.6 Proyecto Convenio Desempeño: “Reinventando las Ingenierías de la UCN”
3.6.1 Contexto MINEDUC
Peer-to-Peer (P2P) networking is a paradigm where end-hosts communicate di- rectly with each other, in opposition to the client-server model. In the latter case, multiple clients connect to the same server, whereas in a P2P network each client can connect to any another participating client in order to share a resource. As such, a P2P network is self-organising; clients can leave and join as they wish, and the topology will change to match. This behaviour is ideal for the delivery of content as distribution scales naturally (as more participating nodes join) without the need to also increase server provision.
In a content delivery scenario, a client requests content from other participat- ing nodes, assuming that they hold a copy of this content. In order to increase the fidelity of such a request, content is often separated into smaller chunks; a client may not necessarily hold all of the chunks that represent a file, but they can still participate in the sharing of the parts of the content that they do hold. There are a number of variations found in P2P networks [57], including the level of centralisation and the structure of the network. For example, a P2P network can be fully decentralised, which is where each node has an equal role in the network. Another approach is to partially centralise the P2P network,
and have a number of nodes act as supernodes. These supernodes may preform
additional functions, such as storing a hash-table containing the nearby location of various chunks of content.
A hybrid approach can also be taken, whereby a centralised server is respon- sible for facilitating the connections between clients, storing meta-data collected from each so that it can correctly direct a request. The formation of the network can also vary: unstructured networks are formed without consideration for the location of content. In order to find the location of a required item of content, a node must search amongst all the nodes until their request is satisfied. As this is somewhat of a random search, the time taken to do so is indeterminate. Clearly, in cases where many hundreds or thousands of clients are searching for content simultaneously, this can produce a significant overhead, especially in cases where the content is scarce and the chances of finding it narrow [123].
A solution to this is to use a structured network, in which an overlay topology is used to direct requests to a specific node which either holds the content, or knows where a copy is located. Technologies such as Chord [161], a distributed lookup protocol, enable a relationship to be made between a key and a node. If a key is associated with an item of content, this can be used to locate the item in the network. This addresses the responsiveness and efficiency of searching, although maintaining the required information can be difficult in networks with a high turnover of clients. Other previous work [84] has highlighted P2P networks as a strong candidate for fault-tolerant delivery platforms, allowing clients to recover from failures quickly.
P2P technology can also be used in a live streaming context, and has been deployed as viable alternative to unicast IPTV services [102]. However, in the case of video playback, there is an additional constraint in that the content needs to arrive in a particular order, in opposition to a bulk file transfer (such as in a file sharing network) where the order is irrelevant. This stands true for both live and on-demand video; live because the user will not receive a true real-time experience if the sequencing does not occur, and on-demand because the user will typically watch the video from the beginning (and thus those initial segments should be retrieved first).
The necessity for ordered chunk delivery in an on-demand context is high- lighted in [58], to which they propose a system of network coding, segment scheduling, and topology management in order to address some of these chal- lenges; failure to correctly determine the connectivity and content availability in a P2P network can lead to issues during playback. In [124], these challenges are overcome by accurately deriving peer connectivity and devising a random mesh to ensure content is delivered efficiently.
For a device to also serve content to other participants, it must also be stored for a period of time. This is the case regardless of whether the content is to be consumed live or on-demand. A P2P distribution network relies on this storage to operate, which offloads some of the cost in infrastructure necessary to operate in a client/server model [75, 106]. The storage requirements, and indirectly the length of time necessary to store content, differ depending on the context: on-demand usually requires a larger capacity coupled with greater persistency, whereas live P2P streaming can be achieved using a much smaller storage allocation, given that content needs be retained for a much shorter period of time.
There are a number of approaches to P2P streaming, which are broadly di-
vided into two main categories [125]. The first approach is to use a mesh-based
approach, which is similar to that used for conventional file sharing (such as BitTorrent) and video-on-demand content. There is an alternative approach in
tree-based streaming: this organises peers into multiple trees using an overlay mechanism. Each of the trees is designed to be balanced amongst peers, stable (as to avoid peer churn) and short. A peer may belong to multiple trees, with content disseminated from the top of the tree structure. If a peer does not have the required bandwidth to forward the content to the underlying peers, then they do not receive the content.
Regardless of the playback method, the inherent resource requirements can be problematic on a resource-constrained device such as a set-top box or mobile phone, where storage is always at a premium. A P2P network also requires the user to also share their bandwidth capacity so that others may retrieve the content from them. It can be difficult to incentivise users to do this, particularly when it is a relatively scarce resource (as in the case of ADSL networks) [120]. P2P traffic can also be difficult to manage and predict due to its opportunistic behaviour and is often seen as unfriendly to ISPs [113]. It has also proven to be incompatible with many firewalls and network address translators [80], further lessening its potential usefulness.