大型P2P网络的虚拟仿真实验床构建

2017-06-10 08:38:55史建焘李秀坤
实验室研究与探索 2017年4期
关键词:插件客户端服务器

史建焘, 李秀坤

(哈尔滨工业大学 计算机科学与技术学院, 哈尔滨 150001)

·专题研讨——虚拟仿真实验(44)·

大型P2P网络的虚拟仿真实验床构建

史建焘, 李秀坤

(哈尔滨工业大学 计算机科学与技术学院, 哈尔滨 150001)

针对大规模P2P网络的虚拟仿真实验床,采用了虚实结合的系统架构、基于事件驱动的高并发IO框架、基于插件架构的业务逻辑处理以及应用了相关数学模型。以虚拟仿真实验床为支撑设计的P2P污染实验案例表明,实验床既可支持8 000个节点以上的大规模虚拟仿真实验,也可将系统接入Internet,在不影响实际网络环境运行状况的同时进行真实网络实验。通过这种以虚补实、以实补虚的方式,能够加深学生对P2P等大规模网络系统运行原理的理解,进而培养学生的综合创新能力。

对等网络; 网络仿真; 大规模网络; 内容污染; 实验教学

0 引 言

随着信息技术的迅猛发展,P2P(Peer-to-Peer,对等网络)技术已经成为业界研究和关注的一个热点,其特有的自组织、分布性的特点,使其迅速发展,已经成为互联网不可分割的一部分。许多基于P2P技术的应用都应运而生,包括文件共享[1-2],流媒体[3-4],即时通信[5]以及分布式计算[6]等。在研究领域,P2P的结构优化与设计[7],激励机制[8]和安全性研究[9]都备受关注,同时有关P2P网络的内容也被加入到了大多数高校的教学计划中。但是,由于P2P技术摒弃了服务器和客户端之分,大大颠覆了我们对传统网络模式的认知,同时P2P类网络应用往往会涉及大量节点,其相关实验多为大规模网络实验,P2P攻击类实验还会对互联网产生不可逆的灾难性后果,故传统的实验环境已经无法满足研究和实验教学的需求。因此,在资源和客观条件有限的情况下,使用虚拟仿真手段成为一个很好的选择。目前,已经有一些针对P2P网络的仿真器,使用较多的有NS2[10-11]、Peersim[12]、Oversim[13]以及P2Psim[14]。但是,这些仿真器或多或少都存在着模拟规模有限,系统扩展性不强,不能与真实节点交互的缺点。因此,本文给出了一个针对大型P2P网络的虚拟仿真实验床。本着以虚补实、以实补虚的宗旨,不但在网络拓扑上具有灵活的扩展性,适合不同的网络规模。同时虚实结合的系统设计、基于事件驱动的高并发IO框架、基于插件架构的业务逻辑处理以及相关P2P数学模型的应用,使得实验过程和结果都更加可信。

1 实验床设计与关键技术

1.1 实验床的系统架构及网络拓扑

实验床的系统架构以及网络拓扑如图1所示。一套虚拟仿真实验床系统由若干仿真服务器和一台域间调度服务器构成,仿真服务器数量可以根据需求扩展,理论上可以同时部署多套虚拟仿真实验床。仿真服务器负责实现具体的虚拟节点并模拟业务流程;域间服务器负责调度所有仿真节点的行为,并控制仿真服务器之间的流量。

图1 实验床系统架构及网络拓扑图

仿真实验床内的虚拟节点可以和局域网内的真实P2P主机和索引服务器相连,并通过防火墙接入到Internet。仿真服务器通过实际物理网卡在域间互联并对外通信,使得虚拟P2P节点可以像真实节点一样与其他节点或索引服务器通信。由于实际P2P网络能够正常运转的前提,是需要P2P节点将接入信息发布到一个索引服务器上,并通过索引服务器发现其他节点。而我们的虚拟节点都是发布在防火墙内部自己搭建的索引服务器上的,通过防火墙的过滤,保证了实验床上的虚拟仿真实验不会对Internet造成影响。此外,为了满足大规模实验的要求,提高单台服务器主机的节点承载能力,实验床采用了高性能IO模块、插件和配置管理模块,接下来会详细介绍相关的技术路线。

1.2 基于事件驱动的高并发IO框架

为了提高单台仿真服务器的模拟规模,承载实验产生的网络流量,得到更为真实的网络数据,需要搭建一个高性能的数据处理平台。由于大规模P2P实验会在虚拟节点间产生大量TCP连接,需要仿真实验平台能够承受巨大的连接压力,对系统的IO处理能力有着较高的要求,对此本文搭建了一个具有高并发性的IO框架。主要有以下特点:

(1) 使用了非阻塞I/O和事件驱动模型。由主线程负责处理所有 TCP 连接上的数据读取和发送,因此TCP的连接数不受线程数的限制。

(2) IO的接入处理和业务逻辑处理相分离。主线程读取到的数据放入队列,由业务线程池处理实际的P2P逻辑业务。 IO框架的整体设计如图2所示。

图2 高并发IO框架整体设计结构图

图2只是一个后端仿真主机与前端IO交互的情景,实际上可以有很多个后端仿真系统同时与前段IO交互。这里设计将数据途经IO处理层而转流入会话层是为了将所有关于描述符的IO事件处理全部集中于一处,方便更改和维护。当前IO的线程数与主机的CPU数相关,当只有1个CPU时,只有1个主线程,辅助线程有一个任务删除线程和一个统计线程;当主机为处理器时,每个处理器绑定一个业务处理线程。IO框架采取proactor设计模式。实现了以下功能:

(1) 连接接入管理。包括TCP连接的接收和关闭,连接数据的接收和发送,连接超时的相关处理。

(2) P2P协议数据流的加解密。当仿真节点与外部真实节点互相通信时,需要对真实节点加密的控制报文进行解密。

(3) 会话数据管理。由于整个IO接入模块是事件驱动的,故系统需要保存每个连接会话的相关数据,当有可读或可写事件到来后需根据会话ID向会话管理子模块查询相关会话数据。

(4) 连接状态的监测。对当前TCP连接数、历史接收和发送的数据量以及即时传输速率等信息进行监测,并对外提供查询接口。

(5) 消息的接收与分发。IO接入层和仿真节点逻辑层采用了相同的消息格式进行通信。IO层将P2P协议报文和控制报文等封装成消息放入共享内存中,然后以FIFO的方式来通知仿真业务模块读取消息并处理。这种采用消息的方式将连接处理和业务处理异步化,一定程度上提高了IO的吞吐性能。

1.3 基于插件架构的P2P逻辑业务处理

进行大规模P2P网络仿真时,为了保证实验的真实性,需要模拟不同的节点业务处理流程,在同一仿真服务器上造成线程间运行的异步性。因此在实验床设计时,采用了基于插件架构的P2P逻辑业务处理技术。在仿真服务器运行时,会有一个或多个线程负责后端P2P逻辑业务的处理。IO接入层和P2P逻辑层之间通过消息队列来进行通信。P2P逻辑层的主要操作封装在MessageHandler类中,实现了以下功能:

(1) 协议的解析。主要是P2P报文的解析,根据协议格式将收到的报文解析成不同的消息,提供给上层应用处理。

(2) 协议的处理。由于仿真场景的不同,业务模块的处理策略可能会变动频繁,为增强平台的灵活性即可扩展性,这里采用了插件机制来实现。

P2P逻辑业务处理框架的整体设计如图3所示。逻辑业务层中的插件架构是最为重要的部分,它使得节点行为策略独立于整个IO框架系统。每种节点行为策略都以动态链接库模块的形式存在,策略模块的编写只需要专注于P2P消息的处理,而不需要考虑IO连接的情况。同时系统只需要通过配置文件就可以实现节点行为策略的选择。

图3 P2P逻辑业务处理框架整体设计结构图

在系统启动时,插件管理模块会根据配置文件为不同仿真节点加载指定的业务插件。当有P2P连接到来时,在应用层连接握手阶段将根据对方的节点标识在配置文件中查找相应的插件模块名称,然后根据名称向插件管理模块查询模块句柄,当有应用层消息到达时即可调用该句柄的处理函数进行处理。插件的所有处理函数接口定义都封装在统一的消息处理接口模块中。

1.4 相关数学模型的应用

实际的P2P系统具有较高的抖动性,如何真实的模拟大量节点的频繁加入和离开,直接影响到仿真实验的可信度。因此,本文在实验床设计中引入了节点到达和离开数学模型,模型根据实际网络中的测量数据进行拟合作为依据,更为贴近现实场景。

通过对大量P2P网络进行研究发现,影响节点请求波动规律的因素主要有三方面:用户兴趣H(t),日周期性P(t),以及随机噪声N(t)。不同种子或者同一种子的不同时刻,这些因子所起的作用不同,将节点到达模型表示为:

λ(t)=k1·H(t)+k2·P(t)+k3·N(t)

(1)

将节点离开模型表示为:

γ(t)=l1·H(t)+l2·P(t)+l3·N(t)

(2)

式中:λ(t)为t时刻新到达的节点数量,称为节点到达率;γ(t)为t时刻离开节点的数量;k1、k2、k3和l1、l2、l3分别为H(t)、P(t)、N(t)的权重。实际仿真系统中设定H(t)服从类高斯分布,P(t)服从类正弦的周期性分布,随机噪声根据不同实验场景进行选择。在实验开始前,会根据实验场景和网络规模配置不同的参数,并由域间调度服务器进行配置。

2 虚拟仿真实验举例

2.1 仿真实验场景

本节通过一个实验案例阐述如何应用实验床进行P2P仿真实验。实验场景选取BitTorrent(简称BT)网络下的数据污染实验,实验的目的是为了使学生了解BT分块分片机制的脆弱性。

先了解下相关实验背景:BT是当前最为流行的P2P应用系统之一,其用户规模已经达到了百万级,流量一度占据了P2P网络总体流量的53%[15]。BT下的数据污染攻击是在数据交换过程中针对其分块分片机制的一种攻击方式,目的是减缓节点的下载速度[16]。攻击者伪造大量节点加入到要攻击的共享网络,向其他节点发送伪造的分块数据,造成受害节点数据校验失败,丢弃整个分片并重新下载,这样就减缓了用户下载速度,甚至造成节点无法下载到整个文件。

实验采用虚实结合,以实验虚的方式,分别模拟2 000个良性节点和8 000个攻击节点,并在Internet上选择实际共享规模分别为500和2 000的两个种子文件,对应的数据文件大小均为200 MB。随机选择P2P仿真节点对应的业务插件,包括攻击行为插件和不同类型和版本的客户端行为插件。在局域网内搭建一个索引服务器,运行3个不同类型的客户端节点,包括比特彗星、比特精灵和uTorrent。

学生需要进行3个实验步骤:① 不运行仿真节点,让真实客户端载入2个种子文件并完成下载,记录下载用时。该步骤反映了真实的下载情况。② 运行实验床上模拟的攻击节点,配置不同的攻击节点数,让真实客户端载入2个种子文件,并完成下载,记录下载用时。该步骤反映了攻击对单一节点的影响。③ 运行实验床上的模拟节点,并断开与Internet的连接。分别配置不同的攻击节点数和初始良性节点数,配置节点到达模型和节点离开模型参数,分别反映大小不同的两个共享网络规模,记录单位时间完成下载的良性节点数。该步骤反映了攻击对整个共享网络的影响。

2.2 实验测试结果

以下是在实验床上运行得到的实验结果。表1记录了3种客户端在真实环境正常下载2个文件的用时,文件1基本在1 h左右下载完成,文件2基本在0.5 h左右下载完成。

表1 各种客户端在Internet实际网络中的正常下载用时

表2分别记录了数据污染攻击对3种不同客户端的影响,客户端从Internet上的真实节点下载正常数据,从虚拟仿真节点下载污染数据。攻击大大减缓了客户端的下载速度,完整的文件下载耗时很长,因此实验只记录3 h内的完成情况。只有uTorrent在2 000个攻击节点的情况下能完成文件2的下载,但用时也超过2 h。

表2 攻击对单个节点下载速度的影响

表3是实验步骤3的结果,实验在完全虚拟化的环境下进行3 h,分别记录了完成下载的各种客户端的数量。其中良性节点数只表示在线良性节点,实验过程中随时都有节点加入和离开共享网络。

表3 攻击对整个共享网络的影响

实验结束后通过对完成下载的节点类型进行统计,发现绝大多数为uTorrent节点,有少量的比特彗星节点,没有比特精灵节点。通过对比实验步骤2与3的结果,发现完全虚拟化环境中的实验结果与实际网络中的结果基本一致。

3 结 语

本文介绍的P2P网络虚拟仿真实验床,一方面可以同时模拟大量虚拟P2P节点,另一方面也可以接入Internet连接真实节点。通过这种虚实结合的设计,既能进行虚拟仿真实验,获取真实环境下无法获得的实验结果;同时在不影响实际网络运行状况的前提下,也可以完成实际网络中的实验,通过真实环境下的实验结果来验证虚拟仿真实验。

以第2节中的实验为例,由于真实环境下很难评估数据污染攻击对P2P网络整体的攻击效果,学生可通过实验床进行完全虚拟化的仿真实验。与此同时,通过部署真实客户端和半开放的实验环境来评价攻击对单个节点的影响。将实验结果进行对比,可得到相同的结论:① 污染攻击对小规模共享网络影响更大;② 攻击节点越多攻击效果越好;③ 污染攻击对比特精灵客户端效果最好,对uTorrent客户端效果最差。

这样通过运用该仿真实验床可以使学生更加深入了解P2P网络的各种特性,对比不同客户端的优缺点。甚至可以对P2P网络及其客户端的实现进行改进,并通过虚拟仿真实验进行验证。因此,借助实验床可以更好传授学生理解、分析和研究问题的方法,培养学生的综合创新能力。

[1] 陈 锋,罗逢吉,文俊浩.基于JXTA的P2P文件共享系统的实现研究[J].计算机科学,2007,34(12):126-128.

[2] 马素刚.P2P技术在大文件共享中的应用研究[J].实验技术与管理,2016,33(3):147-150.

[3] 张明军,彭 娅,俞文静.P2P流媒体服务方案及其关键技术研究[J].计算机工程,2013,39(1):125-130.

[4] 张志明,周 晋,陈 震,等.基于网络编码的对等网流媒体传输模型和算法[J].软件学报,2012,23(3):648-661.

[5] 王振华,王 攀,张顺颐.基于综合统计特征的Skype流量分析与识别[J].南京邮电大学学报(自然科学版),2006,26(1):1-7.

[6] 茂高伟,韩 华,代亚非.一种P2P环境下分布式文件存储系统的缓存策略[J].计算机工程与应用,2004,40(30):45-48.

[7] 李 伟,赵庆展,曹传东. 基于GIS与P2P的区域教育资源共建模式[J].实验室研究与探索,2013,32(5):201-204.

[8] 王 焱,周天宏.基于多粒度和激励机制的移动P2P网络动态信任模型[J].实验室研究与探索,2013,32(11):246-250.

[9] 聂捷楠,张 洋. 基于安全路由算法的P2P网络安全性能优化研究[J].科技通报,2013(9):149-151.

[10] 周德荣,夏 龄,舒 涛,等. NS2网络协议虚拟仿真实验平台研究[J].实验技术与管理,2014,31(3):87-90.

[11] 吉祖勤,黄津津. 基于NS2的队列管理算法DropTail和RED仿真与研究[J].实验室研究与探索,2014,33(1):5-8.

[12] 郭 俊,杨 忠. PeerSim模拟技术研究[J].现代计算机(专业版),2010(4):130-131.

[13] 崔建群,赖敏财,蒋文斌,等. OverSim:可扩展的应用层组播网络仿真框架[J].计算机工程与科学,2012,34(10):1-5.

[14] 任 超,李战怀,张 英. 异构P2P网络的分布式查询协议[J].电子科技大学学报,2009,38(1):108-112.

[15] 苏马婧. P2P文件共享系统测量及其安全性研究[D].哈尔滨:哈尔滨工业大学,2013.

[16] 史建焘,张宏莉,方滨兴. BitTorrent假块污染攻击的对抗方法研究[J].计算机学报,2011,34(1):15-24.

A Virtual Simulation Experiment Bed towards Large Scale P2P Networks

SHIJiantao,LIXiukun

(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China)

The characteristics of self-organization,distributing and large scale,make P2P network different from the traditional network. It is often difficult to realize P2P related experiments in the traditional experiment environment. The virtual simulation experiment bed towards large scale P2P networks uses system architecture combined by virtuality and reality, high concurrent IO framework driven events, plug-in unit based business logic processing and application of relevant mathematical models. Experiment cases show that the experiment bed can do both large scale virtual simulation experiment and real network experiment in the Internet. The real network experiment will not affect the actual operation of the P2P network. The methods of "reality supplying virtuality" and "reality verifying virtuality" can deepen students' understanding of the P2P network and cultivate students' comprehensive innovation ability.

P2P network; network simulation; large-scale network; content pollution; experimental teaching

2016-08-15

国家自然科学基金(61402137)资助

史建焘(1980-),男,黑龙江哈尔滨人,博士,工程师,研究方向:计算机网络,云计算,信息安全。

Tel:0451-86413844,13826462016; E-mail:shijiantao@hit.edu.cn

TP 393.0

A

1006-7167(2017)04-0079-04

猜你喜欢
插件客户端服务器
自编插件完善App Inventor与乐高机器人通信
电子制作(2019年22期)2020-01-14 03:16:34
通信控制服务器(CCS)维护终端的设计与实现
县级台在突发事件报道中如何应用手机客户端
传媒评论(2018年4期)2018-06-27 08:20:24
孵化垂直频道:新闻客户端新策略
传媒评论(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客户端的设计与实现
电子测试(2018年10期)2018-06-26 05:53:34
得形忘意的服务器标准
知识产权(2016年8期)2016-12-01 07:01:13
计算机网络安全服务器入侵与防御
MapWindowGIS插件机制及应用
基于Revit MEP的插件制作探讨
客户端空间数据缓存策略