一种报文转发方法及装置

文档序号:72677 发布日期:2021-10-01 浏览:20次 >En<

阅读说明:本技术 一种报文转发方法及装置 (Message forwarding method and device ) 是由 刘淑英 文慧智 李祖庆 于 2020-03-30 设计创作,主要内容包括:本申请实施例公开了一种报文转发方法,应用于BIERv6组播网络中,具体地,第一网络设备转发第一报文时,若第一路径故障,则第一网络设备获取指示第二路径的第一段列表,第二路径是第一路径的备用路径。其中,第一报文中包括第一目标地址,第一目标地址用于指示第二网络设备,且第一网络设备为位转发路由器(bit forward router,BFR),第二网络设备是在第一路径上的、第一网络设备的下一跳BFR。第一网络设备获取第一段列表之后,可以更新第一报文得到包括该第一段列表的第二报文,并经由第二路径向第二网络设备转发该第二报文。由此可见,利用该方法,可以在组播网络的中间链路发生故障时,切换到不存在故障的链路进行组播报文的转发,避免组播报文长时间丢包。(The embodiment of the application discloses a message forwarding method, which is applied to a BIERv6 multicast network, and specifically, when a first network device forwards a first message, if a first path fails, the first network device acquires a first segment list indicating a second path, where the second path is a standby path of the first path. The first packet includes a first destination address, the first destination address is used to indicate a second network device, the first network device is a Bit Forwarding Router (BFR), and the second network device is a next hop BFR of the first network device on the first path. After the first network device obtains the first segment list, the first packet may be updated to obtain a second packet including the first segment list, and the second packet is forwarded to the second network device via the second path. Therefore, by using the method, when the intermediate link of the multicast network fails, the intermediate link can be switched to the link without the failure to forward the multicast message, so that the long-time packet loss of the multicast message is avoided.)

一种报文转发方法及装置

技术领域

本申请涉及通信领域,尤其涉及一种报文转发方法及装置。

背景技术

组播技术指的是单一数据发送者对应多个数据接收者的通信技术。组播技术可以应用于多种业务中,例如,组播技术可以应用于IPTV视频直播业务中。大部分应用组播技术的业务对数据传输的实时性以及可靠性要求比较高,例如在IPTV视频直播业务中,对于利用终端观看视频直播的用户来说,出现较长时间的卡顿和黑屏是不能容忍的。

可以将位索引显式复制第六版互联网协议封装(bit index explicitreplication IPv6encapsulation,BIERv6)协议应用于组播技术中。目前,应用了BIERv6协议的组播技术,并不能满足应用组播技术的业务对数据传输的实时性以及可靠性的要求,即应用了BIERv6协议的组播技术并不能提供满足要求的服务质量(Quality of Service,QoS)。

鉴于此,急需一种方案,可以解决上述问题。

发明内容

本申请实施例提供了一种报文转发方法,可以提升应用了BIERv6协议的组播技术所提供的服务质量。

第一方面,本申请实施例提供了一种报文转发方法,该方法可以应用于应用了BIERv6技术的组播网络中,该方法可以在组播网络的中间链路发生故障时,切换到不存在故障的链路进行组播报文的转发,避免出现组播报文长时间丢包的问题。此处提及的中间链路,指的是组播头节点和中间节点之间的链路,或者,是中间节点与中间节点之前的链路,或者是中间节点和尾节点之间的链路。具体地,第一网络设备转发第一报文时,若第一路径故障,则第一网络设备获取指示第二路径的第一段列表(英文:segment list),第二路径是第一路径的备用路径。其中,第一报文中包括第一目标地址,第一目标地址用于指示第二网络设备,且第一网络设备为位转发路由器(bit forward router,BFR),第二网络设备是在第一路径上的、第一网络设备的下一跳BFR。换言之,若第一路径不存在故障,第一网络设备即可通过第一路径将第一报文转发给第二网络设备。第一网络设备获取第一段列表之后,可以更新第一报文得到包括该第一段列表的第二报文,并经由第二路径向第二网络设备转发该第二报文,可以理解的是,第二报文中的第一段列表可以用于指导第二报文在第一网络设备和第二网络设备之间通过第二路径转发。由此可见,利用本申请实施例的方案,可以在组播网络中的中间链路发生故障时,利用段路由技术使得组播报文立即通过备份路径转发,避免了组播报文长时间丢包,从而提升了组播技术提供的服务质量。以上提及的组播网络指的是应用了BIERv6协议的组播网络,应用了BIERv6协议的组播网络也可以被称为“BIERv6组播网络”。

在一种可能的实现方式中,为了保证第一网络设备通过第二路径能够将第一报文转发至第二网络设备,第一网络设备在确定第二路径之后,还可以进一步验证第二路径是否存在故障,在确定第二路径不存在故障之后,再执行后续获取第一段列表的步骤。

在一种可能的实现方式中,第一段列表可以包括节点标识和链路标识。其中,节点标识可以用于指示第二路径中包括的网络设备,链路标识可以用于指示第二路径中包括的邻接链路。

在一种可能的实现方式中,第一网络设备更新第一报文得到第二报文在具体实现时,例如可以对第一报文进行重新封装,得到第二报文,具体地,第一网络设备可以在第一报文中添加第一段列表,从而得到包括第一段列表的第二报文。

在一种可能的实现方式中,第一网络设备对第一报文进行重新封装,得到包括第一段列表的第二报文在具体实现时,第一网络设备例如可以在第一报文中增加分段路由头(segment routing header,SRH),并将前述第一段列表添加到前述SRH中。换言之,更新得到的第二报文中包括SRH,该SRH中可以携带前述第一段列表。

在一种可能的实现方式中,第二网络设备是第一网络设备的下一跳BFR,而BIERv6组播网络中并不是所有的网络设备均为BFR,因此,第一路径中可能会包括其它非BFR的网络设备,当然,第一路径也可能是第一网络设备和第二网络设备之间的邻接链路。本申请实施例中提及的邻接链路,指的是两个相邻网络设备之间的直连链路。因此,第一路径故障,可以至少包括以下三种情况:第一种情况:第一路径是第一网络设备和第二网络设备之间的邻接链路,第一路径故障即为该邻接链路故障。其中,邻接链路故障,可能是由于网络通信质量差导致的链路故障,也可能是链接该链路的接口故障。第二种情况:第一路径不是第一网络设备和第二网络设备之间的邻接链路,换言之,第一路径中至少包括两条链路,即第一路径至少包括第一链路和第二链路。对于这种情况,第一路径故障可以体现为第一链路故障。第三种情况:第一路径不是第一网络设备和第二网络设备之间的邻接链路,换言之,第一路径中至少还包括第三网络设备,第三网络设备不是BFR。对于这种情况,第一路径故障可以体现为第三网络设备故障。

在一种可能的实现方式中,第一路径的故障可能会被修复,第一路径故障修复之后,组播网络中的各个网络设备均会更新转发表项,而各个网络设备生成新的转发表项的时间不同。这就导致若利用第一路径转发组播数据,可能会出现丢包问题。因此,若第一路径故障修复之后,立即将组播数据切回到第一路径上转发,可能会出现丢包。为了避免这个问题,在本申请的一个实施例中,在第一路径不存在故障之后等待一段时间再将组播数据切回到第一路径上进行转发,而中间等待的这一段时间使得组播网络中的各个网络设备的转发表项均更新完成,从而避免丢包。具体地:若第一网络设备在确定第一路径不存在故障之后的预设时间段内获取到第三报文,第三报文与第一报文类似,第三报文中也携带第一目的地址,第三报文也是BIERv6报文。换言之,第一网络设备可以通过第一路径将第三报文转发给第二网络设备。在本申请实施例中,为了避免丢包,虽然第一路径已经不存在故障,但是由于第三报文的获取时刻在前述预设时间段内,因此,第一网络设备可以采用处理第一报文的方式,对第三报文进行处理。即第一网络设备获取第一段列表,并更新所述第三报文得到包括第一段列表的第四报文,并通过第二路径将第四报文转发给第二网络设备。其中:前述预设时间段即为前文提及的等待的一段时间,该预设时间段的起始时刻,为第一网络设备确定第一路径不存在故障的时刻。即:该预设时间段的起始时刻,为第一网络设备确定第一路径由故障状态变化为不存在故障的时刻。若第一网络设备在前述预设时间段之后获取到第五报文,第五报文中包括所述第一目的地址,第五报文与第一报文类似,第五报文中也携带第一目的地址,第五报文也是BIERv6报文。换言之,第一网络设备可以通过第一路径将第五报文转发给第二网络设备。对于这种情况,由于已经等待了一段时间,故而组播网络中的网络设备中的转发表项均已经更新完成,因此,第一网络设备可以直接通过第一路径将第五报文转发至第二网络设备。

第二方面,本申请实施例提供了一种报文转发装置,该报文转发装置应用于第一网络设备,所述装置包括:获取单元、第一确定单元、第一更新单元和第一转发单元。获取单元用于获取第一报文,所述第一报文中包括第一目的地址,所述第一目的地址用于指示第二网络设备,所述第一报文为位索引显式复制第六版互联网协议封装BIERv6报文,所述第一网络设备为位转发路由器BFR,所述第二网络设备是在第一路径上的、所述第一网络设备的下一跳BFR,所述第一路径是所述第一网络设备向所述第二网络设备发送所述第一报文的路径;第一确定单元用于在确定所述第一路径故障时,获取第一段列表,所述第一段列表用于指示第二路径,所述第二路径是所述第一路径的备用路径;第一更新单元用于更新所述第一报文得到第二报文,所述第二报文包括所述第一段列表;第一转发单元用于经由所述第二路径向所述第二网络设备转发所述第二报文。

在一种可能的实现方式中,所述装置还包括:第二确定单元,用于在所述第一网络设备获取第一段列表之前,确定所述第二路径不存在故障。

在一种可能的实现方式中,所述第一段列表包括节点标识和/或链路标识,所述节点标识用于指示所述第二路径包括的网络设备,所述链路标识用于指示所述第二路径包括的邻接链路。

在一种可能的实现方式中,所述第二报文是通过在所述第一报文中添加所述第一段列表得到的。

在一种可能的实现方式中,所述第二报文包括分段路由头SRH,所述第一段列表位于所述SRH中。

在一种可能的实现方式中,所述第一路径故障,包括:所述第一网络设备和所述第二网络设备之间的邻接链路故障,所述第一路径为所述第一网络设备和所述第二网络设备之间的邻接链路;或者,第一链路故障,所述第一路径至少包括所述第一链路和第二链路;或者,第三网络设备故障,所述第一路径包括所述第三网络设备,所述第三网络设备不是BFR。

在一种可能的实现方式中,所述装置还包括第三确定单元、第二更新单元和第二转发单元,第三确定单元,用于若在确定所述第一路径不存在故障之后的预设时间段内获取到第三报文,所述第三报文中包括所述第一目的地址,所述第三报文为BIERv6报文,则获取所述第一段列表;第二更新单元,用于更新所述第三报文得到包括所述第一段列表的第四报文;第二转发单元,用于转发所述第四报文,所述预设时间段的起始时刻为所述第一网络设备确定所述第一路径不存在故障的时刻。

在一种可能的实现方式中,所述装置还包括第三转发单元,第三转发单元用于若在所述预设时间段之后获取到第五报文,所述第五报文中包括所述第一目的地址,所述第五报文为BIERv6报文,则通过所述第一路径将所述第五报文转发至所述第二网络设备。

第三方面,本申请实施例提供了一种设备。所述设备包括处理器和存储器。所述存储器用于存储指令或计算机程序。所述处理器用于执行所述存储器中的所述指令或计算机程序,执行以上第一方面任意一项所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法。

第五方面,本申请实施例提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法。

附图说明

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

图1为本申请实施例提供的一个组播网络的结构示意图;

图2为本申请实施例提供的一种报文转发方法的流程示意图;

图3为本申请实施例提供的一种第一报文的结构示意图;

图4为本申请实施例提供的一种第二报文的结构示意图;

图5为本申请实施例提供的一种网络的结构示意图;

图6a为本申请实施例提供的一种网络的结构示意图;

图6b为本申请实施例提供的一种第二报文的结构示意图;

图6c为本申请实施例提供的又一种第二报文的结构示意图;

图7为本申请实施例提供的一种报文转发装置的结构示意图;

图8为本申请实施例提供的一种设备的结构示意图。

具体实施方式

本申请实施例提供了一种报文转发方法,可以提升应用了BIERv6协议的组播技术所提供的服务质量。

为方便理解,首先对本申请实施例可能的应用场景进行介绍。参见图1,该图为本申请实施例提供的一个组播网络的结构示意图。此处提及的组播网络,指的是承载组播业务或者部署组播技术的网络。

当前的组播网络包括头节点、叶子节点和中间节点。其中,头节点也可以被称为根节点。头节点可以与提供组播业务的设备进行交互,叶子节点可以与用户接入侧设备进行交互。除头节点和叶子节点之外的节点均为中间节点。中间节点可以为核心网中的节点,也可以为城域网中的节点,本申请实施例不做具体限定。本申请实施例中的节点即为网络设备。

当然,图1只是一个示意图,其并不构成对组播网络的限定,实际中组播网络的架构还可以采用其它方式,例如,包括多个头节点。此处不再一一列举说明。

目前,组播网络中对于头节点的可靠性及叶子节点的可靠性有较完善的保护。具体地,头节点采用部署两个或多个头节点形成备份的方式达到可靠性保护;用户接入侧则通过用户双归接入组播叶子节点,双归接入的叶子节点的组播表项实时备份来达到可靠性保护。即:若头节点和叶子节点发生故障,能够快速确定解决方案,不会影响组播数据的传输。但是,对于组播网络中的中间链路而言,目前尚不存在较为可靠的保护方案。若中间链路发生故障,会导致组播数据的传输出现异常。具体地:会导致组播数据长时间丢包,使得组播业务不能提供满足要求的服务质量。其中,中间链路指的是头节点和中间节点之间的链路、中间节点间的链路、以及中间节点和尾节点之间的链路。中间链路故障可以体现为两个相邻节点之间的直连链路发生故障,或者,该中间链路上包括的节点发生故障。

鉴于此,本申请实施例提供了一种报文转发方法,能够解决上述问题。以下结合附图对该报文转发方法进行介绍。

参见图2,该图为本申请实施例提供的一种报文转发方法的流程示意图。图2所示的报文转发方法,可以应用于BIERv6组播网络,在BIERv6组播网络中,承载组播数据的报文均为BIERv6报文,并且,该BIERv6组播网络中的各个网络设备均支持IPv6转发,该BIERv6组播网络中的作为根节点和叶子节点的网络以及部分其它网络设备支持BIERv6转发。其中,支持BIERv6转发的网络设备,又可以被称为BFR。而且,作为根节点的网络设备也可以被称为位转发入口路由器(bit forward ingress router,BFIR)BFIR,作为叶子节点的网络设备也可以被称为位转发出口路由器(bit forward egress router,BFER)。

如无特别说明,本申请实施例以下描述中的提及的组播网络,均为BIERv6组播网络。

图2所示的方法,例如可以通过如下S101-S104实现。

S101:第一网络设备获取第一报文,第一报文中包括第一目的地址,第一目的地址用于指示第二网络设备,第一报文为BIERv6报文。

在本申请实施例中,第一网络设备可以是组播网络中的头节点或者中间节点。若第一网络设备为组播网络中的中间节点,则第一网络设备可以从上游设备处接收第一报文。若第一网络设备是组播网络中的头节点,则第一网络设备可以从提供组播业务的设备处接收组播数据,并对该组播数据进行封装,得到第一报文。具体地,作为头节点的第一网络设备可以在接收到的组播数据的基础上增加IPv6头(英文:header)和BIER封装头,从而得到第一报文。其中,BIER封装头也可以被称为带目标选项的BIER选项头(英文:destoptions header with BIER option)。BIER封装头可以携带BIER头和其它字段,具体可以参见图3所示。

图3为本申请实施例提供的一种第一报文的结构示意图。图3所示的第一报文,包括IPv6头、BIER封装头和作为IPv6净荷的组播数据。其中,IPv6头中包括指示下一层头部类型的字段Next,Next字段的取值为60,表示下一层封装为BIER封装头。IPv6头中的目的地址(英文:Destination Address)字段,用于指示下一跳BFR。BIER封装头中包括BIER头、以及指示下一层头部类型的字段Next Header,Next Header字段的取值有两种可能,分别为4和41。当Next Header字段的值为4时,标识下一层头部类型为IPv4组播,即该报文中携带的组播数据为IPv4组播数据;当Next Header字段的值为41时,标识下一层头部类型为IPv6组播,即该报文中携带的组播数据为IPv6组播数据。关于图3中所示的其它字段,此处不再一一解释说明。

此处提及的第一网络设备为BFR,由于BIERv6报文中的目的地址用于指示下一跳BFR,因此,第二网络设备也为BFR。在本申请实施例中,第二网络设备是在第一路径上的、第一网络设备的下一跳BFR。第一路径是第一网络设备向第二网络设备发送第一报文的路径。换言之,在整个组播网络没有发生故障的情况下,第一网络设备获取到第一报文之后,会通过第一路径将第一报文转发给第二网络设备。

S102:第一网络设备确定第一路径故障时,获取第一段列表,第一段列表用于指示第二路径,第二路径是第一路径的备用路径。

在本申请实施例中,第一网络设备获取第一报文之后,可以确定转发第一报文的第一路径,具体地,第一网络设备可以利用本地存储的转发表项以及第一目的地址,确定第一路径。第一网络设备确定第一路径之后,可以利用双向转发检测(bidirectionalforwarding detection,BFD)协议确定第一路径是否故障。当第一网络设备确定第一路径故障之后,可以进一步确定第二路径,第二路径是第一路径的备用路径,以便于可以根据第二路径转发第一报文,避免发生长时间丢包。

在本申请实施例中,由于第二网络设备是第一网络设备的下一跳BFR,而BIERv6组播网络中并不是所有的网络设备均为BFR,因此,第一路径中可能会包括其它非BFR的网络设备,当然,第一路径也可能是第一网络设备和第二网络设备之间的邻接链路。本申请实施例中提及的邻接链路,指的是两个相邻网络设备之间的直连链路。因此,第一路径故障,可以至少包括以下三种情况:

第一种情况:第一路径是第一网络设备和第二网络设备之间的邻接链路,第一路径故障即为该邻接链路故障。其中,邻接链路故障,可能是由于网络通信质量差导致的链路故障,也可能是链接该链路的接口故障。

第二种情况:第一路径不是第一网络设备和第二网络设备之间的邻接链路,换言之,第一路径中至少包括两条链路,即第一路径至少包括第一链路和第二链路。对于这种情况,第一路径故障可以体现为第一链路故障。

第三种情况:第一路径不是第一网络设备和第二网络设备之间的邻接链路,换言之,第一路径中至少还包括第三网络设备,第三网络设备不是BFR。对于这种情况,第一路径故障可以体现为第三网络设备故障。

在本申请实施例中,为了实现利用第二路径转发第一报文,第一网络设备可以利用段路由(segment routing,SR)技术来将第一报文通过第二路径转发给第二网络设备。具体地,第一网络设备可以获取用于指示第二路径的第一段列表。并基于第一段列表通过第二路径将第一报文转发给第二网络设备。

在一些实施例中,为了保证第一网络设备通过第二路径能够将第一报文转发至第二网络设备,第一网络设备在确定第二路径之后,还可以进一步验证第二路径是否存在故障,在确定第二路径不存在故障之后,再执行后续获取第一段列表的步骤。具体地,第一网络设备例如可以利用BFD协议确定第二路径是否存在故障。

在一些实施例中,第一段列表可以包括节点标识和链路标识。其中,节点标识可以用于指示第二路径中包括的网络设备,链路标识可以用于指示第二路径中包括的邻接链路。关于第一段列表,可以参考下文对于图4-图6c的描述部分,此处不详述。需要说明的是,第二路径中包括的网络设备,可以是BFR,也可以不是BFR,本申请实施例不做具体限定。

在一些实施例中,为了进一步服务质量,前述第二路径可以是预先计算好的,这样一来,当第一网络设备确定第一路径故障之后,可以迅速确定第二路径,并迅速将组播数据切换至第二路径中转发。当然,第二路径也可以是第一网络设备确定第一路径故障之后实时计算的,本申请实施例不做具体限定。

在本申请实施例中,第一网络设备确定第二路径之后,可以进一步确定指示第二路径的第一段列表。例如,第一网络设备根据第二路径包括的网络节点和邻接链路,确定第一段列表包括的节点标识和/或链路标识。在第二路径是预先计算好的情况下,前述第一段列表也可以是预先确定好的,第一网络设备可以直接获取预先确定好的第一段列表。

S103:第一网络设备更新第一报文得到第二报文,第二报文包括第一段列表。

S104:第一网络设备经由第二路径向第二网络设备转发第二报文。

在本申请实施例中,第一网络设备利用段路由技术将第一报文通过第二路径转发给第二网络设备在具体实现时,第一网络设备可以对第一报文进行更新,得到包括第一段列表的第二报文,这样一来,由于第二报文中携带第一段列表,而第一段列表能够指示第二路径,故而第一网络设备则可以通过第二路径向第二网络设备转发第二报文。

在一个实施例中,第一网络设备可以对第一报文进行重新封装,得到第二报文,具体地,第一网络设备可以在第一报文中添加第一段列表,从而得到第二报文。

在一个实施例中,第一网络设备例如可以在第一报文中增加SRH,并将前述第一段列表添加到前述SRH中。换言之,更新得到的第二报文中包括SRH,该SRH中可以携带前述第一段列表。

参见图4,该图为本申请实施例提供的一种第二报文的结构示意图。图4所示的第二报文与第一报文相比,多了一层封装,该封装为IPv6分段路由头头部:IPv6 SRH Header。其中,IPv6 SRH Header中的修复列表Repair List即为第一段列表。图4所示的第一段列表包括三个节点标识,指示第二路径依次经过的网络设备,其中,第二路径依次经过SegmentList[2]指示的网络设备RC2、Segment List[1]指示的网络设备AGG2、以及Segment List[0]指示的网络设备ACC1。

另外,为了使得第二报文可以被正常转发,IPv6头中的字段Next,Next字段的取值为43,表示下一层封装为IPv6 SRH Header。IPv6 SRH Header中指示下一层头部类型的字段Next Header的值为60,用于指示下一层封装为BIER封装头。IPv6 SRH的路由类型(英文:Routing Type)字段的值为4,标识路由类型为段路由。关于图4中所示的其它字段,此处不再一一解释说明。

关于第一网络设备利用段路由技术将第二报文转发给第二网络设备的具体实现方式,与传统的利用段路由进行报文转发的方式类似,此处不再详细描述。

通过以上描述可知,可以在组播网络中的中间链路发生故障时,利用段路由技术使得组播报文通过备份路径转发,避免了组播报文长时间丢包,从而提升了组播技术提供的服务质量。

在一些实施例中,第一路径的故障可能会被修复,第一路径故障修复之后,组播网络中的各个网络设备均会更新转发表项,而各个网络设备生成新的转发表项的时间不同。这就导致若利用第一路径转发组播数据,可能会出现丢包问题。因此,若第一路径故障修复之后,立即将组播数据切回到第一路径上转发,可能会出现丢包。

为了避免这个问题,在本申请的一个实施例中,在第一路径不存在故障之后等待一段时间再将组播数据切回到第一路径上进行转发,而中间等待的这一段时间使得组播网络中的各个网络设备的转发表项均更新完成,从而避免丢包。具体地:

若第一网络设备在确定第一路径不存在故障之后的预设时间段内获取到第三报文,第三报文与第一报文类似,第三报文中也携带第一目的地址,第三报文也是BIERv6报文。换言之,第一网络设备可以通过第一路径将第三报文转发给第二网络设备。在本申请实施例中,为了避免丢包,虽然第一路径已经不存在故障,但是由于第三报文的获取时刻在前述预设时间段内,因此,第一网络设备可以采用处理第一报文的方式,对第三报文进行处理。即第一网络设备获取第一段列表,并更新所述第三报文得到包括第一段列表的第四报文,并通过第二路径将第四报文转发给第二网络设备。其中:前述预设时间段即为前文提及的等待的一段时间,该预设时间段的起始时刻,为第一网络设备确定第一路径不存在故障的时刻。即:该预设时间段的起始时刻,为第一网络设备确定第一路径由故障状态变化为不存在故障的时刻。

若第一网络设备在前述预设时间段之后获取到第五报文,第五报文中包括所述第一目的地址,第五报文与第一报文类似,第五报文中也携带第一目的地址,第五报文也是BIERv6报文。换言之,第一网络设备可以通过第一路径将第五报文转发给第二网络设备。对于这种情况,由于已经等待了一段时间,故而组播网络中的网络设备中的转发表项均已经更新完成,因此,第一网络设备可以直接通过第一路径将第五报文转发至第二网络设备。

以上对本申请实施例提供的报文转发方法进行了介绍,接下来结合具体场景介绍该报文转发方法。

参见图5,图5为本申请实施例提供的一种网络的结构示意图。

在图5所示的网络结构,可以是组播网络的其中一部分,其中,网络设备RC1为BFR,网络设备AGG1为BFR。网络设备RC2和网络设备AGG2均为支持IPv6的非BFR。当网络设备RC1和网络设备AGG1之间的链路故障时,网络设备RC1可以作为前文提及的第一网络设备执行以上实施例提供的报文转发方法。具体地,当网络设备RC1执行以上实施例提供的方法时,网络设备RC1确定第二路径为:RC1-RC2-AGG2-AGG1。对于这种情况,网络设备RC1更新第一报文得到的第二报文可以如图4所示,其中,图4所示的第一段列表包括三个节点标识,指示第二路径依次经过的网络设备,第二路径依次经过Segment List[2]指示的网络设备RC2、Segment List[1]指示的网络设备AGG2、以及Segment List[0]指示的网络设备AGG1。其中,第一段列表中的RC2.end为网络设备RC2的标识,RC2.end例如可以是网络设备RC2的IPv6地址;第一段列表中的AGG2.end为网络设备AGG2的标识,AGG2.end例如可以是网络设备AGG2的IPv6地址;第一段列表中的AGG1.end.BIER为作为BFR的网络设备AGG1的标识,AGG1.end.BIER例如可以是网络设备AGG1的IPv6地址。

参见图6a,图6a为本申请实施例提供的一种网络的结构示意图。

在图6a所示的网络结构,可以是组播网络的其中一部分,其中,网络设备RC1为BFR,网络设备AGG1为非BFR,网络设备ACC1为BFR。网络设备RC2和网络设备AGG2为支持IPv6的非BFR。当网络设备RC1和网络设备ACC1之间的链路RC1-AGG1-ACC1故障时,网络设备RC1可以作为前文提及的第一网络设备执行以上实施例提供的报文转发方法,将报文转发至网络设备AC1的下一跳BFR ACC1。具体地,若链路RC1-AGG1发生故障,则网络设备RC1可以确定第二路径为:RC1-RC2-AGG2-ACC1,或者,RC1-RC2-AGG2-AGG1-ACC1。对于这种情况,网络设备RC1更新第一报文得到的第二报文可以如图6b所示,其中,图6b所示的第一段列表包括三个节点标识,指示第二路径依次经过的网络设备,第二路径依次经过Segment List[2]指示的网络设备RC2、Segment List[1]指示的网络设备AGG2、以及Segment List[0]指示的网络设备ACC1。其中,第一段列表中的ACC1.end.BIER为作为BFR的网络设备ACC1的标识,ACC1.end.BIER例如可以是网络设备ACC1的IPv6地址。

其中,当第二报文转发至网络设备AGG2时,网络设备AGG2可以通过网络设备AGG2和网络设备ACC1之间的邻接链路将第二报文转发给网络设备ACC1,也可以通过网络设备AGG1将第二报文转发给网络设备ACC1,本申请实施例不做具体限定。

需要说明的是,对于以上两种场景,链路故障之后,组播报文绕过路径转发到目的BFR,不会造成流量增加。

在图6a所示的场景中,若网络设备AGG1故障,网络设备RC1可以作为前文提及的第一网络设备执行以上实施例提供的报文转发方法,将报文转发至网络设备AC1的下一跳BFRACC1。具体地,若网络设备AGG1发生故障,则网络设备RC1可以确定第二路径为:RC1-RC2-AGG2-ACC1。对于这种情况,网络设备RC1更新第一报文得到的第二报文可以如图6c所示,其中,图6c所示的第一段列表包括两个节点标识和一个链路标识,指示第二路径依次经过的网络设备和邻接链路,第二路径依次经过Segment List[2]指示的网络设备RC2、SegmentList[1]指示的网络设备AGG2、和Segment List[0]指示的邻接链路AGG2-ACC1到达网络设备ACC1。其中,第一段列表中的AGG2-ACC1.end.X为邻接链路AGG2-ACC1的标识,AGG2-ACC1.end.X例如可以是一个IPv6地址。

如图6c所示,第一段列表指示了邻接链路AGG2-ACC1,从而避免网络设备AGG2将第二报文转发给故障的网络设备AGG1。

需要说明的是,对于图6c对应的非BFR故障的场景,若该故障网络设备(即AGG1)为多个网络设备进行组播复制,并为多个ACC网络设备(例如除了包括ACC1和ACC2之外,还包括ACC3、ACC4等等)复制组播数据。此时,从RC1到各ACC的BIERv6组播转发,本质上是单播转发,即RC1需为每个ACC网络设备发一份组播数据。因此对于RC1与AGG1间的链路,必须能承担多份流量。当节点AGG1故障后,备份路径的流量也同样需复制多份流量,经过RC1-RC2-AGG2-各ACC,相比于故障前,仅在RC1和RC2之间增加了多份流量复制;而RC1和RC2作为备份链路,应该预留出足够带宽供流量通过,否则,应该将AGG1位置部署为BFR,进行BIER复制,以减少RC1到AGG1之间的链路带宽占用、以及减少RC2到AGG2之间的链路带宽占用。因此,利用本申请实施例的方案,也不会引起组播数据多份复制,造成网络拥塞。

需要说明的是,虽然图5和图6a中示出的网络设备RC2和网络设备AGG2均为非BFR,但是在实际中,网络设备RC2和网络设备AGG2也可以为BFR,此处不做限定。

基于以上实施例提供的报文转发方法,本申请实施例还提供了一种报文转发装置,以下结合附图介绍该装置。

参见图7,该图为本申请实施例提供的一种报文转发装置的结构示意图。图7所示的报文转发装置700,可以应用于以上实施例提及的第一网络设备,用于执行以上实施例由第一网络设备执行的报文转发方法。该报文转发装置700例如可以包括获取单元701、第一确定单元702、第一更新单元703和第一转发单元704。

获取单元701用于获取第一报文,所述第一报文中包括第一目的地址,所述第一目的地址用于指示第二网络设备,所述第一报文为位索引显式复制第六版互联网协议封装BIERv6报文,所述第一网络设备为位转发路由器BFR,所述第二网络设备是在第一路径上的、所述第一网络设备的下一跳BFR,所述第一路径是所述第一网络设备向所述第二网络设备发送所述第一报文的路径。

第一确定单元702用于在确定所述第一路径故障时,获取第一段列表,所述第一段列表用于指示第二路径,所述第二路径是所述第一路径的备用路径。

第一更新单元703用于更新所述第一报文得到第二报文,所述第二报文包括所述第一段列表。

第一转发单元704用于经由所述第二路径向所述第二网络设备转发所述第二报文。

在一种实现方式中,所述装置700还包括第二确定单元,第二确定单元用于在所述第一网络设备获取第一段列表之前,确定所述第二路径不存在故障。

在一种实现方式中,所述第一段列表包括节点标识和/或链路标识,所述节点标识用于指示所述第二路径包括的网络设备,所述链路标识用于指示所述第二路径包括的邻接链路。

在一种实现方式中,所述第二报文是通过在所述第一报文中添加所述第一段列表得到的。

在一种实现方式中,所述第二报文包括分段路由头SRH,所述第一段列表位于所述SRH中。

在一种实现方式中,所述第一路径故障,包括:所述第一网络设备和所述第二网络设备之间的邻接链路故障,所述第一路径为所述第一网络设备和所述第二网络设备之间的邻接链路;或者,第一链路故障,所述第一路径至少包括所述第一链路和第二链路;或者,第三网络设备故障,所述第一路径包括所述第三网络设备,所述第三网络设备不是BFR。

在一种实现方式中,所述装置700还包括第三确定单元、第二更新单元和第二转发单元。第三确定单元用于若在确定所述第一路径不存在故障之后的预设时间段内获取到第三报文,所述第三报文中包括所述第一目的地址,所述第三报文为BIERv6报文,则获取所述第一段列表;第二更新单元用于更新所述第三报文得到包括所述第一段列表的第四报文;第二转发单元用于转发所述第四报文,所述预设时间段的起始时刻为所述第一网络设备确定所述第一路径不存在故障的时刻。

在一种实现方式中,所述装置700还包括第三转发单元,第三转发单元用于若在所述预设时间段之后获取到第五报文,所述第五报文中包括所述第一目的地址,所述第五报文为BIERv6报文,则通过所述第一路径将所述第五报文转发至所述第二网络设备。

由于所述装置700是与以上方法实施例提供的方法对应的装置,所述装置700的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置700的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。

需要说明的是,前述提及的报文转发装置700,其硬件结构可以为如图8所示的结构,图8为本申请实施例提供的一种设备的结构示意图。

请参阅图8所示,设备800包括:处理器810、通信接口820和和存储器830。其中设备800中的处理器810的数量可以一个或多个,图8中以一个处理器为例。本申请实施例中,处理器810、通信接口820和存储器830可通过总线系统或其它方式连接,其中,图8中以通过总线系统840连接为例。

处理器810可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器810还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。

存储器830可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,RAM);存储器830也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器830还可以包括上述种类的存储器的组合。存储器例如可以存储前述第一段列表。

可选地,存储器830存储有操作系统和程序、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,程序可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。处理器810可以读取存储器830中的程序,实现本申请实施例提供的报文转发方法。

总线系统840可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线系统840可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

本申请实施例还提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上实施例提供的报文转发方法。

本申请实施例还提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例提供的报文转发方法。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。

集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。

以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种获取控制信息的方法和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!