赵吉波,周 宇,周红琼
(宁波大学 信息学院,浙江 宁波 315211)
随着网络的不断发展,网络的研究也越来越受到人们的关注,一方面需要不断研究新的网络协议和各种算法,满足现有网络存在的不足,提升性能,为网络发展做出前瞻性的研究;另一方面也要考虑如何整合、利用现有的网络资源,完善网络结构,使现有网络达到最高效能。IP网络性能的分析是实现以上两个方面的重要手段。
一般而言,在进行网络性能分析的研究时一般有以下3种手段:分析方法、实验方法和仿真方法。采用网络仿真,网络仿真就是用计算机程序对网络进行模型化,通过程序的运行模拟仿真网络的运行过程[1]。网络仿真利用数学建模和统计分析的方法模拟网络行为,通过建立网络设备和网络链路的统计模型,模拟网络流量的传输,从而获取网络设计及优化所需要的网络性能数据[2]。
笔者主要研究不同网络拓扑对IP网络性能的影响,选用网络模拟软件NS2进行仿真分析。通过对四种典型网络拓扑的延时、抖动、丢包率和吞吐量等关键性能指标的提取,进而进行相应的研究和探讨。
NS2即Network Simulator Version 2,是由美国加州Lawrence Berkeley国家实验室等单位开发的开源免费网络仿真软件。 NS2是一个面向对象、可扩展的离散事件驱动的网络仿真器,其核心部分是一个离散事件模拟引擎。NS2仿真器具有强大的数据处理功能,可扩展性强,执行效率高,且仿真结果的可靠性高。NS2支持TCP、UDP等网络协议,可以模拟网络数据传输如FTP、CBR等以及路由队列的管理机制如DropTail,RED和CBQ等。同时,NS2可以进行无线通信网络和卫星网络的仿真,以及多播和MAC层上协议的仿真[1]。
NS2具有一个模拟时钟,同时又有一个“调度器”类,负责记录当前的时间,调度事件队列中的事件,提供所需函数产生新的事件,并指定事件发生的时间[3]。
NS2采用分裂对象模型开发机制,采用两级体系结构[4],NS2将数据通道与控制通道的实现相分离,事件调度器和大部分基本的网络组件对象后台使用C++实现和编译,称为编译层,主要功能是实现对数据包的处理;NS2的前端可以说是Otcl的脚本解释器,称为解释层,主要功能是对模拟环境的配置、建立。在NS2中,通过TclCL把C++和Otcl两种语言中的对象和变量联系起来,一个Otcl对象映射到一个C++对象上,呈现一一对应的形式。
NS2对于网络的仿真也分为两个层次[5]:一个是基于OTcl编程的层次,也就是只需编写OTcl脚本来进行仿真,无需改动C++定义的各种已有的网络元素。另一个是基于C++和OTcl编程的层次,即如果在NS2中找不到仿真所需的网络元素,则要对NS2进行扩展,包括使用C++添加新的类以满足所需的网络元素以及修改Otcl脚本,然后进行仿真。在仿真过程中同时开启Trace跟踪文件,记录仿真过程中各种网络元素的变化或出现的现象,以便仿真结束后利用各种分析工具提取追踪文件中各种相关的参数数据并对其进行分析[6]。
IP是英文Internet Protocol的缩写,即网络之间互连的协议,中文简称为“网协”,也就是为计算机网络相互连接实现通信及数据传输而设计的协议。IP网络就是指传输通信采用TCP/IP协议族的通信网络。在因特网中,TCP/IP协议族是使网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。
随着网络的发展和网络技术的不断进步,人们对网络的要求越来越高。对于网络性能的分析,成为研究人员对网络进行评价的重要研究内容,也是改善网络性能的前提。一般按照属性分类,性能指标可以分为连通性、吞吐量、带宽、信道利用率、信道容量、带宽利用率、包损失率、传输延时、延时抖动等。本文仿真实验中主要对以下几个性能参数进行测量来评估IP网络性能:端点到端点的延时、延时变化、吞吐量、丢包率[7]。
现代网络中,影响网络性能的因素很多,包括网络设备影响、人为因素影响等,本文主要研究网络传输中的影响因素,重点分析总线型、星型、环型和网型这四种网络拓扑类型对网络传输性能的影响。
本次实验主要对上文所述的四种网络拓扑进行仿真分析。每种拓扑模型包含8个节点,总线型、星型、网型采用带宽2 M,链路延时为10 ms,队列管理机制为Droptail的双向连接,环型采用带宽2 M,链路延时为10 ms,队列管理机制为Droptail的单向连接。
在对网络性能分析之前,使用NAM工具演示4种不同网络拓扑结构的仿真过程,在该仿真实验中,同时发送一个cbr数据流和两个ftp数据流,性能参数的分析以cbr数据流作为研究对象。cbr本身是固定数据包大小的数据源,为了体现网络数据量的变化,在本次仿真实验中,对cbr数据源进行了设置,使其在一定时间内可以发生变化,初始速率为1mb/s,包大小为 1 000 B。在 2.0 s、3.0 s、4.0 s和 5.0 s这 4个时刻分别将 cbr数据源改变为2 mb/s,包大小 1 000 B、0.5 mb/s,包大小 1 000 B、0.5 mb/s,包大小 4 000 B、0.5 mb/s包大小 2 000 B。
对于仿真实验的结果分析,首先使用AWK语言编写提取性能参数,再使用Gnuplot工具绘制性能参数图形。
4种不同网络拓扑结构的传输延时如图1所示。从中可以看出,在网络节点数目比较少的环境下,相对于星型与网型拓扑而言,总线型与环型拓扑传输延时明显高出。这是因为星型拓扑中的所有节点都连接到同一个中心节点,连接访问时只牵涉到一个节点和中心节点,控制访问方法较简单。网型拓扑的传输跟星型类似,不用经过其他节点中转。这样一来,这两种网络的传输延时相对而言就比较小了。
在cbr数据流中加入ftp数据流或者cbr数据流自身传输速率及包大小发生变化时,4种网络拓扑结构的延时也都发生了变化,且星型和网型的变化更加明显,波动也相对较大,说明这两种网路拓扑结构在网络稳定性方面不如总线型与环型拓扑。同时从总线型和环型拓扑延时中也可以看出,cbr数据流的传输速率对其传输延时的影响比包大小的影响更加明显。而对于星型和环型拓扑来说,这两者的影响几乎相同。
4种不同网络拓扑结构的延时抖动如图2所示。当只有cbr数据流时,4种拓扑结构的延时抖动都接近为零。加入ftp数据流后,4种拓扑结构的延时抖动都发生了明显变化,其中环型拓扑的延时变化最不明显,而总线型的延时变化最明显,星型和网型的延时变化次之。同时,从图中也很明显地发现,延时变化分为前后两个阶段,前一阶段是cbr数据流传输速率在发生变化,后一阶段是cbr数据包大小在发生变化,由此可知数据包大小对延时抖动的影响比数据传输速率对延时抖动的影响更为明显。
4种网络拓扑结构的丢包率如图3所示。从以上4个图中很明显地看出,在环型拓扑结构中,至始至终其丢包率都为零,主要是环型网络采用令牌网机制,只有拥有“令牌”的设备才能在网络中传输数据,在此过程中有UDP和TCP两种不同数据流,UDP始终抢占网络所以没有丢包,但可以预见TCP肯定出现了丢包。其他3种拓扑结构中,丢包现象主要发生在3 s之前,也就是cbr速率较高的时候,其中总线型拓扑的丢包率在2.7%左右,网型拓扑的丢包率在3.8%左右,而星型拓扑的丢包率最高,在4.2%左右。
4种网络拓扑结构的吞吐量如图4所示。当只有cbr数据流时,吞吐量始终维持在1 000 kb/s上,当加入ftp数据流后,吞吐量发生明显变化。环型拓扑结构的吞吐量变化最不明显,即其网络吞吐量最稳定。而总线型相对于其他3种网络拓扑结构,其吞吐量始终维持在相对较低的水平上。星型和网型拓扑结构的吞吐量变化比较相似,它们的吞吐量水平与环型拓扑相当,但并没有环型的稳定。
通过对总线型、星型、环型和网型这4种网络拓扑结构的性能分析,可以知道在网络节点较少的网络中,总线型拓扑结构的网络传输延时和延时抖动较大,但其网络还比较稳定,吞吐量和丢包率都保持在一个较好的水平上。星型拓扑结构的网络,具有较小的延时并且吞吐量保持在一个较好的水平上,但其网络不够稳定,延时抖动较大,丢包严重。环型拓扑结构的网络最稳定,虽然传输延时较高,但其延时抖动和网络吞吐量都比较稳定,且具有很低的丢包率,保证了数据的完整传输。网型拓扑结构的网络最复杂,延时较低,延时抖动较大,吞吐量和丢包率也都保持在一个中等水平上。
图1 不同拓扑结构的传输延时Fig.1 Propagation delay of different network topology
图2 不同网络拓扑结构的延时抖动Fig.2 Delay jitter of different network topologies
图3 不同网络拓扑结构的丢包率Fig.3 Packet loss rate of different network topologies
图4 不同网络拓扑结构的吞吐量Fig.4 Throughput of different network topologies
随着网络的不断发展,网络结构越来越复杂,人们对网络的要求也越来越高,随之对网络性能的分析也变得越来越重要。通过仿真的的方法模拟网络从而了解网络各个方面的性能,在此基础上,研究人员就可以进一步对网络资源进行改善,使网络资源得到充分利用。同时也可以通过了解现有网络资源及其存在的问题,从而研究和开发新的网络协议,使网络更加完善且能够满足人们不断发展的需求。
[1]王辉.NS2网络模拟器的原理和应用[M].西安:西北工业大学出版社,2008.
[2]George X,George C P.TCP and UDP performance over a wireless LAN[J].Proceedings of the IEEE Infocom,1999:439-446.
[3]徐雷鸣.NS与网络模拟[M].北京:人民邮电出版社,2001.
[4]李蓬.基于NS2的局域网性能仿真 [J].电脑与信息技术,2008,16(1):16-18.
LI Peng.LAN performance simulation based on NS2[J].Computer and Information Technology,2008,16(1):16-18.
[5]王铁君,吴辰文,邬开俊,等.基于NS2的TCP性能仿真研究[J].兰州理工大学学报,2006,32(5):100-103.
WANG Tie-jun,WU Chen-wen,WU kai-jun,et al.Simulation of TCP performance based on NS2[J].Journal of Lanzhou University of Technology,2006,32(5):100-103.
[6]王晓燕,郑明春.基于NS2的网络仿真研究与应用[J].计算机仿真,2004,21(12):129-131.
WANG Xiao-yan,ZHENG Ming-chun.Study and application of network simulation technology based on NS2[J].Computer Simulation,2004,21(12):129-131.
[7]杨雅辉,李小东.IP网络性能指标体系的研究 [J].通信学报,2002,23(11):1-7.
YANG Ya-hui,LI Xiao-dong.The study of a framework for IP network performance Metrics[J].Journal of China Institute of Communications,2002,23(11):1-7.