APP下载

NS2仿真在计算机网络实践教学中的应用

2014-09-04林为伟

九江学院学报(自然科学版) 2014年3期
关键词:门限数据包链路

林为伟

(福建师范大学福清分校数学与计算机科学系 福建福清 350300)

NS2仿真在计算机网络实践教学中的应用

林为伟

(福建师范大学福清分校数学与计算机科学系 福建福清 350300)

为不断提高网络课程教学实践水平,引入了网络仿真软件NS2以辅助计算机网络教学。NS2是一款开放源代码的网络仿真软件,可以模拟实际网络以及网络协议的交互行为。将NS2融入教学,利用基于软件的网络模拟与仿真技术,给学生一个很好的综合性实验平台,让学生更好的理解和学习网络协议原理,教学效果会更好。

NS2,网络协议,网络实验,网络仿真

随着通信技术与网络技术的蓬勃发展,计算机网络、网络规划与设计等课程已经成为计算机类专业和通信信息类专业的核心课程,通常涉及到繁多复杂网络硬件设备和大量抽象的网络协议理论知识,学生很难很好的理解和掌握。通过部署真实网络环境的实践教学可以很好的解决上述问题,但由于真实网络实验环境受有限的资金和网络条件的限制,运用不灵活,且很难重新配置和共享资源,在统计数据的收集和分析上存在一定困难。为克服这些缺陷,可以借助于专用的网络仿真软件。网络仿真是近年来兴起的一种专业网络研究技术,它借助于软件工具,将网络抽象为数据模型,并仿真网络以及协议的实际运行,从仿真结果中对网络性能做出评估,以便进行网络研究学习和设计开放。笔者选择NS2仿真软件应用于计算机网络课程的实践教学中,带给学生各种“真实”的网络环境,深受学生好评,取得了良好的教学效果。

1 NS2网络仿真软件

NS2(Network Simulator,version 2)是一款开放源代码的网络模拟软件,最初由加州大学伯克利分校(UC Berkeley)开发。它最初的开发目的是为了研究大规模网络以及当前和未来网络协议的交互行为,为模拟研究有线和无线网络上的TCP、路由和多播协议提供了强有力的支持。整个NS2模拟过程主要分为源码修改、编写TCL模拟脚本、执行脚本文件和分析结果四个步骤[1]。

2 NS2网络教学应用实例

为了更好的将NS2应用融入于计算机网络实践教学中,授课教师必须合理设计教学方案案例。教师设计编写或者修改NS2仿真案例的源代码和参数,通过Nam动画演示、分析图表的绘制等方式在课程教学中演示仿真实例,加深学生对网络原理和相关协议的理解,同时掌握NS2的用法。亦可把仿真案例实验脚本直接提供给学生,建议学生自己修改案例中的参数,观察和思考不同环境下的运行结果。与此同时,可以鼓励一些动手能力编程能力较高的学生自己设计编写仿真实验案例脚本,甚至更新修改协议源码,从而进一步提高学生自己动手设计和独立思考的能力。下面以TCP协议的为例详细说明NS2仿真教学案例。

2.1 TCP协议简介

TCP协议(Transmission Control Protocol)是TCP/IP系统中非常复杂的一个协议,TCP提供端到端全双工通信,面向连接的传输控制确保了数据包的可靠传输,并且使用了滑动窗口来进行流量的控制,同时TCP协议采用慢启动门限和拥塞控制来实现链路的拥塞控制,保证了数据的高效传输。[2]

2.2案例设计思路

为了统一集中说明TCP协议的特性,教学案例构建了三条链路,其中链路1用于实现TCP的快速重传和快速恢复模拟;链路2用于实现TCP滑动窗口机制模拟;链路3作为参照组,用于对比支持慢启动和不支持慢启动的TCP协议区别,以及慢启动中添加慢启动门限和没有添加慢启动门限的区别。将3条链路模拟的结果使用NS-2自带的Xgraph将其绘制在同一张坐标图上进行对照。总拓扑结构如图1所示。

图1 案例总拓扑图

(1)链路0-3为链路1,实现TCP协议的快速重传和快速恢复。节点0为发送端口,节点3为接收端口,在节点1-2之间的链路限制了带宽,使之可以产生瓶颈从而模拟丢包现象,链路1中使用的是支持慢启动的TCP协议(TCP/Reno),同时添加慢启动门限。

(2)链路0-4为链路2,实现TCP滑动窗口机制。节点0为发送端口,节点4为接收端口,链路2中使用不支持慢启动的TCP协议(TCP/RFC793edu),该协议支持滑动窗口机制。

(3)链路3-5为链路3,作为参照组。节点3为发送端口,节点5为接收端口,链路3中使用支持慢启动的TCP协议(TCP/Reno),同时不添加慢启动门限。

运行模拟脚本,在Nam动画演示中观察数据分组的收发情况,对模拟产生的Xgraph图和Trace文件进行分析,同时通过参照对比3条链路的窗口大小,说明滑动窗口、慢启动、慢启动门限等知识点,最后抽取Trace文件中丢包信息,说明TCP的快速重传与快速恢复的机制。

2.3案例运行数据分析

案例运行数据分析是教学中非常重要的一个环节,通过Nam动画演示、分析图表的绘制等方式,提高学生的学习兴趣,加深学生对网络原理和相关协议的理解,下面重点说明该案例的运行数据分析。

(1)滑动窗口与慢启动算法分析 结合Nam动画演示。分析链路0-4和链路3-5,如图2和图3所示,可以观察到0.1s时FTP应用模拟器启动,节点O与节点3分别发送第一个TCP连接请求,0.3s时节点4和节点5收到第一个ACK,然后节点0和节点3发送携带ACK的数据包并连发两个数据包。

图2 0.1s时Nam状态图

图3 0.3s时Nam状态图

由于链路0-4与链路3-5所封装的TCP协议版本不同,如图4和图5所示,可以很清楚地观察在0.5~0.7s时候,在封装了滑动窗口TCP的链路上节点0开始以固定窗口发送数据包,而封装了慢启动TCP的链路上节点3发送的窗口大小为4,其增长趋势呈指数上涨,到达0.7s时节点3所发送的窗口大小则变为8。

图4 0.5s时Nam状态图

图5 0.7s时Nam状态图

正是由于TCP滑动窗口机制和慢启动机制的不同,在不添加其它条件的情况下,链路1一直以固定窗口发送数据,而链路2在未遇到慢启动门限的情况下窗口的大小一直呈指数上涨,同时配合上慢启动门限,慢启动算法就可以控制网络的拥塞情况。

结合坐标图分析:如图6所示,图中红色线为链路1封装TCP/Reno并启用慢启动门限,绿色线为链路2封装的是TCP_RFC793edu,蓝色线为链路3封装的是TCP/Reno未用慢启动门限。结合曲线图我们可以清楚地看到,在0.5s前红线、蓝线和绿线重合,窗口大小从1变为2,0.5s后绿线直线上升,窗口大小变为64,这是我们在前面代码中所设置的TCP窗口的大小,并在后面的各个时段,绿线一直以此固定窗口收发数据。蓝线的窗口大小呈指数增长,分别为2、4、8、16、32、64。对比红蓝两条线,在1.5s前两条线走向一样,由于出现丢包发生冲突,红线没有继续上升而是将ssthresh调整为cwnd的一半为10,窗口也跟着ssthresh调整为当前窗口值的一半10,然后拥塞窗口设置为1,2.8s时开始每次窗口增加1。

图6 Xgraph图

(2)快速重传和快速恢复分析。结合Nam分析:结合时间,观察Nam窗口Monitors一栏,如图7所示,0.4s左右,节点0与节点3连接成功后第一次发送两个数据包,此时cwnd大小为2,ACK为0;如图8所示,0.7s左右,节点0收到节点3的两个包确定后ACK变为2,表示确认收到前面的两个数据包,同时节点0发送4个数据包,此时窗口大小为4;以此类推如图9所示,1.4s左右,收到的确认包为14(2+4+8),窗口大小为16。这段时间为慢启动。

图7 0.4s监视图 图8 0.7s监视图

图9 1.4s监视图

如图10所示,当1.65s时节点0发送的窗口大小发生变化,不再呈指数上涨,链路中产生瓶颈,链路启动慢启动门限;1.7s时窗口大小由20左右直接落到10,在此期间,在节点0收到22个确认包后,ACK不再上升。如图11所示,1.72s时重复ACK计数器收到1个重复的确认包,这表示序号为23的包被丢弃未收到,而节点0重复发送序列号为22的确认包,因此重复ACK计数器的数值一直增加,如图12所示,直到2.05s时节点0收到重复的ACK为15。而如图13所示,2.06s时重复ACK计数器清0,节点0收到前24个数据包,由此大家可以看见在短短的0.3s内TCP协议快速重传了15个丢失的数据包,实现了快速重传和快速恢复。

图10 1.65s监视图 图11 1.72s监视图

图12 2.05s监视图 图13 2.06s监视图3 结语

网络实验仿真教学,解决了过去因为实验设备不足,仅靠教师进行理论教学的窘态,带给学生各种“真实”的网络环境,提高了学生学习兴趣,使学习过程和学习方式更具主动性,加深了对概念和知识的理解,又优化了教学过程。目前NS2仿真系统存在的平台界面友好性差、网络建模复杂而繁琐以及功能单一等问题,在今后的教学中,可以考虑从功能完善性、操作方便性以及界面友好性出发,设计并实现一套基于NS2的综合性的网络实验模拟平台,使现实网络实验与网络仿真实验相结合,从而最大程度地满足计算机网络类课程的实验实践教学的需求[3]。

[1]方路平,刘世华,陈盼,等.NS-2网络模拟基础与应用[M].北京:国防工业出版社,2008.77.

[2]谢希仁.计算机网络(第5版)[M].北京:电子工业出版社,2009.36.

[3]王波,孙燚,周志伟.计算机网络实验综合模拟平台的研发[J].计算机教育,2009,7(3):86-.

(责任编辑李平)

2014-3-24

林为伟(1978-),男,福建福清人,硕士,讲师,研究方向为计算机网络及其应用。

TN 915.04

A

1674-9545(2014)03-0126-(00)

猜你喜欢

门限数据包链路
基于规则的HEV逻辑门限控制策略
地方债对经济增长的门限效应及地区差异研究
天空地一体化网络多中继链路自适应调度技术
随机失效门限下指数退化轨道模型的分析与应用
SmartSniff
基于数据包分割的多网络链路分流系统及方法
生产性服务业集聚与工业集聚的非线性效应——基于门限回归模型的分析
基于3G的VPDN技术在高速公路备份链路中的应用
高速光纤链路通信HSSL的设计与实现
视觉注意的数据包优先级排序策略研究