Gnutella

Gnutella (pronounced [ nʊtɛlə ] with a silent g) is a decentralized peer-to -peer network protocol for file sharing. There are several million users who access different clients on the network world. The most widely used and best-known client was a long time LimeWire. Despite the name, Gnutella is not part of the GNU project.

The follow-up protocol is Gnutella2

History

The Gnutella protocol (inventor and former developer of audio playback program Winamp ) defined by Justin Frankel, the first software for the Gnutella network, the beta version of the program also designated Gnutella released for free download on the Internet on 14 March 2000. However, Frankel's employer AOL forced him after a short time to abandon the project and not to publish the program. The program, however, was already widespread at this time and continue to be available through IRC chat rooms and third-party websites.

Some time later, a group of independent developers to decrypt the Gnutella protocol and to publish their results. Subsequently, numerous other programs for the Gnutella network have been developed which also expanded the scope of the network significantly.

In May 2006, the Gnutella network scored an estimated 2.2 million users.

Background

Example and incentive for the Gnutella network in much of the central peer-to -peer network Napster, which allowed for a direct exchange of music files since June 1999. However, due to the predominantly illegal content exchanged the operating company Napster became more and more common in legal conflicts. Frankel's motivation to build a network that unlike Napster without a central server and thus even without a central operator, against the legal charges could be levied should get along was.

Technology

The Gnutella network is a completely decentralized network. This means that each user uses an equivalent software and there is no central server, which process the queries. To work anyway, the client program must have at least one other user ( called node) find. To achieve this, there are various methods such as pre-defined server lists, GWebCache pages on the Internet or the exchange of host - lists of IRC. If a connection is established, the programs will exchange lists of accessible nodes, which are then contacted again until the set number of connections is reached.

If a user starts a search of the network, so this is first forwarded to neighboring clients. This in turn then forward the request to their neighbors, until the requested file is found. Then, a direct connection between a searching and anbietendem user for data transfer are made.

The particular advantage of this network structure is the failure risk as search queries can be forwarded even if some parts of the network are temporarily unavailable. The disadvantage, however, is the long duration of the search query, as there is no central index server, and the high network load, since the distance to seeking client increases the number of requests exponentially.

In recent years, the Gnutella network, however, has been developed significantly, so that the efficiency was significantly increased. Examples are the QRP, replace with the sources which files they have, so that on the last two steps, the requests are forwarded only to those who may be able to respond, and dynamic queries, which not asked all the neighboring systems at once This can only be so many, were obtained until enough results.

Software

  • BearShare - Microsoft Windows, closed source, development closed in 2005, sold to iMesh since May 4, 2006.
  • FileScope -. Microsoft Windows, NET, open source (GPL ), C #, expandable network, no Spy-/Adware, supports Gnutella, Gnutella2 (including stroke mode), ed2k, and OpenNap
  • Gnotella - Microsoft Windows 2001 development set
  • Gnucleus - Microsoft Windows, open source (GPL ), C , supports Gnutella2
  • KCeasy - Microsoft Windows, Open Source also supports Ares and OpenFT
  • Morpheus - Microsoft Windows, closed-source, extensible network, contains adware / spyware
  • Shareaza - Microsoft Windows, open source, extensible network, supports Gnutella, Gnutella2, eDonkey2000 and BitTorrent
  • Xolox - Microsoft Windows, including Fast Track and ED2K (Website xolox.nl just parked and full of advertising links )
  • Acqlite - Mac OS X
  • Acquisition - Mac OS X, closed source ( Shareware)
  • Gtk- gnutella - Unix, Open Source (GPL ), C
  • Mutella - Unix, open source command line based,
  • Cabos - Mac OS X and Microsoft Windows, Open Source, is based on LimeWire and Acquisition.
  • Phex or I2Phex - platform independent, open source ( GPL ), Java
  • LimeWire - platform independent, open source ( GPL), Java, pending the judicial blocking mostly unused Gnutella client
  • MLDonkey up to version 2.8.7 - platform independent, open source ( GPL), Objective CAML, expandable networks

Development

The Gnutella protocol is constantly being improved by new extensions. For one, the functionality of which is hereby extended to other attempts with sophisticated algorithms to reduce the required bandwidth and to improve the stability.

These include:

  • Classification Ultrapeer and leaf nodes
  • Query Routing Protocol ( QRP )
  • Horizon Statistics ( HSEP )
  • Active and passive queues for file transfers
  • Compression of P2P connections (Link Compression Extension)
  • Propagate alternative file sources via the so-called mesh download
  • Download verification with Tiger Tree hashes
  • Meta-Data

Many Gnutella clients are open source software. Accordingly, it is possible to participate in the development of the clients themselves.

Successor

The Gnutella protocol has some conceptual weaknesses that can not be eliminated without breaking compatibility. As an extension of Gnutella, which aims to address these weaknesses, networks are often perceived by the Kademlia algorithm, such as designed by the developers of LimeWire mojito DHT, which is, however, currently used only for source identification. When based on Kademlia networks, there is also no central server, but is for every single conceivable query each a certain " contact" constructed, which is for this query " in charge". This is avoided in Gnutella -standing problem that virtually every search query needs to access any computer, even if rare files should be found successfully. In return, however, the blurred Search by keyword was designed for Gnutella, heavier efficient to implement with Kademlia, as only Finding exact values ​​are possible while in Gnutella all hits will be returned to the match the search words. In this context, one speaks of Gnutella is also of an unstructured overlay, while it is a structured overlay in Kademlia.

2002, up to the old handshake newly invented Gnutella2 protocol was published, which is not recognized by the Gnutella developer community as a follow-up protocol. Since it is incompatible with the Gnutella, it is considered as an independent protocol, although both networks remain intertwined by the same handshake. According to his developing the protocol scales better than Gnutella, because it has more efficient search mechanisms and can be extended almost indefinitely by its specific packet structure without compatibility loss. In addition, it is stated that it is easier to get a Gnutella2 client to redesign, as a Gnutella client with comparable skills. Gnutella developers disagree with the statement about the scalability and efficiency, however, and argue that the same extensibility in Gnutella is already given by EGEP extensions.

270184
de