首页> 中国专利> 一种面向QualNet的仿真场景节点信息定时修改方法

一种面向QualNet的仿真场景节点信息定时修改方法

摘要

本发明涉及一种面向QualNet的仿真场景节点信息定时修改方法,包括PDSI接口注册和PDSI接口函数调用两部分;具体的,面向QualNet建立包括PSDI接口与外部程序的外部接口开发框架,通过外部程序将需要修改的节点信息参数以数据报文的格式发送到PDSI接口,再通过该PDSI接口和QualNet仿真器交互。使用户可以动态、批量、定时地修改仿真环境中的节点信息参数,从而实现了用户对仿真进程的定时干预功能,解决了大规模网络仿真过程中无法动态、批量、定时配置节点参数的问题。实测结果表明本发明提出的方法针对大型无线网络仿真评估和测试十分有效。

著录项

  • 公开/公告号CN105703946A

    专利类型发明专利

  • 公开/公告日2016-06-22

    原文格式PDF

  • 申请/专利权人 北京理工大学;

    申请/专利号CN201610032169.4

  • 发明设计人 龚鹏;黄鹏;吴海乔;钟俊强;栗苹;

    申请日2016-01-18

  • 分类号H04L12/24(20060101);

  • 代理机构

  • 代理人

  • 地址 100081 北京市海淀区中关村南大街5号北京理工大学

  • 入库时间 2023-12-18 15:37:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-22

    授权

    授权

  • 2016-07-20

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20160118

    实质审查的生效

  • 2016-06-22

    公开

    公开

说明书

技术领域

本发明涉及一种面向QualNet网络仿真过程中场景节点信息动态、批量、定 时修改的方法,尤其涉及一种面向QualNet的仿真场景节点信息定时修改方法, 属于网络仿真技术领域。

背景技术

网络的研究中普遍采用了实物实验法和软件仿真法。实物实验法中,实验对 象在真实物理平台上运行,具有较高的精度;但构建全尺度实物实验平台代价高 昂,且进行大量重复试验是很困难的。软件仿真法具有较好的灵活性和可控性, 但由于大部分的模拟和结果分析都在一个典型的封闭的非定时模拟时钟的虚拟 环境中重复地运行,忽略了“人在回路”的干预过程(例如一个网络仿真过程中, 我们需要根据实际情况在相应时间改变一个网络节点的信息,如位置,开关状态 以及发送功率等。),因此在这样仿真时间长而且“Hardware-in-the-Loop”的大规 模网络仿真中不能直观展示真实设备、应用在特定网络环境下的实际性能。为了 实现用户对仿真进程的实时干预功能,国内外研究机构提出了 “human-in-the-loop”模拟框架。所谓“human-in-the-loop”模拟框架就是在网络 仿真场景运行时能够人为干预的按照真实的需要实时的改变网络仿真场景中的 网络模型的参数。这种方法将传统的“Hardware-in-the-Loop”网络仿真加入了实 际中不可避免的人为干预,使得软件仿真方法更加能体现真实设备和应用在特定 网络环境下的实际性能,为大规模网络研究提供了更为有效的研究手段。

构建“human-in-the-loop”网络仿真模拟系统,一方面需要具有高保真度和 定时运行能力的网络仿真软件;另一方面还需要仿真软件支持能够通过外部软件 或程序将所需修改的节点信息传输到仿真模拟器的外部接口。

QualNet作为当前广泛使用的网络仿真软件具有较高的保真度和良好的扩展 性,同时也提供了相应的外部接口注册功能让QualNet可以和外部的软件或程序 进行通信。

针对本发明,进行了深入的文献及专利检索,相关度较高的文献如下:

(1)StaubT,GantenbeinR,BraunT.VirtualMesh:anemulationframeworkfor wirelessmeshnetworksinOMNeT++[C].InProceedingsofthe2ndInternational ConferenceonSimulationToolsandTechniques,2009:64.该文献提出一种基于网 络仿真器OMNeT++的网络模拟的框架,叫VirtualMesh。它使用了真实的协议栈, 可以通过虚拟网卡来捕捉节点的真实的网络流量,然后重定向于网络仿真器 OMNeT++。VirtualMesh在扩展网络拓扑和移动性测试上有很大的灵活性。 VirtualMesh的主要功能是拦截真实节点的网络流量,重定向到仿真模型里面, 然后控制网络接入和物理层的行为。网络栈被分成两部分,应用层、传输层和网 络层都是由真实节点或者虚拟节点控制。在MAC层,网络流量被虚拟网卡捕捉, 然后重定向到仿真模型里。仿真模型根据虚拟网络的拓扑、传播模型、干扰噪声 和节点位置来计算网络响应。它只仿真MAC层和物理层,其他层保持不变,正 常地工作在节点的Linux协议栈里。即使VirtualMesh支持动态网络的节点加入 或离开,和无线参数配置一样,诸如节点位置、移动模型等一些参数预先配置好 后就不能在仿真过程中按照突发需求进行动态修改。

(2)PengGong*,MingguanLi*,JiejunKong**,PingLi*,andDukKyung Kim***:AnInteractiveApproachforQualNet-basedNetworkModelEvaluation andTestingatRealTime[C].February16~19,2014ICACT2014.Korea该文献提出 一种和本发明较为相似的QualNet外部接口,它叫做“RTUI”,它同样是通过外 部程序或者软件与QualNet仿真器进行交互,然后改变仿真场景中的节点信息, 但是“RTUI”所实现的仅仅是用户对仿真进程的干预功能,至于当节点修改的 指令发送的到QualNet仿真服务器后,服务器何时修改节点信息是根据用户所发 送报文的时间来确定的,也就是说是当前发送当前修改,而且“RTUI”在处理 节点信息的时候是根据消息队列依次处理。没有办法按照实际情况对网络模型进 行定时的参数修改。特别的在处理批量控制指令时,“RTUI”就显得乏力了,它 没有办法处理同一时间对多个不同节点进行修改。如图1所示为PDSI接口和 RTUI接口处理报文原理对比示意图。

而本发明提出的一种面向Qualnet的仿真场景节点信息定时修改方法,面向 QualNet仿真器设计可编程动态控制接口(Programmabledynamic-simulation Interface,简称“PDSI”),并建立在外部程序与QualNet仿真器之间的PDSI仿真 框架,克服了上述文献中,无法实现动态修改、批量定时修改的缺陷。PDSI接 口支持了几乎所有协议层的节点参数修改,而且可修改的网络参数不仅包括了节 点的位置和加入或离开,还包括节点的其他多种网络参数(例如:发送功率、接 收阀值、带宽、接收灵敏度等)。并且不仅可以在仿真伊始对需要修改的节点参 数进行预设,还可以在仿真场景运行时进行节点参数修改,动态地根据预先的节 点参数修改指令进行定时的操作。同时它还支持同一时间批量处理多条节点修改 指令,让同一时间的多条节点修改指令能够在仿真场景同时执行,确保了网络仿 真更加真实精确。

发明内容

本发明的目的在于改进现有技术缺陷,通过远程主机和仿真模拟器的交互, 提出一种面向QualNet的仿真场景节点信息定时修改方法。

本发明一种面向QualNet的仿真场景节点信息定时修改方法所依托的系统 包括QaulNet仿真程序和PDSI接口开发框架;PDSI接口开发框架又包括PDSI 接口与外部程序;

其中,QaulNet仿真程序其功能是运行网络仿真场景并和PDSI接口进行交 互,其仿真场景可以是各种不同的网络仿真场景,如:战场仿真场景、交通仿真 场景、雷达网仿真场景;PDSI接口的功能是实现QualNet仿真程序与外部程序 的通信,起到连接QualNet仿真程序与外部程序的桥梁作用,PDSI接口又包括 UDPsocket、接收缓存、发送缓存、报文解析器、节点管理器、事件调度器、事 件处理器六部分;PDSI接口开发框架中的PDSI接口是基于QaulNet软件的API 函数实现的注册及调用,PDSI接口开发框架中的外部程序存在于QualNet仿真 程序之外,其功能是将仿真场景中需要修改的节点信息输入并通过UDPsocket 发送至PDSI接口;

基于上述所依托的系统,本发明的一种面向QualNet的仿真场景节点信息定 时修改方法包含PDSI接口注册和PDSI接口函数调用两部分;

首先,PDSI接口注册通过调用函数EXTERNAL_UserFunctionRegistration、 EXTERNAL_SetTimeManagementRealTime和EXTERNAL_SetReceiveDelay实 现,其具体步骤为:

步骤A.1函数EXTERNAL_UserFunctionRegistration通过 External_RegisterExternalInterface来声明一个PDSI接口;

步骤A.2函数EXTERNAL_UserFunctionRegistration为PDSI接口绑定相应 的回调函数;

步骤A.3函数EXTERNAL_SetTimeManagementRealTime管理仿真时间, 使其按照实际时间运行;

步骤A.4函数EXTERNAL_SetReceiveDelay设置两次接收报文之间的最小 延迟时间;

优选的最小延迟时间范围为300ms到1000ms,这样能有效防止过于频繁的 接收以及可能导致的性能降低;

经过步骤A.1、步骤A.2、步骤A.3和步骤A.4实现了PDSI接口注册;

其次,PDSI接口函数调用的具体步骤如图2所示为:

步骤B.1PDSI接口打开一个UDPsocket并监听预设的特定分区编号端口, 等待接收来自外部程序的报文,直至此外部程序报文到达;

步骤B.2步骤B.1的外部程序报文到达后,PDSI接口将检查此接收的每条 外部程序报文的完整性,并依据其完整性与否进行如下操作:

B.2.1若接收到的外部程序报文完整,则保留此外部程序报文;

B.2.2若接收到的外部程序报文不完整,则丢弃此外部程序报文;

其中,步骤B.1和步骤B.2中所述的外部程序报文中包含节点配置信息;

步骤B.3PDSI接口判断其接收缓存是否为空,并根据判断结果做如B.3.1 或B.3.2的相应操作:

B.3.1若其接收缓存为空,则丢弃此外部程序报文;

B.3.2若其接收缓存不为空,PDSI接口将通知报文解析器去解析位于接收缓 存队列里的外部程序报文,直至报文解析工作结束;

其中,接收缓存对接收到的外部程序报文的处理顺序为先进先出原则,即: 最先到达的外部程序报文首先被处理;

步骤B.4步骤B.3中报文解析器的解析工作结束后,节点管理器将管理存 在于QualNet仿真程序中的所有节点,并根据外部程序报文中的节点是否存在于 仿真场景中,做如下B.4.1或B.4.2的相应操作:

B.4.1若外部程序报文中的节点ID或IP地址字段所指定的节点存在于 QualNet仿真程序的仿真场景中,节点管理器将通知事件调度器去处理该外部程 序报文;

B.4.2若指定的节点并不存在于仿真场景,节点管理器将产生一个PDSI错 误报文,作为对请求此外部程序报文的应答,放入发送缓存;

步骤B.5根据外部程序报文中的节点ID或IP地址,事件调度器查找出该 节点的事件处理器指针,并调度事件处理器去处理此外部程序报文;

步骤B.6事件处理器从外部程序报文中读取出节点类型和参数类型字段, 并依据此修改QualNet仿真程序中相应节点的协议栈模型或者移动模型里的参 数,并根据修改的参数信息,进行如下操作:

B.6.1若某个参数被修改,协议栈模型里跟这个参数相关的其它变量也会被 重新计算;

B.6.2若某节点的位置坐标或者移动路径被修改了,则含此节点的移动模型 里的二叉堆也会被重新调整;

步骤B.7当步骤B.6结束后,即事件处理器成功访问或修改节点模型里的 参数后,事件处理器将产生一个确认报文并放入发送缓存;

步骤B.8发送缓存将步骤B.7输出的确认报文通过UDPsocket发送给外部 程序;

至此,经过步骤B.1到步骤B.8实现了PDSI接口函数调用。

有益效果

本发明提出了一种面向QualNet的仿真场景节点信息定时修改方法,具有如 下有益效果:

(1)本发明中一种新的实时的可编程动态仿真接口,即外部程序被提出用 于QualNet的网络仿真评估和测试:可以修改的节点信息包含了几乎所有协议层 的节点信息;

(2)PDSI能够将外部软件或程序的节点信息修改报文传递至QualNet仿真 模拟器,且能够成功地动态、批量、定时修改网络仿真场景节点信息并返回确认 信息。本发明中节点修改的方式可批量处理同一时间的多条不同指令比现有技术 更具扩展性;

(3)节点参数信息包括了节点的位置、发送功率、接收阀值等种类比现有 技术可修改的节点多。

附图说明

图1是本发明一种面向QualNet的仿真场景节点信息定时修改方法及实施例 中的PDSI接口和RTUI接口处理报文原理对比示意图;

图2是本发明一种面向QualNet的仿真场景节点信息定时修改方法及实施例 中的PDSI接口函数调用的具体步骤示意图;

图3是本发明一种面向QualNet的仿真场景节点信息定时修改方法及实施 例1中的网络场景示意图;

图4是本发明一种面向QualNet的仿真场景节点信息定时修改方法的具体实 施例中报文在各个函数中的处理流程示意图;

图5是本发明一种面向QualNet的仿真场景节点信息定时修改方法的实施例 2、3、4的网络场景示意图。

具体实施方式:

下面结合附图和实施例对本发明做进一步说明和详细描述:

网络仿真场景如图3所示,图中的蓝色线条表示有线连接,节点1到节点 10以及节点20,21是通过无线连接的。节点1到10的MAC层协议是Link16。 节点11到节点19是雷达站,节点1到5是控制中心,节点6到10以及节点20, 21是飞机节点,节点22到25是军用设备。雷达节点可以探测到目标,如飞机 节点,控制中心可以和雷达节点之间或飞机节点之间进行通信。

在本实施例中按照上述配置方法,采用QualNet-5.021linux版本,Qt5.1版本 进行实现。配置文件采用如下格式:

PDSIYES

实施例1

仿真初始化后在外部程序上按照表1和表2分别对节点12和节点1参数信 息进行修改,发送至QualNet。然后仿真开始,表1为外部程序改变节点12的 雷达工作参数;表2为外部程序改变节点1的Link16工作参数。

表1雷达工作参数

参数名称 参数值 扫描周期 1000ms 发射功率 1000w 天线增益 15dB 脉冲波长 10m 系统损耗 1dB 噪声系数 1dB 接收机带宽 1MHz 抗干扰因子 30dB 波束宽度 10 最小可识别信噪比 5 时间 20s

表2Link16通信参数

仿真结果显示,节点1和节点12的工作参数均在预设的时间点上发生相应 变化,外部程序也接收到节点参数修改成功信息。该实施例表明了PDSI接口能 够成功修改网络仿真场景中不同类型的节点参数(雷达节点属于应用层、Link16 节点属于物理层)。其中节点信息报文在函数中的处理过程如图4所示,步骤如 下:

1.初始化函数voidPDSI_InitializeNodes(EXTERNAL_Interface *iface,NodeInput*nodeInput)给每个分区的PDSI接口都创建套接字,但是只有分 区编号为零的监听5134号端口;

2.绑定端口号后,通过接收函数voidPDSI_Receive(EXTERNAL_Interface *iface)接收来自外部程序的报文,每当接收到一个完整的报文就调用void Processmessage(EXTERNAL_Interface*iface,char*in)函数处理接收到的报文;

3.如果该报文中标识的节点在此分区内则调用函数 EXTERNAL_MESSAGE_SendAnyNode(iface,node,msg,delay,EXTERNAL_SCHE DULE_LOOSELY)将解析后的报文信息延迟delay秒后发送到相应节点上;

4.否则调用voidPDSI_Forward(EXTERNAL_Interface*iface,Node*node,void *forwardData,intforwardSize)发送一条错误报文至5135端口号,由外部程序接收。

5.然后由函数voidPDSI_ProcessEvent(Node*node,Message*msg)获取发送 到节点上的信息,根据信息的类型选择相应的setData()函数处理获取的信息来修 改节点的参数;

6.若设置成功后通过voidPDSI_Forward()发送一条正确报文至5135号端口, 否则通过voidPDSI_Forward()返回一条错误报文至5135号端口。

图5为QualNet仿真器中预先配置的网络场景,图中展示了基于QualNet仿 真器上的一个ad-hoc网络模型。

为了简单起见,预先设置从节点1到节点5简单的数据传输模型,节点2/3/4 为路由器,数据传输路径为1→2→3→4→5。所有节点的发射功率和接收阀值分 别预先设定为15dBm和-81dBm。然后我们通过可编程动态仿真接口,即PDSI 接口修改节点的发射功率、接收阀值、节点坐标等配置信息。

在以下实施例中按照上述配置方法,采用QualNet-5.021linux版本,Qt5.1 版本进行实现。配置文件采用如下格式:

PDSIYES

PDSIYES表示该仿真场景启用PDSI接口功能。

实施例2

仿真初始化后在外部程序上按照表3对仿真节点参数信息进行修改,发送至 QualNet。然后仿真开始,表3为外部程序改变节点2的网络参数。

表3节点2的配置参数变化动态

时间 在外部程序上的节点2配置参数变化动态 0 仿真开始 T1 节点2关闭 T2 节点2Y-坐标轴从900变化到600 900 仿真结束

在仿真伊始按照表1对仿真场景节点2进行参数配置,仿真结果表明,在 T1时节点2关闭,节点1-5之间通信断开,外部程序接收到参数修改成功信息, 在T2时节点2的坐标发生相应变化,外部程序接收参数修改成功信息;

同样按照表1在仿真开始后一段时间(仿真时间还未到达T1)对节点2进 行参数配置,仿真结果表明结果和仿真伊始进行参数配置时一样;

继续按照表1在仿真时间在T1和T2之间时进行节点2参数配置,仿真结果 发现T1时的节点配置失败,节点1-5之间通信正常,而T2时的节点配置成功;

最后在仿真时间大于T2时对节点2进行表1配置,仿真结果表明2条配置 指令均失败。

上述实施例结果表明PDSI接口不仅能够在仿真伊始对网络场景节点进行定 时配置,该操作还可以在仿真运行时进行,只要配置的时间大于当前网络仿真时 间。这表明PDSI接口能够动态的定时修改网络仿真场景中的节点信息。

实施例3

仿真初始化后在外部程序上按照表4对仿真节点参数信息进行修改,发送至 QualNet。然后仿真开始,表4为外部程序改变不同仿真时间不同节点的网络参 数。

表4外部程序改变不同仿真时间不同节点的网络参数

根据表4进行参数修改,在仿真开始时节点1-5之间相互连通,待仿真进行 到T1时发现节点1-5之间通信断开,直至T2时节点1-5通信又恢复;待仿真时 间进行到T3时发现节点1、2、3的坐标发生了相应的变化,直至T4时节点1、 2、3的坐标又恢复到原来的位置。在T1、T2、T3、T4仿真时间,外部程序分别 收到了来至QualNet的返回信息显示节点修改成功。该实施例表明了本发明能够 成功地批量、定时修改网络仿真场景节点信息并返回确认信息。本发明中节点修 改的方式可批量处理同一时间的多条不同指令比现有技术更具扩展性。

实施例4:仿真初始化后在外部程序上按照表5对仿真节点参数信息进行修改,发送至 QualNet。然后仿真开始,表5为外部程序改变不同仿真时间节点4的网络参数。

表5外部程序改变不同仿真时间节点4的网络参数

时间 在外部程序上的节点4配置参数变化动态 0 仿真开始 T1 发射功率从15dBm变化到1dBm T2 发射功率从1dBm变化到15dBm T3 接收阀值从-81dBm变化到-50dBm T4 接收阀值从-50dBm变化到-81dBm T5 Y-坐标轴从900变化到600 T6 Y-坐标轴从600变化到900 900 仿真结束

该实施例成功地说明了本发明修改的节点信息种类多样,并以修改节点4的参数信息为 例:可以修改节点位置、发送功率、接收阀值等种类的节点信息。

以上所述的实施例为本发明一种面向QualNet的仿真场景节点信息定时修改方法的较佳 实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开 的精神下完成的等效或修改,都落入本发明保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号