eMule协议的连接建立(1)


下载是从服务器到客户端的一个交流。这也就要用到TCP协议的交流了。那么在eMule协议中是如何规定这样的交流呢?那么它整个的协议建立流程优势如何呢?其实并不难于理解,下面我们就来详细介绍一下。

客户端服务器的TCP交流

每个客户端用TCP精确地连接到一个服务器。服务器分配给客户端一个ID,在与服务器其余 的会话中标识该客户端高ID客户端总是根据它的IP地 址分 配)。eMule GUI客户端需要建立 一个服务器连接来用于操作。客户端不能同时与几个服务器连接,也不能在没有用户干涉的 情况下动态更换服务器。

eMule协议建立连接

在准备建立与服务器的连接时,客户端会尝试并行地连接到几个服务器,根据成功的登陆顺 序放弃其他的。

有下面几个可能的连接建立个案:

1、高ID连接-服务器分配一个高ID给正在连接的客户端

2、低ID连接-服务器分配一个低ID给正在连接的客户端

3、拒绝会话-服务器拒绝客户端

当然,也有不重要的个案-服务器崩溃或者不可连接。

图1 高ID连接的信息顺序  

图1 高ID连接的信息顺序

图1描述了导致高ID连接的信息顺序。在这种情况下,客户端建立一个TCP连接到服务器,然后发送一个登录信息到服务器。服务器用另一个TCP连接到客户端,执行一个客户端-客户端的握手来保证连接的客户端有能力接收来自其他eMule协议客户端的连接。在完成客户端握 手后,服务器关闭第二个连接,通过发送ID更改信息来完成客户端-服务器的握手。你可能 注意到eMule信息消息是灰色的。这是因为这个消息是eMule协议扩展的一个部分。

图2 导致低ID连接的信息顺序 

2 导致低ID连接的信息顺序


相关内容