论文部分内容阅读
P2P网络(Peer to Peer,对等网络)由于其负载均衡、扩展性强、自适应、自组织,无单点失效等特性,自从2000年来一直是学术届、开源社区和商业领域的研究热点,并涌现了许多优秀的产品。但这些应用大都采用闭源方案,且需要安装客户端软件,不停的升级才能使用。与此同时,Web应用的简单易用,开放的标准和协议,无需安装和升级,更容易被大众所接受,并逐渐成为主流开发平台。但HTTP协议自从诞生之日,就是典型的客户端/服务端架构,P2P网络的诸多优势无法体现在Web应用上。然而,随着HTML5规范的日益成熟和浏览器性能的提升并引入了WebRTC(Web Real-Time Communication,Web端实时通信)这一技术,使得纯基于浏览器的P2P网络应用成为可能。因此,本文研究目的在于:尝试利用WebRTC将P2P网络和Web应用这两个长久以来互不兼容的技术整合在一起,从而发挥出它们各自的优势:(1)网站的登录用户越多,用户间的数据传输越快,(2)网站服务器性能不受用户数量猛增的影响,且运营成本大幅降低。考虑到P2P网络中不同类型的传输数据(如流媒体、单个大文件、多个小文件)需要不同的设计思路和实现方法,不可能做到一套系统覆盖所有的使用场景。因此研究范围仅限于:大文件的数据在Web客户端P2P网络内的传输。在设计思路上大量借鉴了BitTorrent协议,实现的方法是:由tracker服务器提供“待传输数据?拥有该数据的用户”的映射关系。将WebRTC的data channel作为客户端P2P网络的底层数据传输层,从而构造出一套纯基于Web端的分布式文件数据传输系统。并对该系统的体系架构、P2P网络内的节点控制,节点间的数据传输机制等问题进行了深入研究。所做的主要工作有以下3点:(1)设计了客户端非结构化P2P网络。客户端通过WebRTC的data channel和多个相邻节点建立连接,从而实现高速传输,由服务端提供相关信息来决定具体和谁连接。(2)设计了服务端P2P网络。由于系统中的tracker服务器(提供数据和数据拥有者的映射关系)很容易成为性能瓶颈。因此方案中将多台tracker服务器也组成一个基于Chord结构的P2P网络,并可以将它们分散在多个不同的网站上,从而将多个网站的用户组成一个更大规模的客户端P2P网络。(3)基于整套设计方案,开发了相应的原型系统,证明了方案在实践上的可行性。其中原型系统部署在作者的个人网站上,并用基于互联网上的真实用户的实际数据在实践角度证明了该系统相比于传统HTTP下载的优势。因此本文的创新点主要体现在:基于成熟经典的P2P理论上注入了新的Web前端技术WebRTC,发挥出两者各自的优势,在技术上实现无缝的嵌入现有系统,并在业务上使所有参与者达到多方共赢的局面。最后,本文体现出的研究成果和贡献是:(1)相比传统HTTP下载方式,网络流量大幅降低,而且用户越多,流量下降的也越多。(2)设计思路可以引申到其它使用场景上,如:基于P2P网络的在线视频点播系统,分布式数据存储系统。(3)服务端P2P网络对现有网站架构不会有技术上的依赖和影响。(4)多方参与人员同时受益,用户:只需一个支持WebRTC的浏览器(Chrome,Firefox,Opera),即可实现数据高速传输。开发维护人员:轻松部署、扩容。网站管理者:运营费用大幅降低。