Happy Birthday, Gnutella: Pioneering P2P Protocol Turns Ten

Ten years ago this week, online music pioneer Justin Frankel released a little application dubbed Gnutella that enabled file sharing through a distributed P2P network. Frankel, whose previous claim to fame was programming the then hugely-popular Winamp MP3 player software, supposedly named the client after his favorite hazelnut cream spread, and the first version published online was really more of a proof of concept than anything else.

Still, Gnutella hit a nerve. Napster had been sued three months before, and many file sharers were rightfully fearing that the music industry would eventually prevail in court and force Napster to switch off its servers. With Gnutella, no such switch existed, as the client was allowing direct P2P connections without the help of any centralized server. Add to it the fact that Gnutella, unlike Napster, allowed users to swap videos and software as well as MP3s, and you begin to see why many immediately viewed Gnutella as the next step in P2P file sharing. [digg=http://digg.com/tech_news/Happy_Birthday_Gnutella_Pioneering_P2P_Protocol_Turns_Ten_2]

A step, one should add, that made Frankel’s employer AOL more than a little nervous. It only took the Internet giant a day to force Frankel and his colleagues to take down Gnutella – but even that was too long, as countless sites quickly started to first mirror, then build upon Frankel’s official Gnutella client. There’s always been a little bit of mystery surrounding the exact happenings of those days, but some people have been musing that a person with a surprising amount of insider knowledge showed up in one of the first IRC chat rooms dedicated to Gnutella soon after AOL pulled the plug, only to provide some very detailed information about the inner workings of the client’s P2P protocol.

Speaking of IRC: Early versions of the software didn’t really have any way for users to connect, save for entering another user’s IP address, which is why IRC quickly became an integral part of the early days of Gnutella. It was also in those IRC chat rooms that the myth of Gnutella as a seemingly invincible P2P protocol was born, and the fact that AOL tried but couldn’t contain the software seemed to fit right into that picture. Gnutella was one of the very first P2P apps I ever wrote about, so I lurked in those chat rooms as well, where people were cheering the fact that someone finally found a file sharing solution that couldn’t be shut down. I still remember one IRC user saying: “We’ve started a damn cult again!”

Only Gnutella wasn’t really ready to be a cult. The network routed search requests from peer to peer, leading to an exponential growth of traffic as its network became bigger. Napster programmer Jordan Ritter described the problem early on in a paper titled “Why Gnutella Can’t Scale. No, Really,” and Frankel himself, who has hardly ever gone on the record about Gnutella, once stated that he was fully aware of “how poorly it would scale” when he released the client.

Still, Gnutella captured the imagination of many, one of them being Mark Gorton, founder of the New York-based Lime Group. Gorton was at the time pursuing a vision of automating businesses through structured data, and Gnutella, as something that could, for example, distribute real estate listings wrapped in XML, seemed to fit that image quite nicely. Early versions of the Gnutella client of Gorton’s LimeWire venture were still written with this vision in mind, hoping to build a P2P network that could eventually be used to do all kinds of things with which we’re now familiar on the web, thanks to web services.

LimeWire’s engineers joined a growing group of developers loosely connected through web sites like the long-defunct Gnutella.wego.com (whose admin Gene Kan tragically committed suicide in 2002) and mailing lists like the one for the Gnutella Developer Forum, and one of the first issues to be tackled was scalability. The introduction of a two-tiered system of ordinary clients and so-called Ultrapeers helped grow both the network as a whole and each user’s search horizon. The idea was also later adopted by the developers of KaZaA, whose own take on this two-tiered approach still lives on in Skype’s P2P network.

Technical improvements like these helped Gnutella to grow, but the competition was quick to catch up. Bram Cohen unveiled a first version of BitTorrent only two years after Frankel had published Gnutella, and BitTorrent quickly became the file sharing client of choice for sharing videos online. Part of BitTorrent’s quick rise to fame was its modular simplicity: Cohen had outsourced much of the search and indexing of files to torrent web sites, only handling the actual distribution of data within the client. Gnutella on the other hand was meant to work without any web server. That made it much more invincible, but also much less accessible to users who migrated from apps and clients to a world of web services.

Another issue that has plagued Gnutella from the beginning is not technical, but legal. The protocol was supposed to outsmart trigger-happy lawyers, but the mere fact that there wasn’t a central switch to turn off the Gnutella network didn’t stop rights holders from going after people and companies associated with it. Lawsuits and legal threats forced Morpheus, Xolox, Bearshare and a number of other companies and developers to throw the towel.

LimeWire got sued by the music industry as well in 2006, but that hasn’t stopped the company from continuing with the development and monetization of its client. LimeWire’s client also utilizes BitTorrent these days, but LimeWire’s VP of Product Management Jason Herskowitz told me during a phone conversation that Gnutella has “worked really well” for the company, and that its engineers are looking into ways to make Gnutella once again more attractive to developers by exposing some of its functionality through web services. “There is still a long future ahead for Gnutella,” he predicted.

Not everyone agrees with that outlook. Adam Fisk, who was hired by LimeWire as one of its first developers in the summer of 2000, but left the company in 2004 to eventually start his own P2P venture dubbed Littleshot, believes that some core assumptions of the Gnutella protocol are outdated. “I don’t think that distributed P2P search makes any sense,” he told me, explaining that the very server-less search functionality that made Gnutella superior to Napster also ended up being its biggest burden, and that it would be much easier to have servers handle search and just use P2P to deliver data – a recipe that has already helped BitTorrent succeed.

Sure, LimeWire and some other Gnutella clients could still stick around for a long time, Fisk admitted, but he was skeptical that we would ever see any significant new project based on Gnutella. “That would be shocking,” he said.

Photo courtesy of (CC BY-SA) Flickr user Jessica  Diamond.

Related content on GigaOm Pro: What’s Next for the Cloud? Distributed Architectures (subscription required)