Gnutella vs. Gnutella2, Part 1

By Thomas Mennecke 2/25/03

Much dissent has been generated by the Gnutella community regarding Shareaza's implementation of Gnutella2. This community has been referred as “Mike’s Protocol” (MP) to those who do not recognize the use of the term “Gnutella.” While many have become dissatisfied with Shareaza, the BearShare camp has been most vocal. In this interview, we spoke to Vincent Falco, President of FreePeers, Inc., creators of BearShare. We would like to thank him for participating in this extended interview.

The Nomad Zen can be ordered from Amazon. There's been a lot of talk on the GDF about how Shareaza has been overqueerying the Gnutella network. How significant is this? Did this occur before or after the implementation of "Gnutella2" (or MP)?

BearShare: Currently, the end user is able to specify the frequency of the query; this is inappropriate. The user has the ability to set the query rate to give a DoS (Denial of Service) attack effect on the network. The download-retry interval is additionally adjustable, which causes a DoS attack effect on individual hosts. These are hostile actions. Additionally this constant hammering gives an unfair advantage in that the client using friendly querying does not receive the same attention as the client using hostile querying which uses up all available network resources.

Network resources are things like, CPU, memory and bandwidth capacity. The most precious of the three is bandwidth, no single user/client should be allowed to consume more than their fair share. Gnutella developers with a significant share understand this paradox and have designed their clients to be bandwidth friendly. Each Gnutella vendor has a share of the Gnutella network based on the popularity of their client. It is understood by responsible developers that network resources must be used fairly and only when appropriate in order to achieve the best possible experience for the user while maintaining a healthy network.

The current stance taken by Mike on this issue is troublesome, in that he feels it's their (the user’s) computer so they should be able to do whatever they want. What apparently isn't taken into account is the health and well being of the Gnutella Network, which is the primary concern for all Gnutella developers, not to mention the effect it has on the computer (on the receiving end) being over-queried.

Shareaza currently has a smaller share of the peer to peer market than other clients such as Limewire, Xolox or BearShare. If one of the larger clients had incorporated this "feature", the Gnutella Network would be slowed to a crawl; however, a developer with a small share like Shareaza's, can get away with these tactics in order to gain a perceived advantage for its own client without the rest of the network feeling the full effect immediately.

There is no need to allow for such frequent querying, unless the intent is to perform a DoS attack on Gnutella clients (unlikely), or to gain an advantage over other servents at the expense of network health (likely).

Shareaza had shown this behavior even before the introduction of MP and continues to show this behavior after the introduction of MP. The problem was brought to the attention of the Shareaza developers by the GDF and currently the issue is still withstanding with no apparent action taken toward resolution by Shareaza developers. Well, actually they did do something; they developed a proprietary protocol, wrapped in an open protocol name, made a lot of promises about specs and documentation which has yet to be seen by the GDF. I guess Shareaza developers figured out that the best way to protect a network from aggressive querying is by keeping the specs and true nature of the newly introduced proprietary protocol secret. What are some of the major problems facing the Gnutella network today? What is being done to confront these issues?

BearShare: Currently there are two major problems facing Gnutella today, the first is of technical nature the second is of communicatory nature.Technically, the biggest problem facing the Gnutella network today is the nature of broadcast queries. Gnutella is fantastic at getting the search out quickly. The downside is if you are searching for popular content, there is no way to throttle the flood of responses. Fortunately, by working through the GDF with the other Gnutella developers, dynamic querying combined with a high out-degree network topology will solve this problem. We have already incorporated support for both high out-degree and dynamic querying in the publicly available current beta of BearShare 4.3.0; this feature uses the implementation that came about through GDF discussion.

Gnutella’s biggest strength is an open community, which unfortunately can also be its biggest weakness as seen recently. The Gnutella’s strength comes from it being an open protocol, anyone can contribute, and anyone can study it. I would venture to say that more University papers deal with Gnutella or are based on Gnutella than any other P2P protocol. However, that open-ness is a double edged sword, since development takes place in the open, greedy developers can take advantage of other developers and their contributions. The Gnutella developers essentially have an open playbook, anyone can look anyone can know what the next move will be and how to counteract that move or how to put that move in their own playbook. Without this type of open-ness the Gnutella Network would cease to function. The Gnutella Network is for everyone. It is disheartening to see anyone take pieces developed by the GDF then market it as their own or even to go so far as to take the pieces, then begin an anti-Gnutella marketing scheme based around technology provided by the GDF.

With the introduction of anti-Gnutella marketing and school ground type arguing, the Gnutella Network is facing its biggest challenge. Private conversations and attempts at civil discussion have failed, which unfortunately has forcibly caused the block of a hostile Gnutella client. This is an unprecedented move, however so is a closed protocol on the Gnutella Network and anti-Gnutella marketing by a Gnutella client.

Developing a client on the Gnutella Network takes a considerable amount of time and dedication. When creating a Gnutella client, you are not only making changes to your program, but you are also possibly making changes to the network as a whole which impacts all clients. Anything which globally impacts the Gnutella Network is discussed in the GDF prior to implementation. If something is incorporated into a client which globally impacts the Gnutella Network without previous discussion in the GDF, heated discussion will of course ensue. This is common even with features that are discussed prior to implementation. Each developer feels strongly about his or her contributions and the contributions of other developers. With any open discussions also comes open arguments, profanities, reactions, ideas, positive feedback and resolution. This is the nature of creativity and programming. You cannot have a new feature without discussion, disagreement, refinement and thought. If you are on the outside looking in on this group of developers you may become entangled in a single aspect of the overall process – the disagreement portion. There are some users who feel very passionately about their client of choice and will defend it at all costs. This is not always helpful to the development process; however the GDF is an open discussion format because Gnutella is for everyone. Lately a chasm has been created in the GDF, one side versus another. This is not the intent or purpose of the GDF; disagreements are frequent and short lived on the GDF because a resolution is quick to follow. All disagreements on the GDF find resolution between developers; however a resolution was not met due to a complete communication break down. If a developer on the GDF decides to place harmful “features” in their client and become unresponsive to the rest of the GDF and/or does not resolve the issue in a timely manner, problems will occur. The GDF has gotten stuck in the client vs. client discussion and needs to move forward for the betterment of the entire Network.

We hope that with the split, the spirit of brotherhood will return to the Gnutella Development community. There is of course backlash to our decision, however it is justified based on several factors which have been discussed ad nauseum. In the upcoming months there will be significant and exciting changes to the Gnutella network, we look forward to further developing this rich technology in an open and friendly environment. We additionally look forward to moving past this current obstacle and continue working to create a positive atmosphere in the Gnutella community. Tell us a bit more about GUESS and how it works. Will this be implemented into BearShare?

BearShare: GUESS is a UDP based querying mechanism that allows the querier to iteratively search Ultrapeers one or more at a time. The idea is that the client can stop when it reaches a desired number of results. It is NOT supposed to be a global search mechanism - it is made very clear in the GUESS documentation that the client MUST stop after it reaches a certain number of Ultrapeers. Another issue with UDP is that it doesn't work on all systems. Some providers (like AOL) block UDP traffic except on specific ports. In other environments, system administrators block external UDP traffic entirely, since that is the default configuration on most hardware.

We hope to avoid the implementation of GUESS entirely, since it is UDP based. UDP implementations suffer from two major problems: 1) Inability to apply flow control to incoming datagrams, and 2) Problems with firewalls and configuration. By switching to UDP, we also eliminate the possibilities of compressing host connections, or leveraging existing TCP/IP based protocols (like SSL).

We are continually working with fellow Gnutella developers and hope to have a vastly improved system implemented very soon, whether or not it will ultimately be GUESS or a hybrid version is still up for debate. What exactly happened between the Gnutella developers and Shareaza? Many individuals feel that Mike Stokes played a very positive role and contributed many helpful ideas to the Gnutella community.

BearShare: Mike started off as a respected new member of the Gnutella developers’ community, and then things began to go very very wrong. Many new developers implement new features which end up being harmful to the Gnutella Network, they are contacted then a resolution is met. Mike went beyond what is considered acceptable when he created an entirely new closed protocol without the guidance and support of fellow Gnutella developers then released it on the Gnutella community. Mike was included in discussions of GUESS, the proposed evolution of the existing Gnutella protocol, as were all Gnutella developers.

Mike adopted Gnutella and implemented some proposals that were brought to the GDF by others, for example: Gordon Mohr's MAGNETS. There is this myth that he contributed something to Gnutella, while in reality he contributed nothing, he implemented others proposals while leaving the heavy lifting of network health to the established players. Had there been no GDF, he would have had no sources for his work. Even his own MP protocol is a derivative of work of many ideas that lead up to GUESS, with the big difference being that the GUESS specs were discussed openly in the GDF and its specs are available to everyone, while the MP specs are his and his alone.

Currently, if we (the Gnutella Network) decided we wanted to name the next generation of Gnutella "Gnutella2", we couldn't, because the name has been wrongly stolen out from under the community. There was never any need to register because everyone involved was working toward a common goal, except apparently one person. The Gnutella developers cannot sit idly by as a once upstanding Gnutella developer takes it upon himself to introduce a hostile client, hostile marketing and go on to give it the apparent stamp of approval by placing the Gnutella name on a product which was not created, tested and refined by the Gnutella developers community. Mike's actions are at best questionable.

The incorporation of hostile “features” in Shareaza such as:

As you can see from the above, Shareaza has done everything possible to act as a hostile client and team. Only after the above actions and repeated failed attempts at discussion did BearShare finally block the hostile client in order to help keep the Gnutella network safe. Has the dust settled between Gnutella (BearShare, LimeWire) and Shareaza? What communications, if any, exist between the Gnutella camp and Shareaza?

BearShare: The dust will not settle for so long as Shareaza's hostile marketing continues and communication is absent. The GDF is the established means of communications for Gnutella developers. The Shareaza developers are welcome to participate, but they have decided not to. The only Shareaza participants in the GDF are users and testers, the actual developers are absent. If you don't participate in the GDF, then you're not contributing, just leeching.

The Gnutella developers’ community has and is attempting to move on and introduce some great new features which we have scheduled for release quite soon. With all the proposed improvements, how long do you feel it will take for Gnutella to perform as well as some of the top P2P networks?

BearShare: Performance depends on what you are measuring. Although the bottom line as far as users are concerned is how quickly and reliably the file they see in their search results will be delivered to their systems and the answer to that is within the next 3-6 months you will see Gnutella performing substantially better than some of the currently top P2P networks.

I believe that the Gnutella is currently performing as well as or even better than some of the other top p2p networks. Gnutella is a proven and growing network, it's a very exciting time for Gnutella -- there are many exciting changes scheduled and currently being developed. I believe the rest of the p2p community will be very impressed once the new changes are rolled out. The Gnutella network has a very powerful ace up its sleeve, it's an open protocol so the more developers there are, the stronger the network. As long as the Gnutella network retains this ace, it will be unstoppable. How do you envision the future of Gnutella in 6 months? A year?

BearShare: Stronger, more innovative, stable. The longer Gnutella is around, the better it gets. In six months, see above. In a year, our intention is to make Gnutella the premier content delivery network. If you were to compare the Gnutella of today to the Gnutella of 6 months or a year ago, there really is no comparison. The Gnutella has implemented quite a few new features and there are no signs of stopping any time soon. It will be a great year for Gnutella based on the planned features which are up and coming. The buzz word will be "revolutionary". Since the deployment of Gnutella2 (MP), what effect, if any has it had on the Gnutella network? Do you feel it has drawn users away?

BearShare: The current effect on the network is minimal as MP is used by a very small percentage of users. The overall effect of MP on the development community has been one of disappointment. We all saw a great light in Mike Stokes and watched as it became tainted when he put his desires ahead of the Gnutella network.

If you are asking if it has drawn users away from BearShare, the answer is no. Unbiased user experiences of Shareaza include reports of instability, inability to locate content, and a poor user interface.
Shareaza doesn't have a solid foothold in the p2p market (BearShare currently has at least 50 times more users (a very conservative estimate) and its current slander campaign has done nothing to help its numbers, it has instead hurt it and Mike's reputation. Most Gnutella users don't participate in forums and websites associated with peer to peer clients. There are several million Gnutella users; there are only a few hundred or even a few thousand active voices in the peer to peer online world. The voices have already made their choice, so nothing that's been said will change their opinion. The bottom line is you're either a Gnutella client user or a future Gnutella client user because there aren't any other open protocol networks. Open protocol networks are the way of the future; it is folly to consider creating or even implementing a closed protocol in today’s atmosphere. Vinnie made this post to the BearShare forums, "Mike Stokes, author of Shareaza, is nothing more than a common thug and deserves a thorough beating." There are other negative comments from Vinnie regarding Mike Stokes in the GDF. Please justify these comments, and do you still believe this about Mike?

BearShare: The GDF is a place for very open (and often blunt) conversation. When you're working in a community environment where each client has its own voice and yet must continue to comply with the rest of the network, discussion can get heated because we all feel strongly about our individual clients and the network as a whole. There's a fine line between giving your client an edge and harming the rest of the network. Mike leapt over this line and in turn I voiced my opinion of his actions. The difference between me and Mike is my words are sometimes hasty, whereas his actions are hasty. The link you've provided and the quote you give do not harm the Gnutella Network and its performance, Mike's recent actions do.

These comments are completely justifiable. Mike has allowed his users to deprecate other developers, other applications (like BearShare), and the Gnutella protocol itself. He unjustifiably calls Gnutella "a crappy, outdated, inflexible protocol". How can someone whose client is based on Gnutella technology turn around and issue such false statements? It seems many in the P2P community have taken a dislike to BearShare. Do you believe that comments as mentioned in Q9 have helped BearShare's public relations? What is being done, if FreePeers believes there's a problem, to resolve much of the negative feelings towards BearShare?

BearShare: You will need to define "P2P community". If you intend for it to mean the user base of the Gnutella Network, then you are very incorrect in assuming that there has been any type of dislike taken to BearShare. Quite the contrary. We have received numerous emails letting us know how pleased they are with our product and to "keep up the good work". We have not experienced any type of drop in downloads or anything else which would indicate displeasure with BearShare. If anything we have experienced an increase in downloads and an influx of emails complimenting our newest version of BearShare. The free version of BearShare now has only one bundled product - this high quality advertising product doesn't send user information out and of course respects privacy. In fact, a few weeks ago we removed the banner advertisements from the BearShare application and replaced it with the message "In appreciation of our loyal users, we have removed the advertising from this space". One week later, we replaced the message with free content. Instead of advertising banners, we now provide information and MAGNET style downloads to independent artists, with pages hosted by our own servers on our own bandwidth. The artists that we worked with have been overwhelmed, and have sent us numerous emails proclaiming their appreciation of the massive boost in exposure.
If you intend "P2P community" to mean the vocal 1% of p2p users who visit and take part in p2p discussion online they are basing their arguments and opinions on the slander campaign launched by Shareaza. You will also notice that most if not all persons voicing their dislike of BearShare have based it not on the technical performance, but rather because they are fanatics of Shareaza or of other networks such as Fast Track. Their opinion has not changed, instead they have found a reason to be vocal about their current and previous opinion of BearShare (no matter how long ago or if ever they have used BearShare). With this having been said, it's irrelevant what was said and what was not said, their opinion would have been the same.

Some of the recent hostilities in the GDF and in other forums have brought issues to the forefront. For example, BearShare has been criticized for its "island effect" and for our Secure Channels feature, which provided a way to download from other servents, but not allow uploads to them. The latest round of Gnutella vs. Shareaza elicited negative comments regarding these BearShare "features", and we have responded by adjusting the way our application behaves and the features it presents.

We have redesigned our Secure Channels feature so that it is either entirely on or entirely off. We have also made changes to reduce the unintentional island effect which was created during security improvements. These changes are evident in the latest BearShare 4.2.4 release.

We appreciate and encourage constructive feedback, which is why we have a BearShare Labs forum, a BearShare Feature Request forum, a 10 things I hate about BearShare forum and so forth. We encourage feedback, then analyze the overall effect each proposal will have on the client and network then we incorporate/redesign/improve them as appropriate.

As the founder and CEO of BearShare, I will continue to be an outspoken member of the Gnutella developers’ community for so long as the ideals of the Gnutella community are not being upheld. It is my job and every other developer's job to ensure that Gnutella remains Gnutella. Assuming FreePeers believes they have an image problem, what do you feel caused this situation?

BearShare: If upholding the ideals of the Gnutella developers’ community and including fellow developers on any globally impacting features is considered an image problem, it's a problem BearShare is happy to have. Any other "image problems" are the cause of Shareaza zealots visiting or our forum and trolling or posting negative marketing. At no point did BearShare, its representatives, or our user base go to our competitors (Gnutella or otherwise) and promote Shareaza was the first to introduce this underhanded behavior. Mike never went out of his way to stop it. Shareaza seems to be developing a strong userbase, with many expert users stating that it out performs Gnutella. Will FreePeers implement some of Gnutella2s attributes? If not, why?

BearShare: Shareaza is not developing a strong user base if you view the numbers; it is instead remaining a very small percentage of the Gnutella Network. Their recent slander campaign has done nothing to help promote their product; it has instead left a bad taste in the mouth of Gnutella developers and leads them to question the motives of the developer of Shareaza. The "expert users" you are referring to can only be the very young Shareaza fanatics which are quite vocal in slandering other Gnutella clients while giving false information about their own client in order to receive more users. If you look at truly unbiased opinions, you will see many responses such as "I couldn't connect at all", "this program is very unstable", etc.

These self proclaimed “expert users” are under the illusion that it performs better, unfortunately you cannot compare its performance to Gnutella’s, nor can you evaluate the protocol. Their test environment is skewed. A network of a couple of thousand cannot be compared to a network of hundreds of thousands. If Gnutella were just 10,000 nodes it would not have any query and result traffic issues to deal with, and by the way at 10,000 nodes, all searches would be universal and almost instant. Anyone tested how long a “universal” search takes on Shareaza?

These self proclaimed “experts" flock to Shareaza because it is highly customizable. So customizable, that you can alter the programs behavior on Gnutella to take advantage of network resources at the expense of reducing everyone else's user experience. If all programs behaved this way, Gnutella would never work. I would also like to point out that Shareaza offers little to NO controls for the MP protocol behaviors, probably because Mike doesn't want his proprietary network to be vulnerable to degradation.

MP is a closed and undocumented protocol which is not supported by the Gnutella developers’ community. Free Peers incorporating anything related to MP would be similar to incorporating anything from Fast Track or any other network using a closed protocol. Free Peers upholds what Gnutella stands for and a closed protocol is very much the opposite. It was obvious that FreePeers was dissatisfied when Mike registered Was it the intention of FreePeers to register this domain alone or coordinate the purchase among the major developers? If it was FreePeers intention, why wasn't it registered much earlier? Is Mike not free to register any domain that is available?

BearShare: is not owned by a single individual, is. does not promote a single client, does. is a symbol of community and the combined hard work of several developers. is one developer's domain. It was never the intention of Free Peers, Inc. to register , to do so would be a slap in the face to fellow developers. Yes, the domain was available which gives one the ability to register it, however ethically the domain was not available and to register it and use it would be wrong. The Gnutella development community was not involved in the creation of MP, therefore the name "Gnutella" should not be applied to the new closed protocol. If the Gnutella Network were a closed protocol, this would have never been an issue because Shareaza would never have been created, nor would BearShare for that matter. The fact is Gnutella is for everyone, no matter who you are. If any person attempts to close off that opportunity, they are no longer following the ideals of the Gnutella Network. There is one recognized protocol on the Gnutella Network, not two.

If Fast Track were to create a Gnutella client then test out a new closed protocol incorporated into the new Gnutella client, it would be a very cut and dry case of banning. If they were to go on further to name the new closed protocol "G3" and register the domain name of and insist the protocol used (and created) by all other Gnutella clients is outdated and inferior, there would be an immediate reaction. What is different between Mike's closed protocol vs. one made by a competing network? Nothing. There is not proper documentation of the new closed protocol, there was never discussion of the new protocol between developers prior to the implementation and launch of the new protocol, there was not any type of approval given to use the new name and register the domain name, there was nothing communal about this new protocol except that it affects all other clients on the Gnutella Network whether they like it or not. Gnutella has stayed off the RIAA/MPAA radar for now. Do you feel Gnutella developers may become a target in the future? What has protected you up until now? What contingency plans exist in order to combat a potential RIAA/MPAA onslaught?

BearShare: Gnutella is based on community involvement and participation with a combined goal to see the Gnutella Network improve and grow. Gnutella is more like a family than a development group, each voice is heard and new members become involved every day. Currently, all clients on the Gnutella Network use an open protocol, this allows for a hydra effect. The RIAA/MPAA can cut off one head/client and a new one (or two) will grow in its place. As long as the Gnutella community continues to stand for open protocols and community involvement, Gnutella will continue to thrive. Have you used Shareaza since its implementation of Gnutela2? Please give us an honest assessment. How do you feel it compares against BearShare/LimeWire/XoloX?

BearShare: Yes. MP is based on UDP, although it boasts the ability to "search globally", this is not true. It can search Shareaza users that are using MP, which is unimpressive but it cannot search the entire Gnutella Network. This global search ability was available in previous versions of BearShare, prior to the introduction of UltraPeers -- the difference of course being that you were searching the Gnutella network. If this "feature" remains in Shareaza and they have a substantial increase in users, the protocol will collapse. It is impossible to design a system that allows for global keyword searches that scales infinitely. Even the GUESS specification makes it *extremely clear* that the algorithm must stop after visiting a certain number of Ultrapeers (10,000 I believe). Even if there are 50,000 Ultrapeers in the global network, GUESS requires stopping after a fixed number. This is made very clear, and the supporting research explaining why global keyword searching can never scale is given in the GUESS document and relevant GDF postings. Anyone with p2p development experience or mathematical skills can easily see through this “global search” ruse. Shareaza is nothing more than a hobby for Mike, currently there is absolutely no incentive for him to avoid abusing the Gnutella Network in order to give his client a perceived advantage, and he does in fact have everything to gain by abusing and badmouthing the Gnutella Network.

Currently MP and Gnutella are both parts of Shareaza, if Shareaza were to suddenly stop using Gnutella, Shareaza users would disappear because the content is simply not there. MP added to Shareaza is simply a means of testing out a new proprietary network and as such should never have entered the Gnutella network. Give us an assessment of the current and potential impact of Gnutella2 on the Gnutella community. How great or small is the threat? Is the current campaign against it necessary?

BearShare:Gnutella2 does not exist as of yet, however MP does. The Gnutella developers’ community is working on the evolution of Gnutella as we currently know it; we cannot name it Gnutella2 as that name is already taken. The "threat" is the same of any other closed protocol -- minimal. The current "campaign" is very justified, MP goes against every ideal that the GDF upholds. Negotiations failed, actions were then taken to forcibly fix the issues which the creator was either unable to or simply did not want to fix. The same actions would have been taken on any hostile client. I understand that the Gnutella community is concerned that Shareaza has not released the G2 specs. Please elaborate on this.

BearShare: In the Gnutella developers’ community, communication is everything. It is imperative that anything which globally affects the Gnutella Network (positively or negatively) be discussed amongst all developers prior to implementation. Mike took it upon himself to avoid this standard practice and introduce a globally effecting closed protocol on the Gnutella Network. He did not remove the offending closed protocol until such time as proper documentation and discussion may have a chance to take place; he instead released it in a final version (non beta) of Shareaza and promptly went on vacation. There have been many excuses and very little action, the longer the excuses went on the more frustrated and concerned the Gnutella developers community got. Mike has lost the trust of the Gnutella developers’ community and it will take a very long time (if ever) for him to regain that trust.

BearShare's homepage.

Other MP3 Stories:
Gnutella vs. Gnutella2, Part 2
eMule Interview
Locutus: P2P with security


Tom from is a regular contributer to MP3 Newswire. Tom's insights on other digital music issues can be read on his site and we encourage you to check it out.

The Samsung 700H comes with 128MB of memory and an FM tuner and is available on Amazon

Other MP3 Stories:
Screwed by the record labels? Claim your settlement from the record industry price fixing case.


Back to