一种链路状态清除报文的溯源方法及装置与流程

文档序号:12278436阅读:265来源:国知局
一种链路状态清除报文的溯源方法及装置与流程

本发明涉及通信技术领域,特别涉及一种携带溯源信息的链路状态报文发送方法及装置、以及一种链路状态清除报文的溯源方法及装置。



背景技术:

基于链路状态的路由协议通常包括OSPF(Open Shortest Path First开放式最短路径优先)协议、IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)协议等。在应用基于链路状态的路由协议的网络中,每台设备各自生成一系列链路状态报文(比如IS-IS协议中的LSPDU(Link State Protocol Data Unit,链路状态协议数据单元)以及OSPF协议中的LSA(Link-State Advertisement,链路状态广播)报文),用于描述自身设备和邻居设备的链路信息;链路状态报文通过网络中的扩散机制发送到该网络中的所有设备;这样,该网络中的所有设备都获得了网络的全部拓扑信息。因此,该网络中的每台设备都能根据获得的拓扑信息产生无环最优路由,从而指导数据转发。

当某台设备的链路状态撤销时,该设备生成链路状态清除报文,发送至网络中,以删除该链路状态。通常情况下,网络中需要确定链路状态清除报文的源头设备(即生成该链路状态清除报文的设备),比如,网络中泛洪了链路状态清除报文,引起路由震荡,这种情况下需要排查原因,便需要确定链路状态清除报文的源头设备。

现有方案中,设备在生成链路状态清除报文时,在该报文中添加标识TLV(Type Length Value,类型-长度-值),该标识TLV中包括该设备的标识信息,这样,在对该报文进行转发的过程中,便可以根据该标识TLV确定该报文的源头设备。

但是,在一些协议标准中,链路状态清除报文中会携带有其他TLV,如某安全协议会在链路状态清除报文中携带认证TLV,这时不允许再在该报文中加入其他TLV。也就是说,这种情况下,无法在链路状态清除报文中添加标识TLV,上述方案与这种协议标准不兼容,在这种协议标准下,上述方案无法实现。



技术实现要素:

本发明实施例的目的在于提供一种携带溯源信息的链路状态报文发送方法及装置、以及一种链路状态清除报文的溯源方法及装置,解决协议标准不兼容的问题。

为达到上述目的,本发明实施例公开了一种携带溯源信息的链路状态报文发送方法,应用于第一设备,所述方法包括:

接收第一链路状态清除报文;

发送所述第一链路状态清除报文,并根据所述第一链路状态清除报文,生成所述第一链路状态清除报文的第一TLV类型-长度-值;

在待发送的第一链路状态报文中增加所述第一TLV;

发送所述第一链路状态报文,使得每个接收到所述第一链路状态报文的设备,从所述第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息,其中,所述记录信息中包含所述第一设备的设备标识、以及针对所述第一设备记录的所述第一报文标识和所述上一跳设备的设备标识,所述上一跳设备为向所述第一设备发送所述第一链路状态清除报文的设备。

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

接收第二设备发送的第二链路状态报文;

从所述第二链路状态报文的第二TLV中获得所述第一报文标识及所述第二设备的上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息,其中,所述记录信息中包含所述第二设备的设备标识、以及针对所述第二设备记录的所述第一报文标识和所述第二设备的上一跳设备的设备标识。

可选的,在所述生成所述第一链路状态清除报文的第一TLV之前,还包括:

获得所述第一链路状态清除报文的第一序列号;

判断接收到的历史链路状态报文的序列号中是否存在所述第一序列号;

如果否,执行所述生成所述第一链路状态清除报文的第一TLV的步骤。

为达到上述目的,本发明实施例还公开了一种链路状态清除报文的溯源方法,应用于第三设备,所述方法包括:

获取待追溯源头的第一链路状态清除报文的第一报文标识;

在已存储的第一链路状态清除报文的记录信息中,根据所述第三设备的设备标识查找所述第一报文标识对应的上一跳设备的设备标识;

根据所述上一跳设备的设备标识查找所述第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识;所述记录信息中包含:每个接收到所述第一链路状态清除报文的设备的设备标识,以及针对每个接收到所述第一链路状态清除报文的设备记录的第一报文标识和该设备的上一跳设备的设备标识。

可选的,在所述获取待追溯源头的第一链路状态清除报文的第一报文标识之前,还可以包括:

接收至少一个第一链路状态报文,所述每个第一链路状态报文中包括第一链路状态清除报文的第一TLV;

从所述每个第一链路状态报文中的第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息。

为达到上述目的,本发明实施例还公开了一种携带溯源信息的链路状态报文发送装置,应用于第一设备,所述装置包括:

第一接收模块,用于接收第一链路状态清除报文;

第一发送模块,用于发送所述第一链路状态清除报文;

生成模块,用于根据所述第一链路状态清除报文,生成所述第一链路状态清除报文的第一TLV类型-长度-值;

增加模块,用于在待发送的第一链路状态报文中增加所述第一TLV;

第二发送模块,用于发送所述第一链路状态报文,使得每个接收到所述第一链路状态报文的设备,从所述第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息,其中,所述记录信息中包含所述第一设备的设备标识、以及针对所述第一设备记录的所述第一报文标识和所述上一跳设备的设备标识,所述上一跳设备为向所述第一设备发送所述第一链路状态清除报文的设备。

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

第二接收模块,用于接收第二设备发送的第二链路状态报文;

第一存储模块,用于从所述第二链路状态报文的第二TLV中获得所述第一报文标识及所述第二设备的上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息,其中,所述记录信息中包含所述第二设备的设备标识、以及针对所述第二设备记录的所述第一报文标识和所述第二设备的上一跳设备的设备标识。

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

获得模块,用于获得所述第一链路状态清除报文的第一序列号;

判断模块,用于判断接收到的历史链路状态报文的序列号中是否存在所述第一序列号;如果否,触发所述生成模块。

为达到上述目的,本发明实施例还公开了一种链路状态清除报文的溯源装置,应用于第三设备,所述装置包括:

获取模块,用于获取待追溯源头的第一链路状态清除报文的第一报文标识;

查找模块,用于在已存储的第一链路状态清除报文的记录信息中,根据所述第三设备的设备标识查找所述第一报文标识对应的上一跳设备的设备标识;根据所述上一跳设备的设备标识查找所述第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识;所述记录信息中包含:每个接收到所述第一链路状态清除报文的设备的设备标识,以及针对每个接收到所述第一链路状态清除报文的设备记录的第一报文标识和该设备的上一跳设备的设备标识。

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

第三接收模块,用于接收至少一个第一链路状态报文,所述每个第一链路状态报文中包括第一链路状态清除报文的第一TLV;

第二存储模块,用于从所述每个第一链路状态报文中的第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息。

应用本发明实施例,在对链路状态清除报文进行的转发的过程中,对于每个接收到第一链路状态清除报文的设备来说(下面称为第一设备),第一设备根据第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,生成第一链路状态清除报文的第一TLV;在待发送的第一链路状态报文中增加第一TLV;发送第一链路状态报文。对于其他接收到第一链路状态报文的设备来说(下面称为第二设备),第二设备从第一TLV中获得第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储第一链路状态清除报文的记录信息,其中,所述记录信息中包含第一设备的设备标识、以及针对第一设备记录的第一报文标识和上一跳设备的设备标识,上一跳设备为向第一设备发送第一链路状态清除报文的设备。

这样,对链路状态清除报文进行溯源时,对于网络中任一设备来说(下面称为第三设备),第三设备在已存储的第一链路状态清除报文的记录信息中,根据第三设备的设备标识查找该第一报文标识对应的上一跳设备的设备标识;根据该上一跳设备的设备标识查找该第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识。由此可见,本方案中,通过链路状态报文来发送链路状态清除报文的TLV,不需要在链路状态清除报文中添加标识TLV,不会导致协议标准不兼容的问题。

附图说明

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

图1为本发明实施例提供的一种携带溯源信息的链路状态报文发送方法的流程示意图;

图2为本发明实施例提供的应用基于链路状态的路由协议的网络结构示意图;

图3为本发明实施例提供的TLV的格式示意图;

图4为本发明实施例提供的一种链路状态清除报文的溯源方法的流程示意图;

图5为本发明实施例提供的一种携带溯源信息的链路状态报文发送装置的结构示意图;

图6为本发明实施例提供的一种链路状态清除报文的溯源装置的结构示意图。

具体实施方式

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

为了解决上述技术问题,本发明实施例提供了一种携带溯源信息的链路状态报文发送方法及装置、以及一种链路状态清除报文的溯源方法及装置。下面首先对本发明实施例提供的携带溯源信息的链路状态报文发送方法进行详细说明,该方法应用于第一设备,第一设备可以为应用基于链路状态的路由协议的网络中的任意一台设备,该设备可以为路由器、交换机、网关等。

图1为本发明实施例提供的一种携带溯源信息的链路状态报文发送方法的流程示意图,包括:

S101:接收第一链路状态清除报文。

如图2所示的网络中,该网络应用基于链路状态的路由协议,假设设备S生成了一个链路状态清除报文,将该报文称为第一链路状态清除报文。该报文中携带有第一报文标识,假设该第一报文标识为0000.0000.0000.01-01。设备S将该报文从自身所有接口(S1-S3)中扩散出去。假设设备B作为第一设备,接收该第一链路状态清除报文。

S102:发送所述第一链路状态清除报文。

在应用基于链路状态的路由协议的网络中,每台接收到链路状态清除报文的设备都对该报文进行转发。设备B接收到第一链路状态清除报文后,也对该第一链路状态清除报文进行转发。需要说明的是,在本方案中,对链路状态清除报文进行转发时不对报文进行任何修改,直接对其进行转发。

S103:根据所述第一链路状态清除报文,生成所述第一链路状态清除报文的第一TLV类型-长度-值。

设备B从接收到的第一链路状态清除报文中获取第一报文标识0000.0000.0000.01-01;另外,设备B获得向自身发送该第一链路状态清除报文的设备(设备S)的设备标识0000.0000.1000,这里将设备S作为设备B的上一跳设备。需要说明的是,第一链路状态清除报文中不包含设备S的设备标识,设备B能够直接获得与自身直接通信的设备的设备标识。

根据该第一报文标识及上一跳设备的设备标识,生成第一链路状态清除报文的第一TLV。也就是说,第一TLV中包括第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,可以为{0000.0000.0000.01-01,0000.0000.1000}。

S104:在待发送的第一链路状态报文中增加所述第一TLV。

设备B在接收到第一链路状态清除报文后,在自身待发送的第一链路状态报文中增加该第一TLV,具体格式可以如图3所示:Type可以为该第一链路状态报文中其他TLV未采用的数值;Length即Value部分的长度,固定值可以为14个字节;Value可以包含两部分:LSP ID和System ID,其中,LSP ID即为接收到的链路状态清除报文的第一报文标识,此处为第一链路状态清除报文的第一报文标识,长度为8个字节,System ID即为发送该链路状态清除报文的设备的设备标识,此处为上一跳设备也就是设备S的设备标识。

S105:发送所述第一链路状态报文,使得每个接收到所述第一链路状态报文的设备,从所述第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息,其中,所述记录信息中包含所述第一设备的设备标识、以及针对所述第一设备记录的所述第一报文标识和所述上一跳设备的设备标识。这里的上一跳设备即为第一设备的上一跳设备,也就是向第一设备发送第一链路状态报文的设备。

设备B将第一链路状态报文从自身所有接口中扩散出去。如图2所示的网络中,假设设备A接收到该第一链路状态报文。设备A从该第一链路状态报文的第一TLV中获得第一链路状态清除报文的第一报文标识0000.0000.0000.01-01、及设备B的上一跳设备(设备S)的设备标识0000.0000.1000。

设备A存储针对第一链路状态清除报文的记录信息,该记录信息可以为0000.0000.0002:{0000.0000.0000.01-01,0000.0000.1000},其中,0000.0000.0002为设备B的设备标识,针对设备B记录该第一报文标识及设备B的上一跳设备(设备S)的设备标识。

需要说明的是,在应用基于链路状态的路由协议的网络中,链路状态报文及链路状态清除报文全网泛洪,一台设备可能会收到多个相同的链路状态清除报文:比如图2中,设备A可能先接收到设备B转发的链路状态清除报文,之后又接收到设备S发送的链路状态清除报文。

在上述方案中,设备接收到链路状态清除报文后,会生成该链路状态清除报文的TLV,并发送添加了该TLV的链路状态报文。如果设备接收到多个相同的链路状态清除报文,每次都生成该链路状态清除报文的TLV,并发送添加了该TLV的链路状态报文,一方面,设备会频繁生成该链路状态清除报文的TLV、频繁发送添加了该TLV的链路状态报文,另一方面,各台设备中会增加很多不必要的记录信息。

这种情况下,设备在生成第一链路状态清除报文的第一TLV之前,可以先获得第一链路状态清除报文的序列号,具体的,链路状态清除报文中包含了自身序列号,设备可以从第一链路状态清除报文中读取该报文的序列号。设备判断接收到的历史LSP Purge报文的序列号中是否存在该序列号;如果否,再生成第一链路状态清除报文的第一TLV。

也就是说,设备可以记录自身接收到的链路状态清除报文的序列号(也就是接收到的历史链路状态报文的序列号),通过比较链路状态清除报文的序列号,判断自身是否已经接收过相同的链路状态清除报文,如果接收过,则不再生成该链路状态清除报文的TLV,如果未接收过,则生成该链路状态清除报文的TLV,并继续执行后续操作。

全网泛洪过程中,除源头设备以外的每台设备都会向网络中其他设备发送自身产生的链路状态报文,链路状态报文中包含链路状态清除报文的第一报文标识及上一跳设备的设备标识。最终,网络中除源头设备以外的每台设备存储的记录信息都相同。需要说明的,源头设备,也就是上述例子中的设备S可以不存储记录信息,当然也可以存储一份与其他设备不同的、能够表明自身是源头设备的记录信息,在此不做限定。

在图2所示的网络中,除源头设备以外的每台设备中存储的针对该第一链路状态清除报文的记录信息可以如下所示:

0000.0000.0002:{0000.0000.0000.01-01,0000.0000.1000}

0000.0000.0001:{0000.0000.0000.01-01,0000.0000.0002}

0000.0000.0004:{0000.0000.0000.01-01,0000.0000.0001}

0000.0000.0003:{0000.0000.0000.01-01,0000.0000.0004}

这样,在对该第一链路状态清除报文进行源头追溯时,便可以在针对该第一链路状态清除报文的记录信息中进行查找。假设从设备A中进行查找,则可以以设备A为起点,先查找设备A的设备标识0000.0000.0001,找到一条记录:0000.0000.0001:{0000.0000.0000.01-01,0000.0000.0002},也就是说,设备A的上一跳设备的设备标识为0000.0000.0002,设备A的上一跳设备为设备B。再查找设备B的设备标识0000.0000.0002,找到一条记录:0000.0000.0002:{0000.0000.0000.01-01,0000.0000.1000},也就是说,设备B的上一跳设备的设备标识为0000.0000.1000,设备B的上一跳设备为设备S。按照上述过程便可以确定出第一链路状态清除报文的源头设备为设备S。

应用本发明图1所示实施例,在对链路状态清除报文进行的转发的过程中,对于每个接收到第一链路状态清除报文的设备来说(下面称为第一设备),第一设备根据第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,生成第一链路状态清除报文的第一TLV;在待发送的第一链路状态报文中增加第一TLV;发送第一链路状态报文。对于其他接收到第一链路状态报文的设备来说(下面称为第二设备),第二设备从第一TLV中获得第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储第一链路状态清除报文的记录信息,其中,所述记录信息中包含第一设备的设备标识、以及针对第一设备记录的第一报文标识和上一跳设备的设备标识,上一跳设备为向第一设备发送第一链路状态清除报文的设备。

这样,对链路状态清除报文进行溯源时,对于网络中任一设备来说(下面称为第三设备),第三设备在已存储的第一链路状态清除报文的记录信息中,根据第三设备的设备标识查找该第一报文标识对应的上一跳设备的设备标识;根据该上一跳设备的设备标识查找该第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识。由此可见,本方案中,通过链路状态报文来发送链路状态清除报文的TLV,不需要在链路状态清除报文中添加标识TLV,不会导致协议标准不兼容的问题。

本发明实施例提供的链路状态清除报文的溯源方法应用于第三设备,第三设备可以为应用基于链路状态的路由协议的网络中的任意一台设备,该设备可以为路由器、交换机、网关等。如图4所示,该方法包括:

S401:获取待追溯源头的第一链路状态清除报文的第一报文标识。

如上所述,链路状态清除报文中携带有第一报文标识,接收第一链路状态清除报文后,可以从该报文中获取第一链路状态清除报文的第一报文标识。

S402:在已存储的第一链路状态清除报文的记录信息中,根据所述第三设备的设备标识查找所述第一报文标识对应的上一跳设备的设备标识;根据所述上一跳设备的设备标识查找所述第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识;所述记录信息中包含:每个接收到所述第一链路状态清除报文的设备的设备标识,以及针对每个接收到所述第一链路状态清除报文的设备记录的第一报文标识和该设备的上一跳设备的设备标识。

需要说明的,在查找源头设备的过程中,当未查找到某设备的上一跳设备的设备标识时,表示查找完毕,该设备即为源头设备。

根据上述实施例,网络中除源头设备以外的每台设备中都存储了针对该第一链路状态清除报文的记录信息:

0000.0000.0002:{0000.0000.0000.01-01,0000.0000.1000}

0000.0000.0001:{0000.0000.0000.01-01,0000.0000.0002}

0000.0000.0004:{0000.0000.0000.01-01,0000.0000.0001}

0000.0000.0003:{0000.0000.0000.01-01,0000.0000.0004}

这样,在对该第一链路状态清除报文进行源头追溯时,便可以在针对该第一链路状态清除报文的记录信息中进行查找。假设第三设备为设备A,以设备A为起点,先查找设备A的设备标识0000.0000.0001,找到一条记录:0000.0000.0001:{0000.0000.0000.01-01,0000.0000.0002},也就是说,设备A的上一跳设备的设备标识为0000.0000.0002,设备A的上一跳设备为设备B。再查找设备B的设备标识0000.0000.0002,找到一条记录:0000.0000.0002:{0000.0000.0000.01-01,0000.0000.1000},也就是说,设备B的上一跳设备的设备标识为0000.0000.1000,设备B的上一跳设备为设备S。存储的记录信息中未查找到设备S的上一跳设备的设备标识,表示查找完毕,设备S即为第一链路状态清除报文的源头设备。

在本实施例中,在对链路状态清除报文进行源头追溯之前,要先对链路状态清除报文的记录信息进行存储。具体过程可以包括:

接收至少一个第一链路状态报文,所述每个第一链路状态报文中包括第一链路状态清除报文的第一TLV;从所述每个第一链路状态报文中的第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息。

作为一种实施方式,可以针对记录信息设定老化周期,当到达老化周期时,设备删除自身存储的记录信息。可以理解的是,每台设备的存储资源有限,不能无限制地存储记录信息,可以定期对自身存储的记录信息进行清理。

在图2所示的网络中,假设设备D接收到两个链路状态报文:设备B生成的链路状态报文及设备A生成的链路状态报文。设备B生成的链路状态报文中包括的TLV为{0000.0000.0000.01-01,0000.0000.1000};设备A生成的链路状态报文中包括的TLV为{0000.0000.0000.01-01,0000.0000.0002}。

设备D从这两个链路状态报文中分别获得链路状态清除报文的第一报文标识(均为0000.0000.0000.01-01)及上一跳设备的设备标识(0000.0000.1000和0000.0000.0002)。

设备A分别存储针对该链路状态清除报文的记录信息,该记录信息可以包括0000.0000.0002:{0000.0000.0000.01-01,0000.0000.1000}和0000.0000.0001:{0000.0000.0000.01-01,0000.0000.0002},其中,0000.0000.0002为设备B的设备标识,针对设备B记录该第一报文标识及设备B的上一跳设备(设备S)的设备标识,0000.0000.0001为设备A的设备标识,针对设备A记录该第一报文标识及设备A的上一跳设备(设备B)的设备标识。

以此类推,通过基于链路状态的路由协议的扩散机制全网泛洪,最终,网络中除源头设备以外的每台设备存储的记录信息都相同。

应用本发明图4所示实施例,在对链路状态清除报文进行的转发的过程中,对于每个接收到第一链路状态清除报文的设备来说(下面称为第一设备),第一设备根据第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,生成第一链路状态清除报文的第一TLV;在待发送的第一链路状态报文中增加第一TLV;发送第一链路状态报文。对于其他接收到第一链路状态报文的设备来说(下面称为第二设备),第二设备从第一TLV中获得第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储第一链路状态清除报文的记录信息,其中,所述记录信息中包含第一设备的设备标识、以及针对第一设备记录的第一报文标识和上一跳设备的设备标识,上一跳设备为向第一设备发送第一链路状态清除报文的设备。

这样,对链路状态清除报文进行溯源时,对于网络中任一设备来说(下面称为第三设备),第三设备在已存储的第一链路状态清除报文的记录信息中,根据第三设备的设备标识查找该第一报文标识对应的上一跳设备的设备标识;根据该上一跳设备的设备标识查找该第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识。由此可见,本方案中,通过链路状态报文来发送链路状态清除报文的TLV,不需要在链路状态清除报文中添加标识TLV,不会导致协议标准不兼容的问题。

与上述方法实施例相对应,本发明实施例还提供一种携带溯源信息的链路状态报文发送装置、以及一种链路状态清除报文的溯源装置。

图5为本发明实施例提供的一种携带溯源信息的链路状态报文发送装置的结构示意图,包括:

第一接收模块501,用于接收第一链路状态清除报文;

第一发送模块502,用于发送所述第一链路状态清除报文;

生成模块503,用于根据所述第一链路状态清除报文,生成所述第一链路状态清除报文的第一TLV类型-长度-值;

增加模块504,用于在待发送的第一链路状态报文中增加所述第一TLV;

第二发送模块505,用于发送所述第一链路状态报文,使得每个接收到所述第一链路状态报文的设备,从所述第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息,其中,所述记录信息中包含所述第一设备的设备标识、以及针对所述第一设备记录的所述第一报文标识和所述上一跳设备的设备标识,所述上一跳设备为向所述第一设备发送所述第一链路状态清除报文的设备。

在本实施例中,所述装置还可以包括:第二接收模块和第一存储模块(图中未示出),其中,

第二接收模块,用于接收第二设备发送的第二链路状态报文;

第一存储模块,用于从所述第二链路状态报文的第二TLV中获得所述第一报文标识及所述第二设备的上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息,其中,所述记录信息中包含所述第二设备的设备标识、以及针对所述第二设备记录的所述第一报文标识和所述第二设备的上一跳设备的设备标识。

在本实施例中,所述装置还可以包括:获得模块和判断模块(图中未示出),其中,

获得模块,用于获得所述第一链路状态清除报文的第一序列号;

判断模块,用于判断接收到的历史链路状态报文的序列号中是否存在所述第一序列号;如果否,触发所述生成模块。

应用本发明图5所示实施例,在对链路状态清除报文进行的转发的过程中,对于每个接收到第一链路状态清除报文的设备来说(下面称为第一设备),第一设备根据第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,生成第一链路状态清除报文的第一TLV;在待发送的第一链路状态报文中增加第一TLV;发送第一链路状态报文。对于其他接收到第一链路状态报文的设备来说(下面称为第二设备),第二设备从第一TLV中获得第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储第一链路状态清除报文的记录信息,其中,所述记录信息中包含第一设备的设备标识、以及针对第一设备记录的第一报文标识和上一跳设备的设备标识,上一跳设备为向第一设备发送第一链路状态清除报文的设备。

这样,对链路状态清除报文进行溯源时,对于网络中任一设备来说(下面称为第三设备),第三设备在已存储的第一链路状态清除报文的记录信息中,根据第三设备的设备标识查找该第一报文标识对应的上一跳设备的设备标识;根据该上一跳设备的设备标识查找该第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识。由此可见,本方案中,通过链路状态报文来发送链路状态清除报文的TLV,不需要在链路状态清除报文中添加标识TLV,不会导致协议标准不兼容的问题。

图6为本发明实施例提供的一种源头设备确定装置的结构示意图,包括:

获取模块601,用于获取待追溯源头的第一链路状态清除报文的第一报文标识;

查找模块602,用于在已存储的第一链路状态清除报文的记录信息中,根据所述第三设备的设备标识查找所述第一报文标识对应的上一跳设备的设备标识;根据所述上一跳设备的设备标识查找所述第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识;所述记录信息中包含:每个接收到所述第一链路状态清除报文的设备的设备标识,以及针对每个接收到所述第一链路状态清除报文的设备记录的第一报文标识和该设备的上一跳设备的设备标识。

在本实施例中,所述装置还可以包括:第三接收模块和第二存储模块(图中未示出),其中,

第三接收模块,用于接收至少一个第一链路状态报文,所述每个第一链路状态报文中包括第一链路状态清除报文的第一TLV;

第二存储模块,用于从所述每个第一链路状态报文中的第一TLV中获得所述第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储所述第一链路状态清除报文的记录信息。

应用本发明图6所示实施例,在对链路状态清除报文进行的转发的过程中,对于每个接收到第一链路状态清除报文的设备来说(下面称为第一设备),第一设备根据第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,生成第一链路状态清除报文的第一TLV;在待发送的第一链路状态报文中增加第一TLV;发送第一链路状态报文。对于其他接收到第一链路状态报文的设备来说(下面称为第二设备),第二设备从第一TLV中获得第一链路状态清除报文的第一报文标识及上一跳设备的设备标识,并存储第一链路状态清除报文的记录信息,其中,所述记录信息中包含第一设备的设备标识、以及针对第一设备记录的第一报文标识和上一跳设备的设备标识,上一跳设备为向第一设备发送第一链路状态清除报文的设备。

这样,对链路状态清除报文进行溯源时,对于网络中任一设备来说(下面称为第三设备),第三设备在已存储的第一链路状态清除报文的记录信息中,根据第三设备的设备标识查找该第一报文标识对应的上一跳设备的设备标识;根据该上一跳设备的设备标识查找该第一报文标识对应的再上一跳设备的设备标识,直至查找到源头设备的设备标识。由此可见,本方案中,通过链路状态报文来发送链路状态清除报文的TLV,不需要在链路状态清除报文中添加标识TLV,不会导致协议标准不兼容的问题。

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

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

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

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

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