基于opnet的网络协议分析与仿真

基于opnet网络协议分析与仿真
摘要:介绍什么是opnet,网络仿真的好处,使用opnet进行tcp协议仿真以及对tcp四个算法的仿真与分析
1.什么是opnet
opnet是一个款通信方面的仿真软件,在国外,网络仿真技术的研究和应用已经有十多年的历史。以前主要用于网络协议和网络设备的开发和研究,使用者大都是大学和研究所的研究和开发人员,近年来网络仿真软件生产厂商近年来纷纷把应用和开发重点转向网络规划和设计方面,将用户由原来的研究开发人员转向网络规划和设计人员,另一方面网络仿真规划设计软件的使用和操作相当复杂,还远没有达到一般网络规划设计人员经过短时间培训就能够熟练使用的目标,国外网络仿真软件厂家正致力于简化软件界面和操作流程,强化软件的项目应用能力,特别是加强了与网络管理软件厂商的合作,开发与网管软件的接口,使得网络模型的建立逐步自动化,加快网络建模的速度。我国的网络仿真技术的研究 1999 年刚刚起步,这主要两个原因,一个是我国数据网络的发展较晚,对网络仿真技术的需求相对不是十分迫切另一个原因是主流的网络仿真软件基本上产自美国,而其高端产品在 1998 年以前一
直是包括中国在内的社会主义国家禁运。近年来,特别是 1998 年以来,由于我国数据网络的猛发展的拉动和美国解除高端网络仿真软件出口的限制的刺激,我国的网络仿真研究和用逐步起步。
2.网络仿真的好处
网络仿真技术是一种通过建立网络设备、链路和协议模型并模拟网络流
量的传输,从而获取网络设计或优化所需要的网络性能数据的仿真技术。从应用的角度上
看,网络仿真技术有以下特点:(1)全新的模拟实验机理,使其具有在高度复杂的网络环
境下得到高可信度结果的特点。网络仿真的预测功能是其他任何方法都无法比拟的;(2
使用范围广,既可以用于现有网络的优化和扩容,也可以用于新网络的设计,而且特别适
用于大中型网络的设计和优化;(3)初期应用成本不高,而且建好的网络模型可以延
用,后期投资还会不断下降。
3.TCP协议
TCPTransmission Control Protocol)是Internet上通用的传输层协议之一,是目前应用最广泛的传输控制协议,其核心是拥塞控制机制。 这次实验的目的是为了演示TCP在拥塞控的四个算法:慢启动算法,拥塞避免算法和以被修改过的拥塞避免算法:即快速重传算法,快速恢复法。通过仿真研究所得出来的数据来比较这些算法。
3.1慢启动算法和拥塞避免算法    pka
发送方一开始便向网络发送多个报文段,直至达到接收方通告的窗口大小为止。当发送方和接收方处于同一个局域网时,这种方式是可以的。但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出现一些问题。一些中间路由器必须缓存分组,并有可能耗尽存储器的空间。
慢启动算法通过观察到新分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。慢启动为发送方的TCP增加了另一个窗口:拥塞窗口(congestion window) 记为cwnd。当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段(即另一
端通告的报文段大小)。每收到一个ACK,拥塞窗口就增加一个报文段(cwnd以字节为单位,但是慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。发送方开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加为病毒唑注射液2,即可以发送两个报文段。当收到这两个报文段的ACK时,拥塞窗口就增加为4,这是一种指数增加的关系。在某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组。拥塞避免算法是一种处理丢失分组的方法。该算法假定由于分组受到损坏引起的丢失是非常少的(远小于1%),因此分组丢失就意味着在源主机和目的主机之间的某处网络上发生了拥塞。有两种分组丢失的指示:发生超时和接收到重复的确认。拥塞避免算法和慢启动算法是两个目的不同、独立的算法。但是当拥塞发生时,我们希望降低分组进入网络的传输速率,于是可以调用慢启动来作到这一点。在实际中这两个算法通常在一起实现。
拥塞避免和慢启动算法需要两个变量维持每一连接,一个拥塞窗口(cwnd)和一个慢启动阀置(ssthresh)。
周国志  对一个给定的连接,初始化cwnd为1个报文段,ssthresh为65535个字节。
  TCP输出例程的输出不能超过cwnd和接收方通告窗口的大小。拥塞避免是发送方使用的流量控制。前者是发送方感受到的网络拥塞的估计,而后者则与接收方在该连接上的可用缓存大小有关。
  当拥塞发生时,ssthresh被设置为当前窗口大小的一般(cwnd和接收方通告窗口大小的最小值,但最小为2个报文段)。此外,如果是超时引起了拥塞,则cwnd被设置为1个报文段。
  当新的数据被对方确认时,就增加cwnd,但增加的方法依赖与是否正在进行慢启动或拥塞避免。如果cwnd小于或等于ssthresh,则正在进行慢启动,否则正在进行拥塞避免。
3.2慢启动算法和拥塞避免算法仿真实验
3.2.1实验介绍
这在个网络安装使用的是TCP端到端的传输协议。假定一台服务器摆在Paris别一个客户端摆在Stockhlom。分析拥塞窗口(cwnd)大小不同的机制。实验中这个网络是假设为完美,没有丢包的
步频(1)首先我们建立分别在Paris杭州空气质量指数和Stockholm的两个子网,Paris子网里那建立一台FTP服务器和一个以太网路由器用100BaseT电缆连接起来如图1所示
1  Pairs  FTP服务器与路由器
步频(2)然后在Stockholm建立一个子网,在子网里建立一台客户机和一台路由器,如图2所示
2 Stockholm 客户机与路由器
步频(3)在ParisStockholm的两个子网之间建了一个IP网云,分别连接两个子网的路由器使之能够通信如图3所示
3 IP网云连接ParisStockhlom两个子网
步频(4FTP服务器的TCP参数里的fast retransmistfast recovery设置成disable状态。如图4所示
4所示TCP参数
步频(5)统计分析ftp服务器的congestion window size(bytes)如图5所示
5
3.2.2慢启动算法和拥塞避免算法仿真实验结果分析
慢启动的拥塞窗口(cwnd)以指数性增长,当慢启动的拥塞窗口大于慢启动阀值(ssthresh)时,启动拥塞避免,拥塞窗口按线性规律增长。慢启动算法在cwnd<ssthresh时使用,拥塞避免算法在cwnd>ssthresh时使用。
3.3快速重传算法和快速恢复算法
在收到一个失序的报文段时,T C P立即需要产生一个A C K(一个重复的A C K)。这个重复的A C K不应该被迟延。该重复的A C K的目的在于让对方知道收到一个失序的报文段,并告诉对方自己希望收到的序号。
  由于我们不知道一个重复的A C K是由一个丢失的报文段引起的,还是由于仅仅出现了几个报文段的重新排序,因此我们等待少量重复的A C K到来。假如这只是一些报文段的重新排序,则在重新排序的报文段被处理并产生一个新的A C K之前,只可能产生1 ~ 2个重复的A C K。如果一连串收到3个或3个以上的重复A C K,就非常可能是一个报文段丢失了。
于是我们就重传丢失的数据报文段,而无需等待超时定时器溢出。这就是快速重传算法。接下来执行的不是慢启动算法而是拥塞避免算法。这就是快速恢复算法。
没有执行慢启动的原因是由于收到重复的A C K不仅仅告诉我们一个分组丢失了。由于接收方只有在收到另一个报文段时才会产生重复的A C K,而该报文段已经离开了网络并进入了接收方的缓存。也就是说,在收发两端之间仍然有流动的数据,而我们不想执行慢启动来突然减少数据流。这个算法通常按如下过程进行实现:
1) 当收到第3个重复的A C K时,将ssthresh设置为当前拥塞窗口cwnd的一半。重传丢失的报文段。设置cwndssthresh加上3倍的报文段大小。
2) 每次收到另一个重复的A C K时,cwnd增加1个报文段大小并发送1个分组(如果新的c w n d允许发送)。
3) 当下一个确认新数据的A C K到达时,设置cwndssthresh(在第1步中设置的值)。这个A C K应该是在进行重传后的一个往返时间内对步骤1中重传的确认。另外,这个A C K也应该是对丢失的分组和收到的第1个重复的A C K之间的所有中间报文段的确认。这一步采用的是拥塞避免,因为当分组丢失时我们将当前的速率减半。
3.4快速重传和快速转发仿真四野档案实验
3.4.1实验介绍
实验的假想场景跟慢启动算法和拥塞避免算法实验的场影是一样的,只不过上个实验的场景是完美的网络,没有丢包现象。这两个场景我们设定了丢包率,让我们来看看快速重传和快速恢复的表现。
步频(1),复制慢启动算法和拥塞避免算法实验的场影
步频(2) 我们将IP网云的丢包频率设定为0.5%如图6所示
6设定IP网云的丢包率
步频3我们将假想场景Paris FTP服务器的TCP特性快速重传开启为enabled,将快速恢复设置成Disabled,如图7所示
7开启快速重快关闭快速恢复
步频4复制慢启动算法和拥塞避免算法实验的场影,将IP网云的丢包频率设定为0.5%如图6所示
步频5我们将假想场景Paris FTP服务器的TCP特性将快速恢复设置成Reon如图8所示
8将快速恢复设置成Reon
步频6统计分析对比三个实验的仿真结果如图9所示
9三个实验的仿真结果对
3.4.2快速重传和快速转发仿真实验仿真结果分析
  第一个曲线图说明了网络是完美的无丢包现象。第二个曲线图假想场景Tahoe0.5%的丢包,当超时出现拥塞时,cwnd被设为1个报文段。这就意味着经前执行了慢启动算法。第三个曲线图候想场影Reon也有0.5%的丢包,cwnd没有降置为0。快速恢复执行代替了慢启动算法。
4结论
本文研究了TCP在拥塞控制的四种算法即:慢启动,拥塞避免,快速重传,快速恢复,它们在数据控制方面的机制以及在网络中数据传输过程中流量的控制,为了揭示各种算法在性能上的区别,我们在OPNET上做了一些模拟仿真    从模拟的结果可以看出,慢启动和拥塞避免在完美网络中以指数和线性增长传输数据。在拥塞发生而只开启快速重传的网络中,传输数据的低下使之发送端的窗口降低之0,这就意味着经前执行了慢启动算法使窗口被设为1个报文段。在四个算法同时开启的拥塞网络中,拥塞出现时快速恢复代替了慢启动算法使前的速率减半,没有降低之0.

本文发布于:2024-09-21 23:26:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/136868.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:网络   算法   拥塞   启动   避免   报文   软件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议