本发明专利技术提供了一种基于HPLC网络中载波通信报文的去重方法,利用HPLC网络载波通信报文中的MSDU序列号(HPLC链路层MAC帧头中携带的MSDU序列号字段)来判断是否是重复的报文,MSDU序列号是生成MSDU帧的节点设备分配给该MSDU帧的递增序列号,其他节点设备接收到该MSDU帧后,不能修改接收到的这个MSDU序列号,如果需要转发,则直接进行转发。通过本发明专利技术的技术方案,依据本专利提供的方法进行报文去重方式只需要通过计算公式1和公式2的值,和普通报文去重进行循环查询的方式比对MSDU帧序列号的去重方式相比,本专利的报文去重方式效率更高,准确性更强。准确性更强。准确性更强。
【技术实现步骤摘要】
一种基于HPLC网络中载波通信报文的去重方法
[0001]本专利技术涉及载波通信
,具体而言,特别涉及一种基于HPLC网络中载波通信报文的去重方法。
技术介绍
[0002]目前国网HPLC网络应用于用采网络、低压配电网络等不同应用场景中,载波通信技术发展日趋完善,电力线上载波通信报文数据量也随之增加,HPLC网络中的节点设备(包含CCO和STA)如何区分接收到的载波通信报文是否需要进一步处理,这就涉及到了载波通信报文的筛选和去重的问题。
[0003]载波通信报文的筛选主要是指筛选出节点设备所在HPLC网络的报文,载波通信报文中会携带有网络标识符(简称SNID),不同的HPLC网络的网络标识符是不一样的,可以通过所在HPLC网络的网络标识符进行本网络载波通信报文的筛选。
[0004]载波通信报文的去重是指去除所在HPLC网络中接收到的重复的载波通信报文,减少设备对重复载波通信报文的处理,提升报文处理效率。
[0005]重复报文接收情景一:HPLC网络是树型结构网络,相邻层级间的报文发送是存在转发机制的,这就存在某些节点设备可以接收到重复的载波通信报文的情况;重复报文接收情景二:在通信链路通信效果不好的情况下会存在本地广播的情况,本地广播是指代理节点以广播的形式发送载波通信报文,另外,某些业务通信需求需要进行全网数据广播,全网广播是指HPLC网络中所有代理节点转发接收到的载波通信报文。广播报文是主要需要进行去重的报文。
技术实现思路
[0006]为了弥补现有技术的不足,本专利技术提供了一种基于HPLC网络中载波通信报文的去重方法。
[0007]本专利技术是通过如下技术方案实现的:一种基于HPLC网络中载波通信报文的去重方法,具体包括以下步骤:步骤S1:定义结构体数组,数组元素个数与实际网络规模中节点设备个数保持一致,结构体数组命名为g_bitmap,每个节点设备都定义有该数组,数组脚标与节点设备终端设备标识保持一致,在结构体中定义一个名称为bitmap的32bit的变量,用于保存更新接收到对应节点设备载波通信报文MSDU序列号的状态;定义保存MSDU帧序列号的变量为msdu_sn,定义变量sn_cnt和变量offset,三个变量初始值均为0;步骤S2:节点设备接收到本网络MSDU报文,提取报文中的MSDU帧序列号,保存到变量msdu_sn中,同时从MSDU报文中提取发送该报文的节点设备的TEI;步骤S3:将MSDU帧序列号依据公式(1)转换成offset值,offset = msdu_sn
ꢀ‑ꢀ
sn_cnt<<4(1);每当offset等于32时,sn_cnt值加1,此时bitmap的低16位要移位到高16位;
步骤S4:将MSDU帧序列号依据公式1转换成的offset值代入公式2,如果公式(2)计算出的结果是0,则进行步骤S5处理,如果公式2计算出的结果是1,则进行步骤S6处理;g_bitmap[i].bitmap&(1<<(31
ꢀ–
offset)(2);步骤S5:公式(2)计算结果为0,说明接收的MSDU报文是新的报文,转步骤S7更新g_bitmap[i].bitmap的值。
[0008]步骤S6:公式(2)计算结果为1,说明接收的MSDU报文是旧的报文,变量g_bitmap[i].bitmap已经记录过该报文的MSDU帧序列号,记录该MSDU序列号的报文已经接收并处理过,丢弃该报文;步骤S7:更新g_bitmap[i].bitmap的值:将32bit的变量g_bitmap[i].bitmap分为两组,高16位和低16位,低16位用来记录新MSDU序列号;步骤S8:判断节点设备的重启标志;步骤S9:判重流程结束。
[0009]作为优选方案,步骤S7中如果是新的MSDU序列号,低16位中处于最高位置没被置1的bit置1,假设当前没有被置1的最高位是bit12,那么bit12置1,bit15~bit13已经置1了;当低16位全部置1后,将低16位移位到高16位,高16位用于保存当前前16个最新的MSDU序列号,依次循环操作,即可以记录更新节点设备MSDU序列号为最新;每次接收到MSDU序列号时,通过比较对应bit位的值,即可判重出是否是重复报文。
[0010]进一步地,如果对应bit位的值为1,报文是重复报文,需丢弃处理;如果对应bit位的值为0,报文是新报文,该bit为需要置1。
[0011]作为优选方案,步骤S8中若节点设备重启了,变量msdu_sn、sn_cnt、offset和g_bitmap[i].bitmap需要清零,重新对该节点设备的MSDU帧进行判重记录。
[0012]本专利技术由于采用了以上技术方案,与现有技术相比使其具有以下有益效果:依据本专利提供的方法进行报文去重方式只需要通过计算公式1和公式2的值,和普通报文去重进行循环查询的方式比对MSDU帧序列号的去重方式相比,本专利的报文去重方式效率更高,准确性更强。
[0013]HPLC网络都会存在多个层级,层级越高,每帧全网广播的载波通信报文在网络中传输的时间就会加长,全网广播类型的载波通信报文在去重处理流程中需要保存的时间就需要加长,即需要在节点设备中需要保存一定时长,普通报文判重方式,一般是将接收的载波通信报文的msdu帧序列号进行保存,时间越长需要保存的msdu帧序列号越多,所以需要消耗节点设备系统的内存空间就需要增加,本专利提供的报文去重方式不会带来额外内存空间消耗,与普通报文判重方法比较,可以降低内存空间消耗。
[0014]本专利技术的附加方面和优点将在下面的描述部分中变得明显,或通过本专利技术的实践了解到。
附图说明
[0015]本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1为本专利技术的节点设备报文去重处理流程图;图2为步骤2的流程图;
图3为步骤3、4、5、7流程图;图4步骤3、4、6 流程图。
具体实施方式
[0016]为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合附图和具体实施方式对本专利技术进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0017]在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是,本专利技术还可以采用其他不同于在此描述的方式来实施,因此,本专利技术的保护范围并不受下面公开的具体实施例的限制。
[0018]下面结合图1至图4对本专利技术的实施例的基于HPLC网络中载波通信报文的去重方法进行具体说明。
[0019]本专利技术的基本原理是利用HPLC网络载波通信报文中的MSDU序列号(HPLC链路层MAC帧头中携带的MSDU序列号字段)来判断是否是重复的报文,MSDU序列号是生成MSDU帧的节点设备分配给该MSDU帧的递增序列号,其他节点设备接收到该MSDU帧后,不能修改接收到的这个MSDU本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于HPLC网络中载波通信报文的去重方法,其特征在于,具体包括以下步骤:步骤S1:定义结构体数组,数组元素个数与实际网络规模中节点设备个数保持一致,结构体数组命名为g_bitmap,每个节点设备都定义有该数组,数组脚标与节点设备终端设备标识保持一致,在结构体中定义一个名称为bitmap的32bit的变量,用于保存更新接收到对应节点设备载波通信报文MSDU序列号的状态;定义保存MSDU帧序列号的变量为msdu_sn,定义变量sn_cnt和变量offset,三个变量初始值均为0;步骤S2:节点设备接收到本网络MSDU报文,提取报文中的MSDU帧序列号,保存到变量msdu_sn中,同时从MSDU报文中提取发送该报文的节点设备的TEI;步骤S3:将MSDU帧序列号依据公式(1)转换成offset值,offset = msdu_sn
ꢀ‑ꢀ
sn_cnt<<4(1);每当offset等于32时,sn_cnt值加1,此时bitmap的低16位要移位到高16位;步骤S4:将MSDU帧序列号依据公式1转换成的offset值代入公式2,如果公式(2)计算出的结果是0,则进行步骤S5处理,如果公式2计算出的结果是1,则进行步骤S6处理;g_bitmap[i].bitmap &(1<<(31
ꢀ–
offset)(2);步骤S5:公式(2)计算结果为0,说明接收的MSDU报文是新的报文,转步骤S7更新g_bitmap[i].bitmap的值;步骤S6:公...
【专利技术属性】
技术研发人员:吴俊强,刘德波,郭行,赵勇,刘永琪,
申请(专利权)人:青岛联众芯云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。