<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Gnutella</id>
	<title>Gnutella - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Gnutella"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Gnutella&amp;action=history"/>
	<updated>2026-07-17T13:02:43Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Gnutella&amp;diff=448989&amp;oldid=prev</id>
		<title>imported&gt;Ohtashinichiro 来自 2026年5月7日 (四) 01:05</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Gnutella&amp;diff=448989&amp;oldid=prev"/>
		<updated>2026-05-07T01:05:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{更新|time=2017-07-13T13:48:38+00:00}}&lt;br /&gt;
{{NoteTA|G1=IT}}&lt;br /&gt;
{{not|Nutella}}&lt;br /&gt;
{{File sharing sidebar}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gnutella&amp;#039;&amp;#039;&amp;#039;（{{pronEng|nʊˈtɛlə}}，单词中的&amp;#039;&amp;#039;g&amp;#039;&amp;#039;不发音，或者发音为{{IPA|/gnʊˈtɛlə/}}）是一种[[文件共享]]网络。2005年6月，gnutella约有181万台用户（计算机）&amp;lt;ref&amp;gt;[http://www.slyck.com/news.php?story=814 Slyck News - eDonkey2000 Nearly Double the Size of FastTrack] {{Wayback|url=http://www.slyck.com/news.php?story=814|date=20180129195624}}, Thomas Mennecke for [[Slyck.com]], June 2, 2005.&amp;lt;/ref&amp;gt;，而2006年1月增加到超过300万个节点&amp;lt;ref name=&amp;quot;population&amp;quot;&amp;gt;[http://www.barsoom.org/papers/gi-2006-long-term.pdf On the Long-term Evolution of the Two-Tier Gnutella Overlay] {{Wayback|url=http://www.barsoom.org/papers/gi-2006-long-term.pdf |date=20170810060540 }}. Rasti, Stutzbach, Rejaie, 2006.  See Figure 2a.&amp;lt;/ref&amp;gt;。截至2007年底，它是[[互联网]]上最流行的文件共享网络，估计市场份额超过40%。&amp;lt;ref&amp;gt;[https://arstechnica.com/news.ars/post/20080421-study-bittorren-sees-big-growth-limewire-still-1-p2p-app.html Ars Technica Study: BitTorrent sees big growth, LimeWire still #1 P2P app] {{Wayback|url=https://arstechnica.com/news.ars/post/20080421-study-bittorren-sees-big-growth-limewire-still-1-p2p-app.html |date=20081216011917 }} Eric Bangeman, April 21, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=http://arstechnica.com/news.ars/post/20080421-study-bittorren-sees-big-growth-limewire-still-1-p2p-app.html |title=Ars Technica Report on P2P File Sharing Client Market Share |accessdate=2008-09-11 |archive-date=2008-12-16 |archive-url=https://web.archive.org/web/20081216011917/http://arstechnica.com/news.ars/post/20080421-study-bittorren-sees-big-growth-limewire-still-1-p2p-app.html |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
Gnutella网络的第一个客户端由[[Nullsoft]]公司的[[贾斯汀·法兰科]]（Justin Frankel）与[[汤姆·帕勃]]（Tom Pepper）于2000年早期最先开发。同年3月14日，该程序被放在Nullsoft的服务器上并允许公众下载。该程序的[[源代码]]原计划稍后在[[GNU通用公共许可证]]下被发布。&lt;br /&gt;
&lt;br /&gt;
与半集中式网络如[[FastTrack]]（[[KaZaA]]）以及[[Napster]]不同，Gnutella网络是完全分布式的。其最初的流行是源于2001年早期Napster由于法律纠纷而被关闭的威胁。不断增长的用户也使得该协议的最初版本暴露了不少缺陷。2001年早期，各种不同版本的协议（最初以[[专有软件|专有]][[闭源软件|闭源]]客户软件形式实现）使得Gnutella的扩展性得到了增强。与先前的协议将每一个用户节点都当作用户以及服务器不同，改进过的协议将某些用户当作&amp;quot;超节点&amp;quot;（ultrapeer），其为与之连接的所有用户路由搜索请求及回应。&lt;br /&gt;
&lt;br /&gt;
这些发展使得Gnutella网络进一步吸引了更多用户。2001年晚期，一种Gnutella客户端软件[[LimeWire]]成为[[自由开源]]软件。2002年2月，[[Morpheus (computer program)|Morpheus]]，一个商业文件共享开发群，放弃了原先的基于[[FastTrack]]的端到端软件，并发行了新的基于[[自由开源]]Gnutella客户端软件[[Gnucleus]]的新客户端软件。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Gnutella&amp;quot;这个词语现在被来指作被不同的客户端软件使用的一种开放网络协议，而不用来指作任何一个单独的项目或者某一个软件。由于许多不同的组织都在开发新的客户端软件，而且该协议本身也将不断演变，Gnutella这个词语的意义在将来或许也会变化。&lt;br /&gt;
&lt;br /&gt;
Gnutella这个名字是&amp;#039;&amp;#039;[[GNU]]&amp;#039;&amp;#039;与&amp;#039;&amp;#039;[[Nutella]]&amp;#039;&amp;#039;的[[混成词]]：人们普遍认定法兰科与帕勃在开发Gnutella项目的时候吃了许多的[[Nutella]]，并且希望在GNU通用公共许可证下完成项目。Gnutella并未与任何[[GNU|GNU项目]]相关联。&amp;lt;ref&amp;gt;{{Cite web |url=http://www.gnu.org/philosophy/gnutella.html |title=Regarding Gnutella（www.gnu.org） |accessdate=2008-09-11 |archive-date=2017-12-23 |archive-url=https://web.archive.org/web/20171223131738/https://www.gnu.org/philosophy/gnutella.html |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 工作原理 ==&lt;br /&gt;
要了解Gnutella网络是怎样工作的，先设想一个大的由用户（称为“节点”）组成的环，每个节点都有Gnutella客户端软件运行。当初始启动时，客户端软件必须进行[[自举]]（Bootstrapping）并找到至少一个其它节点，有多种不同的方法可以达到这一功能，包括软件内置的一组正在工作的已经存在的地址列表，Web缓存的已知节点更新（称为[http://www.shareazasecurity.be/wiki/index.php?title=GWC GWebCaches] {{Wayback|url=http://www.shareazasecurity.be/wiki/index.php?title=GWC |date=20101130102212 }}）, UDP服务器缓存以及[[Internet Relay Chat|IRC]]。一旦连接上，客户端就会请求一张活动地址列表。&lt;br /&gt;
&lt;br /&gt;
当用户想要进行搜索时，客户向每一个活动联接节点发送请求。在历史上（协议0.4版本），一个客户的活动联接节点数十分小（大约是5），所以每一个收到请求的联接节点都会再向其自身的所有联接节点转发该条请求，如此继续下去，直到该请求数据包在网络中被转发的“跳数”超过一个预先设定的数值（最大为7）。&lt;br /&gt;
&lt;br /&gt;
到了0.6版之后，Gnutella网络中的节点被划分为叶节点（leaf nodes）与超节点（ultra nodes或ultrapeers）。每个叶节点仅与少数（一般为3）超节点连接，而每一个超节点与多于32个的其它超节点相连。在这种更高的出度（outdegree）下，先前提到的一条查询在网络中能达到的最大“跳数”被降低到4。&lt;br /&gt;
&lt;br /&gt;
叶节点与超节点利用查询路由协议（Query Routing Protocol）来交换查询路由表（Query Routing Table (QRT)）。叶节点将它的QRT发送到每一个与之连接的超节点，超节点随后将每一个与之相连接的叶节点传来的QRT以及其本身的QRT合并，并且将其与自身的邻居节点交换。&lt;br /&gt;
&lt;br /&gt;
在实际中，这种在Gnutella网络中的搜索模式是十分不可靠的。由于每一个节点都是一台普通的计算机用户，他们经常连接或者断开网络，所以整个Gnutella网络结构永远都不是完全稳定的。Gnutella网络搜索的带宽消耗也是随着连接用户的增加而指数递增的[http://www.darkridge.com/~jpr5/doc/gnutella.html]{{Wayback|url=http://www.darkridge.com/~jpr5/doc/gnutella.html |date=20170806013417 }}，经常饱和的连接会导致较慢的节点失去作用。因此，搜索请求在网络中会被经常丢弃，与整个网络相比，大多数的查询只会到达其中的很少一部分节点。&lt;br /&gt;
&lt;br /&gt;
== 协议功能及扩展 ==&lt;br /&gt;
Gnutella曾经是一种纯粹的基于洪泛式请求（query flooding）协议。早期的Gnutella 0.4版使用5种不同的数据包种类，即是：&lt;br /&gt;
&lt;br /&gt;
* ping：用于发现网络中的节点&lt;br /&gt;
* pong：用于回覆ping消息&lt;br /&gt;
* query：用于寻找某一个文件search for a file&lt;br /&gt;
* query hit：用于回覆query消息&lt;br /&gt;
* push：用于处于防火墙后的服务器的下载请求&lt;br /&gt;
&lt;br /&gt;
以上不同消息包的定义主要是为了处理Gnutella网络中的搜索功能。文件传输功能是由[[HTTP]]协议实现的。&lt;br /&gt;
&lt;br /&gt;
Gnutella协议的开发目前由[[Gnutella Developers Forum|GDF]]（Gnutella开发者论坛）所领导。许多扩展协议已经或正在由不同的软件商以及GDF的自由开发人员开发。这些扩展包括智能查询路由（intelligent query routing）、[[SHA-1]]校验码、query hit transmission via [[用户数据报协议|UDP]]、基于UDP的查询（querying via UDP）、基于[[传输控制协议|TCP]]的动态查询（dynamic queries via TCP）、基于UDP的文件传输（file transfers via UDP）、[[XML]]元数据、source exchange（也被称为&amp;quot;the download mesh）以及parallel downloading in slices（swarming）。&lt;br /&gt;
&lt;br /&gt;
在Gnutella开发网站上有试图在Gnutella 0.6版中将这些协议扩展规范完成的相关努力。由于所有的协议扩展还只是作为提议而存在于规范中，因此尽管已经过时，Gnutella 0.4版的标准至今仍是最新的完整技术规范。实际上，GDF的开发人员指出在目前的Gnutella网络中使用0.4版的消息握手机制已经十分困难，或者根本不可能，开发人员应该遵循[http://gnet-specs.gnufu.net 正在编写中的技术规范]{{Wayback|url=http://gnet-specs.gnufu.net/ |date=20080724010901 }}来进行开发工作。 &lt;br /&gt;
&lt;br /&gt;
== Gnutella2 ==&lt;br /&gt;
{{main|Gnutella2}}&lt;br /&gt;
Gnutella2并不是Gnutella的继承者，&amp;lt;ref&amp;gt;{{Cite web |url=http://www.mp3newswire.net/stories/2003/gnutella2.html |title=Slyck interviews Greg Blidson of LimeWire on Gnutella2 |accessdate=2008-09-11 |archive-date=2012-07-28 |archive-url=https://web.archive.org/web/20120728110155/http://www.mp3newswire.net/stories/2003/Gnutella2.html |dead-url=no }}&amp;lt;/ref&amp;gt;而是Gnutella网络协议的一个分支，其于Gnutella相比既有优点也有自己的缺点。&amp;lt;ref&amp;gt;{{Cite web |url=http://wortschatz.uni-leipzig.de/~fwitschel/vorlP2P/literatur/search_methods.pdf |title=Gnutella and Gnutella2 search methods compared |accessdate=2008-09-11 |archive-date=2007-09-26 |archive-url=https://web.archive.org/web/20070926110918/http://wortschatz.uni-leipzig.de/~fwitschel/vorlP2P/literatur/search_methods.pdf |dead-url=yes }}&amp;lt;/ref&amp;gt; A sore point with many Gnutella supporters is that the &amp;quot;Gnutella2&amp;quot; name conveys an upgrade or superiority.&amp;lt;ref&amp;gt;[http://www.bileta.ac.uk/Document%20Library/1/The%20（dis）illusions%20of%20a%20rebel-%20A%20reappraisal%20of%20the%20General%20Public.doc Comments on Gnutella2 disruption of Gnutella &amp;lt;small&amp;gt;WORD DOC&amp;lt;/small&amp;gt; ]{{dead link|date=2017年11月 |bot=InternetArchiveBot |fix-attempted=yes }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=http://www.slyck.com/news.php?story=100 |title=Slyck interview with Vincent Falco, creator of BearShare on Gnutella2 |access-date=2008-09-11 |archive-url=https://web.archive.org/web/20160305053853/http://www.slyck.com/news.php?story=100 |archive-date=2016-03-05 |dead-url=yes }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[Bitzi]]&lt;br /&gt;
* [[Gnutella crawler]]&lt;br /&gt;
* [[Gnutella Web Cache]]&lt;br /&gt;
* [[GNUnet]]&lt;br /&gt;
* [[WASTE]]&lt;br /&gt;
* [[JXTA]]&lt;br /&gt;
&lt;br /&gt;
== 参考资料 ==&lt;br /&gt;
&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
* [http://gnet-specs.gnufu.net/ Gnutella Protocol Development Wiki]{{Wayback|url=http://gnet-specs.gnufu.net/ |date=20080724010901 }}&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnutellaforums.com/ Gnutella论坛] {{Wayback|url=http://www.gnutellaforums.com/ |date=20210128181840 }}&lt;br /&gt;
* [http://gnufu.net GnuFU] {{Wayback|url=http://gnufu.net/ |date=20081120163619 }}，&amp;quot;Gnutella For Users: A description of the inner workings of the Gnutella network in User-Friendly Style&amp;quot;&lt;br /&gt;
* [http://basis.gnufu.net/gnufu/index.php/Why_Gnutella_scales_quite_well Why Gnutella Scales quite well] {{Wayback|url=http://basis.gnufu.net/gnufu/index.php/Why_Gnutella_scales_quite_well |date=20070710231840 }} - A text which corrects some of the myths around Gnutella&lt;br /&gt;
* [http://www.phex.org/wiki/index.php/Features#Feature_Comparision Gnutella Client Feature Comparision] {{Wayback|url=http://www.phex.org/wiki/index.php/Features#Feature_Comparision |date=20181215225116 }} - Client comparison of [[LimeWire]]，[[Phex]]，[[BearShare]]，[[gtk-gnutella]]，[[Gnucleus]]，[[Shareaza]]。&lt;br /&gt;
* [http://slashdot.org/article.pl?sid=00/03/14/0949234 Gnutella announcement]{{Wayback|url=http://slashdot.org/article.pl?sid=00%2F03%2F14%2F0949234 |date=20190324202943 }} on [[Slashdot]]&lt;br /&gt;
* [http://www.gnu.org/philosophy/gnutella.html &amp;#039;&amp;#039;Regarding Gnutella&amp;#039;&amp;#039; by GNU]{{Wayback|url=http://www.gnu.org/philosophy/gnutella.html |date=20171223131738 }}&lt;br /&gt;
* [http://www.shareazasecurity.be/wiki/index.php?title=GWC Gnutella web cache (GWC) responses and engines] {{Wayback|url=http://www.shareazasecurity.be/wiki/index.php?title=GWC |date=20101130102212 }}&lt;br /&gt;
* &amp;quot;[https://web.archive.org/web/20080911021437/http://www.cs.washington.edu/homes/gribble/papers/mmcn.pdf A Measurement Study of Peer-to-Peer File Sharing Systems]&amp;quot;, by Stefan Saroiu, P. Krishna Gummadi, Steven D. Gribble. Proceedings of Multimedia Computing and Networking 2002（MMCN&amp;#039;02）, San Jose, CA, January 2002.&lt;br /&gt;
* &amp;#039;&amp;#039;[http://people.cs.uchicago.edu/~matei/papers/ic.pdf Mapping the Gnutella Network: Properties of Large-Scale Peer-to-Peer Systems and Implications for System Design] {{Wayback|url=http://people.cs.uchicago.edu/~matei/papers/ic.pdf |date=20201026120758 }}&amp;#039;&amp;#039;. M. Ripeanu; I. Foster and A. Iamnitchi, IEEE Internet Computing, 6（1）, February 2002.&lt;br /&gt;
*[https://archive.today/20111007051349/http://www.pam2004.org/programme.html The 5th annual Passive &amp;amp; Active Measurement Workshop]&lt;br /&gt;
* &amp;#039;&amp;#039;[http://hbswk.hbs.edu/item.jhtml?id=4206&amp;amp;t=innovation Music Downloads: Pirates- or Customers?] {{Wayback|url=http://hbswk.hbs.edu/item.jhtml?id=4206&amp;amp;t=innovation |date=20060630024153 }}&amp;#039;&amp;#039;. Silverthorne, Sean. [[Harvard Business School|Harvard Business School Working Knowledge]]，2004.&lt;br /&gt;
* &amp;#039;&amp;#039;[http://dx.doi.org/10.1109/MDSO.2005.31 Free riding on Gnutella revisited: the bell tolls?]{{Wayback|url=http://dx.doi.org/10.1109/MDSO.2005.31 |date=20191016235006 }}&amp;#039;&amp;#039;. D. Hughes, G. Coulson, and J. Walkerdine. IEEE Distributed Systems Online, 6（6）, June 2005.&lt;br /&gt;
&lt;br /&gt;
[[Category:檔案分享網絡]]&lt;br /&gt;
[[Category:应用层协议]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ohtashinichiro</name></author>
	</entry>
</feed>