|
The Gnutella2 (G2) peer-to-peer protocol is a reworking of the Gnutella protocol developed mainly by Michael Stokes. A peer-to-peer (or P2P) computer network is a network that relies on the computing power and bandwidth of the participants in the network rather than concentrating it in a relatively few servers. ...
For other senses of this word, see protocol. ...
Gnutella (pronounced: with a silent g, or alternatively ) is a file sharing network. ...
Michael Stokes (Mike) is a C++ programmer working on Shareaza, a multi-protocol client developed for Windows that can access Gnutella, Gnutella2, eDonkey2000, and BitTorrent. ...
Gnutella2 drops all of the old Gnutella protocol except for the connection handshake and adopts an entirely new search algorithm. In mathematics, computing, linguistics, and related disciplines, an algorithm is a finite list of well-defined instructions for accomplishing some task that, given an initial state, will terminate in a defined end-state. ...
History
In November 2002, Michael Stokes announced the Gnutella2 protocol to the Gnutella Developers Forum, which immediately caused a schism among the developers. Some thought the goals behind Gnutella2, primarily to make a clean break with the Gnutella 0.6 protocol and start over so that much of the kludge would be done elegantly, to be impressive and desirable. Other developers, primarily those of LimeWire and BearShare, thought it a "cheap publicity stunt" and discounted any technical merits. Many of that group still refuse to refer to the network as "Gnutella2" and instead refer to it as "Mike's Protocol".[1] Michael Stokes (Mike) is a C++ programmer working on Shareaza, a multi-protocol client developed for Windows that can access Gnutella, Gnutella2, eDonkey2000, and BitTorrent. ...
This article does not cite any references or sources. ...
Limewire is a peer-to-peer file sharing client for the Java Platform, which uses the Gnutella network to locate and share files. ...
BearShare is a peer-to-peer file sharing application originally created by Free Peers, Inc. ...
Curiously, the Gnutella2 protocol still uses the old "GNUTELLA CONNECT/0.6" handshake string for its connections[2] as defined in the Gnutella 0.6 specifications which was criticized by the GDF as an attempt to use the Gnutella network for bootstrapping the new, unrelated network, while proponents of the network claimed that its intent was to remain backwards-compatible with Gnutella to allow current Gnutella clients to add Gnutella2 at their leisure. In computing, Bootstrapping refers to a process where a simple system activates another more complicated system that serves the same purpose. ...
With the developers entrenched in their positions, a flame war soon erupted centering around lead BearShare developer Vincent Falco, who lost his cool and started insulting anybody who did not agree with him,[3][4][5][6] further cementing both sides' resolve. This article is about the Internet meaning of the word flaming. For other meanings, and meanings of the word flame, see Flame. ...
The draft specifications were released on March 26, 2003, and more detailed specifications soon followed. Gnutella2 (G2) is not supported by many of the "old" Gnutella network clients, however many Gnutella2 clients still also connect to Gnutella. Many Gnutella2 proponents claim that this is because of political reasons, while Gnutella supporters claim technical reasons for avoiding the new protocol.[7] March 26 is the 85th day of the year (86th in leap years) in the Gregorian calendar. ...
Year 2003 (MMIII) was a common year starting on Wednesday of the Gregorian calendar. ...
Design Gnutella2 divides nodes into two groups: leaves and hubs. Leaves maintain one or two connections to hubs, while hubs accept hundreds of leaves, and many connections to other hubs. When a search is initiated, the node obtains a list of hubs if needed, and contacts the hubs in the list, noting which have been searched, until the list is exhausted, or a predefined search limit has been reached. This allows a user to find a popular file easily without loading the network, while theoretically maintaining the ability for a user to find a single file located anywhere on the network. Node(Latin nodus âknotâ) is critical element of any computer network. ...
Hubs index what files a leaf has by means of a Query Routing Table, which is filled with single bit entries of hashes of keywords which the leaf uploads to the hub, and which the hub then combines with all the hash tables its leaves have sent it in order to create a version to send to their neighboring hubs. This allows for hubs to reduce bandwidth greatly by simply not forwarding queries to leaves and neighboring hubs if the entries which match the search are not found in the routing tables. This article is about the unit of information. ...
A hash function is a reproducible method of turning some kind of data into a (relatively) small number that may serve as a digital fingerprint of the data. ...
Gnutella2 relies extensively on UDP, rather than TCP, for searches. The overhead of setting up a TCP connection would make a random walk search system, requiring the contacting of large numbers of nodes with small volumes of data, unworkable. UDP, however, is not without its own drawbacks. Because UDP is connectionless, there is no standard method to inform the sending client that a message was received, and so if the packet is lost there is no way to know. Because of this, UDP packets in Gnutella2 have a flag to enable a reliability setting. When a UDP packet with the reliability flag enabled is received, the client will respond with an acknowledge packet to inform the sending client that their packet arrived at its destination. If the acknowledge packet is not sent, the reliable packet will be retransmitted in an attempt to ensure delivery. Low importance packets which do not have the flag enabled do not require an acknowledge packet, reducing reliability, but also reducing overhead as no acknowledge packet needs to be sent. User Datagram Protocol (UDP) is one of the core protocols of the Internet protocol suite. ...
The Transmission Control Protocol (TCP) is one of the core protocols of the Internet protocol suite. ...
Example of eight random walks in one dimension starting at 0. ...
Protocol features Gnutella2 has an extensible binary packet format, comparable to an XML document tree, which was conceived as an answer for Gnutella's many kludges. The packet format was designed so that future network improvements and individual vendor features could be added without worry of causing bugs in other clients on the network[8] . While developers who have come after the flame war have said that this feature makes it much easier to code a client for Gnutella2 than Gnutella[9], Gnutella developers still maintain that the Generic Gnutella Extension Protocol (GGEP) allows for flexible additions to the Gnutella 0.6 protocol. The Extensible Markup Language (XML) is a general-purpose markup language. ...
Gnutella2 employs SHA-1 hashes for file identification and secure integrity check of files. To allow for a file to be reliably downloaded in parallel from multiple sources as well as to allow for the reliable uploading of parts as the file is being downloaded (swarming), Tiger tree hashes are used.[10] SHA redirects here. ...
In cryptography, a cryptographic hash function is a hash function with certain additional security properties to make it suitable for use as a primitive in various information security applications, such as authentication and message integrity. ...
In computer science, hash trees, also known as Merkle (hash) trees or Tiger tree hashes, are an extension of the simpler concept hash list, which in turn is an extension of the old concept of hashing, for instance, a file. ...
To create a more robust and complete system for searching, Gnutella2 also has a metadata system for more complete labelling, rating, and quality information to be given in the search results than would simply be gathered by the file names.[11] Nodes can even share this information after they have deleted the file, allowing users to mark viruses and worms on the network without requiring them to keep a copy. Metadata is data about data. ...
Gnutella2 also utilizes compression in its network connections to reduce the bandwidth used by the network.[10] HTTP compression is a capability built into both web servers and web browsers, to make better use of available bandwidth. ...
Shareaza has the additional feature to request previews of images and videos, though currently no additional clients take advantage of this. Shareaza is a peer-to-peer file sharing client which supports the Gnutella, Gnutella2, EDonkey Network, BitTorrent, FTP and HTTP network protocols and which can handle magnet links, ed2k links, Piolet links, and the now deprecated Gnutella links. ...
Differences between Gnutella2 and Gnutella Overall, the two networks are fairly similar, with the primary differences being in the packet format and the search methodology.
Protocol Gnutella's packet format has been criticised because it was not originally designed with extensibility in mind, and has had many additions over the years, leaving the packet structure cluttered and inefficient.[9] Gnutella2 learned from this, and aside from having many of the added features of Gnutella standard in Gnutella2, designed in future extensibility from the start.
Search Algorithm While Gnutella uses a query flooding method of searching, Gnutella2 uses a walk system where a searching node gathers a list of hubs and contacts them directly, one at a time. This has several advantages over the Gnutella's query flooding system. It is more efficient, as continuing a search does not increase the network traffic exponentially, queries are not routed through as many nodes, and it increases the granularity of a search, allowing a client to stop once a pre-defined threshold of results has been obtained more effectively than in Gnutella. It also increases the complexity of the network and the network maintenance required, as well as requiring safeguards to prevent a malicious attacker from using the network for Denial-of-service attacks. Query flooding is the protocol on which Gnutella operates. ...
Granularity is a measure of the size of the components, or descriptions of components, that make up a system. ...
DoS redirects here. ...
Terminology There is also difference in terminology, with the more capable nodes which are used to condense the network being referred to as Ultrapeers in Gnutella and Hubs in Gnutella2, and they are also used slightly differently in topology. In Gnutella, the Ultrapeers generally maintain a relatively small number of leaves and a high number of peer connections, while Gnutella2 Hubs maintain far more leaves, and fewer peer connections. The reason for this is that the search methods of the various networks have different optimum topologies.
Clients -
Main article: Comparison of Gnutella2 software Free software Gnutella2 clients include: The following tables compare general and technical information for a number of available applications supporting the G2 network. ...
Free software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions only to ensure that further recipients can also do these things. ...
- Adagio (Cross Platform), written in Ada, under the GPL.
- FileScope (Cross Platform), written in C#, under the GPL
- Gnucleus (Windows), written in C/C++, under the LGPL
- Shareaza (Windows), written in C++, under the GPL
- MLDonkey (Cross Platform), written in Ocaml, under the GPL, however as of version 2.9.0, support is officially unmaintained and disabled in the binaries.
Proprietary software implementations include: Adagio is a server-only computer program for the peer-to-peer Gnutella2 network. ...
Look up ADA and Ada in Wiktionary, the free dictionary. ...
Look up C, c in Wiktionary, the free dictionary. ...
In computing, Gnucleus is a popular Gnutella client for the Microsoft Windows platform, released under the GPL license. ...
Shareaza is a peer-to-peer file sharing client which supports the Gnutella, Gnutella2, EDonkey Network, BitTorrent, FTP and HTTP network protocols and which can handle magnet links, ed2k links, Piolet links, and the now deprecated Gnutella links. ...
MLDonkey is an open source, free software multi-network peer-to-peer application. ...
Objective Caml (OCaml) is a general-purpose programming language descended from the ML family, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996. ...
Proprietary software is software with restrictions on copying and modifying as enforced by the proprietor. ...
iMesh is a file sharing and online social network. ...
Kiwi Alpha, a P2P file sharing client for Windows, shares with many of todays leading file sharing networks such as LimeWire, Morpheus, BearShare, Grokster, and other Gnutella clients. ...
Morpheus is the name of a file sharing peer to peer client for Microsoft Windows, operated by the company StreamCast, that originally used the OpenNAP and P2P platform. ...
This article does not cite any references or sources. ...
References - ^ GDF Discussion on the Gnutella2 name. The Gnutella Developer Forum. Retrieved on 2006-05-10.
- ^ Developer discussion of similarities between Gnutella and Gnutella2. The Gnutella Developer Forum. Retrieved on 2006-05-10.
- ^ Part of the Gnutella/Gnutella2 Flame War (1). The Gnutella Developer Forum. Retrieved on 2006-08-06.
- ^ Part of the Gnutella/Gnutella2 Flame War (2). The Gnutella Developer Forum. Retrieved on 2006-08-06.
- ^ Part of the Gnutella/Gnutella2 Flame War (3). The Gnutella Developer Forum. Retrieved on 2006-08-06.
- ^ Part of the Gnutella/Gnutella2 Flame War (4). The Gnutella Developer Forum. Retrieved on 2006-08-06.
- ^ Developer discussion on migration to Gnutella2. The Gnutella Developer Forum. Retrieved on 2006-05-10.
- ^ Packet Structure. Gnutella2 wiki. Retrieved on 2007-11-07.
- ^ a b Developer discussion of Gnutella and Gnutella2 packet formats. The Gnutella Developer Forum. Retrieved on 2006-05-15.
- ^ a b Gnutella2 Standard. Gnutella2 wiki. Retrieved on 2007-11-07.
- ^ Simple Query Language and Metadata. Gnutella2 wiki. Retrieved on 2007-11-07.
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 130th day of the year (131st in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 130th day of the year (131st in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 218th day of the year (219th in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 218th day of the year (219th in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 218th day of the year (219th in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 218th day of the year (219th in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 130th day of the year (131st in leap years) in the Gregorian calendar. ...
Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ...
is the 311th day of the year (312th in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 135th day of the year (136th in leap years) in the Gregorian calendar. ...
Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ...
is the 311th day of the year (312th in leap years) in the Gregorian calendar. ...
Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ...
is the 311th day of the year (312th in leap years) in the Gregorian calendar. ...
External links |