一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

冗余报文处理方法、装置以及网关设备与流程

2022-03-01 22:51:07 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种冗余报文处理方法、装置以及网关设备。


背景技术:

2.时间敏感可靠性由 ieee802.1cb 协议定义(帧复制和消除),能够支持无缝数据冗余, 它能够检测并减轻由于循环冗余校验( crc)错误、断线以及连接松动所引起的问题。时间关键型数据帧被进行扩展以包括一个序列号,并在每个帧遵循网络中的一条单独路径的情况下进行复制。在网络中的任何网桥或合并点上,当这些单独的路径再次汇合到一起时,将从数据流中消除重复的帧,从而允许应用程序无损接收数据帧。iec62439-3协议定义的hsr和prp冗余报文在ieee802.1cb中也进行了兼容设定,使得hsr(high-availability seamless redundancy),prp(parallel redundancy protocol),r-tag(redundancy tag)这三种tag报文可以互相兼容使用。
3.目前现有iec62439-3协议定义的hsr和prp冗余报文,只能根据源mac地址生成冗余序列号并插入hsr或prp标签中,这样导致如果一个源设备发送单播报文两个目的mac不同的设备上,如果使用 ieee802.1cb定义的vectorrecoveryalgorithm,则会出现报文的冗余序列号不连续的问题,如果不连续的间断太大超过了观测宽度,则会导致报文产生丢弃。因为这个算法是使用硬件实现的,所以为了节省芯片面积则不会把这个观测宽度设置的过分大。


技术实现要素:

4.为了解决上述技术问题,本发明在已有的ieee802.1cb定义的冗余算法上面进行改进,本发明为一种改进芯片级时间敏感可靠冗余丢弃算法,对于hsr和prp的冗余标签报文使用ieee802.1cb协议规定的vectorrecoveryalgorithm算法时,可以保证即使在观测窗口宽度不满足标签序列号间隔的情况下,依旧可以保证报文不被丢弃,从而保证了算法的健壮,稳定可靠性。
5.为达到上述目的,本发明的技术方案提供了一种冗余报文处理方法,其包括如下步骤:s1:使用ieee802.1cb协议规定的vectorrecoveryalgorithm算法,判断接收到的报文序列号是否超出观测端口,如果是,则进行到步骤s2,否则进行至步骤s5;s2:读取统计状态的通过报文的报文个数statesa和丢弃报文的报文个数statesb,然后进行至步骤s3;s3:判断statesa与statesb之间的差值是否小于等于用户预设值,如果是,则进行至步骤s4,否则丢弃报文并结束处理;s4:信任报文,将报文正常转发,并更新算法当前检测序列号值,并结束处理;s5:按照ieee802.1cb协议规定的vectorrecoveryalgorithm算法对接收到的报文进行处理。
6.在进一步的技术方案中,步骤s1包括:s10:计算接收到的报文序列号与当前最新观测报文序列号之间的差值delta;s11:判断delta是否大于等于由vectorrecoveryalgorithm算法设置的观测端口frerseqrcvyhistorylength。
7.在进一步的技术方案中,由ieee802.1cb协议规定的序列号范围为0-65535,并且所述方法在报文满带宽发送时序列号从0递增到65535/2的时间内没再收到可信序列号时,则进行reset。
8.在进一步的技术方案中,在存在链路断开的情况下,所述方法在链路修复后重置链路上流的统计值。
9.本发明的技术方案还提供了一种网关设备,所述网关设备使用如上所述的方法进行报文冗余处理。
10.本发明的技术方案还提供了一种冗余报文处理装置,其包括:报文序列号间隔判断模块,用于使用ieee802.1cb协议规定的vectorrecoveryalgorithm算法,判断接收到的报文序列号是否超出观测端口;报文个数统计模块,用于在由所述报文序列号间隔判断模块判断出报文序列号超出观测端口时,读取统计状态的通过报文的报文个数statesa和丢弃报文的报文个数statesb;报文个数比较模块,用于判断由所述报文个数统计模块读取的statesa与statesb之间的差值是否小于等于用户预设值;报文信任模块,用于在由所述报文个数比较模块判断出statesa与statesb之间的差值小于等于用户预设值时,信任报文,将报文正常转发,并更新算法当前检测序列号值;报文丢弃模块,用于在由所述报文个数比较模块判断出statesa与statesb之间的差值未小于等于用户预设值时,丢弃报文;原协议算法处理模块,用于在由所述报文序列号间隔判断模块判断出报文序列号未超出观测端口时,按照ieee802.1cb协议规定的vectorrecoveryalgorithm算法对接收到的报文进行处理。
11.在进一步的技术方案中,所述报文序列号间隔判断模块按照如下步骤判断接收到的报文序列号是否超出观测端口:s20:计算接收到的报文序列号与当前最新观测报文序列号之间的差值delta;s21:判断delta是否大于等于由vectorrecoveryalgorithm算法设置的观测端口frerseqrcvyhistorylength。
12.在进一步的技术方案中,由ieee802.1cb协议规定的序列号范围为0-65535,并且所述装置在报文满带宽发送时序列号从0递增到65535/2的时间内没再收到可信序列号时,则进行reset。
13.在进一步的技术方案中,在存在链路断开的情况下,所述装置在链路修复后重置链路上流的统计值。
14.本发明在原有的ieee802.1cb的vectorrecoveryalgorithm算法上增加了一种检查机制,从而来判断超过观测宽度的报文是真正的因为延迟导致的乱序并超过观测宽度而被丢弃的报文还是因为一个源设备发送单播报文两个目的mac不同的设备上导致报文序列
号间隔的情况而不能被丢弃的报文,从而大大提高了网络可靠性。
附图说明
15.图1是点对点冗余链路网络传输拓扑图;图2是点对多点冗余链路网络传输拓扑图;图3是本发明的冗余报文处理方法的流程图;图4是ieee802.1cb协议规定的vectorrecoveryalgorithm算法的报文处理流程。
具体实施方式
16.下面结合具体实施例对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
17.参见图1,图1是点对点冗余链路网络传输拓扑图,其中,图1中的 a为数据传输发起设备,b为数据传输接受设备,其中网关4和网关2是支持时间敏感可靠冗余的网关设备,网关1、3则为普通的网关。设备a传输的报文经过网关4基于节点a的源mac地址进行冗余备份,增加prp标签携带相同的序列号,通过路径path1和path2分别复制发送给网关1、3,当报文通过转发到网关2时,通过识别序列号传输第一份收到的报文,丢弃另外一份。对于这种点对点的方式,终端b节点的代理网关2不存在收到跳跃的序列号报文。
18.参见图2,图2是点对多点冗余链路网络传输拓扑图,其中,a为数据传输发起设备,b、c为数据传输接受设备,通过3条冗余链路将报文发送到2个终端设备。数据传输发起设备a发送两种不同目的mac的报文,目的mac分别为b和c的mac地址。设备a通过网关1复制冗余报文增加prp报文标签通过路径path1和path2发到网关2,网关2通过冗余算法丢弃一份冗余报文再转发给设备b。同理,设备a发往设备c(经由路径path3和path4),通过网关3进行冗余丢弃。如果设备a先发目的地址为设备b的报文100个,序列号为0-99,这时设备a又发了目的地址为设备c的报文100个,序列号为100-199,这时使用原vectorrecoveryalgorithm算法来进行冗余报文的处理或丢弃都没有问题,但是当设备a再发给设备b 100个报文,序列号为200-299,如果这时观测端口小于100则这些报文会被丢弃,直到触发reset装置,即信任reset后接受的第一个报文的序列号,观测窗口基于这个序列号进行观测。然而,在实际运用的时候不可能把reset时间设置这么短。
19.可以看出,在点对多点冗余链路网络传输中,会出现报文的冗余序列号不连续的问题,如果不连续的间断太大超过了观测宽度,则会导致报文产生错误丢弃。因此,需要在接收到超过观测端口的报文序列号时,需要进一步判断超过观测宽度的报文是真正的因为延迟导致的乱序并超过观测宽度而被丢弃的报文,还是因为一个源设备发送单播报文两个目的mac不同的设备上导致报文序列号间隔的情况而不能被丢弃的报文。
20.针对上述问题,本发明提出一种改进芯片级时间敏感可靠冗余丢弃算法,对于协议规定序列号范围为0-65535,本发明规定需要配置reset时间为65535/2的时间内没再收到可信序列号则进行reset。这样可以保证前后收到的序列号差值很大时保证不会存在在收到一个序列号为1的报文,再收到一个序列号为40000的报文,只可能40000是延迟报文,因为如果40000是有效序列报文,则算法会reset,并信任该序列号,并不会产生丢包错误。这样就可以使得差大于65535/2的报文保证不出错。因为如果不进行reset,无法判断这个
40000序列号的报文是延迟的还是应该信任的序列号报文。原协议对于delta》=frerseqrcvyhistorylength ||delta 《=
ꢀ‑
frerseqrcvyhistorylength的报文直接丢弃。这里我们就可以分别处理了,对delta大于frerseqrcvyhistorylength的报文不进行丢弃,而delta 《=
ꢀ‑
frerseqrcvyhistorylength的报文沿用原来的逻辑。这里还会存在一个问题就是,如果收到一串报文序列号为20000-65535,0-40000的报文,这时观测窗口在40000序列号附近,这时设备在没有满足触发reset的时间内又收到了一个序列号65535的报文,这个报文可能是延迟的也可能是间隔重新发往该设备的需要信任的序列号报文。这时通过芯片通过读取统计状态的报文个数进行判断,发现通过报文和丢弃报文相等,或差值极小,具体地,小于等于用于预设值userdefine(该值由用户配置,取决于用户对链路延迟的容忍预期值)时,则认为此报文为信任报文。当然存在链路端开导致报文没有到达的情况,这时统计值可能差别很大,在断开还未修复的情况下备份报文处于丢失状态,则设备只会收到一份序列号报文,这时算法按照原有的丢弃算法逻辑使用观测端口进行观测。当链路修复时,则需要重置链路上流的统计值,以保证统计值的可信度。通过以上方式虽然无法完全避免所有可能发送的情况,但是对于大多数的情况可以做到保证观测窗口(frerseqrcvyhistorylength)超过前后两个报文序列号差值的可信任报文不被误丢弃,从而大大提高网络可靠性。
21.为此,在本发明的实施方式中,提供了一种冗余报文处理方法,参见图3,其可以包括如下步骤:s1:使用ieee802.1cb协议规定的vectorrecoveryalgorithm算法,判断接收到的报文序列号是否超出观测端口,如果是,则进行到步骤s2,否则进行至步骤s5;s2:读取统计状态的通过报文的报文个数statesa和丢弃报文的报文个数statesb,然后进行至步骤s3;s3:判断statesa与statesb之间的差值是否小于等于用户预设值,如果是,则进行至步骤s4,否则丢弃报文并结束处理;s4:信任报文,将报文正常转发,并更新算法当前检测序列号值,并结束处理;s5:按照ieee802.1cb协议规定的vectorrecoveryalgorithm算法对接收到的报文进行处理。
22.具体地,参见图4,其示出了原协议算法的报文处理流程,其中recovseqnum表示当前观测序列码值,seqnum表示接受到报文的序列码,seqhistory[]标识观测窗口中有来过的报文则置1,takeany表示reset后或者初始化后为1,信任任何收到的报文的序列号,并赋值给recovseqnum。
[0023]
在进一步的技术方案中,步骤s1可以包括:s10:计算接收到的报文序列号与当前最新观测报文序列号之间的差值delta;s11:判断delta是否大于等于由vectorrecoveryalgorithm算法设置的观测端口frerseqrcvyhistorylength。
[0024]
在进一步的技术方案中,由ieee802.1cb协议规定的序列号范围为0-65535,并且所述方法在报文满带宽发送时序列号从0递增到65535/2的时间内没再收到可信序列号时,则进行reset。
[0025]
在进一步的技术方案中,在存在链路断开的情况下,所述方法在链路修复后重置
链路上流的统计值。
[0026]
本发明的其他实施方式还提供了一种网关设备,所述网关设备使用如上所述的方法进行报文冗余处理。
[0027]
本发明的另外的实施方式还提供了一种冗余报文处理装置,其可以包括:报文序列号间隔判断模块,用于使用ieee802.1cb协议规定的vectorrecoveryalgorithm算法,判断接收到的报文序列号是否超出观测端口;报文个数统计模块,用于在由所述报文序列号间隔判断模块判断出报文序列号超出观测端口时,读取统计状态的通过报文的报文个数statesa和丢弃报文的报文个数statesb;报文个数比较模块,用于判断由所述报文个数统计模块读取的statesa与statesb之间的差值是否小于等于用户预设值;报文信任模块,用于在由所述报文个数比较模块判断出statesa与statesb之间的差值小于等于用户预设值时,信任报文,将报文正常转发,并更新算法当前检测序列号值;报文丢弃模块,用于在由所述报文个数比较模块判断出statesa与statesb之间的差值未小于等于用户预设值时,丢弃报文;原协议算法处理模块,用于在由所述报文序列号间隔判断模块判断出报文序列号未超出观测端口时,按照ieee802.1cb协议规定的vectorrecoveryalgorithm算法对接收到的报文进行处理。
[0028]
在进一步的技术方案中,所述报文序列号间隔判断模块按照如下步骤判断接收到的报文序列号是否超出观测端口:s20:计算接收到的报文序列号与当前最新观测报文序列号之间的差值delta;s21:判断delta是否大于等于由vectorrecoveryalgorithm算法设置的观测端口frerseqrcvyhistorylength。
[0029]
在进一步的技术方案中,由ieee802.1cb协议规定的序列号范围为0-65535,并且所述装置在报文满带宽发送时序列号从0递增到65535/2的时间内没再收到可信序列号时,则进行reset。
[0030]
在进一步的技术方案中,在存在链路断开的情况下,所述装置在链路修复后重置链路上流的统计值。
[0031]
本发明在原有的ieee802.1cb的vectorrecoveryalgorithm算法上增加了一种检查机制,从而来判断超过观测宽度的报文是真正的因为延迟导致的乱序并超过观测宽度而被丢弃的报文还是因为一个源设备发送单播报文两个目的mac不同的设备上导致报文序列号间隔的情况而不能被丢弃的报文,从而大大提高了网络可靠性。
[0032]
本发明相对现有技术的有益技术效果:由 ieee802.1cb 协议定义(帧复制和消除),能够兼容支持iec62439-3协议定义的hsr和prp两种冗余帧。通过改进ieee802.1cb定义的vectorrecoveryalgorithm算法,从而可以使得算法不会误丢弃序列号间隔过大的相同源mac不同目的mac的冗余帧。本发明改进的算法,可以判断出序列号间隔过大的冗余帧是由于延迟或故障导致的晚到的帧,还是只是发往不同目的mac导致序列号间隔的有效帧。原协议定义的vectorrecoveryalgorithm算法可以通过加大观测端口解决上述问题,但是序列号的范围是0-65535,观测窗口采用位
映射的方式,这样如果1000范围的观测端口则需要1000个bit,如果支持2k个条目,则需要1000*2048这么多芯片存储,对于芯片的开销过大。而且在实际运用中,仅仅1000的范围是无法满足上述需求的,所以实际的开销可能更大。所以本发明既可以节约芯片的面积,又可以保证有效的数据帧不被算法误丢弃。
[0033]
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献