Gnutella2

from Wikipedia, the free encyclopedia

Gnutella2 (short- G2 ) is a decentralized peer-to-peer - network protocol that among other things for file sharing is used. It was published by Michael Stokes in 2002 and is the successor to gnutella . Everything except the old handshake of the gnutella protocol has been redesigned. Thus, a new system has emerged which has different package formats, a different search algorithm and a greatly improved metadata system. Gnutella2 has between 250,000 and 300,000 users depending on the time of day and is best known for its most widely used client, Shareaza .

history

In November 2002 Michael Stokes announced the Gnutella2 protocol in the Gnutella Developers Forum . Immediately afterwards there was a long discourse among the developers. Some believed that the real goal of Gnutella2 was to break completely with the old gnutella-0.6 protocol and finally overcome many of the workarounds that existed. Others, however, were of the opinion (mainly members of the LimeWire and BearShare camps) that this was just a publicity gag and refused any technical support. This group still refuses to name the network Gnutella2 and only speaks of "Mike's Protocol". Another argument that this group brings against the protocol is that the name (by the appended 2) suggests that the protocol is a successor version of the older Gnutella protocol, which is not true because of its otherness.

Strangely enough, the Gnutella2 protocol uses the old "GNUTELLA CONNECT / 0.6" handshake identifier to establish a connection. This is the identifier as it is documented in the gnutella-0.6 specification. There is also a difference of opinion among developers on this point. While some see this as a step to maintain backward compatibility with the old protocol so that gnutella clients can gradually integrate the new protocol into their code, others from the GDF criticize this as an attempt to get a new one at the expense of the gnutella network to establish a standard without any relation to the old network.

After the developers got stuck on their point of view, a flamewar arose pretty quickly , mainly through and around the leading BearShare developer Vincent Falco , so that the contrary sides were cemented even further.

The draft with the specifications was published on March 26, 2003, followed by a few more precise and concrete specifications. Gnutella2 (G2) is not supported by most of the "old" gnutella clients. In contrast, there is a lot of support for the new Gnutella2 clients for the old Gnutella network. Many Gnutella2 advocates claim that this is for political reasons, whereas gnutella (1) people counter that there are technical reasons for this.

functionality

Gnutella2 divides the nodes into two groups. Original leaves and hubs. The blades maintain only one or two connections to the hubs, while the hubs maintain hundreds of connections to the blades and other hubs. When a search query is made, the node first tries - if not already available - to get a list of hubs and then contacts the hubs in this list. He remembers which hubs have already been visited. This continues until the list has been processed or a predefined search limit has been exceeded. This ensures that a user can find a widely distributed file easily and without overloading the network. In theory, it would even be able to track down a single (one-time) file anywhere on the network.

The hubs keep an index and thus know which files each sheet offers. The index, called the Query Routing Table , is a hash table of the search terms. The sheet uploads this list of search terms to the hub, from which the hub generates a combined version with all the keyword lists of the sheets that it maintains. It then sends this combined list to its neighboring hubs in order to reduce the number of forwarded search queries. The hub can thus reduce the required bandwidth, since search queries now only have to be forwarded to certain hubs or pages.

Gnutella2 extensively uses the User Datagram Protocol (UDP) instead of the Transmission Control Protocol (TCP) for its search query packets. The data overhead that would be provided by TCP would make a random motion search system impossible, although of course UDP also has disadvantages, such as, for example, that the sender does not receive any information that the recipient has actually received his message. However, this can be circumvented by sending reply packets.

Protocol characteristics

Gnutella2 uses an extensible binary XML- like package format. This is intended as an answer to the many workarounds in gnutella and is intended to enable future improvements to the network or extensions to be added by individual clients without causing malfunctions in the other or old clients. Many developers claim that this would make it easier to develop a Gnutella2 client than a gnutella client. However, other developers see the Generic Gnutella Extension Protocol (GGEP) as an already existing adequate solution for the problem addressed above.

Gnutella2 uses SHA1 hashes for file identification. Furthermore come Tiger Tree hashes used, so therefore a single file can be reliably parallel from multiple sources (multi-source downloading / swarming) downloaded. This also enables the reliable upload of file parts while the file is being loaded.

In order to be able to offer a robust, complete search system, metadata are used in Gnutella2 for improved naming and evaluation of the content. This means that more diverse quality information can be listed in the search results than would be possible through the mere file name. Nodes can even pass this information on if they no longer have the evaluated file. This allows users to mark viruses or worms and make this information available to other users without having to keep a copy of these viruses or worms on their computers.

Gnutella2 also uses data compression in order to reduce the bandwidth required for the connections.

Clients

Some Gnutella2 clients:

Footnotes and References

  1. Number of participants in the G2 network . Trillinux crawler (G2paranha). Retrieved April 30, 2009.
  2. ^ Gnutella Developers Forum
  3. Shareaza's stake in G2's overlay network . Trillinux crawler (G2paranha). Retrieved September 18, 2008.

Web links