P2P技术在大文件共享中的应用研究
2016-09-06马素刚
马素刚
(1. 长安大学 信息工程学院, 陕西 西安 710064;2. 西安邮电大学 计算机学院, 陕西 西安 710121)
P2P技术在大文件共享中的应用研究
马素刚1,2
(1. 长安大学 信息工程学院, 陕西 西安710064;2. 西安邮电大学 计算机学院, 陕西 西安710121)
为解决实验教学中出现的局域网内大文件快速分发问题,提出了一种基于P2P技术的传输方案。分析了P2P的工作原理、网络分类、网络特点以及BitTorrent工作过程等,设计了一个典型实验网络拓扑,并搭建了真实网络进行了验证。利用MYBT软件搭建了P2P服务器,在种子节点和下载节点数量变化情况下,对约4 GB的文件进行分发,统计了平均下载时间。实验结果表明,相对于FTP等集中式传输而言,基于P2P技术的文件共享系统节省了大量时间,很好地实现了局域网内大文件的快速分发。
P2P; 客户/服务器模式; 大文件共享; BitTorrent; 种子
在计算机专业的实验教学中,教师经常需要将一个大文件快速分发给每一个学生,例如在计算机网络课程中操作系统安装实验[1]开始前,教师需要将Linux操作系统的安装文件(CentOS 7系统安装文件大小为4 310 695 936 B)发送给每一个学生。FTP(File Transfer Protocol,文件传输协议)是常见的文件传输方式,它采用客户机/服务器(C/S)模式[2]。FTP传输方式需要一个集中的FTP服务器,文件资源存储在FTP服务器上,多个客户端同时下载时,需要分别向服务器发出请求,每个客户端的文件都是从服务器端获得。当客户端数量较多时,FTP服务器将成为传输的瓶颈,下载较大文件时需要消耗大量的时间。另外,FTP传输过程中要求单个文件大小不能超过2 GB。所以,FTP传输方式不能满足大文件快速分发的要求。本文采用了一种基于P2P(peer-to-peer,对等方式)技术[3]的文件共享方式,不同于客户机/服务器模式,传输过程依赖于网络中参与者的计算能力和带宽,而不是全部依赖于服务器。
1 P2P相关技术
1.1P2P工作原理
P2P是相对于C/S模式的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,所有客户端都是从服务器获取数据,如图1所示。在基于C/S模式的系统中,数据的一致性容易控制,系统也容易管理。但是,如果服务器出现故障,将导致整个系统失效。另外,受服务器CPU的能力、内存大小、网络带宽等限制,可同时服务的客户端非常有限,客户端的增加意味着数据传输会更慢。
图1 C/S工作模式
P2P技术采用对等网络结构(如图2所示),每个节点既可以从其他节点得到服务,也可以为其他节点提供服务。在P2P网络中,所有用户的身份都是平等的,不同区域的用户可以通过P2P技术共享主机上的资源。P2P使得互联网上信息的范围、容量及价值得到很大的提高。
1.2P2P网络分类
按照节点之间通信时对服务器的依赖程度,可以将P2P网络分为3种类型,即集中式P2P网络、分布式P2P网络和混合式P2P网络[4]。
(1) 集中式P2P网络。该网络由一个中心服务器负责保存索引信息,为网络中各节点提供查询服务,传输内容则无需经过中心服务器。这种网络的结构比较简单,中心服务器的负担大大降低,它是小型网络管理和控制的一种可选方案。但由于仍存在中心节点,容易形成传输瓶颈,扩展性也比较差,不适合大型网络。
(2) 分布式P2P网络。该网络与集中式对等网络最显著的区别在于它没有中心服务器,所有节点通过与相邻节点间的通信,接入整个网络。分布式对等网络采用洪泛(flooding)机制[5],通过TTL(time to live,生存时间)减值来控制搜索消息的无限传输。它的组织方式比较松散,节点的加入与离开比较自由。但是,随着网络节点的不断增多,洪泛机制将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。
(3) 混合式P2P网络。集中式P2P网络有利于网络资源的快速检索,并且可以通过增强服务器能力提高网络的可扩展性,但是其中心化的模式容易遭到直接的攻击;分布式P2P解决了抗攻击问题,但是又缺乏快速搜索和高可扩展性。混合式P2P结合了集中式P2P网络和分布式P2P网络的优点,引入了搜索节点和索引节点,在设计思想和处理能力上都得到了进一步的优化[6]。混合式对等网络的典型代表为BitTorrent。
1.3P2P网络特点
与C/S模式网络相比,P2P网络具有如下特点[7-8]:
(1) 对等性:P2P网络中的所有节点都兼有服务器和客户端两种功能,不需要集中式服务器的参与,节点间直接交换资源,有效地解决了C/S模式网络中单点瓶颈问题,也提高了网络的可扩展性和健壮性;
(2) 可扩展性:与C/S模式网络不同,P2P网络中每个节点都是服务的提供者,所以随着系统中节点数目的增加,系统的服务能力也不断增强;
(3) 健壮性:P2P网络中的数据和资源分散在所有网络节点上,不存在由于单一节点性能引起的系统瓶颈,网络始终能够保持高连通性,少数节点失效对整个系统的影响很小;
(4) 高效性:随着硬件技术不断发展,节点的计算存储能力和网络带宽在不断提高,P2P网络充分利用各节点的闲置资源,以更低的成本消耗换取了更高的计算和存储能力。
2 BitTorrent文件共享系统
BitTorrent是近年来使用比较广泛的P2P文件共享系统[9],它主要由种子节点、Web服务器、Tracker服务器和下载节点组成,其工作过程如图3所示[10]。
图3 BitTorrent工作过程
(1) 种子节点将种子文件(Torrent文件)上传到Web服务器(步骤①),同时连接到Tracker服务器进行注册(步骤③),启动文件共享、提供上传服务。种子节点拥有共享文件的所有文件块,能够为共享文件创建种子文件。种子文件描述了共享文件的属性,包含文件名、大小、文件块总数、每个文件块的校验值以及Tracker服务器的地址等。
(2) 下载节点浏览Web服务器,下载种子文件(步骤②),根据种子文件提供的信息,连接到相应的Tracker服务器,获得节点列表(步骤④)。与种子节点建立连接,下载文件(步骤⑤),同时周期性地向Tracker服务器反馈下载进度(步骤④)。
(3) 下载节点之间通过彼此通信并与Tracker服务器交互,获取其他下载节点当前已经下载的数据块索引,并请求下载所需要的文件片段,同时向邻居节点报告已经下载完成的数据块索引,其他节点也可以从该节点得到所需要的文件片段(步骤⑥),直到所有节点都完成请求文件的下载。
3 实验过程设计
3.1实验环境
典型的实验网络拓扑如图4所示,用交换机SW1连接 25台计算机,用交换机SW2连接22台计算机。交换机SW1、SW2的型号均为H3C S1026T,计算机的配置为:Pentium Dual-Core CPU E5800 3.20 GHz,4 GB内存,500 GB硬盘,Windows XP(SP3)系统。节点集合可以表示如下:
(M1,M2,…,M25)=(T1,S1,S2,S3,S4,n1,n2,…,n20)
(N1,N2,…,N22)=(S1,S2,n1,n2,…,n20)
其中,T1表示P2P服务器,同时具备了Tracker服务器和Web服务器功能,Si(i=1,2,3,4)表示种子节点,nj(j=1,2,…,20)表示下载节点。
图4 实验网络拓扑
3.2实验过程
以2个种子节点,30个下载节点的情况为例,分别对P2P服务器、种子节点和下载节点进行软件安装与配置。
3.2.1P2P服务器
在节点M1(T1)上安装MYBT服务器(Ver 3.0)软件[11],启动主界面,在“目录设置”选项卡下正确设置“Announce URL”,例如“http://192.168.1.175:6969/announce”,其中IP地址一般为本机的IP地址,服务端口默认为“6969”。单击“管理服务”选项卡下的“一键安装服务器”按钮,完成P2P服务器的配置。MYBT服务器同时集成了Tracker服务器和Web服务器功能。
3.2.2种子节点
(1) 制作种子文件。在节点M2(S1)上安装P2P客户端软件(BitComet 1.36),单击“文件”选单下的“制作Torrent文件”项,填写相关信息后单击“制作”按钮,即可完成种子文件的制作。其中,“源文件”指定待共享的文件(CentOS-7-x86_64-DVD-1503-01.iso),“Tracker服务器”指定P2P服务器地址(http://192.168.1.175:6969/announce),“生成”栏内还可以指定种子文件存放的路径。
(2) 上传种子文件。在节点M2(S1)上,启动浏览器,在地址栏内输入“http://192.168.1.175:6969”,即可登录Web服务器(M1)上传种子文件。
重复以上步骤(1)、(2),把M3(S2)配置为种子节点。
3.2.3下载节点
在节点M6(n1)上打开浏览器,在地址栏内输入“http://192.168.1.175:6969”,登录Web服务器下载种子文件。安装P2P客户端软件(BitComet 1.36),打开种子文件,即可启动下载。
其他下载节点(M7—M25,N3—N12)的配置方法类似。
3.3实验结果与分析
根据种子节点数和下载节点数的不同,可对实验结果进行如下分类分析。
3.3.1种子节点数为1时
随着下载节点数不断增加,下载文件所需时间如表1所示。平均下载时间的变化趋势如图5所示。
表1 种子节点数为1时的下载时间
图5 种子节点数为1时平均下载时间变化
从图5可以看出,下载节点由1增加至5时,平均下载时间迅速下降;继续增加至20时,平均下载时间仍然呈下降趋势,但下降速度缓慢;继续增加至40时,平均下载时间出现缓慢上升趋势,这是因为虽然下载节点数量增加了,但部分下载节点与种子节点位于不同交换机,增加了传输时间。
3.3.2下载节点数量为30时
随着种子节点数不断变化,下载文件所需时间如表2所示,平均下载时间变化趋势如图6所示。
表2 下载节点数为30时的下载时间
从图6可以看出,种子节点由1增加至4时,平均下载时间没有显著变化。表2也表明,以下两种情况平均下载时间几乎相同:4个种子节点平均分布于两个交换机,或者4个种子节点位于同一交换机。
3.3.3种子节点数为1,下载节点数为40时
位于不同交换机的两组下载节点平均下载时间分别为:位于SW1的20个下载节点(M6—M25)平均下载时间为11.84 min;位于SW2的20个下载节点(N3—N22)平均下载时间为13.76 min。这两者差别较大,表明跨交换机传输显著增加了下载时间。
4 结论
通过对种子节点数和下载节点数变化时平均下载时间的分析,可以得出如下结论:(1)种子节点数不变时,下载节点数量增加,能够有效减少平均下载时间;(2)下载节点数量不变时,种子节点数增加,对平均下载时间影响不明显;(3)跨交换机的传输,对平均下载时间的影响较大,显著增加了下载时间。
基于以上结论,针对实验教学网络环境(连接约30台计算机),建议配置一个P2P服务器和一个种子节点,并尽量将所有节点连接于同一个多端口交换机,从而保证大文件的快速分发。研究结果表明,与集中式网络相比,P2P技术采用的对等结构具有显著优势,基于P2P技术的文件共享系统很好地解决了大文件共享问题。
References)
[1] 肖明.计算机网络实验教程[M].北京:清华大学出版社,2014.
[2] 谢希仁.计算机网络 [M].6版.北京:电子工业出版社,2013.
[3] 李林艳.P2P技术在网络资源共享中的应用研究[D].长沙:湖南大学,2013.
[4] 张文,赵子铭.P2P网络技术原理与C++开发案例[M].北京:人民邮电出版社,2008.
[5] Tanenbaum A S, Wetherall D J.计算机网络 [M].5版.严伟,潘爱民,译.北京:清华大学出版社,2012.
[6] 管磊.P2P技术揭秘:P2P网络技术原理与典型系统开发[M].北京:清华大学出版社,2011.
[7] 葛莉.在P2P网络中对OrBAC模型的兼容性研究[J].实验室研究与探索,2014,33(11):136-140.
[8] 史建焘.P2P文件共享系统安全性研究[D].哈尔滨:哈尔滨工业大学,2012.
[9] 张鑫.BitTorrent文件共享技术的研究与改进[D].长春:吉林大学,2011.
[10] 唐红,胡容,朱辉云.BitTorrent网络行为研究综述[J].小型微型计算机系统,2012,33(9):2002-2007.
[11] 蔡康,唐宏,丁圣勇,等.P2P对等网络原理与应用[M].北京:科学出版社,2011.
Research on application of P2P technology in large file sharing
Ma Sugang1,2
(1. School of Information Engineering, Chang’an University, Xi’an 710064 China;2. Computer School, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)
A transmission solution based on peer-to-peer (P2P) technology is proposed to use the large file fast distribution via LAN in experimental teaching. This article studies the principles, network classification and network characteristics of P2P technology and working process of BitTorrent. A typical experimental network was designed and verified in a real network environment. A P2P server was built by MYBT software in the experiment. The average download time was counted for a 4GB file with difference of seed nodes and download nodes. The experimental results show that, compared with the centralized transmission mode such as FTP, the file sharing system based on P2P technology can save a lot of time and ensure the large file fast distribution via LAN.
peer-to-peer(P2P); C/S mode; large file sharing; BitTorrent; seed
10.16791/j.cnki.sjg.2016.03.037
2015- 08- 10
陕西省教育厅科研计划项目(14JK1662);陕西省科技统筹创新工程计划项目(2015KTCQ01-14)
马素刚(1982—),男,江苏淮安,博士研究生,工程师,主要研究方向为计算机网络体系结构,大数据处理技术.
E-mail:msg@xupt.edu.cn
TP393.02
A
1002-4956(2016)3- 0147- 04