发送报文的方法及设备与流程

文档序号:28048959发布日期:2021-12-17 19:48阅读:86来源:国知局
发送报文的方法及设备与流程

1.本发明涉及通信技术领域,尤其涉及一种发送报文的方法及设备。


背景技术:

2.网际互连协议(internet protocol,ip)网络的分布式无序收敛会产生环路。以中间系统到中间系统(intermediate system to intermediate system,is-is)或开放式最短路径优先(open shortest path first,ospf)链路状态为例,每次网络拓扑发生变化时,都需要一些路由器基于新拓扑更新其转发信息库(forward information database,fib)。由于收敛顺序差异,不同路由器会有暂态的不一致。这个不一致持续的时间根据设备能力、配置参数、业务量等的不同可能在毫秒级到秒级。在此期间,报文沿途转发的路由器可能处于收敛前状态,也可能处于收敛后状态,这样就可能会导致转发环路。直到沿途路径的设备都完成收敛,环路才会消失。我们将这种暂态的环路称为微环。微环可能导致网络丢包、时延抖动、报文乱序等问题。
3.在内部网关协议(interior gateway protocol,igp)网络中存在多源路由切换的场景:例如,在igp域内包括多个发布另一个igp域的路由的节点(该节点可以称为路由源,可以是路由器或交换机等),在需要将报文转发到该另一个igp域时,一般会选择路径开销(cost)最小的那个路由源(这个源可以称为优选路由源)作为报文转发的中转节点。但是,当该优选路由源不可达时,会重新选择新的路由源为优选路由源,这个过程称为多源路由切换。
4.微环普遍存在于ip网络中,也存在于上述多源路由切换场景中。如何在多源路由切换的场景中防止微环是本领域技术人员急需解决的技术问题。


技术实现要素:

5.本技术提供一种发送报文的方法及设备,能够在多源路由切换的场景中防止微环。
6.第一方面,本技术提供一种发送报文的方法,该方法应用于通信网络,所述方法应用于通信网络,所述通信网络包括第一节点、第一路由源和第二路由源,所述第一路由源和所述第二路由源均为地址前缀的发布节点,所述第一节点中包括第一路由信息,所述方法包括:
7.所述第一节点将所述第一路由信息的下一跳节点设置为所述第一节点到达所述第一路由源的下一跳节点,所述第一路由信息的目的地址为所述地址前缀;
8.在所述第二路由源优于所述第一路由源的情况下,所述第一节点将所述第一路由信息的下一跳节点切换为所述第一节点到达所述第二路由源的下一跳节点;所述第一节点根据所述切换的操作在目标报文中添加第一显式路径信息,所述目标报文的目的地址与所述地址前缀匹配,所述第一显式路径信息用于指示从所述第一节点到所述第二路由源的转发路径;所述第一节点通过所述转发路径向所述第二路由源转发所述目标报文。
9.本技术通过路由源的切换触发防微环机制(在报文中添加显式路径信息),从而实现了在多源切换场景下的防微环功能。
10.在其中一种可能的实施方式中,所述第一节点根据所述切换的操作在所述目标报文中添加第一显式路径信息,包括:
11.在所述切换的操作之后的固定时长内,所述第一节点根据所述切换的操作在所述目标报文中添加所述第一显式路径信息。
12.由于微环是因为网络中的节点收敛顺序差异导致不同节点会有暂态的不一致而形成的,因此,微环的状态只是暂时的,等到网络中的节点都收敛后则不会出现微环,因此,本技术中限定只在路由源切换的操作之后的固定时长内在目标报文中添加显式路径信息,超出该时长则无需添加,从而可以节省上述第一节点的计算资源。
13.在其中一种可能的实施方式中,所述第二路由源优于所述第一路由源,包括:
14.所述第一节点到所述第二路由源的第二最小路径开销小于所述第一节点到所述第一路由源的第一最小路径开销;或者,对于所述第一节点,所述第一路由源不可达。
15.在其中一种可能的实施方式中,所述对于所述第一节点,所述第一路由源不可达,包括:
16.所述第一节点到所述第一路由源的路径均出现故障;
17.或者,所述第一路由源出现故障;
18.或者,所述第一路由源不再发布所述地址前缀。
19.在本技术中,不管是第一路由进程内出现故障(例如上述第一节点到第一路由源的路径均出现故障或者第一路由源出现故障),还是第二路由进程内出现故障(例如第一路由源不再发布上述第一路由信息)导致的路由源切换,都可以通过本技术实施例提供的上述方法解决路由微环的问题。
20.在其中一种可能的实施方式中,所述第一路由源不再发布所述地址前缀,包括:
21.从所述第一路由源到第二节点的转发路径均出现故障,所述第二节点的地址与所述地址前缀匹配。
22.在其中一种可能的实施方式中,所述第一节点到所述第二路由源的第二最小路径开销小于所述第一节点到所述第一路由源的第一最小路径开销中,所述第一最小路径开销包括所述第一节点到所述第一路由源的链路开销和所述地址前缀的第一开销之和,所述第一开销包括所述第一路由源到所述地址前缀指示的节点的链路开销;所述第二最小路径开销包括所述第一节点到所述第二路由源的链路开销和所述地址前缀的第二开销之和,所述第二开销包括所述第二路由源到所述地址前缀指示的节点的链路开销。
23.本技术中,将上述地址前缀的开销计算到路径开销中,能够更准确地找到整体开销最小的路径,从而可以节约资源。
24.在其中一种可能的实施方式中,所述第一显式路径信息包括如下的一项或多项:所述第二路由源的前缀标签或节点标签,所述第一转发路径上节点的节点标签或前缀标签,以及所述第一转发路径上链路的链路标签,所述第一转发路径为所述第一节点到所述第二路由源的转发路径。
25.在本技术中,目标报文中添加的显示路径信息可以是松散路径信息,也可以是严格路径信息,显示路径信息可以包括节点的节点标签或前缀标签,也可以包括链路的链路
标签,具体根据实际情况的需要决定,只要该添加的显示路径信息指示的转发路径为无环路径即可。
26.第二方面,本技术提供一种发送报文的设备,所述设备应用于通信网络,所述通信网络包括所述设备、第一路由源和第二路由源,所述第一路由源和所述第二路由源均为地址前缀的发布节点,所述设备中包括第一路由信息,所述设备包括:
27.设置单元,用于将所述第一路由信息的下一跳节点设置为所述设备到达所述第一路由源的下一跳节点,所述第一路由信息的目的地址为所述地址前缀;
28.切换单元,用于在所述第二路由源优于所述第一路由源的情况下,将所述第一路由信息的下一跳节点切换为所述第一节点到达所述第二路由源的下一跳节点;
29.添加单元,用于根据所述切换的操作在目标报文中添加第一显式路径信息,所述目标报文的目的地址与所述地址前缀匹配,所述第一显式路径信息用于指示从所述设备到所述第二路由源的转发路径;
30.转发单元,用于通过所述转发路径向所述第二路由源转发所述目标报文。
31.在其中一种可能的实施方式中,所述添加单元具体用于:
32.在所述切换的操作之后的固定时长内,根据所述切换的操作在所述目标报文中添加所述第一显式路径信息。
33.在其中一种可能的实施方式中,所述第二路由源优于所述第一路由源,包括:
34.所述第一节点到所述第二路由源的第二最小路径开销小于所述第一节点到所述第一路由源的第一最小路径开销;或者,对于所述第一节点,所述第一路由源不可达。
35.在其中一种可能的实施方式中,所述对于所述第一节点,所述第一路由源不可达,包括:
36.所述设备到所述第一路由源的路径均出现故障;
37.或者,所述第一路由源出现故障;
38.或者,所述第一路由源不再发布所述地址前缀。
39.在其中一种可能的实施方式中,所述第一路由源不再发布所述地址前缀,包括:
40.从所述第一路由源到第二节点的转发路径均出现故障,所述第二节点的地址与所述地址前缀匹配。
41.在其中一种可能的实施方式中,所述第一节点到所述第二路由源的第二最小路径开销小于所述第一节点到所述第一路由源的第一最小路径开销中,所述第一最小路径开销包括所述第一节点到所述第一路由源的链路开销和所述地址前缀的第一开销之和,所述第一开销包括所述第一路由源到所述地址前缀指示的节点的链路开销;所述第二最小路径开销包括所述第一节点到所述第二路由源的链路开销和所述地址前缀的第二开销之和,所述第二开销包括所述第二路由源到所述地址前缀指示的节点的链路开销。
42.在其中一种可能的实施方式中,所述第一显式路径信息包括如下的一项或多项:所述第二路由源的前缀标签或节点标签,所述第一转发路径上节点的节点标签或前缀标签,以及所述第一转发路径上链路的链路标签,所述第一转发路径为所述设备到所述第二路由源的转发路径。
43.第三方面,本技术提供一种发送报文的设备,所述设备应用于通信网络,所述通信网络包括所述设备、第一路由源和第二路由源,所述第一路由源和所述第二路由源均为地
址前缀的发布节点,所述设备中包括第一路由信息。所述设备包括处理器、通信接口和存储器,其中,所述存储器用于存储计算机程序和/或数据,所述处理器用于执行所述存储器中存储的计算机程序以实现如下操作:
44.将所述第一路由信息的下一跳节点设置为所述第一节点到达所述第一路由源的下一跳节点,所述第一路由信息的目的地址为所述地址前缀;在所述第二路由源优于所述第一路由源的情况下,将所述第一路由信息的下一跳节点切换为所述第一节点到达所述第二路由源的下一跳节点;根据所述切换的操作在目标报文中添加第一显式路径信息,所述目标报文的目的地址与所述地址前缀匹配,所述第一显式路径信息用于指示从所述第一节点到所述第二路由源的转发路径;通过所述转发路径向所述第二路由源转发所述目标报文。
45.在其中一种可能的实施方式中,所述根据所述切换的操作在所述目标报文中添加第一显式路径信息,具体为:
46.在所述切换的操作之后的固定时长内,根据所述切换的操作在所述目标报文中添加所述第一显式路径信息。
47.在其中一种可能的实施方式中,所述第二路由源优于所述第一路由源,包括:
48.所述第一节点到所述第二路由源的第二最小路径开销小于所述第一节点到所述第一路由源的第一最小路径开销;或者,对于所述第一节点,所述第一路由源不可达。
49.在其中一种可能的实施方式中,所述第一路由源不可达,包括:
50.所述设备到所述第一路由源的路径均出现故障;
51.或者,所述第一路由源出现故障;
52.或者,所述第一路由源不再发布所述地址前缀。
53.在其中一种可能的实施方式中,所述第一路由源不再发布所述地址前缀,包括:
54.从所述第一路由源到第二节点的转发路径均出现故障,所述第二节点的地址与所述地址前缀匹配。
55.在其中一种可能的实施方式中,所述第一节点到所述第二路由源的第二最小路径开销小于所述第一节点到所述第一路由源的第一最小路径开销中,所述第一最小路径开销包括所述第一节点到所述第一路由源的链路开销和所述地址前缀的第一开销之和,所述第一开销包括所述第一路由源到所述地址前缀指示的节点的链路开销;所述第二最小路径开销包括所述第一节点到所述第二路由源的链路开销和所述地址前缀的第二开销之和,所述第二开销包括所述第二路由源到所述地址前缀指示的节点的链路开销。
56.在其中一种可能的实施方式中,所述第一显式路径信息包括如下的一项或多项:所述第二路由源的前缀标签或节点标签,所述第一转发路径上节点的节点标签或前缀标签,以及所述第一转发路径上链路的链路标签,所述第一转发路径为所述设备到所述第二路由源的转发路径。
57.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面任意一项所述的方法。
58.第五方面,本技术提供一种计算机程序产品,当所述计算机程序产品被计算机读取并执行时,上述第一方面任意一项所述的方法将被执行。
59.第六方面,本技术提供一种计算机程序,当该计算机程序在计算机上执行时,将会
使所述计算机实现上述第一方面任意一项所述的方法。
60.综上所述,本技术通过路由源的切换触发防微环机制(在报文中添加显式路径信息),从而实现了在多源切换场景下的防微环功能,从而避免了网络丢包、时延抖动、报文乱序等问题。
附图说明
61.下面将对本技术实施例中所需要使用的附图作介绍。
62.图1所示为本技术实施例提供的一种通信网络的结构示意图;
63.图2所示为本技术实施例提供的一种发送报文的方法的流程示意图;
64.图3所示为本技术实施例提供的通信网络中链路开销的示意图;
65.图4所示为本技术实施例提供的一种基于通信网络结构的报文转发的流程示意图;
66.图5所示为本技术实施例提供的另一种基于通信网络结构的报文转发的流程示意图;
67.图6为本方案实施例提供的设备的逻辑结构示意图;
68.图7为本方案实施例提供的设备的硬件结构示意图。
具体实施方式
69.下面结合附图对本技术的实施例进行描述。
70.图1所示为本技术实施例提供的一种发送报文的方法的一种可能的应用场景,该场景为一个通信网络100的网络结构示意图。该通信网络100中可以同时运行多个路由进程,图1中示例性地画出了两个路由进程,分别为路由进程1和路由进程2。
71.路由进程指的是在一个路由域内运行的进程,路由域又可以称为自治系统(autonomous system,as)。示例性地,路由进程1是在由节点101、节点102、节点103、节点104、节点105和节点106组成的路由域内运行的。路由进程2是在节点103、节点104和节点107组成的路由域中运行的。需要说明的是,路由进程1和路由进程2中包括的节点不限于图1中所示的节点,还可以包括更多的节点(图1中未示出)。
72.其中,该两个路由域之间的边界路由节点,可以互相引入该两个路由域的节点的地址前缀,例如,节点103和节点104这两个边界路由节点可以在路由进程1中引入路由进程2中的路由,从而可以在路由进程1中发布这些引进的路由的地址前缀,例如,节点103和节点104在路由进程1中引入到节点107的路由,然后在路由进程1中发布该引入的路由的地址前缀即该节点107的地址前缀。同样的,可以在路由进程2中引入路由进程1中的路由,从而可以在路由进程2中发布这些引进的路由的地址前缀,这样可以实现两个路由进程的节点之间的通信。节点的地址前缀可以用于在路由域内标识该节点。
73.需要说明的是,虽然上述节点103和节点104在路由进程1中发布路由进程2中的节点的地址前缀,但是路由进程1中的节点不感知路由进程2中的节点,而是将该节点103和节点104发布的地址前缀当成是该节点103和节点104的地址前缀。当路由进程1中的某个节点有报文需要发往路由进程2中的另一个节点时,该某个节点会将该报文先发往路由进程1中发布该另一个节点地址前缀的节点,然后该发布地址前缀的节点再将报文转发到该另一个
节点。同样的,路由进程2中的节点也不感知路由进程1中的节点,具体可参考前述描述,此处不再赘述。
74.可选的,通信网络100中的节点可以是路由器或者也可以是交换机等。
75.本技术实施例提供的发送报文的方法的应用场景不限于上述图1所示的跨进程的多源路由场景,图1所示场景仅为一个示例,可以应用本技术实施例提供的发送报文的方法的场景例如任意的多源路由的场景均在本技术的保护范围之内。
76.下面介绍本技术实施例涉及到的概念。
77.1、路由源:指的是在通信网络中发布地址前缀的节点,例如可以是上述图1所示场景中的节点103和节点104。
78.2、多源路由:指的是在一个路由域内有多个节点可以发布相同的地址前缀。例如,在上述图1所示场景中,在同一个路由域内节点103和节点104都可以发布相同的地址前缀。
79.3、优选路由源:指的是在一个路由域内,如果某个节点到达某个路由源的最小路径开销比该某个节点到达其它路由源的最小路径开销都小,则对于该某个节点来说该某个路由源为优选路由源。路径开销是用来衡量到达目标节点的代价,其值是两个节点之间某条路径上所有链路开销和地址前缀开销的总和。最小的路径开销是到达目标节点的最佳路径。例如,在上述图1所示场景中,在同一个路由域内,假设某个节点需要通过路由源(节点103或节点104)才可以与另一个路由域内的节点通信,如果该某个节点到达节点103的最小路径开销比到达节点104的最小路径开销小,则对于该某个节点来说,节点103为优选路由源。
80.需要说明的是,在两个路由域之间的节点通信的过程中,由于第一个路由域内的起始节点不感知另一个路由域内的目的节点,而是将中转的优选路由源当成目的节点,因而对于起始节点来说,该起始节点到目的节点的下一跳即为该起始节点到该优选路由源的路由信息的下一跳。
81.在另一种可能的实施方式中,优选路由源可以不通过路径开销来定义,而是可以通过其它的方式例如预先配置或者基于特定的算法计算得到的,具体如何定义出优选路由源可以根据实际情况确定,本方案对此不做限制。
82.4、多源路由切换:指的是在一个路由域内,当已确定的优选路由源不可达时,会重新选择新的路由源为优选路由源,这个过程称为多源路由切换。多路由源切换具体表现为:将节点到一个路由源的下一跳切换为该节点到另一个路由源的下一跳。例如,在上述图1所示场景中,假设节点103为上述某个节点的最优路由源,但是,当该节点103不可达时,该某个节点会通过节点104与另一个路由域内的节点(例如节点107)通信,即将最优路由源切换为节点104。在具体实现中,假设节点102为节点101到节点103的下一跳,节点106为节点101到节点104的下一跳,那么将优选路由源切换为节点104表现为:在节点101包括的目的节点为107的路由信息中,下一跳由节点102切换为了节点106。
83.在一种可能的实施方式中,在节点101中,从节点101到节点104的路由信息的下一跳没有改变,一直都是节点106。这里节点101到节点107的下一跳的改变是由于路由源的切换而改变的。
84.在另一种可能的实施方式中,当某个节点已确定的优选路由源不可达时,也可能会导致该某个节点切换之后的优选路由源的下一跳的改变,该改变后的下一跳可以是根据
优选路由源不可达之后更新的拓扑重新计算得到的到达更新后的优选路由源的下一跳。例如,上述图1中,如果优选路由源节点103不可达之后,导致网络拓扑改变,然后重新计算节点101到切换之后的优选路由源节点104的路由,该重新计算得到的路由中节点101到节点104的下一跳可以不再是节点106,而是其它的节点(图1中未示出)。
85.在具体实施例中,由于出现了优选路由源不可达的情况,导致通信网络的网络拓扑发生了变更,且由于通信网络中各个节点性能、参数配置和业务量等的不同导致对网络拓扑变更的感知在时间上有差异,即各个节点的收敛顺序不同,从而导致路由微环的产生。
86.为了便于理解,以图1为例说明。在图1中,假设节点101为通信的起始节点、节点107为目的节点,节点103和节点104为在路由进程1内发布节点107的地址前缀的路由源,且节点103为优选路由源。那么,在网络正常运行的时候,从节点101向节点107发送报文通过优选路由源103中转,即报文转发的路径为节点101-节点102-节点103-节点107。但是,在优选路由源103不可达的情况下,例如节点102到节点103的链路故障的情况下,节点101最先感知到该故障,最先收敛,因而将优选路由源切换为104,即将报文转发路径的下一跳切换为节点106,并将报文转发给106。但是,由于节点性能、参数配置和业务量等原因导致节点106收敛慢于节点101,即节点106还未感知到故障,仍然认为节点103为优选路由源,因此,节点106又将报文转发给节点101,从而形成微环。
87.为了解决这个问题,本技术可以通过基于优选路由源的切换操作触发防微环机制,即在目标报文中添加显式路径信息用于指示该报文的转发路径,从而防止微环的发生。基于此,下面介绍本技术实施例提供的一种发送报文的方法,该方法可以应用于但不限于上述图1所示场景。参见图2,该方法可以包括但不限于如下步骤:
88.s201、第一节点将第一路由信息的下一跳节点设置为该第一节点到达第一路由源的下一跳节点,该第一路由信息的目的地址为该第一路由源发布的地址前缀。
89.在通信网络中,该第一路由源为该地址前缀的发布节点,该第一节点中包括该第一路由信息,该第一路由信息的目的地址为该地址前缀,该地址前缀为该第一路由信息的目的节点的地址前缀,下面简称为目的地址前缀。
90.在具体实施例中,两个路由进程之间的节点实现通信需要该两个路由进程的路由源作为中转节点。该两个路由进程可以称为第一路由进程和第二路由进程。例如,该第一路由进程可以是上述图1中所示的路由进程1,该第二路由进程可以是上述图1中所示的路由进程2。
91.根据前面的描述可知,第一路由进程与第二路由进程的节点之间的通信也可以说是该两个路由进程对应的两个路由域的节点之间的通信。
92.该第一路由进程和第二路由进程可以是通信网络中相邻的两个路由进程,该两个路由进程之间包括多个边界路由节点,这些边界路由节点都可以在第一路由进程中发布第二路由进程中的节点的地址前缀,当然,这些边界路由节点也都可以在第二路由进程中发布第一路由进程中的节点的地址前缀。基于前述的描述可知,该多个边界路由节点可以称为路由源。
93.上述路由源发布地址前缀可以是通过泛洪的方式通知路由域内的其它节点。示例性地,在内部网关协议(interior gateway protocol,igp)网络中,可以通过igp协议来泛洪地址前缀。或者,在运行其它协议的网络中,也可以通过其它协议规定来发布地址前缀,
本方案对此不做限制。
94.上述第一节点可以是第一路由进程中的节点,该第一节点需要与第二路由进程中的第二节点进行通信。该第一节点可以通过上述多个路由源泛洪的地址前缀来获取该第二节点的地址前缀,该第二节点的地址前缀即为前述的目的地址前缀。由前面的描述可知,第一节点不感知第二节点,由于该第二节点的地址前缀是通过路由源泛洪给第一节点的,因此,第一节点认为该第二节点的地址前缀为该路由源的地址前缀。为了便于理解,示例性地,假设该第二节点的网络地址为1.1.1.1/32,那么路由源泛洪的该第二节点的地址前缀可以是1.1.1.1。
95.该第一节点接收到上述多个路由源通过泛洪的方式发布的该目的地址前缀后,可以根据最短路径优先算法等算法计算出该第一节点到该目的地址前缀即多个路由源的转发路径,由于第一节点认为该第二节点的地址前缀为上述多个路由源的地址前缀,这里计算得到的转发路径实际为第一节点分别到该多个路由源的转发路径。第一节点可以将这些计算得到的转发路径存储起来,以备后续的使用。
96.需要说明的是,本技术实施例涉及的一个节点到另一个节点之间的转发路径可以是根据通信网络运行的协议计算得到的可行转发路径中最优的转发路径,例如路径开销最小的转发路径等。
97.然后,该第一节点基于该多个转发路径确定出优选路由源,即确定出上述第一路由源。那么,第一节点与第二节点之间的通信通过该第一路由源来中转。并根据该第一路由源对应的转发路径生成路由信息即上述第一路由信息。该第一路由信息中包括的目的地址信息为该第二节点的地址前缀,且该第一路由信息的下一跳节点为该第一节点到达该第一路由源的下一跳节点。
98.为了便于理解,示例性地,在上述图1所示的场景中,第一节点可以是节点101,第二节点可以是节点107,第一路由源可以是节点103或者节点104。至于是节点103还是节点104,需要看第一节点到这两个节点的路径开销,到哪一个节点的路径开销小,则该节点即为优选路由源即该第一路由源。
99.示例性地,可以参见图3,图3与图1所示的网络相同,上述对图1的描述适用于图3。图3中标出了各个链路的链路开销,链路开销指的是相邻两个节点之间的链路的开销,根据图3所示的链路开销可得:节点101到节点103的最小路径开销为20,而节点101到节点104的最小路径开销为70。那么,通过比较可知,节点103为第一节点即节点101的优选路由源。那么,上述第一路由信息的下一跳节点为节点101到节点103的下一跳节点,即为节点102。
100.上述基于路径开销确定优选路由源只是一个示例,也可以基于其它方式来确定优选路由源,本方案对此不做限制。
101.在另一种可能的实施方式中,上述第一节点计算到多个路由源的转发路径、确定优选源以及生成路由信息都可以是由控制器来完成的,然后,控制器将计算得到的转发路径的信息以及生成的路由信息发送给该第一节点。
102.s202、在第二路由源优于第一路由源的情况下,第一节点将第一路由信息的下一跳节点切换为该第一节点到达第二路由源的下一跳节点。
103.该第二路由源和上述第一路由源一样,均为上述目的地址前缀的发布节点。基于上述的介绍,在该第二路由源优于第一路由源的情况下,第一节点可以将优选路由源切换
为第二路由源。具体的,第一节点可以将上述第一路由信息的下一跳节点切换为该第一节点到达第二路由源的下一跳节点。优选路由源切换之后,第一节点与第二节点之间的通信通过该第二路由源来中转。该第二路由源可以是上述多个路由源中,除了第一路由源外,与第一节点之间的转发路径开销最小的路由源。
104.例如,在上述图3所示的场景中,第一路由源为节点103,第二路由源为节点104,当节点104优于该节点103时,节点101将最优路由源切换为节点104,即该节点104即为第二路由源。该优选路由源的切换在节点101中具体体现为:将第一路由信息中的原来的下一跳节点102切换为了节点101到路由源节点104的下一跳节点106。
105.上述第二路由源优于第一路由源的情况可以包括第一节点到第二路由源的第二最小路径开销小于第一节点到第一路由源的第一最小路径开销的情况,以及包括对于第一节点,第一路由源不可达的情况。
106.对于第一节点到第二路由源的第二最小路径开销小于该第一节点到该第一路由源的第一最小路径开销的情况,又可以包括以下两种子情况:
107.第一子情况、最小路径开销包括链路开销和上述目的地址前缀的开销之和,该目的地址前缀的开销指的是路由源到该目的地址前缀指示的节点之间的链路开销。
108.具体的,该第一最小路径开销包括第一节点到第一路由源的转发路径上所有的链路开销以及该第一路由源到该目的地址前缀指示的节点的转发路径上所有的链路开销。该第二最小路径开销包括第一节点到第二路由源的转发路径上所有的链路开销以及该第二路由源到该目的地址前缀指示的节点的转发路径上所有的链路开销。为了便于理解,以图3为例说明。
109.在图3中,在网络正常无故障时,第一节点101到第一路由源节点103的最小开销路径为节点101-节点102-节点103,该路径的链路开销为20。节点101到第二路由源104的最小开销路径为节点101-节点106-节点105-节点104,该路径的链路开销为70。第一路由源节点103和第二路由源节点106到目的地址前缀指示的节点107的链路开销均为10。那么,上述第一最小路径开销为20+10=30,上述第二最小路径开销为70+10=80。
110.但是,当节点101与节点102之间的链路故障、节点102故障、节点102和节点103之间的链路故障中的一项或多项发生时,节点101到节点103的最小开销路径变为节点101-节点106-节点105-节点104-节点103,该路径的链路开销变为1070,那么上述第一最小路径开销为1080,而第二最小路径开销不变,此时,第二最小路径开销小于第一最小路径开销。那么,在这种情况下,第一节点101可以将第一路由信息的下一跳节点切换为该第一节点到达第二路由源的下一跳节点106。
111.或者,当节点103与节点107之间的链路故障时,第一路由源节点103到目的地址前缀指示的节点107的链路开销变为1010,那么上述第一最小路径开销为1030,而第二最小路径开销不变,此时,第二最小路径开销小于第一最小路径开销。那么,在这种情况下,第一节点101可以将第一路由信息的下一跳节点切换为该第一节点到达第二路由源的下一跳节点106。
112.第二子情况、最小路径开销不包括上述目的地址前缀的开销,只包括链路开销。同样的,为了便于理解,以图3为例说明。
113.在图3中,在网络正常无故障时,如果最小路径开销只包括链路开销,那么上述第
一最小路径开销为20,上述第二最小路径开销为70。但是,当节点101与节点102之间的链路故障、节点102故障、节点102和节点103之间的链路故障中的一项或多项发生时,节点101到节点103的最小开销路径变为节点101-节点106-节点105-节点104-节点103,该路径的链路开销变为1070,即第一最小路径开销为1070,而第二最小路径开销不变,此时,第二最小路径开销小于第一最小路径开销。那么,在这种情况下,第一节点101可以将第一路由信息的下一跳节点切换为该第一节点到达第二路由源的下一跳节点106。
114.上述对于第一节点,第一路由源不可达的情况包括下面几种情况中的一种或多种:
115.第一种、该第一节点到该第一路由源的路径均出现故障。例如,在上述图3所述场景中,假设节点101为该第一节点,节点103为该第一路由源,在正常无故障的情况下,节点101到达节点103的转发路径可以是:节点101到节点102再到节点103。那么,节点101到节点103的路径均出现故障可以是:路径节点101-节点102-节点103和路径节点101-节点106-节点105-节点104-节点103均出现故障,该故障包括节点故障和/或链路故障。
116.第二种、该第一路由源出现故障。例如,在上述图1所述场景中,假设节点103为该第一路由源,那么,节点103出现故障无法再转发报文。
117.第三种、该第一路由源不再发布上述目的地址前缀。
118.该第一路由源不再发布上述目的地址前缀可以是在上述第二路由进程内从第一路由源到第二节点的转发路径均出现故障。例如,在上述图3所述场景中,假设节点103为该第一路由源,第二节点可以是节点107,那么节点103与节点107之间的链路出现故障以及节点103-节点104-节点107的路径出现故障导致节点103无法再感知到节点107的地址前缀,从而不再在第一路由进程内发布该节点107的地址前缀。
119.或者,该第一路由源不再发布上述目的地址前缀可以是该第一路由源被配置不再用于发布地址前缀等。
120.需要说明的是,上述第一节点可以是通过更新网络拓扑中各个节点泛洪的信息感知上述第一路由源不可达的情况。示例性地,网络拓扑中的节点会不断泛洪自身的地址前缀(包括节点引入的其它节点的地址前缀,例如上述节点103和节点104,除了发布自身的地址前缀之外,还可以发布引入的第二路由进程中的路由的地址前缀(例如节点107的地址前缀),通过这个方式可以让网络中的节点了解网络拓扑的情况,节点会根据每次的泛洪更新自身中存储的网络拓扑的信息,因此,当某个节点或者链路故障时,更新网络拓扑的信息后没有了这些节点的拓扑信息,则表明这些节点不可达。进一步地,对于上述第三种情况,由于第一路由源不再发布上述目的地址前缀,那么上述第一节点在所述第一路由源所泛洪的内容中无法找到该目的地址前缀,则第一节点感知该第一路由源不再发布上述目的地址前缀,因而,对于该第一节点来说该第一路由源不可达。
121.另外,上述第一节点也可以通过其它方式感知到上述第一路由源不可达的情况,例如控制器的通知等方式,具体如何感知根据实际情况确定,本方案对此不做限制。
122.s203、该第一节点根据该切换的操作在目标报文中添加第一显式路径信息,该目标报文的目的地址与上述目的地址前缀匹配,该第一显式路径信息用于指示从该第一节点到该第二路由源的转发路径。
123.具体的,上述第一节点在将优选路由源切换为上述第二路由源之后,在转发发往
第二节点的目标报文时,感知到优选源为第二路由源(具体体现为感知到上述第一路由信息中的下一跳为该第一节点到该第二路由源的下一跳),而不再是第一路由源,可以在该发往第二节点的目标报文的报文头中添加用于明确指定从该第一节点到该第二路由源的转发路径的路径信息,该路径信息可以称为第一显式路径信息。
124.可选的,该第一显式路径信息包括如下的一项或多项:该第二路由源的前缀标签或节点标签,该第一转发路径上节点的节点标签或前缀标签,和该第一转发路径上链路的链路标签。该第一转发路径为该第一节点到该第二路由源的转发路径。
125.具体的,该第二路由源的前缀标签用于标识网络中的该第二路由源的地址前缀,可以泛洪给该第二路由源所属路由域内的其它节点,在路由域内全局可见,全局有效。该第二路由源的节点标签用于标识该第二路由源。上述链路标签用于标识两个相邻节点之间的链路。
126.示例性地,对于基于互联网协议第6版(internet protocol version 6,ipv6)的分段路由(segment routing,sr)网络(srv6),该第一显示路径信息可以是从该第一节点到该第二路由源的转发路径的段标识列表(segment id list,sid list)。
127.示例性地,对于基于多协议标签交换(multi-protocol label switching,mpls)的分段路由(segment routing,sr)网络(sr-mpls),该第一显示路径信息可以是从该第一节点到该第二路由源的转发路径的标签栈(label stack)。
128.可以理解,段标识列表和标签栈所表征的意思可以是相同的,只是在不同的协议下叫法不同。
129.在一些可能的实施方式中,该第一显式路径信息可以是松散路径的信息,也可以是严格路径的信息,只要该第一显式路径信息指示的路径为无环路径即可。该松散路径的信息是与严格路径的信息是相对的。松散路径的信息指的是只包括整个转发路径中的部分标签的信息,例如上述第一显式路径信息只包括第二路由源的前缀标签或节点标签。而严格路径的信息指的是包括整个转发路径中每一个节点的节点标签或者包括整个转发路径中每一个链路的链路标签等。当然,节点标签、链路标签和前缀标签既可以单独使用,也可以混合使用。
130.示例性地,可以参见图4,图4以sr-mpls为例示出了第一显式路径信息为松散路径的信息时报文转发的流程示意图。需要说明的是,图4和前述图3的通信网络结构相同,前述对图3的描述适用于图4。
131.图4中,通过第二路由源节点104的前缀标签来明确指示目标报文的转发路径。图4中给出了节点104和节点107的前缀标签分别为16100和16010。
132.那么,在转发上述目标报文时,节点101将第二路由源节点104的前缀标签添加到该目标报文的报文头中,参见图4中的报文401。该报文401中还包括目的节点即节点107的前缀标签和负载payload,负载即需要转发的数据。如果不添加显式路径信息即不添加节点104的前缀标签,那么节点106由于未收敛,收到报文后可能会将报文转发给节点101形成微环。由于上述路由源切换前后,节点101到节点104的下一跳没有变化,因此,目标报文中添加的节点104的前缀标签是无环的路径信息,即根据该节点104的标签,目标报文可以顺利被转发到该第二路由源节点104。
133.图4中目标报文的转发过程如下:
134.节点101根据节点104的前缀标签16100查找自身的转发表获得下一跳的出接口,然后,从该出接口发出该目标报文(图4中的报文401),该目标报文被发送到节点106;
135.同样的,节点106根据节点104的前缀标签16100查找自身的转发表获得下一跳的出接口,然后,从该出接口发出该目标报文(图4中的报文402),该目标报文被发送到节点105;
136.节点105接收到报文后,查表得知前缀标签16100标识的节点即为下一跳节点104,因此将该前缀标签16100弹出,然后将该目标报文(图4中的报文403)发送给节点104;
137.节点104接收到报文后,根据报文中的前缀标签16010查表得知该前缀标签16010标识的节点即为下一跳节点107,因此将该前缀标签16010弹出,然后将该目标报文(图4中的报文404)发送给节点107,至此完成报文的转发。
138.示例性地,可以参见图5,图5以sr-mpls为例示出了第一显式路径信息为严格路径的信息时报文转发的流程示意图。需要说明的是,图5和前述图4的通信网络结构相同,前述对图4的描述适用于图5。
139.图5中,通过链路标签来明确指示目标报文的转发路径的路径信息。相比于图4,图5中还示出了节点105和节点106之间链路的链路标签4001,以及示出了节点105和节点104之间链路的链路标签4002,链路标签在sr-mpls中又可以称为邻接标签(adjacency segment id,adj sid)。
140.那么,在转发上述目标报文时,节点101将链路标签4001和4002添加到该目标报文的报文头中,参见图4中的报文501。该报文501中还包括目的节点即节点107的前缀标签和负载payload,负载即需要转发的数据。然后,节点将报文501发送出去,具体的转发过程此处不赘述。
141.上述图4和图5以sr-mpls为例,在具体实施例中,本技术实施例也可以应用于srv6等网络场景,具体与sr-mpls类似,此处不再赘述。
142.s204、该第一节点通过该第一显式路径信息指示的转发路径向该第二路由源转发该目标报文。
143.基于上述的描述可知,第一节点将上述第一显式路径信息添加到目标报文中之后,将该报文向上述第二路由源转发。该第二路由源接收到该报文后,根据报文中的目的节点即上述第二节点的标签或者地址向该第二节点转发,从而完成了整个报文的转发操作。
144.在其中一种可能的实施方式中,上述s203中该第一节点根据该切换的操作在目标报文中添加第一显式路径信息可以包括在该切换的操作之后的固定时长内根据该切换的操作在该目标报文中添加该第一显式路径信息。
145.这是由于微环是因为网络中的节点收敛顺序差异导致不同节点会有暂态的不一致而形成的,因此,微环的状态只是暂时的,等到网络中的节点都收敛后则不会出现微环,因此,本技术中限定只在路由源切换的操作之后的固定时长内在目标报文中添加显式路径信息,超出该时长则无需添加,从而可以节省上述第一节点的计算资源。例如,基于前述对图1的描述可知,由于节点106的收敛慢于节点101导致微环,但是当节点106收敛之后,节点106的优选路由源和节点101一样也切换为节点104,节点106接收到节点101发来的报文后不再回发给节点101,而是发往节点105,再由节点105发送给节点104,从而微环消失,此时可以不再在转发的目标报文中添加显式路径信息。
146.在具体实施例中,第一节点可以设置一个计时器计,在基于上述切换优选路由源的操作,在发送上述目标报文之前,可以先查看一下计时器的信息,判断此时是否在该切换操作之后的固定时长内,如果在,那么将上述第一显式路径信息添加到该目标报文中,如果不在则可以不用添加。
147.示例性地,上述计时器可以是在上述切换操作完成之时开始计时的,可以设定当计时到上述固定时长时停止计时。那么,在发送上述目标报文之前,只要查看到计时器仍然在继续计时,则在目标报文中添加上述第一显式路径信息。如果查看到计时器已经停止计时,则不在该目标报文中添加上述第一显式路径信息。
148.或者,上述计时器可以是一个倒计时器,预先设定倒计时长为上述固定时长,该倒计时器开始计时的时刻为上述切换操作完成的时刻。那么,在发送上述目标报文之前,可以查看该倒计时器是否清零,如果没有清零,则在目标报文中添加上述第一显式路径信息;如果该倒计时器已经清零,则不在该目标报文中添加上述第一显式路径信息。
149.示例性地,上述固定时长可以是3秒至10秒之间的任意一个值等,例如,可以是4秒、5秒、6秒或10秒等。
150.综上所述,本技术通过路由源的切换触发防微环机制(在报文中添加显式路径信息),从而实现了在多源切换场景下的防微环功能,从而避免了网络丢包、时延抖动、报文乱序等问题。
151.上述主要对本技术实施例提供的绑定段标识的处理方法进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
152.本技术实施例可以根据上述方法示例对设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
153.在采用对应各个功能划分各个功能模块的情况下,图6示出了设备的一种可能的逻辑结构示意图,该设备可以是上述的第一节点。该设备600包括设置单元601、切换单元602、添加单元603和转发单元604。其中:
154.设置单元601,用于将上述第一路由信息的下一跳节点设置为该设备600到达该第一路由源的下一跳节点,该第一路由信息的目的地址为上述目的地址前缀。
155.切换单元602,用于在第二路由源优于第一路由源的情况下,将该第一路由信息的下一跳节点切换为该第一节点到达该第二路由源的下一跳节点;
156.添加单元603,用于根据该切换的操作在目标报文中添加第一显式路径信息,该目标报文的目的地址与该地址前缀匹配,该第一显式路径信息用于指示从该设备到该第二路由源的转发路径;
157.转发单元604,用于根据该转发路径向该第二路由源转发该目标报文。
158.在一种可能的实施方式中,该添加单元603具体用于:
159.在该切换的操作之后的固定时长内,根据该切换的操作在该目标报文中添加该第一显式路径信息。
160.图6所示设备中各个单元的具体操作以及有益效果可以参见上述图2所示方法实施例的描述,此处不再赘述。
161.图7所示为本技术提供的设备的一种可能的硬件结构示意图,该设备可以是上述方法实施例中所述的第一节点。该设备700包括:处理器701、存储器702和通信接口703。处理器701、通信接口703以及存储器702可以相互连接或者通过总线704相互连接。
162.示例性的,存储器702用于存储设备700的计算机程序和数据,存储器702可以包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)或便携式只读存储器(compact disc read-only memory,cd-rom)等。在实现图6所示实施例的情况下,且图6实施例中所描述的各单元为通过软件实现的情况下,执行图6中的切换单元602和添加单元603的功能所需的软件或程序代码存储在存储器702中。
163.通信接口703用于支持设备700进行通信,例如接收或发送报文。
164.示例性的,处理器701可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器701可以用于读取上述存储器702中存储的程序,执行上述图2以及可能的实施方式所述的方法中第一节点所做的操作。
165.本技术实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述图2以及可能的实施方式所述的方法。
166.本技术实施例还公开了一种计算机程序产品,当所述计算机程序产品被计算机读取并执行时,上述图2以及可能的实施方式所述的方法将被执行。
167.本技术实施例还公开了一种计算机程序,当所述计算机程序在计算机上执行时,将会使所述计算机实现上述图2以及可能的实施方式所述的方法。
168.综上所述,本技术通过路由源的切换触发防微环机制(在报文中添加显式路径信息),从而实现了在多源切换场景下的防微环功能,从而避免了网络丢包、时延抖动、报文乱序等问题。
169.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。
170.还应理解,在本技术的各个实施例中,各个过程的序号的大小并不意味着执行顺
序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
171.还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
172.还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
173.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1