CN116781624A - 一种下发路由表的方法及相关装置 - Google Patents
一种下发路由表的方法及相关装置 Download PDFInfo
- Publication number
- CN116781624A CN116781624A CN202210227513.0A CN202210227513A CN116781624A CN 116781624 A CN116781624 A CN 116781624A CN 202210227513 A CN202210227513 A CN 202210227513A CN 116781624 A CN116781624 A CN 116781624A
- Authority
- CN
- China
- Prior art keywords
- flowlet
- measurement information
- flow
- forwarding device
- network
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000005259 measurement Methods 0.000 claims abstract description 155
- 230000011218 segmentation Effects 0.000 claims abstract description 12
- 230000002431 foraging effect Effects 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 25
- 230000032683 aging Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000015654 memory Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种下发路由表的方法及相关装置,控制器接收来自第一转发设备的网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;控制器根据网络测量信息生成路由决策;控制器向第一转发设备发送路由决策,路由决策包括第一转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,目标报文的流身份信息与Flowlet表项相匹配。本申请中,控制器根据来自转发设备的针对于大流的流测量信息生成路由决策,转发设备对于小流的流测量信息无需向控制器上报,从而减少转发设备发送网络测量信息的网络开销,减少控制器采集的网络测量信息的数据量。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种下发路由表的方法及相关装置。
背景技术
在数据通信网络中,由多台交换机、路由器(以下统称转发设备)组成了网络流量(network traffic)的转发网络,网络流量中的单个数据报文可以通过转发设备经过不同的路径被路由转发(routing)到目的网络设备(如一台计算机)。当大量的网络流量通过一个转发设备时,为了减少网络拥塞,降低报文的转发时延,转发设备使用了3层负载均衡(Layer 3 Load balance)技术。对于同一条流(flow)有多个转发路径时,具备3层负载均衡技术的转发设备选择将该流的全部或者部分报文转发给不同的路径,以实现不同路径上流量的均衡。
现有的基于网络质量测量的负载均衡技术中,每个转发设备都需要维护流分段(Flowlet)路由表和全路径质量表,其中,全路径质量表指示了当前3层负载均衡网络中所有转发路径的网络质量状态(例如排队情况、接口速率、丢包情况、时延或流计数等)。每个报文到达转发设备后,由该转发设备根据Flowlet路由表和全路径质量表来决定该报文的下一跳端口。
由于全路径质量表需要每个转发设备实时测量当前网络中所有转发路径的网络质量,因此给每个转发设备带来了巨大的网络资源的开销,转发设备的负载过大,导致负载均衡的效果降低。
发明内容
本申请实施例提供了一种下发路由表的方法及相关装置,用于提高负载均衡的效果。
第一方面,本申请实施例提供了一种下发路由表的方法,控制器对网络中的各个转发设备管理,在初始阶段(即转发设备和控制器刚被部署到网络中且尚未接收到任何报文)控制器需要掌握网络的拓扑结构,而转发设备需要将初始化的Flowlet路由表上报给控制器,便于控制器后续基于网络中的所有转发设备的Flowlet路由表(即全局Flowlet路由表)来进行路由计算。换句话说,可以通过转发设备上报或者控制器发现的形式,控制器在初始化阶段获取网络的物理拓扑。本申请中,仅对网络流量中的大流来执行本申请的下发路由表的方法,即本申请中目标报文所属的流为大流。转发设备向控制器发送网络测量信息,网络测量信息包括针对于大流的流测量信息,示例性的,可以是时延信息、丢包信息或下一跳信息。
在一些实施例中,在网络流量中,一条流是包含相同流标识(例如五元组或流标签等)的一组报文。大流是指在单位周期内的报文数量或流速超过阈值的流。在一些实施例中,一段时间内流中报文数量超过阈值的流中的一组报文被识别为大流。满足该大流条件的流可以认为是大流,也可以认为是一个大的突发(burst)。相应的不满足该大流条件的流可以认为是一个小流,也可以认为是一个小的突发。大流也可以称为大象流(elephantflow),小流也可以称为老鼠流(mice flow)。而针对于大流的调度,可以对网络中的负载得到较为明显的改善,而小流由于报文数量较少,对于转发设备的负载的影响较小,则本申请中,转发设备在接收到来自小流的报文时,可以基于等价多路径路由(equal-cost multi-path routing,ECMP)机制来对其进行路由。因此,转发设备便不需要为小流保存相应的Flowlet表项,也不需要向控制器上报小流的Flowlet表项和流测量信息,从而进一步减少转发设备的网络开销,减少控制器所需要采集的Flowlet表项的数据量。
本申请实施例中所称的转发设备可以是一个具有IP报文转发功能的网络设备(例如交换机或路由器等)。上述转发设备实现的各个步骤也可以由网络设备中的部件实现,例如,可以由网络设备中的芯片系统实现。该芯片系统包括逻辑电路。该逻辑电路可以与输入/输出接口耦合,通过输入输出接口传输报文,以实现上述方法实施例中的各个步骤。该逻辑电路可以是现场编程门阵列(field programmable gate array,FPGA),可以是专用集成电路(application specific integrated circuit,ASIC),还可以是网络处理器(network processor,NP),还可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片等。
控制器需要维护全局Flowlet路由表以及全局网络测量表,其中,全局Flowlet路由表包括了各个转发设备其自身的Flowlet路由表,全局网络测量表则包括了各个转发设备的网络测量信息。
控制器接收到转发设备的网络测量信息之后,便根据该网络测量信息,对全局网络测量表中该转发设备对应的表项进行更新。控制器根据全局Flowlet路由表以及更新后的全局网络测量表来进行路由计算。控制器通过上述路由计算流程生成路由决策,路由决策指示了转发设备中Flowlet路由表的Flowlet表项老化的时间阈值,进一步的,还可以指示转发设备的Flowlet路由表中针对于目标报文的下一跳端口字段。Flowlet表项老化的时间阈值,则决定了该Flowlet表项是否有效。示例性的,当转发设备接收到目标报文的时间间隔未超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置1,从而认为该Flowlet表项有效;当转发设备接收到该目标报文的时间间隔已经超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置0,从而认为该Flowlet表项无效。
需要说明的是,控制器可以为每个转发设备上的一个Flowlet表项或者一组Flowlet表项设置不同的时间阈值,从而使得上述Flowlet表项在对应的下一跳路由下拥有较好的负载均衡效果,避免发生拥塞。
进一步的,控制器生成新的路由决策之后,更新全局Flowlet路由表中针对于该转发设备的Flowlet路由表。更新后的全局Flowlet路由表,便可以继续用于后续的路由计算,从而生成路由决策。
转发设备接收到来自控制器的路由决策之后,便根据路由决策,对该转发设备本地所保存的Flowlet路由表中的Flowlet表项进行更新,具体包括更新该Flowlet表项老化的时间阈值或该Flowlet表项中的下一跳端口字段。当转发设备接收到目标报文后,便可以根据更新后的Flowlet表项中所指示的下一跳端口来进行报文转发。
本申请中,由控制器根据来自转发设备的针对于大流的流测量信息来生成路由决策,转发设备对于小流的流测量信息则无需向控制器上报,从而减少转发设备向控制器发送网络测量信息的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销,提高了负载均衡的效果。
基于第一方面,一种可选的实施方式中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。具体的,转发设备中,Flowlet路由表中的每个Flowlet表项主要包括以下字段:标识字段、有效信息字段以及下一跳端口字段。Flowlet表项中的标识字段包括标识。如果目标报文的流身份信息经过哈希计算后,所得到的标识与一个Flowlet表项中的标识字段包括的标识相同,那么可以认为目标报文与该Flowlet表项相匹配。在此情况下,可以进一步根据匹配的Flowlet表项中的有效信息字段以及下一跳端口字段确定如何处理该报文。而Flowlet表项中的有效信息字段,则用于指示该Flowlet表项目前是否有效,从而确定是否能够根据该Flowlet表项中的下一跳端口字段记录的下一跳端口转发匹配的报文。而Flowlet表项老化的时间阈值,则决定了该Flowlet表项是否有效。因此,控制器除了向转发设备下发Flowlet表项老化的时间阈值之外,还可以向转发设备下发针对于目标报文的下一跳端口字段,从而提高了转发设备的Flowlet表项的更新效率,也提高了报文转发的效率。
基于第一方面,一种可选的实施方式中,并不限定转发设备的数量,即上述转发设备可以包括第一转发设备,也还可以包括第二转发设备或者其他转发设备。因此,向控制器发送网络测量信息的转发设备的数量有多个,或者,也可以只有一个。若控制器接收到一个转发设备(即本申请中的第一转发设备)的网络测量信息,则根据该转发设备(第一转发设备)的网络测量信息生成路由决策,并下发给到该转发设备(第一转发设备);若控制器接收到多个转发设备(例如整个网络中的全部转发设备或部分转发设备)的多个网络测量信息,其中,每个转发设备对应一个网络测量信息,则控制器根据接收到的多个网络测量信息一起进行路由计算,从而生成路由决策,并下发给到其中的每个转发设备。在一些可能的实施方式中,控制器根据来自第二转发设备和/或第一转发设备的网络测量信息生成路由决策,并将路由决策发送给第二转发设备和/或第一转发设备。本申请中,控制器可以根据来自多个转发设备的多个网络测量信息进行路由计算,生成对应每个转发设备的路由决策,提高了路由计算的灵活性,从而更加适用于网络设备较多的、复杂的网络拓扑结构。
基于第一方面,在一些可能的实施方式中,转发设备在转发报文的过程中,当转发设备的端口发生网络拥塞时,转发设备才需要获取自身设备的网络测量信息并向控制器上报,其中,网络测量信息还包括转发设备中发生网络拥塞的端口信息,用于反映该转发设备自身的网络状态或该转发设备的下一跳端口的网络质量等等。示例性的,网络测量信息具体的内容形式包括但不限于:发生网络拥塞的端口流量、队列信息、或其他反映网络质量的信息中的一种或多种,具体此处不做限定。而对于那些未发生网络拥塞的转发设备,则无需向控制器上报其网络测量信息,该转发设备根据本地的Flowlet路由表来进行报文转发即可,从而减少转发设备的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销。进一步的,转发设备所上报的网络测量信息,除了包括该转发设备中发生网络拥塞的端口信息之外,还可以包括该转发设备中未发生网络拥塞的端口信息,从而便于控制器能够更加全面地掌握该转发设备的网络质量,从而进行路由计算。
第二方面,本申请实施例提供了一种更新路由表的方法,包括:
转发设备向控制器发送网络测量信息,所述网络测量信息包括针对于大流的流测量信息,所述大流为在单位周期内的报文数量或者流速超过阈值的流;
所述转发设备接收来自所述控制器的路由决策,所述路由决策是由所述控制器根据所述网络测量信息生成的;
所述转发设备根据所述路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,所述Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,所述目标报文的流身份信息与所述Flowlet表项相匹配。
基于第二方面,一种可选的实施方式中,所述方法还包括:所述转发设备根据所述路由决策更新所述Flowlet表项中的下一跳端口字段。
基于第二方面,一种可选的实施方式中,所述路由决策包括所述Flowlet表项中针对于所述目标报文的多个下一跳端口字段,所述方法还包括:所述转发设备根据所述多个下一跳端口字段,确定用于转发所述目标报文的目标下一跳端口。
基于第二方面,一种可选的实施方式中,所述转发设备向控制器发送网络测量信息,包括:响应于所述转发设备的端口发生网络拥塞,所述转发设备向所述控制器发送所述网络测量信息,所述网络测量信息还包括发生网络拥塞的端口信息。
基于第二方面,一种可选的实施方式中,所述目标报文所属的流为大流,所述大流为在单位周期内的报文数量或者流速超过阈值的流。
基于第二方面,一种可选的实施方式中,目标报文所属的流为大流,大流为在单位周期内的报文数量超过阈值的流。
本方面所示实施例的信息交互和执行过程等内容,与第一方面所示的实施例基于同一构思,因此,本方面所示的有益效果的说明,请详见上述第一方面所示,具体此处不做赘述。
第三方面,本申请实施例提供了一种控制器,包括:
收发单元,用于接收来自转发设备的网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;
处理单元,用于根据网络测量信息生成路由决策;
收发单元,还用于向转发设备发送路由决策,路由决策包括转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。
基于第三方面,一种可选的实施方式中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。
基于第三方面,一种可选的实施方式中,转发设备的数量为多个,处理单元,具体用于:
根据多个转发设备的网络测量信息生成路由决策。
基于第三方面,一种可选的实施方式中,网络测量信息是由发生网络拥塞的端口所在的转发设备所发送的,网络测量信息还包括发生网络拥塞的端口信息。
本方面所示实施例的信息交互和执行过程等内容,与第一方面所示的实施例基于同一构思,因此,本方面所示的有益效果的说明,请详见上述第一方面所示,具体此处不做赘述。
第四方面,本申请实施例提供了一种更新路由表的装置,包括:
收发单元,用于向控制器发送网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;
收发单元,还用于接收来自控制器的路由决策,路由决策是由控制器根据网络测量信息生成的;
处理单元,用于根据路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。
基于第四方面,一种可选的实施方式中,处理单元,还用于:
根据路由决策更新Flowlet表项中的下一跳端口字段。
基于第四方面,一种可选的实施方式中,路由决策包括Flowlet表项中针对于目标报文的多个下一跳端口字段,处理单元,还用于:
根据多个下一跳端口字段,确定用于转发目标报文的目标下一跳端口。
基于第四方面,一种可选的实施方式中,收发单元,具体用于:
当报文转发装置的端口发生网络拥塞时,向控制器发送网络测量信息,网络测量信息还包括发生网络拥塞的端口信息。
本方面所示实施例的信息交互和执行过程等内容,与第一方面所示的实施例基于同一构思,因此,本方面所示的有益效果的说明,请详见上述第一方面所示,具体此处不做赘述。
第五方面,本发明实施例提供了一种计算机设备,包括通信接口及处理器;所述通信接口用于在所述处理器的控制下与其他设备进行通信所述处理器用于执行所述计算机程序或指令,以使得所述计算机设备执行上述任一方面所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述任一方面所述的下发路由表的方法。
第七方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序或指令,当其在计算机上运行时,使得计算机执行上述任一方面所述的下发路由表的方法。
第八方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各个方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请公开了一种下发路由表的方法及相关装置,控制器接收来自第一转发设备的网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;控制器根据网络测量信息生成路由决策;控制器向第一转发设备发送路由决策,路由决策包括第一转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。本申请中,由控制器根据来自转发设备的针对于大流的流测量信息来生成路由决策,转发设备对于小流的流测量信息则无需向控制器上报,从而减少转发设备向控制器发送网络测量信息的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销,提高了负载均衡的效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为基于Flowlet路由表的报文转发场景示意图;
图2为基于网络质量测量的负载均衡网络的架构示意图;
图3为转发设备根据全路径质量表来进行路由决策的示意图;
图4为本申请实施例中下发路由表的方法的一种应用场景示意图;
图5为本申请实施例中下发路由表的方法的流程示意图;
图6为本申请中基于负载均衡算法的路由计算示意图;
图7为本申请实施例中控制器下发下一跳端口字段和时间阈值的场景示意图;
图8为本申请实施例提供的一种控制器的结构示意图;
图9为本申请实施例提供的更新路由表的装置的结构示意图;
图10为本申请实施例提供的计算机设备一种结构示意图。
具体实施方式
本申请实施例提供了一种下发路由表的方法及相关装置,用于提高负载均衡的效果。
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在数据通信网络中,由多台交换机、路由器(以下统称转发设备)组成了网络流量(network traffic)的转发网络,网络流量中的单个数据报文可以通过转发设备经过不同的路径被路由转发(routing)到目的网络设备(如一台计算机)。当大量的网络流量通过一个转发设备时,为了减少网络拥塞,降低报文的转发时延,转发设备使用了3层负载均衡(Layer 3 Load balance)技术。对于同一条流(flow)有多个转发路径时,具备3层负载均衡技术的转发设备选择将该流的全部或者部分报文转发给不同的路径,以实现不同路径上流量的均衡。
传统的3层负载均衡技术使用等价多路径路由(equal-cost multi-pathrouting,ECMP)。使用ECMP的转发设备会保存ECMP路由表。转发设备在接收到数据报文后,根据数据报文的流身份信息计算出一个索引(index),然后查询ECMP路由表中与该索引匹配的表项,根据该表项中包括的下一跳端口转发该数据报文。在实际应用中,网络中各路径的带宽、时延和可靠性等不一样,而ECMP机制把各路径的开销都视为相同,不能很好地利用带宽,尤其在路径间差异大时,效果会非常不理想。例如,路由器两个出口,两路径,一个带宽是100M,一个是2M,如果部署是ECMP,则网络总带宽只能达到4M的利用率。
针对上述基于ECMP技术做负载均衡的显著缺点,基于流分段(Flowlet)的负载均衡技术被提出。使用该技术的转发设备的负载均衡系统将属于一条流的所有报文根据两两报文之间的间隔时长切分成一到多个Flowlet。转发设备中有一个Flowlet路由表,每一个表项指明了下一跳的路由。请参阅图1,图1为基于Flowlet路由表的报文转发场景示意图。如图1所示,转发设备根据查询Flowlet路由表来为报文选择转发路径。
现有的基于网络质量测量的负载均衡系统中,每个转发设备都需要维护Flowlet路由表和全路径质量表,其中,全路径质量表指示了当前3层负载均衡网络中所有转发路径的网络质量状态(例如排队情况、接口速率、丢包情况、时延或流计数等)。报文到达转发设备时,由该转发设备根据Flowlet路由表和全路径质量表来决定该报文的下一跳端口。
请参阅图2,图2为基于网络质量测量的负载均衡网络的架构示意图。如图2所示,负载均衡网络包括了多个转发设备,为了实现负载均衡,每个转发设备都需要维护Flowlet路由表和全路径质量表,转发设备通过维护全路径质量表,来获取所有转发路径的实时的网络质量状态(例如排队情况、接口速率、丢包情况、时延或流计数等),从而基于每条转发路径的质量来进行路由决策。图2中,报文到达转发设备1的入端口时,转发设备1根据Flowlet路由表和全路径质量表为其选择不同的出端口,从而将该报文转发到不同的下一跳设备(转发设备2或转发设备3),使得该报文最终经过网络的不同路径到达目的端设备。
具体的,每个转发设备中,存储有Flowlet路由表和全路径质量表,其中,全路径质量表需要根据实时的网络质量状态来进行维护,以便转发设备选择网络质量状态较优的转发路径来进行转发报文。下面以图2中的转发设备1为例,介绍报文经过转发设备1后的处理流程。请参阅图3,图3为转发设备根据全路径质量表来进行路由决策的示意图。如图3所示,转发设备1中存储有Flowlet路由表和全路径质量表。转发设备1接收到报文后,通过对报文的流身份信息进行哈希(hash)运算得到该报文的标识。转发设备1使用该标识来检索Flowlet路由表中的Flowlet表项,如果该标识能够与Flowlet路由表中的某个Flowlet表项进行匹配,则便可以根据匹配到的Flowlet表项所指示的下一跳端口来执行该报文的转发。
如图3所示,Flowlet路由表中的Flowlet表项包括了有效位字段,从而指示该Flowlet表项是否有效。转发设备1维护一个定时器,该定时器可以设置一个时间阈值T。时间阈值T是决定两个报文是否属于同一个Flowlet的最小时间间隔。而Flowlet表项中的老化标记字段的值根据两个报文处理时间间隔是否超过时间阈值T来确定。当转发设备1接收到该报文的时间间隔未超出时间阈值T,则将与该报文匹配的Flowlet表项的老化标记置1,从而认为该Flowlet表项有效;当转发设备1接收到该报文的时间间隔已经超出时间阈值T,则将与该报文匹配的Flowlet表项的老化标记置0,从而认为该Flowlet表项无效。
当转发设备1接收到该报文时,若所匹配到的Flowlet表项显示有效,则转发设备1可以根据该Flowlet表项中的下一跳端口字段记录的下一跳端口转发所匹配到的报文;若所匹配到的Flowlet表项显示无效,则该Flowlet表项不可以作为用于处理与该Flowlet表项匹配的报文的路由表项。在此情况下,表明该路由表项记录的是上一个Flowlet的下一跳记录,转发设备1将本次接收到的报文作为一个新的Flowlet的第一个报文。此时,为了实现负载均衡,需要在全路径质量表中查找通往该报文的目的设备的网络质量最好(或较好的)的出端口,来作为该Flowlet表项中的下一跳端口字段的新值,并将新的Flowlet表项的有效位字段设置为1,从而根据该Flowlet表项中新的下一跳端口字段来转发该报文。
由上可知,在转发设备启用负载均衡算法时,需要通过全路径质量表来查询所有转发路径的网路质量。而由于各个路径的网络质量都是实时变化的,因此也需要转发设备实时地更新维护全路径质量表。具体转发设备更新维护全路径质量表的过程如下:
1.根据单个转发设备的网络测量,发现该转发设备到邻居转发设备的转发路径的网络测量信息;或者,根据一条流经过转发设备时的设备状态,更新该转发设备自身的网络测量信息。
2.将网络测量信息跟随报文的转发一起传递到目标设备,目标设备将整个路径上的网络质量计算后沿路返回给相应的转发设备。
3.所有转发设备在收到网络测量信息的反馈后,更新本地的全路径质量表。
由于全路径质量表需要每个转发设备实时测量当前网络中所有转发路径的网络质量,因此给每个转发设备带来了巨大的网络资源的开销,转发设备的负载过大,导致负载均衡的效果降低。另一方面,过于繁琐、开销巨大的转发流程,其适用场景也受限,难以支撑起大规模的网络拓扑。
有鉴于此,本申请公开了一种下发路由表的方法及相关装置,用于提高负载均衡的效果。本申请的下发路由表的方法中,在整个负载均衡网络中部署一个或多个控制器。请参阅图4,图4为本申请实施例中下发路由表的方法的一种应用场景示意图。如图4所示,控制器接收来自各个转发设备(例如图4中的转发设备1、转发设备2或转发设备3)的针对于发生网络拥塞的端口的网络测量信息,然后根据网络测量信息生成路由决策并下发给各个转发设备,其中,该路由决策包括转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。各个转发设备根据接收到的路由策略进行报文转发。
接下来,对上述下发路由表的方法的流程进行介绍。请参阅图5,图5为本申请实施例中下发路由表的方法的流程示意图,如图5所示,本申请实施例中下发路由表的方法包括:
101.转发设备向控制器发送网络测量信息。
网络中的转发设备具备基本的遥测(Telemetry)能力,在转发设备上可以实时采集特定流量的时延流大小或丢包信息等。遥测(Telemetry)技术,一般是指从物理网元或者虚拟网元上远程实时高速采集数据,实现对网络实时、高速和更精细的信息采集技术。相比于传统的网络信息采集技术,如简单网络管理协议(simple network managementprotocol,SNMP),Telemetry通过推(push)模式,主动向作为采集器的控制器推送数据信息,提供更实时更高速更精确的网络信息采集功能。
控制器对网络中的各个转发设备管理,在初始阶段(即转发设备和控制器刚被部署到网络中且尚未接收到任何报文)控制器需要掌握网络的拓扑结构,而转发设备需要将初始化的Flowlet路由表上报给控制器,便于控制器后续基于网络中的所有转发设备的Flowlet路由表(即全局Flowlet路由表)来进行路由计算。换句话说,可以通过转发设备上报或者控制器发现的形式,控制器在初始化阶段获取网络的物理拓扑。本申请中,仅对网络流量中的大流来执行本申请的下发路由表的方法,即本申请中目标报文所属的流为大流。转发设备向控制器发送网络测量信息,网络测量信息包括针对于大流的流测量信息,示例性的,可以是时延信息、丢包信息或下一跳信息。
在一些实施例中,在网络流量中,一条流是包含相同流标识(例如五元组或流标签等)的一组报文。大流是指在单位周期内的报文数量或流速超过阈值的流。在具体实施中,一段时间内流中报文数量超过阈值的流中的一组报文被识别为大流。满足该大流条件的流可以认为是大流,也可以认为是一个大的突发(burst)。相应的不满足该大流条件的流可以认为是一个小流,也可以认为是一个小的突发。大流也可以称为大象流(elephant flow),小流也可以称为老鼠流(mice flow)。而针对于大流的调度,可以对网络中的负载得到较为明显的改善,而小流由于报文数量较少,对于转发设备的负载的影响较小,则本申请中,转发设备在接收到来自小流的报文时,可以基于ECMP机制来对其进行路由。因此,转发设备便不需要为小流保存相应的Flowlet表项,也不需要向控制器上报小流的Flowlet表项和流测量信息,从而进一步减少转发设备的网络开销,减少控制器所需要采集的Flowlet表项的数据量。
在一些可能的实施方式中,转发设备在转发报文的过程中,当转发设备的端口发生网络拥塞时,转发设备才需要获取自身设备的网络测量信息并向控制器上报,其中,网络测量信息还包括转发设备中发生网络拥塞的端口信息,用于反映该转发设备自身的网络状态或该转发设备的下一跳端口的网络质量等等。示例性的,网络测量信息具体的内容形式包括但不限于:发生网络拥塞的端口流量、队列信息、或其他反映网络质量的信息中的一种或多种,具体此处不做限定。而对于那些未发生网络拥塞的转发设备,则无需向控制器上报其网络测量信息,该转发设备根据本地的Flowlet路由表来进行报文转发即可,从而减少转发设备的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销。进一步的,转发设备所上报的网络测量信息,除了包括该转发设备中发生网络拥塞的端口信息之外,还可以包括该转发设备中未发生网络拥塞的端口信息,从而便于控制器能够更加全面地掌握该转发设备的网络质量,从而进行路由计算。
在实际应用中,转发设备可以有多种方式来获取其网络测量信息,例如,转发设备可以通过网络测量,发现该转发设备到邻居转发设备的转发路径的网络质量;或者,转发设备根据一条流经过该转发设备时的设备状态,更新该转发设备自身的网络测量信息;又或者还可以是其他的获取网络测量信息的方式,具体此处不做限定。
在一些可能的实施方式中,网络测量信息还可以包括转发设备的计算力的负载情况。
本申请实施例中所称的转发设备可以是一个具有网络协议IP报文转发功能的网络设备(例如交换机或路由器等)。上述转发设备实现的各个步骤也可以由网络设备中的部件实现,例如,可以由网络设备中的芯片系统实现。该芯片系统包括逻辑电路。该逻辑电路可以与输入/输出接口耦合,通过输入输出接口传输报文,以实现上述方法实施例中的各个步骤。该逻辑电路可以是现场编程门阵列(field programmable gate array,FPGA),可以是专用集成电路(application specific integrated circuit,ASIC),还可以是网络处理器(network processor,NP),还可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片等。
本申请中,并不限定转发设备的数量,即上述转发设备可以包括第一转发设备,也还可以包括第二转发设备或者其他转发设备。因此,向控制器发送网络测量信息的转发设备的数量有多个,或者,也可以只有一个。若控制器接收到一个转发设备(即本申请中的第一转发设备)的网络测量信息,则根据该转发设备(第一转发设备)的网络测量信息生成路由决策,并下发给到该转发设备(第一转发设备);若控制器接收到多个转发设备(例如整个网络中的全部转发设备或部分转发设备)的多个网络测量信息,其中,每个转发设备对应一个网络测量信息,则控制器根据接收到的多个网络测量信息一起进行路由计算,从而生成路由决策,并下发给到其中的每个转发设备。在一些可能的实施方式中,控制器根据来自第二转发设备和/或第一转发设备的网络测量信息生成路由决策,并将路由决策发送给第二转发设备和/或第一转发设备。本申请中,控制器可以根据来自多个转发设备的多个网络测量信息进行路由计算,生成对应每个转发设备的路由决策,提高了路由计算的灵活性,从而更加适用于网络设备较多的、复杂的网络拓扑结构。
102.控制器根据网络测量信息生成路由决策。
如图5所示,控制器需要维护全局Flowlet路由表以及全局网络测量表,其中,全局Flowlet路由表包括了各个转发设备(例如图5中的转发设备1和转发设备2)其自身的Flowlet路由表,全局网络测量表则包括了各个转发设备(例如图5中的转发设备1和转发设备2)的网络测量信息。
控制器接收到转发设备的网络测量信息之后,便根据该网络测量信息,对全局网络测量表中该转发设备对应的表项进行更新。控制器根据全局Flowlet路由表以及更新后的全局网络测量表来进行路由计算。控制器通过上述路由计算流程生成路由决策,路由决策指示了转发设备中Flowlet路由表的Flowlet表项老化的时间阈值,进一步的,还可以指示转发设备的Flowlet路由表中针对于目标报文的下一跳端口字段。可选的,路由计算的过程中,还可以进一步结合历史的网络数据,例如基于历史的网络数据可以得出某些时间段存在部分路径明显拥塞的情况下,则可以优先选择提前避开这些未来可能发生拥塞的路径。
示例性的,请参阅图6,图6为本申请中基于负载均衡算法的路由计算示意图。如图6所示,报文从源设备传递至目的设备,需要经过转发路径1、转发路径2、转发路径3以及转发路径4。而由于此时转发路径2和转发路径3的负载过大,发生网络拥塞,控制器在接收到发生网络拥塞的端口所在的转发设备所上报的网络测量信息之后,便基于负载均衡算法进行路由计算,生成新的路由决策,从而选择负载较小的转发路径5和转发路径6作为新的转发路径,从而替换发生网络拥塞的转发路径2和转发路径3。则基于新的路由决策的指示,报文从源设备传递至目的设备,则依次经过转发路径1、转发路径5、转发路径6以及转发路径4。
进一步的,控制器生成新的路由决策之后,更新全局Flowlet路由表中针对于该转发设备的Flowlet路由表。更新后的全局Flowlet路由表,便可以继续用于后续的路由计算,从而生成路由决策。
本申请中,路由决策包括转发设备中Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。在一些可能的实施方式中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。具体的,转发设备中,Flowlet路由表中的每个Flowlet表项主要包括以下字段:标识字段、有效信息字段以及下一跳端口字段。Flowlet表项中的标识字段包括标识。如果目标报文的流身份信息经过哈希计算后,所得到的标识与一个Flowlet表项中的标识字段包括的标识相同,那么可以认为目标报文与该Flowlet表项相匹配。在此情况下,可以进一步根据匹配的Flowlet表项中的有效信息字段以及下一跳端口字段确定如何处理该报文。而Flowlet表项中的有效信息字段,则用于指示该Flowlet表项目前是否有效,从而确定是否能够根据该Flowlet表项中的下一跳端口字段记录的下一跳端口转发匹配的报文。而Flowlet表项老化的时间阈值,则决定了该Flowlet表项是否有效。因此,控制器除了向转发设备下发Flowlet表项老化的时间阈值之外,还可以向转发设备下发针对于目标报文的下一跳端口字段,从而提高了转发设备的Flowlet表项的更新效率,也提高了报文转发的效率。
在一些实施例中,当转发设备接收到目标报文的时间间隔未超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置1,从而认为该Flowlet表项有效;当转发设备接收到该目标报文的时间间隔已经超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置0,从而认为该Flowlet表项无效。
示例性的,请参阅图7,图7为本申请实施例中控制器下发下一跳端口字段和时间阈值的场景示意图。如图7所示,转发设备1和转发设备2向控制器发送各自的网络测量信息,由控制器根据全局Flowlet路由表和全局网络测量表,来生成每个转发设备的下一跳端口字段和时间阈值,然后将下一跳端口字段和时间阈值发送给各个转发设备,由转发设备执行。
在一些实施例中,控制器可以为每个转发设备上的一个Flowlet表项或者一组Flowlet表项设置不同的时间阈值,从而使得上述Flowlet表项在对应的下一跳路由下拥有较好的负载均衡效果,避免发生拥塞。
103.转发设备根据路由决策更新Flowlet路由表中的Flowlet表项。
转发设备接收到来自控制器的路由决策之后,便根据路由决策,对该转发设备本地所保存的Flowlet路由表中的Flowlet表项进行更新,具体包括更新该Flowlet表项老化的时间阈值或该Flowlet表项中的下一跳端口字段。当转发设备接收到目标报文后,便可以根据更新后的Flowlet表项中所指示的下一跳端口来进行报文转发。
本申请中,由控制器根据来自转发设备的针对于大流的流测量信息来生成路由决策,转发设备对于小流的流测量信息则无需向控制器上报,从而减少转发设备向控制器发送网络测量信息的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销,提高了负载均衡的效果。
在一些可能的实施方式中,控制器所生成的路由决策中,针对于一个Flowlet表项指示了多个下一跳端口。即控制器经过路由计算后,认为有多个下一跳端口均可用于传递目标报文。因此转发设备接收到该路由策略之后,对本地所保存的Flowlet路由表中的Flowlet表项进行更新,得到更新后的Flowlet表项中的下一跳端口字段中,包括了上述由控制器所指示的多个下一跳端口。当接收到与该Flowlet表项相匹配的目标报文后,从多个下一跳端口中确定其中一个端口(目标下一跳端口),来用于转发该目标报文。具体的,转发设备可以基于随机选择的方式,从多个下一跳端口中确定用于转发该目标报文的目标下一跳端口;或者可以是其他的确定目标下一跳端口的方式,例如,控制器在下发路由策略时,也指示每个下一跳端口的网络质量,从而转发设备便可以从多个下一跳端口中选择其中网络质量最好(或较好)的下一跳端口作为目标下一跳端口。本申请对于转发设备从多个下一跳端口中选择目标下一跳端口的方式不做限定。因此,控制器指示多个下一跳端口给转发设备,由转发设备根据实际场景的需要来选择其中一个来执行报文转发,从而提高了报文转发的灵活性。
在图5所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体的,请参阅图8,图8为本申请实施例提供的一种控制器的结构示意图,控制器包括:
收发单元201,用于接收来自转发设备的网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;
处理单元202,用于根据网络测量信息生成路由决策;
收发单元201,还用于向转发设备发送路由决策,路由决策包括转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。
在一种可能的设计中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。
在一种可能的设计中,转发设备的数量为多个,处理单元202,具体用于:
根据多个转发设备的网络测量信息生成路由决策。
在一种可能的设计中,网络测量信息是由发生网络拥塞的端口所在的转发设备所发送的,网络测量信息还包括发生网络拥塞的端口信息。
报文转发装置中各模块/单元之间的信息交互、执行过程等内容,与本申请中图5对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
请参阅图9,图9为本申请实施例提供的更新路由表的装置的结构示意图,更新路由表的装置包括:
收发单元301,用于向控制器发送网络测量信息以及接收来自控制器的路由决策,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流,路由决策是由控制器根据网络测量信息生成的;
处理单元302,用于根据路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。
在一种可能的设计中,处理单元302,还用于:
根据路由决策更新Flowlet表项中的下一跳端口字段。
在一种可能的设计中,路由决策包括Flowlet表项中针对于目标报文的多个下一跳端口字段,处理单元302,还用于:
根据多个下一跳端口字段,确定用于转发目标报文的目标下一跳端口。
在一种可能的设计中,收发单元301,具体用于:
当报文转发装置的端口发生网络拥塞时,向控制器发送网络测量信息,网络测量信息还包括发生网络拥塞的端口信息。
报文转发装置中各模块/单元之间的信息交互、执行过程等内容,与本申请中图5对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了一种计算机设备,请参阅图10,图10为本申请实施例提供的计算机设备一种结构示意图,计算机设备上可以部署有图8对应实施例中所描述的控制器和/或图9对应实施例中所描述的报文转发装置,用于实现图5对应实施例中控制器和/或转发设备执行的各个步骤。具体的,计算机设备由一个或多个服务器实现,计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在计算机设备400上执行存储介质430中的一系列指令操作。
计算机设备还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
需要说明的是,计算机设备中各模块/单元之间的信息交互、执行过程等内容,与本申请中图5对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图5所示实施例描述的方法中控制器执行的步骤和/或转发设备执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图5所示实施例描述的方法中控制器执行的步骤和/或转发设备执行的步骤。
本申请实施例提供的图像处理装置具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述图5所示实施例描述的方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
所另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (20)
1.一种下发路由表的方法,其特征在于,包括:
控制器接收来自第一转发设备的网络测量信息,所述网络测量信息包括针对于大流的流测量信息,所述大流为在单位周期内的报文数量或者流速超过阈值的流;
所述控制器根据所述网络测量信息生成路由决策;
所述控制器向所述第一转发设备发送所述路由决策,所述路由决策包括所述第一转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,所述Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,所述目标报文的流身份信息与所述Flowlet表项相匹配。
2.根据权利要求1所述的方法,其特征在于,所述路由决策还包括针对于所述目标报文的下一跳端口字段。
3.根据权利要求1或2所述的方法,其特征在于,所述控制器根据所述网络测量信息生成路由决策,包括:所述控制器根据来自第二转发设备和/或所述第一转发设备的网络测量信息生成路由决策。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述网络测量信息是由发生网络拥塞的端口所在的转发设备所发送的,所述网络测量信息还包括发生网络拥塞的端口信息。
5.一种更新路由表的方法,其特征在于,包括:
转发设备向控制器发送网络测量信息,所述网络测量信息包括针对于大流的流测量信息,所述大流为在单位周期内的报文数量或者流速超过阈值的流;
所述转发设备接收来自所述控制器的路由决策,所述路由决策是由所述控制器根据所述网络测量信息生成的;
所述转发设备根据所述路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,所述Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,所述目标报文的流身份信息与所述Flowlet表项相匹配。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述转发设备根据所述路由决策更新所述Flowlet表项中的下一跳端口字段。
7.根据权利要求5或6所述的方法,其特征在于,所述路由决策包括所述Flowlet表项中针对于所述目标报文的多个下一跳端口字段,所述方法还包括:
所述转发设备根据所述多个下一跳端口字段,确定用于转发所述目标报文的目标下一跳端口。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述转发设备向控制器发送网络测量信息,包括:
响应于所述转发设备的端口发生网络拥塞,所述转发设备向所述控制器发送所述网络测量信息,所述网络测量信息还包括发生网络拥塞的端口信息。
9.一种控制器,其特征在于,包括:
收发单元,用于接收来自第一转发设备的网络测量信息,所述网络测量信息包括针对于大流的流测量信息,所述大流为在单位周期内的报文数量或者流速超过阈值的流;
处理单元,用于根据所述网络测量信息生成路由决策;
所述收发单元,还用于向所述第一转发设备发送所述路由决策,所述路由决策包括所述转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,所述Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,所述目标报文的流身份信息与所述Flowlet表项相匹配。
10.根据权利要求9所述的控制器,其特征在于,所述路由决策还包括针对于所述目标报文的下一跳端口字段。
11.根据权利要求9或10所述的控制器,其特征在于,所述处理单元,具体用于:
根据第二转发设备和/或所述第一转发设备的网络测量信息生成路由决策。
12.根据权利要求9至11中任一项所述的控制器,其特征在于,所述网络测量信息是由发生网络拥塞的端口所在的转发设备所发送的,所述网络测量信息还包括发生网络拥塞的端口信息。
13.一种更新路由表的装置,其特征在于,包括:
收发单元,用于向控制器发送网络测量信息,所述网络测量信息包括针对于大流的流测量信息,所述大流为在单位周期内的报文数量或者流速超过阈值的流;
所述收发单元,还用于接收来自所述控制器的路由决策,所述路由决策是由所述控制器根据所述网络测量信息生成的;
处理单元,用于根据所述路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,所述Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,所述目标报文的流身份信息与所述Flowlet表项相匹配。
14.根据权利要求13所述的装置,其特征在于,所述处理单元,还用于:
根据所述路由决策更新所述Flowlet表项中的下一跳端口字段。
15.根据权利要求13或14所述的装置,其特征在于,所述路由决策包括所述Flowlet表项中针对于所述目标报文的多个下一跳端口字段,所述处理单元,还用于:
根据所述多个下一跳端口字段,确定用于转发所述目标报文的目标下一跳端口。
16.根据权利要求13至15中任一项所述的装置,其特征在于,所述收发单元,具体用于:
当所述报文转发装置的端口发生网络拥塞时,向所述控制器发送所述网络测量信息,所述网络测量信息还包括发生网络拥塞的端口信息。
17.一种计算机设备,其特征在于,包括处理器,
所述处理器,用于执行计算机程序,使得所述计算机设备执行如权利要求1至8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法。
19.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被计算机执行时实现如权利要求1至8中任一项所述的方法。
20.一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述芯片系统执行如权利要求1至8中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210227513.0A CN116781624A (zh) | 2022-03-08 | 2022-03-08 | 一种下发路由表的方法及相关装置 |
PCT/CN2023/080043 WO2023169407A1 (zh) | 2022-03-08 | 2023-03-07 | 一种下发路由表的方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210227513.0A CN116781624A (zh) | 2022-03-08 | 2022-03-08 | 一种下发路由表的方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116781624A true CN116781624A (zh) | 2023-09-19 |
Family
ID=87935980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210227513.0A Pending CN116781624A (zh) | 2022-03-08 | 2022-03-08 | 一种下发路由表的方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116781624A (zh) |
WO (1) | WO2023169407A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716208B (zh) * | 2013-12-31 | 2017-06-30 | 北京邮电大学 | 支持大象流的网络管理方法、系统、交换机和网络 |
US9722926B2 (en) * | 2014-01-23 | 2017-08-01 | InMon Corp. | Method and system of large flow control in communication networks |
CN105610709B (zh) * | 2016-02-03 | 2018-09-11 | 西安电子科技大学 | 基于sdn的大流负载均衡系统与方法 |
CN106487676A (zh) * | 2016-10-27 | 2017-03-08 | 盛科网络(苏州)有限公司 | 一种基于大象流的动态ecmp芯片实现方法 |
CN112311674B (zh) * | 2019-07-31 | 2022-02-25 | 北京华为数字技术有限公司 | 报文发送方法、装置及存储介质 |
CN114268584A (zh) * | 2020-09-16 | 2022-04-01 | 华为技术有限公司 | 转发报文的方法和相关装置 |
-
2022
- 2022-03-08 CN CN202210227513.0A patent/CN116781624A/zh active Pending
-
2023
- 2023-03-07 WO PCT/CN2023/080043 patent/WO2023169407A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023169407A1 (zh) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7417825B2 (ja) | スライスベースルーティング | |
Li et al. | OpenFlow based load balancing for fat-tree networks with multipath support | |
CN107819695B (zh) | 一种基于sdn的分布式控制负载均衡系统与方法 | |
Sen et al. | Scalable, optimal flow routing in datacenters via local link balancing | |
Curtis et al. | Mahout: Low-overhead datacenter traffic management using end-host-based elephant detection | |
US9154394B2 (en) | Dynamic latency-based rerouting | |
US10333848B2 (en) | Technologies for adaptive routing using throughput estimation | |
US9847922B2 (en) | System and method for continuous measurement of transit latency in individual data switches and multi-device topologies | |
US8738752B2 (en) | Local placement of large flows to assist load-balancing | |
US6904014B1 (en) | Method and apparatus for performing high-speed traffic shaping | |
Wu et al. | DARD: Distributed adaptive routing for datacenter networks | |
Wang et al. | Adaptive path isolation for elephant and mice flows by exploiting path diversity in datacenters | |
US9787594B2 (en) | Procedures, apparatuses, systems, and computer program products for adaptive tunnel bandwidth by using software defined networking | |
Wang et al. | Luopan: Sampling-based load balancing in data center networks | |
US20170048144A1 (en) | Congestion Avoidance Traffic Steering (CATS) in Datacenter Networks | |
US9847925B2 (en) | Accurate measurement of distributed counters | |
US20070230369A1 (en) | Route selection in a network | |
EP2915299A1 (en) | A method for dynamic load balancing of network flows on lag interfaces | |
WO2017025021A1 (zh) | 一种处理流表的方法及装置 | |
CN114500354B (zh) | 一种交换机控制方法、装置、控制设备及存储介质 | |
US20170195203A1 (en) | Method, apparatus, and system for implementing packet loss detection | |
Nepolo et al. | A predictive ECMP routing protocol for fat-tree enabled data centre networks | |
CN107846291B (zh) | 报文处理方法、故障定位方法及网络设备 | |
Hwang et al. | Load balancing and routing mechanism based on software defined network in data centers | |
Ren et al. | Flowtable-free routing for data center networks: A software-defined approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |