< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

简单的说,emule与bt 协议两者各有千秋,下面就两种协议的异同及性能作一比较.

1.传统连接方式

bt使用统一的torrent文件先作一个原下载文件的信息记录,然后客户下载后通过torrent的信息与服务器连接并下载,

emule仅有一个文件ID,客户自行与服务器连接再下载

2.底层传输协议比较

bt只使用TCP协议进行下载,协议简单有效,但是功能比较单一,有的功能不完整

emule使用TCP和UDP两种协议进行通信,更加有效的利用了网络资源,功能完整强大,但这也同时使主机的负荷加大,程序编写难度提高

3.文件组织方式和数据验证方式

bt会在开始前对文件进行一次完全的HASH,就是将文件首尾相联然后按固定块取SHA值,这些值最终被放入torrent文件编码中,客户从网上一次下载完全,高效简单,一般情况下bt软件会在每小块下载完成后就对其进行HASH测试,检查其正确性

emule 在连接字符串中只存放了整体文件的HASH值,通过将这个HASH到服务器上取出文件的相关信息,在实际的操作中,会将文件分解成9.28M大小的块并进行HASH用于对块的完整性测试.新版的emul会用一种叫AICH的技术,就是说将文件分成120K大小的块然后HASH再将HASH值进行二进迭代式(具体的看emule协议)的HASH最终组成一个HASH二叉树这种方式的好处是可以在连接时只加入根结节的HASH值而不用加入叶子节点,减小了连接时的字符串大小,如果在最终文件下载完毕后,测试出的根节点HASH与得到的根节点的HASH值不同,则可以通过协议与网络上的其它主机的树进行比较快速得出错误的块.

4.流量控制方式

bt采用有名的针锋相对的方式处理上传下载平衡的控制,这种方式会记录短期内与客户连接的所有节点的上传下载流量,通过在固定时间内对下载流量的比较,得出允许上传的客户;为防止新客户长时间得不到其它客户的认同,bt会在一断时间停止他的上传作为对他的警告;对于已经下载完毕的客户,bt会简单的使上传流量最的客户得到更多的时间完成上传;为了防止在文件的最后阶段下载速度下降,bt会在最后时向所有连接的客户发送请求迅速完成下载;在整个下载过程中,bt会对文件块在整个网络中的存在复本的多少进行跟踪,那些存在的比较少的复本总是会得到优先的下载权,以使整个网络的文件冗余度提高.简单的说bt使用的是针对文件的流量控制方式.

Emule采用的是客户积分的方式,就是对所有用户的上传和下载量进行一个运算,从而得出一个客户的积分值,那些积分比较高的用户总是可以得到优先的下载权,甚至可以不进行排队直接下载,这样就在一个比较长的时间内对用户对其它用户的整体贡献有了一个评估.简单的说emule采用的是针对用户的流量控制方式.

5.kad与dht

kad和dht两者都是基于kademlia技术的分布式HASH表查找技术,可惜的是由于协议上的区别,两者不能互通.简单介绍下kad,它首先给每个客户分配一个唯一的ID值,然后对不同的ID值进行异或来得到两个客户之间的"距离",kad会维护一个桶,"距离"越近的用户桶里的数量会越多,kad定其的对桶里的用户进行清理,以保持其有效性.对于文件和用户emule会有两个这个东西,所以我们可以通过kad来查找文件和文件相关的用户信息;同样为了考虑冗余的问题,kad会将其自身的信息复制一份给"距离"它最近的一定数量的用户,这样就算在它下线后,这些信息也不会丢失.bt的 dht不太了解,呵呵,不过估计差不多.

6.功能比较

emule具有查找功能,而这在bt 只能通过网站来实现

新版的emule在对防火墙的支持上采用的代理的方式,就是如果一个用户处在内网,那么它会找到一个在公网的用户作为它的朋友.bt在这方面没有明显的变化,但是不同的bt客户端实现方式有些不同的支持.

7.总体性能比较

个人感觉bt的方式更注重于简单高效的快速传输,而emule更注重于整个网络状态的变化及用户体验.单从下载效率上说bt占优,而从网络状态及完整强大的协议支持上说,emule作了更多的事情.从性能上考虑,在相同网络状态下,bt下载单文件的能力比较强, emule比较适合于长时间的多文件下载,这源于两者对网络均衡及p2p模式的不同理解.

总结:无论是BT还是EMULE都是优秀的P2P下载方式,对于他们的学习,最终还是要深入到其源码内部进行研究,而对于网络均衡分布式群集模式的学习,它们起到了抛砖引玉的作用,还是那句老话,学无止境,让我们多多交流,共同进步.

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2007/11/08/2912260.html  ,如需转载请自行联系原作者

Emule与bt协议小议相关推荐

  1. P2P下载技术-BT协议与Magnet磁力链接

    P2P下载技术-BT协议与Magnet磁力链接 前言 传统C/S服务器-客户端文件下载 FTP下载 HTTP下载 C/S下载模式缺点 P2P下载 最早的P2P下载应用-Napster BT-BitTo ...

  2. bt协议详解 基础篇(上)

    bt协议详解 基础篇(上) 最近开发了一个免费教程的网站,产生了仔细了解bt协议的想法,所以写了这一篇文章,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的技术,敬请期待. 1 ...

  3. BT-2の蓝牙技术原理のBT协议の蓝牙核心协议の无线射频和基带

    蓝牙技术原理のBT协议の蓝牙核心协议の无线射频和基带 0. 脑图 1. 蓝牙射频 1.1 射频信道 1.2 射频规范 2. 链路控制器和基带 2.1 物理链路 2.2 分组 2.3 蓝牙编址 2.4 ...

  4. java解析bt协议详解_BT(带中心Tracker)通信协议的分析

    BT通信协议举例分析 现在的很多BT下载都采用了DHT网络,这样进行BT下载就不需要中心服务器了.本文针对的是需要中心服务器的BT下载. 小弟我最近正在研究BT通信协议,网上的资料很全,但是不是那事详 ...

  5. java解析bt协议详解_【转】bt协议的详细分析

    一 BT系统的组成结构 1 普通的Web服务器:        例如Apache或IIS服务器 2 一个静态的种子文件:     即.Torrent文件,采用Bencoding编码 3  Tracke ...

  6. BT协议-torrent编码

    一套BT环境 1.Tracker服务器:跟踪下载同一文件的用户 2.BT客户端:下载 & 对等peers服务器 3.BT种子文件:不多说 4.BT发布渠道:最常见的就是 webserver + ...

  7. BT协议学习笔记4--uTP

    这是一个对于uTorrent建立在UDP之上的传输层协议.可以和目的就是为了改善TCP的一些特性,可以和TCP作一些对比学习. 所以我想专门对这个拓展,记录一章. BEP:uTorrent trans ...

  8. java解析bt协议详解_BT下载原理分析

    BT全名为BitTorrent,是一个p2p软件,你在下载download的同时,也在为其他用户提供上传upload,因为大家是"互相帮助",所以不会随着用户数的增加而降低下载速度 ...

  9. BT和eMule下载协议的比较和分析

    转载:http://www.yuanma.org/data/2008/0420/article_3009.htmBT和eMule下载协议的比较和分析     由于从事P2P下载引擎开发得原因,对BT和 ...

最新文章

  1. jackson.ObjectMapper里enableDefaultTyping方法过期
  2. 科大星云诗社动态20210329
  3. VTK:图表之RandomGraphSource
  4. 图像处理 花屏_滴滴开源的 AoE:工程实践中的图像处理
  5. 剑与轮回找回服务器,剑与轮回自由之都1服开服时间表_剑与轮回新区开服预告_第一手游网手游开服表...
  6. 监听者模式 java_java监听者模式
  7. 读《豆瓣的基础架构》有感
  8. c语言汽水瓶编程,汽水瓶 题目(C语言代码)
  9. JS对象编程的原型和构造函数混合使用
  10. ctr预估之特征工程
  11. 泛微OA缓存开启方式
  12. 国家计算机考试报名照片编辑器,Artensoft Photo Editor(电脑照片编辑软件) V1.5 官方版...
  13. java 实现 excel normsdist_Excel实现的NORM NORMDIST函数中的幻数
  14. java 取磁盘阵列容量_硬盘阵列 Raid 的区别及容量计算方式
  15. 【从零开始学习YOLOv3】3.YOLOv3的数据组织和处理
  16. 在 Windows 中编程 Raspberry Pi Pico 的初学者指南
  17. java go to语句_Java用()来实现go to语句所特有的一些功能。A.breakB.defaultC.contin...
  18. 江苏大学京江学院计算机怎么样,江苏大学京江学院是几本 学生评价怎么样好不好(10条)...
  19. Sugar BI:如何设置数据可视化页面的用户权限
  20. 安桌16进制变色列表和计算方法

热门文章

  1. 过滤器Filter中得到各种路径
  2. LayaAir IDE 项目发布3.0 详解(含命令行发布)
  3. 解决Fluxion卡在Starting Captive Portal access point service...
  4. 用计算机处理信息的过程,计算机处理信息的全过程
  5. verilog报错汇总(1)
  6. AFL查看crash文件
  7. 判断linux标准输入法,[fcitx]linux下的中文输入法(非准确)
  8. 智慧路灯地方标准:“江苏省城市照明智慧灯杆建设指南”发布实施
  9. 【RPG Maker MV】使用技巧1:用自己绘制的图片当做地图
  10. java 策略模式例子_java策略模式实例解析