eMule协议片选择算法分析


我们知道,下载是数据的传输。在这方面的协议内容我们已经介绍过很多了。其中BT协议和eMule协议是这里面的重点。但是,两者也的确存在着不少的差异。那么,是什么不同导致两个协议具有如此多的差异呢?

首先,BT的方式更注重于简单高效的快速传输,而eMule更注重于整个网络状态的变化及用户体验。

其次,单从下载效率上说BT占优,而从网络状态及完整的协议支持上说,eMule协议则作了更多的事情。

最后,从性能上考虑,在相同网络状态下,BT下载单文件的能力比较强,eMule比较适合于长时间的多文件下载,对机器的使用和影响比较小,这源于两者对网络均衡及p2p模式的不同理解。

eMule协议和片选择及搜索算法

为了优化整个网络的吞吐量和共享,eMule协议仔细挑选选择块的下载顺序。基本的选择策略和分片信息是这样的:每个文件被分成9.28M的块,每部分分成80KB的片。块下载的顺序是由发送请求文件块消息.4节)的下载客户端决定。下载客户端可以在任何给定时刻从各个源中下载一个单独的文件块,所有从相同源中请求的片都在同一个块中。下面的原理以这个顺序)应用于下载块等级:

1.可获得的)片的频率,尽可能快的下载非常稀少的片来形成一个新的源。

2.用来预览的块最初+最后的片),预览或检查文件比如,电影、mp3)

3.请求状态过程中下载),尝试向每个源询问其它的片。在所有源之间扩散请求。

4.完成未到某种程度的完成),在开始下载另一个时应该完成获得部分的片
 
频率标准定义了三个区域:非常稀少、稀少和一般。在每个区域里,标准有特定的权重,用来计算块等级。较低等级的块先下载。下面的列表根据上面的原理指定文件等级范围:

l0-9999 - 不请求和请求非常稀少的块

l0000-9999 - 不请求稀少和预览块

l20000-29999 - 不请求部分完成的一般的块

l30000-39999 - 请求的稀少和预览的块

l40000-49999 - 请求的没有完成的一般的块

这个eMule协议算法通常选择第一个最稀少的块。然而,部分完成的块,接近完成的,也可能被选中。对于一般的块,在不同的源之间扩散下载。

相关内容