eMule_协议.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
eMule 协议说明书 1 简介 1.1 目的 eMule 是一个如今非常流行的基于eDonkey协议的文件共享程序。 本文描述了eMule的网络行为并且解释了一些我们理解这个协议所需要的基本学术用语。 并且本文也是eMule网络协议的一个详尽的说明书,内容包括传送的消息的结构, 本文中所有的信息是基于一个开源的eMule的客户端[2]。 下文的目的是让读者有一个整体的概念去阅读和理解这些文档.一个关于eMule的巨大信息. [3]。 1.2 概述 eMule网络是由数百台eMule服务器和数百万的eMule客户端组成的[1]。为了进行网络通信客户端将连接到一个服务器,只要这个客户端还在这个系统当中这个服务器连接就一直存在。这些服务器集中执行这索引服务(就像在Napster中一样)并且不与其它的服务器进行交流。每一个eMule客户端都在其本体文件系统中预先配置了一个服务器列表和共享文件列表文件。客户端只使用TCP来连接服务端来加入网络,获得想要的信息和可以连接的客户。同时eMule的客户端也使用成百的TCP连接到其它的客户端来上传和下载文件。每一个eMule客户端为它的每一个共享文件维持一个上传队列。下载者刚加入队列的时候在队列的底部并且逐渐的前进,直到他们到达顶部才开始下载他们需要的文件。一个客户端可以从其它的几个客户端那里同时下载,取得他们所拥有的不同的文件片段。客户端同时也上传那些还没完全下载的文件。 最重要的是eMule对eDonkey 进行了扩充,允许客户端之间交换服务器信息,其它的客户端和文件信息.注意客户端与服务端的通信都是以TCP协议为基础的。服务器使用本身的数据库来存储用户和文件信息。一个eMule服务器不保存任何文件,它充当了文件位置索引表的功能.服务器的另外一个值得争议功能是透过防火墙连接两个客户端,并且不能够引入连接。桥连接函数急剧的增加了服务器的负载。eMule在客户端和服务端都使用UDP协议来提高客户的接受能力.客户端接收和发送UDP数据的能力不取决于客户的正确操作并且即使防火墙阻止发送和接受UDP数据也可以无差错的工作。 1.2.1 客户到服务器的连接 在启动客户端之前先使用TCP协议连接到一个eMule服务器。服务器提供给客户端一个客户端ID (1.3章节)这个ID在整个客户端服务端连接的生命周期都有效 (注意:拥有high ID的客户端在IP地址改变之前将从所有的服务端获得同等级的ID)。连接确立之后客户将自己的共享文件列表发送给服务器.服务器将这些列表存在它本身的的数据库 Figure 1.1: eMule high level network diagram 中,通常这些数据库包含了成百上千的共享文件清单和有效的客户端。eMule客户端同时也下载它想获得的文件的文件列表.第二章节详细的描述了eMule的客户端和服务端的TCP信息交换。在连接确立之后,eMule服务器将发送给个客户端一份客户端列表,这个列表中的客户端中有下载者想下载的文件(这些客户端叫做“源”)。从此刻开始,eMule客户端像下面的1.2.2章节中描述的一样开始建立和他客户端的连接 注意客户端/服务端得TCP连接在整个客户端会话过程中持续开放。在初次握手协议之后的就主要是用户活动:客户端为了获得新的搜索结果不时地发送搜索请求,一个搜索通常紧跟着是一个对于特殊文件资源的查询,回复查询的清单是由能下载到该文件的资源(IP和端口)组成。UDP是用来与服务器端之间的信息交换而不是服务器端与它相连的客户端之间交流。UDP消息的目的是增加文件搜索,增加资源搜索,最终保持活跃性(确保客户端中的服务器列表中的服务器都是有效的)。您可以再第3章节中找到更多关于客户端-服务端UDP信息交换的详细资料. 1.2.2 客户端和客户端的连接 一个eMule客户端为了下载文件而连接到其他的eMule客户端(一个资源)。文件被分割为几个部分每个部分又是由更多的片段组成。一个客户端可以从许多(不同的)客户端下载同一个文件的获得不同的片断。当两个客户端连接时他们交换接受能力信息,然后商议开始下载(或者上传,取决于需求)。每一个客户端拥有一个下载队列来保存等待下载文件的客户端。当一个eMule客户端清空下载队列通常是由于要开始一个下载(例外,例如:这个请求着被禁止)。当下载队列不清空时将导致队列中请求客户的增加。在给定的时间内即便是每个客户用最小的带宽2.4kb/s也只能服务极少数的客户。如果在15分钟的下载过程队列中中有比正在下载的用户更高级的用户,该用户将抢占下载中的用户进行下载,这样做来防止长期等待。当一个下载中的客户端到达下在队列的最顶端,上传客户端就会发起一个连接来传输下在端需要的部分。一个eMule客户端或许同时在许多许多其它的客户端的等待队列中

文档评论(0)

803322fw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档