一种切换路由的方法及装置与流程

文档序号:26938758发布日期:2021-10-12 14:06阅读:63来源:国知局
一种切换路由的方法及装置与流程

1.本技术涉及通信领域,尤其涉及一种切换路由的方法及装置。


背景技术:

2.在通信网络中,路由器(router,rt)1利用路由信息向第一目的节点发送报文,路由信息的下一跳节点可以为rt2,即rt1向第一目的节点发送报文的下一跳节点为rt2。rt2向第一目的节点发送报文的下一跳节点可以为rt3。正常情况下,报文由rt1依次经rt2、rt3向第一目的节点传输。
3.当rt2和rt3之间的路径不可达时,报文无法经rt2、rt3向第一目的节点传输,如果rt2没有其他途径向第一目的节点传输报文,则rt2需要向rt1发送更新报文,该更新报文用于将无法经过rt2向第一目的节点传输报文的信息通告给rt1。
4.然而,如果rt1依次经rt2、rt3同时向除了第一目的节点以外的其他多个目的节点发送报文,即rt1依次经rt2、rt3的路径上存在多条路由信息,当rt2和rt3之间的路径不可达时,rt2需要分别向rt1发送多条更新报文,用于将无法经过rt2向其他多个目的节点传输报文的信息通告给rt1。
5.rt1根据该多条更新报文,分别对路由表项中相关路由信息的下一跳节点进行修改。由于rt1需要接收多条更新报文才能完成路由切换,因此耗时较长。


技术实现要素:

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.图1为本技术实施例提供的一种通信网络的示意图;
47.图2为本技术实施例提供的一种计算机设备的结构示意图;
48.图3为本技术实施例提供的一种状态通告报文的结构示意图一;
49.图4为本技术实施例提供的切换路由的方法流程示意图;
50.图5为本技术实施例提供的一种状态通告报文的结构示意图二;
51.图6为本技术实施例提供的一种属性字段的结构示意图;
52.图7为本技术实施例提供的一种第一节点的结构示意图;
53.图8为本技术实施例提供的一种第二主节点的结构示意图;
54.图9为本技术实施例提供的计算机程序产品的结构示意图;
55.图10为本技术实施例提供的一种网络系统的结构示意图。
具体实施方式
56.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本
申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
57.在本技术的实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
58.本技术中术语“至少一个”的含义是指一个或多个,本技术中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
59.应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
60.还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中的字符“/”,一般表示前后关联对象是一种“或”的关系。
61.还应理解,在本技术的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
62.应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
63.还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
64.还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0065]
应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
[0066]
参考图1,本技术实施例提供了一种通信网络10。如图1所示,通信网络10可以包括第一节点a1、第二主节点b1、第二备节点b2以及第三节点c1。其中,第一节点a1包括路由信息,该路由信息用于指示第一节点a1向目的节点发送报文,该路由信息中的下一跳节点可以是第二主节点b1,第二备节点b2可以是该路由信息的备份下一跳节点,第三节点c1可以
是第二主节点b1向目的节点发送报文时的下一跳节点。可以理解的是,第二主节点b1和第二备节点b2可以是通信网络中,除源节点和目的节点之外的任意一个转发节点。
[0067]
通常,当通信网络10内的各个节点均为可达状态时,通信网络10可以通过路径a1

b1

c1向目的节点发送报文,这时,第二备节点b2处于备用状态。当第二主节点b1的状态为不可达状态,或者第三节点c1的状态为不可达状态时,通信网络10可以通过路径a1

b2向目的节点发送报文。这里,若节点的状态为可达状态,表示该节点可以正常转发报文。若节点的状态为不可达状态,则表示该节点可能由于通往该节点的链路出现故障、或者该节点自身出现故障等原因,导致该节点无法正常转发报文。当然,导致该节点无法正常转发报文的原因不限于此。
[0068]
本技术实施例提供了一种切换路由的方法,该方法可以应用于上述的通信网络10中。该方法包括:第一节点a1通过确定第二主节点的下一跳节点(即第三节点)的状态为不可达状态,从而将路由表中路由表项的下一跳节点修改为第二备节点,即将路由表中路由表项的下一跳节点从第二主节点切换为第二备节点。通过采用该方法,第一节点a1切换路由的时间缩短,从而提高了报文传输效率。
[0069]
上述通信网络10中所示出的各个节点,可以是具有路由功能的物理机(例如通用计算机),或者是具有路由功能的运行于物理机上的虚拟机,本技术实施例对此不作限定。
[0070]
参考图2,本技术实施例提供了一种计算机设备20。计算机设备20可以是上述通信网络10中的第一节点a1、第二主节点b1、第二备节点b2或第三节点c1中的任意一个节点。计算机设备20包括处理器21、存储器22、通信接口23以及总线24。处理器21、存储器22以及通信接口23之间可以通过总线24连接。
[0071]
处理器21是计算机设备20的控制中心,可以是一个通用中央处理单元(central processing unit,cpu),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
[0072]
作为示例,处理器21可以包括一个或多个cpu,例如图2中所示的cpu 0和cpu 1。
[0073]
存储器22可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0074]
一种可能的实现方式中,存储器22可以独立于处理器21存在。存储器22可以通过总线24与处理器21相连接,用于存储数据、指令或者程序代码。处理器21调用并执行存储器22中存储的指令或程序代码时,能够实现本技术实施例提供的切换路由的方法。
[0075]
另一种可能的实现方式中,存储器22也可以和处理器21集成在一起。
[0076]
通信接口23,用于计算机设备20与其他设备(如第一节点a1、第二主节点b1和第二备节点b2等)通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。通信接口23可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
[0077]
总线24,可以是工业标准体系结构(industry standard architecture,isa)总
线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0078]
需要指出的是,图2中示出的结构并不构成对该计算机设备的限定,除图2所示部件之外,该计算机设备20可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0079]
本技术实施例提供的切换路由的方法可以应用于上述的通信网络10中。其中,用于执行该方法的第一节点和第二主节点均具有状态通告能力。该状态通告能力包括生成或识别状态通告报文的能力,该状态通告能力可以是第一节点和第二主节点协商的。
[0080]
作为示例,第一节点可以在与第二主节点建立邻居时或建立邻居后,向第二主节点发送第一能力协商报文,该第一能力协商报文用于指示第一节点具有状态通告能力。作为响应,第二主节点可以接收到第一能力协商报文。
[0081]
类似的,第二主节点可以在与第一节点建立邻居时或建立邻居后,向第一节点发送第二能力协商报文,该第二能力协商报文用于指示第二主节点具有状态通告能力。作为响应,第一节点可以接收到第二能力协商报文。需要说明的是,本技术实施例中,第一节点向第二主节点发送第一能力协商报文,与第二主节点向第一节点发送第二能力协商报文的时序不作限定,二者之间也不存在因果联系。
[0082]
当第一节点接收到第二能力协商报文,确定第二能力协商报文中的能力代码(capability code)值和自身的能力代码值相同,或者确定第二能力协商报文中的能力代码值和自身的能力代码值具有预设的对应关系,则第一节点和第二主节点协商状态通告能力成功。或者,当第二主节点接收到第一能力协商报文,确定第一能力协商报文中的能力代码值和自身的能力代码值相同,或者确定第一能力协商报文中的能力代码值和自身的能力代码值具有预设的对应关系,则第一节点和第二主节点之间协商状态通告能力成功。其中,本技术实施例对预设的对应关系不作限定。在实际应用中,能力代码值可以通过向互联网数字分配机构(the internet assigned numbers authority,iana)申请得到。对此不作限定。例如,该能力代码值可以是72。
[0083]
上述的状态通告能力定义了状态通告报文的报文内容格式。这样,具有状态通告能力的节点即可根据该状态通告能力所定义的状态通告报文的报文内容格式,生成以及识别状态通告报文。
[0084]
其中,具有上述报文内容格式的报文的类型值,可以通过向iana申请得到,对此不作限定。例如,具有该报文格式的报文的类型值可以是6。
[0085]
作为示例,请参考图3,图3示出了状态通告能力所定义的一种状态通告报文的报文内容格式。如图3所示,该状态通告报文的内容可以包括8个字段。本技术实施例对该8个字段的排序不作限定。具体的,下面对该8个字段所表示的内容做进一步说明。
[0086]
字段1可以用于表示地址族标识符(address family identifier,afi)信息。字段1可以包括2个字节,即16个比特位。例如,若地址族是网际协议版本4(internet protocol version 4,ipv4),iana为ipv4所分配的协议值是1,则字段1可以是01,即0000 0000 0000 0001。
[0087]
字段2可以用于表示子序列地址族标识符(subsequent address family identifier)信息。字段2可以包括1个字节,即8个比特位。例如,若地址族是ipv4,则子地址族可以是ipv4单播地址族,iana为ipv4单播地址族所分配的协议值是1,则字段2可以是1,即0000 0001。
[0088]
字段3,可以用于表示预留(reserved)字段。字段3可以包括1个字节,即8个比特位。
[0089]
字段4可以用于表示下一跳状态更改(next hop state change)。下一跳状态更改可以用于表示:字段5、字段6、字段7以及字段8是用于描述下一跳节点状态的字段。字段4可以用预设值表示下一跳状态更改。字段4可以包括2个字节,即16个比特位。例如,若该预设值是1,则字段4可以是01,即0000 0000 0000 0001,并用于表示下一跳状态更改。
[0090]
字段5可以用于表示下一跳状态长度(length of next hop state)。这里,下一跳状态长度用于表示下一跳网络地址的总的长度。字段5可以包括2个字节,即16个比特位。例如,若下一跳节点的数量是2,一个网络地址的长度是4个字节,则下一跳状态长度是2
×
4,即8个字节,则字段5可以是08,即0000 0000 0000 1000。再例如,若下一跳节点的数量是2,一个网络地址的长度是16个字节,则下一跳状态长度是2
×
16,即32个字节,则字段5可以是32,即0000 0011 0000 0010。
[0091]
字段6可以用于表示下一跳网络地址长度(length of next hop network address)。字段6可以包括1个字节,即8个比特位。例如,若下一跳网络地址长度是4个字节,则字段6可以是4,即0000 0100。若下一跳网络地址长度是16个字节,则字段6可以是16,即0000 0001 0000 0110。
[0092]
字段7可以包括j个下一跳网络地址(network address of next hop),j个下一跳网络地址中的每个下一跳网络地址,可以表示一个下一跳节点。这里,j是大于等于1的整数。这样的话,字段7的长度与下一跳节点的数量有关。
[0093]
字段8可以用于表示状态(state),该状态表示字段7中的每个下一跳网络地址所表示的下一跳节点的状态。该下一跳节点的状态可以是初始状态、可达状态或不可达状态。若字段7包括j个下一跳网络地址,即对应j个下一跳节点,这样的话,字段8可以包括j个状态,该j个状态是该j个下一跳节点当前的状态。此外,初始状态、可达状态或不可达状态可以分别通过预设值表示。字段8可以包括4个字节,作为示例,初始状态可以用0000表示,可达状态可以用0001表示,不可达状态可以用0010表示。
[0094]
在实际应用中,状态通告报文中的字段7和字段8,可以表示为字段7中每个下一跳网络地址的和字段8中的状态的组合。示例性的,以j是2为例,字段7可以是(地址1,地址2),字段8可以是(不可达状态,不可达状态),则状态通告报文中的字段7和字段8可以表示为(地址1,不可达状态,地址2,不可达状态)。
[0095]
以上对第一节点和第二主节点的所具有的状态通告能力进行了说明。下面结合附图,对本技术实施例提供的切换路由的方法进行说明。
[0096]
参考图4,图4示出了本技术实施例提供的切换路由的方法的流程示意图。该方法可以应用于图1所示的通信网络10中。该方法可以包括以下步骤:
[0097]
s101、第二主节点向第一节点发送状态通告报文。
[0098]
可选的,第二主节点可以通过第二主节点的通信接口,向第一节点发送状态通告
报文。
[0099]
作为响应,第一节点接收到该状态通告报文。
[0100]
其中,该状态通告报文是第二主节点在感知到第三节点的状态为不可达状态时,所生成的状态通告报文。该状态通告报文用于指示第三节点的状态为不可达状态。若第二主节点向目的节点发送报文时还包括备份下一跳节点,例如该备份下一跳节点是第四节点,则状态通告报文还用于指示第四节点的状态为不可达状态。其中,第一节点的路由信息用于指示第一节点向该目的地址发送报文。
[0101]
这里,第三节点的状态为不可达状态(即第三节点不可达),可以是由于第二主节点和第三节点之间的路径故障而导致第三节点不可达,或者,可以是由于第三节点自身故障等原因而导致第三节点不可达,对此不作限定。
[0102]
作为示例,第二主节点可以通过双向转发检测机制(bidirectional forwarding detection,bfd)检测第二主节点和第三节点之间的路径,以确定第三节点的状态为不可达状态。或者,第二主节点可以通过内部网关协议(interior gateway protocol,igp)路由感知第三节点的状态为不可达状态。本技术实施例对第二主节点感知第三节点的状态的方式不作具体限定。
[0103]
当第二主节点感知到第三节点的状态为不可达状态,第二主节点可以根据状态通告能力定义的如图3所示的报文内容格式,生成状态通告报文。
[0104]
作为示例,请参考图5,图5示出了第二主节点生成的状态通告报文。状态通告报文的报文头中可以包括报文类型值,参考上述描述,该报文类型值可以是6。状态通告报文的字段1、字段2、字段3以及字段4均可以参考上述图3的描述,这里不再赘述。
[0105]
若第二主节点向上述目的节点发送报文时的下一跳节点如图1所示,只有1个下一跳节点(即第三节点),这种情况下,以网络地址为4字节长度的网络地址为例,第二主节点生成的状态通告报文如图5中的(a)所示。其中,状态通告报文的字段5可以是04,表示第三节点的网络地址长度为4;状态通告报文的字段6可以是4,表示第三节点的网络地址长度为4;状态通告报文的字段7可以是0000,表示第三节点的网络地址是0000;状态通告报文的字段8可以是0010,这里,0010表示第三节点为不可达状态。
[0106]
若第二主节点向上述目的节点发送报文时还包括备份下一跳节点,例如该备份下一跳节点是第四节点。这种情况下,以网络地址为4字节长度的网络地址为例,第二主节点生成的状态通告报文如图5中的(b)所示。其中,状态通告报文的字段5可以是08,表示第第二主节点的下一跳节点的网络地址的总长度是8,即第三节点的网络地址长度与第四节点的网络地址长度之和。状态通告报文的字段6可以是4,表示第二主节点的下一跳节点的网络地址的单位长度是4,即1个下一跳节点的网络地址的长度是4。状态通告报文的字段7和字段8可以是{(0000,0010),(0001,0010)},其中,(0000,0010)表示第三节点网络地址是0000,0010表示第三节点为不可达状态,(0001,0010)表示第四节点的网络地址是0001,0010第四节点为不可达状态。
[0107]
s102、第一节点基于上述状态通告报文,将第一节点的路由信息的下一跳节点切换为第二备节点。
[0108]
具体的,第一节点基于属性信息和上述状态通告报文,将第一节点的路由信息的下一跳节点切换为第二备节点。这里,第二备节点可以是用于指示第一节点向上述目的地
址发送报文的路由信息中唯一的备份下一跳节点。
[0109]
其中,该属性信息用于指示第三节点是第二主节点向上述目的节点发送报文时的下一跳节点。若第二主节点向上述目的节点发送报文时还包括备份下一跳节点,例如该备份下一跳节点是第四节点,则上述属性信息还用于指示第四节点是第二主节点向目的节点发送报文时的备份下一跳节点。
[0110]
可选的,若第一节点的路由信息中包括上述属性信息,则第一节点可以从第一节点的路由信息中获取该属性信息。
[0111]
可选的,第一节点可以接收第二主节点发送的上述属性信息。第一节点接收第二主节点发送的上述属性信息的描述,可以参考下文,这里不予赘述。
[0112]
若第二主节点的下一跳节点只有1个(即第三节点),则第一节点基于属性信息,可以确定第三节点是第二主节点向上述目的节点发送报文时的下一跳节点。第一节点基于状态通告报文,可以确定第三节点的状态为不可达状态。这样的话,第一节点可以将第一节点的路由信息中的下一跳节点修改为第二备节点。也就是说,第一节点将第一节点的路由信息的下一跳节点从第二主节点切换为所述第二备节点。
[0113]
若第二主节点向上述目的节点发送报文时包括还包括备份下一跳节点,例如该备份下一跳节点是第四节点。这种情况下,第一节点基于属性信息,可以确定第三节点是第二主节点向上述目的节点发送报文时的下一跳节点,以及确定第四节点是第二主节点向上述目的节点发送报文时的备份下一跳节点。第一节点基于状态通告报文,可以确定第三节点和第四节点的状态均为不可达状态。这样的话,第一节点可以将第一节点的路由信息中的下一跳节点修改为第二备节点。也就是说,第一节点将第一节点的路由信息的下一跳节点从第二主节点切换为所述第二备节点。
[0114]
需要说明的是,若第一节点的路由信息中的备份下一跳节点除第二备节点之外,还包括其他备份下一跳节点。这时,第一节点根据第二备节点和该其他备份下一跳节点的优先级,确定优先级最高的节点是第二备节点。然后,第一节点将第一节点的路由信息的下一跳节点从第二主节点切换为所述第二备节点。其中,节点的优先级可以基于节点的传输时延的优先级,例如节点的传输时延越小,则该节点的优先级越高或者。或者,节点的优先级也可以是基于经该节点的传输路径的距离的优先级,例如,经某个节点的传输路径的距离越短,则该节点的优先级越高。或者,节点的优先级还可以是基于节点的丢包率的优先级,例如,节点的丢包率越低,则该节点的优先级越高,等等,不再赘述。
[0115]
下面对第一节点接收第二主节点发送的上述属性信息进行说明。
[0116]
在一种可能的实现方式中,第二主节点可以在感知到第三节点的状态为不可达状态时,向第一节点发送上述属性信息。作为响应,第一节点接收到该属性信息。其中,第三节点的状态为不可达状态、以及第二主节点感知第三节点的状态为不可达状态的描述,可以参考上述s101中的描述,此处不予赘述。
[0117]
在另一种可能的实现方式中,第一节点可以接收第二主节点发送的更新报文,该更新报文中包括上述属性信息。具体的,第二主节点可以从与第一节点建立邻居开始,周期性的向第一节点发送更新报文。或者,第二主节点可以从与第一节点建立邻居开始,由不同的触发事件触发,从而向第一节点发送更新报文。作为响应,第一节点接收到包括上述属性信息的更新报文。其中,触发第二主节点发送更新报文的触发事件可以是第二主节点感知
到第二主节点与下一跳节点之间的链路故障,或者可以是第二主节点更新路由表等事件,对此不作限定。
[0118]
需要说明的是,上述属性信息可以是该更新报文中新增的下一跳属性字段。1个下一跳属字段可以用于表示1个下一跳节点的标识(例如网际互连协议(internet protocol,ip)地址)。以第二主节点为例,若第二主节点包括k个下一跳节点,则第二主节点可以在上述更新报文中增加k个下一跳属性字段,这里,k是大于等于1的整数。
[0119]
参考图6,图6示出了更新报文中新增的下一跳属性字段,该下一跳属性字段可以包括2个字节,即16个比特位。如图6所示,新增的下一跳属性字段可以附在现有的更新报文之后,对比不作限定。在实际应用中,下一跳属性字段的类型值可以通过向iana申请得到。作为示例,该类型值可以是37。该类型值用于标识该更新报文中新增的下一跳属性字段。
[0120]
综上,在本技术实施例提供的切换路由的方法中,第一节点基于路由信息的下一跳节点(即第二主节点)发送的状态通告报文,确定第二主节点向目的地址发送报文时的下一跳节点(例如第三节点)的状态均为不可达状态时,将第一节点的路由信息的下一跳节点从第二主节点切换为第二备节点,从而实现了第一节点路由信息的快速切换。这样,即使第一节点经第二主节点向不同目的地址发送报文的路由信息的数量庞大,第一节点也可以快速完成路由的切换,从而提高了第一节点的路由切换性能。
[0121]
上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0122]
本技术实施例可以根据上述方法示例对第一节点和第二主节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0123]
如图7所示,图7示出了本技术实施例提供的第一节点70的结构示意图。第一节点70应用于通信网络中,该通信网络还包括第二主节点、第二备节点以及第三节点。其中,第一节点70包括路由信息,该路由信息用于指示第一节点70向目的节点发送报文,该路由信息中的下一跳节点是第二主节点,第三节点是第二主节点向目的节点发送报文时的下一跳节点。第一节点70用于执行上述的路由切换的方法,例如用于执行图4所示的方法。其中,第一节点70包括接收单元71和切换单元72。
[0124]
接收单元71,用于接收来自第二主节点的状态通告报文,该状态通告报文用于指示第三节点的状态为不可达状态。切换单元72,用于基于该状态通告报文,将路由信息的下一跳节点切换为第二备节点。
[0125]
作为示例,结合图4,接收单元71可以用于响应s101,切换单元72可以用于执行s102。
[0126]
可选的,第一节点70还包括:发送单元73,用于在接收单元71接收来自第二主节点
的状态通告报文之前,向第二主节点发送第一能力协商报文,该第一能力协商报文用于指示第一节点70具有状态通告能力。接收单元71,还用于在接收来自第二主节点的状态通告报文之前,接收来自第二主节点的第二能力协商报文,该第二能力协商报文用于指示第二主节点具有状态通告能力,这里,第二能力协商报文的能力代码值和第一能力协商报文的能力代码值具有预设的对应关系。其中,状态通告能力包括生成或识别状态通告报文的能力。
[0127]
可选的,上述路由信息包括属性信息,该属性信息用于指示第三节点是第二主节点向目的节点发送报文时的下一跳节点。
[0128]
可选的,接收单元71,还用于在接收来自第二主节点的状态通告报文之前,接收来自第二主节点发送的属性信息,该属性信息用于指示第三节点是第二主节点向目的节点发送报文时的下一跳节点。第一节点70还包括:更新单元74,用于基于该属性信息,更新上述路由信息,更新后的路由信息包括属性信息。
[0129]
可选的,上述通信网络还包括第四节点,该第四节点是第二主节点向目的节点发送报文时的备份下一跳节点,这时,上述状态通告报文还用于指示第四节点的状态为不可达状态;上述属性信息还用于指示第四节点是第二主节点向目的节点发送报文时的备份下一跳节点。
[0130]
可选的,上述第三节点是第二主节点向目的节点发送报文时唯一的下一跳节点。
[0131]
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种第一节点70的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
[0132]
作为示例,结合图2,第一节点70中的切换单元72和更新单元74实现的功能可以通过图2中的处理器21执行图2中的存储器22中的程序代码实现。接收单元71和发送单元73实现的功能可以通过图2中通信接口23实现。
[0133]
如图8所示,图8示出了本技术实施例提供的第二主节点80的结构示意图。第二主节点80应用于通信网络中,该通信网络还包括第一节点、第二备节点以及第三节点。其中,第一节点包括路由信息,该路由信息用于指示第一节点向目的节点发送报文,该路由信息中的下一跳节点是第二主节点80,第三节点是第二主节点80向目的节点发送报文时的下一跳节点。第二主节点80用于执行上述的路由切换的方法,例如用于执行图4所示的方法。其中,第二主节点80包括生成单元81和发送单元82。
[0134]
生成单元81,用于生成状态通告报文,该状态通告报文用于指示第三节点的状态为不可达状态。发送单元82,用于向第一节点发送该状态通告报文,以使第一节点基于状态通告报文,将路由信息的下一跳节点切换为第二备节点。
[0135]
作为示例,结合图4,发送单元82可以用于执行s101。
[0136]
可选的,发送单元82,还用于在向第一节点发送状态通告报文之前,向第一节点发送第二能力协商报文,该第二能力协商报文用于指示第二主节点80具有状态通告能力。第二主节点80还包括:接收单元83,用于在发送单元82向第一节点发送状态通告报文之前,接收来自第一节点的第一能力协商报文,该第一能力协商报文用于指示第一节点具有状态通告能力,这里,第一能力协商报文的能力代码值和第二能力协商报文的能力代码值具有预设的对应的关系。其中,状态通告能力包括生成或识别状态通告报文的能力。
[0137]
可选的,上述路由信息包括属性信息,该属性信息用于指示第三节点是第二主节点80向目的节点发送报文时的下一跳节点。
[0138]
可选的,生成单元81,还用于在发送单元82向第一节点发送状态通告报文之前,生成属性信息,该属性信息用于指示第三节点是第二主节点80向目的节点发送报文时的下一跳节点。发送单元82,还用于向第一节点发送该属性信息,以使第一节点基于属性信息更新路由信息,更新后的路由信息包括属性信息。
[0139]
可选的,上述通信网络还包括第四节点,该第四节点是第二主节点80向目的节点发送报文时的备份下一跳节点,这时,上述状态通告报文还用于指示第四节点的状态为不可达状态;上述属性信息还用于指示第四节点是第二主节点80向目的节点发送报文时的备份下一跳节点。
[0140]
可选的,上述第三节点是第二主节点80向目的节点发送报文时唯一的下一跳节点。
[0141]
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种第二主节点80的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
[0142]
作为示例,结合图2,第二主节点80中的生成单元81实现的功能可以通过图2中的处理器21执行图2中的存储器22中的程序代码实现。发送单元82和接收单元83实现的功能可以通过图2中通信接口23实现。
[0143]
本技术另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在第一节点或第二主节点上运行时,该第一节点或第二主节点执行上述方法实施例所示的方法流程中该第一节点或第二主节点执行的各个步骤。
[0144]
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
[0145]
图9示意性地示出本技术实施例提供的计算机程序产品的概念性局部视图,所述计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。
[0146]
在一个实施例中,计算机程序产品是使用信号承载介质90来提供的。所述信号承载介质90可以包括一个或多个程序指令,其当被一个或多个处理器运行时可以提供以上针对图4描述的功能或者部分功能。因此,例如,参考图4中s101~s102的一个或多个特征可以由与信号承载介质90相关联的一个或多个指令来承担。此外,图9中的程序指令也描述示例指令。
[0147]
在一些示例中,信号承载介质90可以包含计算机可读介质91,诸如但不限于,硬盘驱动器、紧密盘(cd)、数字视频光盘(dvd)、数字磁带、存储器、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等等。
[0148]
在一些实施方式中,信号承载介质90可以包含计算机可记录介质92,诸如但不限于,存储器、读/写(r/w)cd、r/w dvd、等等。
[0149]
在一些实施方式中,信号承载介质90可以包含通信介质93,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。
[0150]
信号承载介质90可以由无线形式的通信介质93(例如,遵守ieee 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令可以是,例如,计算机可执行
指令或者逻辑实施指令。
[0151]
在一些示例中,诸如针对图4中描述的第一节点或第二主节点可以被配置为,响应于通过计算机可读介质91、计算机可记录介质92、和/或通信介质93中的一个或多个程序指令,提供各种操作、功能、或者动作。
[0152]
参考图10,本技术实施例还提供一种网络系统100。该网路系统100包括第一节点101和第二主节点102。其中,第一节点101和第二主节点102的相关描述及有益效果可以参考上文,这里不再赘述。
[0153]
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
[0154]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0155]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1