eMule协议规范 第三章 客户端服务器的UDP交流

来源:互联网 发布:太原大数据培训机构 编辑:程序博客网 时间:2024/04/27 00:36

译自 Yoram Kulbak and Danny Bickson 《The eMule Protocol Specification》

翻译:lzcx

QQ:402722857

EMail: lzcx_cn@yahoo.com.cn

供学习用,转载请注明出处

 

3    客户端服务器的UDP交流
eMule客户端和服务器用不可靠的UDP服务来保持连接和增强搜索。eMule客户端产生UDP包的总量可以达到它发送包的总数目的5% - 这些根据客户端服务器列表中服务器的数目,客户端下载列表中每个文件的源数目和用户执行的搜索数目而定。UDP包通过计时器触发,计时器每100ms过期,有一个单独的线程负责发送UDP输送结果,以每秒10个UDP的最大速率。
 
3.1 服务器保持连接和状态信息
 
客户端周期性验证它服务器列表中的服务器状态。验证是通过发送UDP服务器状态请求(见6.3.3节)和UDP服务器描述请求(见6.3.7节)消息完成的。这里描述的简单保持连接计划每小时产生不超过几打包。任何情况下,包的最大速率是每秒0.2个包(或每5秒一个包)。当检查服务器的状态时,客户端会首先发送一个服务器状态请求消息,接着,每两次试图(发送一个服务器状态请求)中就发送一次服务器描述请求,见图3.1。
 
客户端发送的服务器状态请求中包括一个随机数字,在服务器回应中返回。在服务器返回的数字与客户端发送的要求中数字不同的情况下,回应的信息就会被丢弃。每次发送到服务器的包是状态请求,客户端就移动尝试计数器。任何来自服务器的消息(包括搜索结果)都重置尝试计数器。当尝试计数器达到一个可配置的限制时,服务器就认为是死机,从客户端的服务器列表中删除。服务器回应包括几个数据项:服务器状态回应(见6.3.4)包括服务器中当前用户数目和文件数目,也包括服务器的软件和硬件限制(见1.7节)。服务器描述回应(见6.3.8节)包括服务器名称和一个短的描述字符串。图3.2演示了客户端和活动服务器中满连接序列的消息流。
 
3.2 增强文件搜索
 
eMule客户端可以设置用UDP来增强它的文件搜索。UDP搜索结果格式几乎与??节描述的TCP搜索请求一样。服务器只在有了搜索结果才回应。UDP搜索结果消息有两种不同的opcdes,我也无法说清它们之间的不同。UDP搜索包发送到客户端服务器列表中的服务器上。更多信息见6.3.5节和6.3.6节。
 
3.3 增强文件源搜索
 
当客户端下载列表中的特定文件的源数目小于配置限制(100)时,客户端就周期性地发送获取源的UDP包到它的服务器列表中的服务器中为该文件寻找更多的源。可能每秒发送一个包,使得源搜索在客户端产生的UDP输送中成为可观的部分。消息的格式(6.3.1节描述)非常相似它的TCP计数器部分。注意,与TCP源搜索相反,UDP源搜索在文件搜索中减弱,对于指定的文件,只是依靠客户端拥有的源数目。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=604633

原创粉丝点击