TCP拥塞控制仿真软件的设计及其在教学中的应用探索

2020-03-08 01:52李磊
河南教育·高教 2020年12期
关键词:仿真软件计算机网络教学实践

摘 要:本研究针对计算机网络课程知识面宽、抽象性强以及算法和协议学习困难等问题,提出了自主设计专用仿真软件辅助教学的方法。通过对TCP拥塞控制算法原理的分析,设计实现了一款TCP拥塞控制仿真软件,并将其应用在计算机网络课程教学实践中。调查问卷和测验成绩均表明,与传统教学方式相比,采用TCP拥塞控制仿真软件教学可以顯著改善教学效果。

关键词:计算机网络;TCP拥塞控制;仿真软件;教学实践

我们所处的时代是以网络为核心的信息时代,数字化、网络化和信息化是这个时代最大的特征。今天的互联网无疑是有史以来由人类创造、精心设计的最大系统,数以亿计的计算机、通信链路和交换机在这个系统中相交相连。

计算机网络课程是大学本科计算机类专业的核心课程。该课程以计算机网络体系结构为总纲,系统、分层次地讲述计算机网络的基本概念和网络协议,重点讲解互联网的TCP/IP协议族及其工作原理。计算机网络课程知识面宽、理论性强,涉及许多错综复杂、彼此交织的概念、协议和技术。作为计算机网络课程的教师,如何让学生深刻、系统地理解相关知识,是一个需要深入探讨的课题。

TCP协议作为TCP/IP协议族中最重要的协议之一,是计算机网络课程的重点知识。TCP拥塞控制算法原理是TCP协议工作原理中最抽象的部分。在真实的网络环境中,不能直接观察到TCP拥塞控制算法的工作过程,而且学生在学习过程中,缺乏必要的感性认识,从而增加了学习难度。仿真软件具有灵活、直观等特点,在教学过程中采用仿真软件,配合课堂知识讲授,可以改善学生的学习状况,提高教学效率。

在计算机网络课程教学中,仿真软件的使用得到了广大教师的重视。李向丽等教师探讨了网络仿真软件NS的工作原理,并将其应用于IP协议的教学实践中。此后,李向丽又将网络仿真软件NS2应用于计算机网络课程的实践教学改革中。赵欣探索了基于网络模拟软件Packet Tracer的计算机网络课程的教学改革实践方案。这些教学探索采用的网络仿真或网络模拟软件,都有其特定的应用领域,并非专为计算机网络课程教学而设计。网络仿真软件NS可以进行网络拓扑仿真、协议仿真和通信量仿真等,在网络协议设计等领域有广泛应用。网络模拟软件Packet Trace是由思科系统公司发布的工具软件,为学习思科网络设备的操作提供专用的网络模拟环境。本研究设计实现了一款TCP拥塞控制仿真软件,并将其应用在课堂教学实践中,辅助学生学习计算机网络相关理论知识。

一、TCP拥塞控制算法原理

TCP拥塞控制算法通过维护一个拥塞窗口来进行拥塞控制。其基本原则是:只要网络中没有出现拥塞,就将拥塞窗口值增大,以便发送更多的数据;一旦网络出现拥塞,就将拥塞窗口值减小,以减少发送到网络中的数据。

RFC5681中规定了TCP拥塞控制的四个算法:慢开始、拥塞避免、快重传和快恢复。慢开始算法和拥塞避免算法是TCP的强制实现部分。快重传算法和快恢复算法是TCP的建议实现部分。

RFC5681要求TCP维持拥塞窗口值和慢开始门限值两个参数。根据发送方的最大报文段长度(SMSS,Sender Maximum Segment Size)的值,RFC5681规定初始拥塞窗口值为2~4个SMSS的长度。

(一)慢开始算法

在慢开始阶段,TCP进程每收到一个ACK报文段,就将拥塞窗口值增大至多一个SMSS值。即:拥塞窗口值+=min(N,SMSS),其中的N指刚收到的ACK报文段所确认的字节数。当拥塞窗口值大于或等于慢开始门限时,TCP就退出慢开始算法,执行拥塞避免算法。

(二)拥塞避免算法

在拥塞避免阶段,每经过一个往返传播时延(RTT,round-trip time),TCP拥塞窗口值增大约一个SMSS值。关于拥塞窗口值的计算方法,RFC5681建议每收到一个新的ACK报文段时,计算拥塞窗口值+=SMSS×(SMSS/cwnd)。当TCP观察到网络拥塞时,就会退出拥塞避免算法。

TCP可以通过多种方式观察网络拥塞。当TCP发送方因超时重传事件检测到报文段丢失时,TCP便认为网络拥塞产生。慢开始门限值必须被设置为当前拥塞窗口值的一半,并且不小于2个SMSS值,即:慢开始门限值=max(当前拥塞窗口值/2,2×SMSS)。设置慢开始门限值后,TCP将拥塞窗口值设置为1个SMSS值,并重新开始执行慢开始算法。

(三)快重传算法

RFC5681建议TCP接收方收到一个乱序的报文段时,立即发送一个重复的ACK报文段进行确认,以快速通知TCP发送方自己收到了乱序的报文段,提示TCP发送方网络出现了某些问题。

(四)快恢复算法

由于采用了快重传算法,TCP发送方可能会收到多个重复的ACK报文段。RFC5681建议收到3个重复的ACK时,TCP发送方就判定丢包事件产生,并执行快恢复算法,不必再等待超时重传事件。

快恢复算法执行时,设置慢开始门限=max(当前拥塞窗口值/2,2×SMSS),然后设置拥塞窗口值=慢开始门限+3×SMSS。快恢复算法执行后,TCP重新开始执行拥塞避免算法。

二、TCP拥塞控制仿真软件设计和实现

TCP拥塞控制仿真软件用Python语言,采用多线程的方法设计并实现。多个线程分别用来仿真TCP拥塞控制算法、模拟网络运行状态以及实现用户交互和数据展示。

(一)主线程

主线程负责启动TCP仿真线程和网络模拟线程。此外,主线程基于Python Tkinter库实现图形用户界面,实现与用户的交互。图形用户界面中包括五个按钮,用户可以利用这些按钮手动开始或结束仿真、暂停或继续仿真、产生超时重传事件、产生3个重复ACK事件以及查阅软件使用说明。主线程还利用Python Matplotlib库,以折线图的形式绘制历史拥塞窗口值,并实时刷新图表。

(二)TCP仿真线程

TCP仿真线程由主线程启动后,模拟TCP的发送方和接收方进行数据的发送和接收。假设TCP发送方接收窗口足够大,根据当前拥塞窗口值设定发送窗口值,发送数据,并以报文段为单位,将發送的数据以动画的形式在图形用户界面上展示,方便用户观察当前拥塞窗口值。

TCP仿真线程还接收网络拥塞事件,包括超时重传事件和3个重复ACK事件。当接收到网络拥塞事件后,TCP仿真线程暂停数据的发送和接收,根据当前的拥塞窗口值和事件种类选择计算方法,计算慢开始门限值和新的拥塞窗口值,并将计算过程和计算结果通过弹窗显示,方便用户学习和计算。待用户确认后,TCP仿真程序继续运行,进行下一轮仿真。

TCP仿真线程根据拥塞控制算法,执行慢开始算法或拥塞避免算法,接收并响应拥塞事件,实时计算拥塞窗口值,并将拥塞窗口值发送给主线程,以实现主线程中拥塞窗口折线图的实时更新。

(三)网络模拟线程

网络模拟线程由主线程启动后,根据初始参数、当前拥塞窗口值、仿真程序时间以及随机数,模拟计算网络的拥塞程度,并以绿色、黄色和红色三种颜色在图形用户界面上展示当前网络的拥塞程度。其中,绿色代表网络通畅、黄色代表网络轻度拥塞、红色代表网络重度拥塞。当网络轻度拥塞时,网络模拟线程以随机概率产生3个重复ACK事件;当网络重度拥塞时,网络模拟线程以随机概率产生丢包事件。待TCP仿真线程处理拥塞事件后,网络模拟线程将网络恢复至通畅状态,然后根据新的参数,继续模拟计算机网络的拥塞程度。

三、TCP拥塞控制仿真软件在教学中的应用和效果

在教学中采用TCP拥塞控制仿真软件,具有以下优点:

直观展示数据发送过程。能够直观地展示TCP拥塞控制算法对拥塞窗口的控制,以及依据拥塞窗口值控制数据发送的过程。

仿真验证拥塞控制算法。能够仿真并验证慢开始、拥塞避免、快重传和快恢复算法,满足课堂教学验证TCP拥塞控制算法的需求。

动态模拟网络运行状态。能够动态模拟计算机网络的运行状态,利用随机事件控制计算机网络的拥塞状态,并能模拟网络丢包等事件。

实时计算并显示拥塞窗口变化。在捕获到超时重传事件和收到3个重复ACK事件时,实时计算慢开始门限值和拥塞窗口值,并以图形方式直观展示拥塞窗口值的变化趋势。

为了更好地了解TCP拥塞控制仿真软件在教学中的应用效果,本研究在部分班级采用了TCP拥塞控制仿真软件进行教学,其他班级仍然采用传统方式教学,然后设计了调查问卷,进行了课堂测验,并对问卷结果和测验成绩进行了分析。

TCP拥塞控制算法掌握程度调查对比如表1所示,课堂测验成绩对比如表2所示:

从统计结果可以看出,采用TCP拥塞控制仿真软件教学后,学生对算法的掌握程度和课堂测验成绩,均有较大程度提高。

在计算机网络课程中采用专门设计的仿真软件辅助教学是非常有必要的。采用仿真软件教学,学生可以直接观察网络协议或算法的工作过程,验证理论知识,弥补计算机网络课程学习过程抽象、枯燥的缺点。调查问卷和测验成绩均表明,采用仿真软件教学可以提高学生学习积极性,改善学习效果。后续将考虑在计算机网络课程的其他关键知识点,设计仿真软件,并应用在教学实践中。

参考文献:

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

[2]James F.Kurose,Keith W. Ross.计算机网络——自顶向下方法[M].陈鸣,译.北京:机械工业出版社,2018.

[3]李向丽,李磊,陈静.网络实验仿真与网络技术实践[J].计算机技术与发展,2006,(3).

[4]李向丽.应用人才培养模式的计算机网络课程教改研究[J].计算机技术与发展,2014,(8).

[5]赵欣.基于Packet Tracer的计算机网络实验教学改革与探索[J].大连大学学报,2019,(6).

责编:桃 子

猜你喜欢
仿真软件计算机网络教学实践
计算机网络环境下混合式教学模式实践与探索
计算机网络信息安全及防护策略
浅谈机器人离线编程软件在机器人教学中的应用
仿真软件在航空典型结构件上的应用
电子类仿真软件应用的教学之道
中职计算机应用课程教学改革与反思
浅论高中化学生活化教学的实践与思考
浅谈初中物理实验教学与学生创新能力的培养
测量平差课程教学改革探讨与实践
计算机网络技术的应用探讨