Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
The Internet

Gnutella2 Specifications 287

An anonymous reader writes "After lots of heated debate regarding Gnutella2, (first story and more recent story), the specifications have finally been released. There is a mirror here. Let the debates begin."
This discussion has been archived. No new comments can be posted.

Gnutella2 Specifications

Comments Filter:
  • Great! (Score:5, Funny)

    by Linux-based-robots ( 660980 ) on Tuesday March 25, 2003 @06:14PM (#5594651) Journal
    I can use this to share all my Linux warez with impunity!! Ha ha GPL take that! I'm sharing and there's nothing you can do about it!! NOTHING!
  • GENIUS (Score:5, Funny)

    by JanusFury ( 452699 ) <kevin...gadd@@@gmail...com> on Tuesday March 25, 2003 @06:17PM (#5594672) Homepage Journal
    Slashdot the specs so nobody can develop clients! That's absolute genius. I wonder how much Hilary Rosen is paying Taco for this? ;)
  • by Berylium ( 588468 ) on Tuesday March 25, 2003 @06:18PM (#5594683)
    For those of you who don't want to pop over to the site. Or if it get's slashdotted (which would be odd).

    What is Gnutella2?
    Gnutella2 is a modern and efficient peer-to-peer network standard and architecture designed to provide a solid foundation for distributed global services such as person to person communication, data location and transfer and other future services.

    Why is it needed?
    Peer to peer technologies have become mainstream over recent years, and there are already a significant number of P2P networks in various stages of development and operation.

    How does yet another network help?
    Gnutella2 is unique amongst the currently operating peer to peer networks in several important ways:
    * Many of the most successful networks are "closed", owned by a single entity with restrictions or fees constituting a barrier to participation. This is not a viable model for an open, general purpose network. Gnutella2 is an open architecture where anyone is welcome to participate and contribute. The network has been designed to allow such diversity without the need for messy hacks or compromises in integrity.
    * The majority of networks are devoted to a single purpose, often the sharing of files. This is certainly a popular application for peer to peer technology, but it is by no means the only application. Gnutella2 is designed as a general purpose network which can be used as a solid foundation for any number of different peer to peer applications - vanilla file sharing, communications tools or other ideas which are yet to be conceived.
    * Some peer to peer networks have been developed with similar general purpose goals, however they have been unable to compete in the most popular application of the day, which is file sharing. For a general purpose network to succeed, it must be able to compete with purpose-specific networks in the most popular purpose. Gnutella2 is not only able to compete with the current popular file sharing specific networks, it outperforms them.

    What About "Old Gnutella"?
    The original "Gnutella" was created several years ago as a very simple, single vendor file-sharing specific network. Its simplicity made it a popular platform for file sharing application developers; however this simplicity also critically limited its effectiveness. As a result, competing file-sharing specific networks slowly but surely took over as the tools of choice as Gnutella users became frustrated with poor performance and turned elsewhere.
    The original Gnutella[1] network was designed for a very limited purpose and, despite many changes over the years, remains limited today. Efforts to make it a better file sharing network continue with mixed success.
    Gnutella2 shares the "Gnutella" name, striving to create the network that Gnutella should have been from the beginning. It shares the adopted ideals of openness and cooperation, but offers a fresh start that was sorely needed. The crippling limitations of the old network have been left behind and replaced with an entirely new network architecture ready to grow and develop through the creative efforts of many.

    What is the Scope of Gnutella2?
    The single name "Gnutella2" really refers to two separate components: Gnutella2 the Standard and Gnutella2 the Network.
    The Gnutella2 Network is perhaps the most easily recognised component. It is a new high-performance peer to peer network architecture upon which a variety of distributed applications can be built, such as file sharing applications, communication tools, etc.
    The Gnutella2 Standard is a set of requirements for building applications which operate on the Gnutella2 network in different capacities. It specifies the minimum compliance level required to be recognised as a Gnutella2-compatible application. Compliance with a Gnutella2 Standard ensures participating applications provide a minimum acceptable level of service to other network participants.
    • by Adam Fisk ( 536262 ) on Tuesday March 25, 2003 @06:48PM (#5594927)
      Gnutella2, or "Mike's Protocol," has some interesting properties. It has nothing whatsoever to do with Gnutella, however. It's a separate protocol that is bootstrapping off of the Gnutella name to do things like get on Slashdot, and everyone here is falling for it.

      Characterizations of Gnutella as a simple, old protocol reflect a woeful ignorance of the many innovations that have emerged from Gnutella. In fact, much of Mike's Protocol calls "Gnutella 2" are innovations developed on Gnutella itself. These aren't simply close copies -- the protocols he cites are, in fact, Gnutella protocols. There are many more innovations happening on Gnutella as we speak, and the highjacking of the Gnutella name by Mike has weakened the fabric of an otherwise strong and open development community.

      We should all support open networks by supporting Gnutella. Gnutella2 offers interesting alternatives, but is no better than the work currently occurring on Gnutella. What's more, few if any Gnutella developers will ever support Gnutella2 because of the divisive way that it was introduced, permanently fracturing the Gnutella community, with almost all of the Gnutella community still working on Gnutella because they were never told of the so-called Gnutella2 until it was slashdotted, much as we're seeing today.

      If you support open protocols, support the original Gnutella. Gnutella2 does not solve any problems not currently solved by the original Gnutella clients. It simply creates division.

      • by afree87 ( 102803 ) on Tuesday March 25, 2003 @07:10PM (#5595069) Journal
        Linux, or "Linus' Operating System", has some interesting properties. It has nothing whatsoever to do with Minix, however. It's a separate protocol that is bootstrapping off of the Minix name to do things like get on Slashdot, and everyone here is falling for it.

        Characterizations of Minix a simple, old operating system reflect a woeful ignorance of the many innovations that have emerged from Gnutella. In fact, much of what Linus' Operating System calls "Linux" are innovations developed on Minix itself. These aren't simply close copies -- the protocols he cites are, in fact, Minix protocols. There are many more innovations happening on Minix as we speak, and the highjacking of the Minix name by Linus has weakened the fabric of an otherwise strong and open development community.

        We should all support open operating systems by supporting Minix. Linux offers interesting alternatives, but is no better than the work currently occurring on Minix. What's more, few if any Minix developers will ever support Linux because of the divisive way that it was introduced, permanently fracturing the Minix community, with almost all of the Minix community still working on Minix because they were never told of the so-called Linux until the first release came out, much as we're seeing today.

        If you support open protocols, support the original Minix. Linux does not solve any problems not currently solved by the original Minix operating system. It simply creates division.

        • by Adam Fisk ( 536262 ) on Tuesday March 25, 2003 @11:07PM (#5595691)
          An interesting parody. The big difference? Linux represented a huge leap forward because it was open source. Gnutella 2 is not a leap forward. It does things like arbitrarily create a new, completely unstandardized messaging system. As any Gnutella developer knows, the problems facing Gnutella, as with most p2p systems, have little to do with the underlying messages. They have to do with topology and the intelligence of the algorithms. Changing every Gnutella message does nothing to address these issues.

          Linux also didn't hijack the Unix name (don't try to make the case that "Linux" is a varient of "Minix"). Everyone was using the Unix name for all sorts of Unix variants. Gnutella 2 is a marketting stunt, and you are furthering that stunt right now. Honestly, if you knew more about what you were doing, I think you'd be embarrassed about your above comment.

          • An interesting parody. The big difference? Linux represented a huge leap forward because it was open source. Gnutella 2 is not a leap forward. It does things like arbitrarily create a new, completely unstandardized messaging system. As any Gnutella developer knows, the problems facing Gnutella, as with most p2p systems, have little to do with the underlying messages. They have to do with topology and the intelligence of the algorithms. Changing every Gnutella message does nothing to address these issues.

            • by Adam Fisk ( 536262 ) on Wednesday March 26, 2003 @12:28AM (#5596026)
              This is a scary conversation to get into, but here goes. We're probably both a bit overly fanatical in our viewpoints. MP offers interesting ideas, and it does work well. I think that the underlying technology of Gnutella is significantly more sound, as I've outlined in other threads. To say that "MP works and Gnutella doesn't" is clearly ridiculous. I definitely don't own Gnutella, but many people have put a great deal of effort into the Gnutella network, most of their time volunteered. Those people don't deserve to have their work swept under the umbrella of "Gnutella 2" just so Shareaza can get Slashdotted.

              MP was a separate entity from the beginning -- it hasn't changed significantly since it was first introduced, and the Gnutella world did not embrace it because it made no attempt to have anything to do with Gnutella other than taking it's name so we'd all be talking about it right now.

              I went into the details of why we haven't released GUESS on another thread. In a nutshell, we think that TCP approaches are more robust and can achieve the same efficiency and scalability. MP had nothing to do with increasing the outdegree -- that's an idea that has been around Gnutella for years, and the most rigorous discussion I've seen for why high outdegrees are important is the following paper from the Stanford Peers folks at:

              Beverly Yang and Hector Garcia-Molina. Designing a Super-Peer Network [stanford.edu]

              That link doesn't seem to be working at the moment, but you can reach it from:

              Stanford Peers Page [stanford.edu]

              All that said, I wish MP the best. I wish it had chosen a different name, but oh well.

            • Gnutella1 doesn't work

              Wow, what a propaganda machine. I use Gnutella all the time and get anything I want from it with few problems.

              I could go on to explain why G1 doesn't work and G2 does, but I'd be here all night.

              If it were true you could explain it in a couple of paragraphs. After all, this is Slashdot. It's not like were all a bunch of idiots. But obviously there are some who don't have the benefit of critical thinking and support your transparent, cynical actions.
        • Linus didn't call it Minix2, jackass.
      • by havaloc ( 50551 ) on Tuesday March 25, 2003 @07:16PM (#5595093) Homepage
        As a person who purchased the Limewire Pro version twice, I have to disagree with Adam Fisk's FUD. As a longtime user of Limewire (indeed, even the recent versions), I'm saddened by this FUD. I'm now a happy Shareaza user.

        Why would Shareaza want to bootstrap off the Gnutella name? To me, Gnutella certainly embodies a spirit of openess, but it also reminds me of the worse performing P2P app there is (with certain exceptions).

        Gnutella2, no matter how you feel about the name, simply out performs many of the current P2P programs out there, including the newest version of Limewire. It is also developed at a much faster pace than most clients, and its free. Its also free of ads and spyware.

        To say that Gnutella2 offers nothing better than Gnutella just doesn't seem true to me. I can tell the difference, and I'd imagine a lot of other people can too.

        Limewire was touting GUESS as an enhancement to Gnutella that has been abandoned. It was for this enhancement that I registered for Limewire Pro the second time. Now, I find out that they are just going to make a few changes to the old protocol. That's not what I invested/paid for.

        I also think its silly that the Gnutella community at large refuses to even look at this new protocol because of the way it was introduced. It was introduced because we are all sick of the slow pace of development in the Gnutella community. On the internet, 6 months might as well be 2 years.

        Until I see otherwise, classic Gnutella is all but dead. It's inefficient, with a limited horizon, and traffic intensive.

        I'm also sorry that I registered and supported Limewire.
        • Why would Shareaza want to bootstrap off the Gnutella name?

          Same reason it's bootstrapping off the Kazaa name? :)
        • by Adam Fisk ( 536262 ) on Tuesday March 25, 2003 @11:28PM (#5595767)
          I am sorry to hear that you have been disappointed with your experiences with LimeWire. We are working hard to create the best technology possible, and we have a road map that we feel will soon make LimeWire the best performing p2p application available.

          You are clearly an informed user, so I will go into the details of LimeWire/Gnutella development as well as more detailed reasons for my above comments. I and Susheel Daswani wrote the original GUESS protocol, and we very openly shared our ideas regarding GUESS with Mike in particular, having no idea that there would be consequences for our openness. GUESS is fully implemented in LimeWire and has been for some time. We have not released that implementation for reasons that are vital to this conversion, including:

          1) After extensive *collaboration* with the rest of the Gnutella community, we came to the realization that any UDP-based protocol would almost surely require a custom flow control layer to be written on top at some point down the road. Without this layer, congestion will simply starve all TCP connections of any available bandwidth, as TCP will continually backoff as UDP indiscriminately consumes the released bandwidth. This is bad for the use. Developing a flow control layer is a significant burden to the developer. Mike's Protocol does not do this, and it will cause congestion on the Internet as a result. It will also be one of the primary reasons that few developers will code for it.

          2) We came to the realization that we could achieve the same efficiency gains with a far safer TCP implementation. This implementation relys on selective querying (dynamically adjusting the reach of a query based on the popularity of the content being searched for), as well as the exchanging of file indexes between Ultrapeers to limit traffic. This implementation is also significantly simpler than UDP-based architectures, and does not pose the same security concerns. We may at some point use GUESS for specific purposes, but we will likely not make GUESS the primary search architecture because we are able to achieve the same efficiency gains by better and more responsible means.

          In short, we did not rush our client out the door using GUESS because our open collaboration with other developers led us to realize that better solutions were available and that a raw UDP solution was, in fact, dangerous in terms of network congestion, and even irresposible to network administrator everywhere attempting to cope with bursts of UDP traffic. Becuase Mike did not develop his protocol openly, he was unable to do this.

          Mike's Protocol is able to use this architecture in large part because it's network is so small. It's possible that it scales better than I think it does, but I doubt it. The search architecture story tells much about why open protocols make sense -- because everyone collaborates to develop the best protocol possible.

          Best,

        • Well, the way I see it its biggest innovations are hashes and UDP. These could be added to the existing gnutella protocol.
      • What's more, few if any Gnutella developers will ever support Gnutella2 because of the divisive way that it was introduced, permanently fracturing the Gnutella community, with almost all of the Gnutella community still working on Gnutella because they were never told of the so-called Gnutella2 until it was slashdotted, much as we're seeing today.

        No problem, they just need to come out with Gnutella3, thus grabbing back the spotlight by "superceding" this.
      • by judd ( 3212 )
        Um.

        First you say "It has nothing whatsoever to do with Gnutella, however. It's a separate protocol that is bootstrapping off of the Gnutella name."

        Then you say "[Mike's Gnutella2 improvements] are innovations developed on Gnutella itself. These aren't simply close copies -- the protocols he cites are, in fact, Gnutella protocols"

        These statements appear to be contradictory.
        • Good point. I was a little worked up when I wrote that message -- I usually get overly worked up when this topic comes up =). Basically, I see Gnutella 2 as an fine protocol that has been proprietary for most of its history. I applaud Mike for getting the specs out there, but I still don't appreciate his decision to coopt the Gnutella name without any consultation with anyone who actually wrote clients for the Gnutella network. I don't like it when I and the volunteer work of thousands of people in the
      • Gnutella2, or "Mike's Protocol," has some interesting properties. It has nothing whatsoever to do with Gnutella, however. It's a separate protocol that is bootstrapping off of the Gnutella name to do things like get on Slashdot, and everyone here is falling for it.

        Something a lot of people seem to have missed is that there is a close bond between gnutella and G2 (or whatever you want to call it).

        * They handshake using the same method and then the protocol is 'upgraded' to G2 when both sides have determi
  • I used to use gnutella all the time. But not enough people used it, so it was difficult to get the files I needed. Maybe Gnutella 2 will usher in a wave of new users. Then we can finally stop using Kazaa.

  • by Anonymous Coward on Tuesday March 25, 2003 @06:19PM (#5594701)
    Two questions:

    1. Can this version prevent abuse from folks that try to flood the system with bogus or damaged files?

    2. Will this version enable people to download anonymously?
    • 1. There is a rating system that can help but not prevent this.

      2. No.
    • > 1. Can this version prevent abuse from folks that try to flood the system with bogus or damaged files?

      Here's how I do it, because I have a dial-up and can't waste my time downloading junk:

      1. Use the result with the most hosts. Not only the most reliable download, but it's probably been verified by some of them.

      2. If it's really big, I'll verify it with Bitzi (it's one click from shareaza), plus I can bookmark the page if I want to grab it later (since it has ed2k links).

      3. If I see a "XXX IS BOGUS
      • You can't make such a gateway - you'd need to know the filenames and cryptographic hashes of every file on the gnutella network, and have to insert each one individually. And that's not a gateway.
        • > You can't make such a gateway - you'd need to know the filenames and cryptographic hashes of every file on the gnutella network, and have to insert each one individually.

          No you don't. Any one gateway just needs to know the filenames and hashes of the files it intends to gateway from freenet, then issue queries as requests come in. In fact you could build this list up lazily, but I hate to think of the spurious chatter this would cause on freenet. Multiple gateway-enabled servents would distribute t
      1. Sure, but only if you know the hash of the file you want.
      2. No, that's what Freenet [freenetproject.org] is for.
  • by Anonymous Coward on Tuesday March 25, 2003 @06:20PM (#5594711)
    Common Gnutella2 Standard (All Applications)

    All applications making use of Gnutella2 technology for any application class MUST IMPLEMENT the following core features:

    * Bidirectional TCP stream connections
    (stream compression OPTIONAL)
    * Bidirectional reliable UDP protocol
    (Gnutella2 reliability layer and stateless compression REQUIRED)
    * HTTP-style link negotiation, exchanging at least the required headers
    * Gnutella2 protocol support, graceful handling of unknown trees
    * Localised, UTF-8 and UNICODE decode REQUIRED, encoding to each optional
    * Operation in LEAF mode, additional node states OPTIONAL
    * Basic link handshaking and maintenance functionality (PI/PO/LNI/KHL)
    * Global node addressing scheme and routing maintenance, addressing children (TO)
    * Reverse (PUSH) connection response (connecting out)
    * HTTP/1.1 client and server for peer to peer transactions

    Gnutella2 Standard for File Sharing

    Applications making use of Gnutella2 technology for file sharing MUST IMPLEMENT the following features:

    * All of the COMMON features listed in the previous section
    * Operation in LEAF mode, additional node states OPTIONAL
    * Some form of bandwidth management scheme to keep network and transfer bandwidth below 95% of the user's link capacity - be it manually configured or some automatic scheme (very important to avoid flooding local connection)
    * SHA1 and TIGER ROOT URNs for all shared objects
    * XML metadata using existing schemas where appropriate (manual entry and peer acquired at minimum, automatic local collection highly recommended, service lookup optional)
    * Universal 1-bit query hash filter, at least 2^20 length, intelligent density management scheme (superset combination required if supporting hub mode)
    * Gnutella2 object search mechanism, all client responsibilities and if supporting hub mode, server responsibilities too
    * Local search processing including simple query language (Boolean operations, quoted search terms, numeric range searches, interest flagging (I), local rule-based metadata searching)
    * Extensible hit format (URN/DN/MD/URL are REQUIRED, all other extensions OPTIONAL)
    * HTTP/1.1 based upload system, URN based requesting, partial content requests, active queuing, partial file uploading, timestamp protected alternate source cache and exchange
    * Tiger Tree volume calculation on shared files, caching on downloads, exchange via DIME. Local corruption detection OPTIONAL but recommended.

  • by Anenga ( 529854 ) on Tuesday March 25, 2003 @06:23PM (#5594734)
    This, hopefully, will be the "re-birth" of Gnutella, or at least of a new open free P2P protocol. And the fact that this protocol looks to be, and pretty much is, the most technical, feature rich and advanced protocol currently out is fantastic. I can't wait until someone adds an "Anonymous layer".

    No word yet if any of the classic Gnutella clients (such as BearShare, Limewire etc.) will be adopting Gnutella2 at all (although Gnucleus has vowed to in the future). However, there are some that are open source/GPL'd, such as GTK for *NIX, Aquisition for OSX or Limewire in Java.

    Incase the specs get /.'d, here is a URI (need Shareaza to download it).

    magnet:?xt=urn:bitprint:PMKP57E2TXFI2Z37M3A7CJ2U 3A FICBDU&dn=Gnutella2%20Specs%20Draft.htm
    • by smd4985 ( 203677 ) on Tuesday March 25, 2003 @06:34PM (#5594821) Homepage
      The jury it still out on Gnutella2 - it isn't clear if a brand new protocol is really necessary or if Gnutella can just be extended to incorporate new features (Gnutella is pretty extensible after GGEP, etc.).

      What the jury has already decided on is the bad form that the Gnutella2 developers displayed when they first stole Gnutella's name without the approval of the Gnutella community and then used Gnutella to bootstrap their fledgling network.
      • it isn't clear if a brand new protocol is really necessary

        Gnutella0.6 cannot search all the hosts on the network without using huge ammounts of bandwidth... Changing that would mean changing the protocol. The current method of supernodes and leafs (which improves the situation, but doesn't really solve it) is just begging to be exploited, and I have no doubt it will be evetually.

        What the jury has already decided on is the bad form that the Gnutella2 developers displayed when they first stole Gnutella's

        • It's true that LimeWire has no right to the Gnutella name or to "Gnutella 2." We would never dream of taking that name without careful consultation with other people who have invested countless hours of their time in this network.

          At the same time, sure, maybe anyone can name anything Gnutella 2. The technology is the important thing, and it's helpful to have multiple protocols out there to see what works. I'd just prefer to work cooperatively with everyone to make the best technology possible, and that

  • by Anonymous Coward on Tuesday March 25, 2003 @06:23PM (#5594737)
    Gnutella is an interesting protocol and, from what I can see via a precursory glance at the Gnutella2 protocol, the new changes come a long way towards making P2P more effective. However, I still see some weaknesses in the protocol that might make it a keen target for hackers (or overzealous record label executives). The new protocol doesn't seem to address any of the concerns of the network layer engineers... Gnutella2 does not appear to function within the scope of IPV6. Nor do I see anything regarding protection from what is referred to by networking scholars as the "7 Monkey Attack" (no giggles or mod downs, this is a serious scenario posed by many in the upper echelons of stack layer design teams). Basically it theorizes that, as Nullsoft originally anticipated, that no machine on the internet is no more than 7 hops from any other in a distributed peer to peer style network (remember, we're not talking about router hops). Ultrapeers were designed to combat this, to some extent, but overall they have failed.

    The assumption that a P2P network can withstand a "7 Monkey Attack", the likes of which we witnessed on both Gnutella and Kazaa in April of 2002 (which basically returned the phrase 'how many monkeys does it take' in the header of every packet on the network, to which infected clients would reply '7 monkeys of course.mpg', along with other radical yet memorable phrases such as 'bacon shit' (for those who are familiar with Gnutella lore, in the first days of its release the phrase 'bacon shit' kept appearing in the search monitor)).

    Nonetheless, this is a step in the right direction. With a little more work, this network could become impervious to the '7 Monkey Attack' before it is even implemented. This is a good thing! I am really looking forward to the cool new tools that will come of this!

    (For those that don't know, a 7 Monkey Attack is in reference to several well known anime series... frequently characters refer to something called the '7 monkey punch', or 'seven monkeys punch' -- for those that doubt, search google's usenet archive for descriptions and timestamps as to when this appears. It is the most deadly of all martial arts moves.)
  • by ihatewinXP ( 638000 ) on Tuesday March 25, 2003 @06:26PM (#5594760)
    -Let the debates begin-

    Howabout just letting the applications begin? If someone releases an app on this new protocol and it rocks.... - the debate is over

    Just my humble opinion after using Limewire way too long. Show me a reason to even use gnutella and im on it.
  • by connsmythe96 ( 576445 ) <slashdot.adamkemp@com> on Tuesday March 25, 2003 @06:34PM (#5594819) Homepage
    It's been a while since I used Gnutella, but my previous experiences showed that it was great for finding files but horrible for downloading them. It seems that everyone was either on a dialup connection, or their queues were full, or they simply disabled uploads.

    These are obviously not problems with the specs, though...they're problems with the people on the network. Has this changed?
    • Trouble downloading? With the introduction of remote queuing downloads are more successful than ever! As a Gnutella developer, I'll tell you the biggest threat to Gnutella is the SPAM on the network (requeries, hacked results, etc.). Since the protocol is open it is pretty easy to abuse the network.

      Interestingly, the SPAM problem may also be an issue on Gnutella2 - it may claim to be technically superior than Gnutella, but I don't see anything in the specs that addresses this issue.

      That said, the Gnute
    • The possibilities of why you couldn't find files before, were probably:

      - Gnutella1's search scheme fell apart as it grew bigger. It is not a global search scheme, and when you log-on you have a "Horizon" of nodes that you'll be able to reach, to search. On Gnutella2, the network is global. Your search, if neccessary, goes throughout the entire network (travels through every Hub cluster) until it finds hits. Basically: If there's a file on the network you want, you'll find it. Not so on Gnutella1, unfortuna
    • I saw an HTTP upload mentioned in the spec... well, they say it is not part of the spec, but they mention it alongside HTTP download, which is also not part of the spec.

      Would it be so hard to create a Gnutella client which required an upload or some other requirement (payment, chat, etc) to be able to download?

      Regardless, P2P is just a decentralized way to advertise pirated and controversial materials... or maybe an alternative to advertise information if Google explodes.

      I wonder if you could do a ful

    • These are obviously not problems with the specs, though...they're problems with the people on the network. Has this changed?

      In a word, yes. In two words: "swarmcast" downloads! Okay, so perhaps one of those wasn't really a word as Webster might define it :)

      I'm taking a guess that the last time you used Gnutella was prior to the major clients implementing multi-source downloads. If so, you ought to give one of the programs another try. You no longer need to queue up the same file from 20 different people, h

    • > It's been a while since I used Gnutella, but my previous experiences showed that it was great for finding files but horrible for downloading them. It seems that everyone was either on a dialup connection, or their queues were full, or they simply disabled uploads.

      Modern clients have made this much better. Multi-source downloads means that you'll have more chances for your download to "take". The continuing spread of broadband means nodes tend to be more reliable these days, and there's more hubs --
    • What I don't understand, is why dialup connections should even be an issue.

      There should be a way, for say, 50 dialup users to simultaneously stream a single file to me. That would still seem speedy to my cable modem, maybe even to the point that it would have to throttle things back. Assume that I search for it, and the search returns the 50 locations. The client should negotiate with all 50, saying, "I want 1/50 from you, 2/50 from you, etc". They each start streaming, plenty of checksums and of course md
      • There should be a way, for [goes on to describe multisource downloads]

        You'll find that lots of P2P networks such as eMule and WinMX already do this. Apparently, some newer Gnutella clients do it as well.

        The problem here is when only one person has the rare file that I'm looking for at an acceptable bitrate (i.e. 160-256 kbps MP3). I very rarely pirate current Top 40 recordings or other recordings from 1990 or later.

  • It is "Mike's Protocol", as mentioned at the interview [mp3newswire.net] linked to from the previous post [slashdot.org].
    • To be more to the point -- this is NOT Gnutella. The Gnutella developers are not happy about the so-called "Gnutella" 2 since it goes against their wishes in many ways. Basically this one individual hijacked the name to push his own ideas.

      From the last story [slashdot.org] it's pretty damned clear that "Gnutella" 2 is not going to be a particularly helpful or effective protocol. As someone who uses the real Gnutella (sometimes even for perfectly legit purposes) and thinks it works, I'll stick to the real Gnutella. It kee
    • I agree. This is a protocol that is going to die a quick death. Instead of creating a great new protocol, he just created yet another p2p protocol (there are hundreds of other ones), but he figured out that if he stuck the Gnutella name on it, he could get lots of free publicity from sites like Slashdot. This way it wouldn't have to be judged on it's merits. Hell, I just developed Gnutella 3 which outdates Gnutella 2, come look at my site. No one minds he wrote his own protocol, but he quite uncreative
  • by asv108 ( 141455 ) <asv@@@ivoss...com> on Tuesday March 25, 2003 @06:41PM (#5594879) Homepage Journal
    The specs were only one part of the whole "Gnutella 2" debacle, which is really a misnomer since the GDF never approved the use of the Gnutella name. the registration and use of the Gnutella2 name is the biggest outrage.

    For instance pretend for a second that Linus did not have the copyright for the Linux name and a coder or better yet Michael Robertson registered the domain name Linux3.com and marketed a new kernel as an official version of the Linux kernel by Linus and pushed it as the latest and greatest version of Linux.

  • by pldms ( 136522 )
    I'm suprised that IPv6 support is barely mentioned in this spec:

    IPv6 addresses are longer and are not yet defined within the scope of Gnutella2, however applications should be aware that if the node address is not 6 bytes it is of a different address family

    With the number of machines now sat behind NAT it seems like an odd omission. So many p2p applications have FAQ entries explaining carefully how to port forward, and that only enables one machine behind the NAT box to be fully part of the network.

  • re: Handshake Stages (Score:2, Interesting)

    by Anonymous Coward
    GNUTELLA CONNECT/0.6
    Listen-IP: 1.2.3.4:6346
    Remote-IP: 6.7.8.9
    User-Agent: Shareaza 1.8.2.0
    Accept: application/x-gnutella2
    X-Ultrapeer: False

    The Remote-IP header contains the IP address from which the remote host is connecting. This allows a remote host operating through some kind of network address translation system to learn its effective external address.

    The Local-IP header contains the IP address and port number that the local host is listening for inbound TCP connections on. It should be listening for
    • Can you say DDoS? Would be fun and easy to get an entire network of gnutella clients to respond to one ip.

      Looks like somebody didn't read the entire G2 Specs. Miss the part about Search Security [gnutella2.com], have we? Just so you don't have to get your Anonymous ass up and look, here it is for you:

      In an environment where a single query injection may result in a number of responses, acting as a virtual "traffic amplifier", it is desirable to verify that the return address is indeed that of the original sender. This

  • Among the "must" features I read : "Some form of bandwidth management scheme to keep network and transfer bandwidth below 95% of the user's link capacity - be it manually configured or some automatic scheme (very important to avoid flooding local connection)". I would have presumed that this functionality has nothing to do with Gnutella and is better left to iptables. I don't even understand how Gnutella is supposed to be aware of what other applications are doing with the link so that it can "keep network
    • I would have presumed that this functionality has nothing to do with Gnutella and is better left to iptables.

      Where can I download the equivalent of iptables for Microsoft Windows 2000?

      And is there a GUI based configuration program for iptables on Linux? Not everybody who wants to use P2P file sharing has experience with directly editing text files to configure a machine.

  • While refining the original protocol is all well and good, why not look towards intergration with other open networks now?

    I've used em all, as they say, and while no one client is best for all applications I'd say the Emule development is damn close. Since it's Open Source and there are several main "production" versions from different [emule-project.net] groups [emuleplus.tk] plus individual modders [emule-project.net] putting out even more versions on the cutting edge of development. The best code gets quickly integrated all the way from the edge to the trunk, I've had my eye on their mod forums as well as the latest emule 27a thru 27c releases and things are really moving towards another great milestone release.

    With the integration of Overnet [overnet.com] support into EMule it now has the best of both worlds, with both public servers and client to client directories. Plus with weblink [sharelive.com] sites [sharereactor.com] making it easy to find and add known good files to your queue, by batches if needed, it gives the end user the complete experiance of a mature tech.

    At least Gnutella is open and may actually end up moving in this direction, I'm disappointed in hearing that the upcomming WinMX [winmx.com] will still be closed, both their client and their network really have some good features but in the P2P world closed is death IMHO. As for me, I'll be waiting for the latest 27c EMule as modded by Sivka [emule-project.net], my personal favorite at this time.

    Jonah Hex
    • ED2K really isn't a "Network", persay. It's centralized. In addition, the content on it is pretty much limited to ShareReactor. Overnet has the possibility of being different, since it's decentralized and more user friendly (though Overnet's main software isn't very user friendly).

      I find that Shareaza has the best GUI and set of features. Gnutella2 is surperior to ED2K (and Overnet, AFAIK) since it has systems that allow metadata, thumbnail preview of video in search results, uses less bandwidth etc. I've
      • ED2K is not centralized, it's topology is similar to the untrapeer/leaf system used by gnutella except the "servers" run separate software and host many more users each (up to 100,000).

        As another poster said, the jury's still out on the real Gnutella2 but Shareaza is certainly not superior to emule. Shareaza uses more bandwidth the emule, all it takes is a cursury check of the stats page in emule then the amount transfered to connected hubs in Shareaza to confirm this. Most people using emule use sharere
    • With the integration of Overnet [overnet.com] support into EMule it now has the best of both worlds, ...

      You sure about that? There is no mention of Overnet in the eMule changelog. You sure you aren't thinking of the eDonkey Hybrid?

    • lMule (Linux) (Score:3, Informative)

      by antdude ( 79039 )
      In case anyone wants to run eMule [sf.net] in Linux, you can get lMule [sourceforge.net] (Linux port).
  • Hey, how close are we to having something like Gnutella2 host a massive database, where we can create tables and store data and make queries against it? The advantages of this should be obvious.
  • Huh? (Score:3, Interesting)

    by rlowe69 ( 74867 ) <ryanlowe_AThotmailDOTcom> on Tuesday March 25, 2003 @07:15PM (#5595089) Homepage
    Sorry, I'm new to this Gnutella2/Gnutella battle.

    If Mike really did use the Gnutella name without permission, why doesn't someone sue him? These "products" are far too similar to be called by such similar names. For example, I'd get my ass sued if I made a new operating system and called it 'Linux2'. Unholster the IANAL's and tell me why. Or even better, get a real lawyer to tell me why.

    Otherwise, stop bitching about the fact he's using the name if you aren't going to do anything about it.
    • Because the Gnutella name is not trademarked/copyrighted. It is "Open/Free". Nobody owns Gnutella, just as Mike does not own Gnutella2.

      To me, it's silly. It's like the Internet. Do people who own the Internet (??) sue the people who created Internet2? No.
    • If Mike really did use the Gnutella name without permission, why doesn't someone sue him?

      Because they can't sue. They don't have a registered trademark on the name "gnutella". Just brcause the name is in common use to describe the protocol doesn't make it a trademark.

      For example, I'd get my ass sued if I made a new operating system and called it 'Linux2'.

      Linus does hold a registered trademark on the term "linux" as used to refer to computer operating system software. Wether he's sue is a good quest

    • For example, I'd get my ass sued if I made a new operating system and called it 'Linux2'.

      Er...no...I think you're sort of missing the point of Linux.
  • by throwaway18 ( 521472 ) on Tuesday March 25, 2003 @07:30PM (#5595130) Journal
    1) Shareaza works reasonably well though the lack of a usefull anti leech
    mechanism is a drawback. A leaf and hub architecture is a reasonable compromise,
    it usually dosn't allow searching of the whole network.
    A distributed hash table architecture would allow global search but DHT is
    vulnerable to an attacker with modest resources flooding the search space with
    junk.

    2)I'm interested in the reliable communiaction over UDP part of the protocol.

    Two peers, neither of whom accept incoming connections due to connection sharing
    or firewalling can't exchange files with any current p2p software.

    I'm a bit surprised that no p2p project has tried to do UDP connection splicing
    to allow two peers, both behind internet connection sharing (NAT) to talk to
    each other. It not be possible but I havn't come across anyone who has tried at all.
    It dosn't have to work for everyone to be usfull. Just allowing 10% of
    NATed hosts to communicate would be worth the effort.

    NAT routers usually allow outgoing UDP connections, normally the remote
    machine will be listening on a UDP prt (most common use is port 53 for domain
    name lookups. The local computer sends out a packet with a unique local port
    number (sequentially or randomly assigned) and a remote port of 53.
    When a UDP reply arrives from the internet, it also has a remote port number
    of 53 and the chosen local port number. The connection sharing machine
    looks at the local port number and compares it to a table of known connections.
    If it matches an entry it knows which of the computers behind the NAT
    it is intended for and forwards it.

    In theory, if two NATed hosts send out UDP packets at the same time, using
    the same port numbers the connection will penetrate the NATs. It requires the
    help of another machine but in a p2p system you have plenty of machines that
    can pass on some small messages.

    The only problem I can see is that a NAT may change the local port number.
    I hope that cheap cable/dsl routers only change the local port if necessary,
    or if they do will use predicatable numbers.

    This technique will also be usfull for getting through statefull firewalls.

    I need to research this more. Am I missing somthing?
    I'm aware that shifting files over UDP requires TCP compatible flow control
    so it dosn't hog all the bandwidth.

    3)Due to the number of people behind transparent proxys that hijack all outgoing
    connections to port 80 and the number of people who set their filesharing
    clients to listen on 80, I think is is a pity Mike didn't take the opportunity
    to add a faculity to encapsulate traffic with a fake HTTP GET header so it will
    go through http-only proxys. Kazaa does somthing like this.
    • I'm a bit surprised that no p2p project has tried to do UDP connection splicing
      to allow two peers, both behind internet connection sharing (NAT) to talk to
      each other.


      Check out the UDP based messaging protocol [cubicmetercrystal.com] used in the alpine search communication. It supports dual NAT communication between peers and reliable/unreliable transport of datagram packets.

      For bulk transport (most apps use UDP for messaging only) you would need to use something like AirHook [airhook.org] to handle retransmission and high throughput tra
  • I'm going tangent, and potentially off-topic.

    MP, "Gnutella2," has hi-jacked the Gnutella name. Normally, "Gnutella" would be a registered trademark, making this sort of nominal theft illegal. The intent of trademark law is to prevent this sort of action. We are so disgusted with IP laws that we won't use them, even [rare case] when they're the Right Thing.

    I suppose a judge would laugh at a "copyright theft enabler" using IP laws in this way, despite the legitimacy of the claim.

    I find it odd. The Trad
  • by autopr0n ( 534291 ) on Wednesday March 26, 2003 @02:28AM (#5596385) Homepage Journal
    The people who created Gnutella abandoned the project. No one owns the name, and anyone can call anything 'Gnutella2'.

    There can never be a 'legitimate' Gnutella2 because there is no 'legitimizer' to bestow legitimacy upon it.

    People should allow their protocols to grow on their own, rather then trying to take advantage of a dead name.
    • There can never be a 'legitimate' Gnutella2 because there is no 'legitimizer' to bestow legitimacy upon it.

      That's not entirely true. "Gnutella" is, by general concensus, now organised by the GDF [yahoo.com] (Gnutella Developers Forum), and if this protocol were to be accepted by that forum most people would probably consider it a legitimate use of the name.

      However, it is true that the name is not a trademark (AFAIK) but has become, due to multiple implementations, a generic term and therefore can be used by anybody
  • P2P networks must also be resilient to legal attacks. In response P2P must exploit legal loopholes.
  • #pragma pack(1)
    typedef struct
    {
    CHAR szTag[3];
    BYTE nFlags;
    WORD nSequence;
    BYTE nPart;
    BYTE nCount;
    } GND_HEADER;

    This is not a C structure. #pragma is an implementation-defined directive according to ISO/IEC 1999:9899. Moreover, it fails to define CHAR, BYTE, or WORD.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...