一种确定重复报文的方法及装置与流程

文档序号:12491874阅读:569来源:国知局
一种确定重复报文的方法及装置与流程

本发明涉及电信技术领域,特别是涉及一种确定重复报文的方法及装置。



背景技术:

随着工业技术的进步,为了进一步提升工业以太网的可靠性,IEC62439-3协议规定:发送端将需要发送的报文进行复制,得到两个完全相同的报文;将这两个报文通过不同的端口发送;当接收端的不同端口接收到这两个报文时,根据预设规则,判断接收到的报文为原始接收的报文,还是重复报文,其中,原始报文就是接收端第一次接收到的报文,重复报文就是与第一次接收的报文相同的报文。若接收到的报文为原始报文,则根据该报文中的目标IP(Internet Protocol,网络之间互连的协议)地址,转发接收到的报文,若接收到的报文为重复报文,则丢弃重复报文。这种方式,避免了传输过程中因网络原因导致报文丢失的问题,提升了网络的可靠性。

现有技术通过采用TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)结合RAM(Random Access Memory,随机存取存储器)进行查表,从而确定接收到的报文是否为重复报文。具体步骤为:当接收端接收到报文时,获取该报文中的源MAC(Media Access Control,物理地址)地址和序列号;在已建立的表格中查找该MAC地址以及序列号,并判断该表格中是否存在该MAC地址以及序列号,如果判断结果为是时,确定该报文是重复报文,丢弃该报文,如果判断结果为否时,则建立相应的表格用于存储该MAC地址以及序列号。由于每一个报文都要经历查表、建表、处理表的重复过程,所以将耗费数个时钟周期,使得处理报文的时延较长。



技术实现要素:

本发明实施例的目的在于提供一种确定重复报文的方法及装置,以提高确定重复报文的速度。具体技术方案如下:

一方面,本发明实施例公开了一种确定重复报文的方法,应用于冗余环网中的第一网络设备,所述第一网络设备包括:第一端口和第二端口,其中,所述第一端口和所述第二端口用于接收并行冗余网络中的第二网络设备发送的报文,所述方法包括:

在所述第一端口接收第一报文,统计所述第一端口接收到的报文的数量;

判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量;

在所述第一端口接收到的报文的数量小于等于所述第二端口接收到的报文的数量时,确定所述第一报文为重复报文。

可选的,所述在所述第一端口接收第一报文之后,所述方法还包括:

将所述第一端口对应的第一计数器的值加1,得到更新后的第一计数器的值,所述第一计数器用于统计所述第一端口接收到的报文的数量;

将所述更新后的第一计数器的值作为所述第一端口接收到的报文的数量;

所述判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量,包括:

判断所述更新后的第一计数器的值是否小于等于第二计数器的值,所述第二计数器用于统计所述第二端口接收到的报文的数量。

可选的,所述方法还包括:

在所述第一端口接收报文的数量大于所述第二端口接收报文的数量时,确定所述第一报文为非重复报文。

可选的,所述在确定所述第一报文为非重复报文之后,所述方法还包括:

判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址是否相同;

在判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址不相同时,转发所述第一报文。

可选的,在所述确定所述第一报文为重复报文之后,所述方法还包括:丢弃所述第一报文。

另一方面,本发明实施例还公开了一种确定重复报文的装置,应用于冗余环网中的第一网络设备,所述第一网络设备包括:第一端口和第二端口,其中,所述第一端口和所述第二端口用于接收第二网络设备发送的报文,所述装置包括:

接收单元,用于在所述第一端口接收第一报文,统计所述第一端口接收到的报文的数量;

第一判断单元,用于判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量;

第一确定单元,用于在所述第一端口接收到的报文的数量小于等于所述第二端口接收到的报文的数量时,确定所述第一报文为重复报文。

可选的,所述装置还包括:

更新单元,用于将所述第一端口对应的第一计数器的值加1,得到更新后的第一计数器的值,所述第一计数器用于统计所述第一端口接收到的报文的数量;

计数单元,用于将所述更新后的第一计数器的值作为所述第一端口接收到的报文的数量;

所述第一判断单元具体用于,判断所述更新后的第一计数器的值是否小于等于第二计数器的值,所述第二计数器用于统计所述第二端口接收到的报文的数量。

可选的,所述装置还包括:

第二确定单元,用于在所述第一端口接收报文的数量大于所述第二端口接收报文的数量时,确定所述第一报文为非重复报文。

可选的,所述装置还包括:

第二判断单元,用于判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址是否相同;

转发单元,用于在判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址不相同时,转发所述第一报文。

可选的,所述装置还包括:

丢弃单元,用于丢弃所述第一报文。

本发明实施例提供的一种确定重复报文的方法及装置,所述方法包括:在第一网络设备的第一端口接收第一报文;判断该第一端口接收到的报文的数量是否小于等于第一网络设备的第二端口接收到的报文的数量;在第一端口接收到的报文的数量小于等于第二端口接收到的报文的数量时,确定该第一报文为重复报文,并丢弃该第一报文。应用本发明实施例,提高了确定重复报文的速度,降低了系统设计复杂度和系统设计的成本,减少了产品开发周期。同时,在处理报文时,降低了对处理器资源的占用数量以及系统的功耗。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为现有技术的工业网络的环路拓扑结构示意图;

图2为本发明实施例提供的确定重复报文的方法的一种流程图;

图3为本发明实施例提供的确定重复报文的方法的另一种流程图;

图4为本发明实施例提供的确定重复报文的装置的一种结构示意图;

图5为本发明实施例提供的确定重复报文的装置的另一种结构示意图。

具体实施方式

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

为了解决现有技术的问题,本发明实施例提供了一种确定重复报文的方法及装置,提高了确定重复报文的速度。

需要说明的是,本发明实施例可以应用于符合IEC62439-3协议的HSR(High-availability Seamless Redundancy,高可靠性无缝冗余环网)和PRP(Parallel Redundancy Protocol,并行冗余网络),但不限于此。

下面首先对本发明实施例提供的一种确定重复报文的方法进行介绍。

如图1所示,工业网络的环路拓扑结构示意图,包括:PRP100和HSR110,其中,PRP 100包括:DANP(Double attached node implementing PRP,符合PRP协议的第二网络设备)101、LAN A(Local Area Network A,局域网A)102、LAN B(Local Area Network B,局域网B)102、A端口104、B端口105,HSR 110包括:冗余盒111、冗余盒112、DANH(Double attached node implementing HSR,符合HSR协议的第一网络设备)113、第一端口114以及第二端口115。

实际应用中,PRP 100将需要发送的报文a进行复制,得到两个相同的报文:报文a1和报文a2,PRP 100的A端口104与HSR 110的第一端口114通过LAN A相连,PRP 100的B端口105与HSR 110的第二端口115通过LAN B相连,PRP 100分别将报文a1和报文a2从A端口和B端口发送,报文a1和报文a2经过LAN A和LAN B分别到达冗余盒111和冗余盒112,报文a1和报文a2再分别通过冗余盒111和冗余盒112到达DANH 113的第一端口114和第二端口115。例如,当第一端口114首先收到报文a1时,通常,获取报文a1中的源MAC地址和序列号,并且在已建立的表格中查找该MAC地址以及序列号,并判断该表格中是否存在该MAC地址以及序列号,如果判断结果为是时,确定该报文是重复报文,丢弃该报文,如果判断结果为否时,则建立相应的表格用于存储该MAC地址以及序列号。由于每一个报文都要经历查表、建表、处理表的重复过程,所以将耗费数个时钟周期,使得处理报文的时延较长。

另外,需要注意的是,第一网络设备的第一端口依次接收第二网络设备发送的报文,例如,当第二网络设备从A端口发送了报文a1之后,又发送了报文b1,在网络传输路径上报文b1始终在报文a1之后,也就是第一网络设备的第一端口首先收到第二网络设备先发送的报文a1,才能收到第二网络设备先发送的报文b1

基于上述问题,如图2所示,本发明实施例提供的一种确定重复报文的方法,应用于冗余环网中的第一网络设备,所述第一网络设备包括:第一端口和第二端口,其中,所述第一端口和所述第二端口用于接收第二网络设备发送的报文,该方法包括如下步骤:

S201,在所述第一端口接收第一报文,统计所述第一端口接收到的报文的数量;

需要理解的是,第二网络设备在发送报文前,需要对该报文进行复制,得到两个相同的报文(原始报文和重复报文),这两个报文分别从第二网络设备的不同端口发送,经过不同的网络路径,到达第一网络设备的两个端口,可见,原始报文和重复报文分别从第一网络设备两个端口接收到。结合图1,可以在第一端口114接收第一报文a1,在第二端口115接收第一报文a2

具体的,在所述第一端口接收第一报文之后,所述方法还包括:

将所述第一端口对应的第一计数器的值加1,得到更新后的第一计数器的值,所述第一计数器用于统计所述第一端口接收到的报文的数量;

将所述更新后的第一计数器的值作为所述第一端口接收到的报文的数量;

通常,每个接收端口对应一个计数器,这里。第一端口对应第一计数器,每当第一端口接收到一个报文时,将该第一端口对应的第一计数器的值增加1,例如,在第一端口没有接收任何报文之前,该第一计数器的值为0,当第一端口接收到一个报文后,更新该第一计数器的值,即该第一计数器的值增加1,得到更新后的第一计数器的值为1,当该第一端口又接收到一个报文后,该第一计数器的值增加1,此时,第一计数器的值为2,也就是当接收报文的端口每接收一个报文后,该端口对应的计数器的值在原来的值的基础上增加1,可见,计数器的值表示该计数器对应端口接收到的报文的数量。

可选的,在所述第一端口接收第一报文之后,可以采用其他方法来统计第一端口接收到的报文的数量,例如,在第一端口每接收一个报文后,在日志记录表中标记一个数据,并统计日志记录表中全部数据的数量,全部数据的数量即为第一端口接收到的报文的数量,需要说明的是,统计第一端口接收到的报文的数量的方法不限于本发明实施例中所描述的方法。

S202,判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量;

需要注意的是,在第一网络设备的第一端口和第二端口中的任一端口接收到报文后,判断接收该报文的端口已经接收到的报文的数量是否小于等于第一端口或者第二端口已经接收到的报文的数量。例如,当第一端口接收到报文后,判断第一端口接收到的报文的数量是否小于等于第二端口接收到的报文的数量,或者当第二端口接收到报文后,判断第二端口接收到的报文的数量是否小于等于第一端口接收到的报文的数量。

具体的,所述判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量,包括:

判断所述更新后的第一计数器的值是否小于等于第二计数器的值,所述第二计数器用于统计所述第二端口接收到的报文的数量。

可以理解的是,接收报文的每个端口对应各自的计数器,这里,第二端口对应第二计数器,当第二端口每接收一个报文后,该第二端口对应的计数器的值增加1,在判断第一端口接收到的报文的数量是否小于等于第二端口接收到的报文的数量时,也就是判断第一计数器的值是否小于等于第二计数器的值。

S203,在所述第一端口接收到的报文的数量小于等于所述第二端口接收到的报文的数量时,确定所述第一报文为重复报文。

具体的,本发明实施例使用计数器来统计第一网络设备的接收端口所接收到的报文的数量,例如,当接收端口每接收到一个报文时,该接收端口所对应的计数器的值增加1。这里,用第一端口对应的第一计数器的值表示第一端口接收到的报文的数量,用第二端口对应的第二计数器的值表示第二端口接收到的报文的数量,所以,在第一端口对应的第一计数器的值小于等于第二端口对应的计数器的值时,确定所述第一报文为重复报文。

在所述第一端口接收报文的数量大于所述第二端口接收报文的数量时,确定所述第一报文为非重复报文。

本发明实施例中,在第一网络设备的任一端口接收到第一报文之后,若该端口接收到的报文的数量大于第一网络设备的另一端口接收到的第二网络设备发送的报文的数量时,则确定第一报文为非重复报文,否则,确定第一报文为重复报文。可见,本发明实施例,提高了确定重复报文的速度,降低了对处理器资源的占用数量以及系统的功耗。

举例而言,第一端口对应的计数器由CntReceived A表示,第二端口对应的计数器由CntReceived B表示,当在第一网络设备上电后,开始接收第二网络设备发送的报文前,第一网络设备的第一端口对应的CntReceived A的值为0,即CntReceived A=0,第一网络设备的第二端口对应的CntReceived B的值为0,即CntReceived B=0,在第一端口接收到第二网络设备发送的第一报文后,第一端口对应的CntReceived A的值为1,即,CntReceived A=1,第二端口对应的CntReceived B的值为0,即CntReceived B=0,此时,CntReceived A>CntReceived B,则确定第一报文为非重复报文。实际应用中,由于存在第二网络设备发送报文的A端口至第一网络设备的第一端口的距离近的情况,在第二端口接收到任一报文之前,第一端口接收到第二报文,此时,第一端口对应的CntReceived A的值为2,即CntReceived A=2,第二端口对应的CntReceived B的值为0,即CntReceived B=0,可见,CntReceived A>CntReceived B,则确定第二报文为非重复报文。若第一端口接收到第二报文之后,第二端口接收到第三报文,则第二端口对应的CntReceived B的值为1,即CntReceived B=1,第一端口对应的CntReceived A的值为2,即CntReceived A=2,此时CntReceived B<CntReceived A,可见,接收第三报文的第二端口的计数器的值小于第一端口的计数器的值,则认为第三报文为重复报文。

又例如,上电后,第一端口接收第一报文,则第一端口对应的CntReceived A的值为1,即CntReceived A=1,第二端口对应的CntReceived B的值为0,即CntReceived B=0,此时,CntReceived A>CntReceived B,则第一报文为非重复报文,在第一端口接收第一报文之后,第二端口接收到第二报文,则第二端口对应的CntReceived B的值为1,即CntReceived B=1,第一端口对应的CntReceived A的值为1,即CntReceived A=1,可见,CntReceived B=CntReceived A,则认为第二端口接收的第二报文为重复报文。

具体的,在确定所述第一报文为非重复报文之后,所述方法还包括:

判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址是否相同;

在判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址不相同时,转发所述第一报文。

通常,第一报文包括目的IP地址,该目的IP地址为第一报文所要到达网络设备的地址,当第一报文到达第一网络设备时,获取该第一报文所携带的目的IP地址,将该目的IP地址与第一网络设备的IP地址进行比较,当该目的IP地址和第一网络设备的IP地址不相同时,将该第一报文转发到目的网络设备,其中,该目的网络设备的IP地址与该目的IP地址具有相同IP地址。

具体的,在所述确定所述第一报文为重复报文之后,所述方法还包括:丢弃所述第一报文。

通常,当第一网络设备的第一端口或者第二端口接收的报文确定为重复报文后,将确定出的重复报文丢弃。

下面结合具体的应用实例,对本发明实施例所提供的一种确定重复报文的方法进行介绍。

如图3所示,本发明实施例提供的一种确定重复报文的方法,应用于冗余环网中的第一网络设备,所述第一网络设备包括:第一端口和第二端口,其中,所述第一端口和所述第二端口用于接收第二网络设备发送的报文,该方法包括如下步骤:

S301,在所述第一端口接收第一报文,统计所述第一端口接收到的报文的数量;

可理解的是的,第一网络设备包括:第一端口和第二端口,实际应用中,可以在第一端口接收第一报文,也可以在第二端口接收第一报文。

S302,判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量;

当在第一端口接收第一报文时,则判断该第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量;若在第二端口接收第一报文时,则判断该第二端口接收到的报文的数量是否小于等于所述第一端口接收到的报文的数量。

需要注意的是,在判断第一网络设备的两个端口接收的报文的数量的大小时,以接收报文的端口为准,当第一网络设备的两个端口的任一端口接收到报文后,判断该端口接收到的报文的数量是否小于等于另一个端口接收到的报文的数量。例如,第一网络设备有两个端口,端口A和端口B,在端口A接收到第一报文时,判断端口A接收到的报文的数量是否小于等于端口B接收到的报文的数量;若在端口B接收到第一报文时,判断端口B接收到的报文的数量是否小于等于端口A接收到的报文的数量。可见,在判断第一网络设备的端口A和端口B中的任一端口接收到的第一报文是否为重复报文时,将接收该第一报文的端口的已接收到的报文的数量与没有接收该报文的端口的已接收到的报文的数量进行比较,从而判定第一网络设备的任一端口接收的报文是否为重复报文。

可选的,在所述第一端口接收第一报文之后,所述方法还包括:

将所述第一端口对应的第一计数器的值加1,得到更新后的第一计数器的值,所述第一计数器用于统计所述第一端口接收到的报文的数量;

将所述更新后的第一计数器的值作为所述第一端口接收到的报文的数量;

可见,在第一网络设备的任一端口接收到报文后,该端口对应的计数器的值加1。

所述判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量,包括:

判断所述更新后的第一计数器的值是否小于等于第二计数器的值,所述第二计数器用于统计所述第二端口接收到的报文的数量。

实际应用中,第一网络设备的每个端口对应一个计数器,当第一网络设备的任一端口接收到报文后,该端口对应的计数器的值增加1,根据计数器的值可以确定该端口已经接收的报文的数量。

S303,确定所述第一报文为非重复报文;

具体的,在所述第一端口接收到的报文的数量大于所述第二端口接收到的报文的数量时,确定所述第一报文为非重复报文,也就是第一端口对应的计数器的值大于第二端口对应的计数器的值时,确定第一报文为非重复报文。

可选的,在确定所述第一报文为非重复报文之后,所述方法还包括:

判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址是否相同;

在判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址不相同时,转发所述第一报文。

S304,确定所述第一报文为重复报文;

具体的,在所述第一端口接收到的报文的数量小于等于所述第二端口接收到的报文的数量时,确定所述第一报文为重复报文,也就是第一端口对应的计数器的值小于等于第二端口对应的计数器的值时,确定第一报文为重复报文。

在所述确定所述第一报文为重复报文之后,所述方法还包括:丢弃所述第一报文。

本发明实施例中,在第一网络设备的任一端口接收到第一报文之后,若该端口接收到的报文的数量大于第一网络设备的另一端口接收到的第二网络设备发送的报文的数量时,则确定该第一报文为非重复报文,否则,该第一报文为重复报文。可见,本发明实施例,提高了处理报文的速度,降低了对处理器资源的占用数量以及系统的功耗。

另外,现有技术采用了TCAM来确定第一网络设备接收到的报文是否为重复报文,但是,该TCAM芯片的价格较高,会提高系统设计成本,而本发明实施例不需要TCAM确定重复报文,降低了系统设计成本。

如图4所示,本发明实施例提供的一种确定重复报文的装置,应用于冗余环网中的第一网络设备,所述第一网络设备包括:第一端口和第二端口,其中,所述第一端口和所述第二端口用于接收第二网络设备发送的报文,所述装置400包括:

接收单元410,用于在所述第一端口接收第一报文,统计所述第一端口接收到的报文的数量;

第一判断单元420,用于判断所述第一端口接收到的报文的数量是否小于等于所述第二端口接收到的报文的数量;

第一确定单元430,用于在所述第一端口接收到的报文的数量小于等于所述第二端口接收到的报文的数量时,确定所述第一报文为重复报文。

本发明实施例中,在第一网络设备的任一端口接收到第一报文之后,若该端口接收到的报文的数量大于第一网络设备的另一端口接收到的第二网络设备发送的报文的数量时,则确定第一报文为非重复报文,否则,确定第一报文为重复报文。可见,本发明实施例,提高了确定重复报文的速度,降低了对处理器资源的占用数量以及系统的功耗。

可选的,所述装置400还包括:

更新单元,用于将所述第一端口对应的第一计数器的值加1,得到更新后的第一计数器的值,所述第一计数器用于统计所述第一端口接收到的报文的数量;

计数单元,用于将所述更新后的第一计数器的值作为所述第一端口接收到的报文的数量;

所述第一判断单元具体用于,判断所述更新后的第一计数器的值是否小于等于第二计数器的值,所述第二计数器用于统计所述第二端口接收到的报文的数量。

可选的,所述装置400还包括:

第二判断单元,用于判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址是否相同;

转发单元,用于在判断所述第一报文所携带的目的IP地址与所述第一网络设备的IP地址不相同时,转发所述第一报文。

可选的,所述装置还包括:丢弃单元,用于丢弃所述第一报文。

本发明实施例中,在第一网络设备的任一端口接收到第一报文之后,若该端口接收到的报文的数量大于第一网络设备的另一端口接收到的第二网络设备发送的报文的数量时,则确定该第一报文为非重复报文,否则,该第一报文为重复报文。可见,本发明实施例,提高了处理报文的速度,降低了对处理器资源的占用数量以及系统的功耗。

可选地,在包含接收单元410、第一判断单元420和第一确定单元430的基础上,如图5所示,本发明实施例提供的一种确定重复报文的装置,应用于冗余环网中的第一网络设备,所述第一网络设备包括:第一端口和第二端口,其中,所述第一端口和所述第二端口用于接收第二网络设备发送的报文,该装置400还包括:

第二确定单元440,用于在所述第一端口接收报文的数量大于所述第二端口接收报文的数量时,确定所述第一报文为非重复报文。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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