eMule协议的演进和客户端

网络 网络管理
下面的文章主要讲述了eMule协议的基本概念,和客户端的知识。着重讲解了这个协议的由来和发展。那么,具体内容请大家参考文章。

其实,网络的发展根源来源于资源的共享。那么作为共享,我们就需要上传和下载资源。如何进行下载呢?在这里我们主要讲述一下eMule协议的主要原理。首先我们来了解一下这个协议的基本概念。

eMule协议规范概述

eMule网络是由上百个eMule服务器和几百万个eMule客户端组成。客户端必须连接到一个服 务器来取得网络服务,只要该客户端在系统中,服务器连接保持打开状态。这些服务器主要 执行集聚索引服务(好像在Napster),相互间不联系。

每个eMule客户端都预配置了一个服务器列表和当地文件系统的共享文件列表。客户端用单 独的TCP连接到一个eMule服务器登录到网络中,获得想得到的文件信息和客户端。eMule客户端也用几百个TCP连接到其他客户端进行上传和下载文件。

每个eMule协议客户端对它的每 个共享文件都维护着一个上传队列。要下载的客户端先加入到队列的底部,然后逐渐前进直 到到达队列的顶部并开始下载它的文件。一个客户端可以从几个不同的eMule客户端中下载 同一个文件的不同的文件块。

客户端也可以上传它还没有完成的文件的文件块。***,eMule协议扩展了eDonkey的能力,允许客户端之间交换关于服务器、其他客户端和文件的信息。注意 , 客户端和服务器的交流都是基于TCP的。

服务器使用了一个内部数据库,用来存储关于客户端和文件的信息。一个eMule服务器不存 储任何文件,它为关于文件位置的存储信息作集聚索引。服务器的另一个功能,开始变得被 抗议,是连接由于通过防火墙连接而无法接收到连接的两个客户端。这个连接功能增加了服 务器的负载。

相对于服务器和其他客户端,eMule协议使用UDP来增强客户端的能力。客户端发 送和接收UDP信息的能力在日常使用中不是强制使用的,当有防火墙阻止它收发UDP信息时 也能无瑕疵的运行。

客户端到服务器的连接

在开始启动时,客户端用TCP连接到一个eMule服务器。服务器提供一个客户ID给客户端, 在整个客户端-服务器连接的生命周期里,它是有效的(注意,如果客户端有一个高ID,它 会从所有的服务器中接收到相同的ID,直到它的IP地址改变)。在连接建立之后,客户端发 送它的共享文件列表到服务器中。服务器把这个列表存储到它的内部数据库中,这个数据库

通常包含了成百上千有效的文件和活动的客户端。eMule客户端也发送它的下载列表,包含 着它想下载的文件。第二章提供了eMule客户端和服务器TCP信息交换的详细描述。

建立连接之后,eMule服务器给客户端发送用有它想下载的文件的其他客户端列表(这些客 户端称作“ 源” )。从这点起,eMule协议客户端开始与其他客户端建立连接,如 1.2.2所述。

注意,在整个客户端会话期间,客户/服务TCP连接一直保持连接状态。初次握手后主要是 用 户活动激发事务:有时,客户端发送文件搜索需求,由搜索结果回应,一个搜索事务一般在对源中指定文件查询之后,用源(IP和端口)列表来回答这个查询,查询者可以从这列表中 下载文件。

客户端和它没有连接的服务器的交流是用UDP。UDP信息的目的是增强文件搜索,增强源搜 索,***保持连接状态(确保客户端服务器列表中的eMule协议服务器有效)。

责任编辑:佟健 来源: CSDN
相关推荐

2024-07-02 09:15:58

2021-09-22 15:46:29

虚拟桌面瘦客户端胖客户端

2010-06-23 15:08:18

2010-06-23 14:20:06

eMule协议

2011-10-19 10:23:18

InstantbirdIM客户端

2010-02-22 09:03:22

零客户端瘦客户端VDI终端

2010-06-23 15:19:35

eMule协议

2010-07-02 12:02:11

eMule协议

2010-06-23 15:43:08

2011-03-21 14:53:36

Nagios监控Linux

2011-04-06 14:24:20

Nagios监控Linux

2011-08-17 10:10:59

2010-06-28 21:33:17

eMule协议

2011-03-02 14:36:24

Filezilla客户端

2011-03-24 13:00:31

配置nagios客户端

2010-12-21 11:03:15

获取客户端证书

2010-05-31 10:11:32

瘦客户端

2011-10-26 13:17:05

2010-07-19 17:53:57

Telnet客户端

2010-11-19 14:22:04

oracle服务端
点赞
收藏

51CTO技术栈公众号