University of derby
Peer-to-peer (P2P) systems are popularly used as “file-swapping” networks to support distributed content sharing. A number of P2P networks for file sharing have been developed and deployed. Gnutella is among the most popular P2P systems. This chapter presents a broad overview of P2P computing and concentrates on Gnutella I in the context of Web Services discovery. It also emphasizes on the analysis of a revised mechanism that can achieve the ping pong message exchange objectives but with less network traffic. In addition, these chapters also suggest method in detail and provide lines of reasoning as to why it could.
Gnutella is a communications protocol for distributed search. Whilst the Gnutella protocol supports a conventional client/centralized server search prototype, Gnutella's is its peer-to-peer, decentralized model. In this framework, every client is a server and server is a client. Gnutella servents execute the same jobs typically related to both clients and servers. They provide client-side interfaces through which users can issue queries and view search results, while concurrently they likewise accept queries from other servents, check for matches against their local data set and reply with relevant results. A network of servents that implement Gnutella protocol is extremely fault-tolerant, as functioning of the network will not be cut off if a subset of servents goes offline, due to its distributed nature.
The tasks of this project are:
(a) Project an overview of the Gnutella I protocol principles and functionality and identify and explicate two advantages and two disadvantages in utilizing Gnutella for web accommodations revelation.
(b) Come up and describe a revised mechanism that can achieve the ping pong message exchange objectives but with less network traffic and to suggest method in detail and provide logical arguments as to why it could.
2.0 Overview of the Gnutella I Principles and Functionality
Servent: A peer or node participating in the Gnutella network is called a servent. But refers to a network participant rather than a program. When a servent has a clear client or server role the words "client" or "server" may be utilized. The word “Servent” is conned from SERVer and cliENT.
Message: Messages are the entity in which information is transmitted over the network. The traditional server–client network “packet" is utilized with the same meaning Gnutella network "descriptor"
GUID: Globally Unique IDentifier. This is a 16-byte long value composed of arbitrary bytes, whose purpose it is to identify servents and messages. This id is not a signature, just a way to identify network entities in a unique manner.
2.2 Protocol Definitions
The Gnutella protocol defines the way in which servents communicate over the network. It consists of a set of messages utilized for communicating data between servents and a set of rules governing the inter-servent exchange of messages. Currently, the following messages are defined:
Ping Used to actively discover hosts on the network. A servent acquiring a Ping message is expected to respond with one or more Pong messages.
Pong The replication to a Ping. Includes the address of a connected Gnutella servent, the auscultating port of that servent, and information regarding the amount of data it is making available to the network.
Query The primary mechanism for probing the distributed network. A servent acquiring a Query message will respond with a Query Hit if a match is found against its local data set.
QueryHit The replication to a Query. This message provides the recipient with enough information to acquire the data matching the corresponding Query.
Push A mechanism that sanctions a firewalled servent to contribute...