当前位置: 首页 > 软件库 > 程序开发 > 协议和规范 >

Gnutella

文件共享网络协议
授权协议 未知
开发语言
所属分类 程序开发、 协议和规范
软件类型 开源软件
地区 不详
投 递 者 咸承教
操作系统 未知
开源组织
适用人群 未知
 软件概览

Gnutella(发音为 /nʊˈtɛlə/ 单词中的g不发音,或者发音为/gnʊˈtɛlə/)是一种文件共享网络。其在本领域内占有超过40%的市场份额,是Internet上最流行的一种文件共享网络。截至2005年6月,Gnutella网络已经具有181万台计算机。

Gnutella网络的第一个客户端由Nullsoft公司的贾斯汀·法兰科(Justin Frankel)与汤姆·帕勃(Tom Pepper)于2000年早期最先开发。同年3月14日,该程序被放在Nullsoft的服务器上并允许公众下载。该程序的源代码稍后在GNU通用公共许可证下被发布。

与半集中式网络如FastTrackKaZaA)以及Napster不同,Gnutella网络是完全分布式的。其最初的流行是源于2001年早期Napster由于法律纠纷而被关闭的威胁。不断增长的用户也使得该协议的最初版本暴露了不少缺陷。2001年早期,各种不同版本的协议(最初以专有闭源客户软件形式实现)使得Gnutella的扩展性得到了增强。与先前的协议将每一个用户节点都当作用户以及服务器不同,改进过的协议将某些用户当作"超节点"(ultrapeer),其为与之连接的所有用户路由搜索请求及回应。

这些发展使得Gnutella网络进一步吸引了更多用户。2001年晚期,一种Gnutella客户端软件LimeWire成为免费开源软件。2002年2月,Morpheus,一个商业文件共享开发群,放弃了原先的基于FastTrack的端到端软件,并发行了新的基于免费开源Gnutella客户端软件Gnucleus的新客户端软件。

"Gnutella"这个词语现在被来指作被不同的客户端软件使用的一种开放网络协议,而不用来指作任何一个单独的项目或者某一个软件。由于许多不同的组织都在开发新的客户端软件,而且该协议本身也将不断演变,Gnutella这个词语的意义在将来或许也会变化。

Gnutella这个名字是GNUNutella的混成词:人们普遍认定法兰科与帕勃在开发Gnutella项目的时候吃了许多的Nutella,并且希望在GNU通用公共许可证下完成项目。Gnutella并未与任何GNU项目相关联;关于Gnutella在GNU中的相关项目,可以参见 GNUnet

  • Peercast实现P2P的相关传输功能所使用的是一个开放式的协议,Gnutella。下面是一些关于Gnutella协议的介绍。 Gnutella是一个开放式的协议,完全分布式,没有中心服务器。每个结点既是客户端,也是服务端,称为servents。   协议定义: Ping:激活发现客户机 Pong:回应Ping Query:网络检索机制 QueryHit:回应Query Push:一个用于允许防

  • Gnutella协议中文版 Gnutella2是一份关于发布检索的协议。虽然Gnutella协议也支持传统的客户端/中心服务器的检索规范,但Gnutella协议更主要是支持点对点的,没有中心的检索。在这个模型中,所有的客户端也是一个服务器,同样反之亦然。这些所谓的Gnutella客户机正常情况下执行联系服务器和客户端的任务。他们提供客户端的接口使用户可以发出查询请求和看检索结果。同时他们也接收来自

  • 1.1 背景        Gnutella是一个用于分布式搜索和数字资源共享的协议。尽管支持传统的客户机/服务器架构,Gnutella的特色是它的点对点、非中心的模型。        在这个模型中,任何一个客户端同时也是一个服务器,反之亦然。所以Gnutella中给它们起了一个专门的名字叫做servent。Servent提供客户端接口,用户通过这个接口可以提交查询并查看查询结果,同时,它们也可以

  • 转载:http://blog.chinaunix.net/uid-11572501-id-2868680.html 工作原理 要了解Gnutella网络是怎样工作的,先设想一个大的由用户(称为“节点”)组成的环,每个节点都有Gnutella客户端软件运行。当初始启动时,客户端软件必须进行 自举(Bootstrapping)并找到至少一个其它节点,有多种不同的方法可以达到这一功能,包括软件内置的一组

 相关资料
  • xml-rpc 实现的文件共享 这个项目取材与http://www.the5fire.com/python-project8-xml-rpc.html 。是python基础教程中的十个例子中的第八个。主要的实现原理如下: 每一个客户端都是一个节点。每一个节点,都启动一个 xml-rpc服务器。在 xml-rpc服务器中,维护着一个所有节点的集合。原文的例子,功能太少,只能下载。后来我加了一个ls

  • This file describes the network protocol used by Ceph. In order to understand the way the structures are defined it is recommended to read the introduction of Network Encoding first. Hello The protoco

  • 问题内容: 我的机器在端口8080上运行着jboss,我想在网络上共享jboss服务器,以便我使用jbossws- native-4.0.2运行jboss服务,但是我仍然无法访问网络上的jboss服务器,请帮助。 问题答案: 启动jboss(run.sh或run.bat)时使用选项-b 0.0.0.0,这会将端口绑定到所有网络接口。默认值为localhost,这就是为什么您无法通过网络访问服务器的

  • 为了方便使用 windows 共享的目录,最好能直接 mount 进来。 安装 需要安装 cifs-utils: apt-get install cifs-utils 挂载 使用 mount 命令装载: sudo mkdir /mnt/nas/d sudo mount -t cifs -o rw,username=sky,password=***,uid=1000,gid=1000 //192.1

  • 两台计算机是怎样进行数据传递的

  • 问题内容: 我想在(Windows)网络共享上存储一个裸露的git存储库。我使用linux,并通过CIFS挂载了上述网络共享。我的同事使用Windows XP,并将网络共享自动挂载(从ActiveDirectory以某种方式)作为网络驱动器。 我想知道是否可以在两台计算机上都使用回购协议,而不会出现并发问题。 我已经测试过了,最终我可以克隆ok,但是我担心如果我们同时访问同一个仓库(推/拉)会发生

  • ARP(地址解析协议) 基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在每台安装有TCP/IP协议的电脑或路由器里都有一个ARP缓存表,表里的IP地址与MAC地址是一对应的。 当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到就知道目标MAC地址为(00-BB-00-62-C2-02),直接把目标MAC地址写入帧里面发送就可;如果在AR

  • 我正在尝试制作一个用于共享音频文件的按钮。这不起作用。首先,我试图直接从原始文件夹发送文件,而不将其复制到手机卡上。这并没有解决我的问题。我尝试的第二件事是将文件保存到手机上,然后共享。将文件保存到手机的部分现在可以工作了,但当我尝试将音频文件共享到其他设备时,所有兼容的应用程序(Whatsapp、Gmail等)都崩溃了。 这是我的代码: 顺便说一下,音频文件是一个。ogg文件。我希望这些应用程序