SCI论文(www.lunwensci.com):
摘要:利用OPNET网络仿真软件设计TCP拥塞控制算法教学实验,给出实验的具体设计方法、实验过程以及实验结果。通过分析实验结果,对比了几种典型TCP拥塞控制算法的性能,可以帮助学生直观理解不同拥塞控制算法的工作机制和优缺点。
关键词:TCP拥塞控制;网络仿真;OPNET;实验教学;性能分析
本文引用格式:何荣希,等.基于OPNET的TCP拥塞控制算法教学实验设计[J].教育现代化,2019,6(96):182-184.
“新工科”建设的目的是培养创新能力和实践能力强、具备国际竞争力的高素质复合型新工科人才[1],该计划的实施无疑对创新实验教学提出了更高要求。《计算机通信网》是通信工程专业一门实践性很强的专业核心课程,在“新工科”建设背景下探索该课程的创新实验教学内容,对于激发学生创新思维能力和增强学生综合素质具有重要意义。
目前,不少高校由于实验场地和经费等因素制约,往往难以及时更新大量网络设备,无法满足《计算机通信网》课程组网实验的需求[2]。OPNET采用层次化、模块化的建模机制以及面向对象的建模方式,是业界广泛使用的一款网络仿真软件[3]。利用OPNET开设通信网络实验,可以方便地对通信协议和网络应用等进行建模,直观体现通信协议的具体实现和工作过程,使学生形象化地理解抽象的网络概念,能够弥补传统实验方式在通信网络协议教学方面的不足,促进创新实验教学[2,4]。
云计算、高清视频、网络游戏等业务的出现,导致网络负载日趋严重,网络拥塞时有发生,大大降低了用户的体验质量。拥塞控制就是通过一系列策略来避免过多数据注入网络,从而防止网络出现拥塞,使网络具有较高的吞吐量和较低的时延。一旦网络发生拥塞,有效的拥塞控制机制还可以使网络从过载状态较快地恢复到正常状态[5]。典型的TCP拥塞控制算法包括Tahoe、Reno、NewReno、SACK等[6],文献[7-9]分析了上述一种或几种拥塞控制算法的性能,但少有文献从实验教学角度来综合探讨不同的拥塞控制机制。为此,本文结合创新实验教学的需要,利用OPNET设计TCP拥塞控制算法分析实验,给出实验目的、实验主要过程以及实验结果,通过分析实验数据,使学生熟悉OPNET仿真平台,同时更直观地理解不同拥塞控制算法的工作机制和性能差异。
一TCP拥塞控制算法分析
TCP拥塞控制包括慢开始、拥塞避免、快重传和快恢复等机制[5,6]。慢开始是指开始时将拥塞窗口数设为1个MSS(最大报文段),发送方每收到一个对新报文段的确认,拥塞窗口数增加1个MSS,直到慢开始门限值。当拥塞窗口数为慢开始门限值时,就进入拥塞避免阶段。此时每经过一个往返时间,发送方拥塞窗口数就增加1个MSS,使拥塞窗口数线性增长。快重传是指发送方连续收到三个重复确认,则不用等待未发送成功报文段的重传计时器超时,就立即重传接收方未收到报文段。快恢复与快重传配合使用,当发送方连续收到三个重复确认,则减半慢开始门限值,同时执行拥塞避免算法,使拥塞窗口数线性增加。
Tahoe、Reno、NewReno和SACK等算法是一个逐渐发展的过程,后续版本弥补了前面版本的不足[6]。Tahoe算法包括慢开始、拥塞避免和快重传三个阶段。初始时为慢开始阶段,当拥塞窗口数达到慢开始门限时,则进入拥塞避免阶段。当收到连续的三个重复确认时,将拥塞窗口数设为1个MSS,然后将慢开始门限值减为拥塞发生时窗口数的一半,并执行慢开始阶段。该机制可以有效避免拥塞,却会导致性能急剧下降。作为Tahoe算法的改进,Reno算法引入快恢复,当发生一次快重传时,其拥塞窗口数不是减为1,而是设为丢失数据包前窗口数的一半,可以改善Tahoe算法的性能。但是,当存在多个报文段丢失时,Reno算法无法区分多次拥塞和一次丢失多个报文段的情况。NewReno和SACK都是Reno的改进,NewReno在快恢复阶段增加了快速应答判断功能,而SACK则引入选择确认策略,有选择地确认和重传报文段。
二实验设计
(一)实验目的
利用OPNET创建Tahoe、Reno、NewReno和SACK等拥塞算法仿真场景,演示不同拥塞控制算法的功能,通过对实验数据的分析,来比较不同算法的性能,使学生熟悉OPNET仿真平台,同时直观地理解不同拥塞控制算法的工作机制和性能差异。
(二)实验过程
(1)网络模型及网络配置
实验将模拟位于大连子网的客户端(Client)与三亚子网的服务器(Server)之间应用TCP协议传输文件的情况。新建一个工程和场景,从对象面板中选择PacketDiscarder、ethernet_server、ethernet_wkstn、ethernet4_slip8_gtwy、ApplicationConfig、ProfileConfig、PPP_DS1_int、100BaseT等节点和链路模型创建网络拓扑,两个子网用PPP_DS1_int双向数据链路连接,子网内路由器与Client、路由器与Server分别用100BaseT连接,实验网络模型如图1所示。通过ApplicationConfig节点模型配置Ftp文件大小,通过ProfileConfig节点模型配置文件传输的开始时间、持续时间等其他参数,如表1所示。Server配置Application属性下的SupportedServices参数,Client配置Application属性下的SupportedProfiles和DestinationPreferences参数。将 Server 和 Client的TCPConnection属性提升。为了在相同丢包情况下比较Tahoe、Reno、NewReno和SACK的性能,PacketDiscarder设置相同的丢包时间和丢包数,分别在120s~120.5s、130s~130.5s丢失1个包和3个包。
(2)选择统计量
打开ChooseIndividualDESStatistics,分别选择CongestionWindowSize(bytes)、SentSegmentSequencenumber以及DownloadResponseTime(sec)三个统计量。
(3)仿真配置
设置仿真时间为10min,将Server的TCPParameters属性值设置为Tahoe、Reno、NewReno及SACK,将它们的ReceiveBuffer(bytes)设置为65535,如图2所示。设置完成后,点击Run运行。仿真结束后,选择ViewResults,对结果进行观察和分析。
(三)实验结果
本节将从拥塞窗口大小、发送报文段序列号以及Ftp的下载响应时间三个方面对比四种拥塞控制算法的性能,仿真结果如图3-4和表2所示。
图3对比了四种算法拥塞窗口大小(以MSS=1460bytes为单位)的变化情况,拥塞窗口初始值为1MSS。120s以前无丢包,四种算法的拥塞窗口大小变化情况相同,都从1开始增长,达到慢开始门限值(65535bytes,即45MSS)时,开始执行拥塞避免算法,按照线性增长。120s开始出现丢包,不同算法的处理方式各异。Tahoe算法在120s和130s有数据包丢失时,将拥塞窗口数降为1,然后进入慢启动,将慢开始门限设置为发生拥塞时窗口数的一半,然后执行拥塞避免算法线性增长。Reno算法在Tahoe基础上引入快速恢复机制,发送方收到三个重复确认,就将慢开始门限减半,并执行拥塞避免算法。120s发生1次丢包时,Reno的拥塞窗口数减为发生丢包时拥塞窗口数的一半,并执行拥塞避免算法。从图中可以看出:在120s~130s之间的相同时刻,Reno的拥塞窗口数比Tahoe多1个MSS,因此其吞吐量比Tahoe高。在130s丢失3个包时,Reno多次使拥塞窗口和慢开始门限减半,导致超时重传,在132s将拥塞窗口重设为1MSS,并开始执行慢开始和拥塞避免。NewReno在Reno的基础上增加了快速应答判断功能,当仅一个数据包丢失时,其机制和Reno一样。当发生多个丢包时,其性能优于Reno算法。图中,120s丢1个包时,NewReno和Reno拥塞窗口变化相同。130s发生多个丢包时,Reno认为发生多次拥塞,进而多次执行快速恢复,而NewReno可以区分发生多次拥塞与一次拥塞丢失多个报文段的情况,仅进行一次快速恢复,即将拥塞窗口数降为丢包时窗口数的一半。SACK在Reno基础上增加了选择性重传策略,可以减少不必要的重传,有助于提高吞吐量。从图3还可以看出,传输相同大小的文件时,SACK的文件传输结束时间最早,NewReno次之,随后是Tahoe和Reno。
图4对比了四种算法的发送报文段序列号(以106为单位)增长情况。发送报文段序列号增长越快,表明相同时间内可传输报文段越多。从图中可以看出,四种算法发送相同数量报文段所需时间满足Reno>Tahoe>NewReno>SACK。这是因为:Tahoe发生丢包时拥塞窗口数降为1,然后进入慢启动阶段,导致其发送报文段序列号增长较慢,因此文件传完所需时间较长。Reno算法引入快速恢复,丢包时拥塞窗口数不再减为1。但是当发生丢多个包时,将多次使拥塞窗口和慢开始门限减半,使吞吐量急剧下降,因此,其发送报文段序列号增长速度最慢,传完文件所需时间最长。NewReno避免了Reno快速恢复阶段的多次重传超时,发送报文速度比Reno快。SACK在Reno基础上增加了选择性确认与重传,可以较少不必要的重传,因此,其发送报文段序列号增长速度最快。
表2对比了四种算法的FTP下载响应时间。下载响应时间是指FTP应用中Client向Server发送请求到接收到Server的响应数据包所经历的时间。可以看出:四种算法的下载响应时间满足Reno>Tahoe>NewReno>SACK。
(四)实验扩展
(1)仿真结果表明SACK的FTP下载响应时间最短,而Reno最长,分析其原因。
(2)仿真中发现拥塞窗口出现下降时,发送报文段序列号保持不变,分析其原因。
三结论
在《计算机通信网》课程实验教学中引入OPNET网络仿真软件,可以对通信协议进行仿真和实时分析,得到准确可信的结果。本文利用OPNET设计TCP拥塞控制算法性能分析实验,给出实验目的、实验内容和实验结果。通过可视化的结果可以量化地显示算法的差异,帮助学生更好掌握TCP拥塞控制算法的工作机制,直观理解不同算法的优缺点,培养学生实践创新能力,增强实验教学效果。
参考文献
[1]薛明,刘晓明,李阳.新工科体系下对实践教学改革与实践[J].教育现代化,2018,5(52):67-69.
[2]刘婷,何荣希.基于OPNET的ARQ协议教学实验设计[J].计算机教育,2015,13(20):115-118.
[3]SethiAS,HnatyshinVY.计算机网络仿真OPNET实用指南[M].王玲芳,母景琴译.北京:机械工业出版社,2014.
[4]颜庆茁,叶添福.基于OPNET的计算机网络仿真实验教学研究[J].集美大学学报,2014,15(3):111-114.
[5]谢希仁.计算机网络(第6版)[M].北京:电子工业出版社,2013.
[6]豆丁.TCP拥塞控制:Tahoe、Reno、NewReno与SACK算法概述与比较[EB/OL].[2019-08-10].http://www.docin.com/p-812428366.html.
[7]娄久,李秀坤.NS2平台的TCP/IP网络拥塞控制算法仿真[J].实验室研究与探索,2015,34(2):81-83+87.
[8]黄远江,李世银,郭晶等.基于OPNET的TCP拥塞控制仿真[J].电脑知识与技术,2008,4(35):2093-2094.
[9]周杰.TCP协议两种典型拥塞控制算法的比较与仿真[J].齐齐哈尔大学学报(自然科学版),2016,32(1):26-29.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网! 文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jiaoyulunwen/30859.html