基于P2P网络的Web端文件传输系统的设计与实现
发布时间:2020-04-25 21:46
【摘要】: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),即可实现数据高速传输。开发维护人员:轻松部署、扩容。网站管理者:运营费用大幅降低。
【图文】:
如图 2 1 所示(来源:https://en.wikipedia.org/wiki/File:Client-server-model.svg):客户端主动和服务端建立 TCP 连接(或 UDP),然后发出请求,等待服务端回应。图2-1 客户端/服务端网络架构Fig. 2-1 Client/server network architecture此模式结构清晰,,容易理解,开发人员也都熟悉,TCP/UDP 协议又是由底层操作系统直接提供支持,且只需在传输层上应用加密协议(如:TLS),即可确保数据传输的安全,两者之间的通讯是基于应用层上事先定义好的协议(如:HTTP)。但此模式的缺点也很明显: 服务端要接受、处理所有客户端的请求,一旦请求数量短期内超过服务端的处理能力,则服务端容易成为整个系统的性能瓶颈,也容易成为 DoS(Denial-of-service)攻击的受害方,此时所有客户端都会受影响。而且由于所有的网络流量
图2-2 P2P网络架构Fig. 2-2 P2P network architecture网络一般会在底层的物理网络拓扑层上再定义一个 overlay 的节点连接起来,以便迅速的执行资源、节点的查找。而在
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP393.09
本文编号:2640721
【图文】:
如图 2 1 所示(来源:https://en.wikipedia.org/wiki/File:Client-server-model.svg):客户端主动和服务端建立 TCP 连接(或 UDP),然后发出请求,等待服务端回应。图2-1 客户端/服务端网络架构Fig. 2-1 Client/server network architecture此模式结构清晰,,容易理解,开发人员也都熟悉,TCP/UDP 协议又是由底层操作系统直接提供支持,且只需在传输层上应用加密协议(如:TLS),即可确保数据传输的安全,两者之间的通讯是基于应用层上事先定义好的协议(如:HTTP)。但此模式的缺点也很明显: 服务端要接受、处理所有客户端的请求,一旦请求数量短期内超过服务端的处理能力,则服务端容易成为整个系统的性能瓶颈,也容易成为 DoS(Denial-of-service)攻击的受害方,此时所有客户端都会受影响。而且由于所有的网络流量
图2-2 P2P网络架构Fig. 2-2 P2P network architecture网络一般会在底层的物理网络拓扑层上再定义一个 overlay 的节点连接起来,以便迅速的执行资源、节点的查找。而在
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP393.09
【参考文献】
相关博士学位论文 前3条
1 刘德辉;结构化P2P网络中的负载均衡技术研究[D];国防科学技术大学;2013年
2 张宇翔;对等网络中Churn问题分析与研究[D];北京交通大学;2010年
3 薛开平;对等网络中的可用性和安全性技术研究[D];中国科学技术大学;2007年
相关硕士学位论文 前1条
1 杨仲谋;基于WebRTC的去中心化内容分发网络的研究[D];杭州电子科技大学;2016年
本文编号:2640721
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2640721.html