CN117081984B - 一种路由调整方法、装置及电子设备 - Google Patents
一种路由调整方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117081984B CN117081984B CN202311272277.5A CN202311272277A CN117081984B CN 117081984 B CN117081984 B CN 117081984B CN 202311272277 A CN202311272277 A CN 202311272277A CN 117081984 B CN117081984 B CN 117081984B
- Authority
- CN
- China
- Prior art keywords
- path
- interface
- group
- forwarding
- congestion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000000872 buffer Substances 0.000 claims description 99
- 230000006855 networking Effects 0.000 claims description 26
- 241000238633 Odonata Species 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/18—Loop-free operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种路由调整方法、装置及电子设备。本实施例中,假若转发权重最高的第一路径(也即数据流的最优转发路径)发生拥塞,并非直接弃用该第一路径,而是动态调整该第一路径的转发权重、以及其它非最优路径(转发权重低于所述第一路径的其它路径)的转发权重,使得将第一路径和其它路径配合转发原本通过第一路径转发的数据流,提高链路带宽利用率。
Description
技术领域
本申请涉及网络通信领域,尤其涉及一种路由调整方法、装置及电子设备。
背景技术
自适应路由是一种根据网络拓扑和流量负载变化进行动态路由决策的技术。自适应路由在具有实现时,需要维护一张最优路径(best path)表,用于存放最优路径。但是,如果best path表存放的最优路径发生异常比如拥塞等情况时,则该整个最优路径将完全不再用于报文转发。
发明内容
有鉴于此,本申请实施例提供一种路由调整方法、装置及电子设备,以在报文的最优路径发生异常时,通过该最优路径和除该最优路径之外的其它非最优路径配合转发原本通过该最优路径的报文。
根据本申请实施例的第一方面,提供一种路由调整方法,所述方法应用于拓扑组网中的第一网络节点,所述拓扑组网由多个节点组组成,同一节点组内任两个网络节点之间互联且不同节点组内的网络节点之间互联;第一网络节点处于第一节点组中;所述方法包括:
第一网络节点作为任一数据流进入所述拓扑组网的入节点,确定用于转发所述数据流的多路径组;多路径组包括以下路径:至少一条用于转发所述数据流的最优路径、至少一条用于转发所述数据流的非最优路径;非最优路径是指除最优路径之外且无环路的路径;多路径组中每一路径被设置了对应的转发权重,最优路径的转发权重大于非最优路径的转发权重;多路径组具有相关联的远端节点组,远端节点组是指所述数据流的目的地所接入的网络节点所处的节点组;
第一网络节点通过第一接口接收同一节点组中第二网络节点发送的路由拥塞通知ARN;ARN是由第二网络节点在检测到本地第二接口发生拥塞时发送的;ARN携带第二节点组、拥塞参数;第二节点组是指发生拥塞的第二接口连接的对端网络节点所处的节点组;所述拥塞参数用于指示第二接口发生拥塞的原因;
第一网络节点从各数据流的各多路径组中查找到目标多路径组,所述目标多路径组相关联的远端节点组为所述第二节点组;基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重;第一路径是第一接口所处的路径,第一路径调整后的转发权重小于调整前的转发权重,所述其它路径调整后的转发权重大于调整前的转发权重,以使第一路径和所述其它路径配合转发原本通过所述第一路径转发的数据流。
根据本申请实施例的第二方面,提供一种路由调整装置。所述装置应用于拓扑组网中的第一网络节点;所述拓扑组网由多个节点组组成,同一节点组内任两个网络节点之间互联且不同节点组内的网络节点之间互联;第一网络节点处于第一节点组中;该装置包括:
确定单元,用于再第一网络节点作为任一数据流进入所述拓扑组网的入节点时,确定用于转发所述数据流的多路径组;多路径组包括以下路径:至少一条用于转发所述数据流的最优路径、至少一条用于转发所述数据流的非最优路径;非最优路径是指除最优路径之外且无环路的路径;多路径组中每一路径被设置了对应的转发权重,最优路径的转发权重大于非最优路径的转发权重;多路径组具有相关联的远端节点组,远端节点组是指所述数据流的目的地所接入的网络节点所处的节点组;
接收单元,用于通过第一网络节点的第一接口接收同一节点组中第二网络节点发送的路由拥塞通知ARN;ARN是由第二网络节点在检测到本地第二接口发生拥塞时发送的;ARN携带第二节点组、拥塞参数;第二节点组是指发生拥塞的第二接口连接的对端网络节点所处的节点组;所述拥塞参数用于指示第二接口发生拥塞的原因;
调整单元,用于从各数据流的各多路径组中查找到目标多路径组,所述目标多路径组相关联的远端节点组为所述第二节点组;基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重;第一路径是第一接口所处的路径,第一路径调整后的转发权重小于调整前的转发权重,所述其它路径调整后的转发权重大于调整前的转发权重,以使第一路径和所述其它路径配合转发原本通过所述第一路径转发的数据流。
根据本申请实施例的第二方面,提供一种电子设备,电子设备包括:
处理器和机器可读存储介质,机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如上所述的方法。
本申请实施例提供的技术方案可以包括以下有益效果:
在本实施例中,假若转发权重最高的第一路径(也即数据流的最优转发路径)发生拥塞,并非直接弃用该第一路径,而是动态调整该第一路径的转发权重、以及其它非最优路径(转发权重低于所述第一路径的其它路径)的转发权重,使得将第一路径和其它路径配合转发原本通过第一路径转发的数据流,提高链路带宽利用率。
附图说明
图1是本申请实施例示出的蜻蜓拓扑组网示意图;
图2是本申请实施例示出的蜻蜓拓扑组网应用示意图;
图3是本申请实施例示出的方法流程图;
图4是本申请实施例示出的ARN转发示意图;
图5是本申请实施例示出的软件转发表项示意图;
图6是本申请实施例示出的硬件转发表项示意图;
图7是本申请实施例示出的软硬件转发表项示意图;
图8是本申请实施例提供的步骤303实现流程图;
图9是本申请实施例示出的装置结构图;
图10是本申请实施例示出的装置的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面先对本申请实施例提供的网络场景进行描述:
本实施例可应用于指定拓扑组网比如蜻蜓拓扑(dragonfly)组网。在本实施例中,指定拓扑组网由多个节点组(Group)组成。节点组间和节点组内的网络节点均建立全连接(Full-mesh)关系,即:每对节点组通过至少一条链路连接以实现该对节点组中的网络节点互联,每一节点组内的任一个网络节点都与该节点组内其他网络节点直接连接。以蜻蜓拓扑组网为例,蜻蜓拓扑组网由多个节点组(简称G)组成,如图1所示的蜻蜓拓扑组网由节点组0(简称G0)、节点组1(简称G1)、节点组2(简称G2)…节点组8(简称G8)组成。在本实施例中,图1所示的节点组间和节点组内的网络节点均建立全连接,即:每对节点组通过一条链路连接,以实现该对节点组中的网络节点互联,且每一节点组内的任一个网络节点都与该节点组内其他网络节点互连。
在上述指定拓扑组网比如蜻蜓拓扑组网内,被指定作为数据流的入节点会针对该数据流确定对应的多路径组。这里,多路径组可包括以下路径:按最优路径算法计算的用于转发该数据流的最优路径、以及除该最优路径之外的无环路的其它路径(简称非最优路径)。可选地,多路径组中的最优路径可以有1到多条(比如等价最优路径),上述无环路的非最优路径可以有1到多条,本实施例并不具体限定。
另外,作为一个实施例,上述多路径组中的最优路径和无环路的非最优路径均可以达到同一个远端节点组中的网络节点。这里的远端节点组可为上述数据流的目的地比如主机所接入的网络节点所处的节点组。也即,任一数据流的多路径组与该数据流的远端节点组对应。
下面以图2所示的蜻蜓拓扑组网为例描述数据流的多路径组:
如图2所示,主机H1与节点组1(简称G1)中的网络节点(简称节点1)相连,主机H2和H3与节点组3(简称G3)中的网络节点相连,主机H4与节点组4(简称G4)中的网络节点相连。以主机H1到主机H2或主机H3方向的数据流1-3为例,假若节点组1(简称G1)中的节点1为该数据流1-3进入蜻蜓拓扑组网的入节点,则节点1会建立该数据流1-3的多路径组。
可选地,节点1经过路由计算,确定出数据流1-3的多路径组包括如下两条路径:路径1(具体为数据流1-3的最优路径)和路径2(具体为数据流1-3的无环路的非最优路径)。如数据流1-3的目的地比如主机H2或主机H3是连接节点组3(简称G3)中的网络节点,则节点组3(简称G3)作为数据流1-3的远端节点组与数据流1-3的多路径组具有对应关系。最终实现了如何确定数据流1-3的多路径组。需要说明的是,作为一个实施例,当多个数据流的目的地比如目的IP地址或目的IP网段相同时,这些数据流可共享同一多路径组。
在本实施例中,多路径组中任一路径都具有对应的转发权重。任一路径的转发权重用于指示该路径被用于数据流转发的优先级,最优路径的转发权重大于非最优路径的转发权重。初始,多路径组中任一路径的转发权重,依赖于该路径是否为用于转发数据流的最优路径确定。其中,对于多路径组中的任一路径,若该路径为用于转发数据流的最优路径,则基于多路径组中用于转发该数据流的最优路径的总数量确定该路径的转发权重,而若该路径不为用于转发该数据流的最优路径,则该路径的转发权重可直接确定为设定值比如0。
以数据流1-3的多路径组为例,初始,路径1为用于转发该数据流1-3的最优路径,且数据流1-3的最优路径只有该路径1,则可确定该路径1的权重为第一值比如1。当然,若数据流1-3的最优路径有k条(k大于1),则可确定该路径1的权重为第二值比如(1/k)。数据流1-3的多路径组中,路径2不为用于转发该数据流1-3的最优路径,则可确定该路径的转发权重为设定值比如0。
基于如上描述,下面对本申请实施例提供的方法进行描述:
参见图3,图3为本申请实施例提供的方法流程图。该流程可应用于上述拓扑组网中的网络节点(为便于描述,该网络节点记为第一网络节点)。假若第一网络节点处于第一节点组中。如图3所示,该流程可包括以下步骤:
步骤301,第一网络节点作为任一数据流进入上述拓扑组网的入节点,确定用于转发该数据流的多路径组。
在本实施例中,多路径组具体如上描述,这里不再赘述。
步骤302,第一网络节点通过本地第一接口接收同一节点组中第二网络节点发送的路由拥塞通知。
在本实施例中,任一节点组中的每个网络节点为本地组间互联接口设置拥塞检测参数。这里,任一节点组中的网络节点的本地组间互联接口,是指该网络节点本地连接其它节点组的接口。比如图2所示网络节点2(简称节点2)的接口1连接G3,则节点2的接口1即为节点2本地组间互联接口。
另外,在本实施例中,上述拥塞检测参数可包括带宽占用水平和缓冲区占用水平,分别设置上限阈值和下限阈值(上限阈值大于下限阈值)。
基于此,本实施例中,任一节点组中的每个网络节点对本地每一组间互联接口当前已占用的带宽水平和缓冲区水平分别进行检测,根据检测结果综合判决是否拥塞,比如:针对每一组间互联接口,若检测出该组间互联接口当前已占用的带宽水平和缓冲区水平中的至少一个大于对应的上限阈值,则确定该组间互联接口发生拥塞,反之,检测出该组间互联接口当前已占用的带宽水平和缓冲区水平均小于对应的下限阈值,则确定该组间互联接口未发生拥塞。
在本实施例中,任一节点组中的任一网络节点在检测到本地一组间互联接口发生拥塞时,比如图4所示的节点2检测到本地作为组间互联接口的接口2发生拥塞,其会向同一节点组中其它网络节点发送路由拥塞通知(也称自适应路由通知(ARN:Adaptive RoutingNotification))。在本实施例中,ARN可携带该发生拥塞的组间互联接口所连接的节点组、以及拥塞参数。图4示出了ARN的转发。
在本实施例中,任一节点组中的任一网络节点发送的ARN为UDP报文,目的IP地址为指定组播地址比如224.0.0.2,以保证同一组中其它网路节点收到该ARN。另外,ARN的UDP目的端口为指定端口比如53344。可以看出,本实施例中,ARN的报文格式简单,便于硬件实现,并且只需要单跳通知,没有ARN报文乱序的问题。任一节点组中的任一网络节点在检测到本地一组间互联接口拥塞时直接发送ARN,不用通过路由协议来发送,实时性和效率都高。
基于如上描述,在本步骤302中,ARN是由第二网络节点在检测到本地第二接口发生拥塞时发送的;ARN携带第二节点组、拥塞参数;第二节点组是指发生拥塞的第二接口连接的对端网络节点所处的节点组,第二接口为第二网络节点连接第二节点组的组间互联接口,第二节点组不同于第一节点组。
另外,在本实施例中,拥塞参数用于指示第二接口发生拥塞的拥塞原因。
在本实施例中,任一节点组中的任一网络节点比如上述的第一网络节点在接收到ARN时,其会执行如下步骤303的描述。
步骤303,第一网络节点从各数据流的各多路径组中查找到目标多路径组,目标多路径组相关联的远端节点组为第二节点组;并基于上述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于第一路径的其它路径的转发权重;第一路径是第一接口所处的路径,第一路径调整后的转发权重小于调整前的转发权重,其它路径调整后的转发权重大于调整前的转发权重,以使第一路径和其它路径配合转发原本通过第一路径转发的数据流。
可以看出,在本实施例中,假若转发权重最高的第一路径(也即数据流的最优转发路径)发生拥塞时,并非直接弃用该第一路径,而是动态调整该第一路径的转发权重、以及其它非最优路径(转发权重低于所述第一路径的其它路径)的转发权重,使得将第一路径和其它路径配合转发原本通过第一路径转发的数据流,提高链路带宽利用率。
至于如何基于拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于第一路径的其它路径的转发权重,下文会举例描述,这里暂不赘述。
至此,完成图3所示流程。
通过图3所示流程可以看出,在本实施例中,假若转发权重最高的第一路径(也即数据流的最优转发路径)发生拥塞,并非直接弃用该第一路径,而是动态调整该第一路径的转发权重、以及其它非最优路径(转发权重低于所述第一路径的其它路径)的转发权重,使得将第一路径和其它路径配合转发原本通过第一路径转发的数据流,提高链路带宽利用率。
需要说明的是,数据流的路由调整在具体实现时,还需要借助于转发表项。可选地,本实施例中,任一数据流的入节点在确定出该数据流的多路径组后,会生成该多路径组中各路径对应的软件转发表项。其中,多路径组中各路径对应的软件转发表项均关联该多路径组对应的远端节点组。
可选地,在本实施例中,多路径组中每一路径对应的软件转发表项,用于描述该路径的转发信息。这里,每一路径的转发信息至少包括:路径标识、路径的转发权重。以数据流1-3的多路径组为例,图5举例示出了数据流1-3的多路径组中路径1和路径2分别对应的软件转发表项。
图5示出的各路径对应的软件转发表项中“:”后的数值,表示路径的转发权重。比如路径1对应的软件转发表项中,“:1”表示路径1的转发权重(比如表示分担数据流1-3的100%的流量),路径2对应的软件转发表项中,“:0“表示路径2的转发权重(比如表示不采用路径2转发数据流1-3)。
任一数据流的入节点在生成该数据流的多路径组中各路径对应的软件转发表项后,还可以进一步将各路径对应的软件转发表项下载到硬件,得到上述数据流的硬件转发表项,以指导节点转发数据流。可选地,作为一个实施例,针对上述多路径组中每一路径,假若该路径的转发权重不为上述设定值,则可将该路径对应的软件转发表项下发至硬件,得到硬件转发表项。而若该路径的转发权重为上述设定值,则表示该路径不用于转发,则为节省硬件资源,可禁止下发该路径对应的转发表项至硬件。
另外,为了避免多路径组中的路径发生变化比如从多变少时发生丢包,本实施例可将上述数据流的硬件转发表项的数量设置为较大的固定数量L(称之为“多路径组”的最大表项数)比如128。也即,本实施例可保证上述数据流的硬件转发表项的数量为L条。
仍以数据流1-3为例,由于数据流1-3的多路径组中路径1的转发权重不为设定值,而路径2的转发权重为设定值,则本实施例可只下发路径1对应软件转发表项至硬件,得到硬件转发表项(对应路径1)。再结合上述L的描述,则该硬件转发表项会重复L条比如128条,具体如图6所示。
当然,需要说明的是,上述步骤303在调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重后,还可以进一步执行以下步骤:针对目标多路径组中每一被调整的路径,若该路径的转发权重从原来的设定值调整为其它值,则将该路径对应的软件转发表项下发至硬件,得到该路径对应的硬件转发表项。仍以数据流1-3为例,假若按照上述步骤303调整了数据流1-3的多路径组中路径1和路径2的转发权重,路径2的转发权重不再为设定值比如0,具体如图7所示的软件转发表项。则本实施例可进一步下发路径2对应的软件转发表项至硬件,得到硬件转发表项(对应路径2)。再结合上述L的描述,则最终数据流1-3的硬件转发表项会出现路径1的硬件转发表项为64条,路径2的硬件转发表项为64条,具体如图7所示的硬件转发表项。
需要说明的是,基于上述L的描述,则可能会出现数据流的每条路径的硬件转发表项的数量不是整数,比如,以L为128为例,原本存在数据流1-3的两条路径的硬件转发表项,如果后续经过转发权重调整后再下发一条路径的硬件转发表项,则结合上述L的描述,这三条路径的硬件转发表项的数量不为整数。此时可适应调整,比如路径1的硬件转发表项为40条,路径2的硬件转发表项为44条、路径3的硬件转发表项为44条,只要保证数据流1-3的所有路径的硬件转发表项的数量条总和为L比如128条即可。
下面对上述步骤303进行描述:
参见图8,图8为本申请实施例提供的步骤303实现流程图。如图8所示,该流程可包括以下步骤:
步骤801,基于拥塞参数所指示的拥塞原因,确定与拥塞原因相匹配的调整系数。
作为一个实施例,上述拥塞参数可包括:第二接口被设置的最大带宽、第二接口截至当前已占用的带宽、第二接口被设置的最大缓冲区、第二接口截至当前已占用的缓冲区。
其中,当第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,则确定拥塞原因为第二接口已用带宽超过阈值;当第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则确定拥塞原因为第二接口已用缓冲区超过阈值;当第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,且第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则确定拥塞原因为第二接口已用带宽超过阈值且第二接口已用缓冲区超过阈值。
基于此,本步骤801中,基于拥塞参数所指示的拥塞原因,确定与拥塞原因相匹配的调整系数可包括:
步骤a1,若拥塞原因为第二接口已用带宽超过阈值,则依据第二接口被设置的最大带宽、第二接口截至当前已占用的带宽,确定与拥塞原因相匹配的调整系数。比如,按照下式确定调整系数:F=第二接口已用带宽/第二接口被设置的最大带宽;F表示调整系数。
步骤a2,若拥塞原因为所述第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大缓冲区、第二接口截至当前已占用的缓冲区,确定与拥塞原因相匹配的调整系数。比如按照下式确定调整系数:F=第二接口已用缓冲区/第二接口被设置的最大缓冲区;F表示调整系数。
步骤a3,若拥塞原因为第二接口已用带宽超过阈值以及第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大带宽、第二接口截至当前已占用的带宽,以及第二接口被设置的最大缓冲区、第二接口截至当前已占用的缓冲区,确定与拥塞原因相匹配的调整系数。比如,按照下式确定调整系数1:F1=第二接口已用缓冲区/第二接口被设置的最大缓冲区;F1表示调整系数1。按照下式确定调整系数2:F2=第二接口已用带宽/第二接口被设置的最大带宽;F2表示调整系数2。从F1和F2中选择取值最大的作为与拥塞原因相匹配的调整系数。
步骤802,基于所述调整系数、所述第一接口的带宽和/或缓冲区当前被所述目标多路径组对应的数据流占用的占用情况,调整目标多路径组中第一路径以及其它路径的转发权重。
在本实施例中,任一数据流的入节点会维护本地已使能了自适应路由功能的接口对应的接口状态表。接口状态表包括接口的带宽占用量。作为示例,以图2中节点1的接口1、接口2、接口3和接口4为例,节点1的接口状态表如表1所示。
表1
基于此,为了便于调整路径的转发权重,借助于上述接口状态对应表和多路径组中各路径对应的硬件转发表项,本实施例细分出每一接口的带宽和/或缓冲区被各个多路径组(具体是各个多路径组对应的数据流)占用的占用情况。比如,以图2中节点1为例,假若一数据流(比如数据流1)的多路径组中各路径的软件转发表项的出接口分别为接口1、接口2、接口3和接口4,以带宽占用为例,表2举例示出接口1至接口4的带宽被各多路径组占用的情况:
表2
表中,M表示最优路径,N表示非最优路径;“:”后的数字表示接口被占用的带宽。
基于如上描述,则本实施例中,上述步骤802具体可包括:
步骤b1,若拥塞原因为第二接口已用带宽超过阈值,则基于第一接口当前被目标多路径组对应的数据流所占用的带宽、以及调整系数,确定待从第一接口分出的与目标多路径组对应的数据流的数据量;从目标多路径组中的转发权重低于第一路径的各路径中选择目标路径;目标路径的当前可用带宽支持所述数据量。之后执行步骤b4。
可选地,步骤b1具体实现时,可先计算第一接口当前被目标多路径组占用的带宽以及调整系数的乘积,之后将计算结果作为待从第一接口分出的与目标多路径组对应的数据流的数据量。
比如,可设置接口1的可选比例为60%、50%、40%、30%、20%、10%,按照设定顺序轮询可选比例,将轮询到的比例比如将60%作为指定比例,计算第一接口当前被目标多路径组占用的带宽的指定比例与调整系数的乘积,得到计算结果。之后,检查目标多路径组中的转发权重低于第一路径的各路径中(其包含了本地除第一接口之外的各接口),是否存在当前可用带宽满足上述数据量(也即在增加上述数据流后不会超过对应的带宽阈值)的路径,如果是,将该存在的一条路径作为目标路径,结束当前流程,否则,判断接口1的可选比例中是否还存在未被轮询到的比例,如果是,继续轮询接口1的可选比例,返回将轮询到的比例比如将60%作为指定比例的步骤。
步骤b2,若拥塞原因为第二接口已用缓冲区超过阈值,则基于第一接口当前被目标多路径组对应的数据流所占用的缓冲区、以及调整系数,确定待从第一接口分出的与目标多路径组对应的数据流的数据量;从目标多路径组中的转发权重低于所述第一路径的各路径中选择目标路径;目标路径的当前可用缓冲区支持桑述数据量。之后执行步骤b4。
本步骤b2与上述步骤b1类似,不再赘述。
步骤b3,若拥塞原因为第二接口已用带宽超过阈值以及第二接口已用缓冲区超过阈值,则基于第一接口当前被目标多路径组对应的数据流所占用的带宽、第一接口当前被目标多路径组对应的数据流所占用的缓冲区、以及调整系数,确定待从第一接口分出的与所述目标多路径组对应的数据流的数据量;从目标多路径组中的转发权重低于第一路径的各路径中选择目标路径;目标路径的当前可用缓冲区和当前可用带宽支持所述数据量。之后执行步骤b4。
本步骤b3与上述步骤b1类似,不再赘述。需要说明的是,步骤b1至步骤b3并未有固定的时间先后顺序。
步骤b4,基于上述数据量,调整所述第一路径的转发权重,以及所述目标路径的转发权重。
以拥塞原因为第二接口已用带宽超过阈值为例,则可计算第一接口当前被目标多路径组占用的带宽与上述数据量所占用的带宽的差值;基于所述差值以及分担至目标路径的数据量调整所述第一路径的转发权重,以及所述目标路径的转发权重。比如,若上述差值与数据量所占用的带宽相同,则在目标多路径组中仅存在第一路径和目标路径的前提下,可设置第一路径和目标路径的权重相同,比如都是50%,以指示后续第一路径和目标路径分担转发数据流。当然,在目标多路径组中还存在除第一路径和目标路径之外的其它路径的前提下,可以自适应调整,本实施例并不具体限定。
至此,完成图8所示流程。
通过图8所示流程,最终实现了如何调整目标多路径组中第一路径以及其它路径的转发权重。
下面结合图2所示的组网,通过一个具体实施例描述本申请实施例提供的方法:
为了便于理解,假设各接口的最大带宽为1000kbps、缓冲区最大值为1000字节;接口带宽占用量的上限阈值为800kbps、下限阈值为200 kbps;接口缓冲区占用量的上限阈值为800字节、下限阈值为200字节。以如图2所示的节点1的接口1、接口2、接口3和接口4为例,节点1的接口状态表如表3示:
表3
节点1中各接口1被各多路径组对应的数据流占用的占用情况如表4所示:
表4
表4中,M表示最优路径,N表示非最优路径;“:”后的数字表示路径在接口上的带宽占用。
如图2所示,当节点1通过本地接口1收到节点2发送的ARN。节点2发送的ARN中至少携带:节点2上发生拥塞的接口1连接的对端节点所在的节点组(也就是G3)、以及拥塞参数。
可选地,这里的拥塞参数可包括:
1)端口总带宽1000;
2)端口已用带宽833;
3)端口缓冲区最大值1000;
4)端口已用缓冲区600。
该拥塞参数指示拥塞原因为接口已用带宽超过阈值。
节点1根据拥塞原因计算调整系数F:F=833/1000= 0.833。之后,节点1根据收到ARN的接口1获知接口1连接的节点(节点2)的下游接口(即节点2的接口1)发生拥塞,再根据ARN中携带的G3找到远端节点组为该G3的多路径组。假设本例中找到一个多路径组,也就是表4所示的多路径组1。
之后,节点1对找到的多路径组1,依次遍历此多路径组1中的最优路径(接口1所在的路径)被设定的可选比例,假若遍历到可选比例60%,则将60%作为指定比例,将表4所示的接口1已被占用的300kbps乘以指定比例60%,再将计算结果乘以上述调整系数0.833,最终得到待从接口1分出的与多路径组1对应的数据流1的数据量(150kbps)。之后,节点1检查多路径组1中的非最优路径即接口2所在的路径的当前可用带宽支持上述数据量。如表3所示,接口2的带宽占用量为600kbps,再加上上述的150kbps,可以得到接口2的带宽占用量后续可能为750kbps,而750kbps低于上述带宽的上限阈值,即接口2的当前可用带宽支持上述数据量,确定接口2所在的路径为目标路径,结束目标路径的选择流程。而若接口2的当前可用带宽不支持上述数据量,则继续遍历此多路径组1中的最优路径(接口1所在的路径)被设定的可选比例,返回将遍历到可选比例作为指定比例的步骤。
仍以上述接口2的当前可用带宽支持上述数据量为例,则按照上面描述,表4所示的接口1已被上述多路径组1占用的带宽可更新为:300kbps-150kbps=150kbps,而表4所示的接口2已被上述多路径组1占用的带宽可更新为:0+150kbps=150kbps。也即,接口1和接口2分别承载了多路径组1对应的数据流的50%的流量,从而得到接口1所在的路径1和接口2所在的路径2的转发权重比为1:1,比如都为50%。由于路径2之前的转发权重为设定值0,路径2对应的软件转发表项并没有下发至硬件,具体如图6所示。而当路径2的转发权重调整后,其转发权重不再为设定值0,具体如图7所示的软件转发表项。则可进一步下发路径2对应的软件转发表项至硬件,最终如图7所示的硬件转发表项。
需要说明的是,在本实施例中,一旦上述节点2检测到接口1从拥塞转变为正常,作为一个实施例,还可执行以下恢复操作:将基于该拥塞而发生调整的各路径的转发权重恢复为之前未被调整的转发权重,同时,也可将当前硬件转发表项更新为拥塞前的硬件转发表项。当然,作为另一个实施例,上述节点2检测到接口1从拥塞转变为正常时,也可不执行上述恢复操作,以节省资源。
以上对本申请实施例提供的方法进行了描述,下面对本申请实施例提供的装置进行描述:
参见图9,图9为本申请实施例提供的装置结构图。所述装置应用于拓扑组网中的第一网络节点;所述拓扑组网由多个节点组组成,同一节点组内任两个网络节点之间互联且不同节点组内的网络节点之间互联;第一网络节点处于第一节点组中;该装置包括:
确定单元,用于再第一网络节点作为任一数据流进入所述拓扑组网的入节点时,确定用于转发所述数据流的多路径组;多路径组包括以下路径:至少一条用于转发所述数据流的最优路径、至少一条用于转发所述数据流的非最优路径;非最优路径是指除最优路径之外且无环路的路径;多路径组中每一路径被设置了对应的转发权重,最优路径的转发权重大于非最优路径的转发权重;多路径组具有相关联的远端节点组,远端节点组是指所述数据流的目的地所接入的网络节点所处的节点组;
接收单元,用于通过第一网络节点的第一接口接收同一节点组中第二网络节点发送的路由拥塞通知ARN;ARN是由第二网络节点在检测到本地第二接口发生拥塞时发送的;ARN携带第二节点组、拥塞参数;第二节点组是指发生拥塞的第二接口连接的对端网络节点所处的节点组;所述拥塞参数用于指示第二接口发生拥塞的原因;
调整单元,用于从各数据流的各多路径组中查找到目标多路径组,所述目标多路径组相关联的远端节点组为所述第二节点组;基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重;第一路径是第一接口所处的路径,第一路径调整后的转发权重小于调整前的转发权重,所述其它路径调整后的转发权重大于调整前的转发权重,以使第一路径和所述其它路径配合转发原本通过所述第一路径转发的数据流。
可选地,任一非最优路径的转发权重初始为设定值;
所述确定单元进一步执行以下步骤:针对每一数据流的多路径组,确定该多路径中每一路径对应的软件转发表项;任一路径的软件转发表项包括:路径标识、路径的转发权重;针对所述多路径组中的每一路径,若该路径的转发权重不为设定值,则将该路径对应的软件转发表项下发至硬件,得到该路径对应的硬件转发表项,以指导数据流的转发;
所述调整单元在调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重后,进一步针对目标多路径组中每一被调整的路径,若该路径的转发权重从原来的设定值调整为其它值,则将该路径对应的软件转发表项下发至硬件,得到该路径对应的硬件转发表项。
可选地,所述ARN为UDP报文,所述ARN的目的IP为指定组播地址,所述指定组播地址用于控制所述第一节点组中除所述第二网络节点之外的其它所有网络节点接收到所述ARN。
可选地,所述基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重包括:
基于所述拥塞参数所指示的拥塞原因,确定与所述拥塞原因相匹配的调整系数;基于所述调整系数、所述第一接口的带宽和/或缓冲区当前被所述目标多路径组对应的数据流占用的占用情况,调整目标多路径组中第一路径以及其它路径的转发权重。
可选地,所述拥塞参数包括:所述第二接口截至当前已占用的带宽、所述第二接口截至当前已占用的缓冲区;
其中,当所述第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,则确定拥塞原因为第二接口已用带宽超过阈值;当所述第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则确定拥塞原因为第二接口已用缓冲区超过阈值;当所述第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,且所述第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则确定拥塞原因为第二接口已用带宽超过阈值且第二接口已用缓冲区超过阈值。
可选地,所述拥塞参数还包括:第二接口被设置的最大带宽、所述第二接口被设置的最大缓冲区;
所述基于所述拥塞参数所指示的拥塞原因,确定与所述拥塞原因相匹配的调整系数包括:
若所述拥塞原因为所述第二接口已用带宽超过阈值,则依据第二接口被设置的最大带宽、所述第二接口截至当前已占用的带宽,确定与所述拥塞原因相匹配的调整系数;
若所述拥塞原因为所述第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大缓冲区、所述第二接口截至当前已占用的缓冲区,确定与所述拥塞原因相匹配的调整系数;
若所述拥塞原因为所述第二接口已用带宽超过阈值以及所述第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大带宽、所述第二接口截至当前已占用的带宽,以及第二接口被设置的最大缓冲区、所述第二接口截至当前已占用的缓冲区,确定与所述拥塞原因相匹配的调整系数。
可选地,所述基于所述调整系数、所述第一接口的带宽和/或缓冲区当前被所述目标多路径组对应的数据流占用的占用情况,调整目标多路径组中第一路径以及其它路径的转发权重包括:
若所述拥塞原因为第二接口已用带宽超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的带宽、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中的转发权重低于所述第一路径的各路径中选择目标路径;所述目标路径;
若所述拥塞原因为所述第二接口已用缓冲区超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的缓冲区、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中的转发权重低于所述第一路径的各路径中选择目标路径;所述目标路径的当前可用缓冲区支持所述数据量;
若所述拥塞原因为所述第二接口已用带宽超过阈值以及第二接口已用缓冲区超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的带宽、第一接口当前被所述目标多路径组对应的数据流所占用的缓冲区、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中的转发权重低于所述第一路径的各路径中选择目标路径;所述目标路径的当前可用缓冲区和当前可用带宽支持所述数据量;
基于所述数据量,调整所述第一路径的转发权重,以及所述目标路径的转发权重。
至此,完成图9所示装置的描述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对应地,本申请实施例还提供了图9所示装置的硬件结构图,具体如图10所示,该电子设备可以为上述实施方法的设备。如图10所示,该硬件结构包括:
处理器和机器可读存储介质,机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令以实现上述示例公开的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
至此,完成图10所示电子设备的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种路由调整方法,其特征在于,所述方法应用于拓扑组网中的第一网络节点;所述拓扑组网由多个节点组组成,不同节点组中的网络节点之间建立全连接关系,以及同一节点组内的网络节点之间建立全连接关系,所述拓扑组网为自适应路由应用的组网,第一网络节点处于第一节点组中;该方法包括:
第一网络节点作为任一数据流进入所述拓扑组网的入节点,为该数据流建立该数据流的多路径组;多路径组包括到达所述数据流的目的地的以下路径:至少一条用于转发所述数据流的最优路径、至少一条用于转发所述数据流的非最优路径;非最优路径是指除最优路径之外且无环路的路径;多路径组中每一路径被设置了对应的转发权重,初始,最优路径的转发权重大于非最优路径的转发权重;多路径组具有相关联的远端节点组,远端节点组是指所述数据流的目的地所接入的网络节点所处的节点组;
第一网络节点通过第一接口接收同一节点组中第二网络节点发送的路由拥塞通知ARN;ARN是由第二网络节点在检测到本地第二接口发生拥塞时发送的;ARN携带第二节点组、拥塞参数;第二接口为第二网络节点本地的组间互联接口,所述第二接口连接的对端网络节点所处的节点组为所述第二节点组;所述拥塞参数用于指示第二接口发生拥塞的原因;所述第二网络节点在检测到本地第二接口发生拥塞时单跳向同一节点组中其它所有网络节点发送路由拥塞通知,以实现同一节点组中其它任一网络节点调整目标多路径组中转发权重最高的第一路径、以及转发权重低于第一路径的其它路径的转发权重;
第一网络节点从各数据流的各多路径组中查找到目标多路径组,基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重;所述目标多路径组相关联的远端节点组为所述第二节点组,第一路径是第一接口所处的路径,第一路径调整后的转发权重小于调整前的转发权重,所述其它路径调整后的转发权重大于调整前的转发权重,以使第一路径和所述其它路径配合转发原本通过第一路径转发的数据流。
2.根据权利要求1所述的方法,其特征在于,任一非最优路径的转发权重初始为设定值;
在接收所述ARN之前,该方法进一步包括:针对每一数据流的多路径组,确定该多路径中每一路径对应的软件转发表项;任一路径的软件转发表项包括:路径标识、路径的转发权重;针对所述多路径组中的每一路径,若该路径的转发权重不为设定值,则将该路径对应的软件转发表项下发至硬件,得到该路径对应的硬件转发表项,以指导数据流的转发;
在调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重后,该方法进一步包括:针对目标多路径组中每一被调整的路径,若该路径的转发权重从原来的设定值调整为其它值,则将该路径对应的软件转发表项下发至硬件,得到该路径对应的硬件转发表项。
3.根据权利要求1所述的方法,其特征在于,所述ARN为UDP报文,所述ARN的目的IP为指定组播地址,所述指定组播地址用于控制所述第一节点组中除所述第二网络节点之外的其它所有网络节点接收到所述ARN。
4.根据权利要求1所述的方法,其特征在于,所述基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重包括:
基于所述拥塞参数所指示的拥塞原因,确定与所述拥塞原因相匹配的调整系数;
基于所述调整系数、所述第一接口的带宽和/或缓冲区当前被所述目标多路径组对应的数据流占用的占用情况,调整目标多路径组中第一路径以及其它路径的转发权重。
5.根据权利要求4所述的方法,其特征在于,所述拥塞参数包括:所述第二接口截至当前已占用的带宽、所述第二接口截至当前已占用的缓冲区;
其中,当所述第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,则所述拥塞参数指示拥塞原因为第二接口已用带宽超过阈值;当所述第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则所述拥塞参数指示拥塞原因为第二接口已用缓冲区超过阈值;当所述第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,且所述第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则所述拥塞参数指示拥塞原因为第二接口已用带宽超过阈值且第二接口已用缓冲区超过阈值。
6.根据权利要求4或5所述的方法,其特征在于,所述拥塞参数还包括:第二接口被设置的最大带宽、所述第二接口被设置的最大缓冲区;
所述基于所述拥塞参数所指示的拥塞原因,确定与所述拥塞原因相匹配的调整系数包括:
若所述拥塞原因为所述第二接口已用带宽超过阈值,则依据第二接口被设置的最大带宽、所述第二接口截至当前已占用的带宽,确定与所述拥塞原因相匹配的调整系数;
若所述拥塞原因为所述第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大缓冲区、所述第二接口截至当前已占用的缓冲区,确定与所述拥塞原因相匹配的调整系数;
若所述拥塞原因为所述第二接口已用带宽超过阈值以及所述第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大带宽、所述第二接口截至当前已占用的带宽,以及第二接口被设置的最大缓冲区、所述第二接口截至当前已占用的缓冲区,确定与所述拥塞原因相匹配的调整系数。
7.根据权利要求4所述的方法,其特征在于,所述基于所述调整系数、所述第一接口的带宽和/或缓冲区当前被所述目标多路径组对应的数据流占用的占用情况,调整目标多路径组中第一路径以及其它路径的转发权重包括:
若所述拥塞原因为第二接口已用带宽超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的带宽、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中选择转发权重低于所述第一路径的目标路径;所述目标路径的当前可用带宽支持所述数据量;
若所述拥塞原因为所述第二接口已用缓冲区超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的缓冲区、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中选择转发权重低于所述第一路径的目标路径;所述目标路径的当前可用缓冲区支持所述数据量;
若所述拥塞原因为所述第二接口已用带宽超过阈值以及第二接口已用缓冲区超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的带宽、第一接口当前被所述目标多路径组对应的数据流所占用的缓冲区、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中选择转发权重低于所述第一路径的目标路径;所述目标路径的当前可用缓冲区和当前可用带宽支持所述数据量;
基于所述数据量,调整所述第一路径的转发权重,以及所述目标路径的转发权重。
8.一种路由调整装置,其特征在于,所述装置应用于拓扑组网中的第一网络节点;所述拓扑组网由多个节点组组成,不同节点组中的网络节点之间建立全连接关系,以及同一节点组内的网络节点之间建立全连接关系;所述拓扑组网为自适应路由应用的组网,第一网络节点处于第一节点组中;该装置包括:
确定单元,用于在第一网络节点作为任一数据流进入所述拓扑组网的入节点时,为该数据流建立该数据流的多路径组;多路径组包括到达所述数据流的目的地的以下路径:至少一条用于转发所述数据流的最优路径、至少一条用于转发所述数据流的非最优路径;非最优路径是指除最优路径之外且无环路的路径;多路径组中每一路径被设置了对应的转发权重,初始,最优路径的转发权重大于非最优路径的转发权重;多路径组具有相关联的远端节点组,远端节点组是指所述数据流的目的地所接入的网络节点所处的节点组;
接收单元,用于通过第一网络节点的第一接口接收同一节点组中第二网络节点发送的路由拥塞通知ARN;ARN是由第二网络节点在检测到本地第二接口发生拥塞时发送的;ARN携带第二节点组、拥塞参数;第二接口为第二网络节点本地的组间互联接口,所述第二接口连接的对端网络节点所处的节点组为所述第二节点组;所述拥塞参数用于指示第二接口发生拥塞的原因;所述第二网络节点在检测到本地第二接口发生拥塞时单跳向同一节点组中其它所有网络节点发送路由拥塞通知,以实现同一节点组中其它任一网络节点调整目标多路径组中转发权重最高的第一路径、以及转发权重低于第一路径的其它路径的转发权重;
调整单元,用于从各数据流的各多路径组中查找到目标多路径组,所述目标多路径组相关联的远端节点组为所述第二节点组;基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重;第一路径是第一接口所处的路径,第一路径调整后的转发权重小于调整前的转发权重,所述其它路径调整后的转发权重大于调整前的转发权重,以使第一路径和所述其它路径配合转发原本通过所述第一路径转发的数据流。
9.根据权利要求8所述的装置,其特征在于,任一非最优路径的转发权重初始为设定值;
所述确定单元进一步执行以下步骤:针对每一数据流的多路径组,确定该多路径中每一路径对应的软件转发表项;任一路径的软件转发表项包括:路径标识、路径的转发权重;针对所述多路径组中的每一路径,若该路径的转发权重不为设定值,则将该路径对应的软件转发表项下发至硬件,得到该路径对应的硬件转发表项,以指导数据流的转发;
所述调整单元在调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重后,进一步针对目标多路径组中每一被调整的路径,若该路径的转发权重从原来的设定值调整为其它值,则将该路径对应的软件转发表项下发至硬件,得到该路径对应的硬件转发表项;
所述ARN为UDP报文,所述ARN的目的IP为指定组播地址,所述指定组播地址用于控制所述第一节点组中除所述第二网络节点之外的其它所有网络节点接收到所述ARN;
所述基于所述拥塞参数,调整目标多路径组中转发权重最高的第一路径、以及转发权重低于所述第一路径的其它路径的转发权重包括:
基于所述拥塞参数所指示的拥塞原因,确定与所述拥塞原因相匹配的调整系数;基于所述调整系数、所述第一接口的带宽和/或缓冲区当前被所述目标多路径组对应的数据流占用的占用情况,调整目标多路径组中第一路径以及其它路径的转发权重;
所述拥塞参数包括:所述第二接口截至当前已占用的带宽、所述第二接口截至当前已占用的缓冲区;
其中,当所述第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,则确定拥塞原因为第二接口已用带宽超过阈值;当所述第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则确定拥塞原因为第二接口已用缓冲区超过阈值;当所述第二接口截至当前已占用的带宽超过该第二接口对应的带宽阈值,且所述第二接口截至当前已占用的缓冲区超过该第二接口对应的缓冲区阈值,则确定拥塞原因为第二接口已用带宽超过阈值且第二接口已用缓冲区超过阈值;
所述拥塞参数还包括:第二接口被设置的最大带宽、所述第二接口被设置的最大缓冲区;
所述基于所述拥塞参数所指示的拥塞原因,确定与所述拥塞原因相匹配的调整系数包括:
若所述拥塞原因为所述第二接口已用带宽超过阈值,则依据第二接口被设置的最大带宽、所述第二接口截至当前已占用的带宽,确定与所述拥塞原因相匹配的调整系数;
若所述拥塞原因为所述第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大缓冲区、所述第二接口截至当前已占用的缓冲区,确定与所述拥塞原因相匹配的调整系数;
若所述拥塞原因为所述第二接口已用带宽超过阈值以及所述第二接口已用缓冲区超过阈值,则依据第二接口被设置的最大带宽、所述第二接口截至当前已占用的带宽,以及第二接口被设置的最大缓冲区、所述第二接口截至当前已占用的缓冲区,确定与所述拥塞原因相匹配的调整系数;和/或,
所述基于所述调整系数、所述第一接口的带宽和/或缓冲区当前被所述目标多路径组对应的数据流占用的占用情况,调整目标多路径组中第一路径以及其它路径的转发权重包括:
若所述拥塞原因为第二接口已用带宽超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的带宽、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中选择转发权重低于所述第一路径的目标路径;所述目标路径的当前可用带宽支持所述数据量;
若所述拥塞原因为所述第二接口已用缓冲区超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的缓冲区、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中选择转发权重低于所述第一路径的目标路径;所述目标路径的当前可用缓冲区支持所述数据量;
若所述拥塞原因为所述第二接口已用带宽超过阈值以及第二接口已用缓冲区超过阈值,则基于第一接口当前被所述目标多路径组对应的数据流所占用的带宽、第一接口当前被所述目标多路径组对应的数据流所占用的缓冲区、以及所述调整系数,确定待从所述第一接口分出的与所述目标多路径组对应的数据流的数据量;从所述目标多路径组中选择转发权重低于所述第一路径的目标路径;所述目标路径的当前可用缓冲区和当前可用带宽支持所述数据量;
基于所述数据量,调整所述第一路径的转发权重,以及所述目标路径的转发权重。
10.一种电子设备,其特征在于,该电子设备包括:
处理器和机器可读存储介质,机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311272277.5A CN117081984B (zh) | 2023-09-27 | 2023-09-27 | 一种路由调整方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311272277.5A CN117081984B (zh) | 2023-09-27 | 2023-09-27 | 一种路由调整方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117081984A CN117081984A (zh) | 2023-11-17 |
CN117081984B true CN117081984B (zh) | 2024-03-26 |
Family
ID=88717227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311272277.5A Active CN117081984B (zh) | 2023-09-27 | 2023-09-27 | 一种路由调整方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117081984B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6831895B1 (en) * | 1999-05-19 | 2004-12-14 | Lucent Technologies Inc. | Methods and devices for relieving congestion in hop-by-hop routed packet networks |
US9379981B1 (en) * | 2013-09-27 | 2016-06-28 | Google Inc. | Flow level dynamic load balancing |
CN107770083A (zh) * | 2016-08-16 | 2018-03-06 | 华为技术有限公司 | 一种交换网络、控制器及负载均衡方法 |
CN110365588A (zh) * | 2019-07-16 | 2019-10-22 | 新华三技术有限公司合肥分公司 | 数据流调度方法、装置及sdn控制器 |
CN110708242A (zh) * | 2019-10-28 | 2020-01-17 | 迈普通信技术股份有限公司 | 流量调度方法、装置、电子设备及存储介质 |
CN111711565A (zh) * | 2020-07-01 | 2020-09-25 | 西安电子科技大学 | 面向高速互连蜻蜓+网络的多路径路由方法 |
CN112152933A (zh) * | 2019-06-27 | 2020-12-29 | 华为技术有限公司 | 一种发送流量的方法和装置 |
CN113992539A (zh) * | 2021-10-28 | 2022-01-28 | 中国人民解放军战略支援部队信息工程大学 | 网络安全动态路由跳变方法及系统 |
CN115733799A (zh) * | 2021-08-25 | 2023-03-03 | 超聚变数字技术有限公司 | 网络拥塞控制方法及相关装置 |
CN115914078A (zh) * | 2021-09-28 | 2023-04-04 | 华为技术有限公司 | 报文转发方法及装置、蜻蜓网络 |
-
2023
- 2023-09-27 CN CN202311272277.5A patent/CN117081984B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6831895B1 (en) * | 1999-05-19 | 2004-12-14 | Lucent Technologies Inc. | Methods and devices for relieving congestion in hop-by-hop routed packet networks |
US9379981B1 (en) * | 2013-09-27 | 2016-06-28 | Google Inc. | Flow level dynamic load balancing |
CN107770083A (zh) * | 2016-08-16 | 2018-03-06 | 华为技术有限公司 | 一种交换网络、控制器及负载均衡方法 |
CN112152933A (zh) * | 2019-06-27 | 2020-12-29 | 华为技术有限公司 | 一种发送流量的方法和装置 |
CN110365588A (zh) * | 2019-07-16 | 2019-10-22 | 新华三技术有限公司合肥分公司 | 数据流调度方法、装置及sdn控制器 |
CN110708242A (zh) * | 2019-10-28 | 2020-01-17 | 迈普通信技术股份有限公司 | 流量调度方法、装置、电子设备及存储介质 |
CN111711565A (zh) * | 2020-07-01 | 2020-09-25 | 西安电子科技大学 | 面向高速互连蜻蜓+网络的多路径路由方法 |
CN115733799A (zh) * | 2021-08-25 | 2023-03-03 | 超聚变数字技术有限公司 | 网络拥塞控制方法及相关装置 |
CN115914078A (zh) * | 2021-09-28 | 2023-04-04 | 华为技术有限公司 | 报文转发方法及装置、蜻蜓网络 |
CN113992539A (zh) * | 2021-10-28 | 2022-01-28 | 中国人民解放军战略支援部队信息工程大学 | 网络安全动态路由跳变方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117081984A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110139319B (zh) | 高动态时延网络传输时延最小化路由方法 | |
US9270598B1 (en) | Congestion control using congestion prefix information in a named data networking environment | |
CN107634912B (zh) | 负载均衡方法、装置及设备 | |
US8199664B2 (en) | Communication terminal and communication network | |
US7912982B2 (en) | Wireless routing selection system and method | |
US8094555B2 (en) | Dynamic weighted-fair load-balancing | |
US10938724B2 (en) | Flow rate based network load balancing | |
US7466655B1 (en) | Ant-based method for discovering a network path that satisfies a quality of service equipment | |
US20050047396A1 (en) | System and method for selecting the size of dynamic voice jitter buffer for use in a packet switched communications system | |
EP1417808A2 (en) | Method for supporting non-linear, highly scalable increase-decrease congestion control scheme | |
Nguyen et al. | Efficient multipath forwarding and congestion control without route-labeling in CCN | |
KR101849302B1 (ko) | 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법 | |
US8289851B2 (en) | Lightweight bandwidth-management scheme for elastic traffic | |
Yuan et al. | An adaptive load-balancing approach for ad hoc networks | |
WO2005079001A1 (en) | Network architecture | |
CN117081984B (zh) | 一种路由调整方法、装置及电子设备 | |
EP1302031B1 (en) | Method and device for routing data packets in communication networks | |
CN108881010A (zh) | 基于损益评估的拥塞路径调整方法 | |
Cisco | Configuring IP Enhanced IGRP | |
Cisco | Configuring IP Enhanced IGRP | |
Siddiqi et al. | Improving network convergence time and network stability of an OSPF-routed IP network | |
US20240080266A1 (en) | Flexible per-flow multipath managed by sender-side network adapter | |
Kotian et al. | Study on Different Mechanism for Congestion Control in Real Time Traffic for MANETS | |
Alparslan et al. | AIMD-based online MPLS traffic engineering for TCP flows via distributed multi-path routing | |
Yuan et al. | Adaptive load balancing scheme in ad hoc networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |