CN109691037B - 用于数据中心负载均衡的方法和系统 - Google Patents

用于数据中心负载均衡的方法和系统 Download PDF

Info

Publication number
CN109691037B
CN109691037B CN201680089212.9A CN201680089212A CN109691037B CN 109691037 B CN109691037 B CN 109691037B CN 201680089212 A CN201680089212 A CN 201680089212A CN 109691037 B CN109691037 B CN 109691037B
Authority
CN
China
Prior art keywords
switch
path
congestion
information
leaf
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
Application number
CN201680089212.9A
Other languages
English (en)
Other versions
CN109691037A (zh
Inventor
汪自雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN109691037A publication Critical patent/CN109691037A/zh
Application granted granted Critical
Publication of CN109691037B publication Critical patent/CN109691037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos

Abstract

一种叶脊网络的交换机收集拥塞信息的方法和系统。所述交换机处理路径查找报文。获取与所述交换机的端口之间拥塞有关的拥塞信息。将所述拥塞信息插入所述路径查找报文的净负荷中。所述交换机组播所述路径查找报文。

Description

用于数据中心负载均衡的方法和系统
相关申请案交叉申请
本专利申请要求于2016年9月12日递交的发明名称为“用于数据中心负载均衡的方法和系统”的第15/262,540号美国专利申请案的在先申请优先权,该在先申请的内容以引用的方式并入本文。
技术领域
本发明涉及在通信网络中对流量进行负载均衡的方法和系统。
背景技术
多路径负载均衡是一种旨在数据中心网络实现高吞吐量、低延迟和高可用性的技术。常用方案即等价多路径(Equal Cost Multi Path,简称ECMP)方案对于数据中心网络来讲却并不令人满意。ECMP不令人满意的原因是ECMP对选择的报文报头字段采用静态配置的散列函数来决定报文的出端口,从而按照与处理小报文流相同的方式处理大报文流。如果多个大报文流被散列到同一端口,并且这些大报文流的聚合速率超过端口利用率,那么这些大报文流中有一部分就无法分配给所述端口,这会导致端口利用率和吞吐量降低。
动态负载均衡方案依赖于子流交换。通常,给定报文流中的报文被分成许多不同的报文组,其中报文组包括所述给定报文流的报文突发,其帧间隔很小。这种报文组称为子流。在相同报文流的两个子流之间通常存在足够大的时间间隙,使得报文流中的各个子流可以交换到不同的网络路径,而不会导致报文无序传输。子流交换可以提高数据中心网络的吞吐量。但是,现有的方案可能仅限于双层叶脊数据中心网络拓扑;可能依赖于专有的报文格式;可能不适用于第2层或第3层报文;和/或可能要求每个叶交换机保留涉及所述叶交换机出端口的所有网络路径的状态的信息,从而导致处理和存储成本很高。
发明内容
在一些示例中,本发明描述了一种叶脊网络的交换机收集拥塞信息的方法。所述方法包括获取路径查找报文并获取与所述交换机的端口之间拥塞有关的拥塞信息。将所述拥塞信息插入所述路径查找报文的净负荷中,并且发送所述路径查找报文。
在各种示例中,由所述路径查找报文收集的拥塞信息涉及按照与所述路径查找报文遍历方向相反的方向转发的报文预计经历的拥塞。
在一些示例中,本发明描述了一种叶脊网络的第一叶交换机确定优选路径信息的方法。所述优选路径信息定义了将报文从所述第一叶交换机转发到第二叶交换机的优选路径。接收路径查找报文。使用从所述路径查找报文的净负荷中获取的拥塞信息来确定所述优选路径信息,所述拥塞信息与所述路径查找报文所遍历的一个或多个交换机相关联。将所述优选路径信息与所述第二叶交换机的标识符关联存储。
在一些示例中,本发明描述了一种用于在叶脊网络中为要转发的报文选择优选路径的方法。接收用于为接收的报文选择优选路径的触发。选择与所述报文的目的叶交换机相关联的优选路径信息。所述优选路径信息定义了至少一个用于转发所述报文的交换机的至少一个出端口。根据所选择的优选路径信息从上行链路端口发送所述报文。
在一些示例中,本发明描述了叶脊网络中的网络交换机,所述网络交换机包括叶交换机、汇聚交换机和脊交换机,以执行上述方法的各种实施例。
附图说明
现在将通过示例参考示出本申请的示例实施例的附图,其中:
图1是示例性三层叶脊网络的示意图;
图2是用于生成路径查找报文的示例性方法的流程图;
图3是路径查找报文通过图1网络的示例性传播的示意图;
图4是网络交换机处理路径查找报文的示例性方法的流程图;
图5是使用路径查找报文确定优选路径信息的示例性方法的流程图;
图6是通过图1网络转发的报文的示例的示意图;
图7是用于选择用于转发报文的优选路径的示例性方法的流程图。
在不同的图中可能使用了类似的参考标号来表示类似的部件。
具体实施方式
图1是示例性叶脊通信网络100的示意图。在示例性网络100中,多个叶交换机110为终端设备(未示出)提供连接。终端设备可以包括台式计算机或服务器,网络交换机可以包括路由器等。在本发明中,两个交换机之间的直接连接可以称为链路,而路径一词可以用于指报文从源交换机到目的交换机所遍历的所有链路(包括源和目的交换机之间的任何中间交换机)的总和。
叶交换机110不直接连接到任何其他叶交换机110。在示例性网络100中有k2/2个叶交换机110。通常,网络100中的每个交换机可以具有k个端口。通常,k可以小于257,尽管在某些情况下k可能更大。示出了叶交换机#1 112,叶交换机#(k/2+1)114和叶交换机#(k2/2)116。报文通过通信链路150(例如,光纤链路)传输。多个脊交换机140设置在多个脊平面120上。在示例性网络100中,在单个脊平面120中有k/2个脊交换机140。示出了脊交换机#1142、脊交换机#2 144和脊交换机#(k/2)146。脊交换机140不直接连接到任何其他脊交换机140。在本发明中,从叶交换机110到脊交换机140的方向称为上行链路,并且从脊交换机140到叶交换机110的方向称为下行链路。
在示例性网络100中有k/2个脊平面120。详细示出了脊平面#(k/2)122。为简单起见,下面将描述单个脊平面120,但是应该理解的是,该描述通常适用于网络100中的所有脊平面120。为简单起见,叶交换机110示出了仅连接到单个脊平面120的链路150,然而叶交换机110通常具有连接到所有脊平面120的链路150,并且每个脊平面120中的链路150可类似于示出的脊平面#(k/2)122的链路150。
每个叶交换机110具有连接到每个脊平面120的上行链路端口。因此,对于(k/2)个脊平面,每个叶交换机110具有(k/2)个上行链路端口(为简单起见,仅示出了每个叶交换机110的一个上行链路端口)。每个叶交换机110具有下行链路端口118,用于将终端设备连接到每个脊平面120。因此,在所示的示例中,所有(k2/2)个叶交换机110上总共有(k/2)×(k2/2)=(k3/4)个下行链路端口118。
示例性网络100是三层叶脊网络,包括汇聚层。在该示例中,叶交换机110经由汇聚交换机130连接到脊交换机140。在示例性网络100中,在单个脊平面120中有k个汇聚交换机130。示出了汇聚交换机#1 132、汇聚交换机#2 134和汇聚交换机#k 136。汇聚交换机用于聚合和路由来自多个连接的叶交换机110的报文。每个汇聚交换机130经由链路150连接到每个脊交换机140。通常,给定脊平面120中的汇聚交换机130将其相关联的叶交换机110连接到给定脊平面120中的所有脊交换机140。叶交换机110具有链路150,所述链路150具有跨越多个脊平面120的多个汇聚交换机130,但是叶交换机110仅连接到任一脊平面120的一个汇聚交换机130。每个汇聚交换机130具有上行链路端口,所述上行链路端口连接到给定脊平面120中的每个脊交换机140。因此,在所示的示例中,每个汇聚交换机130具有(k/2)个上行链路端口,所述(k/2)个上行链路端口连接到脊平面120中的(k/2)个脊交换机140。每个脊交换机140具有下行链路端口,所述下行链路端口连接到给定脊平面120中的每个汇聚交换机130。因此,在所示的示例中,每个脊交换机140具有k个下行链路端口,所述k个下行链路端口连接到脊平面120中的k个汇聚交换机130。
通常,叶脊网络具有至少两层,即叶层和脊层。图1的示例网络100可以认为是三层网络,其增加了汇聚层。本发明提供了图1的三层网络的示例,然而,本发明的指导可以普遍适用于具有更少或更多层级的叶脊网络。
每个叶交换机110(可选地经由汇聚交换机130)连接到每个脊交换机140。任何一对叶交换机110之间的报文流所经由的路径是从源叶交换机110(可选地经由连接到源叶交换机110的汇聚交换机130)到脊交换机140再(可选地经由连接到目的叶交换机110的汇聚交换机130)到目的叶交换机110。报文从交换机输出的端口(也称为出端口)可以确定所述报文到达的下一个交换机。例如,汇聚交换机#1 132可以具有连接到脊交换机#1 142的端口Pa。为了引导报文到达脊交换机#1 142,汇聚交换机#1 132将所述报文放入端口Pa的队列中。交换机接收报文的端口(也称为入端口)可用于识别发送所述报文的交换机。例如,汇聚交换机#1 132可以具有连接到叶交换机#1 112的端口Pb。在端口Pb接收的任何报文都可以确定是从叶交换机#1 112发出的。应当理解的是,端口可以是双工端口,也就是说,单个端口可以用于接收报文(即,用作入端口)并且发送报文(即,用作出端口)。
当报文从同一交换机内的入端口传输到出端口时,可能会出现拥塞。拥塞可能取决于交换机的端口利用率、端口的传输速率、端口处的队列拥塞和/或处理器和存储器资源等。交换机拥塞是数据中心负载均衡的关注点。与传统方法相比,本文描述的各种示例可以使数据中心负载均衡的成本更低和/或可扩展性更好。在一些示例中,可以使用标准报文格式。
本发明描述了用于路径查找的示例性方法,可以找到从源叶交换机到目的叶交换机的优选网络路径。优选网络路径可以定义为拥塞指标满足预定标准(例如,最低拥塞)的网络路径。例如,所述拥塞指标可以基于路径延迟或端口利用率,也可以使用其他拥塞指标。在本文描述的示例中,路径查找报文(path finding packet,简称PFP)用于收集拥塞信息,以找到优选路径。PFP是用于在其净负荷中承载拥塞信息的报文。尽管PFP可以在其净负荷中包括其他数据,但是PFP的主要目的是用于收集拥塞信息,如下所述。
下面结合图2和图3描述用于生成PFP的示例性方法。
拥塞信息的收集通常可以由获取PFP的汇聚交换机130发起,例如通过生成所述PFP发起。在图3的示例中,所述PFP由汇聚交换机#1 132生成,然而,任何汇聚交换机130都可以生成PFP。在本发明中,生成PFP的汇聚交换机130可以称为发起汇聚交换机。
在205处,汇聚交换机#1 132生成PFP。汇聚交换机#1 132可以周期性地生成PFP。PFP产生的周期可以是任何合适的时间段,例如在约100μs至约10ms的范围内。可以按选定的时间间隔(例如,每200μs)通过网络100生成和传播PFP,以确保收集到最新的拥塞信息。当网络100中的流量快速变化时,增加PFP生成的频率会很有用。为避免网络100上出现过度开销,对生成PFP的频率设定上限也很有用。
对于连接到脊交换机140的每个上行链路端口,汇聚交换机#1 132生成PFP以承载与特定上行链路端口相关的拥塞信息。例如,如果汇聚交换机#1 132具有两个上行链路端口Pa和Pd,则汇聚交换机#1 132生成一个PFP以承载与端口Pa相关的拥塞信息,并生成另一个PFP以承载与端口Pd相关的拥塞信息。为简单起见,图2描述了为承载与给定上行链路端口Pa有关的拥塞信息所生成的单个PFP。
可以使用标准报文格式生成所述PFP。在一些示例中,所述PFP可以生成为标准组播报文(例如,在所述报文报头中具有组播信息)以使所述PFP能够被组播,如下所述。将所述PFP作为组播报文发送有助于节省带宽。所述PFP报头中使用的组播组标识符可以由所述控制平面设置。为了避免所述PFP的传输被排队等待传输的其他报文阻塞,可以将PFP指定为高优先级报文(例如,将所述报文报头中的优先级设置为最高优先级)。交换机还可以具有PFP专用队列。
在210处,汇聚交换机#1 132获取与给定上行链路端口Pa和每个下行链路端口之间拥塞有关的拥塞信息。下面将进一步描述如何获取拥塞信息的示例。获取的拥塞信息涉及从所述下行链路端口发送的报文可能会遇到的拥塞。在一些示例中,与上行链路端口和下行链路端口之间拥塞有关的拥塞信息可能仅需要与所述下行链路端口有关的信息(例如,在拥塞不取决于所述上行链路端口的情况下)。
在215处,将所述拥塞信息插入到所述PFP中,例如插入到所述PFP的净负荷中。所述拥塞信息可以作为一组记录在所述净负荷中承载,每个记录将拥塞信息与相应的下行链路端口相关联。在下面讨论的示例中,所述拥塞信息包括端口利用率信息和交换延迟信息,并且与标识端口的标识符相关联。例如,记录可包含以下字段:
Leaf_ID(例如,16位长):标识连接到所述下行链路端口的叶交换机的标识符;在连接到叶交换机的下行链路端口的情况下,所述叶交换机的标识符可以用于标识所述下行链路端口;
Port_utilization(例如,8位长):提供有关所述下行链路端口的端口利用率的信息;端口利用率可以定义为测量的实际端口传输速率与端口容量的比率;例如,如果端口的容量为10Gbps,并且所测量的实际端口传输速率为5Gbps,则所述端口利用率为5Gbps/10Gbps=0.5;
Hop_delay(例如,16位长):提供从所述上行链路端口到下行链路端口的交换延迟信息,其中所述下行链路端口与用Leaf_ID表示的叶交换机相关联。
所述交换延迟可以近似为所述下行链路端口和所述上行链路端口之间的临时路径延迟。例如,计算公式可以是:
Tmp_path_delay=(端口Pb的平均输出队列长度)/(端口Pb的速度)
其中,Tmp_path_delay是所述临时路径延迟,端口Pb是所述下行链路端口。在此示例性计算公式中,汇聚交换机#1 132保留每个端口的平均输出队列长度。端口的平均输出队列长度可以更新如下:
新的平均输出队列长度=w*(当前瞬时输出队列长度)+(1–w)*(旧的平均输出队列长度)
其中,w是衰减因子,可以减少较旧的平均队列长度值的影响。w的值越大,旧的平均队列长度对计算结果的影响越小。
汇聚交换机#1 132可以设置Hop_delay=Tmp_path_delay。应当注意的是,Hop_delay仅取决于所述下行链路端口并且独立于所述上行链路端口。
端口利用率和交换延迟信息可以使用其他方法进行计算。同样,也可以收集其他拥塞信息。
在220处,汇聚交换机#1 132经由其每个上行链路端口组播PFP。这在图3中显示为黑色箭头310和白色箭头312。图3中所示的箭头指示PFP沿网络链路150传输。因此,链接到汇聚交换机#1 132的所有脊交换机140接收所述PFP。尽管所述PFP仅包含与特定上行链路端口相关的拥塞信息,但是所述PFP通过所有上行链路端口进行组播。例如,PFP包含与给定上行链路端口Pa和下行链路端口之间拥塞有关的拥塞信息,所述PFP经由上行链路端口Pa以及汇聚交换机#1 132的所有其他上行链路端口进行组播。类似地,汇聚交换机#1 132生成并组播包含与其所有其他上行链路端口相关的拥塞信息的PFP。这样,链接到汇聚交换机#1 132的所有脊交换机140接收包含与汇聚交换机#1 132的所有上行链路端口相关的拥塞信息的PFP。
当拥塞信息通过网络100传播时,所述拥塞信息的收集仍将继续,并将新的拥塞信息插入到PFP中。这将结合图3和图4进行描述。除了所述发起汇聚交换机和最终的目的叶交换机之外,PFP遇到的所有交换机可以执行下面描述的示例性方法以将拥塞信息插入到所述PFP中。
以下描述的背景是某一PFP由汇聚交换机#1 132生成,然后沿着黑色箭头310、320、330指示的路径发送,最后由叶交换机#(k/2+1)114接收。也就是说,将汇聚交换机#1132生成的PFP组播(黑色箭头310和白色箭头312)到所有脊交换机140。沿着箭头310所示,脊交换机#1 142接收所述PFP。如下所述,所述PFP由脊交换机#1 142处理,然后组播(黑色箭头320和灰色箭头322)到除了汇聚交换机#1 132之外的所有汇聚交换机130。沿着箭头320,汇聚交换机#2 134接收所述PFP,并对所述PFP进行处理,如下所述。然后将所述PFP(黑色箭头330)发送到叶交换机#(k/2+1)114。下面将进一步描述最终叶交换机110对所述PFP的处理。
在405处,所述交换机获取所述PFP,例如通过在入端口Py接收所述PFP来获取。例如,所述交换机可以基于报文报头字段中的特定协议类型值、特定标签值或特定源地址值将接收到的报文识别为PFP。以下描述适用于诸如脊交换机#1 142的脊交换机140接收PFP的情况,以及诸如汇聚交换机#2 134的汇聚交换机130接收PFP的情况。
在410处,所述交换机获取拥塞信息。所述拥塞信息涉及所述PFP到达的接收端口与可以通过其传播所述PFP的每个出端口之间的拥塞。所获取的拥塞信息涉及按照与所述PFP行进路径相反的方向行进的报文将遇到的拥塞。也就是说,当在接收端口Py接收到所述PFP时,由所述交换机获取的拥塞信息涉及从端口Py输出的报文可能会遇到的拥塞。在一些示例中,与所述接收端口和出端口之间拥塞有关的拥塞信息可能仅需要与所述接收端口有关的信息。
所述拥塞信息可以包括端口利用率信息和交换延迟信息。例如,在脊交换机140的情况下,可以通过使用滑动平均方案从接收报文的长度和时间计算入端口Py的实际端口传输速率来确定端口利用率信息。在汇聚交换机130的情况下,可以通过计算端口Py的实际端口传输速率来确定端口利用率信息。如上所述,可以针对Hop_delay计算出所述交换延迟信息。
在415处,将所述拥塞信息插入所述PFP。例如,可以将附加的记录添加到所述PFP净负荷,其中包括如上所述的Port_utilization和Hop_delay字段。所述记录可以具有Switch_ID字段(例如,16位长),该字段包含所述交换机的标识符,以替代Leaf_ID字段。在汇聚交换机130的情况下,所述记录还可以包括入端口Py的标识符。
在420处,根据所述PFP由脊交换机140还是汇聚交换机130处理来组播所述PFP。在脊交换机140的情况下,所述PFP被组播到除了所述PFP到达的接收端口之外的所有端口。例如,脊交换机#1 142将所述PFP组播到汇聚交换机#2 134(黑色箭头320)和汇聚交换机#k136(灰色箭头322),但不组播到汇聚交换机#1 132。汇聚交换机#2 134经由所有下行链路端口(黑色箭头330)组播所述PFP。
如果所述PFP在最终到达叶交换机110之前通过多层传播,图4的示例性方法可以由接收所述PFP的每个交换机(除了发起汇聚交换机130和最终叶交换机110之外)执行。例如,在图3的上下文中,脊交换机#1 142可以执行图4的方法来处理和传播所述PFP,然后汇聚交换机#2 134也可以执行图4的方法来处理和传播所述PFP。因此,当所述PFP通过网络100传播时,上述示例性方法可以由不同的交换机重复执行。这样,最终叶交换机110接收的PFP提供从发起汇聚交换机130到最终叶交换机110的路径上所述PFP遇到的所有交换机收集的拥塞信息。由所述PFP承载的拥塞信息通常可以涉及按照与所述PFP行进方向相反的方向行进的报文会遇到的拥塞。也就是说,当所述PFP已经遍历从汇聚交换机#1 132到叶交换机#(k/2+1)114的路径时,所述PFP中包含的拥塞信息涉及沿着从叶交换机#(k/2+1)114到汇聚交换机#1 132的路径行进的报文会遇到的拥塞。
尽管上文描述了在三层网络的两层(即,脊层和汇聚层)中接收和处理PFP,但是应该理解的是,类似地,可以在数量更少或更多的层中接收和处理所述PFP,所述网络可以少于或多于三层。在多于三层的情况下,所述PFP可以在除了所述脊层之外的附加层处理,这类似于上述汇聚交换机进行的处理。
当叶交换机110接收到PFP时,叶交换机110处理由所述PFP承载的拥塞信息并终止所述PFP。叶交换机110使用所述拥塞信息来确定用于定义将报文转发到另一叶交换机110的优选路径的信息。在本发明中,定义优选路径的信息可以称为优选路径信息。使用由遍及网络100传播的多个PFP提供的拥塞信息,叶交换机110能够确定用于将报文转发到所有其他叶交换机110的优选路径信息。叶交换机110使用所述优选路径信息进行报文转发,下面将进一步讨论。
图5是由叶交换机110执行的用于使用PFP确定优选路径信息的示例性方法的流程图。
叶交换机110在其存储器中保留现有的优选路径信息。现有的优选路径信息可以基于先前获取的拥塞信息(例如,从先前的PFP中获取),也可以是默认或估计的优选路径信息(例如,在叶交换机110尚未从PFP接收任何拥塞信息的情况下)。在一些示例中,所述优选路径信息可以按最佳路径表(best path table,简称BPT)的形式保存在叶交换机110的存储器中。在一些示例中,叶交换机110可以存储到达特定目的叶交换机110的多个备选优选路径(例如,多达四个可能的优选路径)的相关信息。这可以避免过度使用某一个优选路径。
在一些示例中,到达特定目的叶交换机110的优选路径的信息可以作为与所述目的叶交换机110相关联的记录存储在所述BPT中(例如,根据所述目的叶交换机110的标识符进行索引)。因为报文到达的目的交换机是通过从源交换机发送所述报文的出端口确定的,所以可以通过指定应该沿着优选路径在一个或多个交换机的哪些出端口发送所述报文,在所述优选路径信息中定义所述优选路径。所述优选路径信息还可以包括与所述定义的优选路径相关联的拥塞信息。存储在所述BPT中的定义到达特定目的叶交换机110的优选路径的记录可以包含以下字段,例如:
Leaf_Port_ID(例如,8位长):来自源叶交换机110的上行链路端口的标识符;
Agg_Port_ID(例如,8位长):来自与源叶交换机110链接的汇聚交换机130的上行链路端口的标识符;
Best_Path_Port_utilization:表示沿所定义优选路径的所有端口的最大端口利用率;
Best_Path_delay(例如,16位长):关于与所定义优选路径相关联的路径延迟的信息。
更一般地说,所述记录可以包含标识符字段,用于存储在所述路径的上游部分中遍历的所有上行链路端口的端口标识符。尽管上面讨论的示例包括源叶交换机110和链接的汇聚交换机130的出端口的标识符,但是在网络具有附加层的情况下,可以添加附加字段来表示附加上行链路层的出端口的标识符。类似地,在网络具有较少层的情况下,可以使用较少的端口标识符字段。仅使用所述路径的上游部分的端口标识符来定义所述优选路径可能就足够了,因为可以对所述路径的下游部分采用目的地查找技术。
可以使用所接收的PFP来更新所存储的优选路径信息,如下所述。例如,下面描述了叶交换机#(k/2+1)114执行的方法,叶交换机#(k/2+1)114已经接收到如图3所示且如上所述传播的PFP。通常,以下示例性方法由接收和终止所述PFP的每个叶交换机110执行。
在505处,叶交换机#(k/2+1)114在上行链路端口(例如,端口Pf)处接收所述PFP。
在510处,叶交换机#(k/2+1)114使用所述PFP提供的拥塞信息确定优选路径信息。这可能涉及下面描述的步骤515、520、525和530。
在515处,叶交换机#(k/2+1)114获取有关其端口的拥塞信息。所述拥塞信息涉及接收PFP的端口(例如,端口Pf)和其每个下行链路端口之间的传输。例如,叶交换机#(k/2+1)114可以计算端口利用率和给定下行链路端口Pg与上行链路端口Pf之间的交换延迟,这类似于上面所述的计算。所述拥塞信息可以表示从上行链路端口Pf发送的报文可能会遇到的拥塞。在一些示例中,所述拥塞信息可以仅需要与上行链路端口Pf有关的信息。
在520处,叶交换机#(k/2+1)114确定是否应该更新当前存储的优选路径信息。该确定过程可以基于拥塞指标的比较情况。如果所述比较满足某一标准(例如,来自所述PFP的拥塞信息的拥塞指标优于(即,指示拥塞更少)当前存储在BPT中的优选路径信息的拥塞指标),则所存储的优选路径信息应该更新。
为了确定用于到达给定目的叶交换机110(例如,叶交换机#1 112)的优选路径信息,叶交换机#(k/2+1)114考虑PFP提供的拥塞信息,所述PFP由与该目的叶交换机110链接的汇聚交换机130发起。例如,为了确定是否应该更新用于到达叶交换机#1 112的所存储的优选路径信息,叶交换机#(k/2+1)考虑由汇聚交换机#1 132发起的PFP提供的拥塞信息。
在示例中,叶交换机#(k/2+1)114可以首先基于端口利用率进行比较。如果基于端口利用率的比较没有定论(例如,端口利用率值相等或相似),则可以基于交换延迟进行进一步的比较。
在此示例中,叶交换机#(k/2+1)114首先计算临时端口利用率(Tmp_port_utilization),如下所示:
Tmp_port_utilization=Max(Pf的端口利用率,由所述PFP遍历的脊交换机140添加的端口利用率,由相邻汇聚交换机130添加的端口利用率,由所述PFP遍历的远程汇聚交换机130添加的端口利用率)
叶交换机#(k/2+1)114还计算临时路径延迟(Tmp_path_delay),如下所示:
Tmp_path_delay=从Pg到Pf的跳跃延迟+由所述PFP遍历的脊交换机140的跳跃延迟+相邻汇聚交换机130的跳跃延迟+所述PFP遍历的远程汇聚交换机130的跳跃延迟。
如果Tmp_port_utilization小于为目的叶交换机#1 112索引的任何存储的优选路径信息的Best_Path_port_utilization,则需要更新。在525处,在所述BPT中具有最大Best_Path_port_utilization值的优选路径信息可以更新如下:
Leaf_Port_ID=端口Pf的ID
Agg_Port_ID=来自所述PFP的Agg_Port_ID
Best_Path_port_utilization=Tmp_port_utilization
Best_Path_delay=Tmp_path_delay
如果Tmp_port_utilization与为目的叶交换机#1 112索引的任何存储的优选路径信息的Best_Path_port_utilization相等或相似,并且Tmp_port_utilization大于软件可配置阈值,则考虑用Tmp_path_delay来确定是否需要更新。当这些值之间的差小于软件可配置阈值时,可以认为Tmp_port_utilization与Best_Path_port_utilization大致相同。
在具有Best_Path_port_utilization与Tmp_port_utilization相等或相似的所述存储的优选路径信息中,如果Tmp_path_delay小于Best_Path_delay,则需要更新。在520处,可以如上所述更新在所述BPT中具有最大Best_Path_delay值的优选路径。
否则,确定不需要更新(即,当前存储的优选路径信息具有更好的拥塞指标)。在530处,保留当前存储的优选路径信息。
可以使用其他方法确定和更新所述优选路径信息。在图5的示例性方法之后,可以终止(例如,丢弃)所述PFP。
叶交换机110还可以执行BPT老化(例如,使用类似于MAC表老化的机制)以确保所述BPT中的条目是最新的。扫描周期是可配置的,例如在大约1ms到大约200ms的时间范围内。如果所述BPT中的条目在超过所述扫描周期的时间段内未更新,则该条目可标记为已过期且可能不再使用。
所存储的优选路径信息由叶交换机110用于报文转发。报文沿着优选路径按照与PFP遍历方向相反的方向转发。因此,在本文描述的各种示例中,按报文转发的相反方向收集拥塞信息。下面结合图6和图7描述用于报文转发的示例性方法。
图6示出了从源叶交换机#(k/2+1)114到目的叶交换机#1 112的示例性优选路径(用黑色箭头指示)。叶交换机#(k/2+1)114可以执行图7的示例性方法来选择转发报文的优选路径。通常,图7的示例性方法可以通过任一源叶交换机110来执行。图7的示例性方法可以在新流开始时执行,也可以在现有子流准备交换到另一路径时执行。可以使用子流表来确定子流是否应该交换到另一个路径,如下面进一步描述。
在705处,叶交换机#(k/2+1)114接收用于选择优选路径的触发。该触发可以是(例如,从连接的终端设备)接收报文来将新流转发到另一终端设备。该触发也可以是叶交换机#(k/2+1)确定(例如,使用如下面进一步描述的子流表)所述报文是准备交换到另一路径的子流的一部分后的结果。
在710处,叶交换机#(k/2+1)114确定(例如,使用传统的目的地查找)所述目的终端设备所连接的目的叶交换机。在图6的示例中,目的叶交换机是叶交换机#1 112。
在715处,叶交换机#(k/2+1)114选择存储在其存储器中(例如,在其BPT中)的优选路径信息来转发所述报文。例如,叶交换机#1 112的标识符可以作为索引来查找存储在所述BPT中的一个或多个记录。在叶交换机#1 112索引了两个或更多个优选路径记录的情况下,叶交换机#(k/2+1)114可以随机地或根据预定标准选择一个优选路径记录(例如,哪个优选路径使用次数最少或者上次未使用)。
在720处,叶交换机#(k/2+1)114将所选择的优选路径信息插入所述报文中。可以仅插入一部分优选路径信息,而不是存储的整个记录。例如,叶交换机#(k/2+1)114可以修改所述报文的报头以包含一个或多个后续交换机所使用的转发所述报文的端口的标识信息。所述报文报头足以识别要在所述路径的上游部分中使用的端口。
在图6的示例中,可以修改所述报文的报头来识别汇聚交换机#2 134要使用的上行链路端口,以便将所述报文转发到脊交换机#1 142。例如,叶交换机#(k/2+1)114可以在所述报文的MAC报头之后插入多协议标签交换(multiprotocol label switching,简称MPLS)标签,其中所述MPLS标签的值设置为标识汇聚交换机#2 134所要使用的出端口。在网络中的层数较多的情况下,可以插入额外的MPLS标签来识别要由其他层使用的出端口。在网络中的层数较少的情况下(例如,没有汇聚层),可能没有必要将优选路径信息插入到所述报文中。
在所述优选路径信息与子流关联存储的示例中(例如,使用如下所述的子流表),叶交换机#(k/2+1)114可以使用所选择的优选路径信息更新用于所述子流的已存储优选路径信息。
在725处,叶交换机#(k/2+1)114根据所选择的优选路径信息发送所述报文,例如安排所述报文从所述优选路径信息中定义的上行链路端口发送。在图6的示例中,叶交换机#(k/2+1)114从适当的上行链路端口将所述报文发送到汇聚交换机#2 134。
当在汇聚交换机#2 134处接收到所述报文时,汇聚交换机#2 134使用所述报文中包含的优选路径信息来确定所述报文的出端口。例如,汇聚交换机#2 134使用所述报文的报头中包含的MPLS标签将所述报文转发到适当的出端口,并且还从所述报文中去除所述MPLS标签。这样也可以将所述报文从适当的上行链路端口发送到脊交换机#2 142。
当脊交换机#2 142接收到所述报文时,脊交换机#2 142进行传统的目的地查找并将所述报文转发到汇聚交换机#1 132。当汇聚交换机#1 132接收到所述报文时,汇聚交换机#1 132进行传统的目的地查找并将报文转发到叶交换机#1 112。然后,叶交换机#1 112将所述报文转发到所述目的终端设备。
对于动态负载均衡,叶交换机110可以维护给定流中的子流的信息。叶交换机110可以使用该信息来确定子流是否可以交换到另一出端口。这里描述的示例可以实现可扩展的子流交换,其中仅在网络100的叶交换机110中跟踪子流状态。
例如,叶交换机110可以按子流表的形式存储子流信息,所述子流表可以有多达128,000个条目。所述子流表中的每个条目可以对应于当前子流。每个条目可以包含为所述子流选择的优选路径信息,以及指示所述子流是否准备好交换到另一路径的指示符。可以通过散列所选择的报文报头字段来索引所述子流表中的条目。所述子流表中的条目可能包含以下字段,例如:
Curr_Leaf_Port_ID(例如,8位长):所述子流当前使用的叶交换机中的出端口的标识符;
Curr_Agg_Port_ID(例如,8位长):所述子流当前使用的后续汇聚中的出端口的标识符;
状态(例如,1位长):指示所述子流是否准备好交换到另一出端口;
速率(例如,10位长):存储所述子流的传输速率的测量值,可以使用滑动平均方案来更新该字段。
在网络中的层数多于三层的情况下,所述条目可以具有附加字段以指示所述附加层中的出端口的标识符。类似地,如果网络中的层数少于三层,则该条目可能具有较少的端口标识符字段。
所述子流是否准备好交换到另一端口可以基于时间标准。例如,可以使用子流表老化(例如,使用类似于MAC表老化的机制),例如在大约0.1ms到大约50ms的时间范围内使用扫描周期。老化结果可用于更新所述状态字段以指示子流是否准备好交换到另一端口。在一些示例中,可以为最后接收的子流报文存储时间戳。当新报文到达时,可以将新报文的到达时间与存储在子流表中的时间戳进行比较,并使用时间间隔(所述时间戳之间的差)来确定子流是否准备好交换到另一路径。这可能有助于减少老化扫描所需的存储器带宽。当两个连续报文的时间戳之间的时间间隔超过预定阈值时,可以将所述状态字段设置为指示所述子流已准备好交换。例如,所述阈值可能要求时间间隔大于α×(所述子流的电流路径的路径延迟),其中α是可配置系数(例如,在1到2的范围内)。
叶交换机110可以在接收到报文时更新所述子流信息。如果所述子流信息(例如,所述状态字段)指示关联的子流已准备好交换到另一路径,则可以触发叶交换机110执行图7的示例性方法来选择所述子流的优选路径信息。优选路径信息的选择可能导致所述子流与先前子流被分配了相同的优选路径(例如,相同的优选路径具有最优的拥塞指标)。叶交换机110可以更新子流信息(例如,Curr_Leaf_Port_ID和Curr_Agg_Port_ID字段)以指示为所述子流选择的优选路径信息。如果所述子流信息指示所述关联的子流还没有准备好交换到另一路径,则可以使用当前选择的(例如,存储在所述子流表中的)优选路径信息来发送所接收的报文。
在一些示例中,如在大型数据中心网络中,限制所述PFP消耗的带宽可能会有用。可以减少所述PFP中承载的拥塞信息,例如仅包括端口利用率信息,来减少所述PFP消耗的带宽。
例如,当所述发起汇聚交换机生成PFP时,所述发起汇聚交换机将其所有上行链路端口的接收端口利用率信息包括在所述PFP中。然后,通过选定的上行链路端口Pa发送所述PFP。假设从所述汇聚交换机的上行链路端口Pa发送到接收脊交换机的端口Py的PFP。这里,端口Pa的传输速率认为与端口Py的接收速率相同。另外,端口Pa和端口Py可以认为具有相同的容量。因此,端口Pa的接收端口利用率可以用作端口Py的发送端口利用率。结果,汇聚交换机可以生成一个PFP,其包括所有上行链路端口的接收端口利用率信息和所有下行链路端口的发送端口利用率信息,并且将所述PFP发送到所选择的脊交换机,而不是通过每个上行链路端口都发送一个PFP。节省了组播所述PFP所需的带宽,这对于大型网络可能会有用。如果指向所选脊交换机的链路出现故障,则所述汇聚交换机会选择另一上行链路端口来发送所述PFP。因此,同一平面中的所有汇聚交换机都接收所述PFP。
在接收所述PFP时,脊交换机执行PFP组播转发,而不向所述PFP添加信息。因此,可能不需要更新传统的脊交换机来支持PFP处理。当汇聚交换机收到PFP时,所述汇聚交换机会添加有关接收所述PFP的端口的发送端口利用率的信息。然后,汇聚交换机将所述PFP组播到与其连接的叶交换机。因此,在该示例中,所述PFP以端口利用率信息的形式包括仅从汇聚交换机收集的拥塞信息。
所述PFP可以在其净负荷中包含将端口利用率信息与汇聚交换机的相应端口相关联的一组记录。在所述记录中,上行链路端口可以与所述汇聚交换机的标识符相关联,而下行链路端口可以与连接到该下行链路端口的叶交换机的标识符相关联。例如,记录可包含以下字段:
Switch_ID:对于上行端口,这是标识所述汇聚交换机的标识符;对于下行链路端口,这是标识连接到所述下行链路端口的叶交换机的标识符;
Port_utilization:提供有关所述上行或下行链路端口的端口利用率的信息,如前所述计算。对于下行链路端口,表示发送端口利用率。对于上行链路端口,表示接收端口利用率。
当所述叶交换机处理所述PFP时,仅使用端口利用率信息来确定所述优选路径信息,而不使用交换延迟信息。
在一些示例中,当转发报文时,可以在不使用MPLS标签的情况下插入关于所述报文的优选路径的信息。例如,对于虚拟可扩展局域网(Virtual Extensible Local AreaNetwork,简称VxLAN)报文或通用路由封装协议的网络虚拟化(Network Virtualizationusing Generic Routing Encapsulation,简称NVGRE)报文,保留的VxLAN和NVGRE报头字段可用于存储有关所述优选路径的信息。
在上述示例中,用于报文转发的优选路径可以仅针对所述路径的上游部分在所述报文报头中定义,因为可以通过目的地查找来确定所述下游部分。在一些示例中,可以通过在所述报文报头中明确定义所述优选路径的下游部分来避免使用目的地查找。这可以降低子流交换功率。
例如,插入在所述报文报头中的优选路径信息可以包括沿着优选路径的所有出端口的MPLS标签(源叶交换机的出端口可能除外)。这样,所述路径的下游部分中的交换机可以简单地使用所述MPLS标签指定的出端口转发所述报文,而避免使用目的地查找。
为了实现这一点,所述PFP收集的信息可以包括用于识别出端口的端口标识符。生成所述PFP的发起汇聚交换机可以按记录的形式在所述PFP中插入拥塞信息,所述记录包括以下字段:
Leaf_ID:如上所述;
Port_utilization:如上所述;
Hop_delay:如上所述;
DnSm_Port_ID(例如,8位长):与Leaf_ID标识的叶交换机相关联的下行链路端口的标识符。
转发所述PFP的脊交换机可以按记录的形式在所述PFP中插入拥塞信息,所述记录包括以下字段:
Port_utilization:如上所述;
Hop_delay:如上所述;
Spine_Port_ID(例如,8位长):接收所述PFP的脊交换机端口的标识符。
对于每个记录,所述叶交换机保留的BPT还可以包括字段DnSm_Port_ID和Spine_Port_ID。这两个字段也可以添加到每个子流表条目中。
对于报文转发,所述源叶交换机可以在所述报文报头中插入三个MPLS标签,而不是一个,例如:
顶层MPLS标签,如上所述;
中层MPLS标签,表示来自所述子流表的Spine_Port_ID;
底层MPLS标签,表示来自所述子流表的DnSm_Port_ID。
因此,所述报文报头中的MPLS标签应该按照优选路径定义的发送所述报文的端口顺序从上到下排序。每个交换机在接收到所述转发报文后,移除最上面的MPLS标签,并将所述报文转发到所述移除的MPLS标签指定的端口。在图6的示例中,汇聚交换机#2 134移除并使用顶层MPLS标签,脊交换机#1 142移除并使用中层MPLS标签,汇聚交换机#1 132移除并使用底层MPLS标签。
对于具有更多层级的网络,上述示例可以扩展为在所述报文报头中包括三个以上的MPLS标签。由所述PFP收集的信息可以相应地包括所述附加层的出端口的标识符,并且可以向所述子流表中的每个条目添加附加字段。类似地,在具有较少层数的网络的情况下,可以包括较少的标签,所述PFP可以相应地包括较少层的信息,并且所述子流表可以包括较少的字段。对于添加的每个MPLS标签,关联的交换机可以使用MPLS标签查找来简化报文转发处理。这有助于实现更低的延迟和更低的功耗。
除端口利用率和交换延迟之外的其他拥塞指标也可用于确定优选路径信息。例如,可以使用最大跳跃延迟而不是跳跃延迟的总和来计算交换延迟。
尽管已经在三层网络的背景中描述了以上示例,但是本发明也可以类似地用于双层叶脊拓扑。对于双层网络,所述脊交换机可以类似于上述发起汇聚交换机生成PFP。当准备用于转发的报文时,叶交换机可能不需要将优选路径信息(例如,MPLS标签)插入到所述报文报头中。
这里描述的示例可以在现有网络中实现,而不需要更新现有的脊交换机。例如,在三层叶脊拓扑中,端口利用率可以用作所述拥塞指标。所述脊交换机可能只需要组播所述PFP,而无需修改所述PFP。所述汇聚交换机可以监视其上行链路端口的端口利用率,并使用上行链路端口的端口利用率来代替相关联的脊交换机端口的端口利用率。在双层叶脊拓扑中,所述叶交换机可以生成PFP,所述脊交换机可能仅需要组播所述PFP,而无需修改所述PFP。端口利用率可以用作所述拥塞指标。这里,所述叶交换机可以监视其上行链路端口的端口利用率,并使用上行链路端口的端口利用率来代替相关联的脊交换机端口的端口利用率。
尽管本发明可以按特定顺序描述方法和过程的步骤,但是可以适当地省略或改变方法和过程的一个或多个步骤。在适当的情况下,一个或多个步骤可以按不同于其描述的顺序发生。
尽管可以至少部分地按照方法描述本发明,但是本领域一般技术人员将理解,本发明还涉及用于执行所述方法的至少一些方面和特征的各种组件,无论是通过硬件组件、软件还是两者的任意组合。相应地,本发明的技术方案可通过软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其他类似的非易失性或非瞬时性计算机可读介质中,包括DVD、CD-ROM、USB闪存盘、可移动硬盘或其他存储介质等。所述软件产品包括有形地存储在其上的指令,所述指令使处理设备(例如,个人计算机、服务器或网络设备)能够执行本文公开的方法的示例。
在不脱离权利要求的主题的前提下,本发明可以按其他特定形式实施。所描述的示例性实施例在各方面都仅仅是示意性的,而不是限制性的。可以组合来自上述一个或多个实施例的所选特征来创建未明确描述的替代实施例以及适合在本发明范围内理解的这类组合的特征。
还公开了所公开范围内的所有值和子范围。而且,尽管本文公开和示出的系统、设备和过程可以包括特定数量的元件/组件,但是所述系统、设备和组件还可以被修改为包括更多或更少的这类元件/组件。例如,尽管所公开的任何元件/组件可以作为单数引用,但是本文公开的实施例可以被修改为包括多个的这类元件/组件。本文描述的主题旨在涵盖并包含技术中的所有适当变化。

Claims (31)

1.一种在叶脊网络的第一交换机收集拥塞信息的方法,其特征在于,所述方法包括:
获取路径查找报文,所述路径查找报文的净负荷包括与所述叶脊网络的第二交换机的拥塞有关的第一记录;
获取与所述第一交换机的端口之间拥塞有关的拥塞信息;
将所述拥塞信息作为第二记录插入所述路径查找报文的所述净负荷中,从而使得所述净负荷包括与所述第二交换机的拥塞有关的第一记录以及与所述第一交换机的拥塞有关的第二记录;
发送所述路径查找报文,
其中,所述第一交换机和所述第二交换机均是叶交换机。
2.根据权利要求1所述的方法,其特征在于,获取所述路径查找报文包括:生成所述路径查找报文。
3.根据权利要求2所述的方法,其特征在于,获取所述拥塞信息包括:获取与所述第一交换机的每个下行链路端口处的拥塞有关的拥塞信息,并且发送所述路径查找报文包括:从所述交换机的多个上行链路端口组播所述路径查找报文。
4.根据权利要求1所述的方法,其特征在于,获取所述路径查找报文包括在所述第一交换机的接收端口处接收所述路径查找报文。
5.根据权利要求4所述的方法,其特征在于,获取所述拥塞信息包括:获取与所述接收端口处的拥塞有关的拥塞信息;以及发送所述路径查找报文包括从所述接收端口之外的多个其他端口组播所述路径查找报文。
6.根据权利要求4所述的方法,其特征在于,将所述拥塞信息与标识所述接收端口的标识符相关联地插入所述净负荷中。
7.根据权利要求1所述的方法,其特征在于,所述拥塞信息包括端口利用率信息和交换延迟信息中的至少一个。
8.根据权利要求1所述的方法,其特征在于,所述第一交换机是连接到脊交换机的汇聚交换机,其中所述拥塞信息包括端口利用率信息,并且所述汇聚交换机的出端口的发送端口利用率用于替代所述脊交换机的入端口的接收端口利用率。
9.根据权利要求8所述的方法,其特征在于,发送所述路径查找报文包括从所述出端口发送所述路径查找报文。
10.根据权利要求1所述的方法,其特征在于,由所述路径查找报文收集的拥塞信息涉及按照与所述路径查找报文遍历方向相反的方向转发的报文预计经历的拥塞。
11.一种在叶脊网络的第一叶交换机上确定优选路径信息的方法,其特征在于,所述优选路径信息定义了将报文从所述第一叶交换机转发到第二叶交换机的优选路径,所述方法包括:
接收路径查找报文,所述路径查找报文的净负荷包括与所述叶脊网络的所述第二叶交换机的拥塞有关的第一记录;
使用从所述路径查找报文的净负荷中获取的拥塞信息来确定所述优选路径信息,所述拥塞信息与所述路径查找报文所遍历的一个或多个交换机相关联,所述净负荷包括与所述第二叶交换机的拥塞有关的第一记录以及与所述第一叶交换机的拥塞有关的第二记录;
将所述优选路径信息与所述第二叶交换机的标识符关联存储。
12.根据权利要求11所述的方法,其特征在于,确定所述优选路径信息包括:
将来自所述路径查找报文的拥塞信息和与所述第一叶交换机存储的优选路径信息相关联的拥塞信息进行比较;
如果所述比较满足第一标准,则用所述路径查找报文中的拥塞信息更新所存储的优选路径信息。
13.根据权利要求11所述的方法,其特征在于,所述优选路径信息包括与所述优选路径的至少一个交换机的标识符关联存储的拥塞信息。
14.根据权利要求11所述的方法,其特征在于,所述拥塞信息包括端口利用率信息和交换延迟信息中的至少一个。
15.一种用于在叶脊网络中为要转发的报文选择优选路径的方法,其特征在于,所述方法包括:
接收用于为接收的报文选择优选路径的触发;
选择与所述报文的目的叶交换机相关联的优选路径信息,所述优选路径信息定义了至少一个用于转发所述报文的交换机的至少一个出端口,所述报文的净负荷包括与该叶脊网络的所述目的叶交换机的拥塞有关的第一记录以及与所述用于转发所述报文的交换机的拥塞有关的第二记录;
根据所选择的优选路径信息从上行链路端口发送所述报文。
16.根据权利要求15所述的方法,其特征在于,还包括在所述报文中插入所选择的优选路径信息的至少一部分。
17.根据权利要求16所述的方法,其特征在于,所述优选路径信息包括所述至少一个出端口的标识符,插入所选择的优选路径信息包括修改所述报文的报头以包括所述至少一个出端口的标识符。
18.根据权利要求17所述的方法,其特征在于,所述至少一个出端口的标识符是多协议标签交换(multiprotocol label switching,简称MPLS)标签。
19.根据权利要求17所述的方法,其特征在于,所述报文的报头被修改为包括用于转发所述报文的两个或更多个交换机的出端口的标识符,如所选择的优选路径信息所定义的。
20.根据权利要求15所述的方法,其特征在于,所述触发指示满足了时间标准。
21.根据权利要求20所述的方法,其特征在于,所述时间标准表示预定时间段期满。
22.根据权利要求20所述的方法,其特征在于,所述时间标准是所接收的报文与紧邻的前一报文之间的时间间隔超过预定阈值。
23.一种叶脊网络中的网络交换机,其特征在于,所述交换机包括处理器,所述处理器用于使所述交换机:
获取路径查找报文,所述路径查找报文的净负荷包括与所述叶脊网络的另一交换机的拥塞有关的第一记录;
获取与所述交换机的端口之间拥塞有关的拥塞信息;
将所述拥塞信息作为第二记录插入所述路径查找报文的所述净负荷中,从而使得所述净负荷包括与所述另一交换机的拥塞有关的第一记录以及与所述交换机的拥塞有关的第二记录;
发送所述路径查找报文,
其中,所述交换机和所述另一交换机均是叶交换机。
24.根据权利要求23所述的网络交换机,其特征在于,所述处理器用于使所述交换机:通过生成所述路径查找报文来获取所述路径查找报文,通过获取与所述交换机的每个下行链路端口处的拥塞相关的拥塞信息来获取所述拥塞信息,以及通过从所述交换机的多个上行链路端口组播所述路径查找报文来发送所述路径查找报文。
25.根据权利要求23所述的网络交换机,其特征在于,所述处理器用于使所述交换机:通过在所述交换机的接收端口处接收所述路径查找报文来获取所述路径查找报文,通过获取与所述接收端口的拥塞相关的拥塞信息来获取所述拥塞信息,以及通过从所述接收端口之外的多个其他端口组播所述路径查找报文来发送所述路径查找报文。
26.根据权利要求23所述的网络交换机,其特征在于,所述交换机是连接到脊交换机的汇聚交换机,其中所述拥塞信息包括端口利用率信息,并且所述汇聚交换机的出端口的发送端口利用率用于替代所述脊交换机的入端口的接收端口利用率。
27.一种叶脊网络中的叶交换机,其特征在于,所述交换机包括处理器,所述处理器用于使所述交换机:
接收路径查找报文,所述路径查找报文的净负荷包括与所述叶脊网络的另一叶交换机的拥塞有关的第一记录;
使用从所述路径查找报文的净负荷获取的拥塞信息确定优选路径信息,所述优选路径信息定义了将报文从所述叶交换机转发到所述另一叶交换机的优选路径,所述拥塞信息与所述路径查找报文所遍历的一个或多个交换机相关联,所述报文的净负荷包括与该叶脊网络的所述另一叶交换机的拥塞有关的第一记录以及与所述叶交换机的拥塞有关的第二记录;
将所述优选路径信息与所述另一叶交换机的标识符关联存储。
28.根据权利要求27所述的叶交换机,其特征在于,所述处理器还用于使所述交换机通过以下方式确定所述优选路径信息:
将来自所述路径查找报文的拥塞信息和与所述叶交换机存储的优选路径信息相关联的拥塞信息进行比较;
如果所述比较满足第一标准,则用所述路径查找报文中的拥塞信息更新所存储的优选路径信息;
其中,所述优选路径信息包括与所述优选路径的至少一个交换机的标识符关联存储的拥塞信息。
29.一种叶脊网络中的叶交换机,其特征在于,所述交换机包括处理器,所述处理器用于使所述交换机:
接收用于为接收的报文选择优选路径的触发;
选择与所述报文的目的叶交换机相关联的优选路径信息,所述优选路径信息定义了至少一个用于转发所述报文的交换机的至少一个出端口,所述报文的净负荷包括与该叶脊网络的所述目的叶交换机的拥塞有关的第一记录以及与所述用于转发所述报文的交换机的拥塞有关的第二记录;
根据所选择的优选路径信息从上行链路端口发送所述报文。
30.根据权利要求29所述的叶交换机,其特征在于,所选择的优选路径信息包括所述至少一个出端口的标识符,所述处理器还用于使所述交换机修改所述报文的报头以包括所述至少一个出端口的标识符。
31.根据权利要求30所述的叶交换机,其特征在于,所述至少一个出端口的标识符是多协议标签交换(multiprotocol label switching,简称MPLS)标签。
CN201680089212.9A 2016-09-12 2016-10-25 用于数据中心负载均衡的方法和系统 Active CN109691037B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/262,540 2016-09-12
US15/262,540 US10715446B2 (en) 2016-09-12 2016-09-12 Methods and systems for data center load balancing
PCT/CN2016/103258 WO2018045620A1 (en) 2016-09-12 2016-10-25 Methods and systems for data center load balancing

Publications (2)

Publication Number Publication Date
CN109691037A CN109691037A (zh) 2019-04-26
CN109691037B true CN109691037B (zh) 2021-01-15

Family

ID=61561080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680089212.9A Active CN109691037B (zh) 2016-09-12 2016-10-25 用于数据中心负载均衡的方法和系统

Country Status (3)

Country Link
US (1) US10715446B2 (zh)
CN (1) CN109691037B (zh)
WO (1) WO2018045620A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106998302B (zh) * 2016-01-26 2020-04-14 华为技术有限公司 一种业务流量的分配方法及装置
US10412005B2 (en) * 2016-09-29 2019-09-10 International Business Machines Corporation Exploiting underlay network link redundancy for overlay networks
US10848432B2 (en) * 2016-12-18 2020-11-24 Cisco Technology, Inc. Switch fabric based load balancing
US10778568B2 (en) * 2017-12-05 2020-09-15 Mellanox Technologies, Ltd. Switch-enhanced short loop congestion notification for TCP
US11044539B1 (en) * 2018-07-22 2021-06-22 Sam A Marshall Mouse over elephant
CN109525501B (zh) * 2018-12-27 2022-05-24 新华三技术有限公司 一种调整转发路径的方法和装置
DE112020002497T5 (de) 2019-05-23 2022-04-28 Hewlett Packard Enterprise Development Lp System und verfahren zur dynamischen zuweisung von reduktionsmotoren
US11334546B2 (en) * 2019-05-31 2022-05-17 Cisco Technology, Inc. Selecting interfaces for device-group identifiers
CN111314215A (zh) * 2020-02-17 2020-06-19 华云数据有限公司 数据报文转发控制方法及计算装置
CN112787925B (zh) * 2020-10-12 2022-07-19 中兴通讯股份有限公司 拥塞信息收集方法、确定最优路径方法、网络交换机
CN112383450A (zh) * 2020-11-30 2021-02-19 盛科网络(苏州)有限公司 一种网络拥塞检测方法及装置
CN113328959B (zh) * 2021-04-13 2022-05-27 新华三信息安全技术有限公司 一种报文转发方法、装置、电子设备及存储介质
US11876705B2 (en) * 2021-12-16 2024-01-16 Huawei Technologies Co., Ltd. Methods and systems for adaptive stochastic-based load balancing
US20230283543A1 (en) * 2022-03-04 2023-09-07 Microsoft Technology Licensing, Llc System and method for fault recovery in spray based networks
CN115134304B (zh) * 2022-06-27 2023-10-03 长沙理工大学 云计算数据中心避免数据包乱序的自适应负载均衡方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101365169A (zh) * 2007-08-09 2009-02-11 华为技术有限公司 路由控制的实现方法、系统、媒体网关及媒体网关控制器
CN101427497A (zh) * 2005-08-30 2009-05-06 思科技术公司 基于实时拥塞反馈来更新最佳路径的方法
CN103414650A (zh) * 2013-07-29 2013-11-27 上海华为技术有限公司 一种避免拥塞的路由方法和装置
CN103873367A (zh) * 2012-12-14 2014-06-18 国际商业机器公司 胖树网络中的无死锁路由
CN105706400A (zh) * 2013-11-05 2016-06-22 思科技术公司 网络结构覆盖
US9660914B1 (en) * 2014-05-08 2017-05-23 Google Inc. System and method for providing congestion notification in layer 3 networks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483379B2 (en) 2002-05-17 2009-01-27 Alcatel Lucent Passive network monitoring system
CN101083616B (zh) 2007-07-05 2010-08-18 上海交通大学 基于蚁群算法的无线自组网络节能按需路由方法
CN102065000B (zh) 2009-11-17 2013-02-13 中国移动通信集团公司 网络拥塞控制方法、装置及系统
US8995277B2 (en) * 2012-10-30 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Method for dynamic load balancing of network flows on LAG interfaces
US8958329B2 (en) * 2012-11-20 2015-02-17 Cisco Technology, Inc. Fabric load balancing
US10778584B2 (en) 2013-11-05 2020-09-15 Cisco Technology, Inc. System and method for multi-path load balancing in network fabrics
JP6295767B2 (ja) * 2014-03-25 2018-03-20 富士通株式会社 スイッチ装置、情報処理システムおよびスイッチ装置の制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101427497A (zh) * 2005-08-30 2009-05-06 思科技术公司 基于实时拥塞反馈来更新最佳路径的方法
CN101365169A (zh) * 2007-08-09 2009-02-11 华为技术有限公司 路由控制的实现方法、系统、媒体网关及媒体网关控制器
CN103873367A (zh) * 2012-12-14 2014-06-18 国际商业机器公司 胖树网络中的无死锁路由
CN103414650A (zh) * 2013-07-29 2013-11-27 上海华为技术有限公司 一种避免拥塞的路由方法和装置
CN105706400A (zh) * 2013-11-05 2016-06-22 思科技术公司 网络结构覆盖
US9660914B1 (en) * 2014-05-08 2017-05-23 Google Inc. System and method for providing congestion notification in layer 3 networks

Also Published As

Publication number Publication date
CN109691037A (zh) 2019-04-26
US20180077064A1 (en) 2018-03-15
US10715446B2 (en) 2020-07-14
WO2018045620A1 (en) 2018-03-15

Similar Documents

Publication Publication Date Title
CN109691037B (zh) 用于数据中心负载均衡的方法和系统
US9379975B2 (en) Communication control system, control server, forwarding node, communication control method, and communication control program
US9806994B2 (en) Routing via multiple paths with efficient traffic distribution
CN111107001B (zh) 网络中分段源路由的方法及存储介质
US9270598B1 (en) Congestion control using congestion prefix information in a named data networking environment
US9154394B2 (en) Dynamic latency-based rerouting
US8259585B1 (en) Dynamic link load balancing
US20170295100A1 (en) Virtual tunnel endpoints for congestion-aware load balancing
KR101317969B1 (ko) 링크 애그리게이션 방법 및 노드
EP2911348A1 (en) Control device discovery in networks having separate control and forwarding devices
US20020176363A1 (en) Method for load balancing in routers of a network using overflow paths
US20130286846A1 (en) Path weighted equal-cost multipath
US20120195229A1 (en) System and Method for Computing Point-To-Point Label Switched Path Crossing Multiple Domains
US20110211579A1 (en) Method, system and network node for setting up a label switching path
US8036220B2 (en) Pre-dropping of a packet if its time-to-live (TTL) value is not large enough to reach a destination
JP2006217597A (ja) パケットの流失を抑制するためのルーティング方法及び装置
WO2011082635A1 (en) System and method to support enhanced equal cost multi-path and link aggregation group
KR20190112804A (ko) 패킷 처리 방법 및 장치
CN108965121B (zh) 传输数据的方法、主机和交换机
US20130028094A1 (en) Fiber chanel device
CN108123878B (zh) 一种路由方法、装置及数据转发设备
US20180316599A1 (en) Routing packets considering the propagation delay of routes
CN111147381B (zh) 流量均衡方法和装置
KR102455886B1 (ko) 서비스 기능 체이닝 혼잡 피드백
CN112383450A (zh) 一种网络拥塞检测方法及装置

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