• Tidak ada hasil yang ditemukan

Comparing structured and unstructured protocols

Peer-to-Peer Protocols

3.2 Overlay networks

3.2.4 Comparing structured and unstructured protocols

age freeloaders (that is, people who seek to benefit from the system but do not wish to contribute resources) by providing quicker download times for those that share data for others [45]. Figure 3.8 shows the relationship between a tracker, a torrent and peers in a BitTorrent network.

Figure 3.8: BitTorrent architecture. Source: [45].

node, which means that some other protocol or mechanism must be used to achieve this. In the joining process, the new node learns who its neighbours are and populates its routing tables so it can reach them, and those nodes in turn learn of the existence of the new node and update their routing tables as well. This establishes reachability for passing messages to the new node, but does not yet perform the SIP address mapping. DHTs are lookup and routing systems and do not natively support insertion of data sets. However, in section 3.2.1.1, a module called DHASH was described that implements a distributed storage system based on Chord. This proves that it is possible to exploit the routing algorithms in DHTs by using an application layer to insert data at the node where the hash of the key is closest to the node ID. Building upon this logic, it would be possible to store a copy of the contact address of the joining node in some abstract form, at the node whose ID is closest to the hash of the AOR.

Unstructured overlays are also challenged by this first node problem, but they usually do provide discovery mechanisms. A technique that is commonly used is that of a central host cache such as the GWebcache in Gnutella networks which caches a list of nodes that are known to have been online in the recent past. This suffers from the problem of having stale entries in the host cache that causes either delays or the inability of nodes to join. Unstructured overlays often leverage these types of systems by keeping a local cache of reliable nodes which have been discovered which can be used in subsequent attempts to join the system, such as the UDP Host Caches [48]

in Gnutella networks. Unstructured overlays are very well suited for distributed resource storage, which is what makes them popular in file sharing applications.

3.2.4.2 Location service

The location service is an abstract data service that stores the location bindings of UAs and exposes them to entities that need to access them. For structured protocols, an application layer can be built over the DHT and be used to facilitate the insertion of a registration record which can be appropriately stored in the overlay. Over a period of time, as more nodes begin to join and register their addresses, a larger location service is built up. Hashing functions such as consistent hashing also ensure that the load is distributed equally among all the nodes that are participating in the overlay. However, in addition to simply populating the location service with registrations, nodes also need to retrieve those bindings which are necessary for session establishment (see Figure 2.4). The application layer could be extended to provide a retrieve function that returns the values stored at the owner of the key. Additionally, a location service must also be able to update and remove those bindings, such as when users become available elsewhere or when they

leave the network. Further extension of the application layer could be made to provide update and remove functions to perform these duties.

Unstructured overlays are primarily used for content distribution, and therefore in theory, can also be used to implement a location service for SIP. Nodes would be able to use unstructured protocols to store bindings, in file format for example, across the overlay. However, the storage of data items in these types of overlays is independent of any structured rules, therefore there is no deterministic way of locating stored data. Typically, flooding methods are used to perform the search for data items in the network, which means that query requests consume much bandwidth.

Such a solution does not scale well with system size [45]. Unstructured overlays are more suited for content distribution applications such as file sharing, in that they can support complex queries to match patterns in a resource name, such as a search for a data file based on a substring of its actual name [49]. SIP location queries are not usually in the form of a complex query, but in the exact SIP AOR of the user who is to be contacted such as when a user selects an entry in a contact list.

3.2.4.3 Proxy

The function of a proxy is to behave as both a server and a client in order to make requests on the behalf of other clients. To support the different types of multimedia services that were described in section 2.4, essentially the role of the proxy is to route messages between users and where necessary, consult the location service to determine the location of the target user. In a DHT environment, it is possible to decentralise the role of the proxy by distributing it over all the nodes in the overlay such that any node is able to receive a message in the form of a key, and use its routing tables to route the request closer to the owner of that key.

Unstructured overlays that do not use central nodes such as BitTorrent trackers are more appeal- ing since they avoid the problem of a single point of failure. It was for this reason that a recent BitTorrent client named Azureus decentralises the traditional BitTorrent tracker, by embedding DHT logic in the client nodes [50]. Where a central node is not used, flooding techniques are used to flood the neighbour nodes that proxy the request further through the network. Some unstructured overlays such as KaZaA use super nodes which could be used as a better proxy solution whereby the super overlay of super nodes decentralise the SIP proxy server among a limited set of overlay nodes. This would ensure that only a small number of nodes are flooded.