1、内容的发布:现在我们从流程上解释,一个新文件是如何在 Bittorrent网络上传播的。新的文件发行,需要从seed开始进行初次分享。首先,seed会生成一个扩展名为.torrent+的文件,它包含如下信息:文件名、大小、 tracker的URL。一次内容发布至少需要一个 tracker和一个seed, tracker保存文件信息和seed的连接信息,而seed保存文件本身。一且seed向 tracker注册,它就开始等待为需要这个 torrent的peer上传相关信息。通过,.torrent文件,peer会访问 tracker,获取其他peer/seed的连接信息,例如IP和端口。tracker和peer之间只需要通过简单的远程通信,peer就能使用连接信息,与其他peer/seed沟通,并建立连接下载文件。
2、分块交换:前面我们提到,peer大多是没有完整的拷贝节点的。为了跟踪每个节点已经下载的信息有哪些, BitTorrent把文件切割成大小为256KB的小片。每一个下载者需要向他的peer提供其拥有的片。为了确保文件完整传输,这些已经下载的片段必须通过SHA-1算法验证。只有当片段被验证是完整的时,才会通知其他peer自己拥有这个片段,可以提供上传。
3、片段选择算法:上面我们发现, BitTorrent内容分享的方式非常简单实用。但是,直觉上我们会发现如何合理地选择下载片段的顺序,对提高整体的速度和性能非常重要。如果某片段仅在极少数peer上有备份,则这些peer下线了,网络上就不能找到备份了,所有peer都不能完成下载。针对这样的问题, Bittorrent提供了一系列片段选择的策略。
▲ 优先完成单一片段:如果请求了某一片段的子片段,那么本片段会优先被请求。这样做是为了尽可能先完成一个完整的片段,避免出现每一个片段都请求了同一个子片段,但是都没有完成的情况。
▲ 优先选择稀缺片段:选择新的片段时,优先选择下载全部peer中拥有者最少的片段。拥有者最少的片段意味着是大多数peer最希望得到的片段。这样也就降低了两种风险,其一,某个peer正在提供上传,但是没有人下载(因为大家都有了这一片段);其二,拥有稀缺片段的peer停止上传,所有peer都不能得到完整的文件。
▲ 第一个片段随机选择:下载刚开始进行的时候,并不需要优先最稀缺的。此时,下载者没有任何片断可供上传,所以,需要尽快获取一个完整的片断。而最少的片断通常只有某一个peer拥有,所以,它可能比多个peer都拥有的那些片断下载得慢。因此,第一个片断是随机选择的,直到第一个片断下载完成,才切换到“优先选择稀缺片段”的策略。
▲ 结束时取消子片段请求:有时候,遇到从一个速率很慢的peer请求一个片断的情况,在最后阶段,peer向它的所有的per都发送对某片断的子片断的请求,一旦某些子片断到了,那么就会向其他peer发送取消消息,取消对这些子片断的请求,以避免浪费带宽。
认识区块链
对于区块链技术,很多人可能不太明白,它其实就是一个多方参与的加密分布式记账本,就是可以由许多归属不同主体的服务器来实现同步记账。以往无论银行、企业、个人等对于相关的账本记录或数据记录都只是中心化的,或者说只有单一的责任主体在记录,所以容易产生数据篡改等信用问题,以及由此导致的高成本业务流程。区块链技术可以实现分布式的协同记账和数据存储,从而根除了所记录的数据被篡改的可能,让数据有了真正的信用和价值,让其具备作为一种新资产的可能,将给全社会带来不可估量的创新资源。
区块链技术还和我们的日常生活密切相关,上级领导人在主持集体学习时强调指出,要探索“区块链+”在民生领域的运用,积极推动区块链技术在教育、就业、养老、精准脱贫、医疗健康、商品防伪、食品安全、公益、社会救助等领域的应用,为人民群众提供更加智能、更加便捷、更加优质的公共服务。
云储未来·未来已来
IPFS&Filecoin中文社区联盟
关注我们
带给您最新、最前沿的IPFS资讯
领取专属 10元无门槛券
私享最新 技术干货