故障连接检测方法和设备与流程

文档序号:12278250阅读:207来源:国知局
故障连接检测方法和设备与流程

本发明实施例涉及通信领域,尤其涉及一种故障连接检测方法和设备。



背景技术:

在工业控制系统的网络组建时,一般采用环型的网络拓扑结构,以实现网络链路保护功能,目前,比较常用的技术是环型网络冗余技术(DT-Ring),并提出了分布式冗余(Distributed Redundancy Protocol,简称DRP)协议。DRP协议中定义了多种报文协议,链路检测(Link-check)报文是其中一种,Link-check报文主要用于检测以太网环网中物理上连接的两台设备之间的链路是否连通。

以太网环网在组网时,参与组网的每台设备有两个端口,每个端口有两个接口:一个接收口和一个发送口,用于形成以太网环网组网。在正确的以太网环网组网情况下,一个设备上的某个端口的接收口和发送口分别连接在另一个设备上的同一个端口上。如图1所示:包括三个设备,分别为第一设备110、第二设备120、第三设备130,上述三个设备依次连接组成环网,第一设备110有两个端口,分别为端口111和端口112,第二设备120有两个端口,分别为端口121和端口122,第三设备130有两个端口,分别为端口131和端口132,每个端口有一个发送口(Tx)和一个接收口(Rx);端口111连接端口121,端口122连接端口131,端口132连接端口112。

每个设备可检测自己的每个端口和对端设备的端口之间的链路是否处于连通状态,以第一设备110的端口111为例进行介绍。第一设备110的端口111向第二设备120的端口121发送一个Link-check报文,第二设备120的对端设备为第一设备110,第一设备110的端口111在预设时长内接收到第二设备120的端口121回应的一个Rx为真的Link-check报文时,第一设备110即确定端口111和第二设备120的端口121处于连通状态。环网链路连通的情况下,Link-check报文会不停的在环网链路中传输,会造成资源浪费,为了避免Link-check报文在环路中不停的传输,采用阻塞一个设备的一个端口的方法,使环路断开,阻止报文在环路中不停的传输。

多个设备组网时,容易出现错误的组网方式:如图2所示:三个设备进行组网,分别为第一设备210、第二设备220、第三设备230,端口211的发送口Tx和接收口Rx分别连接端口222和端口232,端口212的发送口Tx和接收口Rx分别连在了端口232和端口221,端口231的发送口Tx和接收口Rx分别连在了端口221和端口222。

现有技术中,针对图2的错误连接方式进行链路检测时,以第一设备210为例,第一设备210的端口211发出Link-check报文,第一设备210的端口211接收到Rx为真的Link-check报文,此时第一设备210即确定端口211处于正常连接状态。具体信令传输过程为:第一设备210的端口211发出Link-check报文;第二设备220的端口222接收到该Link-check报文会马上回应一个Rx为真的Link-check报文,第二设备220将该包含有Rx为真的Link-check报文从端口222的发送口广播出去,由于第二设备220的端口222的发送口连接的是第三设备230的端口231的接收口,因此第三设备230的端口231收到了第二设备220的端口222回应的Rx为真的Link-check报文。另一方面,由于第三设备230的端口232的接收口与第一设备210的端口212的发送口连接,因此第三设备230的端口232在接收到第一设备210的端口212发送的Link-check报文时,第三设备230的端口232也会回应一个Rx为真的Link-check报文,即第三设备230的端口232回应Rx为真的Link-check报文给第一设备210的端口211。

可见,上述过程中,从端口211发送link-check报文至端口222,端口211却接收到端口232回应的Rx为真的Link-check,而现有技术并不能检测出以下错误的连接方式:第一设备210的端口211的发送口和接收口分别连接在第二设备220的端口222和第三设备的端口232,第三设备的端口232的发送口和接收口分别连接在第一设备210的端口211和第一设备210的端口212;针对图2中错误的连接方式,现有技术中第一设备210只确定端口211发出一个link-check报文,且端口211收到了对端设备回应的Rx为真的Link-check,即确定端口211与对端设备之间处于正常的连接状态,可见,现有技术中的link-check报文只能检测出以太环网中物理上连接的两台设备之间的链路是否连通,并不能准确的检测出环网中各个设备的各个端口是否处于正常的连接状态。



技术实现要素:

本发明实施例提供一种故障连接检测方法和设备,实现准确的检测出环网中各个端口是否处于正常的连接状态。

本发明实施例提供一种故障连接检测方法,包括:第一设备的第一端口接收第二设备的第一端口发送的第一报文;其中,所述第一报文包括对端设备的地址和对端端口的标识;所述对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址;所述对端端口为向所述第二设备的第一端口发送报文的设备的端口;所述第一设备若确定所述第一设备的地址与所述对端设备的地址相同、且所述第一设备的第一端口的标识与所述对端端口的标识相同,则确定所述第一设备的第一端口处于正常连接状态,且所述第二设备的第一端口处于正常连接状态。

可选地,该方法还包括:所述第一设备若确定所述第一设备的地址与所述对端设备的地址不相同,和/或,确定所述第一设备的第一端口的标识与所述对端端口的标识不相同,则:确定所述第一设备的第一端口处于故障连接状态,并确定所述第二设备的第一端口处于故障连接状态。

可选地,确定所述第二设备的第一端口处于故障连接状态包括:在确定所述对端设备的地址和所述第一设备的地址相同,但所述第一设备的第一端口的标识与所述对端端口的标识不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在同一个设备的不同端口上;在确定所述对端设备的地址和所述第一设备的地址不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在不同设备的端口上。

可选地,所述在第一设备的第一端口接收第一报文之后,还包括:判断第一报文中所述对端设备的地址和所述对端端口的标识是否为有效值;若所述第一设备若确定所述对端设备的地址和所述对端端口的标识为有效值,则判断所述第一设备的地址与所述对端设备的地址是否相同、且所述第一设备的第一端口的标识与所述对端端口的标识是否相同;所述第一设备若确定所述对端设备的地址和所述对端端口的标识为无效值,则:所述第一设备根据所述第一报文生成第二报文,并将所述第二报文中所述对端设备的地址和所述对端端口的标识设置为所述第二设备的地址和所述第二设备的第一端口的标识,将所述第二报文中的源地址设置为所述第一设备的地址,将所述第二报文中的发送端口的标识设置为所述第一设备的第一端口的标识;所述第一设备的第一端口定期发送所述第二报文。

可选地,所述第一报文中包括所述第一报文的版本标识;所述第一设备的第一端口接收所述第二设备的第一端口发送的第一报文之后,判断第一报文中所述对端设备的地址和所述对端端口的标识是否为有效值之前,还包括:判断所述第一报文中的所述版本标识是否为预设新版本标识;若确定所述第一报文中的所述版本标识为预设新版本标识,则判断第一报文中所述对端设备的地址和所述对端端口的标识是否为有效值。

可选地,所述第一设备的第一端口接收第一报文之前,还包括:所述第一设备从接收到定时器消息时开始计时,在确定预设时长内未接收到所述第一报文时,确定:所述第一设备的第一端口处于故障连接状态。

本发明实施例提供用于故障连接检测的设备,包括:

接收单元,用于接收第二设备的第一端口发送的第一报文;其中,所述接收单元位于所述第一设备的第一端口中;所述第一报文包括对端设备的地址和对端端口的标识;所述对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址;所述对端端口为向所述第二设备的第一端口发送报文的设备的端口;

处理单元,用于若确定所述第一设备的地址与所述对端设备的地址相同、且所述第一设备的第一端口的标识与所述对端端口的标识相同,则确定所述第一设备的第一端口处于正常连接状态,且所述第二设备的第一端口处于正常连接状态。

可选地,所述处理单元,还用于:若确定所述第一设备的地址与所述对端设备的地址不相同,和/或,确定所述第一设备的第一端口的标识与所述对端端口的标识不相同,则:确定所述第一设备的第一端口处于故障连接状态,并确定所述第二设备的第一端口处于故障连接状态。

可选地,所述处理单元,用于:在确定所述对端设备的地址和所述第一设备的地址相同,但所述第一设备的第一端口的标识与所述对端端口的标识不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在同一个设备的不同端口上;在确定所述对端设备的地址和所述第一设备的地址不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在不同设备的端口上。

可选地,所述处理单元,还用于:判断第一报文中所述对端设备的地址和所述对端端口的标识是否为有效值;若确定所述对端设备的地址和所述对端端口的标识为有效值,则判断所述第一设备的地址与所述对端设备的地址是否相同、且所述第一设备的第一端口的标识与所述对端端口的标识是否相同;若确定所述对端设备的地址和所述对端端口的标识为无效值,则:根据所述第一报文生成第二报文,并将所述第二报文中所述对端设备的地址和所述对端端口的标识设置为所述第二设备的地址和所述第二设备的第一端口的标识,将所述第二报文中的源地址设置为所述第一设备的地址,将所述第二报文中的发送端口的标识设置为所述第一设备的第一端口的标识;所述设备还包括发送单元,用于通过第一设备的第一端口定期发送所述第二报文;其中,所述第二报文中包括所述第二设备的地址、所述第二设备的第一端口的标识。

本发明实施例提供一种故障连接检测方法和设备,由于第一设备的第一端口接收第二设备的第一端口发送的第一报文,可以确定第一设备的第一端口的接收口连接第二设备的第一端口的发送口;另一方面,所述第一报文包括对端设备的地址和对端端口的标识,所述对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址,所述对端端口为向所述第二设备的第一端口发送报文的设备的端口,因此,可以确定第二设备的第一端口的接收口连接对端设备的对端端口的发送口;所以,第二设备的第一端口的发送口和接收口分别连接第一设备的第一端口和对端设备的对端端口;本发明实施例中,所述第一设备若确定所述第一设备的地址与所述对端设备的地址相同、且所述第一设备的第一端口的标识与所述对端端口的标识相同,即确定第二设备的第一端口的接收口和发送口连接同一个设备的同一个端口,即第二设备的第一端口的接收口和发送口均连接第一设备的第一端口,也就是说,第二设备的第一端口的接收口连接第一设备的第一端口的发送口,第二设备的第一端口的发送口连接第一设备的第一端口的接收口,即第一设备的第一端口的接收口和发送口也连接在同一个设备的同一个端口上,即第一设备的第一端口的接收口和发送口连接第二设备的第一端口,此时确定所述第一设备的所述第一端口处于正常连接状态,且确定所述第二设备的第一端口处于正常连接状态。现有技术中的方法只能检测两台设备之间的链路是否连通,相比于现有技术,本发明实施例提供的方法能够确定第一设备的第一端口以及第一设备的对端设备的端口是否处于正确的连接状态,因此能够准确的检测出环网中各个端口是否处于正常的连接状态。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。

图1为现有技术中的正确的环网组网方式示意图;

图2为现有技术中的错误的环网组网方式示意图;

图3为本发明实施例提供的系统架构示意图;

图4为本发明实施例提供的一种故障连接检测方法流程示意图;

图5示例性示出了本发明实施例提供的正确连接状态的组网结构示意图;

图6示例性示出了本发明实施例提供的故障连接状态的组网结构示意图;

图7为本发明实施例提供的另一种故障连接检测方法流程示意图;

图8为本发明实施例提供的一种用于故障连接检测的设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在以太环网的组成环网的过程中,可有很多台设备进行组成,设备的具体数量不作限定,可根据具体实施场景进行设置;每个设备有两个端口分别和另两个设备的一个端口连接。

图3示例性示出了本发明实施例适用的系统架构示意图,如图3所示,该系统架构300包括四个设备,图2中所示的四个设备分别为设备310,设备320,设备330,设备340,每个设备有多个端口,每个端口有两个接口,分别为接收口和发送口,每个端口都可进行收发报文。在四个设备组成的环网时,四个设备分别为设备310,设备320,设备330,设备340,每个设备通过各自设备上的一个端口和另一个设备连接。设备310的端口311连接设备320的端口321,设备320的端口322连接设备330的端口332,设备330的端口331连接设备340的端口341,设备340的端口342连接设备310的端口312,如此组成环网。

现有技术中通过link-check报文对环网中两个设备之间的链路进行检测的过程,以设备310和设备320之间的链路检测为例进行介绍:设备310的端口311的发送口连接设备320的端口321的接收口。设备310的端口311的发送口向设备320的端口321发送link-check报文,设备320的端口321的接收口接收该link-check报文之后,通过端口321的发送口发送一个Rx为真的Link-check报文,设备310的端口311的接收口接收到包含Rx为真的Link-check报文,则认为设备310的端口311和设备320的端口321之间的链路处于正确的连接状态。

本发明实施例通过对现有技术中的link-check报文进行改进检测两个设备之间是否处于正确连接状态,即在现有技术中的link-check报文中添加对端设备的信息。

图4示例性示出了本发明实施例提供的一种故障连接检测方法的流程示意图。基于图3所示的系统架构,如图4所示,本发明实施例中,第一设备的第一端口的接收口连接第二设备的第一端口的发送口,第二设备的第一端口的接收口连接对端设备的对端端口的发送口。

本发明实施例中,以太环网中有很多个设备组成环网,本发明实施例中提供的一种故障连接检测方法适用于图3所示系统架构中的任何一个设备的任一个端口的连接状态的检测,本发明实施例中的以第一设备、第二设备、对端设备举例,进行说明一种故障连接检测方法实现的过程,只是为了区分的接收和发送报文的各个设备,本发明提供的方法并不仅限于在三个设备使用。每个设备也有很多个端口,每个设备有两个端口参与组成环网。本发明实施例中“第一设备”、“第二设备”、“第一端口”仅仅用于区别,不具有限定意义。本发明实施例提供的一种故障连接检测方法,包括以下步骤:

步骤S401:第一设备的第一端口接收第二设备的第一端口发送的第一报文;其中,第一报文包括对端设备的地址和对端端口的标识;对端设备的地址为向第二设备的第一端口发送报文的设备的地址;对端端口为向第二设备的第一端口发送报文的设备的端口;

步骤S402:第一设备若确定第一设备的地址与对端设备的地址相同、且第一设备的第一端口的标识与对端端口的标识相同,则确定第一设备的第一端口处于正常连接状态,且第二设备的第一端口处于正常连接状态。

现有技术中,每个设备的每个端口都可以发送和接收link-check报文,现有技术中的link-check报文中包括的字段为源端口地址、目的地址、802.1Q协议ID、802.1Q VLAN tag、Link-check版本号、Rx标识、0x0100,现有技术中的源地址为发送link-check报文的设备的端口的地址;目的地址为接收link-check报文的设备的地址;Link-check版本号为0x0400;Rx标识为0x0500时,表示预设时长内未收到对端报文;Rx标识为0x0400时,表示预设时长内接收到对端报文。

本发明实施例中的link-check报文中除了包括上述现有技术中的所有字段外,还增加了四个新的字段:对端设备的地址、对端端口的标识、源地址、发送端口的标识;本发明实施例link-check报文中的源地址为发送报文的设备的地址,是设备的唯一标识;以第一设备的第一端口接收第二设备的第一端口发送的第一报文为例对添加的四个新的字段进行介绍,第一报文中的对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址;所述对端端口为向所述第二设备的第一端口发送报文的设备的端口;源地址为发送第一报文的设备的地址,即第二设备的地址;发送端口的标识为发送第一报文的设备的端口的标识,即为第二设备的第一端口的标识;第二设备的第一端口接收到对端设备的对端端口发送的link-check报文,之后,第二设备的第一端口将对端设备的地址和对端端口的标识添加到link-check报文中,再广播出去,第一设备的第一端口接收到包含对端设备的地址和对端端口的标识的link-check报文,并由第一设备判断第一设备的第一端口以及第二设备的第一端口的连接状态。

现有技术中的源端口地址是端口的唯一标识,也可用于本发明中的判断过程,这样就不需要增加发送端口的标识;但是本发明不采用源端口地址的原因为以下两个方面:一方面,因为有些设备不支持源端口地址,导致发送的link-check报文中携带的源端口地址为无效值,会使得接收到此link-check报文的设备无法判断是哪个端口发送的link-check报文,而且link-check报文中源端口地址的长度为6个字节,这样导致报文格式较长;另一方面,本发明中采用发送端口的标识的长度为1个字节,比现有技术中的源端口地址长度短;所以本发明中不采用源端口地址判断端口的连接状态是否正常。

本发明实施例中,由于第一设备的第一端口接收第二设备的第一端口发送的第一报文,可以确定第一设备的第一端口的接收口连接第二设备的第一端口的发送口;另一方面,所述第一报文包括对端设备的地址和对端端口的标识,所述对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址,所述对端端口为向所述第二设备的第一端口发送报文的设备的端口,因此,可以确定第二设备的第一端口的接收口连接对端设备的对端端口的发送口;所以,第二设备的第一端口的发送口和接收口分别连接第一设备的第一端口和对端设备的对端端口;本发明实施例中,所述第一设备若确定所述第一设备的地址与所述对端设备的地址相同、且所述第一设备的第一端口的标识与所述对端端口的标识相同,即确定第二设备的第一端口的接收口和发送口所连接为同一个设备的同一个端口,即均为第一设备的第一端口,也就是说,第二设备的第一端口的接收口连接第一设备的第一端口的发送口,第二设备的第一端口的发送口连接第一设备的第一端口的接收口,即第一设备的第一端口的接收口和发送口也连接在同一个设备的同一个端口上,即第一设备的第一端口的接收口和发送口连接第二设备的第一端口,此时确定所述第一设备的所述第一端口处于正常连接状态,且确定所述第二设备的第一端口处于正常连接状态。现有技术中的方法只能检测两台设备之间的链路是否连通,相比于现有技术,本发明实施例提供的方法能够确定第一设备的第一端口以及第一设备的对端设备的端口是否处于正确的连接状态,因此能够准确的检测出环网中各个端口是否处于正常的连接状态。

图5示例性示出了本发明实施例提供的正确连接状态的组网结构示意图。

基于图3所示的系统架构,如图5所示,该组网结构中包括第一设备510、第二设备520和第三设备530;第一设备510上有很多个端口,参与组网的端口有第一端口511和第二端口512;第二设备520上有很多个端口,与组网的端口有第一端口521和第二端口522;第三设备530上有很多个端口,与组网的端口有第一端口531和第二端口532。

如图5所示的第一设备510的第一端口511和第二设备520的第一端口521之间连接关系如下:第一设备510的第一端口511的发送口连接第二设备520的第一端口521的接收口,第一设备510的第一端口511的接收口连接第二设备520的第一端口521的发送口。

以检测第一设备510的第一端口511的连接状态为例:一方面,由于第二设备520的第一端口521接收第一设备510的第一端口511的发送口定期发送的报文,确定出第二设备520的第一端口521的接收口连接第一设备510的第一端口511的发送口,之后,第二设备520的第一端口521向第一设备510的第一端口511发送第一报文,第一报文中包括的对端设备的地址为第一设备的地址,对端端口的标识为第一设备的第一端口的标识;

另一方面,由于第一设备510的第一端口511的接收口接收第二设备520的第一端口521发送的第一报文,第一设备510的第一端口511根据第一报文中包括的对端设备的地址和对端端口的标识,确定出对端设备的地址和第一设备的地址相同,且对端端口的标识和第一设备的第一端口的标识相同,因此可以确定出第二设备520的第一端口521的发送口和接收口连接的是同一个设备的同一个端口,即第一设备510的第一端口511,因此,第一设备510的第一端口511处于正常连接状态,且第二设备520的第一端口521处于正常连接状态。

可选地,所述第一设备若确定所述第一设备的地址与所述对端设备的地址不相同,和/或,确定所述第一设备的第一端口的标识与所述对端端口的标识不相同,则:确定所述第一设备的第一端口处于故障连接状态,并确定所述第二设备的第一端口处于故障连接状态。第一设备和第二设备上均有很多个端口,如果其中一个端口处于故障连接状态,则阻塞处于故障连接的端口,同时发送该端口故障信息至第一设备内部的环协议模块。如此,第一设备可根据第一设备的第一端口接收的第一报文中的对端设备的地址和对端端口的标识,判断出第一设备的第一端口和第二设备的第一端口是否处于正常的连接状态;而且,阻塞处于故障连接的端口,避免了报文在错误连接的组网中一直传输造成的资源浪费,同时第一设备的环协议模块也可以根据收到的端口故障信息,了解第一设备的故障端口信息。

可选地,确定所述第二设备的第一端口处于故障连接状态包括:在确定所述对端设备的地址和所述第一设备的地址相同,但所述第一设备的第一端口的标识与所述对端端口的标识不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在同一个设备的不同端口上;在确定所述对端设备的地址和所述第一设备的地址不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在不同设备的端口上。

图6示例性示出了本发明实施例提供的故障连接状态的组网结构示意图。

基于图3所示的系统架构,如图6所示,该组网结构中包括第一设备610、第二设备620和第三设备630;第一设备610上有很多个端口,第一端口611和第二端口612是第一设备610上的其中两个端口;第二设备620上有很多个端口,第一端口621和第二端口622是第二设备620上的其中两个端口;第三设备630上有很多个端口,第一端口631和第二端口632是第三设备630上的其中两个端口。

以检测第一设备610的第一端口611的连接状态为例:第一设备610的第一端口611的接收口连接第二设备620的第一端口621的发送口,第二设备620的第一端口621的接收口连接第三设备630的第一端口631的发送口。

一方面,由于第三设备630的第一端口631向第二设备620的第一端口621发送报文,该报文中的源地址为第三设备630的地址,发送端口的标识为第三设备630的第一端口631的标识,因此,第二设备620的第一端口621的接收口连接第三设备630的第一端口631的发送口,之后,第二设备620根据该报文生成第一报文,并将第一报文的对端设备的地址设置为第三设备630的地址,对端端口的标识设置为第三设备630的第一端口631的标识。另一方面,由于第一设备610的第一端口611的接收第二设备620的第一端口621发送的第一报文,并根据第一报文中的对端设备的地址和对端端口的标识,判断出对端设备的地址和第一设备610的地址不相同,对端端口的标识和第一设备610的第一端口611的标识相同,确定出第二设备620的第一端口621的发送口和接收口分别连接在第一设备610的第一端口611和第三设备630的第一端口631上。如此,第一设备610根据第一设备的地址和第一报文中的对端设备地址不相同,判断出第一设备610的第一端口611处于故障连接状态,且第一设备610的对端设备处于故障连接状态,即第二设备620的第一端口621的发送口和接收口连接在不同的设备上。

以检测第二设备620的第一端口621的连接状态为例:第三设备630的第一端口631的发送口连接第二设备620第一端口621的接收口;第三设备630的第一端口631的接收口连接第二设备620的第二端口622的发送口。

一方面,第二设备620的第二端口622向第三设备630的第一端口631发送报文,该报文中包括的源地址为第二设备620的地址,发送端口的标识为第二设备620的第二端口622的标识;根据该报文中包括的源地址和发送端口的标识,可以确定出第三设备630的第一端口631的接收口连接第二设备620的第二端口622的发送口;之后,第三设备630根据该报文生成第一报文,并将第一报文中的对端设备的地址设置为第二设备620的地址,将对端端口的标识设置为第二设备620的第二端口622的标识。另一方面,由于第二设备620的第一端口621接收第三设备630的第一端口631发送的第一报文,第二设备620根据第一报文中包括的对端设备的地址和对端端口的标识,判断出第二设备620的地址和第一报文中包括的对端设备的地址相同,且第二设备620的第一端口621的标识和第一报文中包括的对端端口的标识不相同,确定出第三设备630的第一端口631的发送口和接收口分别连接第二设备620的第一端口621接收口和第二设备620的第二端口622的发送口;因此,第二设备620可以根据第二设备620的地址和第一报文中的对端设备的地址相同,且第二设备620的第一端口621的标识和对端端口的标识不相同,判断出第二设备620的第一端口621处于故障连接状态,且第三设备630的第一端口631处于故障连接状态,即第三设备630的第一端口631的发送口和接收口连接在同一个设备的不同端口上。

可选地,在第一设备的第一端口接收第一报文之后,还包括:判断第一报文中对端设备的地址和对端端口的标识是否为有效值;第一设备若确定对端设备的地址和对端端口的标识为有效值,则判断第一设备的地址与对端设备的地址是否相同、且第一设备的第一端口的标识与对端端口的标识是否相同;第一设备若确定对端设备的地址和对端端口的标识为无效值,则:第一设备根据第一报文生成第二报文,并将第二报文中对端设备的地址和对端端口的标识设置为第二设备的地址和第二设备的第一端口的标识,将第二报文中的源地址设置为第一设备的地址,将第二报文中的发送端口的标识设置为第一设备的第一端口的标识;第一设备的第一端口定期发送第二报文;其中,第二报文中包括第二设备的地址、第二设备的第一端口的标识。

可选地,第一报文中包括的对端设备的地址和对端端口的标识可为无效值,无效值为没有实际意义的值,不能指示第一设备所在环网中的任何一个设备或任何一个端口,或者任何一个设备的任一个端口。比如,对端设备的地址和对端端口的标识的无效值可为一个特定值,如[00-00-00-00-00-00,0],或者为环网中除所有设备的地址和端口的标识之外的值。

本发明实施例中,第一设备的第一端口接收到第二设备的第一端口发送的第一报文,第一报文中的对端设备的地址和对端端口的标识若为无效值,则第一设备根据第一报文生成第二报文,并将第二报文中对端设备的地址和对端端口的标识设置为第二设备的地址和第二设备的第一端口的标识,将第二报文中的源地址设置为第一设备的地址,将第二报文中的发送端口的标识设置为第一设备的第一端口的标识;第一设备的第一端口定期发送第二报文。如此,下一个接收到第二报文的设备的端口可根据自己设备的地址和接收第二报文的端口的标识,分别与第二报文的对端设备的地址和对端端口的标识比较,来判断接收到第二报文的设备的端口是否处于正确的连接状态,且可以判断第一设备的第一端口是否处于正确的连接状态。

可选地,第一报文中包括第一报文的版本标识;第一设备的第一端口接收第二设备的第一端口发送的第一报文之后,判断第一报文中对端设备的地址和对端端口的标识是否为有效值之前,还包括:判断第一报文中的版本标识是否为预设新版本标识;若确定第一报文中的版本标识为预设新版本标识,则判断第一报文中对端设备的地址和对端端口的标识是否为有效值。

本发明实施例中,若第一设备确定第一报文中的所述版本标识为预设新版本标识,例如为0x0401,则判断第一报文中对端设备的地址和对端端口的标识是否为有效值。若第一设备确定所述第一报文中的所述版本标识为旧版本标识,例如为0x0400,则按照现有技术中的方法检测链路是否为正常连接状态。如此,第一设备第一端口可在接收第二设备的第一端口发送的第一报文之后,根据第一报文中的第一报文的版本标识确定出是否为新版本标识。

可选地,第一设备的第一端口接收第一报文之前,还包括:第一设备从接收到定时器消息时开始计时,在确定预设时长内未接收到第一报文时,确定:第一设备的第一端口处于故障连接状态。

具体实施中,预设时长具体值可根据具体情况进行设置,本发明实施例中不做具体限制。第一设备从接收到定时器消息时开始计时,在确定预设时长内未接收到所述第一报文,则确定第一设备的第一端口处于故障连接状态。可选地,阻塞处于故障连接状态第一设备的第一端口,并通过第一设备上的处于正常状态的其他端口将第一端口处于故障状态的信息上报。如此,第一设备的第一端口可根据预设时长是否接收到第一报文进行判断第一设备的第一端口的连接状态,进而选择是否阻塞第一设备的第一端口。

可选地,在定时器消息中设置定时器时间,预设时长可为三倍定时器时间,若第一设备的第一端口在定时器时间内未收到第一报文,则判断第一设备的第一端口是否具有link-check功能的使能,如果第一设备的第一端口具有link-check功能的使能,则第一设备的第一端口可以定期发送link-check报文,也可以接收link-check报文;如果第一设备的第一端口不具有link-check功能的使能,则第一设备的第一端口可以接收报文,也可以根据接收到的link-check报文回应一个Rx为真的link-check报文,但是不能定期发送link-check报文。本发明实施例中,若第一设备的第一端口在三倍定时器时间内接收到第一报文,则判断第一报文中的版本标识是否为新版本标识;若第一设备的第一端口在三倍定时器时间内还未收到第一报文,则确定第一设备的第一端口处于故障连接状态。上述link-check功能的使能为具有接收和定期发送link-check报文的功能,例如第一设备的第一端口具有link-check功能的使能表示第一设备的第一端口既可以接收link-check报文,也可以定期发送link-check报文;又例如第一设备的第一端口不具有link-check功能的使能,表示第一设备的第一端口可以接收link-check报文,也可以回应发送该link-check报文的设备一个Rx为真的link-check报文,但不能定期发送link-check报文。

本发明实施例中,假设环网中的每个端口每个设备的每个端口都具有link-check使能,都可以定期发送link-check报文,如图6所示的故障连接状态的组网结构示意图中,假设第一设备的地址为[00-00-00-00-00-01],第二设备的地址为[00-00-00-00-00-02],第二设备的地址为[00-00-00-00-00-03];每个设备都有两个端口,分别为第一端口和第二端口,第一端口的标识为1,第二端口的标识为2。

第三设备630的第一端口631定期发送版本号为0x0401的link-check报文,link-check报文中设置的源地址为[00-00-00-00-00-03],发送端口为1,对端设备的地址为无效值,对端端口的标识为无效值。

由于第二设备620的第一端口621接收到第三设备630的第一端口631发送的版本号为0x0401的link-check报文,可以确定出第二设备620的第一端口621的接收口连接第三设备630的第一端口631的发送口;之后,第二设备620的第一端口621的发送口定期发送的link-check报文中设置源地址为[00-00-00-00-00-02],发送端口的标识为1,对端设备的地址为[00-00-00-00-00-03],对端端口的标识为1。

由于第一设备610的第一端口611接收到第二设备620的第一端口621的发送口定期发送的link-check报文中包括的源地址为[00-00-00-00-00-02],发送端口的标识为1,对端设备的地址为[00-00-00-00-00-03],对端端口的标识为1;可以确定第一设备610的第一端口611的接收口连接第二设备620的第一端口621的发送口。

第一设备610的第一端口611根据接收到的link-check报文中的对端设备的地址为[00-00-00-00-00-03],对端端口的标识为1,判断第一设备610的地址[00-00-00-00-00-01]和对端设备的地址[00-00-00-00-00-03]不相同,且第一端口611的标识1和对端端口的标识1相同,确定出第一设备610的第一端口611处于故障的连接状态,且第二设备620的第一端口621处于故障的连接状态,并确定出第二设备620的第一端口621的接收口和发送口分别连接在不同的设备上,即第二设备620的第一端口621的接收口和发送口分别连接第三设备的第一端口和第一设备的第一端口上。

为了更清楚的介绍上述方法流程,本发明实施例提供以下示例。

图7示例性示出了本发明实施例提供的另一种故障连接检测方法流程示意图,基于图3所示的系统架构,如图7所示,该方法包括以下步骤:

步骤S701:第一设备接收到定时器消息,并开始计时;

步骤S702:第二设备的第一端口向第一设备的第一端口发送的第一报文;

步骤S703:第一设备在预设时长内是否接收到第一报文;若是,则执行步骤S704;若否,则执行步骤S711;

步骤S704:确定第一报文中的版本标识是否为预设新版本标识;若是,则执行步骤S705;若否,则结束,不再执行下述任何步骤;

步骤S705:确定第一报文中的对端设备的地址和对端端口的标识是否为有效值,若是,执行步骤S706;若否,则执行步骤S710;

步骤S706:判断所述第一设备的地址与所述对端设备的地址是否相同、且所述第一设备的第一端口的标识与所述对端端口的标识是否相同;

步骤S707:第一设备确定第一设备的地址与对端设备的地址是否相同;若是,则执行步骤S708;若否,则执行步骤S711;

步骤S708:第一设备的第一端口的标识与对端端口的标识是否相同;若是,则执行步骤S709;若否,则执行步骤S711;

步骤S709:确定第一设备的第一端口处于正常连接状态,且第二设备的第一端口处于正常连接状态;

步骤S710:第一设备根据第一报文生成第二报文,并将所述第二报文中所述对端设备的地址和所述对端端口的标识设置为所述第二设备的地址和所述第二设备的第一端口的标识,将所述第二报文中的源地址设置为所述第一设备的地址,将所述第二报文中的发送端口的标识设置为所述第一设备的第一端口的标识;所述第一设备的第一端口定期发送所述第二报文;

步骤S711:确定第一设备的第一端口处于故障连接状态,且第二设备的第一端口处于故障连接状态。

从上述内容可以看出:本发明实施例中提供了一种故障连接检测方法,先通过判断报文中的版本标识是否为预设新版本标识,可以快速确定出是否按照本方案实施例提供的方法检测环网中的各个端口的连接状态;而且,本发明实施例通过对现有技术中的link-check报文添加四个字段,有效检测出以太环网中错误的组网方式。进一步,由于第一设备的第一端口接收第二设备的第一端口发送的第一报文,可以确定第一设备的第一端口的接收口连接第二设备的第一端口的发送口;另一方面,所述第一报文包括对端设备的地址和对端端口的标识,所述对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址,所述对端端口为向所述第二设备的第一端口发送报文的设备的端口,因此,可以确定第二设备的第一端口的接收口连接对端设备的对端端口的发送口;所以,第二设备的第一端口的发送口和接收口分别连接第一设备的第一端口和对端设备的对端端口;本发明实施例中,所述第一设备若确定所述第一设备的地址与所述对端设备的地址相同、且所述第一设备的第一端口的标识与所述对端端口的标识相同,即确定第二设备的第一端口的接收口和发送口连接同一个设备的同一个端口,即第二设备的第一端口的接收口和发送口均连接第一设备的第一端口,也就是说,第二设备的第一端口的接收口连接第一设备的第一端口的发送口,第二设备的第一端口的发送口连接第一设备的第一端口的接收口,即第一设备的第一端口的接收口和发送口也连接在同一个设备的同一个端口上,即第一设备的第一端口的接收口和发送口连接第二设备的第一端口,此时确定所述第一设备的所述第一端口处于正常连接状态,且确定所述第二设备的第一端口处于正常连接状态。现有技术中的方法只能检测两台设备之间的链路是否连通,相比于现有技术,本发明实施例提供的方法能够确定第一设备的第一端口以及第一设备的对端设备的端口是否处于正确的连接状态,因此能够准确的检测出环网中各个端口是否处于正常的连接状态。

图8示例性示出了本发明实施例提供的一种用于故障连接检测的设备的结构示意图。

基于相同构思,本发明实施例提供的一种用于故障连接检测的设备,用于执行上述方法流程,如图8所示,该设备800包括接收单元801、处理单元802和发送单元803;其中:

接收单元801,用于接收第二设备的第一端口发送的第一报文;其中,所述接收单元801位于所述第一设备的第一端口中;所述第一报文包括对端设备的地址和对端端口的标识;所述对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址;所述对端端口为向所述第二设备的第一端口发送报文的设备的端口;

处理单元802,用于若确定所述第一设备的地址与所述对端设备的地址相同、且所述第一设备的第一端口的标识与所述对端端口的标识相同,则确定所述第一设备的第一端口处于正常连接状态,且所述第二设备的第一端口处于正常连接状态。

发送单元803,用于:通过所述第一设备的第一端口定期发送所述第二报文。

可选地,所述处理单元802,还用于:若确定所述第一设备的地址与所述对端设备的地址不相同,和/或,确定所述第一设备的第一端口的标识与所述对端端口的标识不相同,则:确定所述第一设备的第一端口处于故障连接状态,并确定所述第二设备的第一端口处于故障连接状态。

可选地,所述处理单元802,用于:在确定所述对端设备的地址和所述第一设备的地址相同,但所述第一设备的第一端口的标识与所述对端端口的标识不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在同一个设备的不同端口上;在确定所述对端设备的地址和所述第一设备的地址不相同,则确定所述第二设备的第一端口的发送口和接收口分别连接在不同设备的端口上。

可选地,所述处理单元802,还用于:判断第一报文中所述对端设备的地址和所述对端端口的标识是否为有效值;若确定所述对端设备的地址和所述对端端口的标识为有效值,则判断所述第一设备的地址与所述对端设备的地址是否相同、且所述第一设备的第一端口的标识与所述对端端口的标识是否相同;若确定所述对端设备的地址和所述对端端口的标识为无效值,则:根据所述第一报文生成第二报文,并将所述第二报文中所述对端设备的地址和所述对端端口的标识设置为所述第二设备的地址和所述第二设备的第一端口的标识,将所述第二报文中的源地址设置为所述第一设备的地址,将所述第二报文中的发送端口的标识设置为所述第一设备的第一端口的标识;其中,所述第二报文中包括所述第二设备的地址、所述第二设备的第一端口的标识。

可选地,所述第一报文中包括所述第一报文的版本标识;所述处理单元802,还用于:判断所述第一报文中的所述版本标识是否为预设新版本标识;若确定所述第一报文中的所述版本标识为预设新版本标识,则判断第一报文中所述对端设备的地址和所述对端端口的标识是否为有效值。

可选地,所述处理单元802,还用于:从通过所述接收单元801接收到定时器消息时开始计时,在确定预设时长内未接收到所述第一报文时,确定:所述第一设备的第一端口处于故障连接状态。

从上述内容可以看出:先通过判断报文中的版本标识是否为预设新版本标识,可以快速确定出是否按照本方案实施例提供的方法检测环网中的各个端口的连接状态;进一步,由于第一设备的第一端口接收第二设备的第一端口发送的第一报文,可以确定第一设备的第一端口的接收口连接第二设备的第一端口的发送口;另一方面,所述第一报文包括对端设备的地址和对端端口的标识,所述对端设备的地址为向所述第二设备的第一端口发送报文的设备的地址,所述对端端口为向所述第二设备的第一端口发送报文的设备的端口,因此,可以确定第二设备的第一端口的接收口连接对端设备的对端端口的发送口;所以,第二设备的第一端口的发送口和接收口分别连接第一设备的第一端口和对端设备的对端端口;本发明实施例中,所述第一设备若确定所述第一设备的地址与所述对端设备的地址相同、且所述第一设备的第一端口的标识与所述对端端口的标识相同,即确定第二设备的第一端口的接收口和发送口所连接为同一个设备的同一个端口,即第二设备的第一端口的接收口和发送口均连接第一设备的第一端口,也就是说,第二设备的第一端口的接收口连接第一设备的第一端口的发送口,第二设备的第一端口的发送口连接第一设备的第一端口的接收口,即第一设备的第一端口的接收口和发送口也连接在同一个设备的同一个端口上,即第一设备的第一端口的接收口和发送口连接第二设备的第一端口,此时确定所述第一设备的所述第一端口处于正常连接状态,且确定所述第二设备的第一端口处于正常连接状态。现有技术中的方法只能检测两台设备之间的链路是否连通,相比于现有技术,本发明实施例提供的方法能够确定第一设备的第一端口以及第一设备的对端设备的端口是否处于正确的连接状态,因此能够准确的检测出环网中各个端口是否处于正常的连接状态。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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