《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 大型网络文件分发技术探析
大型网络文件分发技术探析
张 华1,李 崴2
摘要: 以较为流行的网络文件下载软件BitTorrent为例,探讨基于对等网技术的分布式模式下文件分发的工作原理,并采用简单而有效的算法实现了大型文件的高效和可靠下载。
关键词: 对等网
Abstract:
Key words :

  摘  要: 以较为流行的网络文件下载软件BitTorrent为例,探讨基于对等网技术的分布式模式下文件分发的工作原理,并采用简单而有效的算法实现了大型文件的高效和可靠下载。
  关键词: 文件分发  对等网  BitTorrent

   随着网络的普及,一些基于传统媒介(光盘、磁带等)的信息(影视、音乐等)逐渐以网络作为传播的媒介。这些网络资源往往以较大的文件形式出现,供大家下载。方便、高效且可靠地获取这类网络文件是当今网络技术一个值得探索的课题。随着连接网络的终端数量急剧增加和网络结构的多样化与复杂化,传统的集中式文件分发模式面临着伸缩性、连接突发性和可靠性问题,因此迫切需要研究新的应用模式。本文将以最近较流行的一种网络文件下载软件BitTorrent为例,讨论基于P2P(Peer to Peer)对等网络技术的分布式文件分发模式的工作原理和实用算法。
1  文件分发的二种模式
1.1 传统的集中模式

  传统的集中式文件分发模式如图1所示。当有一个较大的文件要通过网络向位置分散的用户分发时,系统会把要发布的文件上传到Web服务器或FTP服务器上,然后通知用户从该中心服务器下载文件。服务器承担了全部的上传(服务器向下载者传递文件)开销,它的处理能力和传输速率是影响文件分发速度的瓶颈。随着用户数量的增多,每个用户可获得的下载速度将会降低,同时服务器也会因负载过大而宕机。因此很多服务器都会限制用户人数和下载速度,给用户带来诸多不便。

 


1.2 基于P2P的分布式模式
  P2P技术认为所有互联的设备互为对等体。由于用户与服务器之间的连接是双向的,用户彼此之间也是可以互相访问的,所以,当多个用户同时下载同一个文件时,他们可以互相上传已经下载的文件的一部分。这样重新分配向用户上传的开销之后,将大大减轻服务器的压力,从而可以克服集中模式的缺点。这种基于P2P的分布式文件的分发模式如图2所示。BitTorrent实现了这种分布式文件分发模式。


  BitTorrent的基本工作原理是:在把文件上传到服务器之前把它分成N个部分(块)。假设用户甲在服务器随机下载了第i个块,用户乙在服务器随机下载了第j个块,则用户甲的BitTorrent就会根据情况从用户乙下载第j个块,而用户乙的BitTorrent就会根据情况从用户甲下载第i个块。这样不但减轻了服务器的负载,也加快了用户(甲和乙)的下载速度,提高了效率,还减少了地域之间的限制。例如用户丙从服务器下载的速度可能很慢,但是从距离较近的用户甲和用户乙下载的速度就会快很多。所以与传统的模式不同,用BitTorrent下载时用户越多,下载速度越快。
1.3 技术难点
  基于P2P技术的分布式文件分发模式有着优良的伸缩性,但是如何保证效率和可靠性是其面临的技术难题。具体来说,需要解决下述几个问题。
  (1)为了保证对等体(用户)能够尽快得到所需的文件,需要有效找出哪些对等体已有文件的哪些部分以及它们应该被送到哪里。
  (2)对等体的连接是随机的,经常只有几分钟。因此,实际的部署要考虑这个因素。
  (3)为了维持网络的稳定,理论上所有对等体下载速度的总和应该等于上传速度的总和。即既需要保证对等体的下载速度,又要使每个对等体的下载速度与它们的上传速度相当。
  (4)要尽量避免文件的某些部分落在极少数对等体中,而可能被永久丢失(拥有这些部分的对等体不再提供上传)。
  下面从原理入手探讨BitTorrent是如何采用简单实用的算法解决这些问题。
2 BitTorrent的技术框架
2.1 部  署

  为建立一个BitTorrent式的文件分发部署,需要将一个带.torrent扩展名的静态文件放到Web服务器上。该文件一般只有几百KB,包含待下载的文件信息,如文件长度、文件名、哈希数据和跟踪器的URL。跟踪器使用基于HTTP的非常简单的协议帮助对等体互相发现对方。在该协议中,对等体发出的请求消息包含要下载的文件信息和监听的端口号等。跟踪器返回的响应消息包括正在下载同一个文件的对等体的信息。对等体根据这些信息彼此建立连接。为了使文件可以被下载,最初必须启动一个被称为“种子”的对等体,它至少有该文件的一个拷贝。
2.2 分发机制
  跟踪器是对等体彼此发现的惟一途径。通常,标准的跟踪器算法返回一个随机的对等体列表。这种随机列表有非常好的健壮性。许多对等体选择算法能够共同形成一个有用的规则图,综合这些信息就能找到所需要的分块信息。注意,所有对等体之间的连接是双向传输的。
  为了跟踪每个对等体有哪些文件块,BitTorrent把文件分割成固定长度的块,典型的长度是256KB。每个对等体向它的所有对等体(对等体群)报告自己拥有哪些块。为了校验数据的完整性,所有块的数据经SHA1哈希算法处理后被放在.torrent文件中。只有验证了一个块的哈希数据之后,对等体才能报告它有这个块。这种简单的方法被证明是可行的。
  对等体从它们能连接到的对等体群下载块。有时对等体群可能没有它们想要的块,或者当前不允许它们下载。这种禁止对等体下载的策略(即阻塞)将在后面讨论。让对等体通告自己拥有哪些文件块消耗的带宽低于10%,但却可以保证对等体利用其全部上传能力。
2.3 请求的流水线
  BitTorrent通过TCP传递数据。为避免2个块发送之间的延迟总是保持几个待处理的请求。BitTorrent通过在线上把块进一步分割成更小的子块来充分利用这一优点。子块的典型长度是16KB,并且总是保留一定数量,一般是5个。一旦有请求待发,立即被流水线化。这样,每到达1个子块,就有1个请求马上被送出。
2.4 块选择算法
  若选择块按照合适的顺序下载将得到较高的性能;否则,会导致无法上传所有的块,或不能上传某些块。
2.4.1 优先级
  BitTorrent首选的块选择策略是:一旦某个子块被请求,则它所属块的剩余子块的请求将先于其他块的子块。这样使对等体能够尽可能快地获得完整的块。
2.4.2 稀有优先原则
  在选择哪一个对等体作为下一个被下载对象时,对等体一般先下载自己的对等体群稀有的块,该技术被称为稀有优先原则。这是为了确保对等体总是拥有它们的对等体群想要的块,一旦需要就能开始上传。该技术也能确保那些较常见的块被推迟上传,以留住那些正在提供上传的对等体,从而获得那些较常见的块。
  信息理论指出直到种子上传了文件的所有部分,下载才能完成。对于那些只有一个种子的部署,该种子的上传能力略低于N个用户的当前速度和,显然当用户从种子下载不同的块时性能最好。由于每个对等体能获知它的对等体群有种子已经上传的块,因此稀有优先原则在只从种子下载新块时很有效。
  对于有些部署,若原始的种子最终因为开销的原因宕机,只留下在线的用户去上传,则有可能导致某个特定的块再也无法从任何在线的用户那里得到。而稀有优先原则会尽可能快地复制稀有块,以避免此类问题的产生。
2.4.3 尾块的处理
  文件的末尾块有时会被非常低速的对等体请求,这不会影响下载的完成,但可能会延长完成下载所用的时间。为了避免这种情况发生,如果对等体还没有所请求块的所有子块,则向所有的对等体发出这些子块的请求。一旦某子块到达,就立即发送取消该子块的消息以避免发送不必要的请求。
3  阻塞算法
  在P2P分布式模式中,所有对等体之间的连接是双向的,即每个对等体在下载数据的同时也可以向其他对等体上传数据。BitTorrent采用分布式的资源分配策略。每个对等体从它的对等体群以最快速度下载所请求的块,同时,它可以自主地通过一种算法(阻塞算法)选择向哪些对等体提供上传服务。起初,每个连接的上传方向是被禁止的(即阻塞),因此每个对等体要向其他对等体上传数据之前就必须清除阻塞。阻塞是暂时拒绝上传,而下载仍然继续。因此,当要清除阻塞时,不需要重新建立连接。
  阻塞算法不是BitTorrent通信协议的一部分,但对于取得好的性能是必要的。好的阻塞算法会利用所有可用的资源,为所有对等体提供一致的下载速度,并且在某种程度上阻止对等体只下载而不上传。
  一般,每个对等体总是清除固定数量(缺省值为4)的对等体的阻塞,所以需要确定要清除哪些对等体的阻塞。清除哪些对等体的阻塞是严格基于当前的下载速度。为了避免因为对等体快速的阻塞和清除阻塞而浪费资源,要求每个对等体每10秒重新计算一次阻塞谁。而10秒足够TCP把新的传输速度提高到最大。
  如果每个对等体只是简单地把当前提供最佳下载速度的其他对等体作为上传的对象,则无法知道当前未被使用的连接的速度是否比正在使用的连接的速度更快。因此,任何时候每个对等体在它的对等体群中都指定一个作为“乐观的清除阻塞”对等体,即总是清除对该对等体的阻塞而不考虑它当前的下载速度。对等体群中的对等体以30秒(3个阻塞期)为周期依次被指定为“乐观的清除阻塞”对象。而30秒足够连接的双方把上传和下载速度提高到极限。
4  结束语
  目前,BitTorrent已经被广泛地应用,常常可以为几百个并发的下载者提供几百兆字节的文件服务。实践证明这种新型的基于P2P技术的文件分发模式具有良好的伸缩性、高效率和可靠性,克服了传统集中模式的困难,促使网络应用的核心从中央服务器向终端设备扩散,使用户在Internet上的共享行为被提到更高层次,用户以更主动的方式参与到网络活动中。这必将促进更多新应用的开发。
参考文献
1 Cohen B.Incentives Build Robustness in BitTorrent.http://bitconjurer.org/Bit Torrent/bittorrentecon.pdf,2003
2 刘宝旭,李雪莹,于传松等.对等网技术及应用概述.计算机工程与应用,2003;(6)

此内容为AET网站原创,未经授权禁止转载。