您的位置:首页 > 新闻 > 科技资讯 > 正文

聚生网管控制各种P2P软件的原理和方案

日期:2008-08-04  来源:中关村新闻网
[字体: ]

在BT协议中有多个不同的角色:
Web服务器:用于发布静态元信息文件�D�D“.torrent
■终端浏览器:用于查询和获取静态元信息文件
■静态元信息文件:使用bencoding编码来保存数据,包含发布文件和Tracker信息
■BTTracker:对等节点信息的维护者和传输过程的调度者
■下载者:希望下载文件的需求者,在下载过程中同时上传已经下载的部分
■原始下载者:文件的最初拥有者,对本文件只上传不下载,在其他下载者共同拥有文件的全部内容后,它可能退出活动。

有BT有几个工作过程:

■查询过程:
查询过程的参与者是:Web服务器、终端浏览器和静态元信息文件。

原始下载者拥有一个文件,愿意与大家共享;他自己或让其它相关者制作一个静态元信息文件,发布在Web服务器上;下载者所在终端通过浏览器查询到这个静态元信息文件,并通过HTTP协议GET到这个文件;从文件中解析出Tracker信息和文件信息。

■控制过程:
控制过程的参与者是Tracker、下载者(包括原始下载者)。
BitTorrent拥有一个中心控制程序Tracker。它和下载者(包括原始下载者)通过HTTP协议来交换信息,下载者用HTTP的GET命令来传递信息,Track回应下载者的信息。
Tracker对所有下载者的信息进行维护,当它收到一个请求后,首先把对方的信息记录下来(如果已经记录在案,那么就检查是否需要更新),然后将一部分(并非全部,根据设置的参数已经下载者的请求)参与下载同一个文件(一个tracker服务器可能同时维护多个文件的下载)的下载者的信息返回给对方。
而下载者通过静态元信息文件中的信息,向tracker发一个HTTP的GET请求,并把它自己的信息放在GET的参数中;这个请求的大致意思是:我是xxx(一个唯一的id),我想下载yyy文件,我的ip是aaa,我用的端口是bbb;下载者还要定时向tracker发一个HTTP的GET请求,使之知道每个人的进度;假如下载者发生一个意外事件或者想要更多的peer列表,下载者会不定期重发请求。
一般来说当下载通过GET请求时使用的官方端口是Port6881~6889,如果使用6881发现占用就自动使用6882,依次类推。如果到6889端口还没有找到空闲的端口,就自动放弃。但是目前的有些BT变种使用的非官方规范的端口,这给使用ACL功能进行BT控制的交换设备或者防火墙设备带来一定的困难。

■传输过程:
每个下载者都可以看成一个服务器和一个客户端,这正是P2P的真正含义。各个下载者通过从Tracker获得的其他下载者的信息(其实是服务器信息),和其他下载者建立连接,交换文件。他们将通过BT对等协议进行对称连接通讯。
传输过程的参与者是:下载者(包括原始下载者)
从服务器的角度看有几个过程:按照发送给Tracker的端口进行网络侦听,等待连接信息;对每一个连接请求建立一个Socket保持连接;接到握手消息后发送我受消息:”19BittorrentProtocol”+8个空+Sha1hash+myID。
从客户端角度来看有几个过程:向从Tracker获得的其他下载者发起一个TCP连接;向连接的服务器发送一个握手信息:”19BittorrentProtocol”+8个空+Sha1hash;握手完毕之后是长度前缀和信息轮流出现的数据流;每两分钟发送一个keepalive的空消息,防止连接超时。
从上述说明可以看出BT协议是利用HTTP协议进行传输,在其包传输过程中有些比较明显的特征字如19bittorrentPortocol+8个空Sha1hash这些特征字是和其它应用协议相区别的,因此这个是网络设备厂家控制BT的一个方法。

2、eMule协议原理:

电骡是一个基于电驴协议的非常流行的文件共享应用程序。电骡网络由几百个电骡服务器及数百万个电骡客户端组成。为了获取网络服务,客户端将会链接到一个服务器。与服务器的链接直到客户端已经位于系统内时才关闭。服务器履行信息索引服务,但不与其它服务器通信。
每一个电骡客户端预置了一个服务器列表及一些在本地文件系统中的共享文件。客户端用单一的TCP链接连接到服务器,登录网络,获取相得到的文件信息及可用的客户端。电骡客户端用几百个TCP链接同其它客户端通信,上传下载文件。每个电骡客户端对它共享的每一个文件维持一个上传队列。下载中的客户端加入队列的末尾,逐渐的前进,直到到达队列的顶端就开始下载它的文件。客户端可以从其它几个客户端分别下载相同的文件的不同片段。客户端也可以上传哪些它还没有完成下载文件的数据块。最后,电骡扩充了电驴的性能,允许客户端之间交换关于服务器、客户端及文件的信息。注意客户端与服务器之间的通信是建立在TCP基础上的。服务器有一个内部的数据库用于存储客户端与文件的信息。服务器不存储任何文件。它为存储的文件地址信息做集中索引。服务器的一个附加功能是作为那些在防火墙后,不能接受链接的客户端之间的桥梁,但桥梁功能给服务器增加了相当大的负载。电骡使用UDP来提高客户端与服务器及其它客户端之间的性能。客户端发送及接收UDP信息的能力对于客户端的正确的日常操作来说不是强制性的。

发布人:  验证码:  
200汉字以内

中关村社区 版权所有 / 京ICP证05038935号

关于我们 | 广告招商 | 联系方法