时间:2024-07-29
李清平
(浙江育英职业技术学院信息技术与应用系,浙江杭州 310018)
三层建模机制所定义的网络物理通信机制是每个节点至少包含一对点对点收发机,通过一条有线双工链路和另一对点对点收发机构成一个收发机组,每个这样的收发机组可以支持数据的双向传输。网络拓扑结构包含两种节点模型:周边节点和中心交换节点[1-2]。包流以随机的方式来自周边节点,每个数据包包含目的地址,目的地址可以用一个整数来表示不同的目的周边节点。中心节点接收到数据包后,对其目的地址进行解析,通过寻址和包交换,最后选择一个合适的发信机将数据包送往目的节点。笔者从最底层的数据包开始,自定义数据包格式和处理包流的进程模型,并在此基础上建立基于自定义包流的进程-节点-网络三层模型,同时给出网络链路利用率统计分析结果和包延时的离散曲线。
OPNET Modeler提供的三层建模机制是指在进程域、节点域和网络域进行自下而上的建模,同时在仿真过程采用离散事件驱动的模拟机理。
进程模型(process model)用有限状态机FSM(finite state machine)来描述各种协议;节点模型(node model)由进程模型构成,可以组成完整的协议栈,真实反映建模设备的特性;网络模型(net model)由节点模型组成,可以通过不同的网络拓扑来设计不同的网络结构[3-4]。
进程模型是网络三层建模的基础,也是仿真过程中最重要的部分,采用有限状态机、OPNET核心函数及标准的C和C++语言来描述底层协议算法。进程模型主要用来刻画节点模型中的处理机以及队列模型的行为,其执行过程如图1所示。在每个进程模型中都至少有一个初始状态(init),即进程被访问的第一个状态。状态的执行代码分为两部分,上部分称为进入代码(enter executive),是进程进入该状态时执行的动作;下部分称为离开代码(exit executive),是进程离开状态时执行的动作。转移则描述了进程模型从一个状态向另一个状态转移的过程和条件,其含义为:进程只要完成源状态离开代码,就立即对转移条件进行判断,当转移条件成立,则执行转移代码,之后转移到目的状态。转移分为条件转移和无条件转移,分别用虚线和实线表示[5-8]。
图1 进程模型的执行流程
三层建模机制定义的包格式包含任意数量子域的数据包,包由所有子域大小的叠加及校验值两部分组成。自定义数据包的名称为dest_address,包的大小为 32 bit。
中心节点进程模型将接收到的包流按照目的地址转交给正确的发信机,然后通过发信机将包流发往目的周边节点。每个数据包的到达都触发中心节点进程的一次中断,中心节点进程接收中断后从休眠状态(idle非强制状态)激活,执行代码处理数据包(强制状态),如图2所示。
图2 中心节点进程模型
PK_ARRVL条件判断中心节点进程接收的中断是否为包流中断,其代码如下:
周边节点进程模型主要有两个功能:一是当周边节点生成数据包时,它必须给该数据包指定目的地址,然后将它发往中心节点;二是当周边节点接收到数据包时,它必须计算该数据包的端对端延时。为此,周边节点进程模型需要设置两个状态,一个是初始化initial状态,另一个是idle状态,如图3所示。
图3 周边节点进程模型
SRC_ARRVL和RCV_ARRVL条件判断周边节点进程接收的中断是否为包流中断以及对应数据包的输入流索引号,其代码如下:
当SRC_ARRVL条件满足时,xmt()函数为发送的包分配目的地址,其代码如下:
当RCV_ARRVL条件满足时,rcv()函数计算端对端延时并写入到全局统计量,其代码如下:
一般来说,计算机网络是由网络中参与运行的终端、交换机、路由器和收发信机等设备组成。对于这些设备而言,输入包括随机到达的业务及经过信道传输后包含随机误码的信号、数据包。在网络仿真建模中,前者可以看作是启动仿真系统运行的动力,后者则可以看作是改变仿真系统运行状态的动力[9-11]。
4.1.1 业务模型
式中:xi为仿真中第i次业务输出;X为业务模型的输出函数;r1为业务达到服从的随机分布函数;ti为第i次业务发生的时间。
4.1.2 设备模型
式中:yi为设备模型的输出;yi-1为过去的输出;λ为输出函数;ti为时间;xi为输入;qi为当前状态;qi-1为过去的状态。
4.1.3 信道模型
式中:ys为源设备模型的输出,满足式(4);xi为目的设备模型的输入;r2为误码发生服从的随机分布函数;ti为时间。
由于qi-1为当前状态跳转前的状态,因此可以将式(2)代入式(3)直到出现初始状态q0,即:
将式(6)代入式(4),可得:
由于除r1、r2外,各式因子都是确定的,随机数则成为激发仿真系统发生变化、做出响应的关键,因此计算机网络仿真建模中离散事件驱动的决定因素是随机数。
节点模型包括中心交换节点和周边节点。中心交换节点(hub)由4对发信机(xmt)和收信机(rcv)构成,每对收发信机对应一个周边节点,如图4所示。周边节点(node)由一个数据包生成模块(src)、一个进程模块(proc)和一对收发信机构成,如图5所示。
图4 中心交换节点(hub)模型
图5 周边节点(node)模型
根据OPNET Modeler层次化建模的思想,创建一个由4个周边节点和一个中心交换节点构成的网络模型,如图6所示。
图6 网络模型
周边节点以预先定义的泊松(Poisson)分布产生非均匀分布的随机数据包,即:
重复产生exp(1/λ)的随机数据包,同时计数,直到所产生的随机数的和大于1为止。
为了观察数据包不同的产生速率对网络性能的影响,配置包产生间隔时间分别为4 ms和40 ms的仿真,比较两者的链路利用率如图7所示,可以看出数据包的产生速率过小,将导致网络的链路利用率很低。
图7 网络链路利用率比较
该例中,数据包的大小是恒定的,如果包的产生速率足够快,就可能导致部分数据包在发信机队列中积压,这时包的端对端延时加大,图8和图9为包产生间隔时间分别为4 ms和40 ms的端对端延时离散曲线。
图8 包产生间隔4 ms的端对端延时离散曲线
图9 包产生间隔40 ms的端对端延时离散曲线
基于OPNET Modeler的层次化建模思想,对最底层的进程模型进行了详细的阐述和定义,并在此基础上建立了进层-节点-网络三层仿真模型,收集分析了链路利用率的统计结果及不同数据包产生速率的端对端延时影响,对于进一步熟悉进程和节点模型及其如何在网络中运作,进而评价网络的性能有一定的指导意义。
[1]陈敏.OPNET网络仿真[M].北京:清华大学出版,2004:64-89.
[2]李清平.基于自定义数据包的网络业务流建模[J].计算机与现代化,2010(8):37-40.
[3]杨兰,贾连兴,段联国.宽带ISDN话音业务OPNET仿真模型设计与实现[J].武汉理工大学学报:信息与管理工程版,2009,31(1):152-155.
[4]张桃改,谢辉.基于OPNET的车用Ad hoc网可靠性评估研究[J].计算机应用研究,2009,26(10):3807-3811.
[5]杨路明,李谢华.网络仿真软件比较分析及仿真过程探讨[J].计算技术与自动化,2002,21(4):65-70.
[6]陈寅,宋杨,费敏锐.基于Simulink和 OPNET的交互式联合仿真研究[J].系统仿真技术,2011,7(3):242-246.
[7]韩晶,黄建国,冉茂华.基于OPNET的水声通信网络设计与仿真[J].系统仿真学报,2009,21(17):5498-5502.
[8]陈岩,董淑福,蒋磊.OPNET网络仿真技术及其应用研究[J].计算机技术与发展,2009,19(2):199-201.
[9]高嵩.OPNET Modeler仿真建模大解密[M].北京:电子工业出版社,2010:12-14.
[10]向俊涛,聂明新,刘波.分布式WLAN在OPNET下的建模仿真研究[J].武汉理工大学学报:信息与管理工程版,2006,28(11):60-62.
[11]李晓汀,丁凡,熊华钢.基于OPNET的CAN网络建模与仿真[J].北京航空航天大学学报,2009,35(3):284-287.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!