BLACKWASP 发表于 2007-11-1 22:15:29

【EMULE FAQ】

转帖,来自VC

1)P2P到底是什么?

Peer-to-peer的缩写,指的是点对点的意思,最早是在美国由 18岁的Shawn Fanning开发出一个叫Napster的软件时,引入得概念 ,它不仅仅是一种软件架构,也是一种社会模式的体现,网络上流行的P2P软件的架构手段主要有两种:集中式和分布式。
集中式:便是利用服务器作为媒介使各个分散的节点(用户)能互相联系,生成各种服务响应。
分布式:每个节点即做服务器又做客户端,这种方式非常灵活,一个孤立的节点只要连上另一个节点便可以进行传输。
Napster可以说是第一代p2p软件。后来由于Napster陷入诉讼危机(相关版权问题),便出现了Gnutella,它吸取了Napster的失败教训,将P2P的理念更推进一步:它不存在中枢目录服务器,用户只要安装了该软件,立即变成一台能够提供完整目录和文件服务的服务器,并会自动搜寻其它同类服务器,从而联成一台由无数PC组成的网络超级服务器。传统网络的Server和Client在它的面前被重新定义。Gnutella作为第二代p2p软件,他们可以说是最早的p2p技术。然后FastTrack (即Kazaa 的底层技术)迅速掘起取代其地位。成为p2p老大。

2)emule到底是什么?

随着二代技术的普及,又一个的问题诞生了,自私的人们在利用P2P软件的时候大多只愿“获取”,而不愿“共享”,P2P的发展遇到了意识的发展瓶颈。不过,一头“骡”很快改变了游戏规则,它就是后来鼎鼎大名的 eDonkey。这标志着第三代p2p技术的兴起,eDonkey采用了以“分散式杂凑表”(distributed hash tables )为诉求的Neonet技术,改变了P2P网络上的搜索方式,理论上可以更有效率的搜索更多的电脑,以及更容易找出少见的文件。这种技术已经使eDonkey基本快要追上了P2P服务龙头业界的另一个老大Kazaa了. eDonkey由Jed McCaleb在2000年创立。他最重要的是可以同时从许多人那里下载同一个文件,并且采用了“多源文件传输协议”(MFTP,the Multisource FileTransfer Protocol)。电骡的索引服务器并不集中在一起的,而是各人私有的,遍布全世界,每一个人都可以运行电骡服务器,同时共享的文件索引为被称为“ed2k-quicklink”的连接,文件前缀“ED2K://”。同时,在协议中,定义了一系列传输、压缩和打包的标准,甚至还定义了一套积分的标准,你上传的数据量越大,积分越高,下载的速度也越快。而且每个文件都有有md5-hash的超级链接标示,这使得该文件独一无二,并且在整个网络上都可以追踪得到。EDonkey可以通过检索分段从多个用户那里下载文件,最终将下载的文件片断拼成整个文件。而且,只要你得到了一个文件片断,系统就会把这个片断共享给大家,尽管通过选项的设置你可以对上传速度做一些控制,但你无法关闭它。

在eDonkey出现后,其改良品种eMule(电骡)也出现了。可以说emule是eDonkey的升级版,是eDonkey的一个Mod,就象osp就是quake3的mod一样,它的独到之处在于开源,它的基本原理和运作方式,也都是基于eDonkey, eMule基于eDonkey网络协议,因此能够直接登录eDonkey的各类服务器。eMule同时也提供了很多eDonkey所没有的功能,比如可以自动搜索网络中的服务器、保留搜索结果、与连接用户交换服务器地址和文件、优先下载便于预览的文件头尾部分等等,这些都使得eMule使用起来更加便利,也让它得到了电骡的美誉。

总之,他们继承了第二代P2P无中心、纯分布式系统的特点,但他们它不再是简单的点到点通信,而是更高效、更复杂的网络通信;再加上eDonkey和eMule引入的强制共享机制,在一定程度上避免了前几代P2P纯个人服务器管理带来的随意性和低效率。

3)emule的下载原理?

当你在搜索列表中选取了你要的文件并开始下载后,emule会记录下这个文件的大小,文件名以及另一个叫做hash的特殊值。会向所有添加的服务器发出请求,要求得到有相同hash值的文件。而服务器则返回持有这个文件的用户信息。这样我们的客户端就可以直接的和拥有那个文件的用户沟通,看看是不是可以从他那里下载所需的文件。它最棒的部分就在于:你不是只在一个用户那里下载文件,而是同时从许多个用户那里下载文件。如果另一个用户仅仅只有你要的文件的一个小小片断,他也会自动地把这个片断分享个大家,而你就可以从这个用户的机器上下载这个片断。当然你也是一样。只要你得到了一个文件片断,系统就会把这个片断共享给大家。在查找到下载源(其他客户端)后,下载就是客户端和客户端通过点对点(P2P)进行直接对话了。期间没有数据流通过服务器。

4)emule是如何工作的?

emule建立于多点文件传输协议之上。一个emule网络由服务器端和客户端两部分组成。服务器端是客户端连接的、为了搜索和查找可以下载用户的桥梁。服务器列表像电话本一样排列,客户通过浏览它而获取他需要的文件所有者的客户端信息。在download过程中,没有下载文件通过服务器端。

5)emule是如何搜索的?

每一个客户端连接到一个服务器作为他的主服务器。在连接时,由客户端告诉主服务器他share了那些文件,以及IP地址等其他信息。所以每一个服务器会记录所有登陆到他服务器上的以上信息。在本服务器搜索时,它会通过匹配记录的已知以上信息把查找结果反馈给搜索的客户端列表。当你使用扩展搜索(extend search)时,你的搜索请求和应答结果通过发送限制带宽的UDP包连接到客户端本身的服务器列表(server.met)对应的某一个ip地址的服务器。

6)emule是如何下载的?

当客户端选择了一个文件下载时,它首先收集一个拥有该文档的客户端的列表。它会先行查询主服务器所有登陆用户他们是否拥有该文件。然后再连接和查选其他服务器的登陆用户所拥有该文件的客户端列表。一旦它找到拥有该文件的其他客户端,它将请求每个客户端发送这个文件的不同片。直至最后文件由这个不同的片组装成一个完整的文件。 在进行pause/resume的时候,我们选择的下载列表已经获取,它pause的仅仅是客户端和客户端之间的TCP连接然后恢复TCP连接。这个过程只有再resume时通过客户端向服务器端发送22个字节后即可。占用的仅仅是22个字节的网络流量。在pause是甚至不通过你登陆的服务器进行,也无须你登陆的主服务器进行任何干预和操作。所以说,它并未占用主服务什么资源,只是在你已经和主服务器连接的通道上发送22个字节而已。

7)emule有什么优点?

不需要服务器来存放共享文件,节省了服务器架设、海量硬盘、网络带宽。 每个用户端节点都同时是文件下载者和提供者。实际上,在你正在下载但还没当完整个文件时,你已经可以把你已下载的部分共享给别人了! 因为emule同时从很多文件提供者那里下载所需的文件最后再拼成整个文件的。加入的人越多,下载速度越快,资源越丰富。 共享方便,每个人在自已的emule里指定一个share目录就可以把自己的文件共享给网络中的其它人了。不必再辛苦地上传到服务器上了。

以上就是关于emule的一些基础知识,希望大家看完之后,能对emule的原理,有一个本质的认识。
下面我再来说说一些很困扰,很迷惑人的问题。

1)id问题

朋友们最关心的就是这个问题,id是什么?id其实没有什么用,id就是在emule传输里面,作为地址作用的一个东西,起到寻址和定址作用,它直接和我们ip挂钩,是由emule根据我们的ip地址,通过算法得到的一组数字。所以adsl用户经常会说,为什么我的id变了?当然要变,因为你每次上网拨号所取得的ip地址都不相同,所以id当然也要随之变化,一句话;ip不变id就不变,ip变了id就变化。
关于高id和低id,目前好多朋友也存在一个误区,认为同一个ip地址,只能而且最多只能拥有一个高id,其实这是不对的。一个公网ip地址,可以同时取得2个以上的高id,这一点我要在这里强调一下,比如,adsl用户,如果你本身是高id,那么你可以同时打开第二个emule两个同时运行,但是彼此的emule端口一定不要相同,这样你会发现两个都是高id,同一个ip地址。同样对于端口映射,同一个ip地址,也可以同时取得两个以上高id,同样端口不要相同。
对于低id用户,还存在一个误区,那就是认为只要映射了,就能变成高id,这一点我要说明一下,什么叫高id,它是一个9位以上的id数字,它代表了你的ip地址是公网独立的ip,也就是说只有前提你能够拥有公网独立的ip地址,你才能获得高id,端口映射的原理是把你的内网地址和端口,通过地址转换投影到公网干线上,使你作为一个公网节点,从而变成高id。那么这里就存在一个网络拓扑的问题,有些低id用户,不是处在公网干线的一级子网内,而是子网的下一级子网,甚至下好几级子网,拓扑的结构是层层拓扑,那么这部分用户,无论如何也无法获得高id,因为你做了映射只不过是成了上一级子网的节点,但是仍然还是内网,只不过映射了一层,你上面还有好几层,所以要正确看待映射的问题。目前,国内除了电信和网通,有好多二级运营商玩的就是这个路子,他们或者层层拓扑,或者只保留部分公网ip地址,作为机动分配,这样你运气好一拨号能得到一个公网ip,你运气不好就是内网,没有办法。



3)kad问题

好多朋友对这个东西始终不太明白,我说一下,kad和我们目前的ed2k不一样,我们目前的ed2k要通过服务器进行中转,我们都要连到服务上才能进行传输,而kad则是无服务器工作模式,它的传输可以独立进行,完全不需要服务器参与,我们只需要打开kad就可以不再需要服务器了,所以说kad是属于试验阶段,应该说他的前景最为光明,应该是p2p的未来,所以建议朋友们多多打开,对于找源很有帮助,特别是对于低id而言,vkad就是vnn+kad的模式。

4)服务器问题

这个问题论坛已经说了很多了,我主要说一些大家容易误会的地方,好多朋友经常问到,怎么我的服务器少了,或者是消失了,或者开机提示列表文件丢失,这里大家要注意在emule>选项>服务器设置里面 启用智能lowid检测这一项最好不要选 启动自动更新服务器列表也不要选 把连接到其它服务器时自动更新选上,这样你可以在服务器切换的时候,自动更新服务器列表 而不用添加什么列表的url网址之类的东西,另外对于常用的服务器,最好把他的状态选择为静态服务器,这样他就不会消失了,其实我们服务器列表有300多个服务器,能够用上的就那么几个,大家可以把他们设置成高级,静态,另外还要说一点,选择服务器的时候选择ping值小的 人数多的 文件多的 这个文件数什么意思,是连接到这个服务器的所有用户的共享文件总数,要注意服务器上没有任何文件,另外大家注意一下服务器列表里面,每个服务器还有:软性文件限制 硬性文件限制, 这个是什么意思?他代表了服务器接受你的共享文件 任务列表文件的大小限制,如果你要是超过了这个限制,就会被服务器拒绝,举个例子,如果这个值显示的是1k,那么你的共享文件数最好少于1000个,目前来看大部分都是1k。

其实对于服务器端,有好多愿意研究的朋友,很感兴趣。其实他就是edonkey的服务器,二者目前列表都一样,所以大家想要自己架设em服务器,可以上edonkey网站,下载服务器端的程序,我看了一下这个程序不大,而且也很简单,有兴趣的朋友们可以自己分析一下。

5)web服务器问题

大家都看了在emule>服务器>我的信息 最下面总是有一个web服务器的东西,这个是什么?我说一下 通常情况下我们这个禁用是正常的,Web服务器的作用是提供了远程访问eMule的功能,我们可以先在emule端配置一些相关参数,然后可以实现远程利用ie来对emule进行控制,当然了需要我们emule端要有独立的访问地址,远程控制emule可以实现emule的大部分功能,但是不是全部功能,还是有一些限制。另外对于emule端的web设置,懂行的朋友还可以自己进行编程,很有交互性,一般来讲,我们什么时候能够用上它呢?比如我们在公司开了emule,但是还想下班后继续在家里操作公司的emule,那么我们就可以使用这个功能,如此还有许多场合和环境特别利于web功能的使用,但是要注意随之带来的有关网络安全性问题也很重要。对于这个功能的使用,要是详细写出来的话,要很长需要专门的一个主题说明,由于篇幅限制,我在这里先简单说一下,如果朋友们都比较感兴趣,我考虑单独写一个主题详细说明具体设置和用法。不再赘述。

6)emule日志问题

其实这个问题没什么好说的,日志就是记载了emule的运行记录,我要强调的是好多朋友不懂得利用它,其实大部分emule遇到问题的时候,我们如果仔细注意日志记录,都会自己找到问题原因所在,如果你不懂你可以把它复制下来,发到网上,希望各位朋友以后多多注意emule的日志记录,遇到问题,多半能都自己解决。

7)任务下载问题

对于这个问题,我想说得是大家要学会使用给任务分优先级来控制下载顺序,经常有许多朋友抱怨,为什么任务结束一个,开始下一个的时候是随机开始,怎么能实现自动控制?这里我们就可以手动设置任务列表里面任务的优先级,右键就可以看到,把不同任务的优先级设置成高 中 低 这样emule在完成一个的时候自然按照优先级去选择下一个该是谁,而不会随机开始了,另外在选项里面也可以设置一下,新建任务为停止模式,或者自动开始下一个停止文件。

8)搜索问题

其实要是大家都学会了利用该功能,就会找到好多意想不到的东西,好多朋友平时很少用这个功能,其实p2p引以为自豪的就是他的搜索功能,建议大家以后多多自己搜索,搜索的时候要注意,每页都有200条的限制,所以要想看更多的可以点击旁边的“更多”,这样可以显示下一个200条,可不要以为就只有第一页的200条记录啊!对于搜索颜色问题我说明一下:
红色:代表你的任务列表里面已经有的文件 或者 你已经下载完成正在共享的文件
蓝色:普及程度较高源比较多的文件
黑色:你从来都没有下载过的文件

大家注意一下 我说的是搜索的颜色 和那个下载任务的颜色条可不是一码事 那个颜色大家都众所周知了 我就不说了
这个容易搞混 我说一下

9)共享文件问题

这个我说明一个问题,emule 里面规定共享的单个文件,注意是“单个”文件不可以超过4g,如果超过了,则不可以进行hash,所以大家注意一下。

10)emule消息问题

经常有朋友会受到You Was Banned!!! Banreason: You use a Leecher Mod
或者Defcon Old Leecherdetection之类的消息,这是什么意思?
有些朋友以为是有人要聊天,发送过来的消息,其实误会了,这是自动发送的信息,它的意思是你用的版本是吸血的版本。你已经被ban。对于这个消息,大家可以不用理会,用emule消息过滤,把它过滤掉就可以了,为什么会如此呢?这个要是说起来也话长了,颇有点传奇色彩。我简单说说,部分mod版本呢,由于加分设置不同,逐渐分成不同的派别,这样逐渐形成了一些小圈子,后来搞出来一个所谓吸血的东西,只下载不上传,或是该版本群体上传远远小于下载,等等这里面有好多渊源,后来官方公开封禁了一些,再后来自然被封的不服,然后就是妖魔和反妖魔大家互相封禁,互相职责,后来斗争扩大化,导致其他版本也跟着遭殃,我们就是属于被误伤的,现在这种争斗仍然在继续,而且波及越来越广,这就是我对这个消息的原因的简单解释,好多内幕的东西,说起来挺多,不多说了。

11)代理问题

这里我要说明一点,好多朋友使用代理运行emule,比如一些公司内网的朋友,你们在寻找代理的时候,尽量使用sock5的代理,当然sock4和http也可以,但是要注意好多http代理本身不支持udp协议,所以导致了emule无法运行,大家要注意,选择支持udp协议的代理。而且多找几个,留作备用。

12)统计信息问题

这个问题,我要说两点
(1)上传:下载比例问题 之前好多朋友对这个有很多误会,这里我要说明这个比例大于1说明你的贡献大于索取,等于1,说明你的贡献和索取一致。小于1,则说明了你是一个索取的人,对p2p的贡献为负。大家一定要注意谁比谁,哪个是分母,哪个是分子,那么这有什么用呢?要注意p2p是一个讲究奉献,讲究积分的东西,你的上传多,你的下载快,这个比例也说明了使用者素质问题,另外对于这个比例,我们也有一些奖惩措施,比如 上传:下载大于2,也就是说明了你的上传量是下载量的2倍,这个时候你在排队的时候,就可以享受优先排队待遇,这个比值越大越好,不存在什么限制,越大说明你的上传量越多,说明你的积分越多,你的贡献越多,当然你排队的时间就越少。如果这个比值小于1,而且越来越小,那么同样你的速度也会越来越慢,这个你怨不了谁。
(2)速度大小的问题 好多朋友往往只关注了那个最大速度,但是实际上那个数值没有什么意义,他只是一个曲线峰值,往往一闪即逝,或者最多持续几秒,我们要关注的是我们的平均速度,这个二元值包含了时间的因素,所以他才能说明我们emule的整体速度大小。

13)积分问题

积分不是你对所有人的积分,只是在你机器下载的人他们的EM对你的积分,比如你开放的带宽大,小A在你那里下的很舒服,你就在小A那里的分数高。同样,小A那里也有一群人在下他的资料其中也有你,由于你开放的带宽多小A在你那里下的多,你在小A那里的积分就高,你就比其他在小A那里下载东西的人有优先下载小A资料的权限(小A可以设置高、普通这些的,设置高的时候就只有积分高的人优先下了)。
自己是无法看自己的积分的,因为这个积分不是永恒的,只是暂时针对一个文件的。

14)好友通道问题

我说明一点,加为好友开通通道,起到的作用只是,可以缩短你的排队时间,使你的信用积分突然变大,此外没有任何作用,他和速度没有本质的联系。

15)tag问题

好多朋友到现在也不明白为什么要有个有个,这个有什么用,其实这个名称是任意的,甚至重名都没有问题,因为p2p世界里面判断你的标志是userhash,而不是用户名,用户名你随便改,一天一个新名字也不会影响你的积分,tag的作用是为了让一些服务器判断,从而可以连接该服务器,有的服务器就是规定了如果你不加[*****]就是不让你连接,所以就加上他连接方便点,另外有的mod可以实现对有相关[****]进行加分,比如我们vc版本对有的朋友就有固定的加分设置,它可以使所有有这个的朋友积分比没有这个的人多,从而达到中国人优先下载优先上传的问题,当然了这个问题,现在在世界范围内,仍是一个争论的话题,到底是否应该加分,大家也是众说纷纭。其实,懂行的朋友可以自己设置加分,可以随心所欲给任何[*****]加分减分,也可以给任意userhash加分减分,以达到优先上传优先下载的目的,甚至可以达到任意ban人的目的。当然了,这个问题不合适公开讨论,有违背p2p的根本,这里点到为止。

16)对于如何隐藏emule头像的问题

对于一些在公司工作的朋友,这一直是一个困扰很久的问题,如何还能下载,还不让老板发现。这里我说两个解决方案
(1)使用第三方软件解决 可以使用SysTrayX软件,这个软件,国内大型软件站都有下载,它是一个管理系统托盘的软件,非常简单,具体使用方法,大家一看就明白了,他可以做到隐藏emule头像的问题,
(2)使用系统服务解决 我们知道在2000以上系统中都有srvany服务,借助这个服务,也可以实现隐藏头像 不借助第三方软件 同样server系统可以用终端服务来实现隐藏头像,另外还可以借助instsrv服务来实现隐藏头像,原理和前面一样,其实就是一个东西,这种方法原理,常见于一些黑客网站,其实有些木马软件,或者后台软件,就是用的这个方案。大家有兴趣可以上一些黑客网站研究研究。

17)关于emule和bt的相关问题

好多朋友都在使用bt的同时,也在使用emule,我这里说一点,对于bt文件,如果我们下到了一半,没有种了,或者非常慢,我们可以把它导入emule下载,用dmTorrent2Par和Jcd2Met或者 Edonkeydoctor或者MetFileRegenerator,都可以实现该功能,很简单,另外emule的文件同样也可以导入bt进行下载,二者可以相互转换。为什么要说这一点呢,是要提醒大家,其实有好多emule的辅助工具,都可以帮我们更好的使用emule,它不是孤立的,只不过国内兴起的比较晚,目前来看,只要edonkey能用的相关软件,emule都能使用。比如,关于重建met的edonkeydoctor软件,就可以使一些下载了很多的错误文件,直接进行修复而不是像以前那样把辛苦下到的删掉。是我们遇到问题需要关闭的时候,不用再担心要删除文件了。

[ 本帖最后由 BLACKWASP 于 2007-11-1 22:28 编辑 ]

BLACKWASP 发表于 2007-11-1 22:20:38

大家天天都在使用emule,hash这个词是在emule里面出现频率最高的,那么到底什么是hash呢?

让我们先来了解一些基本知识,作作预热只有这样才能更好的了解hash。

Hash,一般翻译做“散列”,也有直接音译为\"哈希\"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。

简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

HASH主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系

了解了hash基本定义,就不能不提到一些著名的hash算法,MD5 和 SHA1 可以说是目前应用最广泛的Hash算法,而它们都是以 MD4 为基础设计的。那么他们都是什么意思呢?
这里简单说一下:

1) MD4
MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的,MD 是 Message Digest 的缩写。它适用在32位字长的处理器上用高速软件实现--它是基于 32 位操作数的位操作来实现的。

2) MD5
MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好

3) SHA1 及其他
SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。

那么这些Hash算法到底有什么用呢?
Hash算法在信息安全方面的应用主要体现在以下的3个方面:

1) 文件校验
我们比较熟悉的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏。
MD5 Hash算法的\"数字指纹\"特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5 checksum的命令。
2) 数字签名
Hash 算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。 对 Hash 值,又称\"数字摘要\"进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。
3) 鉴权协议
如下的鉴权协议又被称作\"挑战--认证模式:在传输信道是可被侦听,但不可被篡改的情况下,这是一种简单而安全的方法。

以上就是一些关于hash以及其相关的一些基本预备知识。那么在emule里面他具体起到什么作用呢?

什么是文件的hash值呢?

大家都知道emule是基于P2P (Peer-to-peer的缩写,指的是点对点的意思的软件), 它采用了“多源文件传输协议”(MFTP,the Multisource FileTransfer Protocol)。在协议中,定义了一系列传输、压缩和打包还有积分的标准,emule 对于每个文件都有md5-hash的算法设置,这使得该文件独一无二,并且在整个网络上都可以追踪得到。

MD5-Hash-文件的数字文摘通过Hash函数计算得到。不管文件长度如何,它的Hash函数计算结果是一个固定长度的数字。与加密算法不同,这一个Hash算法是一个不可逆的单向函数。采用安全性高的Hash算法,如MD5、SHA时,两个不同的文件几乎不可能得到相同的Hash结果。因此,一旦文件被修改,就可检测出来。

当我们的文件放到emule里面进行共享发布的时候,emule会根据hash算法自动生成这个文件的hash值,他就是这个文件唯一的身份标志,它包含了这个文件的基本信息,然后把它提交到所连接的服务器。当有他人想对这个文件提出下载请求的时候, 这个hash值可以让他人知道他正在下载的文件是不是就是他所想要的。尤其是在文件的其他属性被更改之后(如名称等)这个值就更显得重要。而且服务器还提供了,这个文件当前所在的用户的地址,端口等信息,这样emule就知道到哪里去下载了.

一般来讲我们要搜索一个文件,emule在得到了这个信息后,会向被添加的服务器发出请求,要求得到有相同hash值的文件。而服务器则返回持有这个文件的用户信息。这样我们的客户端就可以直接的和拥有那个文件的用户沟通,看看是不是可以从他那里下载所需的文件。

对于emule中文件的hash值是固定的,也是唯一的,它就相当于这个文件的信息摘要,无论这个文件在谁的机器上,他的hash值都是不变的,无论过了多长时间,这个值始终如一,当我们在进行文件的下载上传过程中,emule都是通过这个值来确定文件。

那么什么是userhash呢?

道理同上,当我们在第一次使用emule的时候,emule会自动生成一个值,这个值也是唯一的,它是我们在emule世界里面的标志,只要你不卸载,不删除config,你的userhash值也就永远不变,积分制度就是通过这个值在起作用,emule里面的积分保存,身份识别,都是使用这个值,而和你的id和你的用户名无关,你随便怎么改这些东西,你的userhash值都是不变的,这也充分保证了公平性。其实他也是一个信息摘要,只不过保存的不是文件信息,而是我们每个人的信息。

那么什么是hash文件呢?

我们经常在emule日至里面看到,emule正在hash文件,这里就是利用了hash算法的文件校验性这个功能了,文章前面已经说了一些这些功能,其实这部分是一个非常复杂的过程,目前在ftp,bt等软件里面都是用的这个基本原理,emule里面是采用文件分块传输,这样传输的每一块都要进行对比校验,如果错误则要进行重新下载,这期间这些相关信息写入met文件,直到整个任务完成,这个时候part文件进行重新命名,然后使用move命令,把它传送到incoming文件里面,然后met文件自动删除,所以我们有的时候会遇到hash文件失败,就是指的是met里面的信息出了错误不能够和part文件匹配,另外有的时候开机也要疯狂hash,有两种情况一种是你在第一次使用,这个时候要hash提取所有文件信息,还有一种情况就是上一次你非法关机,那么这个时候就是要进行排错校验了。


关于hash的算法研究,一直是信息科学里面的一个前沿,尤其在网络技术普及的今天,他的重要性越来越突出,其实我们每天在网上进行的信息交流安全验证,我们在使用的操作系统密钥原理,里面都有它的身影,特别对于那些研究信息安全有兴趣的朋友,这更是一个打开信息世界的钥匙,他在hack世界里面也是一个研究的焦点.我是一个门外汉,利用这个周末找了一些资料,胡乱写了一点关于hash的文章,也有不少是我自己的分析,这期间肯定还有不对的地方,还请朋友们多多指出错误,我抛砖引玉希望大家批评指导。

BLACKWASP 发表于 2007-11-1 22:21:37

Kad是Kademlia的简称,eMule的官方网站在2004年2月27日正式发布的 eMule v0.42b中,Kad开始正式内嵌成为eMule的一个功能模块,可以说从这个版本开始eMule便开始支持Kad网络了。

Kad的出现,结束了之前edonkey时代,在ed圈里只存在着ED2K一种网络的模式,它通过新的协议开创并形成了自己的kad网络,使之和ED2K网络并驾齐驱,而且它还完全支持两种网络,可以在两种网络之间通用。Kad同样也属于开源的自由软件。它的程序和源代码可以在官方网站http://www.emule-project.net上下载。

Kad网络拓扑的最大特点在于它完全不需要服务器,我们都知道传统的ed2k网络需要服务器支持作为中转和存储hash列表信息,kad可以不通过服务器同样完成ed2k网络的一切功能,你唯一要做的就是连线上网,然后打开kad。Kad需要UDP端口的支持,之后Emule会自动按照客户端的要求,来判断它能否自由连线,然后同样也会分配给你一个id,这个过程和我们ed2k的高id和低id检查很像,不过这个id所代表的意义不同于ed2k网络,它代表一个是否“freely”的状态。

Kad和ed2k网络有着完全不同的观念但是相同的目的: 都是搜索和寻找文件的源。 Kad网络的主要的目标是做到不需要服务器和改善可量测性。相对于传统的ed2k服务器只能处理一定数量的使用者(我们在服务器列表也都看到了,每个服务器都有最大人数限制),而且如果服务器比较大连接人数过多,还会严重的的拖垮网络。而Kad能够自我组织,并且自我调节最佳的使用者数量以及他们的连接效果。因此, 它更能使网络的损失达到最小。由于具备了以上所叙述的功能,Kad也被称之为Serverless network(无服务器网络)。虽然目前一直处于开发阶段(alpha stage) 。但毫无疑问,它无可比拟的优势,将会使它成为p2p的明天。

可能很多朋友会关注, kad网络没有高低id的计算原则,是否对于低id来言就畅通无阻了呢?

我们大家知道在ed2k网络里面,我们的id是通过ip进行如下的算法计算得出的
设我们的IP = A.B.C.D
那么我们的ID number= A + 256*B + 256*256*C + 256*256*256*D
low ID的产生是由于我们的ID计算结果小于16777216.
即 ID number= A + 256*B + 256*256*C + 256*256*256*D < 16777216

Kad的 id计算原则并不是象上面那样,他更关注我们是否open和freely。
但是kad里面是如何计算我们的id呢?
事实上它的计算方法是这样
ID number=256*256*256*A+256*256*B+256*C+D
所以kad其实也有高低id的分别。所以内网用户在使用的时候依旧无法达到内网用户完全穿透网络的效果,而且目前来看,还存在着kad模块引入,导致占用系统资源会变大以及会突然产生Memory Leak的问题,对于内存的控制,目前emule做的效果还是不好。

其实kad本身有一个nodes.dat文件,也叫做节点文件,这里面存放了我们在Kad网络中的邻居节点,我们都是通过这些节点来进入Kad网络的。其实kad的网络倒更像是overnet和Kazaa网络,有兴趣的朋友大家可以对比看看。Kad网络提供了帮助寻找节点以及记录节点的机制。

下面我们来说说这个机制的原理:
Kad拥有一个160bit的ID,每一个节点送出的讯息都必须包含此ID。每一个节点都必须记录一个资料来保存已经存在的节点,资料的格式是 (IP address, UDP port, Node ID),节点所必须负责的范围是2的i次方及2的i+1次方,i的范围是0 < i <160,这个结构叫做k-bucket,该结构会形成一个tree的形状,每一次接收到新的信息时,各个节点都必须更新k-bucket內的资料,透过k-bucket结构我们可以保证所有的节点状态都是新的,而且一定会知道这个节点在哪里。

Kademlia网络提供四种Potocol(RPC)
(1)PING 测试是否节点存在
(2)STORE存储通知的资料
(3)FIND_NODE 通知其他节点帮助寻找node
(4)FIND_VALUE 通知其他节点帮助寻找Value
而当每一个指令被接受到后,每一个节点都会到k-bucket上搜寻,通过这样的结构,kad提供一个方便快速且可以被保证在logN次数下找到所需的节点。

通俗的来讲就是在kad网络中,我们每个emule用户端只负责处理一小部分搜索和查找源的工作。分配这些工作的时候,通过我们每个用户端的唯一的ID和搜索文件的hash值之间的匹配来决定。比如像我猜我猜我猜猜.rm这个文件由用户小王来负责(通过该文件的hash值来决定),那么任何其他用户在下载这个文件的時候都会告诉其他用户,小王有这个文件,其他用户去下载这个文件的時候也会询问小王,小王也会告诉他们谁正在共享这个文件,这样kad找源的工作就完成了。搜索时候的方法也差不多,只不过是每个人负责一个关键字。

整个过程有点像在照线索循序问路而找到正确方向,而不是路上随便到处抓人在问路。而每个地方里的网络相关信息,则会随着电脑及文件的加入而持续更新。好处在于让你可以搜索整个网络,而不只是在某一地区。目前来讲,这个机制和算法是绝对领先而且非常优秀的。

如何找到用户小王则是通过将用户id异或的方式,两个id的二进位异或值决定他们之间的逻辑距离,如1100距离1101要比距离1001近。那么当一个用户加入kad后,首先通过一个已知的用户找到一批用户的id和ip地址和端口。当该用户要寻找一个特定用户A的时候,该用户先询问几个已知的逻辑距离较A较近的用户,如B用户,C用户,D用户,B,C,D会告诉该用户他们知道的更加近的用户的id和ip地址和端口,同理类推,这个用户最终就能找到A。所以寻找的次数会在logN数量级,这里N代表询问的人数。

其实也就是一种分散式杂凑的方法,基本上是对网络上某一特定时刻的文件进行快照(snapshot),然后将这些信息分散到整个网络里。 为了找到特定的文件,搜索的要求先到达网络上的任何一台电脑上,然后这台电脑就会再将它转到另一台有更多文件信息的电脑。第三台电脑可能就拥有文件本身──或者也可能再继续转到其他有正确信息的电脑。采用这种方法,通常只需要跳转两到三次,便可以轻松查找到所需文件。

以上几个部分,便是对于kad作用原理以及算法的分析,可能好多人看了之后头大,那么我们普通用户到底该注意些什么呢?

很简单,你要作的就是再使用emule的时候打开kad,你会发现有两个明显的特点
(1)你的下载速度会加快
(2)你的下载文件的源会增加
以上两条对于lowid和经常下载源在国外的文件用户,效果就更为突出,特别对于在ed2k网络中只有几个源或者没有源的文件,在kad网络中,一般都能找到源,所以说你使用了emule下载文件,基本上不会出现没有源的请况,无论多长时间,差别只是源的多少个数问题,由于kad网络都是自动配置的,所以你丝毫不用分心,那么索性我们就打开它,何乐而不为呢?

另外对于我们搜索的时候,如果采用kad网络搜索,多数情况下找到的文件源会远远多于ed2k的全局搜索,对于大家都是一个明智的选择。

虽然,目前kad还处在试验阶段,但是他的崛起是迟早的事情,我从kad一开始推出就一直在使用,开始的时候用的人不多,效果不明显。但是目前来讲,再我发帖前,我还做过测试现在kad的使用人数已经突飞猛进,我随便找了一期我猜我猜我猜猜来做测试,发现kad找到源的比例已经占了总源比例的30%,甚至更多,时间越长效果越明显。所以,在这里呼吁大家都打开kad,让我们的速度再迈上一个台阶.早日迎接kad天下的到来!

BLACKWASP 发表于 2007-11-1 22:23:29

对于ADSL的用户,无论电信还是网通,我们大家的ADSL的标称速度大都在512k到2M之间,那么该如何理解这个标称速度呢?

下面以512k宽带为例子,说一下具体情况,1m和2m的大家同比换算。我们的电脑通过ADSL接入网络后,在下载时候一般都会出现一个下载速率显示,上面显示我们正在下载的速率。对512k而言一般为几十KByte/s左右!(一般为50左右上下差不多)这个速度其实是通过换算关系得到的速度。下面就要提到这个众人皆知的公式
512K=512Kbps=512Kbits/s=64Kbytes/s
在这里大家要注意bit和byte的换算关系是8bit=1byte,bie叫做位,byte叫做字节,大家一定要分清这两个单位,简称都叫做b(分清这个单位也有助于一些朋友理解,为什么我用bt下载速度显示上千b而用em下载却只有几百b?为什相差如此之多 答案是速度并不相差,而是速度单位表示不一样)。那么这个64K的速度究竟代表什么,往往现在大部分论坛里面的朋友都会认为好了,我们计算得出的这个就是我们宽带的理论速度极限,512k就是64k下载速度了,em下载速度只会比这个少不会比这个多。然后朋友们就开始自信满满的限速,心里想因为我们有理论速度作为支持,不会错!可是这个时候大家要注意了,往往就是这个理论速度会害了很多人,他背后的真正意思并不是如此简单。

64k的理论值含义是“个人用户所能独享的最大下载带宽”。在这里大家要注意“独享”这两个字的含义,我在后面要着重分析,我们在ADSL安装的时候,大家也都看过申请表,上面的带宽项目写的是都是“不高于512K”,“不高于8M”等等,也就是说我们在正常的情况下馍以拥有最多不超过64K的专有带宽。注意这里指的是“专有”这两个字要引起重视。

事实上,我们目前的ADSL在isp终端是运行在ATM上面,ATM到chinanet边缘路由器带宽是155M,目前每一个边缘路由器可以连接3000用户,如果这些用户同时上网,那每个用户其实只有50kbit/s的带宽,也就是7Kbytes/s,加上路由器衰减,那么最终可能只有普通modem的速度了。当然以上只是假想的情况,毕竟3000人同时连在一台边缘路由器上面几乎是不可能的,电信也不会让路由器满负荷连接而使得速度下降如此之多。所以64k是我们的个人专有独享的带宽最大值。

我只所以要如此强调,个人专有独享,是因为64k是个人最大“专有”“独享”宽带,但是他并不是你的上网可以得到的最大带宽,注意二者并不相等,为什么呢?

大家要注意,事实上在当我们在ADSL拨号时,我们已经分配了实际约等于8Mbps,(这个值是ATM连接方式上adsl线路所能支持的理论最大上下行值)也就是1Mbytes/s的下载带宽,目前国内所有的adsl都是这个值,无论你申请的是几M的带宽,只要你一拨号,你就得到这个带宽,这个是ATM分配机制所确定的,当然了电信之类的isp根据我们的申请,限制了我们的专有独享带宽最高为64K,那么当路由器连接的用户较少的时候,我们就可以获得一部分超过专有带宽的共享带宽(显然电信没必要让这些带宽闲置),注意这里就产生了额外的速度,也就是实际上我们会获得大于64k的速度,具体大多少这个要看我们上网是否处在高峰期,我们周围所有接入adsl用户的多少,以及我们当地isp的终端硬件配置,但是一般而言我们几乎不可能碰上所有人在同一时间段同时接入上网,在数学上这是一个小概率事件,他不可能发生。

从这一点上来言,我们也可以说实际上64k对我们来讲相当于一个最小实际速度,我们的接入速度只会比64k大而绝不不会比64k小,当然也不可能大的离谱,因为毕竟总还是有很多人在同时上网,而且电信肯定还有一些平衡负载的机制在运行。

说得白一点 其实我们带宽都是共享的,人多你就慢,人少你就快。就看我们当地机动非配的带宽有多少。继续分配的潜力有多大,

在了解了以上机理后,我想大家是否回头想想你的限速合理吗?我们大部分人都按照64k作为最大值限制,根本不合理,我们上网所能得到的实际速度要远远大于他,我们是否把自己限制的太低了,人为的造成了瓶颈,这个理论值,我们是否看得太重要了?其实他没有什么用。在这里还要说两点

1 其实我们的isp在给我们分配好带宽后,同时已经在终端给我们做了一次上行限制,有些地区上行限制的很死,本来就已经很低了。这也就是为什么总有些朋友反映为什么我下载好几百 上传却只有几十,原因所在,isp往往对下载限制的比较少,而对上行却确限制很大,他们这么做的目的很简单,为了市场这样可以更多的吸引客户,而硬件上却不用继续投资,所以我们的上行速度往往是已经被人家限制了之后的速度,而我们一些朋友再这个基础上自己又继续限制,是不是把自己搞得余地太小了呢?

2 全国各个地方往往isp的管理严格不同,有的地方大城市 用户多 监管严 那么他们的isp可能就会严格按照理论值来执行宽带分配,而一些中小城市,用户少管理松散,他们的isp往往就不太在乎严格分配带宽,反正闲着宽带设备也是闲着。还不如就分出去,所以这些地方的512k有的时候可以到达1m的速度,并不奇怪,

另外,还存在一些电信和网通的内部关系用户,他们往往是电信和网通的家属,他们在申请宽带的时候,可以享受内部的标准,说是申请512k可能实际上终端非配的会达到2M,这些非理性因素,也在很大程度上影响我们的带宽获得,从而相应影响这一部分用户的速度设置他们自己往往都不知道,自己到底有多大带宽。又怎么能正确设置。

最后,还有我们的连接方式,比如我们电话线的质量,铜芯和铅芯的在速度上都会有所不同,我们电话线到机器的长度也会造成信号衰减,我们分线盒的质量,我们拨号猫的芯片质量,夏天的散热等等这些也都会影响我们的实际速度。

说了这么一大堆为什么?是想让朋友们都仔细想想自己的情况,以后考虑限速的时候 可否不要一上来就 我有理论速度,我就按照那个限制,我必须得限速等等。
大家也都知道bt的局面,大概两年前左右我已经在使用bt,那个时候国内使用bt的人很少,但是大家的速度都很快,因为那个时候没有人提倡限速,也没有人下完就跑,玩bt的都是一些老鸟,后来bt普及了,渐渐传出了什么bt要限速,对我们有好处之类的东西。

现在大家在看看bt 越来越慢,整个bt圈大家都在提倡限速,什么后果呢?就是大家甭管什么条件,上来就限,结果弄得越限速度越慢,越慢速度限的越低,成了三个和尚没水喝的局面。

我在这里想说的是,我们以后再限速的时候能不能多想想这些,我们在动员别人也限速的时候能否多想想这些,限速是一把双刃剑,请大家三思后行,不要人云亦云,要对自己所说的话负责任,因为我们是em的先行者,em在中国的明天就掌握在我们的手里,难道我们愿意看到再过几年,整个em圈重走bt的覆辙吗?
也许有些朋友会说,那么为什么我的速度就是上不去呢,这里我想说得是 em的速度有很多东西在影响他 连接数大小 内存缓存大小 同时运行任务数大小 每5秒新建连接数大小 上传线程大小 上传宽带分配大小等 源的多少 分流的多少 都在综合作用,不是简单一个限速就可以解决的。

也许有些朋友会说,可是我的adsl不限制,就是速度很慢,怎么办?我要说的是,可以限速,但是要一点点调整,不要一下把速度限死,最好自己搞个测试,全速上传一段稳定时间,在这个基础上分析出自己的最大长传能力,然后结合以上的一些因素,自己一点点调整上传速度的大小,这是一个漫长的过程,要几个月时间才能找到最佳匹配值,也不为过,总之,在保证自己可以下载的同时,也保证自己也在分享,这个才是em的最佳用法,另外自己不下载的时候,是否可以不再限速全力上传,为了自己的积分也为了别人。

大家天天都在强调速度慢,天天琢磨调这个调那个,孰不知,影响em速度根本的其实是你的积分,速度等其他调整起到的作用往往只是锦上添花的效果,如果你的积分不高,那么你先天就不足,再怎么调整也于事无补.
我有一个朋友,他不大懂em设置,自己也不敢调什么,但是他的网络条件好,硬盘也大,他第一个月就上传了1tb,什么概念1000多个g,后来就这么用了几个月,他现在随便下一个我们电影区置顶热门电影,大概也就是10几分钟就下载完了,700多m十几分钟,为什么?因为他的积分高,他的网络条件好,em讲究的是积分,积分制度决定了你要是想出来混,那么你欠下的就一定要还。你在别人那里下载过东西,你就欠那个人的你早晚要还给他,跑不了。所以在这里奉劝所有em的朋友,多多上传是根本,上传多了,底气硬了,自然就要本钱,别人欠你的越多,你的速度就越快,争取都做个债主,否则只会,越欠越多,越多越欠,速度越慢,路越走越窄,永远无法翻身,希望不要如此恶行循环。

最后,说一点题外话,我们现在vc没有自己的共享核心,但并不代表我们不支持,主要是我们没有自己的服务器导致了我们好多想法无法实现,希望各位在使用em的时候,都能多一些共享的精神,现在硬盘都大了,也便宜了,共享个一二十个g,也都不成问题,大家不要一下载完就跑了,em本身占用内存也不大,你可以一边看电影,一边下载都不耽误,这样多好。我们大家在em的tag上都打着的印记,那么我们在p2p的圈里就都是一家人,为何不照顾一下兄弟姐妹,正因为我们都打上了vc的印记,无论你承不承认,我们在p2p圈里的一言一行,也都代表着我们vc,对我们所有有标志的朋友,这是一种荣誉,也是一种责任,我们的一言一行都会被其他的论坛的朋友看到,他影响着你我他,我们每一个人,我们vc的形象和名声,我们大家都不愿看到我们自己被别人指责,我们vc的兄弟姐妹被别人说三道四,我们vc被别人嘲笑,那么请大家都有一个责任感好吗?
多多共享,长久作源,不要下完就跑,最近总是看到圈里有人说我们在把em当bt使用,说我们的成员下完就跑,也不共享,我也试着察看了一些,发现这个现象确实如此,而且大家往往就只共享正在下载的文件,就那么几个而已,请大家都尽力为p2p为vc多做些事情好吗?
最近也发现不少新会员,再通过em聊天的时候,往往发给对方一些抱怨速度慢的话语,甚至还有的在辱骂对方,这些会员的tag里面都打上了的标志,我想无论如何我们做人的素质要有,大家都在共享,你能够下到就应该有一种感恩之心你又有什么资格抱怨对方速度慢,辱骂更是不智,这样做的后果,往往就是在别的论坛里面,成了人家取笑我们没有素质的靶子,成了让人家轻视我们的依据,难道我们愿意让我们的兄弟姐妹在别的论坛里被人家说三道四吗,我们也有好多朋友在别论坛里面也是会员,这样一来,往往弄得不知真相的人扇风点火,弄得那些朋友在别的论坛也抬不起头来,希望所有的朋友,在p2p世界里面开心,奉献,分享,享受,也希望朋友们都能有一颗感怀的心,而不是索取无度,都能尽自己的一份力,为别人也为了自己,为了vc更请大家都把自己看作是主人翁,深知你所作的每一件事情,在p2p世界里,不只是代表你,也是代表vc,代表我们大家庭里面每一位兄弟姐妹。

孟子曰:‘独乐乐,不如与人乐乐,与少乐乐,不如与众乐乐’。

BLACKWASP 发表于 2007-11-1 22:25:32


其实,经常看到大家在论坛里面比来比去,比自己的下载速度有多快,还截图,很酷!但是我要说,这其实有点像小孩的做法,每一个刚接触em的人,都要经历这个阶段,谁下载的快谁牛x!我也经历过这个阶段,但是渐渐的领悟了em的真谛,也认识了一些老鸟,后来大家就常常在一起比看谁的上传速度快,看谁的上传:下载比例大,看谁的在线时间长,看谁的下载速度小,大家都截图发上来,是不是有些变态啊!哈哈,我估计你们玩时间长了,也会渐渐变成我这样的,其实上传是有瘾的,真的,我几乎一个礼拜要拿出一多半时间什么也不下载,专门上传,不限速,传的越多,瘾就越大,很兴奋的感觉!

在我们的比试中,我看到过最快上传的是1.5--2m/s,上传最大比例的已经达到了上百:1了,在线时间最长的有过300多天,持续在线上传,上传量基本上都是一个月几个tb级别,我觉得玩em,玩到最后大家都有点共产主义的精神了,这个东西很培养人的奉献精神,真的!

当然了,有人要说你们网络条件好,但是我也见过有的朋友就是adsl上传,一个月也传了不少,其实不在乎你传得多少,关键在于你有没有奉献的精神,不以速度论英雄!

当然了,这些老鸟都是狂人,他们基本上24*7的开机,一周不间断连续开机,一个月关一次两次,而且多是包月或者包年,我发现这些人和我们有所不同的是,我们通常对于上传速度>下载速度,我们就认为不正常,不合理,不应该这样,但是,他们却认为就应该是这样,没有什么不对的,下载恨不得没有才好,上传恨不得到顶才好,他们这帮人平时也下载东西,但是一般他们下载限速,一般情况下都是上传几百,下载几十,他们抱定的原则是,下载够用就可以了,太快了下载完了,也是放着,没有时间看!
这也许就是大家看待速度问题的角度不同吧,我们认为只有下载速度>上传速度,才是正确的可以接受的,其实,我们也没有错,大家追求的不同而已!

但是,有的时候,我们是不是能换换角度,不要那么拘泥于速度呢,够用就可以了,我了解到的情况多是,有的朋友下载速度确实很快,一天几部dvdrip,但是他并没有那么多时间看,之后就会关着机器,然后就是如此循环,直到硬盘被塞满,我想这个时候,对于我们来言,下载速度快其实也没有什么用,你用一天下一个,和用10分钟下一个也没有什么区别,都是没有时间看,就是下完之后关机时间的长短而已,省电的问题,当然了,我们都希望越快越好,因为心理很爽,这个无可厚非!也确实,看着速度慢,心理很烦。所以,对于速度确实很慢的朋友,建议不要老是盯着em看,你越看越烦,你把显示器关了,干点别的,em不喜欢你盯着他看,我记得我一开始接触的时候,也是天天盯着看,后来都有想把电脑咂了的想法,后来慢慢平静了,索性关了显示器,去睡觉,往往一觉醒来,就下载完了,多好!

我想说的是,对于那些包年包月的用户,你们不上网也是闲着浪费,何不就开着机器多传点,电费我算过一个月不关机也就最多100元,3碗日本面条的钱,要是对于不在乎这点小钱的朋友,就多贡献贡献,你的回报也是丰厚的,你的积分肯定增加,下载起来排队的时间肯定减少,在可以接受的前提下,何乐而不为呢?

BLACKWASP 发表于 2007-11-1 22:26:56

1.版本问题:现在有很多EMULE版本,到底哪一个更好众说纷纭,本人推荐三个版本 官方版 acat版 VeryCD版 我用的是vc版的,其实大家都是大同小异,很难说谁比谁要优秀,电骡的源代码是公开的但是他们的内核都一样,acat版 我和VC版作过对比,发现对于上传而言,要优于VC版,但也仅仅是刚刚开始上传的时候,前者会很快达到上传峰值,而后者则要相对晚一点当然稳定后差别不大,下载的时候基本一样,不存在孰优孰劣。但前者有证书功能,可以上榜对于喜欢上传的骡友们是个不错的选择,但缺点是要想上榜就只能连中国骡的服务器.VC版虽然没有证书,但更容易上手,但是也有一点不足,个人认为,就是默认的用户名yourname结果造成了成千上万的yourname,看起来不太好看,当然这也不伤大雅,请新来骡友们记住,要改名字啊!这样也便于大家互相认识,要不真很难分辨。官方版的很稳定,但很多设计上不如前两者容易上手,当然对于高手也是不错的选择。

2.升级问题:骡子的升级是很快的,但是有许多骡友总是有很多误解,每次一有新版的出来后,随之而来的就是潮水般的批评,什么速度变慢了,积分没有了等等,结果弄得人心惶惶
大家谁都不敢升级,反而都去找老版,e版出来的时候如此,g版也是,可是现在大家又回过头来说其实e版稳定,g版稳定,其实有很多时候安装新版时候速度慢,往往是自己设置的问题,但却怪版本问题,大家大可不必,放心安装新版,我一路用过来,也都跟着升级,但是却没有什么前面的问题出现,关键是要自己设置一些电骡的参数,另外在安装新版时候旧版千万不要卸载,而是覆盖就可以了,如果还是觉得不把握,那就把emule文件夹中的config文件夹复制作一个备份,如果安装出现失误,就把它还原这样就把握多了。

3.设置问题:没有接触电骡的都以为它很复杂,有那么多参数怎么设置,不如BT傻瓜化,其实电骡参数那么多,但是关键的就是几个而已,其他都不用去管他,另外VC版的有安装向导
非常简单,但是要想使自己的骡子飞起来,不可以完全按照向导上去做,一定要自己根据自己的情况设定,向导上都是按照最低的标准设计的,所以他的参数很低,会大大限制骡子,如果设置好了,其实骡子要优于bt,下面说说需要自己手动设置的参数:上传速度 下载速度 每个文件最大连接数 最大连接总数 每五秒最大连接数 上传线程, 其实也就是这几个参数需要调整一下其他也都不用动,具体该设多少这要看自己的机器了,人家说好的你拿来设定不一定好,人家说不好的,你设定后没准会更快,不要人云亦云。我的机器配置前面说了。总之,这个要自己一点点试别怕麻烦,我花了几个月才慢慢找到门道。

4.服务器问题:在这里向大家推荐几个服务器中国骡1号2号,hanstyle,华语p2p,Korea-only,Razorback,TLF Taiwan ED Server,popgo.大家可以把它们设置成静态,高优先级,这几个完全可以满足大家下载综艺节目,电影和动漫的要求。

5.连接技巧问题:看到了论坛里很多骡友的赶骡秘籍,我也总结了一下在这里说给大家,当然了大部分都是广大骡友的集思广益,首先,大家会发现当你刚刚连上一个服务器的时候,你的速度开始很快,但是慢慢就降下来了,这是正常的大家都这样,所以千万不要反复重启去连接同一个服务器,因为这样会被服务器ban掉,另外,当你下载一个文件的时候,你可以先连上一个服务器(例如:中国骡1号),过5分钟以后,你可以断开,在连接华语p2p,之后再过5分钟,你可以在连接korean,同上直到把上面推荐的服务器都连一遍,然后找一个人多的服务器稳定住,就不要动了,这样你会发现比你始终连接一个服务器来言,找源的速度会相对快一些,相信用过一段大家就有体会了,有的骡友发现有的文件会长时间停留在100%完成中状态,很着急这个时候你倒是可以将你的骡子重启一下,然后按照上面说的办法,相信很快就会变成已完成。

6.速度问题:对于这个问题网友们对电骡抱怨最大什么没有BT快,天天都能在论坛里看见这样的帖子,首先要说明的是抱怨速度慢的同志你们的设置肯定有问题,其次还有一个主要的原因,就是你们可以看看你们的上传下载的比例,有几个是大于1:2的 有很多人只想下载而不愿上传,那么抱歉你的速度永远也快不了,要知道电骡的世界是最公平的,你不上传,那么你就别下载,你上传少下载多那么你的速度就不会快,电骡的世界讲的是奉献,我知道有很多人只上传而不下载,大家可以去骡榜上看看那些强人,他们一天的上传量,也许我一个月都达不到,据说他们现在下一部700M的电影,有的只需要几分钟就下来了,所以,大家一定要有上传的概念,你下的越多,上传的越少,你欠的就越多,你的速度就越慢,不断恶性循环,这也许就是有些同志抱怨速度慢的真正原因,大家记住,既然出来混,欠下的迟早要还的,所以要想速度快一定要多上传,有些人抱怨我的条件不好,没法上传其实平时开机的时候记得把骡子打开,不下载的时候仍然记住上传,不要关闭,骡子并不占用太大资源,尤其是上传的时候,虽然我的机器不好,但也不耽误做别的,对于我的这台破机器都能这样,但是我已经很满意了.我相信你们一定会比我快,另外说一下限速的问题,如果有条件,大家尽可能的不要限速或者少限速,其实adsl也不一定要限速,每个地方的网络条件不同,不可一概而论,所以大家应该自己去调整,不要人家说限速你就限速,他限他快,可是你限你可能会慢,另外限速有的时候对电骡根本来讲不好,因为限速的同时也限制住了自己,另外限速带来的又一个结果就是整体的电骡世界速度下降,大家可以想象1年前的bt有多快,在看看现在的bt整体的速度降下来了,这都是bt提倡限速惹的祸,希望电骡不要再蹈bt覆辙,毁到我们手里,所以限速的时候大家要慎重,要根据自己情况,总之,一句话多多上传,付出总有回报,要经常注意自己的上传下载比例啊,不要欠下太多。

7.ID问题:现在有了端口映射,LOWID也不怕了,但是大家总有一种看法就是LOWID不如HIGHID其实也不尽然,高低与否与速度无关,只是与找源的数量有关,高id可以不受服务器限制,而lowid只能和本服务器内的高id互连,无法跨到别的服务器,但是大家要知道,如果lowid连到了一个上传超大的朋友,那么也会达到几百的速度,就看你能不能连到了,同样高id如果连不到什么,也只能10几k,所以这里就有一个技巧,对于高id来说,要尽量选择一个人多的服务器,因为这样你会找到更多的lowid,虽然他们速度慢,但是数量多了,也不可小视,同样对于lowid而言,你要找到一个有狂人多的服务器,因为你们不能跨越服务器,所以只能盯住一个,如果碰到一个条件好的,好几百的速度也不是不可能,综合以上来言中国骡一号服务器对于lowid来言是不错的选择,因为骡榜在那里,对于highid而言,华语p2p也不错,因为他的人数是所有华语服务器里最多的。

8.功能问题:经常看到有好多朋友在问 加好友有什么用,其实加好友有以下几个功能 可以聊天 另外可以建立好友通道,他会使你的好友在下载你的东西时候 增加你的积分排队靠前,对于速度来言都不会有什么影响。还有人问KAD是干什么的,它可以说是一个电骡的未来版本,KAD网络可以不通过服务器,而使所有骡友们互连,很诱人的前景,但是国内使用的人不多,建议大家都打开。另外对于统计信息里的几个值大家要清楚,尤其是速度,本次会话平均速度只有这个值才是你应该注意的,剩下的最大速度,只是瞬时值而已,没有什么参考价值,我的最大速度到过200多可是4个月来只有那一次几秒钟左右,有什么用,它只能说明我的网络和硬盘可以达到这样一峰值而已,别无他用,所以以后再和别的骡友讨论速度时候,还是比一下平均速度才来的实际。

搜索的功能很多骡友不太会用,其实巧用搜索可以找到许多意想不到的东西,所以大家要多多使用搜索啊,举个例子,这几天各大骡坛都上不去,我想下载8月1日的周日八点党,骡坛里的现有连接没有,只有搜索,搜SUNDAY8结果找到许多,但是没有8月1日的都是以前的,怎么办,不要怕,你先找一个源多的下载,这个时候查看下载的源,找到了一个ydy的朋友,加好友,然后右健点击察看对方文件,好家伙,全都是综艺节目,近一个月来伊甸园的所有节目都有,终于发现sunday8-04-08-01,点击下载,大功告成。所以大家要学会用搜索,我上面搜的是sunday8,如果大家搜个别的呢,然后再继续扩大,记住随时用右健点击察看对方文件,你会找到许多意想不到的东东,另外这也告诉了我们要学会共享自己的文件,既然你使用电骡,你就尽可能多的共享你的文件,一句话:独乐乐,与众乐乐孰乐!所以大家要尽可能把你的硬盘塞满东西,别让他空着,然后共享,这样来下你的东西的人越多,你的积分越高,你的速度越快,我的硬盘只有可怜的10g,但是我分出来7G给电骡,装的满满的,每天看到有很多人下我的东东,很有成就感。另外从这里也告诉我们一个小技巧,就是大家要注意随时观察自己下载的源的骡友的名字,经常遇到名字有特殊符号的基本上是骡榜的朋友们,还有一些是各大骡坛的核心们,象是三角形五角星等等,所以能连上他们,你的速度肯定快了,另外他们的目录一般都是共享的,在那里也能找到许多经典的节目。

BLACKWASP 发表于 2007-11-1 22:31:28


<一>安装和版本问题

1) eMule对Windows有什么要求?
eMule能在Windows 95版本以上的Windows操作系统下运行。
1个好的P2P软件需要好的拨号网络的支持,所以Windows 98和Windows ME的比较差网络运行情况可能会影响eMule的发挥;相对来说Windows 2000和Windows XP更适合使用eMule。

2) 弹出错误信息说oleacc.dll文件找不到?
使用Windows 98的用户在启动eMule的时候可能会出现此错误信息。这个缺损的dll文件可以从Microsoft的 Windows 98 System Update 处获得。

3) Installer和Binary的区别?
Installer文件用于第一次安装eMule,它包含了所有必须文件和帮助文档等。执行exe文件通过弹出的指示即可以安装eMule。
Binary是一个压缩档案文件,你需要把他解压缩(覆盖)到你想要安装的目录,通常用来做升级安装用。

4) 当我升级eMule版本时候怎样才能保留我的设置和下载到一半的文件信息?
你只需要安装(或解压)新版本的eMule到你原来版本的安装目录,eMule会自动更新eMule.exe文件,用户设置文件和其他一些用户信息文件都不会被覆盖,原来的设置等都将保留。
注意请关闭eMule之后才可以安全执行升级新版本,否则可能会导致不可知错误。

5) 如果从eDonkey/Overnet升级到eMule并保留原来的下载信息?
这取决于你原来使用的eDonkey/Overnet的版本。
0.47版本以前的eDonkey使用和eMule部分兼用的系统,但是0.47以后的eDonkey版本把下载的temp文件分成了很多独立的小文件,使eMule无法再使用。
老版本的eDonkey升级到eMule,你只需要把eMule的临时文件目录指向原来eDonkey的临时文件目录即可。
新版本的eDonkey升级到eMule,你可以先使用 OldPart 这个程序把未完成的eDonkey临时文件转化,再用 MetFile Regenerator 程序把它们还原成eMule可用的临时文件。不过,我强烈建议你在升级到eMule先完成原来的下载文件。

BLACKWASP 发表于 2007-11-1 22:32:19


<二>服务器、连接和ID问题

1) 从哪里可以取得服务器列表?
http://ed2k.has.it – 官方eMule服务器列表更新网址

2) 哪个服务器是最快最好的?
没有绝对的最快或者最好的服务器。服务器是用来连接其他eMule用户、搜索文件和搜索源用的。当用户使用全局服务器搜索时,eMule会向列表里的每个服务器询问搜索结果并返回用户。
同样,下载文件的时候,eMule会在服务器内搜索速度最快的源。

3) 我需要多长时间更新一次服务器列表?
如果你正在使用或者经常使用eMule,那么就没有必要刻意去更新服务器列表。eMule的默认设置会在使用过程中不断更新服务器。

4) 为什么我的eMule连接不上服务器?
在连接到服务器以前会有短暂的等待时间,也有可能服务器当机或没有响应。如果eMule完全不连接,请确认你的服务器列表是最近更新的;也或者可能是Firewall和Router设置不当造成eMule的连接不畅通。
还有一点,你必须检查eMule中的 选项 -> 服务器 -> 仅自动连接到静态服务器 ,如果这个选项被选中的话,而同时尼列表中没有可用的静态服务器,eMule同样不会连接。

5) 为什么我得到的是low ID?
eMule近当以下端口打开的时候才会完全工作正常(取得high ID)
• 4662 TCP
• 4672 UDP
• 4711 TCP
当你使用代理服务器、或局域网上网的时候,你无法打开公网IP地址机器的以上端口,所以你会获得low ID。

6) Low ID何High ID有什么区别?
High ID就是拥有独立公网IP并且能提供端口4662给eMule工作的用户;此类用户可以和任何eMule兼容客户端连接与下载。
Low ID一般都是没有公网IP的内网用户,两个Low ID用户之间是无法直接连接的,所以Low ID的用户下载源会相对少一点(无法从其它Low ID用户那里下载)。

7) 为什么eMule总是从服务器掉线?
可能有以下原因导致eMule掉线:
• 下载列表中文件太多(低于v.30a会有此问题)
• 过多的共享文件(低于v.29a会有此问题)
• 服务器端的问题
• 普通的网络连接问题
通常情况下eMule会自动重新连接断开的服务器。这一情况并不影响下载。

BLACKWASP 发表于 2007-11-1 22:32:59


<三>速度问题

1) 有哪些影响下载速度的因素?
以下这些实际问题可能会影响下载速度:
• eMule的设置;
• High ID (防火墙和路由的设置);
• eMule下载的时间长短;
• 一个下载文件所获得的源的多少;
• 临时文件的有效性;
• 下载文件的流行程度。
eMule设置中的不当(不恰当的限制、过多的连接数);Low ID(上一章中已介绍)以及过短的运行时间都会减缓下载的速度。还未普及的文件(例如新发布的资源)或者源很少的文件、或者临时文件(part)有损坏都会影响下载速度。

2) 怎么设置最好呢?
没有最完美的设置来实现速度最大化,因为下载速度的主要因素还是取决于每个人的Internet连接速度和所使用的操作系统。建议你使用eMule的设置向导来选择正确的设置,其中最重要的是你选对了你的Internet连接速度和操作系统。

举个例子,比较适用ADSL 512K带宽的设置如下:
Windows XP :-
下载能力: 64 (= 512 / 8)
上传能力: 16 (= 128 / 8)
下载限速: 60
上传限速: 12 (= 16 x 0,75)
硬性限制: 500
最大连接数: 400
最大新建连接数/ 5 sec: 30
同时下载6-20个文件比较合适。
Windows 98 / ME :-
下载能力: 64 (= 512 / 8)
上传能力: 60 (= 128 / 8)
下载限速: 92
上传限速: 12 (= 16 x 0,75)
硬性限制: 300
最大连接数: 200
最大新建连接数/ 5 sec: 20
同时下载不要超过12个文件比较合适。

你无须太谨慎地限速,太苛刻的限速会阻塞eMule的连接,直接导致下载效果下降。上传限速基本上差不多应该在最大上传能力的75%。

3) 怎样才能提高我的下载速度?
除了正确的设置以外,能决定速度的还有你所下载的文件本身。为了得到令人满意的速度速度,你尽可能做到以下方面:
• eMule尽量开的时间维持的长些,越长越好;
• 尽量避免只下载1个文件;
• 有选择余地的情况下,尽可能选择源多的文件下载(文件名后面数字表示源的数量);
• 新发布的文件(全新的文件)不可能速度快;
• 尽可能多的上传以获得比较高的积分;

4) 我可能会获得怎样的速度?
如果一切设置正常,并且在开始一段时间以后,你获得了20 kB/s – 30 kB/s的速度,那么可能在短时间内依然会很慢,但有时你却可能获得超过稳定速度2-3倍的速度。

5) 等待状态会维持多长时间?
等待状态中你可以从源那里看到QR:,这个数字x就是你的Queue Ranking,也就是你在等待队伍中排在第几位,当然这个值越小越好。QR的存在显示了积分系统的意义,相对于源来说越高的积分就是越短地等待。如果你的QR值很高,并不表示你就无法从那个源那里下载到东西,eMule里存在很多公平的修正以减短等待时间。

BLACKWASP 发表于 2007-11-1 22:33:31


<四>积分问题

1) 积分是什么?为什么我要增加积分?
积分是奖励那些上传的用户的,上传量越大积分越高。积分不是所有服务器之间通用的,它们仅仅通用于那些承认这些积分的服务器和客户(比如我在chinese edonkey server NO.1上的上传量很大,相对于那些连在No.1上的用户来说我的积分就很高) 。
积分是影响QR的主要因素,你积分越高,排队时间就会缩减的越短。

2) 从什么地方我可以看出我的积分多少?
为了防止使用作弊的方法篡改积分,所以你的积分不是储存在你的硬盘中,而是存在其他客户的硬盘中。要在本机上查询自己的积分是不可能的。

3) 我丢失/删除了我的clients.met文件,是不是我的积分就没了?
根据上个问题,丢失了这个文件,你自己的积分是不会消失的,而存在你机器上的相对你而言的他人的积分就没了。eMule建立并保存了备份文件以防止这种事情发生,名称是clients.met.BAK,你只需要把它重命名回clients.met即可。

4) 积分是否安全可靠?
eMule使用了一种加密方法key handshake以确保某个积分正确地属于某个人。只有在这种方法得到eMule的验证之后,这一积分才被授权给特定的某个人,否则eMule将不会承认对方的积分。

5) 什么情况下我的积分会得不到承认?
根据上一个问题所述,积分是经过加密并授权的。授权的验证密钥储存在preferences.dat和cryptkey.dat两个文件中。如果其中一个文件损坏或者丢失,你将不能得到对方的积分验证,eMule将不会承认原本应该属于你的积分。
如果你丢失了cryptkey.dat,eMule会强制删除preferences.dat。

页: [1]
查看完整版本: 【EMULE FAQ】