电螺实用技术
我使用电螺的时间不长,真正研究开始研究的时候也只是今年吧,由于电螺与BT不同,自从释出 v.42.1 在 eMule 有二个特性不同的网络 – 传统的服务器基础 eD2k 网络及一个完全新的不需服务器拓朴基于 Kademlia 的网络.在这二个网络的本质上都有相同的功能. 他们二者提供了一个独立的方式寻找其他的使用者或您想要下载的文件.因此在设置方面较BT有较大的难度,所以今天写个初心者的FAQ,希望能有用!
为节省资源,便于索引,我把所有东西放在一篇里。
基本工作原理
文件识别
所有的文件都有一个哈希值. 这个哈希值是由数字和字母组成来识别独一无二的文件. 一个文件或许会有很多的文件名称, 但这个不会在这个文件的哈希值有任何改变. 这个允许每个使用在去找到一个独特的文件的来源其文件名称会因每个使用者而所不同.
除此之外, 这个文件是被弄碎到 9.28 MB 的部分资料. 每个部分也会有一个哈希值. 例如一个 600 MB 的文件应该会包含 65 个部分. 每个部分都有一个哈希值. 那样这文件哈希值由那些部分切细段建立并使用在这个网络.
识别其他的客户端
像文件哈希值一样, 每个使用者在这网络取得独一无二且固定的使用者哈希值. 这个使用者识别是高安全的由一个 公开 / 私人键值交握处理预防滥用.
下载资料
在 eMule 重要且必须了解的是网络的选择不会影响真实的下载. 这网络拓朴只和文件的搜索和寻找一个文件的客户端来源有关.
一旦一个来源已经发现, 您的客户端将会连系它. 那么这来源将会保留在等候位置于指定的下载. 当您到达第一个等候位置后等待某一段时间您会开始接收资料.
依赖服务器的 ED2K 网络
连接到这个网络
这个网络的关键是 eD2k 服务器. 每个客户端必须连接到一个服务器来进入这个网络.
当您的客户端连接到一个服务器, 这服务器会检查其他客户端是否能自由地连接到您的客户端. 假如是, 服务器会分配您的客户端一个所谓的高-ID. 假如通讯阻塞, 服务器会分配您的客户端一个 低-ID.
在 ID 分配之后, eMule 将会送出一个所有已共享文件列表到服务器. 服务器会加入您送出的文件名称和哈希值到它的资料库.
搜索文件
一旦连接到这个网络, 客户端能搜索文件名称的关键字. 搜索能是本地或全球其中一个. 假如它是一个本地搜索 (只在您已经连接的服务器搜索), 搜索是快速但将会是少量的结果. 假如搜索是全球搜索 (搜索在这网络的所有服务器), 它将会花一段时间但结果较多. 每个服务器在它本地的资料库查找关键字并传回任何相符合关键字的文件名称 (以哈希值).
寻找文件的来源
下载能由 eMule 的搜索功能或是在许多网站提供的指定 eD2k 链接格式被加入.
一旦他们在下载列表, eMule 对于那个别的下载首先询问本地 (已连接) 服务器然后才在网络上的其他服务器. 服务器会在它的资料库查找文件的哈希值并传回它有的到客户端.
来源是其他客户端最少有一个完整的部分 (9.28 MB) 且文件有相符的哈希值.
没有服务器的 Kademlia 网络
连接到这个网络
唯一要做的事是需要连接到这个网络任何已连接的 eMule 客户端 IP 和端口. 这称做启动(Boot Strap).
一旦一个客户端在这个网络, 客户端会要求其他的客户端来判断它是否能自由的连接. 这个过程非常相似于服务器的 高-ID/低-ID 检查. 假如您能自由的连接, 您会被分配一个 ID (相似一个 高-ID) 并且是一个 “直接” 状态. 假如您不能自由的连接, 您会是一个 “防火墙内” 状态. 自从 v.44a 版本之后, Kademlia 网络支持一个 伙伴 来帮助防火墙的使用者. 伙伴是其他的 Kademlia 客户端有著 直接 的 Kad 连接状态并且工作成接替连接的方式, 那样子防火墙内的使用者不能控制著它.
在 Kademlia 搜索
在这个网络你的搜索不是重要的. 对于文件名称, 在一个下载的来源或其他使用者的搜索, 所有工作几乎一样.
在那里没有服务器保持追蹝客户端及他们共享的文件所以它是由每个在这个网络参与的客户端完成 – 基本上, 所有的客户端也是一个小服务器.
自从每个客户端是由一个独一无二的哈希值识别, Kademlia 的构想是结合一个特定的 “责任” 基础在这个哈希值. 每个客户端在 Kademlia 网络为特定的关键字或来源工作成一个服务器. 客户端的哈希值决定了特定的关键字或来源.
所以任何种类的搜索目标是由那些有目前搜索主题责任的客户端来寻找. 这个是由一个藉由询问其他客户端与目标客户端可能的最短路径之复杂计算完成的.
摘要
二个网络有著完全不同的观念而相同的目的: 搜索文件和寻找一个文件的来源. Kademlia 网络主要的目标是成为无中立服务器和改善可量测性. 服务器只能处理特定数量的使用者并且如果是一个较大的服务器会严重的拖垮网络.
Kademlia 是自我组织并且自我调节最佳可能的使用者数及他们的连接品质效能. 因此, 它更能抵抗一个较大尺度的网络损失.
可应用版本: .42a +
ID 解释
ID 是从客户端的 IP 位址所计算出的值. 它由服务器分配, 当 eMule 成功的连接到服务器. 服务器企图指出适合介于二个客户端沟通的 ID.
连接之后 ID 显示在服务器的记录窗口当中.

eMule 不会更进一步的显示 ID 但会在窗口右下角显示地球图示表示连接到服务器 ID 状态. 
一个高的 ID 表示著在 选项 -> 连接 所选的端口(默认值 4662) 是开放的且能直接连接的.
然而一个低的 ID 表示著端口是阻塞的或不能抵达的. 这可能由防火墙引起, 路由器或代理服务器等. 若有一个低的 ID 不表示不能上传或下载但有几个缺点:
- 在电脑中的 eMule 不知道 IP , 故所有的连接要求都必需经由服务器. 这将会造成该服务器的 CPU 负载变重并减少该服务器的最大使用者数. Lugdunum 的服务器 会限制或禁止低 ID 的使用者.
- 二个客户端都是低 ID 将不能互相连接, 它不被允许转送讯息到二个不同的服务器. 这将会导致下载的来源数变少
- 在忙碌中的服务器它或许讯息取得刚好流失而 eMule 未得到重要的信息关于等候进度或下载要求. 这也许导致减少额度和错误的下载.
注意:
– ID 只影响客户端之间的讯息交换问题. 实际上资料传输仍然由客户端到客户端间处理.
- 假如服务器它不允许您取得一个高 ID, 最好是连接到使用者较少的服务器, 让该服务器能有较多的资源处理大量阻塞状况.
假如 ID 是低的, 它与任何低的事物没有关联. 一个低 ID 是少于 16777216.
- 来比对您的 IP 而一个高的 ID 转换方式如下: 于 IP = A.B.C.D 高的ID = A + 256*B + 256*256*C + 256*256*256*D.
因此在下载来源较少的文件时,低 ID的劣势是非常明显的,只能从高 ID获取下载资源,若来源均为低 ID,则很难完成下载。因此获取一个高ID是十分必要的。
Related posts
标签: download , ed2k , emule , kad , 下载 , 电驴 , 电骡
转载注明:转自经典博物馆
本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议