——胡浩&葛凡飞分布式多媒体系统实例研究CONTENTTiger视频文件服务器(支持视频文件的分布式文件系统)BitTorrent(支持很大的多媒体文件的对等下载系统)端系统多播(实时多播流服务)BitTorrent应用软件下载软件:比特精灵种子下载示范BitTorrentBitTorrent(简称BT)是一种文件分发协议。它采用高效的软件分发系统和点对点技术共享大体积文件(如一部电影或电视节目),并使每个用户像网络重新分配结点那样提供上传服务。每个下载者在下载的同时不断向其他下载者上传已下载的数据。而在FTP、HTTP协议中,每个下载者从FTP或HTTP服务器处下载自己所需要的文件,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于FTP服务器的处理能力和带宽的限制,下载速度会急剧下降,有的用户根本访问不了服务器。BT协议与FTP协议不同,它的特点是下载的人越多下载的速度越快,其原因在于每个下载者将已下载的数据提供给其他下载者下载,它充分利用了用户的上载带宽。BT协议通过一定的策略保证上传的速度越快,下载的速度也越快。概要系统实体构成BitTorrent(1)一个Web服务器;(2)一个种子文件;(3)一个Tracker服务器;(4)一个原始文件提供者;(5)一个网络浏览器;(6)一个或多个下载者。BitTorrentWeb服务器上保存着种子文件,下载者使用网络浏览器(如IE浏览器)从Web服务器上下载种子文件。种子文件,又称为元原文件或metafile,它保存了共享文件的一些信息,如共享文件的文件名、文件大小、Tracker服务器的地址。种子文件通常很小,一般大小为1GB的共享文件,其种子文件不足100KB,种子文件以.torrent为后缀。Tracker服务器保存着当前下载某共享文件的所有下载者的IP和端口。原始文件提供者提供完整的共享文件供其他下载者下载,它也被称为种子,种子文件就是提供者使用BT客户端生成的。每个下载者通过运行BT客户端软件下载共享文件。我们把某个下载者本身称为客户端,把其他下载者称为peer。WEB端BitTorrentBT客户端下载一个共享文件的过程是:客户端首先解析种子文件,获取待下载的共享文件的一些信息,其中包括Tracker服务器的地址。然后客户端连接Tracker获取当前下载该文件的所有下载者的IP和端口。之后客户端根据IP和端口连接其他下载者,从它们那里下载文件,同时把自己已下载的部分提供给其他下载者下载。客户端BitTorrent共享文件在逻辑上被划分为大小相同的块,称为piece,每个piece的大小通常为256KB。对于共享文件,文件的第1字节到第256K(即262144)字节为第一个piece,第256K+1字节到第512K字节为第二个piece,依此类推。种子文件中包含有每个piece的hash值。BT协议规定使用Sha1算法对每个piece生成20字节的hash值,作为每个piece的指纹。每当客户端下载完一个piece时,即对该piece使用Sha1算法计算其hash值,并与种子文件中保存的该piece的hash值进行比较,如果一致即表明下载了一个完整而正确的piece。一旦某个piece被下载,该piece即提供给其他peer下载。在实际上传和下载中,每个piece又被划分为大小相同的slice,每个slice的大小固定为16KB(16384字节)。peer之间每次传输以slice为单位。文件划分BitTorrentpeer之间的通信协议称为peer连线协议,它是一个基于TCP协议的应用层协议。为了防止有的peer只下载不上传,BitTorrent协议建议,客户端只给那些向它提供最快下载速度的4个peer上传数据。简单地说就是谁向我提供下载,我也提供数据供它下载;谁不提供数据给我下载,我的数据也不会上传给它。客户端每隔一定时间,比如10秒,重新计算从各个peer处下载数据的速度,将下载速度最快的4个peer解除阻塞,允许这4个peer从客户端下载数据,同时将其他peer阻塞。一个例外情况是,为了发现下载速度更快的peer,协议还建议,在任一时刻,客户端保持一个优化非阻塞peer,即无论该peer是否提供数据给客户端下载,客户端都允许该peer从客户端这里下载数据。由于客户端向peer上传数据,peer接着也允许客户端从peer处下载数据,并且下载速度超过4个非阻塞peer中的一个。客户端每隔一定的时间,如30秒,重新选择优化非阻塞peer。客户端之间通信BitTorrent传输演示注:不同颜色点代表不同数据注:与软件对应OverallArchitectureABCPeerPeer[Seed]PeerTrackerWebServerOverallArchitectureABCPeerPeer[Seed]PeerTrackerWebServerOverallArchitectureABCPeerPeer[Seed]PeerTrackerWebServerOverallArchitectureABCPeerPeer[Seed]PeerTrackerWebServerOverallArchitectureABCPeerPeer[Seed]PeerTrackerWebServerOverallArchitectureABCPeerPeer[Seed]PeerTrackerWebServerOverallArchitectureABCPeerPeer[Seed]PeerTrackerWebServer端系统多播实时视频广播分布式多媒体系统的一个最大技术挑战是在互联网上支持实时的视频广播。其主要要求为:1.系统能伸缩接纳众多用户2.系统资源要求高,给系统带宽、存储和处理带来约束3.满足严格的实时需求,让用户满意4.系统必须是弹性的,能适应网络中变化的资源。端系统多播ESM研发背景:端系统多播实际也称为应用层多播。视频流最早直接构造在IP多播上,优势是直接由系统底层提供对多播的支持,提升整性能。它的缺点是违反端对端原理。ESM是一个结构化对等解决方案,用于互联网上的视频实时多播。它为每个视屏流构造一棵树,以视频流的源为根,并且基于此运行。支持ESM运行的关键算法元素是:1.如何维护成员信息;2.如何处理加入树的心的对等方;3.如何处理离开树的对等方;4.如何修改树的结构从而提升性能。实时视频广播ESM端系统多播实时视频流方法ESM在方法中的位置Tiger视频文件服务器设计目标:用于大量用户视频点播:向付费用户提供电影的服务。系统从大量的数字电影库中选择电影。客户应在发送点播请求的数秒内就能获得他们选中的电影的第一帧,并且可以随时暂停、回退和快进。同一部电影能同时播放,但是播放进度不同服务质量:视频流的传输速率保持稳定,其中客户端可用的缓冲区大小决定最大抖动,并且视频流保持低的丢失率。系统设计Tiger视频文件服务器可伸缩性和分布性:涉及一种可扩展的体系结构的系统,可以同时支持10000个客户。硬件成本:系统由低价的硬件建构。容错性:再耽搁服务器或者磁盘驱动器发生故障时候,系统可以继续执而且性能没有明显下降。总而言之,这些需求要求有一个存储和检索视频数据的基本方法和一个平衡多个相似服务器之间负载的有效调度算法。调度算法的主要任务是将从磁盘存储上获取的高带宽的视频流传输到网络上,并且服务器之间共同承担负载。系统设计Tiger视频文件服务器硬件结构图文件系统硬件配置图结束Thankyou!