digplanet beta 1: Athena
Share digplanet:

Agriculture

Applied sciences

Arts

Belief

Business

Chronology

Culture

Education

Environment

Geography

Health

History

Humanities

Language

Law

Life

Mathematics

Nature

People

Politics

Science

Society

Technology

Gnutella2, often referred to as G2, is a peer-to-peer protocol developed mainly by Michael Stokes and released in 2002. While inspired by the gnutella protocol, G2 shares little of its design with the exception of its connection handshake and download mechanics.[1] It adopts an extensible binary packet format and an entirely new search algorithm. Furthermore, it has a slightly different network topology and an improved metadata system which helps effectively to reduce fake files, such as viruses, on the network.

History[edit]

In November 2002, Michael Stokes announced the Gnutella2 protocol to the Gnutella Developers Forum. While some thought the goals stated for Gnutella2, primarily to make a clean break with the gnutella 0.6 protocol and start over so that some of gnutella's less clean parts would be done more elegantly, to be impressive and desirable, other developers, primarily those of LimeWire and BearShare, thought it a "cheap publicity stunt" and discounted technical merits. Many still refuse to refer to the network as "Gnutella2" and instead refer to it as "Mike's Protocol" ("MP").[2]

The Gnutella2 protocol still uses the old "GNUTELLA CONNECT/0.6" handshake string for its connections[1] 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.

With the developers entrenched in their positions, a flame war soon erupted, further cementing both sides' resolve.[3][4][5][6]

The draft specifications were released on March 26, 2003, and more detailed specifications soon followed. 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 that the drastic changes don't have enough merit to outweigh the cost of deep rewrites.[7]

Design[edit]

Gnutella2 divides nodes into two groups: Leaves and Hubs. Most Leaves maintain two connections to Hubs,[8] while Hubs accept hundreds of Leaf connections, and an average of 7 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.

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 neighbouring Hubs. This allows for Hubs to reduce bandwidth greatly by simply not forwarding queries to Leaves and neighbouring Hubs if the entries which match the search are not found in the routing tables.

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. However, UDP 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 an UDP packet with enabled reliability flag 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.

Protocol features[edit]

Gnutella2 has an extensible binary packet format, comparable to an XML document tree, which was conceived as an answer for some of gnutella's less elegant parts. 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.[9]

For file identification and secure integrity check of files it employs SHA-1 hashes. 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]

To create a more robust and complete system for searching, Gnutella2 also has a metadata system for more complete labeling, 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.

Gnutella2 also utilizes compression in its network connections to reduce the bandwidth used by the network.[10]

Shareaza has the additional feature to request previews of images and videos, though currently no additional clients take advantage of this.

gtk-gnutella extended the protocol to further reduce the gap between Gnutella and G2. In particular, the semi-reliable UDP layer was enhanced to add cumulative and extended acknowledgments in a way that is backward compatible with legacy G2 clients.[12] Further extensions include the "A" string in /Q2/I [13] and the introduction of /QH2/H/ALT, /QH2/H/PART/MT, /QH2/HN, /QH2/BH and /QH2/G1 in the query hits.[14]

Differences from gnutella[edit]

Overall, the two networks are fairly similar, with the primary differences being in the packet format and the search methodology.

Protocol[edit]

Gnutella's packet format has been criticized 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.[15] 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[edit]

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. However, as Hub organize themselves in so called "Hub clusters", where each Hub mirrors the information stored by its neighbours, the Leaf is returned the information of the entire Hub cluster (usually 7 Hubs). 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. However, the walk system 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.

Terminology[edit]

There is also a difference in terminology: while the more capable nodes which are used to condense the network are referred to as Ultrapeers in gnutella, they are called Hubs in Gnutella2, and they are also used slightly differently in topology. In gnutella, the Ultrapeers generally maintain as many leaves as peer connections, while Gnutella2 Hubs maintain far more leaves, and fewer peer (Hub-to-Hub) connections. The reason for this is that the search methods of the various networks have different optimum topologies.

Clients[edit]

List[edit]

Free software Gnutella2 clients include:

  • Adagio (Cross Platform), written in Ada, under the GPL.
  • Gnucleus (Windows), written in C/C++, under the LGPL
  • Gtk-gnutella (Cross Platform), written in C. Only supports leaf-mode connections to G2 since version 1.1.[16]
  • 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.
  • Shareaza (Windows), multi-network, written in C++, under the GPL, currently +/- 93% network share[17]
  • Sharelin (Cross platform), written in C++, web-GUI
  • G2CD (Linux/Unix/BSD) Hub mode only implementation of the Gnutella2 network.
  • Quazaa[18] (Cross platform) written in C++/QT4, under GPLv3. New client inspired by Shareaza.

Proprietary software implementations include:

  • Foxy (Windows) Chinese GnucDNA-derived program, no interaction with any other G2 clients possible, and uses its own "Foxy"-Network, which is half-poorly separated from the original G2 and known for network leakage into G2[citation needed]. Theoretically, the client is compatible to G2. free.
  • Kiwi Alpha (Windows)
  • Morpheus (Windows)
  • TrustyFiles (Windows)

Comparison[edit]

The following table compares general and technical information for a number of available applications supporting the G2 network.

client Chat Handles big files (>4 GB) UKHL Unicode UPnP port mapping NAT traversal Remote preview Ability to search with hashes Hub modus Spyware/ Adware/ Malware-free Other networks Based on OS Other
Adagio No No No No No No No Yes No Yes N/A - Cross-platform -
Foxy Yes No No Yes Yes No No Yes Foxy only No N/A GnucDNA Cross-platform -
FileScope Yes No No No No No Yes Yes Yes Yes gnutella,

eD2k, OpenNap

- Cross-platform -
Gnucleus No No No No No No No Yes No Yes gnutella GnucDNA Windows -
gtk-gnutella No Yes No Yes Yes Yes No Yes No Yes gnutella - Cross-platform -
Kiwi Alpha No No No No No No No Yes No No gnutella GnucDNA Windows -
Morpheus Yes No No No Yes No No Yes No No gnutella,

NEOnet

GnucDNA Windows Development and hosting of the client has been stopped
Quazaa No No No Yes No IPv4to6 only No Yes Yes Yes none yet - Cross-platform Includes IRC chat, IPv6 support. Still in early stages of development.
Shareaza Yes Yes Yes Yes Yes No Yes Yes Yes Yes gnutella,

eD2k, BitTorrent

- Windows Includes IRC support
Sharelin No Yes Yes No No No No Yes No Yes N/A - Unix/Linux Console application with WEB-GUI
TrustyFiles No No No No No No No Yes No removable in commercial version ($29) eD2k, Overnet, BitTorrent, gnutella GnucDNA (partial) Windows -

See also[edit]

References[edit]

  1. ^ a b "Developer discussion of similarities between Gnutella and Gnutella2". The Gnutella Developer Forum. Retrieved 2006-05-10. 
  2. ^ "GDF Discussion on the Gnutella2 name". The Gnutella Developer Forum. Retrieved 2006-05-10. 
  3. ^ "Part of the Gnutella/Gnutella2 Flame War (1)". The Gnutella Developer Forum. Retrieved 2006-08-06. 
  4. ^ "Part of the Gnutella/Gnutella2 Flame War (2)". The Gnutella Developer Forum. Retrieved 2006-08-06. 
  5. ^ "Part of the Gnutella/Gnutella2 Flame War (3)". The Gnutella Developer Forum. Retrieved 2006-08-06. 
  6. ^ "Part of the Gnutella/Gnutella2 Flame War (4)". The Gnutella Developer Forum. Retrieved 2006-08-06. 
  7. ^ "Developer discussion on migration to Gnutella2". The Gnutella Developer Forum. Retrieved 2006-05-10. 
  8. ^ "Gnutella2 Network history". Gnutella2 Crawler g2paranha. Retrieved 2009-04-12. 
  9. ^ "Packet Structure". Gnutella2 Wiki. Retrieved 2007-11-07. 
  10. ^ a b "Gnutella2 Standard". Gnutella2 wiki. Retrieved 2007-11-07. 
  11. ^ "Simple Query Language and Metadata". Gnutella2 Wiki. Retrieved 2007-11-07. 
  12. ^ "UDP Transceiver - Gnutella2". G2.doxu.org. Retrieved 2014-08-06. 
  13. ^ "Q2 - Gnutella2". G2.doxu.org. 2014-02-25. Retrieved 2014-08-06. 
  14. ^ "QH2 - Gnutella2". G2.doxu.org. 2014-03-12. Retrieved 2014-08-06. 
  15. ^ "Developer discussion of Gnutella and Gnutella2 packet formats". The Gnutella Developer Forum. Retrieved 2006-05-15. 
  16. ^ "gtk-gnutella - The Graphical Unix Gnutella Client". Gtk-gnutella.sourceforge.net. Retrieved 2014-08-06. 
  17. ^ "Shareaza network share on the G2 network". Trillinux crawler (G2paranha). Retrieved 2008-09-18. 
  18. ^ "Quazaa - Home". Quazaa.sourceforge.net. Retrieved 2014-08-06. 

External links[edit]


Original courtesy of Wikipedia: http://en.wikipedia.org/wiki/Gnutella2 — Please support Wikipedia.
This page uses Creative Commons Licensed content from Wikipedia. A portion of the proceeds from advertising on Digplanet goes to supporting Wikipedia.
124 videos foundNext > 

Sharelin - Gnutella2 P2P Downloader - Linux WebUI

commands used: sharelin -c sharelin sharelin -d we connected to http://localhost:7349 for webui How to port forward? open port 6349 https://www.youtube.com/w...

Установка Shareaza 2.7.4.0 (x64) [Клиент BitTorrent, EDonkey, Gnutella (G1) и Gnutella2 (G2)] 💾

Shareaza - это универсальный клиент для P2P сетей. Shareaza позволяет загружать/выгружать любые файлы (музыку, фильмы, программы) из сетей BitTorrent, EDonke...

Shareaza и Gnutella2

Shareaza — это, на мой взгляд, одна из наилучших разработанных на сегодняшний день программ скачивания и раздачи данных через сети P2P. Gnutella2 — это сеть,...

Cómo conectarse a Gnutella2 sobre Shareaza

Install Tutorial for P2P (peer to peer) client Sharelin,on Ubuntu (10.10)

A quick tutorial on installing Sharelin on Ubuntu Linux. From wikipedia: Sharelin is a terminal peer-to-peer file sharing client for Unix-derived operating s...

Free Music Download: DroidG2, Gnutella 2 client for android

DroidG2 is a P2P client on android which employ Gnutella2 technology. Download Link: https://market.android.com/details?id=org.toxiclab.droidg2&feature=searc...

Shareaza Free

Free Download Click this Link: http://www.free-downloads.us/software/shareaza-free/ Shareaza has unique features, including ghost ratings, a completely user-...

ShareDix

http://deal.codecoupondiscount.com/d/7607 andlt;bandgt;SAVE: 35% when using this link available on the offerandlt;/bandgt; andlt;br /andgt; sharedix is a cle...

Cómo solucionar problemas de DSL de AT & T

Time lapse of the Exotics at Redmond Town Center

http://www.exoticsatredmondtowncenter.com Can you spot when the Bugatti Veyron drives by?

124 videos foundNext > 

48 news items

Génération NT

Génération NT
Fri, 28 Nov 2014 09:01:41 -0800

De nombreuses fonctions utiles, comme un adaptateur prévu pour supporter d'autres réseaux P2P (eDonkey, Gnutella, Gnutella2, etc) donnent toute la mesure de sa polyvalence. Rapidité et simplicité sont les maîtres mots de ce logiciel adapté aussi bien ...
 
TorrentFreak (blog)
Thu, 13 Mar 2008 11:54:09 -0700

Over the next two years Micheal added to his client and coded in support for the eDonkey 2000 network, BitTorrent and a rewritten Gnutella-based protocol which he named Gnutella2. Shareaza gradually became more and more popular and Mike started to ...
 
TorrentFreak (blog)
Mon, 18 Aug 2008 13:23:40 -0700

Wout: Panthera supports Gnutella1, Gnutella2, BitTorrent and ED2K (not in beta but it will be in final release). The BitTorrent in the beta release will be the default QT (more about this later) BitTorrent sample client. This is for testing purposes ...
 
Afterdawn.com
Wed, 20 Feb 2008 10:56:15 -0800

HTML code for linking to this page: Keywords: shareaza sharaza gnutella bittorrent gnutella2 edonkey p2p. License type Freeware 1. Author's homepage Visit the author's site. Date added 14 Dec 2014. Downloads 582. File size 13.27 MB (< 2min @ 1Mbps).
 
Under-Linux.Org
Sun, 09 Nov 2014 22:00:00 -0800

Atualmente, o aplicativo suporta várias redes P2P grandes, incluindo Overnet, BitTorrent, Fasttrack (Kazaa, Imesh, Grobster), Gnutella (Bearshare, Limewire, etc), Gnutella2 (Shareaza), Soulseek, OpenNap e Direct-Connect (DC ++). Várias interfaces de ...
 
Slyck
Thu, 22 Sep 2005 08:01:09 -0700

Utilizing the Gnutella2 network protocol, Shareaza is capable of sharing and delivering MP3s. Shareaza is also capable of sharing with the Gnutella, eDonkey2000 and BitTorrent networks. Although as a Gnutella2 client it is not as resourceful as WinMX ...
 
Slyck
Mon, 02 May 2005 08:10:42 -0700

Among other networks, this number did not account for the BitTorrent, WinMX, Manolito, Warez/Ares, Gnutella2 or SoulSeek populations. If we did include those users, we would be looking at a much larger population – perhaps as many as 15 million users.

iXBT.com

iXBT.com
Sun, 02 Mar 2014 23:30:00 -0800

Программа способна одновременно подключаться к любым четырем различным сетям, где вы сможете скачивать/закачивать файлы: EDonkey2000, Gnutella, BitTorrent и Gnutella2 (G2) и т.д. Shareaza позволяет загружать один и тот же файл ...
Loading

Oops, we seem to be having trouble contacting Twitter

Support Wikipedia

A portion of the proceeds from advertising on Digplanet goes to supporting Wikipedia. Please add your support for Wikipedia!

Searchlight Group

Digplanet also receives support from Searchlight Group. Visit Searchlight