基于帧记忆池的PRP协议重复帧判别处理方法及系统与流程

文档序号:31628320发布日期:2022-09-24 01:15阅读:27来源:国知局
基于帧记忆池的PRP协议重复帧判别处理方法及系统与流程
基于帧记忆池的prp协议重复帧判别处理方法及系统
技术领域
1.本发明属于高可用网络通信技术领域,特别是涉及一种基于帧记忆池的prp重复帧判别处理方法及系统。


背景技术:

2.并行冗余协议(parallelredundancyprotocol,prp)是iec62439标准中针对控制领域网络通信高可用需求,在tcp/ip基础上改进的一种零丢包通信机制,prp通过连接在两个独立的子网上的两个网口发送复制的、在数据尾部追加prp特定信息rct(帧号sequencenumber、长度、prp协议类型、通道号等)字段的报文,接收方也通过连接在独立的子网上的两个网口接收报文,通过对数据尾部rct字段信息判断,提交先接收到的报文,丢弃后接收到的帧(frame)。
3.现有的重复帧判别处理算法主要有基于序列号的双窗口丢弃机制、基于源mac(mediaaccesscontroladdress)及序列号表的查找机制,基本上都没考虑帧乱序接收情形,并且偶尔还会出现提交个别重复帧的现象。所谓传统帧乱序接收是指接收方接收到的帧序号出现非递增顺序的情形,也就是新、后到帧帧号小于先到帧帧号,在这种情形下现有的机制会丢弃合法帧。所谓提交个别重复帧是指重复提交应该丢弃的同一帧号的报文,往往出现在基于滑动窗口的丢弃机制中。


技术实现要素:

4.本发明目的在于提供一种可以兼容以太网报文乱序情形时用于重复帧判断处理的数据结构及判断方法,解决现有技术在帧乱序接收情形下,处理效率较低,并且偶尔还会出现提交个别重复帧的问题。
5.为了实现本发明目的,本发明公开了一种基于帧记忆池fmp(framememorypool)的prp重复帧判别处理方法,包括以下步骤:
6.步骤1、帧记忆池fmp记录prp报文帧及对应的相关信息,并根据发送方mac地址建立帧记忆子池fmsp(framememorysubpool);
7.步骤2、帧记忆池fmp通过发送方mac地址进行分类索引,将源于同一mac地址的信息存放于同一个fmsp中;
8.步骤3、当节点接收到新prp报文帧f
p
时,根据f
p
的源mac地址smac
fp
索引到对应于smac
fp
的帧记忆子池,并对f
p
和进行处理。
9.进一步地,所述的与prp报文帧f
p
对应的相关信息包括发送方的源mac地址smac
fp
、prp报文帧帧号sn
fp
、到达时间、接收通道号。
10.进一步地,fmp为结构数组链表或二维数组链表,初始时为空,并分别设有一个空的头指针pfmphead和尾指针pfmptail;结构数组链表或二维数组链表的每一个成员对应网络中每个发送节点的fmsp,每个fmsp存放从相应发送节点mac地址的接收到的报文帧帧号sn
fp
及对应的相关信息。
11.进一步地,检查中是否存在f
p
的帧号sn
fp
,并根据检查结果作出进一步处理,具体步骤如下:
12.步骤3-1、根据f
p
的smac
fp
查找到对应的,如果未查找到,则跳到步骤3-3;
13.步骤3-2、检查中是否存在f
p
的sn
fp
;如果存在,则删除中的sn
fp
及对应的相关信息,并丢弃f
p
,跳到步骤3-5;
14.步骤3-3、为smac
fp
创建一个帧记忆子池,并将f
p
对应的相关信息填入;如果phead为空,则pfmphead指向,pfmptail 指向;否则,pfmptail

next指向,然后pfmptail指向;
15.步骤3-4、在中增加sn
fp
及相关信息,然后将f
p
中的rct字段删除后,提交到上层协议;
16.步骤3-5、完成处理。
17.进一步地,组成prp网络的每个节点中的两个网卡驱动同时维护一个fmp。
18.进一步地,当到达时间不为0时,表示prp报文帧帧号sn
fp
对应的成员有效;当到达时间为0时,表示prp报文帧帧号sn
fp
对应的成员无效,即能够用来存储新的帧信息。
19.进一步地,步骤3-2中删除中的sn
fp
及对应的相关信息,是通过将到达时间置为0来实现的。
20.进一步地,步骤3中,为避免fmsp满的情形,在进行prp报文帧帧号比对时,同时比对帧号的老化时间,所述老化时间是指当前时间与帧接收时间的差值;系统在初始化时预设老化时间阈值,若帧号的老化时间超出设定的老化阈值,则从fmsp中删除帧号对应的相关信息。
21.进一步地,fmsp的大小依据应用通信网络报文频率设定调节。
22.为了实现本发明的目的,本发明还公开了一种基于帧记忆池的prp重复帧判别处理系统,包括以下模块:
23.接收模块,所述接收模块中,帧记忆池fmp记录prp报文帧及对应的相关信息,并根据发送方mac地址建立帧记忆子池fmsp;
24.索引模块,所述索引模块中,帧记忆池fmp通过发送方mac地址进行分类索引,将源于同一mac地址的信息存放于同一个fmsp中;
25.处理模块,所述处理模块中,当节点接收到新prp报文帧f
p
时,根据f
p
的源mac地址smac
fp
索引到对应于smac
fp
的帧记忆子池,并对f
p
和进行处理。
26.与现有技术相比,本发明具有以下有益效果:1)通过采用接收池缓存近一段时间内接收到的帧信息,采用比较查找的方式判别重复帧,既可适应帧乱序接收,又可避免出现帧重复提交;2)fmsp的大小依据应用通信报文频率设定,即可满足应用需求,又避免了设置过大影响查找效率。
27.为更清楚说明本发明的功能特性以及结构参数,下面结合附图及具体实施方式进一步说明。
附图说明
28.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
29.图1为一种基于帧记忆池的prp重复帧判别处理方法流程示意图。
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.如图1所示,图1为一种基于帧记忆池的prp协议重复帧判别处理方法流程示意图,具体步骤为:
32.步骤s1、系统接收新的以太网帧,获得帧的源mac地址、prp帧号等信息;
33.步骤s2、根据帧源mac地址查找帧记忆池;
34.步骤s3、判断是否找到有与该mac地址对应的帧记忆子池,若否则进入步骤s4,若是则进入步骤s5;
35.步骤s4、创建并初始化与该mac地址相对应的帧记忆子池,进入步骤s5;
36.步骤s5、判断是否在对应帧记忆子池已有对应帧号存在,若否则进入步骤 s6,若是则进入步骤s7;
37.步骤s6、在该帧记忆子池中增加该帧信息(包括帧号、接收时刻、通道号等),删除该帧保温rct字段,提交上层协议,进入步骤s8;
38.步骤s7、删除帧记忆子池中对应帧信息,并废弃该帧报文(不向上层提交);
39.步骤s8、结束处理。
40.实施例
41.在本实施例中,fmp的数据结构采用c语言表示如下:
[0042][0043][0044]
struct fmp*pfmphead,pfmptail;//帧记忆池头指针、尾指针
[0045]
此代码表示,fmp是将所有fmsp串起来的链表,其中pfmsp指向fmsp, mac是与该fmsp向对应的mac地址,next指向下一个fmsp。
[0046]
在本实施例中,fmsp的数据结构采用c语言表示如下:
[0047][0048]
此代码表示,一个大小确定的结构数组,每个成员记录了尚未重复、老化的接收到帧信息,包括帧序号、帧到达的通道号和接收到该帧的时间,当时间值为0时表示该数组项未用,可以用来存放新帧信息。
[0049]
在本实施例中,相关数据结构处理采用c语言表示处理如下:
[0050]
1)系统初始化时:pfmphead=pfmptail=null;
[0051]
2)当为mac地址为char macaddr[6]的接收帧新创建一个fmsp时:
[0052]
[0053][0054]
3)将pfmsp中第i项置为未用时:
[0055]
pfmsp[i]-》time=0;
[0056]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0057]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1