This morning Gene Kan delivered an impressive overview of the history of Gnutella, discussed aspects of the current state of the network and its applications, and gave his impressions about the future of Gnutella.
It first began on March 14, 2000 when the programmers at
NullSoft released a program for file sharing that they decided to call "Gnutella". The original intent of the developers was to release their program under the open-source GNU Public License (GPL). However, that same day,
AOL, Nullsoft's owners, pulled the plug and essentially shut down the project. AOL claimed that Gnutella constituted an "unauthorized freelance project".
Despite these problems, the clear fact was that Gnutella itself was still quite a marvel. It included several key innovations that made it unlike other technologies before. Gnutella had no need for a centralized server, and included a method to dynamicall discover other Gnutella hosts on the Internet. Programmers can be "new and boldly different in every client," said Kan. The implemented search query method was flexible enough to allow for significant innovation for developers of software. The protocol itself was also very simple and accessible. Most importantly, Gnutella packaged the client and server into one package built upon preexisting open standards. The use of the open HTTP specification allowed even IE and Netscape to be "great clients."
Given all of these innovations, the open source community just couldn't let AOL crush everything. Soon after the shutdown, Brian Mayland took the Nullsoft program and reverse engineered its workings to figure out how the Gnutella protocol worked. His work led to software developments from people like Josh Pieper who created a text-based UNIX program, and Gene Kan & Spencer Kimball who tried to make a program with a more useable GUI.
Out of this burst of energy, Gnutella began to develop a strong grass roots interest. Growth of the network was carried mostly by word of mouth from users of the programs.
Once this took hold, the "Press and the Internet underground drove initial interest." A flurry of discussion erupted in the IRC channels, and mainstream print and web news articles drove public interest. At this point Gnutella needed more direction. On March 20, 2000, just a week after the shutdown, Kan decided it was time for something new. He created a "Seven Day Plan." "In the next seven days, we'll put up a website, fix Gnutella 0.56, and code Gnubile." The main Gnutella site was moved to
gnutella.wego.com. The move to wego was necessary because wego was providing free bandwidth and allowed for a better user experience.
Although everything was going well for Gnutella at this point, as the user base grew, critical problems in the system began to crop up. The network became flooded with ping requests and overloaded with too many search queries at once. The network topology was inefficient with slow modem connected computers acting as hubs for faster connections. Serious bugs in the first generation software sometimes allowed packets to travel on the network indefinitely. The network, originally designed for a small number of users, had trouble scaling up from hundreds of users to tens of thousands. Freeloading, people retrieving files while not providing any, also made it difficult for users to find what they were looking for.
Once again, the ardent community came to the rescue. Bob Schmidt developed the first host caching system. Programmers modified the Gnutella 0.56 code to eliminated the TTL bug so that packets traveled properly. And Jorge Gonzales took action to stop network spammers from crippling the network.
At this point, things were just getting too complicated for individual developers to handle everything. They had to code, deal with the press, the users, and money. This precipitated a need for commerical efforts to step in and come "to the rescue".
Clip2 developed gnutellahosts.com, a better implementation of a host cache, and also developed Reflector, which acted as a mini-server--a way to hybridize the Gnutella network incorporating some Napster-like topology. Commercial action was "what it takes" to further Gnutella.
Looking beyond the past and present, the future of Gnutella has several hurdles it must conquer. "Probably not, not today," was Kan's opinion on the current scalability of Gnutella. He also asserted that maintaining "benevolent commerical involvement" was also key to Gnutella's future. Additionally, Expansion into non-filesharing applications is critical to ensuring Gnutella's legitimacy as a development protocol.
In the end, is Gnutella a success?
"The clear answer is Yes!"