一种高可用性无缝冗余环网重复帧丢弃方法及系统与流程

文档序号:21082119发布日期:2020-06-12 16:37阅读:362来源:国知局
一种高可用性无缝冗余环网重复帧丢弃方法及系统与流程

本申请涉及智能变电站通信技术领域,特别是涉及一种高可用性无缝冗余环网重复帧丢弃方法及系统。



背景技术:

随着智能变电站的发展,智能变电站内部通信网络的复杂程度越来越高,相应地,对智能变电站内部通信网络的可靠性也提出了更高的要求。hsr(high-availabilityseamlessredundancyring,高可用性无缝冗余环网)具有网络故障恢复零延时、故障时不丢帧、网络可靠性高以及系统费用低等优点,在智能变电站以及智能电网自动化领域越来越受到重视。

通常,冗余装置通过两个以太网口接入到hsr环网中,当前冗余装置会在一定时间内收到两个相同的数据报文。也就是在hsr正常工作的情况下,每个冗余装置都会在一定时间内发送相同的两帧数据给目的节点,其中包括mac地址和序列号。为提高冗余装置的数据处理效率,需要对数据进行判断并丢弃重复帧。因此,如何丢弃hsr中的重复帧是个重要的技术问题。

目前在hsr中重复帧丢弃的方法通常是利用cpu进行判断,具体地,存储当前帧数据和前一帧数据,判断具有相同mac地址的当前帧与前一帧数据的序列号是否相同,如果相同,则丢弃重复帧。

然而,目前丢弃重复帧的方法中,由于是基于源mac地址建立的序号比对信息,源mac地址是48位宽度的数据,因此在对其判断是否为重复帧时,需要占用大量的存储空间,而且数据处理效率较低,从而导致重复帧判断效率较低。另外,目前丢弃重复帧的方法,只存储前一帧的数据,在目的节点收到乱序报文的情况下,无法准确地判断重复报文,因此,目前丢弃重复帧的方法导致判断准确性较低。



技术实现要素:

本申请提供了一种高可用性无缝冗余环网重复帧丢弃方法及系统,以解决现有技术中对重复帧的判断不够准确以及重复帧判断效率较低的问题。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种高可用性无缝冗余环网重复帧丢弃方法,所述方法包括:

获取两路以太网数据;

分别对两路以太网数据进行缓存;

根据fifo(firstinputfirstoutput,先入先出队列)原则,对缓存后的以太网数据进行排序;

对排序后的数据进行解析,并根据解析结果对相邻数据进行重复帧丢弃判断;

缓存重复帧丢弃判断后的数据,并将重复帧丢弃判断后的数据经由pcie接口传输至cpu。

可选地,采用乒乓操作的方法,对排序后的数据进行解析,并根据解析结果对相邻数据进行重复帧丢弃判断。

可选地,所述对排序后的数据进行解析,并根据解析结果对相邻数据进行重复帧丢弃判断的方法,包括:

对排序后的以太网数据进行存储,并提取所述以太网数据中的源mac地址和序列号,所述源mac地址为48位;

采用循环冗余校验算法,将48位的源mac地址转换为8位的序列号检索地址;

根据所述序列号检索地址,读取所述序列号检索地址下所存储的前n帧序列号;

判断前n帧序列号中的任一序列号是否与当前数据帧的序列号相同;

如果是,判定当前数据帧为重复帧;

丢弃当前数据帧;

如果否,判定当前数据帧不是重复帧;

存储当前数据帧的序列号,并删除前n帧序列号中的第一帧序列号,形成更新后的n帧序列号;

根据对当前数据帧的判断结果,确定重复帧丢弃判断后的数据。

可选地,所述存储当前数据帧的序列号,并删除前n帧序列号中的第一帧序列号,形成更新后的n帧序列号的方法,具体为:

采用ram存储更新后的n帧序列号,所述更新后的n帧序列号包括:当前数据帧的序列号,以及,前n帧序列号中第一帧以外的序列号。

可选地,所述采用ram存储更新后的n帧序列号的方法,包括:

将当前数据帧的序列号存储到ram0的对应地址中;

将ramn-1相应地址中的数据帧存储至ramn的对应地址中。

一种高可用性无缝冗余环网重复帧丢弃系统,所述系统设置于一fpga(field-programmablegatearray,现场可编程门阵列)芯片上,所述系统包括依次连接的:两个网口、两个第一数据缓存模块、多路复用模块、重复帧丢弃模块以及第二数据缓存模块,任一所述网口与一个所述第一数据缓存模块相匹配,所述第二缓存模块经由pcie接口与cpu连接;

两个所述网口,用于获取两路以太网数据;

两个所述第一数据缓存模块,用于分别对两路以太网数据进行缓存,并传输至多路复用模块;

所述多路复用模块,用于对以太网数据进行排序处理,并将排序处理后的数据发送至重复帧丢弃模块;

所述重复帧丢弃模块,用于对排序处理后的数据进行解析,并根据解析结果对相邻数据进行重复帧丢弃判断;

第二缓存模块,用于缓存重复帧丢弃判断后的数据。

可选地,所述重复帧丢弃模块包括:

数据存储解析单元,用于对排序后的以太网数据进行存储,并提取所述以太网数据中的源mac地址和序列号,所述源mac地址为48位;

mac地址变换单元,用于采用循环冗余校验算法,将48位的源mac地址转换为8位的序列号检索地址;

前n帧序列号读取单元,用于根据所述序列号检索地址,读取所述序列号检索地址下所存储的前n帧序列号;

判断单元,用于判断前n帧序列号中的任一序列号是否与当前数据帧的序列号相同,如果是,判定当前数据帧为重复帧,否则,判定当前数据帧不是重复帧;

序列号存储单元,用于当判断单元判定当前数据帧不是重复帧时,存储当前数据帧的序列号,并删除前n帧序列号中的第一帧序列号,形成更新后的n帧序列号;

发送控制单元,用于根据判断单元的判断结果对当前数据帧进行处理。

可选地,所述发送控制单元包括:

丢弃子单元,用于当判断单元判定当前数据帧为重复帧时,丢弃当前数据帧;

数据获取子单元,用于当判断单元判定当前数据帧不是重复帧时,将当前数据帧的数据传输至第二缓存模块。

可选地,所述序列号存储单元为ram。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请提供一种高可用性无缝冗余环网重复帧丢弃方法,该方法首先获取两路以太网数据,分别对这两路以太网数据进行缓存,并根据fifo原则,对缓存后的以太网数据进行排序,其次,对排序后的数据进行解析,并根据解析结果对相邻数据进行重复帧丢弃判断,最后缓存重复帧丢弃判断后的数据,并将重复帧丢弃判断后的数据经由pcie接口传输至cpu。本实施例通过对排序后的数据进行解析,具体地,对排序后的数据进行存储并提取以太网数据中的源mac地址和序列号,然后将48位的源mac地址转换为8位的序列号检索地址,能够大大降低后续重复帧判断的复杂度,有利于提高重复帧判断的效率。本实施例对相邻数据进行重复帧丢弃判断,具体采用乒乓操作的方法对相邻数据进行重复帧丢弃,通过充分利用数据处理和数据存储的间隔时间,能够提高数据处理的连续性和实时性,进而提高数据处理效率。

本申请还提供一种高可用性无缝冗余环网重复帧丢弃系统,该系统设置于一fpga芯片上,该系统主要包括:两个网口、两个第一数据缓存模块、多路复用模块、重复帧丢弃模块以及第二数据缓存模块,其中,任一网口与一个第一数据缓存模块相匹配,第二缓存模块经由pcie接口与cpu连接。本实施例通过重复帧丢弃模块的设置,能够对排序处理后的数据进行解析,将48位的源mac地址转换为8位的序列号检索地址,有利于大大降低重复帧判断的复杂度,从而提高数据处理效率。且重复帧丢弃模块根据解析结果对相邻数据进行重复帧判断时采用乒乓操作,能够提高数据处理的实时性,进而进一步提高数据处理的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种高可用性无缝冗余环网重复帧丢弃方法的流程示意图;

图2为本申请实施例中重复帧丢弃判断的网络拓扑示意图;

图3为本申请实施例重复帧丢弃方法中的数据流框图;

图4为数据帧格式示意图;

图5为本申请实施例所提供的一种高可用性无缝冗余环网重复帧丢弃系统的结构示意图;

图6为本申请实施例中重复帧丢弃模块的工作原理示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。

实施例一

参见图1,图1为本申请实施例所提供的一种高可用性无缝冗余环网重复帧丢弃方法的流程示意图。由图1可知,本实施例中高可用性无缝冗余环网重复帧丢弃方法包括如下过程:

s1:获取两路以太网数据。

本实施例中的以太网数据通过两个网卡分别送入以太网mac0和以太网mac1。

本实施例中重复帧丢弃判断的网络拓扑示意图,可以参见图2,图2中a-frame和b-frame是相同的两个数据帧,在一个方向上的链路异常时,数据依然能够通过另一个方向上的链路传输到目的节点,这样就提高了冗余度。为了使目的节点不对相同的两个数据帧做重复解析,在解析前需要对重复帧做判断。环内的任一节点都会向左右方向发送两帧相同的数据,环内的任一节点收到左右两个方向的帧,如果是发给自身的就进行重复帧判断,否则,就验证原来的方向转发。

获取到两路以太网数据之后,执行步骤s2:分别对两路以太网数据进行缓存。

通过对数据进行缓存,能够提高数据传输的稳定性,从而提高重复帧丢弃判断的准确性。在采用fpga实现重复帧丢弃时,通过fifo对数据缓存,能够实现fpga内部两个时钟域内的数据传输,提高数据传输的可靠性。

s3:根据fifo原则,对缓存后的以太网数据进行排序。

通过对以太网数据进行排序,能够避免两个数据同时到达时产生数据处理冲突,有利于提高数据传输和数据处理的效率。本实施例重复帧丢弃方法中的数据流框图可以参见图3。由图3可知,本实施例可以在mux中对数据进行排序。

s4:对排序后的数据进行解析,并根据解析结果对相邻数据进行重复帧丢弃判断。

其中,根据解析结果对相邻数据进行重复帧丢弃判断时,本实施例采用乒乓操作的方法。乒乓操作也就是针对排序之后的太网网数据,对当前以太网数据帧进行数据处理时,对下一帧以太网数据进行数据存储,这种同时进行的数据处理方式,有利于提高数据处理的实时性,从而提高重复帧丢弃判断的效率。本实施例中数据帧格式示意图可以参见图4。

具体提,步骤s4包括如下过程:

对排序后的以太网数据进行存储,并提取所述以太网数据中的源mac地址和序列号,所述源mac地址为48位;

s41:采用循环冗余校验算法,将48位的源mac地址转换为8位的序列号检索地址。

本实施例将48位源mac地址转换为8位的序列号检索地址,能够有效降低重复帧判断的复杂度,从而大大提高数据处理的效率。

s42:根据序列号检索地址,读取序列号检索地址下所存储的前n帧序列号。

s43:判断前n帧序列号中的任一序列号是否与当前数据帧的序列号相同。

s44:如果是,判定当前数据帧为重复帧。

s45:丢弃当前数据帧。

由步骤s42-s45可知,本实施例中判断重复帧时,是将当前帧与前n帧序列号所对应的数据一一进行比对,而不是只与当前帧的前一帧数据进行比对,本实施例中判断重复帧的方法,能够更加准确地找到重复帧,提高重复帧判断的可靠性,从而提高数据处理的效率。

s46:如果否,判定当前数据帧不是重复帧。

如果前n帧序列号中的任一序列号均与当前数据帧的序列号相同,判定当前数据不是重复帧。

如果当前数据不是重复帧,执行步骤s47和s48。其中,s47:存储当前数据帧的序列号,并删除前n帧序列号中的第一帧序列号,形成更新后的n帧序列号。

s48:根据对当前数据帧的判断结果,确定重复帧丢弃判断后的数据。

本实施例中通过步骤s47和s48,使得序列号集合中保持n帧序列号,当增加一个不是重复帧的序列号时,替换掉n帧序列号中的第一个序列号,n帧序列号按照先后顺序排列,这种方法相当于更新序列号存储单元中所存储的序列号。通过对n帧序列号进行更新,能够确保与前n帧数据进行比对的数据只有n个,既能够更加准确地确定重复帧,又不至于占用太多的存储空间存储所有数据帧的序列号。

s5:缓存重复帧丢弃判断后的数据,并将重复帧丢弃判断后的数据经由pcie接口传输至cpu。

步骤s5中通过对重复帧丢弃判断后的数据进行缓存,能够提高数据传输的稳定性。对缓存后的数据经由pcie接口传输至cpu,由cpu进行后续的数据处理。

实施例二

在图1-图4所示实施例的基础之上参见图5,图5为本申请实施例所提供的一种高可用性无缝冗余环网重复帧丢弃系统的结构示意图。由图5可知,本实施例中高可用性无缝冗余环网重复帧丢弃系统,主要包括:两个网口、两个第一数据缓存模块、多路复用模块、重复帧丢弃模块以及第二数据缓存模块。任一网口与一个第一数据缓存模块相匹配,第二缓存模块经由pcie接口与cpu连接。

该系统设置于一fpga芯片上,其中,两个网口,用于获取两路以太网数据。两个第一数据缓存模块,用于分别对两路以太网数据进行缓存,并传输至多路复用模块。多路复用模块,用于对以太网数据进行排序处理,并将排序处理后的数据发送至重复帧丢弃模块。重复帧丢弃模块,用于对排序处理后的数据进行解析,并根据解析结果对相邻数据进行重复帧丢弃判断。第二缓存模块,用于缓存重复帧丢弃判断后的数据。

进一步地,重复帧丢弃模块包括:数据存储解析单元、mac地址变换单元、前n帧序列号读取单元、判断单元、序列号存储单元和发送控制单元。其中,mac地址变换单元,用于采用循环冗余校验算法,将48位的源mac地址转换为8位的序列号检索地址。前n帧序列号读取单元,用于根据序列号检索地址,读取序列号检索地址下所存储的前n帧序列号。判断单元,用于判断前n帧序列号中的任一序列号是否与当前数据帧的序列号相同,如果是,判定当前数据帧为重复帧,否则,判定当前数据帧不是重复帧。序列号存储单元,用于当判断单元判定当前数据帧不是重复帧时,存储当前数据帧的序列号,并删除前n帧序列号中的第一帧序列号,形成更新后的n帧序列号。发送控制单元,用于根据判断单元的判断结果对当前数据帧进行处理,也就是,根据判断单元的判断结果,确定是否将当前数据传输至cpu。

其中,序列号存储单元可以采用ram。采用ram存储序列号,并将8位的检索地址作为序列号查询的ram访问地址,能够有效提高序列号检索的效率以及序列号检索的灵活性。

本实施例中重复帧丢弃模块的工作原理示意图可以参见图6,由图6可知,本实施例中重复帧丢弃模块采用乒乓操作的方法,即:数据在送入存储解析单元0时,对数据存储解析单元1中的数据进行处理;数据在送入存储解析单元1时,对数据存储解析单元0中的数据进行处理。通过采用乒乓操作的方法,能够有效提高数据处理的实时性,从而提高数据处理的效率。

进一步地,本实施例中发送控制单元包括:丢弃子单元和数据获取子单元。其中,丢弃子单元,用于当判断单元判定当前数据帧为重复帧时,丢弃当前数据帧。数据获取子单元,用于根据更新后的n帧序列号,确定重复帧丢弃判断后的数据,并将重复帧丢弃判断后的数据传输至第二缓存模块。

该实施例未详细描述的部分可以参考图1-图4所示的实施例一,两个实施例之间可以互相参照,在此不再赘述。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1