西东网版电骡下载客户端软件

网络指南

网络指南

自从0.42.1版本以后,电骡有了两种网络联接方式--一个是经典找eD2k网络联接方式,另一个是全新的更独立于拓扑结构的Kad联接方式. 简单来说两种联接方式的功能是相同的.它们各自提供了一套让你找到其它用户或下载文件的机制.

基本知识
文件识别技术
所有文件被赋于了一个HASH值.这个由一系列字母和数字组成的HASH值的能力是用来识别不同的文件.一个文件可以被命名为各种不同的文件名,但它的HASH值不会因为它的名字而改变.于是我们可以通过这个HASH值在网络中找出一个指定的文件的所有资源,而不管这个文件被改为什么样的文件名.
在实际操作上,以9.28MB为单位,每个文件被分成更小的数据段.每个数据段也被赋于了一个HASH值.例如一个600MB的分件分被分成65个数据段,然后每个数据段会被赋于一个HASH值.而在网络上使用的这个文件的HASH值则从由这些大量数据段的HASH中生成.

用户识别技术
就如文件HASH值,网络上的每一个用户也被赋于了一个特定的,不变的HASH值. 为了防止用户身份被滥用,这个用户识别过程受 公开/隐私 关键字接口技术(public/private key handshake)牢固地保防.

下载数据
事实上真正的下载过程跟用户选择不同的网络联接方式没有关系,认识这点很重要.网络拓扑结构只与寻找文件和寻找该文件的客户端有联系.
一但文件资源被找到,你的电骡和有文件的用户端联系.此时你被分配了个排除号,等待下载. 当你排到队时,你开始下载数据.

经典的eD2k服务器方式
网络联接过程
这个网络联接方式的关键是eD2k服务器.每个客户端必须联上一个服务器才能进入网络.
当你试着联接一个服务器时,这个服务器查看其它客户端是否可以自由于和你的客户端取得联系.如果可以,这个服务器会给你指定一个所谓的高ID.如果和其它客户和你的联接受到阻碍,服务器就给你指定一个低ID.
当这个ID给定以后,电骡就把你电脑上的共享文件的清单传给服务器.服务器把你传的文件清单列表中的文件名和它们的HASH值加到服务器数据库中.

搜索文件
一但和网络联接了,用户就可以能过文件名中的关键字搜索文件了.搜索可以在这个服务器内(local,本地)进行,也可以在全局(global)进行.如你搜索在服务器内进行,系统只查找你当前联接服务器内的文件,这样搜索过程会很快,但查找到的结果可能不会太多.如果你进行了全局搜索,系统会搜索网络内的所有服务器,搜索过程可能会占用较长的时间,但你可以找到更多的结果.每个服务器查找它的数据库,然后给出符合查找条件的所有文件.

查找文件的网上资源
通过电骡的搜索功能或在特定的网站直接找到eD2k链接都能增加下载任务.
一但文件被加到了下载列表中,电骡起初向当地服务器,然后向所有网络内的服务器为这个文件征集资源.
于是每个服务器都利用这个文件的HASH值在自已的数据库中查看是否有这个文件资源,如果找到自己服务器下有用户在分享这个文件就把这个信息通知你的电骡.
文件资源是指那些至少下载完成了你要下载的文件的一个整数据段(9.28MB)的其它用户.

KAD网络联接方式
网络联接过程
联接到这个网络唯一需要的是已经联到网络的电骡客户端的IP地址和端口地址.这个联接过程叫Boot Strap.
一但一个客户端接入网络,这个客户端就会请其它的客户端查看一下自己能否被他们自由地联系.如果可以,你就会被指定一个ID(和高ID有点类式),同时你会被设定为"打开(open)"状态.如果其它用户不能自由联接你的客户端,你就会被指定为"防火墙(firewalled)"状态.0.44A版之后的电骡为那些"防火墙"状态的用户新增了一个"密友(Buddy)"功能."密友"是那些自已的状态是"打开",为那些防火墙用户的中转联接防火墙用户自己联接不到的客户端的用户.

在KAD网络中搜索文件
在这个网络中不管你查找的是文件名,或为下载文件中的文件查找资源,又或者查找其它的用户,工作方式几乎是一样的.
在这个网络系统中,没有一个用来保存用户或文件信息的特定服务器,因而这个服务器的功能必须由每个网络内的客户端分担--简单来说每个客户端又是一个小型的服务器.
因为每个客户端都被赋于了一个特定的HASH值,KAD的相法是根据这个唯一的HASH值给每个用户指派一个"责任".每一个在KAD网络内的客户端被指定为特定关键字或资源的服务器.每个客户端所承担的关键字或资源是由这个客户端的HASH值决定的.
所以任何搜索的目的就是找到负责当前这个责任的客户端.这一过程是由一系列包含通过其它客户端寻求最短路径的目标客户端的距离复杂计算完成的.

总结
两种网络联接方式能过各种不同的方式实现了相同的功能:查找文件和为文件查找资源.引入KAD网络总体上来说为了使电骡独立于服务器,并提升了可量测性.使用服务器只能管理有限的用户,并且当一个服务器出了问题时整个网络都会瘫痪.
KAD却是一个独立自我结构,它可以根据网络上的用户数量和用户的联接质量来进行自我调整,使自已工作在最佳状态,所以更好的保护网络资源.

Last Update: 2004-09-12, Monk
翻译: 西东网 卯时下雨 12.09.2004 8:00