基于OPNET的TCP拥塞控制仿真Word格式文档下载.docx
- 文档编号:21763059
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:202.65KB
基于OPNET的TCP拥塞控制仿真Word格式文档下载.docx
《基于OPNET的TCP拥塞控制仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于OPNET的TCP拥塞控制仿真Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
3.2.2离散事件仿真机制(5)
3.2.3仿真调度机制(6)
3.3OPNET仿真流程图(6)
4仿真实验(7)
4.1慢启动与拥塞避免算法仿真(7)
4.1.1实验步骤(7)
4.1.2实验数据(8)
4.1.3数据分析(9)
4.2同时使用慢启动,拥塞避免和快速重传算法仿真(9)
4.2.1实验步骤(9)
4.2.2实验数据(10)
4.2.3数据分析(10)
4.3同时使用慢启动,拥塞避免,快速重传和恢复算法仿真(10)
4.3.1实验步骤(10)
4.3.2实验数据(11)
4.3.3数据分析(11)
4.4比较慢启动,拥塞避免,快速重传和恢复算法仿真(12)
4.5实验总结(12)
5结束语(13)
参考文献(13)
Abstract(14)
作者:
苏亚军
指导教师:
蒋华龙
摘要:
本文分析了TCP拥塞控制的概念、含义及原理算法;
搭建网络性能分析平台,进行网络仿真优化,利用网络仿真软件OPNET进行仿真实验,分析TCP拥塞控制协议中的四种不同算法,仿真TCP协议中用于拥塞控制的四种算法——慢开始,拥塞避免,快速重传和快速恢复,比较快速重传和快速恢复(改进后的TCP)对于慢开始和拥塞避免(传统的TCP)的改进效果。
关键词:
TCP;
拥塞控制;
网络仿真;
OPNET
Internet中拥塞控制的大部分工作是由TCP完成的,目前标准TCP协议的实现都包含了一些避免和控制网络拥塞的算法[1]。
当今Internet的可靠性和稳定性与TCP拥塞控制机制密不可分,而TCP的成功也要归功于其稳固的拥塞控制机制。
随着应用要求的日益丰富和技术的不断发展,要想完全依赖实现在终端系统上的策略和算法很难满足服务质量(QOS)这样复杂的要求,为了解决相应的问题,相关网络技术逐渐转向网络的中间节点即路由器上,通过增强它们的功能来实现端到端无法达到的技术,从而达到有效的拥塞控制,保持网络的良好性能。
1TCP拥塞控制的意义
1.1网络拥塞
拥塞控制现在是Internet研究的热点,在最初的TCP协议中只有流量控制(flowcontrol)而没有拥塞控制,接收端利用TCP报头将接收能力通知发送端.这样的控制机制只考虑了接收端的接收能力,而没有考虑网络的传输能力,导致了网络崩溃(congestioncollapse)的发生。
在计算机网络中的链路容量,交换节点中的缓冲区和处理机等,都是网络的资源。
在某段时间,若对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能[2]就要变坏。
这种情况就叫做拥塞(congestion)。
若网络中有许多资源同时产生拥塞。
网络的性能就要明显变差,整个网络的吞吐量就将随输入的负荷的增大而下降。
网络中的拥塞来源于网络资源和网络流量分布的不均衡性.拥塞不会随着网络处理能力的提高而消除.拥塞控制算法的分布性、网络的复杂性和对拥塞控制算法的性能要求又使拥塞控制算法的设计具有很高的难度.到目前为止,拥塞问题还没有得到很好的解决。
因此对拥塞控制的讨论是一个很重要的问题。
1.2QOS需求
随着高速网络技术和多媒体技术[3]的飞速发展,人们越来越多地提出了包括多媒体通信在内的综合服务要求,传统的分组交换网络,如Internet,是面向非实时的数据通信(如FTP和E-mail的传输)而设计的,采用TCP/IP协议主要是为了优化整个网络的数据吞吐量并保证数据通信的可靠性。
而当今分布式多媒体应用(如视频会议、视频点播、IP可视电话、远程教育)不仅包括语音、图像、图形、视频、动画这些类型的多媒体信息。
分布式多媒体应用不但对网络有很高的带宽要求,而且要求信息传输的低延迟和低抖动等,同时,这些应用大都能够容忍一定程度的信息丢失和错误。
由此可见,当今高速网络中的多媒体应用对网络提出了不同于数据应用的服务质量要求,需要提供端到端的QOS控制和保证。
正因为如此,对于端到端的流量控制和拥塞控制性能的研究是非常重要的。
1.3网络拥塞控制
在计算机网络系统中,流量控制和拥塞控制保证网络数据通信畅通必不可少的控制手段,众所周知,要进行网络拥塞控制,一般有两种方法,一种是在网络中进行拥塞控制,一种是在端到端中进行拥塞控制,而我们研究的对象——TCP拥塞控制是一种端到端的控制行为。
在Internet设计的初期,对于拥塞的控制是通过传输控制协议(TransmissionControlProtocol,TCP)中的端到端基于滑动窗口的流量控制完成的。
1988年,VanJacobson在他的论文中指出了TCP在控制网络拥塞方面的不足,并提出了“慢启动”(SlowStart)和“拥塞避免”(CongestionAvoidance)算法,后来,它们被所有的Internet主机支持,在很长的一段时间内,接收端驱动的TCP流量控制是唯一可行的拥塞控制方法,实际上,前者只是实现后者的一种技术途径而已。
2TCP拥塞控制
在TCP协议[4][5][6]中,基本的TCP拥塞控制过程是在发送数据前期,滑动窗口先进入慢启动阶段,在拥塞窗口大于慢启动门限值时,进入拥塞避免阶段,如果检测到了有分组的丢失,将根据版本的不同,进入快速重发阶段(FR),或者进入快速恢复阶段(FR/FR)本节先介绍这四个基本过程。
2.1TCP滑动窗口机制
与大多数提供流量控制的协议一样,TCP也是使用滑动窗口机制的,但是与其他协议,如LLC、HDLC和X.25等稍有不同,它将数据的确认过程与发送数据的通告分开处理,被传输的每个字节都被赋予一个序号,当发送端传输报文段时,为数据字段的每一个字节编排序列号,用(A=i;
W=j)的报文形式确认数据的传输,具体含义如下:
(1)序列号为i-1以及以下各字节已得到确认;
下一个期望收到的字节的序列号是i。
(2)同意对方再发送一个窗口W共j个字节的数据。
这j个字节的序列号为i到i+j-1。
TCP中发送端的发送速率是受目的主机或网络中较慢的一个制约的。
接受方需要采用某种策略来决定同意发送方传送多少数据。
保守的办法是仅同意对方传送缓存空间可以容纳的报文段。
在时延带宽的乘积较大的情况下,接受方通过预支缓存空间可以提高吞吐量。
本文中几个用到的名词解释:
(1)RWND(接收端窗口);
(2)CWND(拥塞窗口)发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制;
(3)发送窗口的上限值=min[rwnd,cwnd];
(4)RTT一个数据包的往返时延;
(5)RTO(超时重传计数器):
描述数据包从发送到失效的时间间隔,是判断数据包丢失与否及网络是否拥塞的重要参数。
通常设为2RTT或5RTT。
(6)快速重传阈值(tcprexmtthresh):
能触发快速重传的源端收到重复确认包ACK的个数。
当此个数超过tcprexmtthresh时,网络就进入快速重传阶段。
tcprexmtthresh缺省值为3。
2.2慢启动(SlowStart)
旧的TCP在启动一个连接时会向网络发送许多数据包,由于一些路由器必须对数据包进行排队,因此有可能耗尽存储空间,从而导致TCP连接的吞吐量(throughput)急剧下降。
避免这种情况发生的算法就是慢启动。
当建立新的TCP连接时,拥塞窗口被初始化为一个数据包大小(一个数据包缺省值为536或512byte)。
发送端端按cwnd大小发送数据,每收到一个ACK确认,cwnd就增加一个数据包发送量。
显然,cwnd的增长将随RTT呈指数级(exponential)增长:
1个、2个、4个、8个……。
发送端向网络中发送的数据量将急剧增加。
2.3拥塞避免(congestionavoidance)
当发现超时或收到3个相同ACK确认帧时,网络即发生拥塞(这一假定是基于由传输引起的数据包损坏和丢失的概率小于1%)。
此时就进入拥塞避免阶段。
慢启动阈值被设置为当前cwnd的一半;
超时时,cwnd被置为1。
如果cwnd>
ssthresh,则TCP则停止使用slowstart算法改为执行拥塞避免算法:
使发送端的拥塞窗口cwnd每经过一个往返时延RTT就增加一个MSS的大小,而不管在时间RTT内收到几个ACK,这样,拥塞窗口AWND按线性规律缓慢增长,比慢开始算法的拥塞控制窗口增长速率缓慢的多。
无论慢启动阶段还是拥塞控制阶段,只要发送端发现拥塞,根据是没有按时接收到ACK或收到重复ACK就要将慢启动的门限ssthresh设置为出现拥塞时的发送窗口的一半,然后将拥塞窗口值cwnd重新设置为一,并执行慢启动算法。
2.4快速重传与恢复(FastRetransmissionandRecover)
当数据包超时,cwnd被设置为1,重新进入慢启动,这会导致过大地减小发送窗口尺寸,降低TCP连接的吞吐量。
因此快速重传和恢复就是在发送端收到3个或3个以上重复ACK时,就断定数据包已经被丢失,并重传数据包,同时将ssthresh设置为当前cwnd的一半,而不必等到RTO超时。
快速恢复算法与之前的算法不同之处在于:
(1)与慢启动不同之处是拥塞窗口cwnd不设为1,而是设置为ssthresh+3;
(2)若收到的重复ACK为n(n>
3)则将cwnd设置为sstrsh+n;
(3)若发送窗口值还同意发送报文段,就将按拥塞避免的算法继续发送报文端;
(4)若收到了确认新的报文段的ACK,就将cwnd缩小到ssthresh。
3网络仿真软件OPNET
3.1OPNET仿真软件概述
OPNET公司是全球领先的决策支持工具提供商,总部在美国华盛顿特区,主要面向网络领域的专业人士,为网络专业人士提供基于软件方面的预测解决方案。
OPNET公司最早是由麻省理工学院(MIT)信息决策实验室受美国军方委托而成立的。
1987年OPNET公司发布了第1个商业化的网络仿真软件[7][8],提供了具有重要意义的网络性能优化工具,使得具有预测性的网络性能管理和仿真成为可能。
1987年以来,OPNET迅速而稳步地发展,作为高科技网络规划、仿真及分析工具,OPNET在通信、国防及计算机网络领域已经被广泛认可和采用。
成千上万的组织使用OPNET软件来优化网络性能、最大限度地提高通信网络和应用的可用性。
至今OPNET已经升级到了11.5以上版本。
它的产品线除了Modeler外,还包括ITGuru、SPGuru、OPNETDevelopmentKit和WDMGuru等。
3.2OPNET仿真技术
3.2.1三层建模机制
网络是复杂的系统,OPNETModeler建模采用层次化和模块化的方式,将复杂的体系分解为不同的层次结构,每层完成一定的功能,一层内又由多个模块组成,每个模块完成更小的任务。
网络域、节点域、进程域是构建OPNETModel模型的三个层次。
节点域建模的方法是基于节点模块,每个节点模块实现节点行为的某一方面,诸如数据生成、数据存储、数据的处理或选路和数据的传输等。
多个节点模块的集合构成功能完整的节点。
模块间用包流线或统计线相连,其中包流线承载了模块间数据包的传输,统计线可实现对模块待定参数变化的监视,通过modules,paeketstreams和statisticwires的联合使用,用户可对节点的行为进行仿真。
节点模块根据功能可以划分为处理器类、数据流线类和收/发机类三种。
处理器类功能的实现是在进程域中通过Pro-C编程完成的。
数据流类和收/发机类是通过管道阶段模型实现的。
3.2.2离散事件仿真机制
OPNET采用基于离散事件驱动的仿真机制。
事件是指网络状态的变化。
当网络状态发生变化时,模拟机进行仿真,状态不发生变化的时间段,不进行仿真,即被跳过,因而仿真时间是离散的。
每个仿真时间点上可以同时出现多个事件,事件的发生可以有疏密的区别。
仿真中的各个模块之间通过事件中断方式传递事件信息。
每当出现一个事件中断时都会触发一个描述网络系统行为或者系统处理的进程模型的运行,通过离散事件驱动的仿真机制实现了在进程级描述通信的并发性和顺序性,再加上事件发生时刻的任意性,决定了可以仿真计算机和通信网络中的任何情况下的网络状态和行为。
3.2.3仿真调度机制
在OPNET中使用基于事件列表的调度机制,合理安排调度事件,以便执行合理的进程来仿真网络系统的行为。
调度的完成通过仿真软件的仿真核和仿真工具模块以及模型模块来实现,事件列表的调度机制具体描述如下:
(1)每个OPNET仿真都维持一个单独的全局时间表,其中的每个项目和执行都受到全局仿真时钟的控制,仿真中以时间顺序调度事件列表中的事件,需要先执行的事件位于表的头部。
当一个事件执行后将从事件列表中删除该事件。
(2)仿真核作为仿真的核心管理机构,采用高效的办法管理维护事件列表,按顺序通过中断将在队列头的事件交给指定模块,同时接收各个模块送来的中断,并把相应事件插入事件列表中间。
仿真控制权伴随中断不断地在仿真核与模块之间转移。
(3)当事件同时发生时,仿真核按照下面两种办法来安排事件在事件列表中的位置:
1)按照事件到达仿真核的时间先后顺序,先到达先处理(firstcomefirstserve)。
2)按照事件的重要程度,为事件设置不同的优先权,优先权高的先处理。
3.3OPNET仿真流程图
OPNET仿真流程见图1:
图1OPNET仿真流程
4仿真实验
4.1慢启动与拥塞避免算法仿真
4.1.1实验步骤
(1)启动OPNET建立新的工程和场景并分别进行配置:
新建名为CHAI_TCP的工程和名为NoDrop的场景,并均在InitialTopology中选择CreateEmptyScenario,在ChooseNetworkScale中选择ChooseFromMaps,在ChooseMap中选择europa,然后一直Next到成功建立scenario。
并建立巴黎子网和斯德哥尔摩子网分别进行配置。
(2)创建IP云并配置:
图2IP云的创建与配置
(3)总拓扑图:
图3总拓扑图
(4)仿真:
配置好后,点击Run,运行成功:
图4运行状态
4.1.2实验数据
查看实验数据。
CongestionWindowSize:
图5结果观察
4.1.3数据分析
由实验数据可知,TCP协议在执行慢启动和拥塞避免算法时,其窗口大小初值很小,但呈指数增长,但当超过所设定的最大窗口门限值(ssthresh)时,其窗口大小增长将呈现线性增长,即执行拥塞避免算法。
在本次实验数据中,在大约1m54s左右窗口值从将近1460bytes达到将近65535bytes呈指数型增长,即慢启动。
当达到门限值大约65535bytes之后,开始“加法增大”,即拥塞避免算法。
4.2同时使用慢启动,拥塞避免和快速重传算法仿真
4.2.1实验步骤
(1)复制4.1中场景:
在Scenario菜单中选择DuplicateScenario并命名新场景为Tahoe,即出现与刚才网络模型一模一样的场景。
并变更IPCloud的设置和变更Paris子网的设置。
(2)仿真:
如4.1:
图6运行状态
4.2.2实验数据
图7结果观察
4.2.3数据分析
由实验数据可知,与4.1类似,TCP协议在执行慢启动和拥塞避免算法时,其窗口大小初值很小,但呈指数增长,但当超过所设定的最大窗口门限值(ssthresh)时,其窗口大小增长将呈现线性增长。
在窗口大小到达大约72725bytes后,应该是收到3个连续ACK,根据3个重复的应答报文判断丢包,并立即重传丢失的分组,此时置ssthresh为当前拥塞窗口72725bytes的一半,这就是快重传(Tahoe),然后再转入慢启动。
4.3同时使用慢启动,拥塞避免,快速重传和快速恢复算法仿真
4.3.1实验步骤
(1)复制4.2中场景:
在Scenario菜单中选择DuplicateScenario并命名新场景为Reno,即出现与刚才网络模型一模一样的场景,变更Paris子网的设置。
如4.2:
图8运行状态
4.3.2实验数据
图9结果观察
4.3.3数据分析
由实验数据可知,与4.2类似,TCP协议在执行慢启动和拥塞避免算法时,其窗口大小初值很小,但呈指数增长,但当超过所设定的最大窗口门限值(ssthresh)时,其窗口大小增长将呈现线性增长。
在窗口大小到达大约72638bytes后,应该是收到3个连续ACK,若根据3个重复的应答报文判断丢包,并立即重传丢失的分组,时ssthresh设置为当前拥塞窗口的一半。
重传丢失的数据包,并置cwnd=cwnd+ndup(ndup为收到的重复ACK数),进入拥塞避免阶段。
若收到非重复的ACK时,cwnd=ssthresh。
进入拥塞避免阶段。
这就是快速重传/快速恢复(Reno)。
4.4比较慢启动,拥塞避免,快速重传和恢复算法仿真
选择Results菜单中的CompareResults。
如下图,蓝线为NoDrop,红线为Tahoe,绿线为Reno:
图10算法比较分析
可以看出绿线Reno,数据传输最为稳定。
4.5实验总结
分析以上实验结果,得出以下结论:
从实验数据可看出当新建TCP连接时,按cwnd大小发送数据,每收到一个ACK确认,就增加一个数据包发送量,这样慢启动阶段cwnd随时间呈指数级增长。
慢启动采用逐渐增大cwnd的方法。
为了防止cwnd的无限制增长引起网络拥塞,cwnd>
ssthresh时,使用拥塞避免算法,减缓cwnd的增长速度,其增长速度呈线性增长。
在快重传(Tahoe)算法中:
如果收到3个连续ACK,则Tahoe进入快速重传阶段。
根据3个重复的应答报文来判断丢包,并立即重传丢失的分组,此时置ssthresh为当前拥塞窗口的一半,转入慢启动。
快速重传/快速恢复阶段(Reno)算法中:
若收到三个重复的ACK,进入快速重传/快速恢复,此时ssthresh设置为当前拥塞窗口的一半,重传丢失的数据包,并置cwnd=cwnd+ndup(ndup为收到的重复ACK数),并发新的数据包。
若收到非重复的ACK时,cwnd=ssthresh,进入拥塞避免阶段。
5结束语
Internet自二十世纪六十年代末出现以来,一直以惊人的速度快速增长。
同时,伴随着多媒体技术的飞速发展,Internet已逐步由单一的数据传送网向数据,语音,图象,视频等多媒体信息的综合传输网演化。
在计算机网络高速发展的今天,服务质量是人们不可避免的问题。
在其中,网络的拥塞控制起着至关重要的作用。
本文利用计算机网络仿真软件OPNET,分析TCP拥塞控制协议中的四种不同算法,仿真TCP协议中用于拥塞控制的四种算法——慢开始,拥塞避免,快速重传和快速恢复,比较快速重传和快速恢复(改进后的TCP)对于慢开始和拥塞避免(传统的TCP)的改进效果。
同时收集了数据,绘出图形,分析了它们的优劣。
网络仿真技术是一种全新的网络规划设计方法,该技术以其独特的技术手段,成为一种经济、有效和其他传统方法不可替代的网络设计的有力工具。
可以预见,随着数据网络的日趋复杂、网络规模的日渐庞大,对网络仿真技术的需求必交越来越迫切,网络仿真的应用也将越来越广泛。
我国虽然起步较晚,但是Internet网络的迅猛发展必将强劲地拉动网络仿真技术的研究和应用。
我们相信,未来数年将是网络仿真技术蓬勃发展的时期,今后网络仿真技术必将成为数据网络规划不可缺少的工具。
参考文献
[1]谢希仁,陆鸣,张兴元.计算机网络[M].北京:
电子工业出版社,2004
[2]林闯,单志广,任丰源.计算机网络的服务质量[M].北京:
清华大学出版社,2004
[3]王承恕.通信网基础[M].北京:
人民邮电出版社,1999:
116-144.
[4]T.Kelly.ScallableTCP:
ImprovingPerformanceinHighSpeedWideAreaNetworks[J].ACMComputerCommunicationsReview,2003,33
(2):
83~291.
[5]Yee-TingLi,DouglasLeithandEobertN.Shorten.ExperimentalEvaluationofTCPProtocolsforHigh-SpeedNetworks[J].
[6]KevinFallandSallyFloyd“Simulation-basedComparisonsofTahoe,Reno,andSACKTCP”.LawrenceBerkeleyNationalLaboratory
[7]王文博,张金文.OPNETModeler与网络仿真[M].人民邮电出版社,2003年10月
[8]龙华.OPNETModeler与计算机网络仿真[M].西安:
西安电子科技大学出版社,2006:
31-57.
[9]魏鸿毅,慕晓冬,夏薇.基于OPNET的无线通信网络性能研究[J].微计算机信息,2008,24(18):
115-117.
[10]郭艳玲,饶敏,周淑秋.网络技术教程[M].北京航空航天大学出版社,2001
[11]于宏毅.无线移动自组织网[M].北京:
人民邮电出版社,2004:
32-35.
[12]冯言志,冯元,李金.基于OPNET的AdHoc网络建模与仿真[J].四川兵工学报,2009,30(3):
97-99.
[13]李秀全,武斌,张青春.基于OPNET的无线局域网MAC协议仿真研究[J].舰船电子工程,2006,26(6):
137-139.
[14]李丰.基于OPNET的无线局域网MAC层协议的仿真设计与研究[D].哈尔滨:
哈尔滨理工大学,2007.
[15]朱军,李晓辉,罗长青.排队系统仿真及应用[J].微机发展,2002,(03):
46-48.
SimulationofTCPCongestionContro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 OPNET TCP 拥塞 控制 仿真