• No results found

2.3.   Peer-to-Peer Networks

2.3.3.   Types and Classifications of P2P Systems

The numerous designs for P2P networks have led to many proposals for classification [2]. One of the common distinctions is to categorize P2P overlays into structured and unstructured overlays. Structured overlays are distinguished by a variety of dimensions such as the maximum number of hops, the routing algorithm, or the size of overlay with node degree and lookup type. Moreover, structured overlays use key-based routing to facilitate object placement, where the nodes maintain a routing table about how to reach the entire overlay nodes. Furthermore, unlike unstructured overlays, they limit the number of messages needed to discover any specific object in the overlay. Examples of structured overlays are Chord, Kademlia and Pastry. Contrasting with structured overlays, unstructured overlays are usually further distinguished by how search requests propagate, by the distribution of node degree in the peer population, and by differences in link creation with neighbouring nodes. Nodes in unstructured overlays depend only on their adjacent nodes for propagating messages and do not impose any particular network structure. Most commonly, message propagation strategies use to some extent flooding and random walk approaches [26]. Most deployed P2P applications employ unstructured search techniques [27]. More recently, research has focused on the design of efficient search algorithms, including query propagation and query processing.

Various proposals for the classification of P2P systems are based on the different design of P2P networks. One design involves completely decentralized architecture while other design combined servers with P2P routing.

The classification of P2P overlays is shown in Figure 2.1 below:

Figure 2.1: Classification of P2P Overlays [2]

2.3.3.1.   Structured Overlay

A structured P2P network is a network in which nodes maintains routing information about reaching all other nodes in the network cooperatively [28]. Structured overlays set a limit on the number of message that can be used to propagate a query in the network [29]. As compared with unstructured overlays that do not provide any limit on query propagation in the network.

This becomes important particularly while searching low priority queries [16].

Local routing information is maintained by each node which is used by the forwarding algorithm. A specific bootstrap procedure is utilized to initialize the routing table when a peer joins or leave the overlay. The routing table information is periodically exchanged by the peers as part of overlay maintenance.

The structured P2P overlay can use key-based routing in which each address is associated with a set of keys in the address space so that the nearest peer to an address stores the values of the associated keys. Since address space is virtualized and the addresses of peers are randomly assigned, the topological neighbours of the peer are distant in the underlying overlay network.

Although it provides fault tolerance, it nevertheless has a significant performance overhead.

As a result, the topology-aware overlays used measurement of proximity of peers in the underlying network to create neighbour peer in the network [30].

2.3.3.2.   Unstructured Overlay

In contrast to structured overlays, unstructured overlays do not impose any specific structure on the overlay itself. Unstructured overlays are usually classified by how the search requests propagate, by the distribution of node degree in the peer population, and by the differences in link creation with neighbouring nodes. Nodes in unstructured overlays depend only on their adjacent nodes for the propagating of messages [27]. The lack of structure poses many challenges especially when searching the network. To solve this issue, many search approaches [31] have been introduced and can be classified as follows:

•   Blind Search Methods: Is used in overlays in which the peers do not maintain any information about the location of resources.

•   Informed Search Methods: In contrast to the blind search technique, informed search methods require peers to maintain further routing information about other peers in the network in order to forward queries to the appropriate peer.

The search is the most fundamental function of most deployed P2P overlays, and most of the studies of unstructured P2P tend to enhance the search process and design it more efficiently.

An unstructured network is a network in which a peer relies on its neighbouring peer for the delivery of message to any other peer in the network. Example of message propagation strategies are Flooding (broadcasting the search query to its immediate neighbours) [1] and Random walk (forwarding the query to a randomly selected neighbor at each step until the query is satisfied with sufficient responses) [31]. A description of the message propagation strategies is provided in Section 2.3.1 in the context of Gnutella protocol.

The unstructured network graph can be compared with power-law or scale free random graphs [32] where random graphs are the graphs showing small world phenomena and social networks. The most common P2P overlay network designs are listed in Table 2.1:

Table 2.1: Unstructured P2P Overlays

Type Design Features References

Hill climbing backtracking

Freenet Routing and security can be provided using hill climbing

with backing [33]

Hill climbing backtracking

Fast Freenet Each peer creates its own summary and share it with

other peers in Fast Freenet. [33]

Hill

Free net considering a small network [34]

Random

Walk GIA

Based on four amendments and techniques such as active flow control, dynamic topology adaptation, biased random walk and one-hop index replication to improve performance

[16]

Random

Walk LMS Consistent hashing of object identifier to place objects

near a close node identifier [35]

Flooding Gnutella Flooding of requests by super peers on behalf of regular

peers [36]

Flooding FastTrack Connection shuffling with super peer architecture being

a proprietary protocol [37]

2.3.3.3. Hybrid Overlays

Hybrid overlays refer to a mixture of purely decentralized such as Gnutella protocol and centralized such as Kaaza protocol. A hybrid approach is followed by Gnutella protocol 0.6 [38] by combining centralized and decentralized models. The nodes of overlay are categorized as leaves and ultra-peers. An ultra-peer keeps connection to fewer leave nodes and connected to other ultra-peers. These peers work as proxy for query directing to leave nodes with the believe that the leave nodes will response the query.

2.3.3.4. Hierarchical Overlays

Hierarchical overlay networks can be represented structured P2P networks look up service [39]. The service is based on distributed hash table (DHT) functionality. The data is search based on keys which are distributed on multiple serving nodes. In contrast hierarchical DHTs, in which peers are organized into groups, and each group has its autonomous intra-group

overlay network and lookup service. The top level peer in each group takes the responsibility for a key and determines the specific peer which is responsible for the key.