Kamis, 12 Juli 2018

Sponsored Links

Gnutella wiki : Little longer
src: static.howstuffworks.com

Gnutella (possibly by analogy with the GNU Project) is a large peer-to-peer network. This is the first decentralized peer-to-peer network of its kind, leading to another network which then adopts the model. It celebrates a decade of existence on March 14, 2010, and has a user base in the millions to share peer-to-peer files.

In June 2005, Gnutella population was 1.81 million computers increased to over three million nodes in January 2006. By the end of 2007, it was the most popular file-sharing network on the Internet with an estimated market share of over 40%.


Video Gnutella



Histori

The first client (also called Gnutella) from which the network got its name was developed by Justin Frankel and Tom Pepper from Nullsoft in early 2000, immediately after the acquisition of the company by AOL. On March 14th, the program is available for download on Nullsoft servers. The event was prematurely announced in Slashdot, and thousands downloaded the program that day. The source code will be released later, under the GNU General Public License (GPL); However, the original developers never got a chance to achieve this goal.

The next day, AOL discontinued program availability over legal issues and detained Nullsoft from doing further work on the project. This did not stop Gnutella; after a few days, the protocols have been reverse engineered, and free and open source clones begin to emerge. Different client parallel developments by different groups remain the modus operandi of Gnutella development today.

Among Gnutella's first independent pioneers were Gene Kan and Spencer Kimball, they launched the first portal aimed at assembling the open-source community to work on Gnutella, and also developed "GNUbile", one of the first open-source (GNU-GPL) programs for implement the Gnutella protocol.

The Gnutella network is a fully distributed alternative to semi-centralized systems such as FastTrack (KaZaA) and native Napster. The initial popularity of the network was driven by legal deaths that threatened Napster in early 2001. This popularity increase revealed the limits of initial protocol scalability. In early 2001, variations in the protocol (first applied to proprietary and closed source clients) enabled increased scalability. Instead of treating each user as a client and server, some users are now treated as ultrapeer , routing search queries and responses to the users connected to them.

This allows the network to grow in popularity. At the end of 2001, the Gnutella client LimeWire Basic became a free and open source. In February 2002, Morpheus, a commercial file-sharing group, left FastTrack-based peer-to-peer software and released new clients based on Gnutella's free and open source client, Gnucleus.

The word Gnutella today does not refer to a single project or piece of software, but to open protocols used by various clients.

Its name is the portmanteau of the GNU and Nutella , the brand name of the tasteful Italian hazelnut jam: it is said that Frankel and Pepper eat a lot of Nutella who is working on the original project, and is meant to license the program finish them under the GNU General Public License. Gnutella is not associated with the GNU project or the GNU peer-to-peer network itself, GNUnet.

On October 26, 2010, the popular Gnutella client LimeWire was ordered to be turned off by Judge Kimba Wood from the United States District Court for the Southern District of New York when he signed the Approval Agreement approved by the record industry plaintiff and LimeWire. This event is a possible cause of a significant decrease in network size, because, when negotiating orders, LimeWire staff have entered the code of remote deactivation into the software. When the command comes into effect, users who have installed the affected version (newer than 5.5.10) are disconnected from the P2P network. Since LimeWire is free software, nothing prevents the creation of a fork that removes the deactivation code, as long as the LimeWire trademark is not used. Shutdown does not affect, for example, FrostWire, a LimeWire fork created in 2004 that does not carry long-distance disabling codes or adware.

On November 9, 2010, LimeWire was raised by a secret development team and was named LimeWire Pirate Edition. It's based on LimeWire 5.6 BETA. This version has removed its server dependency and all PRO features are enabled for free.

Maps Gnutella



Design

To imagine how Gnutella originally worked, imagine the large circle of users (called nodes), each of which has Gnutella client software. At initial startup, client software must bootstrap and find at least one other node. Various methods have been used for this, including a pre-existing address list of nodes that may work sent with the software, using updated web cache from known nodes (called Gnutella Web Cache ), UDP host cache , and, rarely, even IRC. Once connected, the client asks for a functioning address list. The client tries to connect to the node that is shipped with, as well as the node it receives from another client until it reaches a certain quota. It connects to just a lot of nodes, locally caching untried addresses and discarding invalid attempted addresses.

When the user wants to search, the client sends a request to each node that is connected actively. In protocol version 0.4, the number of nodes that are connected actively to clients is quite small (around 5), so each node then forwards the request to all nodes that are connected actively, and they, in turn, forward the request, and so on, until the packet reaches the specified number of hops of the sender (maximum 7).

Since version 0.6 (2002), Gnutella is a composite network made of leaf nodes and ultra nodes (also called ultrapeers). Leaf nodes are connected to a small number of ultrapeers (usually 3) while each ultrapeer is connected to more than 32 other ultrapeers. With this higher outdegree, the maximum number of hops that queries can trace is lowered to 4.

Leaves and ultrapeers use Query Routing Protocol to exchange Query Routing Table (QRT), 64 Ki-slot tables and up to 2 Mi-slots consisting of hash keywords. Leaf nodes send their QRT to each ultrapeer connected to it, and ultrapeers combine QRT from all their leaves (downsized to 128 Ki-slots) plus their own QRT (if they share files) and exchange them with their own neighbors.. Query routing is then done by hashing the words of the query and see if everything matches the QRT. Ultrapeer performs the check before passing the query to the leaf node, and also before passing the query to the ultra peer node provided that this is the last hope the query can trace.

If the search query returns results, the node that has the result contacts the searcher. In the classic Gnutella protocol, a response message is sent back along the query route coming, since the query itself does not contain node identifier information. The scheme is then revised, so the search results are now sent via User Datagram Protocol (UDP) directly to the node that initiates the search, usually the ultrapeer of the node. Thus, in the current protocol, the question carries the IP address and port number of one of the nodes. This decreases the amount of traffic channeled through the Gnutella network, making it significantly more scalable.

If the user decides to download the file, they negotiate the file transfer. If the node that has the requested file is not firewalled, the query node can be connected directly. However, if the node is firewalled, stopping the source node from accepting incoming connections, the client that wants to download the file sends it a called push request to the server for the remote client to start the connection instead (for push files). Initially, this push request is directed along the original chain used to send the request. This is somewhat unreliable because the frequent route breaking and redirecting packets is always subject to flow control. Therefore, so-called push proxies are introduced. This is usually the ultrapeer of the leaf node and they are announced in the search results. The client connects to one of these push proxies using HTTP requests and the proxy sends push requests to submit on behalf of the client. Normally, it is also possible to send push requests via UDP to a more efficient push proxy than using TCP. Proxy push has two advantages: First, ultrapeer-leaf connections are more stable than routes that make push requests much more reliable. Second, reduce the amount of traffic directed through the Gnutella network.

Finally, when a user is disconnected, the client software keeps a list of nodes that are connected actively to and collected from the pong packets to be used when trying to connect them so that it becomes independent of any kind of bootstrap service.

In practice, this search method on the Gnutella network is often unreliable. Each node is a regular computer user; thus, they are constantly connecting and disconnecting, so the network never really stabilizes. Also, the cost of search bandwidth in Gnutella grows exponentially with the number of connected users, often saturating connections and the slower rendering of nodes is useless. Therefore, search queries will often be dropped, and most of the questions reach only a fraction of the network. This observation identifies the Gnutella network as an unbreakable distributed system, and inspires the development of distributed hash tables, which are much more scalable but only support exact match, rather than keywords, search.

To solve the congestion problem, Gnutella developers implement a tiered ultrapeer and leaf system. Instead of all nodes being equal, the nodes that go into the network are stored on the 'edge' of the network as leaves, are not responsible for routing, and nodes are capable of routing messages promoted to ultrapeers, which will receive leaf connections and route searches and network maintenance messages. This allows the search to spread further through the network, and allows many changes in the topology that has increased efficiency and scalability is enormous.

In addition, gnutella adopts a number of other techniques to reduce traffic costs and make searches more efficient. The most famous are Query Routing Protocol (QRP) and Dynamic Querying (DQ). With QRP, search only reaches clients who tend to have files, so rare file searches grow much more efficiently, and with DQ search quits as soon as the program gets enough search results, greatly reducing the amount of traffic caused by popular searches. Gnutella For Users has a large amount of information about this and other improvements to Gnutella in an easy-to-use style.

One of the benefits of having a decentralized Gnutella is making it very difficult to turn off the network and make it a network where users are the only ones who can decide which content will be available. Unlike Napster, where the entire network depends on the central server, Gnutella can not be shut down by closing anyone's node and it is impossible for any company to control network content, which is also caused by many open and Gnutella-free clients sharing network resources.

How Gnutella works • Based
src: impressive.net


Protocol features and extensions

Gnutella once operated on pure flooding based protocols. Gnutella obsolete version 0.4 network protocol uses five different packet types, ie

  • ping: find host on network
  • pong: reply ping
  • query: search file
  • query hit: reply to query
  • push: download request for blocked waiter

This is primarily concerned with the search for the Gnutella network. File transfer is handled using HTTP.

The development of the Gnutella protocol is currently led by the Gnutella Developer Forum (The GDF). Many protocol extensions have been and are being developed by free Gnutella software vendors and developers from GDF. These extensions include intelligent query routing, SHA-1 checksums, UDP request transmissions via UDP, queries via UDP, dynamic queries via TCP, file transfers via UDP, XML metadata, source exchange (also called download mesh ) and download parallel in slices (overrun).

There is an attempt to complete this protocol extension in the Gnutella 0.6 specification at the Gnutella protocol development site. The Gnutella 0.4 standard, though still the latest protocol specification since all extensions exist only as a proposal so far, is outdated. In fact, it is difficult or impossible to connect today with 0.4 handshakes and according to developers in GDF, version 0.6 is what new developers should pursue using job specifications in the process.

The Gnutella protocol is still under development and despite attempts to make a clean break with the complexity inherited from the old Gnutella 0.4 and to design a new clean messaging architecture, it is still one of the most successful file-sharing protocols to date.

KaZaA • Created in March
src: image.slidesharecdn.com


Software

The following table compares general and technical information for a number of applications that support the Gnutella network. The no table tries to provide a full list of Gnutella clients. Tables are limited to clients who can participate in the current Gnutella network.

General specifications

Ã, Ã, Stopped project

Gnutella Features

Note

  • Morpheus is very different and may have code that is entirely independent of the GnucDNA machine. Morpheus can function as a modern ultrapeer while other GnucDNA clients can not.
  • Gnucleus and Kiwi Alpha use GnucDNA machines.
  • BearFlix, a functionally limited version of the BearShare 5.2 series, can only search for images or shared videos and videos that are limited to a relatively short length.
  • giFTcurs, Apollon, FilePipe, giFToxic, giFTui, giftwin32, KCeasy, Poisoned, and Xfactor are GUI front-ends for giFT machines.
  • The etiquette uses the outdated Shareaza network code.
  • MP3 Rocket, 360Share, LemonWire, MP3Torpedo, and DexterWire are variants of LimeWire.
  • FrostWire (up to version 4.21.8) is almost identical to LimeWire 4.18 but older versions of 5.00 no longer use gnutella.
  • Acquisitions and Cabos are special front ends that line the LimeWire engine.
  • LimeWire Pirate Edition (5.6.2) is a generated version of alpha LimeWire 5.6.1 that has never been released, so it has similar features minus automatic updates (with nags) and centralized remote control to disable core functions like search and the download has been removed.

Gnutface - Gnutella and Eclipse, Together at last!
src: gnutface.sourceforge.net


Gnutella2

The Gnutella2 protocol (often referred to as G2), regardless of its name, is not a gnutella successor protocol or associated with the original GNUtella project, but is a very different protocol that branched off from the original project and wrapped in the gnutella name. The sore point with many gnutella developers is that the name Gnutella2 conveys an increase or superiority, which causes Gnutella2 flame war . Other criticisms include the use of gnutella networks for colleagues G2 bootstrap and poor documentation of the G2 protocol. In addition, the retrieval of Shareaza client retrieval, which is one of the earliest G2 clients, can overload the gnutella network.

Forks occurred in 2002 and both protocols have experienced significant iterations since then. G2 has advantages and disadvantages compared to gnutella. A commonly cited advantage is that Gnutella2 hybrid searches are more efficient than the original query flooding gegarella, which was replaced by a more efficient search method, starting with Query Routing in 2002, proposed in 2001 by Limewire developers. The advantage for gnutella is the number of its user population in the millions, while the G2 network is roughly an order of magnitude smaller. It is difficult to compare protocols in their current form; the choice of individual clients may have many effects to end users in both networks.

Electronic Mail. DNS. P2P file sharing - online presentation
src: cf.ppt-online.org


See also

  • Bitzi
  • Gnutella Performer
  • GNUnet

Gnutface - Gnutella and Eclipse, Together at last!
src: gnutface.sourceforge.net


References

  • Dye, Mark. McDonald, Rick. Rufi, Antoon W., 'Network Fundamentals', Cisco Networking Academy, Cisco Press, Ch 3. p91
  • Dye, Mark. McDonald, Rick. Rufi, Antoon W., 'Network Fundamentals', Cisco Networking Academy, Cisco Press, Ch 3. p90

ADDAX - Download
src: images.sftcdn.net


External links

  • Gnutella Forum The official user support board
  • Gnutella Protocol Development Wiki (on the Internet Archive, 2009)
  • Gnutella Protocol Development Portal (in the Internet Archive)
  • Gnutella's official website (in the Internet Archive)
  • GnuFU, Gnutella For Users: Description of how the gnutella network works in the User-Friendly Style
  • About Gnutella by GNU
  • Glasnost tests Gnutella traffic shaping (Max Planck Institute for System Software)

Source of the article : Wikipedia

Comments
0 Comments