4.关键算法及策略

1. 流水线作业:

     当客户端向peer发送数据请求时(即发送request消息),一次请求多个slice(即一个数据包发送多个request消息请求多个slice)。假如客户端一次

只发送一个slice请求,则peer给客户端发送完一个slice的数据后进入等待,等待客户端发送新的数据请求。如果一次发送多个slice请求,则peer

发送完一个slice后接着发送下一个slice,从而避免了等待,提高数据传输的效率。

2. 片段选择算法:

     片段选择的第一个策略:最少优先。即某个piece在所有peer中的拥有率最低,则优先下载该piece。

     第二个策略:最少优先。即某个piece在所有peer中的拥有率最低,则优先下载该piece。

     第三个策略:随即选择第一个要下载的piece。开始下载时,不能采用最少优先策略。因为如果piece的拥有率很低,则下载到这个piece就相对较难

                             如果随即选择一个piece,那么更容易下载到该piece,一旦客户端下载到一个完整的piece,就可以提供给其他peer下载,而由于客户端向

                             其他peer上传数据,会倒在其他peer对客户端解除阻塞,从而有利于在起始阶段获得较高的下载速度。当在下载到一些piece后,客户端

                             应采用最少优先策略来下载数据,这虽然会导致客户端的下载速度在短期内有所下降,但随后下载速度会有较大提高。

     第四个策略:最后阶段模式。有时,从一个传输速度很慢的peer处下载一个piece会花费很长时间,在下载的过程中不是什么大问题,但在下载接近

                             完成时,如果发生这种情况,会导致客户端迟迟不能下载完成。为了解决这个问题,在最后阶段,客户端向所有peer发送对这个piece

                             的某些slice请求,一旦收到某个peer发来的slice,则向其他peer发送cancel消息,只从当前这个peer处下载。

3. 阻塞算法:peer从它可以连接的peer下载文件,并根据对方提供的下载速度给予同等的上传回报,对于合作者,提供上传服务,对于不合作的,就

                         阻塞对方。阻塞是一种临时拒绝上传的策略,虽然上传停止了,但是下载仍然继续。在 解除阻塞时,连接并不需要重新建立。因为

                         阻塞过程中只是传输piece消息,其他消息,如have消息等仍可以传输

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值