OPNET对CSMA协议的仿真研究Word文档下载推荐.doc
《OPNET对CSMA协议的仿真研究Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《OPNET对CSMA协议的仿真研究Word文档下载推荐.doc(11页珍藏版)》请在冰点文库上搜索。
在一个使用广播信道的网络中,当存在多方竞争使用信道时,难免会引起多个用户在同一信道上产生数据冲突,这样就会导致数据帧被破坏,从而使网络的性能也随之减弱。
因此,选择一个完善有效的多路访问协议来解决网络信道冲突的问题是十分必要的。
目前,关于分配一个多路访问信道的协议有很多,比较有代表性的协议有:
Aloha协议、载波检测多路访问协议(CSMA)、无冲突的协议、以及波分多路访问协议(WDMA)。
本文主要介绍了CSMA协议。
为了反映和预测网络的性能,网络仿真技术成为对现有网络进行优化设计和规划不可缺少的工具。
网络仿真是在计算机中构造虚拟的环境来反映现实的网络环境,通过数学方法来模拟现实中的网络行为,从而可以有效地提高网络规划和设计的可靠性和准确性,并降低网络投资风险,减少不必要的投资浪费。
本文利用OPNET仿真软件来模拟分别使用Aloha和1-持续的CSMA协议的网络,这样有助于仿真和比较不同多路访问协议的性能。
仿真时以信道吞吐量作为网络中评价使用不同协议的网络性能的典型参数。
1.1OPNET网络仿真器
1.1.1OPNET软件介绍
OPNET是一种商业软件,是美国OPNETTechnologiesIns公司的产品。
它是一种优秀的网络仿真和建模的工具。
它支持面向对象的建模方式,并提供图形化的编辑界面,更便于用户使用。
在新网络项目的设计以及对现有网络的分析方面都有卓越表现,它为通信协议和路由算法的研究提供了与真实网络相同的环境。
此外,功能完善的结果分析器为网络性能的分析提供了有效而又直观的工具。
1.1.2OPNET主要特性
OPNETModeler作为一种主流网络仿真软件,为通信网络和分布式系统的建模提供了全面的模拟仿真开发环境。
在网络仿真软件上,它具有丰富的技术、协议、设备模型库和适合各个层次的建模工具以及灵活强大的仿真分析工具。
OPNETModeler是一个大型软件包,支持各种网络建模和仿真,具有以下一些主要特性:
1、采用面向对象的技术:
对象的属性可以任意配置,每一对象属于相应行为和功能的类,可以通过定义新的类来满足不同的系统要求。
2、特别适合于通信网络和信息系统的结构化模块:
OPNET提供了各种通信网络和信息系统的处理构件和模块,如TCP模块、ATM模块等,用户可以直接调用这些模块。
3、图形化:
OPNET采用图形化界面建模,为使用者提供三层(网络层、节点层、进程层)建模机制来描述现实的系统,OPNETModeler的几个编辑器提供了用户编辑模型及OPNET本身内置模型的直观化模型。
并且提供了丰富的编程函数供用户调用。
4、有限状态机:
在过程层次中使用有限状态机来对其它协议和过程进行建模,用户模型及OPNET内置模型将会自动生成用C语言实现可执行的高效、高离散事件的模拟流程。
5、强大的统计性和集成分析功能:
OPNET内建了很多性能统计器,它会自动采集模拟过程的结果数据,同时OPNET也允许用户自定义程序来增强这些统计器的性能。
并且对这些采集的数据进行大量的分析,同时以文件和图形的方式输出。
1.2OPNET层次建模
OPNET中的建模工作在3种不同的环境中完成,提供了3层建模机制。
最底层为进程模型,由状态机来描述协议;
其次为节点模型,由相应的协议模型构成,反映设备特性;
最上层为网络模型。
3层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性。
1.2.1进程建模(processmodeling)
模拟单个对象的行为,使用有限状态机进行建模。
每个状态内写人任意的C/C+十代码以及专门为协议编程设计的库函数,用于定义节点内功能模块中各事件之间的控制流,使用符合工业标准的状态图来描述功能模块内的状态和状态间的控制流。
1.2.2节点建模(nodemodeling)
建立由相应协议模型构成的节点模型,该层建模将进程建模中的各个进程互限联成设备,可以反映设备的特性。
用于定义网络节点的结构和描述节点中模块间的数据流。
通过节点编辑器(nodeeditor)可以描述协议的层次结构,并通过描述功能模块之间的数据流来实现一个网络器件或系统的体系结构。
1.2.3网络建模(networkmodeling)
负责将节点建模中建立起来的设备互联成网络,编辑网络的拓扑结构,通过将模型库中的各种通信实体拖放工作区可以方便地配置网络拓扑,并可对设备的属性进行设置。
OPNET通过三层建模机制建立起来的三层模型和实际的协议、设备、网络层次完全对应,能全面反映实际网络的相关特性。
1.3OPNETModeler仿真步骤
使用Modele:
仿真步骤如图1.1所示,大体可以分为以下6个步骤:
1、配置网络拓扑;
2、配置业务;
3、收集结果统计量;
4、运行仿真;
5、调试模块再次仿真;
6、发布结果和拓扑报告。
配置
业务
发布结构
和拓扑报告
调试模块
再次仿真
运行
仿真
收集
结果统计量
网络拓扑
图1.1Modeler的仿真步骤
2OPNET网络仿真软件应用
2.1问题提出
在多个竞争用户之间分配单个广播信道的传统做法是利用静态信道分配方法,如频分多路复用(FDM)和时分多路复用(TDM)。
但是使用这些方法普遍存在的基本问题在于:
当某些用户停止通信时,他们所分配到的带宽实际上就浪费了,即当他们自己不使用这些带宽时,其他的用户也不允许使用。
而且大多数计算机系统中,数据流量往往是突发性的。
因此,大多数数据信道在大多数时间是空闲的。
由于传统的静态信道分配方法不能适应突发性流量,所以提出了多种动态信道分配方法,例如:
Aloha协议、CSMA协议、无冲突协议和WDMA协议等。
下面将介绍利用OPNET仿真CSMA协议。
仿真的内容是:
利用OPNET对CSMA这种信道访问协议建模。
通过在总线型信道上建立CSMA模型,来分析CSMA协议的共享信道访问机制。
2.2CSMA协议的基本思想
该协议是在Aloha随机信道访问的基础上增加了载波监听的功能。
当站点有数据发送,先监听信道;
若站点发现信道空闲,则发送数据;
若信道忙,则继续监听直至发现信道空闲,然后完成发送;
若产生冲突,该站等待一段随机的时间,然后重新开始发送过程。
在本协议中,当一个站发现信道空闲时,它传输数据成功的概率为1。
CarrierSenseMultipleAccess,载波侦听多路访问。
采用分布式控制方法,附接总线的各个结点通过竞争的方式,获得总线的使用权。
只有获得使用权的结点才可以向总线发送信息帧,该信息帧将被附接总线的所有结点感知。
包括以下三个要点:
载波侦听——发送结点在发送信息帧之前,必须侦听媒体是否处于空闲状态;
多路访问——具有两种含义,既表示多个结点可以同时访问媒体,也表示一个结点发送的信息帧可以被多个结点所接收;
冲突检测——发送结点在发出信息帧的同时,还必须监听媒体,判断是否发生冲突(同一时刻,有无其他结点也在发送信息帧)。
IEEE802.3或者ISO8802/3定义了CSMA/CD的标准。
CSMA是载波检测(侦听)多路访问,它检测其他站的活动情况,据此调整自己的行为分为以下几类:
1、1-持续CSMA(1-persistentCSMA):
当信道忙或发生冲突时,要发送帧的站,不断持续侦听,一有空闲便可发。
其中,长的传播延迟和同时发送帧,会导致多次冲突,降低系统性能。
基本思想:
2、非持续CSMA:
它并不持续侦听信道,而是在冲突时:
等待随机的一段时间.它有更好的信道利用率,但导致更长延迟。
当一个节点要发送数据时,首先监听信道;
如果信道空闲就立即发送数据;
如果信道忙则放弃监听,随机等待一段时间,再开始监听信道。
非持续CSMA会减少发送数据导致冲突的概率,但会使得数据在网络中的平均延时时间增加。
3、p-持续CSMA:
它应用于分槽信道,按照P概率发送帧。
即信道空闲时,这个时槽,欲发送的站P概率发送,Q=1-P概率不发送.若不发送,下一时槽仍空闲,同理进行发送。
若信道忙则等待下一时槽,若冲动则等待随机的一段时间,重新开始。
p-持续CSMA用于时分信道,其基本思想是:
如果信道忙则坚持监听到下一个时隙;
如果信道空闲,便以概率p发送数据,以概率1-p推迟到下一个时隙;
如果下一个时隙信道仍然空闲,则仍以概率p发送数据,以概率1-p推迟到下一个时隙;
这样一直持续下去,直到数据被发送出去,或因其他节点发送而检测到信道貌岸然忙为止,若是后者,则等待一段随机的时间后重新开始监听。
p-持续CSMA的性能依赖于概率p的选取。
以上都是对ALOHA的改进,当信道忙时,所有站都不传输帧。
4、带冲突检测的CSMA(CSMA/CD:
CSMAwithCollisionDetection):
它一旦检测到冲突,立即终止当前传输中的帧,节省时间和带宽,并等待一段时间,重新尝试。
它广泛用于LAN中MAC子层,是当前以太网LAN的基础。
其概念时间模型分为三个时期:
传输周期,竞争周期和空闲周期。
值得一提的是,监听的机制:
传输数据时,他的硬件进行监听电缆,如果读回来的信息与发送的不一致,便知发送冲突了。
这里,当然需要一种特殊的信号编码方案,能够检测出两个OV信号冲突(或者在此冲突下,故意不检测,因信号没有损坏)。
在有线网中,冲突检测的最核心内容是帧碎片(即检测到网络中有小于这个大小的帧就认为是帧碎片,因为传输两端都在传输造成冲突,两端数据在网络中都只有1部分)。
在无线网中由于有隐藏结点(即每个结点不知道也不可能知道整个网络的实时情况),因此无法“检测”所以CSMA/CA(CSMAwithCollisionAvoidance)载波侦听多路访问冲突检测就应运而生了,它是利用RTS/CTS(即类似TCP的握手协议)的应答策略来保证在传输中结点不会再接受请求,从而解决了无线网中的冲突。
3CSMA/CD模型设计
3.1 工作站节点模型设计
网络采用总线拓扑结构,每一个节点代表一个工作站。
节点的模型设计如图3.1。
图3.1工作站节点模型
工作站节点模型:
工作站节点包含四个处理器模块,一个队列模块和一对收发信模块。
工作站节点模型实现了OSI数据链路层的部分功能,即mac子层功能。
总线发射机和总线接收机模型作为总线链路的接口。
这两个模型用以太网标准的数据速率10Mbit/s发射和接收数据。
sink模型表示更高层,它简单的接收从mac传输来的数据包。
defer模型独立的监视链路的状态和标记,mac从状态线读取不同值,这个值用来决定是否允许发射机进行发送。
bursty_gen模型表示更高层用户,这个用户向发射机提供数据。
它通过ON/OFF模拟方式来控制包发送量。
mac模块处理要接收和发送的包。
接收到的包被解封并传送到更高一层。
要发送的包被封装并且当统计标志从大的数值变为小的数值时,一个包通过发射机发送出去。
这个模型也检测是否发生了碰撞,假如发生一次,那么发信机就停止发送,并且稍后再从新发送。
3.2进程模型设计
1、mac模块的进程用来管理发射和接收包。
mac进程模型设计如图3.2。
图3.2mac进程模型
它可以分为三个功能:
·
封装并对要发送的包进行排队
解封并传送接收到的包
决定是否重新进行发送
2、eth_mac_intf模块把应用数据转换成适合mac处理的格式。
它从数据源得到数据,标志一个允许的目标地址(假设是随机的分配地址),然后把数据送到mac模块。
它也同时接收从mac来的包,并把包传送到更高一层的sink模块。
进程设计如图3.3所示。
图3.3eth_mac_intf进程模型
3、defer模块用来判断状态标志值是升高还是降低。
标志值被mac模块读取以用来决定发射机是否被允许发送或者信道是否被分配给另外的用户。
进程模型设计如图3.4。
图3.4defer进程模型
3.3 建立网络模型
为了对前面建立的节点进行仿真,需要把它们放在网络模型中,在网络中我们建立一个有十个工作站的总线拓扑结构的网络,连路模型的数据传输速率为10Mbit/s。
如图3.5所示。
图3.5 网络模型
4运行仿真
查看运行结果如图4.1所示。
图4.1 信道吞吐量和信道利用率
虽然两个图形的趋势是相同的,但是他们的纵坐标表示是不一样的。
上面的统计图是表示接收机在单位时间里成功收到的平均包数。
从理论上来说,这种统计值仅仅计算了无碰撞包的比特数和在10Mbits/s信道下能到达的最大值。
从图上可以看出,吞吐量在仿真到40秒时开始变得稳定,大约6.7Mbit/s。
也可以从utilization图上看出信道利用率大约是67%,这个值是信道速率为10Mbit/s的百分比。
这个图表明当信道流量达到较高的67%时,以太网协议仍然能够有效的传送数据。
5结论
本文通过对CSMA/CD随机访问协议的建模,验证了CSMA/CD随机访问协议的吞吐量和信道利用率,探讨了OPNET仿真技术,叙述了基于上述网络仿真方法和OPNET软件技术进行网络仿真相关流程和方法,为科学进行网络仿真研究提供了系统科学的知识。
参考文献
[1]JamesF.Kurose,KeithW.Ross《COMPUTERNETWORKINGATop-DownApproachFeaturingtheInternet》,北京:
高教出版社,2001。
[2]王文博,张金文《OPNETModeler与网络仿真》,人民邮电出版社,2003年10月。
[3]郭艳玲,饶
敏,周淑秋《网络技术教程》,北京航空航天大学出版社,2001
[4]谢希仁,陆鸣,张兴元《计算机网络.》,北京:
电子工业出版社,1994。
[5]李馨,葉明《OPNETModeler网路建模与仿真》,西安电子科大出版社。
11