NS2在TCP协议教学中的应用研究

时间:2022-07-10 10:07:55

NS2在TCP协议教学中的应用研究

摘 要 TCP是计算机网络的最重要协议之一,但由于其实现机理复杂,因此成为计算机网络教学的难点。提出基于ns2tcp教学演示,能针对连接建立、确认机制及拥塞控制等关键TCP协议实现机理进行分析和演示,增强教学效果。

关键词 计算机网络教学;TCP协议;NS2;确认机制;拥塞控制

中图分类号:TP393.01 文献标识码:A 文章编号:1671-489X(2012)03-0013-03

Research on Application of NS2 in TCP Protocol Teaching//Wang Xiaofeng, Mao Li

Abstract TCP is one of the most important protocols of computer networks, but as its implementation mechanisms are complex, the TCP teaching has become a difficult point in computer network teaching. The TCP teaching demonstration based on NS2 is presented, which can analyze and demonstrate the TCP protocol’s key implementation mechanisms, such as connection establishment, acknowledgement scheme and congestion control etc., and thus can improve teaching effectiveness.

Key words computer network teaching; TCP protocol; NS2; acknowledgement scheme; congestion control

Author’s address School of Internet of Things Engineering, Jiangnan University, Wuxi, Jiangsu, China 214122

1 引言

Internet作为20世纪人类最伟大的发明之一,已经深入人类社会的各个方面。当前,以Internet为代表的计算机网络技术得到飞速发展,计算机网络课程已逐渐成为高校计算机相关专业的一门专业基础课。计算机网络教学涉及大量复杂的网络协议,尤其是作为Internet核心协议之一的TCP协议。为实现在不可靠的IP协议上的可靠数据交付,TCP协议包含了大量复杂的机制[1],这使得初学者感到抽象难懂,因此,TCP协议成为计算机网络教学的一个难点。

为提升学生对TCP协议的直观认识,增强学习的兴趣与效果,可搭建由物理网络设备组成的网络实验平台,但这花费成本高、运用不便。鉴于当前网络模拟技术已得到广泛研究,各种成熟的网络模拟工具层出不穷,通过现有网络模拟软件,构建虚拟的TCP协议模拟与仿真教学环境,不仅可以增强学生对TCP协议复杂机理的直观理解,提高学习的兴趣与效率,而且可以为教师提供有力的TCP协议教学辅助工具。本文基于经典NS2网络模拟软件,提出TCP协议关键实现机理(包括连接建立、确认机制以及拥塞控制等)的分析和演示教学方法。

2 网络模拟器简介

2.1 网络模拟技术介绍

在众多研究计算机网络的方法中,由于网络模拟技术具有成本低,实现简单,使用方便,并能用于研究尚未实施的网络机制等优点,因此被广泛应用于网络研究的每一个角落,各种网络模拟器也层出不穷[2]。当前网络模拟器一般都基于离散事件模拟技术实现。所谓离散事件模拟,就是模拟系统的状态变化在离散模拟时间点上发生,事件的发生使得模拟系统从一个状态跳转到另一个状态。离散事件网络模拟技术则针对数据包的每一跳转发都依靠离散事件来刻画。下面介绍当前比较经典的网络模拟器。

1)NS2[3]。NS2(Network Simulator 2)是一个单机多协议离散事件网络模拟工具,由USI/ISI、Xerox PARC、LBNL和UC Berkeley等美国大学和实验室合作,在DARPA资助的VINT工程研究中实现的模拟工具。NS2有很多特点,比如具有开放的体系结构;可扩展、易配置和可编程的事件驱动模拟引擎;带有大量协议库的支持,尤其适合于对基于TCP/IP的网络进行模拟;支持大规模多协议网络模拟;提供开放的用户接口、可视化工具:可动画显示网络模拟过程,图形显示数据结果等。NS2是一个完全免费的软件,在国际上享有很高的学术声誉,被世界各国的网络研究者广泛使用。

2)OPNET。OPNET是美国OPNET Technologies Ins公司的产品,是一个单机的、基于离散事件驱动的网络模拟器。OPNET的特点包括:支持面向对象的建模方式,并提供图形化的编辑界面;提供各种通信网络和信息系统的结构化模拟模块;具有完善的结果分析器,为网络性能的分析提供有效而直观的工具;具有支持各种业务的模型等。目前OPNET是公认的优秀通信网络、通信设施、通信协议的模拟与建模工具,在全球的通信、电讯、网络及国防科技产业上已经被普遍采用并受到好评。但是由于是收费的商业软件,限制了其在研究领域的广泛应用。

3)SSF[4]。SSF(Scalable Simulation Framework)是一组用来描述离散事件模拟的应用程序接口,它采用DML(Domain Modeling Language)语言来描述网络模拟应用。SSF具有面向对象、简洁、功能强大等特点,此外,它支持高性能并行网络模拟并且在不同的计算环境之间具有可移植性。SSF有好几个实现版本,包括SSFNet、iSSF(即DaSSF)等。SSFNet采用JAVA实现,是DARPA支持的项目S3(Scalable Self-organizing Simulations)中的一部分,主要支持IP包级别上的细粒度模拟,链路层和物理层的协议模型以独立的组件方式提供。DaSSF采用C++实现,由达特茅斯学院开发,目前被设计为能够基于MPI运行在分布式内存并行计算机上。

2.2 NS2网络模拟器

从上述分析看出,NS2是一款非常优秀的开源软件,并且提供开放的用户接口以及提供模拟过程的动画演示及模拟结果的图形显示,因此非常适合于计算机网络教学。本文基于NS2实现TCP协议教学演示。下面是基于NS2的网络模拟基本步骤分析。

1)基于Otcl脚本语言设置模拟网络的拓扑结构以及链路的基本特性。

2)基于Otcl脚本语言设置协议,包括协议绑定和建立通信业务量模型。

3)设置trace对象、NAM对象等。依靠trace以及NAM可以记录网络模拟过程中所产生的各种数据。

4)其他的辅助命令的设置,如设定模拟结束时间、各种通信业务量的起止时间等。

5)对1~4步编写的Otcl脚本用NS2解释执行,并形成trace、NAM文件记录。

6)分析trace文件,得出实验所需数据;或分析NAM文件,动画演示网络模拟运行的整个过程。

7)对配置拓扑结构和通信业务量模型进行调整,并重复进行上述模拟过程,直至模拟效果满意为止。

3 NS2在TCP协议教学中的实例

3.1 模拟应用设置

基于NS2模拟器,设置所模拟的网络拓扑如图1所示,共有6个网络节点,并将Router(0)与Router(1)之间的链路设为瓶颈链路。Host(0)与Server(0)之间进行UDP数据流的传输,这作为背景流量;Host(1)与Server(1)之间进行TCP数据流的传输,这作为TCP协议教学的示范应用。设定模拟时间为5秒,其中UDP数据流持续时间为2.5~5.0秒,TCP数据流持续时间为0.1~5.0秒。模拟应用设置的关键TCL脚本代码如图2所示。

3.2 模拟结果分析与演示

在模拟过程中开启NS2的trace记录、NAM记录以及Queue Monitoring记录,并进行相应分析与演示。

1)TCP连接建立的分析与演示。图3中显示了关键的trace记录,为了能够便于分析,做了一些精简(trace记录中每一跳数据包转发记录仅保留enque记录,删除deque记录以及接收记录)。依靠图中第1行~第7行、第9行与第11行,可以演示TCP建立连接的3次握手过程。其中第1~3行表明3次握手中的第一个报文,经过三跳数据包转发到达目的节点,4~6行表明3次握手中的第二个报文,上述2个报文不涉及数据的传递,报文字节长度为40。第7、9、11行为3次握手中的第三个报文,该报文采用捎带应答,伴随数据传送一并进行,其字节长度为1 040。

2)TCP确认机制的分析与演示。TCP的可靠传输依靠确认机制实现,以图3中第7~17行、第20行为例,可以演示TCP的确认机制。其中第7~12行,TCP的发送方连续发出2个长度为1 040字节的报文(标号分别为2与3),这两个报文分别经过三跳数据包转发到达目的节点;第13行与第14行分别表明,当目的节点分别收到标号为2与3的报文后,发出ACK报文4与5进行确认。

依靠NAM记录,生成相应的NAM动画,如图4所示,可以比较分析有确认机制的TCP协议以及无确认机制的UDP协议的区别,加深学生对确认机制的印象和理解。当NAM动画演示的模拟时间推进到2.5秒之后,同时出现UDP数据流以及TCP数据流,如图4所示,可以演示出UDP数据流仅是从Host(0)到Server(0)的单向传输;而TCP数据流不仅包括从Host(1)到Server(1)方向的数据传输,还包括从Server(1)到Host(1)方向的确认报文传输。

3)TCP拥塞控制的分析与演示。依靠Queue Monitoring对Host(1)与Router(0)间的链路进行记录并进行相应处理,获得整个模拟过程中TCP数据流的发送速率,如图5所示,依靠该图演示TCP的拥塞控制过程。在0.1秒,Host(1)开始发送TCP数据流,流量大小逐渐上升,到0.3秒流量达到最大值,这个过程可以演示为TCP协议的慢开始阶段。在0.3秒,TCP流量瞬时发送速率达3.66 Mb/s,远超过Router(0)与Router(1)之间的链路带宽2 Mb/s,因此出现网络拥塞,于是TCP协议执行拥塞避免的“乘法减小”策略,在0.35秒,TCP流量瞬时发送速率减为2.16 Mb/s,在随后的过程中,TCP流量发送速率基本维持在2.00 Mb/s。

从2.5秒开始,Host(0)开始发送UDP数据流,并与TCP数据流争用瓶颈链路带宽,这使得网络频繁出现拥塞,TCP协议执行“乘法减小”策略,拥塞窗口多次减少,导致TCP流量发送速率从2.55秒的2.00 Mb/s逐渐减为2.95秒的0 b/s,随后TCP协议继续进行慢开始过程,流量大小逐渐增大,直到再次探测到出现网络拥塞。

4 结论

本文基于网络模拟软件NS2,编写用于TCP协议教学的TCL脚本,并通过NS2的trace记录、NAM记录以及Queue Monitoring记录工具,实现对TCP协议连接建立、确认机制以及拥塞控制等机理的演示教学。通过在TCP协议教学中使用网络模拟软件NS2,能让学生更加轻松地学习网络理论知识,提升学生的钻研兴趣,并取得良好的教学效果。在以后的教学工作中,拟在计算机网络实验环节让学生自己动手编写计算机网络协议模拟代码,进一步提升学生的能动性,培养创新思维。

参考文献

[1]谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008:180-220.

[2]王晓锋.提高大规模离散事件网络模拟性能方法的研究[D].哈尔滨:哈尔滨工业大学,2007:4-10.

[3]Fall K, Varadhan K. The NS Manual[EB/OL].www.isi.edu/nsnam/ns/doc/.

[4]Cowie J H, Nicol D M, Ogielsk A T. Modeling the Global Internet[J].Computing in Science & Engineering,1999(1):42-50.

上一篇:大学生人格与其学习绩效关系研究初探 下一篇:教育装备学与教育技术学辨析