分享
 
 
 

eMule协议简要分析[一]

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

最近我对P2p方面很有兴趣。实际上P2p并不仅仅能用于盗版的传播,在很多合理合法的需求中,P2p也有很广泛的前景,至少包括了信息的冗余存储,内容分发,突破信息监管等等方面。Google文件系统(GoogleFileSystem)文档

就提到,当在Google网络内分发一个新版本的应用程序的时候,有巨大数量的客户端需要连接到服务器去下载新版本,造成了数据传输热点严重影响系统的运

行,他们计划利用P2p类型的技术来解决这个问题。一段时间以来,网络游戏客户端升级都在采用或者部分采用P2p方案。这些都是在软件分发领域P2p的应

用。

eMule是我用的最多的P2p应用,所以研究也从eMule开始。

最主要的参考文本是eMule协议1.0版,原文地址。分析的流程是简要翻译加上我的思考,我的目标不在于完整的翻译,想看完整翻译的可以关注下p2p分发引擎研究这个Blog,他正在翻译协议文本。我的思考和点评会用红色标出。

--------

电骡eMule是基于电驴eDonkey协议的。电骡网络是由数百个电骡服务器和数百万的电骡客户端组成的。客户端必须连接到服务器来获得网络服务,这个连接要一直保持知道客户端关闭。服务器提供其中的索引服务(类同Napster),不同的服务器之间没有通讯。

每个电骡客户端都预先设置好了一个服务器列表和一个本地共享文件列表。客户端通过一个单一的TCP连接到电骡服务器进行网络登陆,得到想要的文件的信息和可用客户端的信息。(这样造成了电骡和电驴都不能完全去中心化,虽然文件存储在客户端上。)

电骡客户端用几百个TCP连接与其他的客户端连接进行文件的上传和下载。每个电骡客户端为它的共享文件维护一个上传队列。正在下载的客户端加入这个队列的

底部,然后逐渐的前进,直到他们达到队列的顶端开始下载文件。一个客户端可能从多个其他的电骡客户端下载同一个文件,从不同的客户端取得不同的部分。客户

端也可以上传一个没有完全下载的文件的部分数据。(文件可以分块传输大大提高了效率,但是也造成了一些问题,比如源提前退出以后,所有的客户端都是不完全数据的情况。)最终,电骡扩展了电驴的能力允许客户端交换关于服务器、其他客户端和文件的信息。(这个能力又开始把中心的意义淡化。)注意,客户端和服务器的通信都是基于TCP的。

服务器使用一个内部数据库来保存客户端和文件的信息。电骡服务器不保存任何文件,它是文件位置信息的中心索引。服务器的另一个功能,正在受到质疑,他将作为通过防火墙连接的客户端之间的桥梁,这样的客户端不能接受引入的连接。桥接功能大大的增加了服务器的负载。(这个功能让服务器承担了过分的负担,大大降低了服务器的能力,在设计中应该摒弃。)电骡使用UDP增强客户端跟服务器和其他客户端的通信能力。但是客户端收发UDP信息的能力不是客户端日常操作强制要求的,即使防火墙阻止客户端收发UDP信息,客户端仍能完美的工作。

客户端到服务器的连接

图一 电骡网络图

客户端一起动就会用TCP连接到一个电骡服务器。服务器给客户端提供一个客户端ID,这个ID仅在客户端服务器连接的生命周期内有效(注意如果客户端是高

ID,那么他在所有的服务器得到的ID都是一样的,直到他的IP地址变化为止)。连接建立后,客户端把它共享的文件列表发送给服务器。服务器把这个列表保

存在它的内部数据库内,这个数据库通常包括了数十万可用文件和活动客户端。电骡客户端也会发送它的下载列表,包含了他想要下载的文件。后面将给出电骡客户

端和服务器间的TCP信息交换格式细节。

连接建立以后,电骡服务器给客户端发送一个列表,这个列表包括了那些有客户端需要的文件的客户端(这些客户端叫做源)。然后,客户端就去跟那些有所需文件的客户端建立连接。

注意客户端服务器的TCP连接在整个客户端会话过程中都会保持。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有