一种并行冗余网络中重复报文和故障的检测方法和装置与流程

文档序号:11517688阅读:215来源:国知局
一种并行冗余网络中重复报文和故障的检测方法和装置与流程

本发明实施例涉及通信技术领域,尤其涉及一种并行冗余网络中重复报文和故障的检测方法和装置。



背景技术:

随着工业技术的进步,为了进一步提升工业以太网的可靠性,出现了报文冗余备份的技术。其中,以iec62439-3协议为例,其规定:在发送端,将每一个需要发送的报文进行复制,得到两个完全相同的报文,将这两个报文通过不同的端口发送,当接收端的不同端口接收到这两个报文时,根据预设规则,判断接收到的报文为原始接收的报文,还是重复报文。

对于重复报文检测,现有技术主要采用tcam(ternarycontentaddressablememory,三态内容寻址存储器)结合ram(randomaccessmemory,随机存取存储器)进行查表的方式,确定接收到的报文是否为重复报文。其具体操作步骤为:接收端接收到发送端发送的报文后,根据报文中的源mac(mediaaccesscontrol,物理地址)地址和序列号,确定该报文是否为重复的报文,若存储的表格中没有记录该mac地址以及序列号,则确定该报文不是重复的报文,并建立存储该mac地址以及序列号的表格;若存储的表格中记录有该mac地址以及序列号,则确定该报文是重复的报文,丢弃该报文。

现有技术在检测重复报文时,对每一报文都要经历查表、建表、处理表的老化的过程,导致报文的处理延迟较大,极大的影响了报文的传输速率,并且其占用的处理器资源数量也较多,导致系统一直处于高负荷工作状态,此外,现有的检测重复报文的技术还受限于tcam等硬件,而tcam等硬件又受限于其老化机制,因此,现有的检测重复报文的技术普适性不高。



技术实现要素:

本发明提供一种并行冗余网络中重复报文和故障的检测方法和装置,通过简化对重复报文的检测流程,提高了重复报文的检测速度,降低了处理器资源占用率;此外,通过对重复管理帧报文的检测,还可以实时获知网络状况,确定所传输报文的准确性。

第一方面,本发明实施例提供了一种并行冗余网络中重复报文的检测方法,包括:

分别在第一缓存中和第二缓存中缓存从第一端口和第二端口接收到的报文,其中,所述第一端口和所述第二端口为所述并行冗余网络中第一设备上的端口,所述第一端口和所述第二端口分别通过所述并行冗余网络中的不同网络与第二设备连接;

判断在预设时间内,所述第一缓存和所述第二缓存中的报文数量;

当所述第一缓存中的报文数量大于等于所述第二缓存中的报文数量时,从所述第一缓存中读出缓存的报文,并丢弃所述第二缓存中的报文。

第二方面,本发明实施例还提供了一种并行冗余网络故障的检测方法,包括:

计算第一端口和第二端口接收到的管理帧报文的数量,其中,所述第一端口和所述第二端口为所述并行冗余网络中第一设备上的端口,所述第一端口和所述第二端口分别通过所述并行冗余网络中的不同网络与第二设备连接;

当在预设时间内,所述第一端口接收到的管理帧报文的数量和/或所述第二端口接收到的管理帧报文的数量满足第一预设条件,或所述第一端口接收到的管理帧报文的数量与所述第二端口接收到的管理帧报文的数量之间的关系满足第二预设条件时,确定网络出现异常。

第三方面,本发明实施例还提供了一种并行冗余网络中重复报文的检测装置,包括:

缓存模块,包括第一缓存模块和第二缓存模块,用于分别缓存从第一端口和第二端口接收到的报文,其中,所述第一端口和所述第二端口为所述并行冗余网络中第一设备上的端口,所述第一端口和所述第二端口分别通过所述并行冗余网络中的不同网络与第二设备连接;

第一判断模块,用于判断在预设时间内,所述第一缓存和所述第二缓存中的报文数量;

第一控制模块,用于当所述第一缓存中的报文数量大于等于所述第二缓存中的报文数量时,控制从所述第一缓存中读出缓存的报文,并丢弃所述第二缓存中的报文。

第四方面,本发明实施例还提供了一种并行冗余网络故障的检测装置,包括:

计数模块,包括第一计数模块和第二计数模块,用于分别计算第一端口和第二端口接收到的管理帧报文的数量,其中,所述第一端口和所述第二端口为所述并行冗余网络中第一设备上的端口,所述第一端口和所述第二端口分别通过所述并行冗余网络中的不同网络与第二设备连接;

第二判断模块,用于当在预设时间内,所述第一端口接收到的管理帧报文的数量和/或所述第二端口接收到的管理帧报文的数量满足第一预设条件,或所述第一端口接收到的管理帧报文的数量与所述第二端口接收到的管理帧报文的数量之间的关系满足第二预设条件时,确定网络出现异常。

本发明实施例提供的并行冗余网络中重复报文和故障的检测方法和装置,通过分别在第一缓存中和第二缓存中缓存从第一端口和第二端口接收到的报文,并判断在预设时间内,第一缓存和第二缓存中的报文数量,当第一缓存中的报文数量大于等于第二缓存中的报文数量时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。本技术方案能够高效地确定在预设时间内接收到的报文是否是重复报文,提高了重复报文的检测速率,同时有效降低了处理器的资源占有率,此外,本技术方案不依赖于任何固有的硬件设备,提高了本技术方案的普适性。

附图说明

图1是本发明实施例一中的一种并行冗余网络中重复报文的检测方法的流程图;

图2是本发明实施例二中的一种并行冗余网络中重复报文的检测方法的流程图;

图3是本发明实施例三中的一种并行冗余网络故障的检测方法的流程图;

图4是本发明实施例四中的一种并行冗余网络中重复报文的检测装置的结构示意图;

图5是本发明实施例五中的一种并行冗余网络故障的检测装置的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一提供的一种并行冗余网络中重复报文的检测方法的流程示意图,该方法可以由并行冗余网络中重复报文的检测装置来执行。如图1所示,该方法具体包括:

步骤110、分别在第一缓存中和第二缓存中缓存从第一端口和第二端口接收到的报文,其中,第一端口和第二端口为并行冗余网络中第一设备上的端口,第一端口和第二端口分别通过并行冗余网络中的不同网络与第二设备连接。

本实施例中,并行冗余网络中的第一设备包括第一端口和第二端口,其中,第一端口和第二端口通过不同的网络,与并行冗余网络中的第二设备建立连接,并分别接收第二设备发送的报文。

本实施例中,第二设备同样包括两个分别与第一设备的第一端口和第二端口相对应的端口,第二设备在发送报文之前,会将每个需要发送的报文进行复制,得到两组完全相同的报文,分别是原始报文和重复报文。这两组报文分别经过第二设备的不同端口发送,通过不同的网络路径,到达第一设备的第一端口和第二端口。第一端口和第二端口在接收到报文之后,分别将所接收到的报文缓存进入第一缓存和第二缓存中。

本实施例中,需要说明的是,报文的发送与接收都是在并行冗余网络处于正常状态下进行的,并且在网络状况完全正常且无任何卡顿的情况下,第一缓存中的报文数量和第二缓存中的报文数量理论上相等。

步骤120、判断在预设时间内,第一缓存和第二缓存中的报文数量。

本实施例中,当设备上电之后,定时单元立即启动,与此同时,第二设备开始向第一设备发送报文。第一端口每接收一个报文,与其对应的第一缓存中的报文数量就会增加1,示例性的,当第一端口没有接收任何报文之前,第一缓存中的报文数量为0,当第一端口接收到一个报文后,第一缓存中的报文数量为1,当第一端口继续接收到第二个报文后,第一缓存中的报文数量为2,以此类推,最终确定第一缓存中的报文数量;同理,第二端口每接收到一个报文,其对应的第二缓存中的报文数量也会增加1。

当定时单元确定预设时间到达之后,判断该预设时间内,第一缓存和第二缓存中的报文数量,本实施例中,预设时间优选可以是1ms,既可以保证能够高效地对一定数量的报文进行处理,提高报文检测速率,又可以避免由于计时太久而导致报文传输不准确的问题。

步骤130、当第一缓存中的报文数量大于等于第二缓存中的报文数量时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。

本实施例中,示例性的,当判断出第一缓存中的报文数量大于等于第二缓存中的报文数量时,则表明与第二缓存对应的网络在发送报文时,由于某些情况发生了少数报文发送延迟或丢失,导致第二缓存中的报文数量少于第一缓存中的报文数量。本实施例中,造成少数报文发送延迟或丢失的情况可以包括短时间的网络卡顿或短时间内可以自愈的网络故障等。

因此,当第一缓存中的报文数量大于等于第二缓存中的报文数量时,则认为第二缓存中的报文为重复报文,读出第二缓存中的所有报文并丢弃;同时认为第一缓存中的报文为非重复报文,读出第一缓存中的报文,作进一步处理。

本实施例中,还可以存在另外一种情况,即当第一缓存中的报文数量小于第二缓存中的报文数量时,从第二缓存中读出缓存的报文,并丢弃第一缓存中的报文,其操作过程和原理与上述描述相同。

本发明实施例提供的并行冗余网络中重复报文的检测方法优选可应用于符合iec62439-3协议的并行冗余网络中,其通过分别在第一缓存中和第二缓存中缓存从第一端口和第二端口接收到的报文,并判断在预设时间内,第一缓存和第二缓存中的报文数量,当第一缓存中的报文数量大于等于第二缓存中的报文数量时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。本技术方案能够高效地确定在预设时间内接收到的报文是否是重复报文,提高了重复报文的检测速率,同时有效降低了处理器的资源占有率,此外,本技术方案不依赖于任何固有的硬件设备,提高了本技术方案的普适性。

示例性的,网络完全正常的情况下,在预设时间1ms内可以传输200个报文。当第一个预设时间1ms到达后,第一缓存中的报文数量是198,第二缓存中的报文数量是200,则判断第二缓存中的报文数量大于第一缓存中的报文数量,此时,认为第一缓存中的报文为重复报文,读出该报文并丢弃;同时,读出第二缓存中的报文,作为第一设备接收到的报文。同理,当第一个预设时间1ms到达后,第一缓存中的报文数量是200,第二缓存中的报文数量是198,则判断第一缓存中的报文数量大于第二缓存中的报文数量,此时,认为第二缓存中的报文为重复报文,读出该报文并丢弃;同时,读出第一缓存中的报文,作为第一设备接收到的报文。

进一步的,判断在预设时间内,第一缓存和第二缓存中的报文数量,包括:

判断在预设时间内,第一缓存的第一缓存指示状态和第二缓存的第二缓存指示状态,第一缓存指示状态用于指示第一缓存中的报文占所述第一缓存总空间的比例,第二缓存指示状态用于指示第二缓存中的报文占第二缓存总空间的比例。

本实施例中,在判断预设时间内,第一缓存和第二缓存中的报文数量时,除了判断第一缓存和第二缓存中的缓存数量外,还可以通过缓存指示状态进行判定。其中,第一缓存指示状态用于指示第一缓存中的报文占所述第一缓存总空间的比例,第二缓存指示状态用于指示第二缓存中的报文占第二缓存总空间的比例。示例性的,缓存指示状态可以是100%、98%或95%,也可以是empty、non-full、al-full、full,其中,缓存指示状态empty可以表示缓存中几乎没有报文,缓存指示状态non-full可以表示缓存中的报文数量小于或等于缓存总量的一半,缓存指示状态al-full可以表示缓存中的报文数量多于存总量的一半但少于缓存总量,缓存指示状态full可以表示缓存中的报文数量为缓存总量。

进一步的,当第一缓存中的报文数量大于等于第二缓存中的报文数量时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文,包括:

当第一缓存指示状态指示的比例大于等于第二缓存指示状态指示的比例时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。

本实施例中,当第一缓存指示状态指示的比例大于等于第二缓存指示状态指示的比例时,表明第一缓存中的报文数量大于等于第二缓存中的报文数量,此时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。

示例性的,当预设时间1ms到达后,若第一缓存的缓存指示状态是98%,第二缓存的缓存指示状态是100%,则判断第二缓存中的报文数量大于第一缓存中的报文数量,此时,认为第一缓存中的报文为重复报文,读出该报文并丢弃;若第一缓存的缓存指示状态是100%,第二缓存的缓存指示状态是98%,则判断第一缓存中的报文数量大于第二缓存中的报文数量,此时,认为第二缓存中的报文为重复报文,读出该报文并丢弃;

示例性的,当预设时间1ms到达后,若第一缓存的缓存指示状态是al-full,第二缓存的缓存指示状态是full,则判断第二缓存中的报文数量大于第一缓存中的报文数量,此时,认为第一缓存中的报文为重复报文,读出该报文并丢弃;若第一缓存的缓存指示状态是full,第二缓存的缓存指示状态是ai-full,则判断第一缓存中的报文数量大于第二缓存中的报文数量,此时,认为第二缓存中的报文为重复报文,读出该报文并丢弃;

实施例二

本实施例在实施例一的基础上进行了优化,图2是本发明实施例二中的一种并行冗余网络中重复报文的检测方法的流程图,如图2所示,该并行冗余网络中重复报文的检测方法包括:

步骤210、分别在第一缓存中和第二缓存中缓存从第一端口和第二端口接收到的报文,其中,第一端口和第二端口为并行冗余网络中第一设备上的端口,第一端口和第二端口分别通过并行冗余网络中的不同网络与第二设备连接。

步骤220、判断在预设时间内,第一缓存和第二缓存中的报文数量。

步骤230、当第一缓存中的报文数量大于等于第二缓存中的报文数量时,丢弃第二缓存中的报文,并计算上一次预设时间内第二缓存中的报文中最后一个报文的序号与本次预设时间内从第一缓存中读出的所有报文中第一个报文的序号之差n。

本实施例中,通过确定上一次缓存中非重复报文的最后一个报文序号和本次缓存中非重复报文的第一个报文序号,并在后续按照一定的规则即可确定本次缓存中非重复报文的实际个数。

示例性的,在上一次缓存过程中,第二缓存中的报文数量大于等于第一缓存中的报文数量,认为第二缓存中的报文为非重复报文,确定第二缓存中的报文中最后一个报文的序号;本实施例中,报文的序号是报文的固有属性,是在报文传输之前就已经确定的,与上述第二缓存中的报文的数量序列号不同。示例性的,在本次缓存过程中,第一缓存中的报文数量大于等于第二缓存中的报文数量,认为第一缓存中的报文为非重复报文,确定第一缓存中的所有报文中第一个报文的序号。

计算在上一次缓存过程中第二缓存中的报文中最后一个报文的序号,与本次缓存过程中第一缓存中的所有报文中第一个报文的序号的差值,并命名为n。由该差值n的大小可以确定上一次与本次传输的报文之间是否存在重复报文。

步骤240、判断n是否大于等于0,若是,则转到步骤250,若否,则转到步骤260。

步骤250、若n大于或等于0,则丢弃从第一缓存中读出的所有报文中的前n+1个报文,并将剩余的报文作为第一设备接收到的报文。

本实施例中,当n大于或等于0时,表明上一次缓存过程中第二缓存中的报文中最后一个报文的序号,比本次缓存过程中第一缓存中的所有报文中第一个报文的序号多n个,即本次缓存过程中第一缓存中的所有报文的前n+1个报文,与上一次缓存过程中第二缓存中的报文的后n+1个报文重复,此时,丢弃从第一缓存中读出的所有报文中的前n+1个报文,并将剩余的报文作为第一设备接收到的报文。

步骤260、若n小于0,则将从第一缓存中读出的所有报文作为第一设备接收到的报文。

本实施例中,当n小于0时,表明上一次缓存过程中第二缓存中的报文中最后一个报文的序号,比本次缓存过程中第一缓存中的报文中第一个报文的序号少|n|个,即本次缓存过程中第一缓存中的报文,与上一次缓存过程中第二缓存中的报文无重复,此时,将从第一缓存中读出的所有报文作为第一设备接收到的报文。

本发明实施例提供的并行冗余网络中重复报文的检测方法优选可应用于符合iec62439-3协议的并行冗余网络中,其通过分别在第一缓存中和第二缓存中缓存从第一端口和第二端口接收到的报文,并判断在预设时间内,第一缓存和第二缓存中的报文数量,当第一缓存中的报文数量大于等于第二缓存中的报文数量时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文;通过比较上一次缓存中非重复报文的最后一个报文序号和本次缓存中非重复报文的第一个报文序号,按照一定的规则,确定本次缓存中非重复报文的实际个数。本技术方案能够高效地确定在预设时间内接收到的报文是否是重复报文,提高了重复报文的检测速率,同时有效避免了重复报文的发送以及有效降低了处理器的资源占有率,此外,本技术方案不依赖于任何固有的硬件设备,提高了本技术方案的普适性。

示例性的,网络完全正常的情况下,在预设时间1ms内可以传输200个报文。当第一个预设时间1ms到达后,第一缓存中的报文数量是198,第二缓存中的报文数量是200,则判断第二缓存中的报文数量大于第一缓存中的报文数量,此时,认为第一缓存中的报文为重复报文,读出该报文并丢弃;同时,读出第二缓存中的所有报文,作为第一设备接收到的报文。

当第二个预设时间1ms到达后,第一缓存中的报文数量是200,第二缓存中的报文数量是198,则判断第一缓存中的报文数量大于第二缓存中的报文数量,此时,认为第二缓存中的报文为重复报文,读出该报文并丢弃;同时,确定第一个预设时间到达时,第二缓存中的报文中最后一个报文的序号,示例性的,该最后一个报文的序号为200;确定第二个预设时间到达时,第一缓存中的报文中第一个报文的序号,示例性的,该第一个报文的序号为199,则表明在第二个预设时间内第一缓存中缓存的所有报文的前两个,与第一个预设时间内第二缓存中缓存的报文的后两个重复,因此,将第二个预设时间内,从第一缓存中读出的所有报文的前两个丢弃,将剩余的报文作为第一设备接收到的报文。

相反的,当第二个预设时间1ms到达后,第一缓存中的报文数量是198,第二缓存中的报文数量是200,则判断第二缓存中的报文数量大于第一缓存中的报文数量,此时,认为第一缓存中的报文为重复报文,读出该报文并丢弃;同时,确定第一个预设时间到达时,第二缓存中的报文中最后一个报文的序号,示例性的,该最后一个报文的序号为200;确定第二个预设时间到达时,第一缓存中的报文中第一个报文的序号,示例性的,该第一个报文的序号为201,则表明在第二个预设时间内第一缓存中缓存的所有报文,与第一个预设时间内第二缓存中缓存的报文无重复,因此,将第二个预设时间内,从第一缓存中读出的所有报文作为第一设备接收到的报文。

实施例三

图3是本发明实施例三提供的一种并行冗余网络故障的检测方法的流程图,该方法可以由并行冗余网络故障的检测装置来执行。如图3所示,该方法具体包括:

步骤310、计算第一端口和第二端口接收到的管理帧报文的数量,其中,第一端口和第二端口为并行冗余网络中第一设备上的端口,第一端口和第二端口分别通过并行冗余网络中的不同网络与第二设备连接。

本实施例中,并行冗余网络中的第一设备包括第一端口和第二端口,其中,第一端口和第二端口通过不同的网络,与并行冗余网络中的第二设备建立连接,并分别接收第二设备发送的报文。

本实施例中,第二设备同样包括两个分别与第一设备的第一端口和第二端口相对应的端口,第二设备在发送管理帧报文之前,会将每个需要发送的管理帧报文进行复制,得到两组完全相同的管理帧报文,分别是原始管理帧报文和重复管理帧报文。这两组管理帧报文分别经过第二设备的不同端口发送,通过不同的网络路径,到达第一设备的第一端口和第二端口。第一端口和第二端口在接收到管理帧报文之后,分别将所接收到的管理帧报文缓存进入第一缓存和第二缓存中。

本实施例中,管理帧报文是专门用于检测网络状态的报文,而实施例一中所提到的报文是业务报文,二者是两种不同形式的报文。其中,管理帧报文的发送速率比业务报文的发送速率慢。

本实施例中,在第一设备的第一端口设置第一计数器,在第一设备的第二端口设置第二计数器,分别对接收到的管理帧报文进行计数。第一端口每接收一个管理帧报文,计数器的值就会增加1,示例性的,当第一端口没有接收任何管理帧报文之前,第一计数器的值为0,当第一端口接收到一个管理帧报文后,第一计数器的值为1,当第一端口继续接收到第二个管理帧报文后,第一计数器的值为2,以此类推,最终确定第一端口接收到的管理帧报文的数量;同理,第二端口每接收到一个报文,其对应的第二计数器的值也会增加1。

步骤320、当在预设时间内,第一端口接收到的管理帧报文的数量和/或第二端口接收到的管理帧报文的数量满足第一预设条件,或第一端口接收到的管理帧报文的数量与第二端口接收到的管理帧报文的数量之间的关系满足第二预设条件时,确定网络出现异常。

本实施例中,优选可以利用第一端口接收到的管理帧报文的数量和第二端口接收到的管理帧报文的数量以及预设条件,判断网络是否出现异常。

本发明实施例提供的并行冗余网络故障的检测方法优选可应用于符合iec62439-3协议的并行冗余网络中,其通过在预设时间内,判断并比较第一端口和第二端口接收到的管理帧报文的数量,并按照一定的规则,确定网络是否发生故障,可以实时获知进行报文传输的网络是否处于正常状态,以确定所传输报文的准确性。

进一步的,当在预设时间内,第一端口接收到的管理帧报文的数量和/或第二端口接收到的管理帧报文的数量满足第一预设条件时,确定网络出现异常包括:

当在预设时间内,第一端口接收到的管理帧报文或第二端口接收到的管理帧报文的数量小于第一预设阈值时,确定第一端口或第二端口连接的网络出现异常。

当网络处于正常状态时,第一端口和第二端口接收到的管理帧报文的数量均会处于合理的范围内。本实施例中,当定时单元确定预设时间到达之后,判断该预设时间内,第一端口和第二端口接收的管理帧报文的数量,当第一端口接收到的管理帧报文和/或第二端口接收到的管理帧报文的数量小于第一预设阈值时,则确定第一端口和/或第二端口连接的网络出现异常。其中,第一预设阈值优选可以是预设时间内理论传输值的70%、60%或50%。

进一步的,当在预设时间内,第一端口接收到的管理帧报文的数量与第二端口接收到的管理帧报文的数量之间的关系满足第二预设条件时,确定网络出现异常,包括:

当在预设时间内,第一端口接收到的管理帧报文与第二端口接收到的管理帧报文之差大于第二预设阈值时,确定第二端口连接的网络出现异常。

当网络处于正常状态时,第一端口和第二端口接收到的管理帧报文的数量大致相等。本实施例中,当定时单元确定预设时间到达之后,判断该预设时间内,第一端口和第二端口接收的管理帧报文的数量,当第一端口接收到的管理帧报文与第二端口接收到的管理帧报文之差大于第二预设阈值时,确定第二端口连接的网络出现异常。其中,第二预设阈值优选可以是预设时间内理论传输值的40%、30%或20%。

示例性的,设置预设时间为1ms,并且在预设时间内且网络正常的情况下,可传输20个管理帧报文,设置第一预设阈值为10,设置第二预设阈值为6。

在预设时间1ms内,第一端口接收到的管理帧报文为20,而第二端口接收到的管理帧报文为8,显然,第二端口接收到的管理帧报文的数量8小于第一预设阈值10,因此,确定第二端口连接的网络出现异常。同理,在预设时间1ms内,第一端口接收到的管理帧报文为8,而第二端口接收到的管理帧报文为19,显然,第一端口接收到的管理帧报文的数量8小于第一预设阈值10,因此,确定第一端口连接的网络出现异常。同理,在预设时间1ms内,第一端口接收到的管理帧报文为8,而第二端口接收到的管理帧报文为7,显然,第一端口接收到的管理帧报文的数量8和第一端口接收到的管理帧报文的数量7均小于第一预设阈值10,因此,确定第一端口和第二端口连接的网络均出现异常。

在预设时间1ms内,第一端口接收到的管理帧报文为20,而第二端口接收到的管理帧报文为8,显然,第一端口接收到的管理帧报文的数量20与第二端口接收到的管理帧报文的数量8之差大于第二预设阈值6,因此,确定第二端口连接的网络出现异常。同理,在预设时间1ms内,第一端口接收到的管理帧报文为8,而第二端口接收到的管理帧报文为19,显然,第二端口接收到的管理帧报文的数量19与第一端口接收到的管理帧报文的数量8之差大于第二预设阈值6,因此,确定第一端口连接的网络出现异常。

在预设时间1ms内,第一端口接收到的管理帧报文为20,而第二端口接收到的管理帧报文为12,此时,第一端口接收到的管理帧报文数量20和第一端口接收到的管理帧报文数量12均大于第一预设阈值10,但是,第一端口接收到的管理帧报文的数量20与第二端口接收到的管理帧报文的数量12之差大于第二预设阈值6,因此,确定第二端口连接的网络出现异常。同理,在预设时间1ms内,第一端口接收到的管理帧报文为13,而第二端口接收到的管理帧报文为20,二者接收到的管理帧报文的数量均大于第一预设阈值10,但是,第二端口接收到的管理帧报文的数量20与第一端口接收到的管理帧报文的数量13之差大于第二预设阈值6,因此,确定第一端口连接的网络出现异常。

进一步的,确定第一端口或第二端口连接的网络出现异常之后,还可以包括:

向第一端口或第二端口连接的网络的控制中心发出故障告警信息。

本实施例中,当确定网络第一端口或第二端口连接的网络出现异常后,停止报文传送,并向控制中心发出故障告警信息,提示控制中心对故障网络进行维护;待网络恢复正常后,继续未完成的报文传送。

本实施例中,通过在确定第一端口或第二端口连接的网络出现异常之后,向第一端口或第二端口连接的网络的控制中心发出故障告警信息,在实时检测网络故障的同时,还能够使故障网络及时得到维护。

实施例四

图4是本发明实施例四提供的一种并行冗余网络中重复报文的检测装置的结构示意图,如图4所示,该装置可以包括:

缓存模块410,包括第一缓存模块和第二缓存模块,用于分别缓存从第一端口和第二端口接收到的报文,其中,第一端口和第二端口为并行冗余网络中第一设备上的端口,第一端口和第二端口分别通过并行冗余网络中的不同网络与第二设备连接;

第一判断模块420,用于判断在预设时间内,第一缓存和第二缓存中的报文数量;

第一控制模块430,用于在本次预设时间内,当第一缓存中的报文数量大于等于第二缓存中的报文数量时,控制从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。

本发明实施例提供的并行冗余网络中重复报文的检测装置优选可应用于符合iec62439-3协议的并行冗余网络中,其通过分别在第一缓存中和第二缓存中缓存从第一端口和第二端口接收到的报文,并判断在预设时间内,第一缓存和第二缓存中的报文数量,当第一缓存中的报文数量大于等于第二缓存中的报文数量时,从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。本技术方案能够高效地确定在预设时间内接收到的报文是否是重复报文,提高了重复报文的检测速率,同时有效降低了处理器的资源占有率,此外,本技术方案不依赖于任何固有的硬件设备,提高了本技术方案的普适性。

进一步的,第一控制模块包括:

计算单元,用于计算上一次预设时间内第二缓存中的报文中最后一个报文的序号与本次预设时间内从第一缓存中读出的所有报文中第一个报文的序号之差n;

第一控制单元,用于若n大于或等于0,控制丢弃从第一缓存中读出的所有报文中的前n+1个报文,并将剩余的报文作为第一设备接收到的报文;

第二控制单元,用于若n小于0,控制将从第一缓存中读出的所有报文作为第一设备接收到的报文。

本发明实施例提供的并行冗余网络中重复报文的检测装置,通过比较上一次缓存中非重复报文的最后一个报文序号和本次缓存中非重复报文的第一个报文序号,按照一定的规则,确定本次缓存中非重复报文的实际个数。在提高了重复报文的检测速率的同时,有效避免了重复报文的发送。

进一步的,第一判断模块包括:

缓存状态指示单元,包括第一缓存状态指示单元和第二缓存状态指示单元,用于判断在预设时间内,第一缓存的第一缓存指示状态和第二缓存的第二缓存指示状态,第一缓存指示状态用于指示第一缓存中的报文占第一缓存总空间的比例,第二缓存指示状态用于指示第二缓存中的报文占第二缓存总空间的比例;

进一步的,第一控制模块还可以包括:

第三控制单元,用于当第一缓存指示状态指示的比例大于等于第二缓存指示状态指示的比例时,控制从第一缓存中读出缓存的报文,并丢弃第二缓存中的报文。

本发明实施例所提供的并行冗余网络中重复报文的检测装置可执行本发明实施例一所提供的并行冗余网络中重复报文的检测方法,具备执行方法相应的功能模块和有益效果。

值得注意的是,本实施例的装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可,例如,模型训练过程所涉及的预处理功能,与情境状态预测过程所涉及的预处理功能,可以使用同一单元或模块实现;模型训练过程所涉及的特征提取功能,与情境状态预测过程所涉及的特征提取功能,可以使用同一单元或模块实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

实施例五

图5是本发明实施例五提供的一种并行冗余网络故障的检测装置的结构示意图,如图5所示,该装置可以包括:

计数模块510,包括第一计数模块和第二计数模块,用于分别计算第一端口和第二端口接收到的管理帧报文的数量,其中,第一端口和第二端口为并行冗余网络中第一设备上的端口,第一端口和第二端口分别通过并行冗余网络中的不同网络与第二设备连接;

第二判断模块520,用于当在预设时间内,第一端口接收到的管理帧报文的数量和/或第二端口接收到的管理帧报文的数量满足第一预设条件,或第一端口接收到的管理帧报文的数量与第二端口接收到的管理帧报文的数量之间的关系满足第二预设条件时,确定网络出现异常。

本发明实施例提供的并行冗余网络故障的检测装置优选可应用于符合iec62439-3协议的并行冗余网络中,其通过在预设时间内,判断并比较第一端口和第二端口接收到的管理帧报文的数量,并按照一定的规则,确定网络是否发生故障,可以实时获知进行报文传输的网络是否处于正常状态,以确定所传输报文的准确性。

进一步的,第二判断模块包括:

第一判断单元,用于当在预设时间内,第一端口接收到的管理帧报文的数量和/或第二端口接收到的管理帧报文的数量小于第一预设阈值时,确定第一端口和/或第二端口连接的网络出现异常;

第二判断单元,用于当在预设时间内,第一端口接收到的管理帧报文的数量与第二端口接收到的管理帧报文的数量之差大于第二预设阈值时,确定第二端口连接的网络出现异常。

进一步的,上述装置还可以包括:

故障告警模块,用于在确定第一端口或第二端口连接的网络出现异常之后,向第一端口或第二端口连接的网络的控制中心发出故障告警信息。

本实施例中,通过在确定第一端口或第二端口连接的网络出现异常之后,向第一端口或第二端口连接的网络的控制中心发出故障告警信息,在实时检测网络故障的同时,还能够使故障网络及时得到维护。

本发明实施例所提供的并行冗余网络故障的检测装置可执行本发明实施例二所提供的并行冗余网络故障检测方法,具备执行方法相应的功能模块和有益效果。

值得注意的是,本实施例的装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可,例如,模型训练过程所涉及的预处理功能,与情境状态预测过程所涉及的预处理功能,可以使用同一单元或模块实现;模型训练过程所涉及的特征提取功能,与情境状态预测过程所涉及的特征提取功能,可以使用同一单元或模块实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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