System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通信网络,更具体地说,它涉及一种适用于网络协议研发的轻量级代码可重用框架。
技术介绍
1、为更好地研究通信协议的效果和特性,通常在某个新的通信协议制定时,研究人员和工程师需要投入大量的时间进行仿真验证;比如研究者们在不同平台上开发了多种tsn协议栈和仿真模型,以深化对时间敏感网络的理解;例如,omnet++平台上的inet和nesting模型库,但这些模型难以快速部署于其他平台,且代码修改对其他研究者来说相当复杂。此外,代码跨平台复用性差,要求研究者为不同平台编写不同代码,降低了效率。
2、尽管目前网络协议所采用的仿真器种类繁多(omnet++/opnet/ns3),但仍然存在以下问题:①仿真代码虽然在大规模测试场景中验证系统功能方面具有优势,但由于其与仿真平台的强绑定性,无法直接应用于其他仿真平台和实际环境。②实际代码实现后,构建大规模测试场景时,往往面临着时间和成本等挑战,难以验证其在真实应用中的有效性。
技术实现思路
1、本专利技术的目的在于提供一种适用于网络协议研发的轻量级代码可重用框架,通过分离协议逻辑与平台函数,使网络协议代码能够在不同平台上高效重用,有效避免网络协议代码的重复开发;同时还提供了用于快速构建各种失效场景的故障注入层。
2、本专利技术的上述技术目的是通过以下技术方案得以实现的:
3、第一方面,本申请提供了一种适用于网络协议研发的轻量级代码可重用框架,可重用框架包括适配器框架、平台无关层、故障注入模块和协议层
4、适配器框架用于执行:对操作系统或仿真平台提供的网络相关函数进行二次封装,并通过平台定时器适配机制来支持时间敏感网络及其他网络协议的定时行为;
5、平台无关层用于执行:对数据包进行收发和加错,并对离散时间事件列表进行维护,以及对平台无关时间值进行获取和修改;
6、故障注入模块位于平台无关层内,并用于执行:将各故障分解为基本故障,并将基本故障对应的故障描述符注入各端口发送的数据包内;
7、协议层用于执行:基于树形结构协议层通过在配置文件中指定协议类型并绑定父类协议以创建新协议,并对通信接口进行管理。
8、在上述技术方案的基础上,本专利技术还可以做如下改进。
9、进一步,上述网络相关函数进行二次封装,具体为:
10、对上层协议层的接口统一为标准的收发函数和寄存器读写函数,对下层平台采用支持不同平台的网络数据帧收发的平台适配机制。
11、进一步,上述平台定时器适配机制来支持时间敏感网络及其他网络协议的定时行为,具体为:
12、初始化阶段,平台无关层创建离散时间事件列表,并调用相应平台的定时器创建函数、定时器和piltimer对象;
13、运行时,协议层通过向平台无关层的事件列表增加或删除定时事件描述符增添或取消定时事件,且定时事件描述符保存相应回调函数的地址,当事件触发时回调相应的函数处理相应事件;
14、当piltimer对象触发时,平台无关层在离散时间事件列表中筛选出触发时间在当前平台系统时间前的事件,并依次运行回调函数进行处理;
15、平台无关层在事件列表中查找触发时间小于当前平台系统时间的事件,且对于所有满足条件的事件,平台无关层依次运行事件描述符中的回调函数进行事件的处理。
16、进一步,上述数据包的收发,具体为:
17、平台无关层创建虚拟网络端口,并得到虚拟网络端口与平台端口之间映射的映射表;
18、根据映射表执行协议层向下发送数据、平台端口接收到数据以及协议层进行寄存器读写的操作;
19、对于发送数据方向,若协议层调用平台无关层的send方法,将待发送数据发往对应的虚拟网络端口,根据映射表的映射规则,传递给平台端口并调用平台发送数据的函数;对于接收数据方向,平台无关层利用多平台适配的数据接收机制接收数据帧,通过对应的虚拟网络端口和数据包描述符得到相应协议,并调用相应协议的receive函数;对于寄存器的操作,调用操作系统的ioctl方法,若底层为仿真软件则不处理。
20、进一步,上述基于树形结构协议层通过在配置文件中指定协议类型并绑定父类协议以创建新协议,并对通信接口进行管理,具体为:
21、协议完成接口函数的注册,并完成协议实例树以及当前协议所需要数据结构的初始化;
22、周期性的通过协议实例管理树的notify接口上报当前运行状态,或主动调用notify接口上报当前的异常情况,并在定制实验场景时通过config接口完成对协议的配置管理。
23、进一步,上述基于协议层进行数据收发时,对于发送方向:
24、基于完成的协议组帧,生成对应的数据包描述符,并调用协议的send方法;
25、基于send方法,代发数据通过协议树发送给父协议;
26、对于接收方向:
27、底层基于接收到数据,根据数据包描述符的协议类型,通过协议树找到子协议注册的receive方法;
28、调用子协议注册receive方法,并根据数据包描述符的协议类型,通过协议树将待发送数据送给对应的子协议。
29、进一步,上述故障描述符表征了故障发生的端口、出现故障的协议类型、故障开始的时间、故障结束的时间、故障类型和需要修改的数值。
30、进一步,上述将基本故障对应的故障描述符注入各端口发送的数据包内,具体为:
31、将完成初始化后的故障事件以故障描述符的形式放入各设备各端口的故障注入层维护的描述符队列中;
32、通过设置定时器的方式,在故障开始时刻将相应的故障描述符从描述符队列中取出并放入当前故障队列,并在故障结束时刻将相应的故障描述符从当前故障队列中删除;
33、故障注入层接收到上层协议下发的数据帧时,故障注入层遍历当前的描述符队列,若存在当前数据帧协议的故障描述符,根据故障描述符对数据帧进行修改或者延时发出。
34、第二方面,本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现第一方面中任一项的方法。
35、第三方面,本申请提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面中任一项的方法。
36、与现有技术相比,本专利技术至少具有以下的有益效果:
37、在本申请中,提供了一种支持网络协议代码跨平台复用的方法,旨在解决现有网络协议研发过程中代码重用率低,难以灵活构建实验场景的问题,通过一套协议代码能够在不同的系统和平台上直接使用,无需进行复杂的改装或修改;使用该方法编写的网络协议代码的优势在于:1.统一的协议层接口和良好的解耦性,实现协议代码逻辑与平台函数的分离,能够在不同平台上快速部署并保持协议功能的一致性,增强了代码的可移植性和复用性;2.包含故本文档来自技高网...
【技术保护点】
1.一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,可重用框架包括适配器框架、平台无关层、故障注入模块和协议层,其中:
2.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,网络相关函数进行二次封装,具体为:
3.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,平台定时器适配机制来支持时间敏感网络及其他网络协议的定时行为,具体为:
4.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,数据包的收发,具体为:
5.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,基于树形结构协议层通过在配置文件中指定协议类型并绑定父类协议以创建新协议,并对通信接口进行管理,具体为:
6.根据权利要求5所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,基于协议层进行数据收发时,对于发送方向:
7.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,所述故障描述符表征了
8.根据权利要求7所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,将基本故障对应的故障描述符注入各端口发送的数据包内,具体为:
9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现权利要求1-8中任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行权利要求1-8中任一项所述的方法。
...【技术特征摘要】
1.一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,可重用框架包括适配器框架、平台无关层、故障注入模块和协议层,其中:
2.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,网络相关函数进行二次封装,具体为:
3.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,平台定时器适配机制来支持时间敏感网络及其他网络协议的定时行为,具体为:
4.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,数据包的收发,具体为:
5.根据权利要求1所述的一种适用于网络协议研发的轻量级代码可重用框架,其特征在于,基于树形结构协议层通过在配置文件中指定协议类型并绑定父类协议以创建新协议,并对通信接口进行管理,具体为:
6.根据权利要求5所述的一种适用...
【专利技术属性】
技术研发人员:黄柏林,彭逸飞,马超,孟中楼,李继,岳普,涂晓东,许都,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。