摘要:P2P已经彻底统治了当今的Internet,然而,P2P病毒防御技术的研究却相对滞后,如果P2P网络病毒大规模爆发,其影响和破坏将是巨大的。针对病毒文件的传播,充分考虑网络的诸多因素,如:用户到达率,在线(共享)时间,网络节点免疫力等对病毒文件传播的影响,并通过P2P网络仿真工具-PeerSim进行仿真分析。
关键词:P2P网络;PeerSim;仿真设计;Napster
中图分类号:TP393.08文献标识码:A文章编号:1009-3044(2011)12-2783-02
P2P网络作为一种分布式网络应用,它的用户共享着各自所拥有的资源,以达到资源的扩大化及信息交流的自由化。P2P网络中的用户通过向P2P网络发布自己的资源信息,并通过网络所提供的服务,能让其他对等节点(Peer)直接访问而无需经过中间实体(也说是传统c/s模式中的服务器)。在P2P网络中,用户既是资源的提供者(server),电是资源的获得者(client)。P2P技术打破传统c/s模式,充分发挥网络当中每个节点的能力,让每个节点的地位是对等的,不仅能提供隐私保护与匿名通信,还能提高网络的健壮性和抗毁性[1-3]。本文主要且综合考虑各种因素(如:下载时间,到达率,在线时间以及网络免疫力等)对病毒传播的影响,通过仿真实验,系统地得出相应的数据图,并对得到的数据图进行分析研究。
1 P2P网络仿真协议及仿真工具的介绍
由于本论文的课题是基于在线时间(共享时间)异常的P2P网络病毒发现与传播抑制研究。因此,我们如何实时地收集用户节点的在线时间(共享时间)将会是关健所在,这将涉及到我们P2P网络仿真协议的选择。
P2P网络仿真工具PeerSim相关内容分析如下。在PeerSim的框架中,先通过调用Simulator类读取配置文件中的初始化信息(如:节点数、仿真运行的循环数等),控制类(如:init类,contr01类等)。具体的步骤如下:
1)选择一个网络规模(通过配置文件中的network.size语句设定网络节点数)
2)选择一个或多个协议(通过在配置文件中的protoc01前缀引入相应的协议类)进行实验,并对它们进行初始化
3)选择一个或多个的控制类(通过在配置文件中的control前缀引入相应的协议类)来对仿真实验过程实施控制与数据的纪录工作。
4)调用Simulator类,进行仿真实验。实验过程中所创建的对象都是通过实现一个或多个接口来完成相应的功能的
2 P2P网络病毒传播仿真分析
2.1 下载时间对病毒传播的影响
用户的下载时间取决于自己以及所连接种子的带宽,因此有必要了解一下在真实网络当中用户各自的带宽情况,并根据该数据设定相应的仿真实验参数值,仿真得到的数据才真实可靠。
我们就可以设定实验条件:网络节点数为5000,PeerSim执行仿真的循环数为400,进行仿真实验,得到的数据它是在不同下载时间情况下,在下载文件时间比较长的情况下,会对病毒传播前期产生影响,但随着时间的推移,这种影响会慢慢减弱;当下载时间比较短的情况下,基本上对病毒传播没什么影响。
2.2 到达率对感染率的影响
对一个真实的P2P网络来说,它可提供的文件信息是海量的,有些文件刚发布不久,是很热门的,很多用户想下载;有些文件发布已经很久了,用户的需求比较少,因此相应也就比较少人下载;针对这一点,仿真实验当中要涉及文件流行度的问题,这里可以用针对每个文件,在每一个单位时间内,到达率多少来衡量。
假设1:网络节点数为5000,PeerSim执行仿真的循环数为400;一开始的源文件是病毒文件。
从仿真结果可知,当到达率比较大的情况下(如:到达率大于150后),到达率的对感染率的影响已经不太重要,网络将会在60个单位时间(120分钟)内,达到9096多的感染率;同时,当到达率大于50后,网络的最终感染率在800分钟(400 cycle)内,将会达到100%。
假设2:网络节点数为5000,PeerSim执行仿真的循环数为400;病毒是从下载过程中,从其它节点是感染的,而不是一开始的源文件是有病毒的。图3中纵坐标表示感染的节点数,横坐标表示PeerSim执行的循环数:并且假设网络当中具有一定比例的节点对病毒没有免疫能力(易染节点),即只要该节点为初始化节点集的一员,那么只要该节点下载文件,则认为该节点已经被染毒了。从仿真结果可知,当初始化的易染节点的比例大于40%以后,易染节点所占网络节点数的比例,对病毒传播的影响已经不那么显著,对网络感染率的影响已经没有当易染节点比例小于40%那么显著,只在小范围内影响网络的感染率。
2.3 在线时间对网络感染率的影响
P2P网络系统当中,用户是不可能一直在线的,当用户的下载任务完成后,用户应该会在随后的时间内离开系统,不再参与共享文件。因些,在线时间是将会是影响病毒传播的另一重要参数。可以通过仿真程序,引入相应的初始化类来初始化网络当中节点的在线时间。
从仿真结果中分析,可见在线时间对传播的影响是比较严重的。我们可以设想在线时间比较短时,下载文件的大小应该比较小。其中,E(x)的单位为单位时间的个数(即多少个cycle)。我们设1个单位时间长为2分钟(1 cycle=2 min),网络的总节点数为5000,PeerSim执行仿真的循环数为400。
由图4所示,针对流行度比较高的情况(到达率为100),随着在线时间的增加,网络的最终感染率将会快速的提高,网络最终感染率快速提升的区间为:在线时间均值在(O,100)内。并且当在线时间均值大于150个单位时间以后,网络的最终感染率已经很接近10096了,因此,再增加在线时间均值,对网络的最终感染率影响已经不大了。
2.4 节点对病毒的删除率(免疫力)
本论文中免疫力的定义为:P2P网络中节点的操作系统能对病毒的入侵行为具有防御能力,能及早地发现病毒,并对病毒进行有效地查杀的能力。一个真实的网络是对病毒具有一定的防御能力的。因此,我们所研究的网络是具有一定病毒防御能力的P2P网络。为了得到一定的网络防御能力,我们设想把P2P下载工具与病毒进行相关联,让杀毒软件能对P2P下载工具所下载的文件进行及时的查杀毒处理。因此,我们可以设定一定的网络免疫能力,并随机地初始化网络当中的节点是否具有对该病毒的查杀能力。当免疫节点下载该文件时,能及时地对刚下载的文件进行查杀毒;并且如果文件有毒,能及时把文件从系统中删除。
通过比较发现,网络节点的删除率对病毒文件传播的影响是很大的,当网络具有比较高的删除率时,病毒将受到比较强的抑制,如:当网络的删除率大于85%以后,网络节点的感染率会控制在10%以内。我们假设网络自身的自愈能力为1096,当网络中节点对病毒的删除率大于85%以后,我们不用做任何处理,依靠网络自身的愈能力,就能进行自我的修复。
3 结束语
并且通过仿真所得的数据图发现,我们如果想控制网络的病毒感染率,用户的在线时间,网络的删除率与用户的到达率将会是关健所在。但用户的到达率是人的行为,P2P网络中的tracker是无法控制的;同样,网络的删除率也是P2P网络自身无法控制。因此,抑制病毒传播的重点就在于通过定位病毒文件,并使系统对该病毒文件进行相应的隔离,从而减少别的用户连接到受感染节点的机率,达到有效地抑制病毒传播的目的
参考文献:
[1]