System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于信息工程,具体涉及一种基于ns3网络仿真平台的数据链仿真方法。
技术介绍
1、目前在网络仿真领域,已有许多学者借助ns2仿真软件、opnet仿真软件和vrnet等网络仿真软件完成了对link-16数据链模型的仿真,然而由于上述网络仿真软件自身结构框架的局限性,导致当前有关link-16数据链的仿真方法的普适性大大降低。ns3(networksimulatorversion-3)作为一款免费开源的、综合了很多优秀模拟器特点的离散时间网络仿真模拟器,主要应用于网络仿真领域,提供了许多网络协议以及通信模型的同时也为网络开发者提供了大量的接口和基类,具有易扩展性和高集成性等特点,研究人员可根据自己的需要对网络仿真的同时还可以设计网络各层的算法和改善模型。然而,当前ns3官方所提供的模块库无法实现对link-16数据链的仿真,从而导致基于ns3的link-16数据链仿真受限。因此如何将ns3应用于link-16数据链仿真是一个值得关注的问题。
技术实现思路
1、解决的技术问题:针对现有ns3网络仿真器无法实现link-16数据链仿真的技术问题,本专利技术提出了一种基于ns3网络仿真平台的数据链仿真方法,通过ns3的软件框架和类,实现ns3网络仿真平台对link-16数据链的仿真。
2、技术方案:
3、一种基于ns3网络仿真平台的数据链仿真方法,所述数据链仿真方法包括以下步骤:
4、s1,将link-16数据链整体模型拆分成不同功能的子模块,包
5、s2,创建继承于application父类的j系列消息生成处理子类,用于创建和接收link-16数据链固定格式报文;
6、s3,创建继承于object父类的节点中继子类,用于接收处理转发各种不同的固定格式报文,完成link-16数据链节点中继的任务;
7、s4,创建继承于netdevice父类的netdevice控制子类,该类对报文进行解析处理、报文包头添加和报文入队操作;
8、s5,创建继承于object父类的队列组子类,该类创建队列组;
9、s6,创建继承于object父类的tdma系统子类,通过ns3计时器simulator::schedule()实现系统的tdma功能和对队列组进行出队管理;
10、s7,创建继承于object父类的报文处理及信道控制子类,用于将报文拆分成码片组,再基于码片组,通过预先设置的调频图案伪随机选取信道传播码片序列;
11、s8,创建继承于channel父类的无线信道子类,用于完成link-16数据链的无线信道传输模型;
12、s9,将上述步骤s2至s8中所创建的子类通过各类中所创建的原语函数和回调函数相关联;
13、s10,在ns3文件夹的scratch文件夹下创建link-16数据链的仿真脚本,对步骤s2至s8做创建类并调用类函数,对link-16数据链进行仿真。
14、进一步地,步骤s2中,创建继承于application父类的j系列消息生成处理子类的过程包括以下步骤:
15、s21,创建继承于header父类的j系列消息库以对j系列消息进行生成与读取,具体地,通过ns3网络仿真平台中packet类的addheader函数将j系列消息添加到创建的packet包中,通过ns3网络仿真平台中packet类的removeheader函数读取packet包中的j系列消息;
16、s22,创建第一原语函数和第一回调函数以使报文以及非报文信息在j系列消息生成处理子类和节点中继子类之间传输;其中,第一原语函数在ns3网络仿真平台中的作用为将j系列消息生成处理子类中的报文以及非报文信息传输到其它类中,第一回调函数是将其他子类中的报文以及非报文信息传输到j系列消息生成处理子类中;
17、s23,创建j系列消息生成发送函数sendlink16,用于生成和传输j系列消息;
18、s24,创建j系列消息接收处理函数recvlink16,用于j系列消息的接收和处理。
19、进一步地,步骤s3中,创建继承于object父类的节点中继子类的过程包括以下步骤:
20、s31,创建第二原语函数和第二回调函数以使报文以及非报文信息在节点中继子类和j系列消息生成处理子类之间传输;创建第三原语函数和第三回调函数以使报文以及非报文信息在节点中继子类和netdevice控制子类之间传输;
21、s32,创建节点中继函数relaypacket(),执行中继节点的节点中继功能;执行过程包括:
22、s321,判断接收到的报文是否来自j系列消息生成处理子类,如果是,记录报文id后直接将报文传递到netdevice控制子类中,结束函数;如果不是,转入步骤s322;
23、s322,读取报文的id判断报文是否已经接收过,如果已经接收过,结束函数,否则,转入步骤s323;
24、s323,通过调用容器的添加函数push_back(),记录报文id;
25、s324,将报文通过第二回调函数传递给j系列消息生成处理子类;
26、s325,判断继承于object父类的节点是否被规划为中继节点,如果为中继节点,则将报文传递给netdevice控制子类,否则,结束函数。
27、进一步地,步骤s4中,创建继承于netdevice父类的netdevice控制子类的过程包括以下步骤:
28、s41,创建第四原语函数和第四回调函数以使报文以及非报文信息在netdevice控制类和节点中继子类之间传输;创建第五原语函数和第五回调函数以使报文以及非报文信息在netdevice控制子类和队列组子类之间传输;
29、s42,创建继承于header类的报头库,通过packet类的addheader()函数和removeheader()函数添加和处理报头;
30、s43,创建报文处理及入队函数packethandle(),用于总体控制报头的添加和处理报文的入队操作;
31、当netdevice控制子类接收到报文时,首先判断报文是否来自于节点中继子类,如果是,读取节点中继子类传递而来的报文,通过报文的初始字中的标识和子标识判断j系列消息所参与的网络参与群,将含有节点终端航迹号的报头添加到报文后,再将添加报头后的报文根据其网络参与组添加到相应的队列中;否则,通过ns3网络仿真平台中packet类的removeheader()函数读取报文的报头中的终端航迹号和报头中其它的报文信息,将报文信息和要传输的非报文信息直接上传到节点中继子类中。
32、进一步地,步骤s5中,创建继承于object父类的队列组子类的过程包括以下步骤:本文档来自技高网...
【技术保护点】
1.一种基于NS3网络仿真平台的数据链仿真方法,其特征在于,所述数据链仿真方法包括以下步骤:
2.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S2中,创建继承于Application父类的J系列消息生成处理子类的过程包括以下步骤:
3.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S3中,创建继承于Object父类的节点中继子类的过程包括以下步骤:
4.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S4中,创建继承于NetDevice父类的NetDevice控制子类的过程包括以下步骤:
5.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S5中,创建继承于Object父类的队列组子类的过程包括以下步骤:
6.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S6中,创建继承于Object父类的TDMA系统子类的过程包括以下步骤:
7.根据权利要求6所述的基于NS3网
8.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S7中,创建继承于Object父类的报文处理及信道控制子类的过程包括以下步骤:
9.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S76中,采用码片序列跳频函数ForwardDown()向无线信道子类传递报文的过程包括以下步骤:
10.根据权利要求1所述的基于NS3网络仿真平台的数据链仿真方法,其特征在于,步骤S8中,创建继承于Channel父类的无线信道子类的过程包括以下步骤:
...【技术特征摘要】
1.一种基于ns3网络仿真平台的数据链仿真方法,其特征在于,所述数据链仿真方法包括以下步骤:
2.根据权利要求1所述的基于ns3网络仿真平台的数据链仿真方法,其特征在于,步骤s2中,创建继承于application父类的j系列消息生成处理子类的过程包括以下步骤:
3.根据权利要求1所述的基于ns3网络仿真平台的数据链仿真方法,其特征在于,步骤s3中,创建继承于object父类的节点中继子类的过程包括以下步骤:
4.根据权利要求1所述的基于ns3网络仿真平台的数据链仿真方法,其特征在于,步骤s4中,创建继承于netdevice父类的netdevice控制子类的过程包括以下步骤:
5.根据权利要求1所述的基于ns3网络仿真平台的数据链仿真方法,其特征在于,步骤s5中,创建继承于object父类的队列组子类的过程包括以下步骤:
6.根据权利要求1所述的基于ns3网络仿真平台...
【专利技术属性】
技术研发人员:潘成胜,陆煌杰,王英植,石怀峰,
申请(专利权)人:南京信息工程大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。