路徑加權(quán)的等價多路徑相關(guān)申請的交叉引用本申請要求于2012年4月25日提交的美國臨時專利申請第61/638,363號以及于2012年6月28日提交的美國專利申請第13/536,487號的權(quán)益,通過引證將每個的全部內(nèi)容結(jié)合于本文中。技術(shù)領(lǐng)域本公開涉及計算機網(wǎng)絡(luò),更具體地,涉及在網(wǎng)絡(luò)內(nèi)分配流量負(fù)載。
背景技術(shù):計算機網(wǎng)絡(luò)為多個可交換數(shù)據(jù)并且共享資源的計算裝置互相連接的集合。在基于數(shù)據(jù)包的網(wǎng)絡(luò)內(nèi),計算裝置通過將數(shù)據(jù)分成稱為數(shù)據(jù)包的小塊來通信數(shù)據(jù),這些數(shù)據(jù)包經(jīng)由網(wǎng)絡(luò)被分別地從源裝置路由到目的地裝置。目的地裝置從數(shù)據(jù)包中提取數(shù)據(jù)并且將數(shù)據(jù)組合成其原始的形式。將數(shù)據(jù)分成數(shù)據(jù)包使得源裝置僅重新發(fā)送在傳輸過程中丟失的那些個別的數(shù)據(jù)包。網(wǎng)絡(luò)路由器保持用于描述通過網(wǎng)絡(luò)可用的路徑的路由信息。一旦接收到數(shù)據(jù)包,路由器檢查數(shù)據(jù)包內(nèi)的信息并且根據(jù)路由信息轉(zhuǎn)發(fā)數(shù)據(jù)包。為了保持網(wǎng)絡(luò)的精確表示,路由器根據(jù)一個或多個路由協(xié)議交換路由信息,例如,內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)或邊界網(wǎng)關(guān)協(xié)議(BGP)。計算網(wǎng)絡(luò)可具有平行的數(shù)據(jù)路徑。例如,網(wǎng)絡(luò)可具有多個互連的中間裝置,這些裝置提供從入站邊緣路由器到出站邊緣路由器的連接。在普通的路由網(wǎng)絡(luò)內(nèi),入站邊緣路由器做出路由決定,以將流量轉(zhuǎn)發(fā)給出站邊緣路由器。根據(jù)每個數(shù)據(jù)包內(nèi)的信息以及操作路由協(xié)議時所獲悉的路由信息,入站邊緣路由器選擇相鄰的“下一跳”路由器并且將數(shù)據(jù)包轉(zhuǎn)發(fā)出至將路由器耦接至所選的下一跳路由器的出站物理鏈路上。例如,入站邊緣路由器可在選擇下一跳時,選擇成本最低的物理鏈路。在某些情況下,入 站邊緣路由器在將數(shù)據(jù)包轉(zhuǎn)發(fā)到下一跳路由器(即,耦接至其輸出物理鏈路的相鄰路由器)時,試圖進(jìn)行負(fù)載平衡。結(jié)果,在兩個位置之間傳輸?shù)哪承?shù)據(jù)包可使用一條路徑,而其他數(shù)據(jù)包可使用一個或多個預(yù)備的路徑。
技術(shù)實現(xiàn)要素:通常,描述了用于根據(jù)為每條路徑計算的帶寬量,對通過網(wǎng)絡(luò)至目的地的多條路徑之間的網(wǎng)絡(luò)流量進(jìn)行負(fù)載平衡的技術(shù)。所算出的帶寬量限定了在網(wǎng)絡(luò)裝置的輸出接口上可發(fā)送的帶寬量,其中該輸出接口用于將多個路徑中的一個路徑上的網(wǎng)絡(luò)流量發(fā)送至目的地。根據(jù)本公開的技術(shù),計算路由器可通過考慮由多個路徑共享的下游網(wǎng)絡(luò)鏈路以及影響下游路由器如何在其自身至目的地的轉(zhuǎn)發(fā)路徑之間分割其流量的方式,計算用于每個轉(zhuǎn)發(fā)路徑的帶寬量。例如,沿著等價轉(zhuǎn)發(fā)路徑的下游路由器并非均配置有本文中所述的加權(quán)等價多路徑(ECMP)算法,而是可在與等價轉(zhuǎn)發(fā)路徑相關(guān)聯(lián)的輸出接口之間均勻地進(jìn)行負(fù)載平衡,而無需考慮下游(即,朝向目的地)發(fā)生的事情。計算路由器在進(jìn)行其自身路徑帶寬決定和相應(yīng)的負(fù)載平衡分割時,可考慮下游路由器的行為。通過表示下游路由器是否具有解決在共享網(wǎng)絡(luò)鏈路的多條轉(zhuǎn)發(fā)路徑之間分割共享網(wǎng)絡(luò)鏈路的鏈路帶寬的能力的能力通告,計算路由器可獲悉下游路由器的能力。網(wǎng)絡(luò)裝置(例如,路由器)可識別和選擇通過網(wǎng)絡(luò)至目的地的多條轉(zhuǎn)發(fā)路徑。多條轉(zhuǎn)發(fā)路徑可為均滿足一個或多個約束條件的非環(huán)狀路徑,例如,至目的地表現(xiàn)出相同成本的多條轉(zhuǎn)發(fā)路徑。雖然在某些示例方面,所選的轉(zhuǎn)發(fā)路徑為并非所有均具有均等成本的非環(huán)狀路徑,但是多個所選的轉(zhuǎn)發(fā)路徑在本文中通常稱為“等價”轉(zhuǎn)發(fā)路徑。路由器可從網(wǎng)絡(luò)中的其他路由器接收關(guān)于沿著所選轉(zhuǎn)發(fā)路徑的每個網(wǎng)絡(luò)鏈路的通告鏈路帶寬或其他約束信息。例如,一個以上等價轉(zhuǎn)發(fā)路徑可共享沿著等價轉(zhuǎn)發(fā)路徑的單個網(wǎng)絡(luò)鏈路。即,源自不同下一跳路由器的路徑可重疊并且需要共享下游的一個或多個共同鏈路。一方面,一旦確定由多個等價轉(zhuǎn)發(fā)路徑中的多個共享的一 個網(wǎng)絡(luò)鏈路時,計算路由器可計算在輸出接口上可發(fā)送給下一跳路由器的帶寬量,以實現(xiàn)在共享網(wǎng)絡(luò)鏈路的多個等價轉(zhuǎn)發(fā)路徑之間分割共享網(wǎng)絡(luò)鏈路的鏈路帶寬。在某些示例中,路由器隨后可計算每個輸出接口的權(quán)重,該權(quán)重與所算出的用于每個輸出接口的帶寬量成比例。路由器隨后例如根據(jù)每個數(shù)據(jù)包流,以與路由器為輸出接口所算出的各個權(quán)重成比例的方式將網(wǎng)絡(luò)流量分配和轉(zhuǎn)發(fā)給不同等價轉(zhuǎn)發(fā)路徑的相應(yīng)下一跳。本公開的技術(shù)可具有一個或多個優(yōu)點。例如,將這些技術(shù)用于沿著路徑,根據(jù)各自所有算出的路徑帶寬,在ECMP集合的等價轉(zhuǎn)發(fā)路徑之間分配網(wǎng)絡(luò)流量,可使高路徑帶寬路徑相對于低路徑帶寬路徑所攜帶的網(wǎng)絡(luò)流量增加。這可降低ECMP集合內(nèi)發(fā)生擁塞的可能性,并且提高網(wǎng)絡(luò)吞吐量。本公開的技術(shù)因此可允許使用不同的網(wǎng)絡(luò)結(jié)構(gòu),并且也可減少同時進(jìn)行相等鏈路升級的需要。本文中所描述的加權(quán)的ECMP技術(shù)不僅可用于互聯(lián)網(wǎng)協(xié)議(IP)和標(biāo)簽分發(fā)協(xié)議(LDP)流量,而且還可用于基于流量工程擴(kuò)展的資源預(yù)留協(xié)議(RSVP-TE)流量,包括當(dāng)子LSP被信號通知不需要預(yù)留帶寬時的RSVP-TE多路徑流量。在一個示例方面,一種方法包括由網(wǎng)絡(luò)的第一路由器接收位于網(wǎng)絡(luò)的第一路由器和第二路由器之間的網(wǎng)絡(luò)的一個或多個網(wǎng)絡(luò)鏈路中的每個的鏈路帶寬;由所述第一路由器選擇均滿足約束條件的所述第一路由器到所述第二路由器的多個轉(zhuǎn)發(fā)路徑;以及一旦第一路由器確定由多條轉(zhuǎn)發(fā)路徑中的多個共享一個網(wǎng)絡(luò)鏈路時,計算可在所述第一路由器的輸出接口上向共享一個網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑上的相鄰節(jié)點發(fā)送的帶寬量,其中,計算所述帶寬量包括考慮在共享所述網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑之間分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬,以及當(dāng)下游路由器算出可在所述下游路由器的輸出接口上發(fā)送的帶寬量時,考慮不將在共享所述網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑之間分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬考慮的下游路由器。該方法還包括至少根據(jù)所算出的帶寬量,由所述第一路由器選擇地將數(shù)據(jù)包流分配給第一路由器的多個輸出接口中的每個;由所述第一路由器接收數(shù)據(jù)包流 的數(shù)據(jù)包;以及將每個數(shù)據(jù)包流的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述多個輸出接口中該數(shù)據(jù)包流所分配給的輸出接口。在某些示例方面,該方法進(jìn)一步包括接收表示下游路由器是否具有考慮在共享網(wǎng)絡(luò)鏈路的多條轉(zhuǎn)發(fā)路徑之間分割共享網(wǎng)絡(luò)鏈路的鏈路帶寬的能力的能力通告。在該方法的某些示例方面,選擇性地分配數(shù)據(jù)包流包括識別要求至少一個性能特性的數(shù)據(jù)包流,以及將所識別的數(shù)據(jù)包流分配給多條轉(zhuǎn)發(fā)路徑中滿足性能特性的轉(zhuǎn)發(fā)路徑。在該方法的某些示例方面,識別多條轉(zhuǎn)發(fā)路徑包括識別多條轉(zhuǎn)發(fā)路徑直到所配置的最大數(shù)量的轉(zhuǎn)發(fā)路徑。在該方法的某些示例方面,共享網(wǎng)絡(luò)鏈路位于下游路由器和第二路由器之間,并且其中,共享網(wǎng)絡(luò)鏈路直接耦接至下游路由器。在另一個示例方面,一種網(wǎng)絡(luò)裝置包括:控制單元,包括一個或多個處理器;控制單元的路由協(xié)議軟件,接收位于網(wǎng)絡(luò)的網(wǎng)絡(luò)裝置和第二網(wǎng)絡(luò)裝置之間的網(wǎng)絡(luò)的一個或多個網(wǎng)絡(luò)鏈路中的每個的鏈路帶寬,其中,路由協(xié)議軟件用于執(zhí)行路由協(xié)議,以選擇均滿足約束條件的從網(wǎng)絡(luò)裝置到第二網(wǎng)絡(luò)裝置的多個轉(zhuǎn)發(fā)路徑。網(wǎng)絡(luò)裝置還包括控制單元的路徑權(quán)重計算器,用于在一旦確定由多個轉(zhuǎn)發(fā)路徑中的多個共享一個網(wǎng)絡(luò)鏈路時,計算可在第一路由器的輸出接口上向共享一個網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑上的鄰近節(jié)點發(fā)送的帶寬量,其中,計算所述帶寬量時,所述路徑權(quán)重計算器考慮在共享所述網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑之間分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬,以及當(dāng)下游路由器算出可在下游路由器的輸出接口上發(fā)送的帶寬量時,考慮不將在共享所述網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑之間分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬考慮的下游路由器。網(wǎng)絡(luò)裝置進(jìn)一步包括控制單元的多路徑轉(zhuǎn)發(fā)元件,用于至少根據(jù)所算出的帶寬量,選擇性地將數(shù)據(jù)包流分配給第一路由器的多個輸出接口中的每個;以及一個或多個接口卡,用于接收數(shù)據(jù)包流的數(shù)據(jù)包,其中,所述多路徑轉(zhuǎn)發(fā)元件將每個數(shù)據(jù)包流的數(shù)據(jù)包轉(zhuǎn)發(fā)給多個輸出接口中該數(shù)據(jù)包流所分配給的相應(yīng)的輸出接口。在另一個示例方面,一種計算機可讀存儲介質(zhì)包括指令,所述指令用于使可編程的處理器執(zhí)行以下步驟:接收位于網(wǎng)絡(luò)的第一路由器和第二路由器之間的網(wǎng)絡(luò)的一個或多個網(wǎng)絡(luò)鏈路中的每個的鏈路帶寬;選擇均滿足約束條件的第一路由器到第二路由器的多條轉(zhuǎn)發(fā)路徑;以及一旦確定由所述多個轉(zhuǎn)發(fā)路徑中的多個共享一個網(wǎng)絡(luò)鏈路之后,計算可在所述第一路由器的輸出接口上向共享一個網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑上的相鄰節(jié)點發(fā)送的帶寬量,其中,計算所述帶寬量包括考慮在共享所述網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑之間分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬,以及當(dāng)下游路由器算出可在所述下游路由器的輸出接口上發(fā)送的帶寬量時,考慮不將在共享所述網(wǎng)絡(luò)鏈路的多個轉(zhuǎn)發(fā)路徑之間分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬考慮的下游路由器。該指令進(jìn)一步包括以下指令:至少根據(jù)所算出的帶寬量,選擇性地將數(shù)據(jù)包流分配給第一路由器的多個輸出接口中的每個;由所述第一路由器接收數(shù)據(jù)包流的數(shù)據(jù)包;以及將每個數(shù)據(jù)包流的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述多個輸出接口中所述數(shù)據(jù)包流所分配給的輸出接口。在附圖和以下描述中詳細(xì)地闡述了本公開的一個或多個方面。從說明書和附圖以及從權(quán)利要求書中,其他特征、目的地以及優(yōu)點是顯而易見的。附圖說明圖1為示出了用于執(zhí)行本公開中所描述的加權(quán)等價多路徑(ECMP)技術(shù)的示例網(wǎng)絡(luò)系統(tǒng)的框圖;圖2為示出了用于執(zhí)行本公開中所描述的帶寬可用性確定和加權(quán)ECMP流量分配技術(shù)的示例路由器的框圖;圖3為示出了根據(jù)本公開所描述的技術(shù)的圖2的示例路由器的示例操作的流程圖,該示例操作通過分析接口傳輸隊列特征通告鄰近鏈路的可用帶寬;圖4為示出了圖2的示例路由器的示例操作的流程圖,該示例操作根據(jù)本文所描述的方式的權(quán)重,計算ECMP集合的路徑的各個權(quán)重并且將流量分配給ECMP路徑;圖5為示出了具有路由器的示例網(wǎng)絡(luò)系統(tǒng)的框圖,這些路由器使用組合鏈路執(zhí)行加權(quán)ECMP技術(shù);圖6為示出了將本文中所述的可用帶寬信息編碼以用于路由協(xié)議的示例的框圖;圖7為示出了執(zhí)行本公開中所描述的加權(quán)ECMP技術(shù)的示例網(wǎng)絡(luò)系統(tǒng)的框圖;圖8為示出了圖2的示例路由器的示例操作的流程圖,該操作用于在到目的地裝置的多個ECMP路徑之間散布網(wǎng)絡(luò)流量。具體實施方式圖1是示出了執(zhí)行本公開中描述的示例性加權(quán)等價多路徑(ECMP)技術(shù)的示例網(wǎng)絡(luò)系統(tǒng)2的框圖。網(wǎng)絡(luò)6包括路由器10A-10E(“路由器10”),用于將從源裝置12A-12N(“源裝置12”)接收到的網(wǎng)絡(luò)數(shù)據(jù)包路由到目的地裝置14。網(wǎng)絡(luò)6可包括公共網(wǎng)絡(luò)(例如,因特網(wǎng))、專用網(wǎng)絡(luò)(例如,企業(yè)或服務(wù)供應(yīng)商所擁有和操作的那些專用網(wǎng)絡(luò))或公共和私用網(wǎng)絡(luò)的組合。結(jié)果,在本文中,網(wǎng)絡(luò)6可被可替換地稱為服務(wù)供應(yīng)商(SP)網(wǎng)絡(luò)。網(wǎng)絡(luò)6可包括一個或多個廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、虛擬局域網(wǎng)(VLAN)、虛擬專用網(wǎng)絡(luò)(VPN)和/或其他類型的網(wǎng)絡(luò)。在某些情況下,網(wǎng)絡(luò)6可為互聯(lián)網(wǎng)協(xié)議網(wǎng)絡(luò),其中,路由器10使用IP轉(zhuǎn)發(fā)來傳輸網(wǎng)絡(luò)數(shù)據(jù)包。在其他情況下,網(wǎng)絡(luò)6可為標(biāo)簽交換網(wǎng)絡(luò),其中,網(wǎng)絡(luò)裝置(例如,路由器10,通常稱為標(biāo)簽交換路由器或LSR)使用多協(xié)議標(biāo)簽交換(MPLS)信令協(xié)議,來建立標(biāo)簽交換路徑(LSP)以傳輸從源裝置12接收到的網(wǎng)絡(luò)數(shù)據(jù)包。網(wǎng)絡(luò)6的MPLS數(shù)據(jù)攜帶機制可視為位于開放式系統(tǒng)互連(OSI)模型的層2和層3之間,并且通常稱為層2.5協(xié)議。所涉及的后面帶數(shù)字的層可表示OSI模型的特定層??稍贖ubertZimmermann,“OSIReferenceModel-theISOModelofArchitectureforOpenSystemsInterconnection”,IEEETransactionsonCommunications,vol.28,no.4,1980,4,中找到有關(guān)OSI模型的更多信息,通過引證將其全文結(jié)合于本文中。在互聯(lián)網(wǎng)工程任務(wù)組(IETF)的網(wǎng)絡(luò)工作組于2001年1月起草的題為“多協(xié)議標(biāo)簽交換體系結(jié)構(gòu)(MultiprotocolLabelSwitchingArchitecture)”的請求注釋(RFC)3031內(nèi),可找出有關(guān)MPLS和MPLS的各種特征的其他信息以及有關(guān)MPLS的通用體系結(jié)構(gòu)信息,通過引證將 其結(jié)合于本文中。在某些情況下,網(wǎng)絡(luò)6可提供通用MPLS(GMPLS)。雖然本文中在某些情況下關(guān)于MPLS進(jìn)行描述,但是本公開的技術(shù)也可應(yīng)用于GMPLS中。因此,雖然圖1中示出為單個網(wǎng)絡(luò)6,但是網(wǎng)絡(luò)6可包括任何數(shù)量互連的共用或?qū)S镁W(wǎng)絡(luò),其中,各種網(wǎng)絡(luò)互相連接以形成各種虛擬網(wǎng)絡(luò)。此外,網(wǎng)絡(luò)6可包括用于轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的各種其他網(wǎng)絡(luò)裝置,例如,額外的路由器、交換機或網(wǎng)橋。網(wǎng)絡(luò)系統(tǒng)2的特定構(gòu)造僅僅為示例,并且路由器10可位于單個網(wǎng)絡(luò)內(nèi)或多個網(wǎng)絡(luò)內(nèi)。雖然關(guān)于路由器進(jìn)行描述,但是本技術(shù)的各方面可應(yīng)用于其他網(wǎng)絡(luò)裝置,例如,網(wǎng)橋、交換機、網(wǎng)關(guān)、網(wǎng)絡(luò)高速緩存器以及網(wǎng)絡(luò)加速裝置。在圖1的示例中,網(wǎng)絡(luò)系統(tǒng)2包括耦接至中間網(wǎng)絡(luò)6的多個源裝置12和目的地裝置14。每個源裝置12和目的地裝置14可為個人計算機、膝上型計算機、移動電話、網(wǎng)絡(luò)電話、電視機頂盒、裝入車輛內(nèi)的網(wǎng)絡(luò)裝置、視頻游戲系統(tǒng)、銷售點裝置、個人數(shù)字助理、中間網(wǎng)絡(luò)裝置、網(wǎng)絡(luò)設(shè)備、超級計算機、大型計算機或能夠與網(wǎng)絡(luò)6接口以及通過網(wǎng)絡(luò)6進(jìn)行通信的其他類型的裝置。源裝置12和目的地裝置14通過接入鏈路5與網(wǎng)絡(luò)6連接,這些接入鏈路可包括有線和/或無線通信鏈路。本文中所使用的術(shù)語“通信鏈路”包括任何形式的傳輸介質(zhì)(有線或無線),并且可包括中間節(jié)點,例如,網(wǎng)絡(luò)裝置。每條接入鏈路5可包括例如非對稱DSL網(wǎng)絡(luò)、WiMAX、T-1線路、綜合服務(wù)數(shù)字網(wǎng)(ISDN)或有線以太網(wǎng)的各方面。網(wǎng)絡(luò)6的多個物理和虛擬通信鏈路將路由器10互連,以有助于控制路由器之間進(jìn)行的數(shù)據(jù)通信。網(wǎng)絡(luò)6的物理鏈路可包括例如以太網(wǎng)PHY、同步光網(wǎng)絡(luò)(SONET)/同步數(shù)字體系(SDH)、λ、或具有數(shù)據(jù)包傳輸功能的其他層2數(shù)據(jù)鏈路。網(wǎng)絡(luò)6的邏輯鏈路可包括例如以太網(wǎng)虛擬LAN、MPLSLSP或MPLS-TELSP。路由器10使用一個或多個內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),來獲悉網(wǎng)絡(luò)6內(nèi)部的通信鏈路的鏈路狀態(tài)/度量值。例如,路由器10A可使用開放式最短路徑優(yōu)先(OSPF)或中間系統(tǒng)到中間系統(tǒng)(IS-IS)協(xié)議,來與路由器10B-10E 交換路由信息。路由器10A將路由信息存儲到路由信息庫中,路由器使用該信息庫計算至網(wǎng)絡(luò)6內(nèi)所通告的目的地地址的最佳路線。在某些情況下,路由器10支持流量工程,以提高通過網(wǎng)絡(luò)6的路徑的利用率。通常,流量工程指的是將流量流從網(wǎng)絡(luò)6的內(nèi)部網(wǎng)關(guān)協(xié)議所算出的最短路徑中移開,并且移向經(jīng)由網(wǎng)絡(luò)的擁塞潛在更少或以其他方式更期望的(從操作的觀點來看)物理路徑。例如,網(wǎng)絡(luò)6管理員或路由器10可使用基于流量工程擴(kuò)展的資源預(yù)留協(xié)議(RSVP-TE)或其他標(biāo)簽分發(fā)協(xié)議(例如,標(biāo)簽分發(fā)協(xié)議(LDP)),建立一個或多個LSP隧道,這些隧道使多對路由器10連接以將網(wǎng)絡(luò)流量路由為遠(yuǎn)離網(wǎng)絡(luò)故障、擁塞以及瓶頸。包括到LSP隧道的接口的路由器將度量值和LSP相關(guān)聯(lián)。LSP度量值可采用LSP進(jìn)行操作所經(jīng)由的下面的IP路徑的度量值,或者可由網(wǎng)絡(luò)6的管理員配置為不同的值,以影響路由器10做出的路由決定。路由器10執(zhí)行內(nèi)部網(wǎng)關(guān)協(xié)議,以通過路由協(xié)議消息進(jìn)行通信并且交換為LSP隧道所建立的度量值,并且將這些度量值存儲在相應(yīng)的路由信息庫內(nèi),以用于計算至網(wǎng)絡(luò)6內(nèi)所通告的目的地地址的最佳路線。例如,路由器10可使用OSPF轉(zhuǎn)發(fā)鄰接(FA),通告LSP隧道作為網(wǎng)絡(luò)6的IGP鏈路。因此,本文中所使用的術(shù)語“鏈路”或“通信鏈路”也可指的是通過層2通信鏈路進(jìn)行操作的LSP。建立RSVP-TE的LSP使用路由器10上的路徑狀態(tài)預(yù)留資源,從而確保這種資源可用于方便使用LSP轉(zhuǎn)發(fā)的網(wǎng)絡(luò)流量的服務(wù)類別(CoS)。例如,路由器10A可向路由器10D發(fā)布RSVP路徑消息,以使用關(guān)于路由器10A和路由器10B的路徑狀態(tài)建立LSP并且預(yù)留用于LSP的帶寬量。路由器10A、10B必須保持為映射到LSP的網(wǎng)絡(luò)流量所預(yù)留的帶寬量,直到LSP被搶占或被拆卸。在Awduche等人的、2001年12月的互聯(lián)網(wǎng)工程任務(wù)組,網(wǎng)絡(luò)工作組,請求注解3209的“RSVP-TE:為LSP隧道擴(kuò)展RSVP(RSVP-TE:ExtensionstoRSVPforLSPTunnels)”中,更完整地描述了RSVP-TE,其闡述的全部內(nèi)容通過引證結(jié)合于本文中。如本文中所述,路由器10可使用對IGP的擴(kuò)展,另外分布有關(guān)網(wǎng)絡(luò)負(fù)載的詳細(xì)知識。例如,路由器10可執(zhí)行本文所描述的基于流量工程擴(kuò) 展的IS-IS,流量工程擴(kuò)展使用新的類型長度值(TLV)。作為另一個示例,路由器10可使用不透明鏈路狀態(tài)通告(LSA),執(zhí)行基于流量工程擴(kuò)展的OSPF,以除了鏈路狀態(tài)和度量值以外,還分布鏈路狀態(tài)通告內(nèi)的鏈路屬性。在某些示例中,路由器10可通告網(wǎng)絡(luò)6的鏈路目前可用的帶寬,其考慮另外未計入的流量。即,路由器10監(jiān)控并通告鏈路目前可用的帶寬,表示為速率(例如,MB/s),其考慮未通過RSVP-TE被預(yù)留的并且目前未用于通過鏈路傳輸因特網(wǎng)協(xié)議(IP)數(shù)據(jù)包或LDP數(shù)據(jù)包的帶寬,其中,LDP數(shù)據(jù)包為具有由LDP分布的貼附標(biāo)簽的數(shù)據(jù)包。因此,鏈路目前可用的帶寬既未被預(yù)留也未用于傳輸使用未預(yù)留資源的流量。路由器10測量用于通過出站鏈路傳輸IP和LDP數(shù)據(jù)包的帶寬量,并且計算目前可用的帶寬,作為鏈路容量與所預(yù)留的帶寬和所測量的IP/LDP數(shù)據(jù)包帶寬的總和之間的差值。路由器10將所算出的用于其各自的出站鏈路的可用帶寬信息,作為鏈路狀態(tài)內(nèi)部網(wǎng)關(guān)協(xié)議所擴(kuò)展的鏈路狀態(tài)通告中的鏈路屬性進(jìn)行交換,并且將所接收到的鏈路屬性存儲到與通用路由信息庫(包括例如IGP鏈路狀態(tài)數(shù)據(jù)庫)不同的相應(yīng)流量工程數(shù)據(jù)庫(TED)中。路由器10A利用其路由信息庫執(zhí)行最短路徑優(yōu)先(SPF)算法,從而計算通過網(wǎng)絡(luò)6進(jìn)入路由器10D的最佳轉(zhuǎn)發(fā)路徑,通過該路徑可到達(dá)目的地裝置14。在某些情況下,路由器10A可通過其路由信息庫及其流量工程數(shù)據(jù)庫,執(zhí)行受約束的SPF(CSPF)算法,以在諸如輸入到CSPF算法的鏈路屬性要求的各種約束條件下,計算用于LSP的路徑。例如,路由器10A可在要求所算出的路由器10A到路由器10D的路徑的每個鏈路具有RSVP-TE目前未預(yù)留的至少規(guī)定的帶寬量的帶寬約束條件下,執(zhí)行CSPF算法。在圖1所述的示例中,路由器10A通過其路由信息和/或TED計算SPF或CSPF算法,該算法產(chǎn)生通過網(wǎng)絡(luò)6的并具有相等成本的多個最短路徑16A-16B(“路徑16”)。即,路由器10A到路由器10D的路由成本在橫穿路由器10A-10B-10D的路徑16A和橫穿路由器10A-10C-10E-10D的路徑16B之間是相等的。例如,路徑16均可表示LSP或IP路徑。已經(jīng)確定至路由器10D的路徑16具有相等的成本時,路由器10A可形成由兩個路徑16構(gòu)成的等價多路徑(ECMP)集合。在一個示例技術(shù)中,路由器10A基于沿著各個路徑當(dāng)前最小可用帶寬,另外地計算每個路徑16的權(quán)重。即,路由器10A訪問其TED,并且確定當(dāng)前可用于沿著每個路徑16的鏈路的集合的最小可用帶寬,然后,根據(jù)加權(quán)函數(shù),基于所確定的最小可用帶寬,計算各個路徑的權(quán)重。例如,路由器10A可通過首先讀取TED以確定路由器10A-路由器10B鏈路和路由器10B-路由器10D鏈路的可用帶寬,然后,比較可用帶寬以找出路徑16A的最低可用帶寬值,來確定路徑16A的最小可用帶寬。然后,路徑的多個鏈路中的最低可用帶寬值可用作路徑16A的最小可用帶寬。在一個示例中,當(dāng)路徑具有較高的最小可用帶寬時,權(quán)重路由器10A為該個路徑16計算一個較高的權(quán)重。路由器10A接收源自源裝置12并且通向目的地裝置14的網(wǎng)絡(luò)流量,將該流量分成數(shù)據(jù)包流22A-22D(“數(shù)據(jù)包流22”)中的一個。路由器10A根據(jù)所算出的用于路徑16的相應(yīng)權(quán)重,將各個數(shù)據(jù)包流22分配給到路由器10D的一個路徑16,該路徑16構(gòu)成ECMP集合。通常,由于所計算的權(quán)重,所以權(quán)重值越高,路由器10A分配給路徑的網(wǎng)絡(luò)流量的相對比例就越大。在所說明的示例中,路徑16A比路徑16B具有更高的相對最小可用帶寬,并且因此,與路徑16B相比,路由器10A為路徑16A計算出的權(quán)重更大。而且,一旦識別各個數(shù)據(jù)包流22,路由器10A根據(jù)所算出的用于路徑的權(quán)重,將各個數(shù)據(jù)流22分配給路徑16。由于路由器10A將更高的權(quán)重值和路徑16A相關(guān)聯(lián),所以路由器10A將多個數(shù)據(jù)包流(即,在該示例中,為數(shù)據(jù)包流22A、22B和22C)分配給路徑16A,而將少量的數(shù)據(jù)包流(僅僅為數(shù)據(jù)包流22D)分配給路徑16B。可連續(xù)地執(zhí)行所描述的技術(shù),以促進(jìn)數(shù)據(jù)包流隨著時間的動態(tài)負(fù)載平衡,該動態(tài)負(fù)載平衡響應(yīng)于ECMP集合內(nèi)路徑的下面鏈路的可用帶寬狀態(tài)而變化。這可改善網(wǎng)絡(luò)6內(nèi)的負(fù)載平衡,以同時減少擁塞并且提高網(wǎng)絡(luò)性能。例如,假設(shè)每個數(shù)據(jù)包流22在尺寸和速率方面與分成數(shù)據(jù)包流的數(shù)據(jù)包具有相似的配置,根據(jù)沿著每個路徑16的最小可用帶寬而非根據(jù)輪叫調(diào)度(Round-robin)技術(shù)分配數(shù)據(jù)包流22,可在路徑16之間提供更公平的 負(fù)載平衡,這是由于與路徑16B相比,路由器10A將更多的流分配給具有相對更高的最小可用帶寬的路徑16A。這就使路徑16A相對于路徑16B攜帶流22的流量中的更多量,從而相對于等流分發(fā)技術(shù),減少了路徑16B上的負(fù)載。圖2為示出用于執(zhí)行本公開中所描述的帶寬可用性確定和加權(quán)ECMP流分配技術(shù)的示例路由器28的框圖。路由器28可表示圖1的路由器10、和/或圖7的路由器210、源路由器212、目的地路由器214中的任一個的示例實施方式。路由器28包括控制單元30和通過內(nèi)部鏈路54A-54N與控制單元30耦接的接口卡48A-48N(“IFC48”)??刂茊卧?0可包括一個或多個處理器(圖2中未示出),這些處理器執(zhí)行軟件指令,例如,用于限定軟件或計算機程序的、存儲到計算機可讀存儲介質(zhì)(圖2中未示出)的那些指令,計算機可讀存儲介質(zhì)例如,包括存儲裝置(例如,硬盤驅(qū)動器或光盤驅(qū)動器)或存儲器(例如,閃速存儲器、隨機存取存儲器或RAM)或任何其他類型的易失性或非易失性存儲器的永久性計算機可讀介質(zhì),計算機可讀存儲介質(zhì)存儲指令以使一個或多個處理器執(zhí)行本文中所述的技術(shù)?;蛘?此外,控制單元30可包括用于執(zhí)行本文中所描述的技術(shù)的專用硬件,例如,一個或多個集成電路、一個或多個專用集成電路(ASIC)、一個或多個專用特殊處理器(ASSP)、一個或多個現(xiàn)場可編程門陣列(FPGA)、或?qū)S糜布那笆鍪纠囊粋€或多個的任意組合。而且,盡管關(guān)于特定的網(wǎng)絡(luò)裝置(例如,路由器)進(jìn)行了描述,但本公開的技術(shù)可用于其他類型的網(wǎng)絡(luò)裝置,例如,交換機、內(nèi)容服務(wù)器、網(wǎng)橋、多機箱路由器或能夠執(zhí)行所述技術(shù)的其他裝置。在這個示例中,將控制單元30分成兩個邏輯或物理“平面”,從而包括第一控制或路由平面32A和第二數(shù)據(jù)或轉(zhuǎn)發(fā)平面32B。即,控制單元30執(zhí)行兩個分離的功能,例如,邏輯上的路由和轉(zhuǎn)發(fā)功能,例如,作為在同一組硬件元件上執(zhí)行的不同軟件實例,或者物理上的路由和轉(zhuǎn)發(fā)功能,例如,作為靜態(tài)上實施硬件功能或動態(tài)上執(zhí)行軟件或計算機程序以執(zhí)行該功能的分離物理專用硬件元件??刂茊卧?0的控制平面32A執(zhí)行路由器28的路由功能。在這方面,控制平面32A表示執(zhí)行路由協(xié)議(圖2中未示出)的控制單元30的硬件或控制單元30的硬件和軟件的組合,通過該路由協(xié)議可確定存儲在路由信息庫38(“RIB38”)內(nèi)的路由信息。RIB38可包括限定網(wǎng)絡(luò)(例如,圖1的網(wǎng)絡(luò)6)拓?fù)涞男畔?,該網(wǎng)絡(luò)拓?fù)渫ㄟ^基于流量工程擴(kuò)展的內(nèi)部網(wǎng)關(guān)協(xié)議42(“IGP-TE42”)的路由協(xié)議守護(hù)進(jìn)程(daemon)40(“表示為RP守護(hù)進(jìn)程40”)執(zhí)行時獲悉。例如,RIB38可包括物理和邏輯鏈路(例如,通告為轉(zhuǎn)發(fā)鄰接的LSP)的鏈路狀態(tài)數(shù)據(jù)庫。RIB38還包括轉(zhuǎn)發(fā)數(shù)據(jù)庫,其存儲RP守護(hù)進(jìn)程40為不同的目的地所算出的路線。IGP-TE42可表示任何內(nèi)部路由協(xié)議的實施方式,該協(xié)議通知并且接收網(wǎng)絡(luò)鏈路的鏈路屬性。例如,IGP-TE42可表示OSPF-TE或IS-IS-TE。RIB38還可包括MPLS路由表,其存儲MPLS路徑以及通過網(wǎng)絡(luò)的LSP的標(biāo)簽信息。在這種情況下,IGP-TE42將LSP和相關(guān)的度量值作為轉(zhuǎn)發(fā)鄰接通告至該網(wǎng)絡(luò)的額外路由器上執(zhí)行的IGP-TE的其他實例。RP守護(hù)進(jìn)程40(例如,在路由器28的控制單元30上執(zhí)行的路由協(xié)議軟件)可分析RIB38內(nèi)的路由信息所限定的拓?fù)?,以選擇或確定通過網(wǎng)絡(luò)到不同目的地的一個或多個活動路線。然后,控制平面32A使用這些路線更新數(shù)據(jù)平面32B,其中,數(shù)據(jù)平面32B將這些路線作為將網(wǎng)絡(luò)目的地映射到一個或多個出站接口52的轉(zhuǎn)發(fā)信息70來保持。轉(zhuǎn)發(fā)或數(shù)據(jù)平面32B表示控制單元30的硬件或控制單元30的硬件和軟件的組合,其根據(jù)轉(zhuǎn)發(fā)信息70和/或流表72,將接口卡48經(jīng)由入站鏈路50A-50N接收的網(wǎng)絡(luò)流量通過接口卡48的出站鏈路52A-52N轉(zhuǎn)發(fā)。例如,在路由器28內(nèi)可將數(shù)據(jù)平面32B的各方面實施為一個或多個數(shù)據(jù)包轉(zhuǎn)發(fā)引擎(“PET”),這些數(shù)據(jù)包轉(zhuǎn)發(fā)引擎與IFC48中不同的一個相關(guān)聯(lián)并且通過交換機結(jié)構(gòu)彼此互連。控制平面32A還包括RSVP-TE36、IP37以及LDP39。路由器28使用IP37支持基于IP的轉(zhuǎn)發(fā),該轉(zhuǎn)發(fā)不使用MPLS標(biāo)簽或LSP。LDP39為用于在網(wǎng)絡(luò)內(nèi)分發(fā)與LSP相關(guān)的標(biāo)簽的信令協(xié)議??刂破矫?2A的RSVP-TE36為可用于建立通過網(wǎng)絡(luò)的顯式路由LSP的信令協(xié)議。RSVP-TE36可從管理員接收例如用于新LSP隧道的顯式路由路徑,以及為LSP隧道配置的度量值。RSVP-TE36請求下游路由器將標(biāo)簽綁定到路由器28所建立的特定LSP隧道中,并且可引導(dǎo)LSP隧道的下游理由器為LSP隧道的操作預(yù)留帶寬。此外,RSVP-TE36將MPLS轉(zhuǎn)發(fā)狀態(tài)安裝到轉(zhuǎn)發(fā)信息70中,以為LSP隧道的IFC48的一個出站鏈路52預(yù)留帶寬,并且一旦建立LSP,將LSP的標(biāo)簽映射到網(wǎng)絡(luò)流量,然后,數(shù)據(jù)平面32B根據(jù)LSP的MPLS轉(zhuǎn)發(fā)狀態(tài)轉(zhuǎn)發(fā)該網(wǎng)絡(luò)流量。路由器28將LSP隧道的相同標(biāo)簽值所分配給的數(shù)據(jù)包的集合屬于特定的轉(zhuǎn)發(fā)等效類(FEC)并且限定RSVP流。數(shù)據(jù)平面32B的流量分析模塊60可監(jiān)測通過數(shù)據(jù)平面32B并與預(yù)留的帶寬不相關(guān)的的流量(例如,LDP或IP流量),并且生成流量統(tǒng)計62。流量分析模塊60可例如監(jiān)測每個出站鏈路52上輸出的LDP流量的量。在某些實施方式中,流量分析模塊60可控制流量統(tǒng)計36的粒度。例如,在一個實施方式中,流量分析模塊60可僅僅監(jiān)測和生成關(guān)于從路由器28輸出到各個出站鏈路52上的LDP流量的總量的統(tǒng)計。然而,在其他實施方式中,流量分析模塊60通過監(jiān)測不同類型的流量,可生成更多的粒度流量統(tǒng)計。例如,流量分析模塊60可跟蹤各個出站鏈路52上輸出的LDP流量的量以及各個出站鏈路52上輸出的IP流量的量。在路由器28的各種示例中,可將流量分析模塊60的各方面分配給控制平面32A。根據(jù)本公開的各方面,流量分析模塊60計算與路由器28相關(guān)的一個或多個出站鏈路52上可用的帶寬量。流量分析模塊60使用流量統(tǒng)計36內(nèi)所存儲的統(tǒng)計(即,非預(yù)留帶寬的當(dāng)前消耗的統(tǒng)計)和轉(zhuǎn)發(fā)信息70內(nèi)所存儲的預(yù)留請求,計算可用帶寬。這樣,流量分析模塊60考慮預(yù)留給RSVP-TE流量的帶寬量以及LDP量或當(dāng)前使用出站鏈路52的帶寬的其他流量。結(jié)果,流量分析模塊60可生成用于每個出站鏈路52的帶寬可用信息。例如對于每個出站鏈路52而言,流量分析模塊60可通過對LDP流量的量進(jìn)行時間平均化,并且從與每個鏈路相關(guān)的總?cè)萘恐袦p去平均LDP流量和所預(yù)留的帶寬量,計算可用的帶寬信息??商鎿Q地/此外,這些技術(shù) 可用于考慮(accountfor)IP流量或出站鏈路52上輸出的與預(yù)留資源無關(guān)聯(lián)的其他流量。例如,對于每個出站鏈路52而言,流量分析模塊60可監(jiān)測IP流量,并且流量分析模塊60計算可配置的時間段內(nèi)IP流量的平均量。流量分析模塊60可通過將鏈路的容量減去所監(jiān)測的流量統(tǒng)計減去RSVP預(yù)留,計算可用帶寬。流量分析模塊60將所算出的帶寬可用信息存儲到流量工程數(shù)據(jù)庫(“TED46”)中。流量分析模塊60可通過監(jiān)測出站接口的傳輸隊列63(表示為“傳輸隊列63”),來監(jiān)測至出站鏈路52的流量。在數(shù)據(jù)平面32B將數(shù)據(jù)包發(fā)送給出站接口時,包括與出站接口相關(guān)聯(lián)的出站鏈路52的一個接口卡48將用于傳輸?shù)臄?shù)據(jù)包排隊在一個傳輸隊列63上??蓪⒈硎静煌?wù)類別的多個不同傳輸隊列63映射到每個出站鏈路52中,并且數(shù)據(jù)包保持在隊列中的時間量與相應(yīng)鏈路的可用帶寬量密切相關(guān)。每個物理或邏輯鏈路(例如,LSP)在轉(zhuǎn)發(fā)信息70內(nèi)與鏈路的出站接口的一個傳輸隊列63相關(guān)聯(lián)。通過在轉(zhuǎn)發(fā)信息70內(nèi)安裝預(yù)留狀態(tài),RSVP-TE28為面向預(yù)留的轉(zhuǎn)發(fā)類別預(yù)留出站鏈路的帶寬的一些部分。實際上,這就使RSVPLSP和具有確定的(即,預(yù)留的)帶寬的一個傳輸隊列63相關(guān)聯(lián)。流量分析模塊60可通過監(jiān)測沒有確定帶寬的服務(wù)類別的傳輸隊列63,定期監(jiān)測出站鏈路的可用帶寬。流量分析模塊60例如可定期確定傳輸隊列63中帶寬未確定的傳輸隊列的隊列尺寸,并且對隊列尺寸應(yīng)用用于基于隊列尺寸的鏈路返回可用帶寬量的函數(shù)。作為另一個示例,流量分析模塊60可定期設(shè)置定時器,以首先測量用于傳輸?shù)奶囟〝?shù)據(jù)包排隊和退出隊列之間的時間長度,然后,應(yīng)用用于基于所測量的長度返回鏈路的可用帶寬量的函數(shù)。該函數(shù)可包括鏈路容量和所保留的帶寬參數(shù),以計算可用帶寬,作為鏈路容量與所保留的帶寬和目前使用的IP/LDP帶寬的總和之間的差值。在某些示例中,流量分析模塊60將所確定的可用帶寬復(fù)制到TED46。在某些情況下,流量分析模塊60將為每個出站鏈路52定期確定的可用帶寬的時間序列存儲到流量統(tǒng)計62中,并且將平滑函數(shù)(例如,滑動平均濾波器、加權(quán)滑動平均濾波器、或者指數(shù)加權(quán)滑動平均濾波器)用于 時間序列的集合中,以減少出站鏈路上的流量突發(fā)。對于任一個出站接口52,當(dāng)流量分析模塊60確定滑動平均超過先前復(fù)制到TED46中的可用帶寬值的閾值增加量或閾值減小量時,流量分析模塊60復(fù)制滑動平均至TED46中,作為相應(yīng)鏈路的新的可用帶寬值。由流量分析模塊60將新的可用帶寬值復(fù)制到TED46中,可引發(fā)IGP-TE42進(jìn)行鏈路的可用帶寬的IGP通告。在某些情況下,IGP-TE42讀取流量統(tǒng)計62,以確定鏈路的可用帶寬。如上所述,IGP-TE42可將位于TED46中的所算出的帶寬可用性信息作為相應(yīng)鏈路的最小帶寬鏈路屬性,通告給其他路由裝置。此外,IGP-TE42從網(wǎng)絡(luò)內(nèi)其他鏈路的其他路由裝置中接收帶寬可用信息,并且用所接收的帶寬可用信息更新TED46。這樣,路由器28保持整個網(wǎng)絡(luò)(例如,圖1的網(wǎng)絡(luò)6)的鏈路的精確帶寬可用信息。在提供區(qū)分服務(wù)(“DiffServTE”)的網(wǎng)絡(luò)2的示例中,RSVP-TE可根據(jù)多個流量類別,預(yù)留資源。在Minei等人的、2006年6月的、互聯(lián)網(wǎng)工程任務(wù)組,網(wǎng)絡(luò)工作組,互聯(lián)網(wǎng)草案中的“區(qū)分服務(wù)意識流量工程LSP的擴(kuò)展(ExtensionsforDifferentiatedServices-awareTrafficEngineeredLSPs)”中,描述了流量工程背景下的區(qū)分服務(wù),通過引證將其全部內(nèi)容結(jié)合于本文中。在某些情況下,流量分析模塊60確定與數(shù)據(jù)平面內(nèi)DiffServ代碼點關(guān)聯(lián)的每個流量類別的可用帶寬,并且IGP-TE42將用于流量類別的每個可用帶寬通告給在其他路由器內(nèi)執(zhí)行的IGP-TE的其他實例。下面進(jìn)一步詳細(xì)地進(jìn)行描述,當(dāng)對類別的網(wǎng)絡(luò)流量進(jìn)行負(fù)載平衡時,分類器74和多路徑轉(zhuǎn)發(fā)元件56然后使用基于類別的可用帶寬進(jìn)行操作。路由器28使用等價多路徑(ECMP)路由技術(shù),以在經(jīng)過網(wǎng)絡(luò)的多個等價路徑之間分布網(wǎng)絡(luò)流量負(fù)載。RP守護(hù)進(jìn)程40利用RIB38的鏈路狀態(tài)數(shù)據(jù)庫執(zhí)行SPF算法(或者,除了RIB38的鏈路狀態(tài)數(shù)據(jù)庫以外,還利用TED46執(zhí)行CSPF算法),以識別到同一個目的地的多個等價路徑。RP守護(hù)進(jìn)程40形成由等價路徑構(gòu)成的ECMP集合,并且從所算出的路徑獲得一個或多個轉(zhuǎn)發(fā)結(jié)構(gòu),從而以到同一個目的地的多個可能的下一跳的形式保持等價路徑。然后,RP守護(hù)進(jìn)程40將這些轉(zhuǎn)發(fā)結(jié)構(gòu)安裝到轉(zhuǎn)發(fā)信 息70中,并且數(shù)據(jù)平面32B在向目的地轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量流時,可使用從ECMP集合中獲得的任何可用轉(zhuǎn)發(fā)結(jié)構(gòu)。然而,如上所述,在某些示例中,可選擇不必為等價路徑的多個路徑的集合。RP守護(hù)進(jìn)程40可選擇可接受的非環(huán)狀路徑的集合,其中,可根據(jù)其他約束條件進(jìn)行選擇。一旦識別出ECMP集合時,RP守護(hù)進(jìn)程40就另外促使控制平面32A的路徑權(quán)重計算器44根據(jù)該路徑的最小可用帶寬或根據(jù)下面示例中所述的出站接口的帶寬量,計算ECMP集合內(nèi)每個路徑的權(quán)重。路徑權(quán)重計算器44確定構(gòu)成ECMP內(nèi)的每個路徑的網(wǎng)絡(luò)鏈路,并且對于路徑的每個鏈路,讀取TED46以識別鏈路的可用帶寬。為了確定路徑的最小可用帶寬,路徑權(quán)重計算器44識別構(gòu)成該路徑的所有鏈路的最小可用帶寬值。根據(jù)為ECMP集合內(nèi)各個路徑確定的最小可用帶寬值或路徑帶寬值,路徑權(quán)重計算器然后確定多路徑轉(zhuǎn)發(fā)元件56將為每個路徑應(yīng)用的相對權(quán)重。例如,路徑權(quán)重計算器44可根據(jù)每個路徑的最小可用帶寬或路徑帶寬與ECMP集合內(nèi)任一個路徑的最小最低可用帶寬的比,設(shè)定用于ECMP集合內(nèi)每個路徑的相對權(quán)重。例如,如果ECMP集合的路徑A的最小可用帶寬為10MB/s,ECMP集合的路徑B的最小可用帶寬為50MB/s,ECMP集合的路徑C的最小可用帶寬為25MB/s,那么路徑權(quán)重計算器44可將路徑A、B、C的權(quán)重分別計算為2、10以及5,以反映ECMP集合的最小可用帶寬比。在其他示例中,路徑權(quán)重計算器44可使用其他公式來計算ECMP集合內(nèi)路徑的權(quán)重。路徑權(quán)重計算器44將所算出的用于ECMP集合的權(quán)重安裝到多路徑轉(zhuǎn)發(fā)元件56的權(quán)重58中。在某些方面,分類器74識別新的數(shù)據(jù)包流,并且將入站鏈路50上所接收的入站數(shù)據(jù)包分類為被流表72提及的數(shù)據(jù)包流。本文中所使用的“數(shù)據(jù)包流”表示數(shù)據(jù)包報頭字段值和/或數(shù)據(jù)包數(shù)據(jù)的集合,數(shù)據(jù)包報頭字段值使包含這種值的任何數(shù)據(jù)包被分配給ECMP集合內(nèi)朝向該數(shù)據(jù)包的目的地的特定路徑。此外,數(shù)據(jù)包流為最小粒度,路由器28以該粒度在流表72內(nèi)保持狀態(tài),以轉(zhuǎn)發(fā)被分類為流表72內(nèi)所提及的網(wǎng)絡(luò)數(shù)據(jù)包。例如,通過其各自的<源IP地址、目的地IP地址、協(xié)議標(biāo)識符>3元組值或通過 其各自的<源IP地址、目的地IP地址、源端口、目的地端口、協(xié)議標(biāo)識符>5元組值,分類器74可將數(shù)據(jù)包分類成流表72內(nèi)所提及的數(shù)據(jù)包流。流表72包括數(shù)據(jù)結(jié)構(gòu),例如,用于在數(shù)據(jù)流入口內(nèi)存儲信息或數(shù)據(jù)的表,這些數(shù)據(jù)流入口均屬于穿過路由器28的不同數(shù)據(jù)包流。在某些情況下,這種數(shù)據(jù)包括對轉(zhuǎn)發(fā)信息70內(nèi)的下一跳結(jié)構(gòu)的索引,其指定ECMP集合內(nèi)的路徑。雖然作為表格進(jìn)行說明和描述,但是流表72內(nèi)的數(shù)據(jù)可存儲到任何其他數(shù)據(jù)結(jié)構(gòu)中,例如,圖表、鏈接表等等。流表72存儲描述先前由分類器74識別的每個流的數(shù)據(jù),例如,5元組值以及與每個流有關(guān)的其他信息。即,流表72可執(zhí)行與每個活動數(shù)據(jù)包流相關(guān)的網(wǎng)絡(luò)元素,例如,與數(shù)據(jù)包流相關(guān)聯(lián)的源和目的地裝置和端口。流表72還可包括用于每個流的唯一應(yīng)用標(biāo)識符(ID),該標(biāo)識符唯一地標(biāo)識每個流所對應(yīng)的應(yīng)用。當(dāng)分類器74識別新流時,多路徑轉(zhuǎn)發(fā)元件56可確定轉(zhuǎn)發(fā)信息70包括到流的目的地的多個可能的下一跳。換言之,多路徑轉(zhuǎn)發(fā)元件56確定存在流可用的ECMP集合。因此,多路徑轉(zhuǎn)發(fā)元件56對ECMP集合的下一跳應(yīng)用相應(yīng)的權(quán)重58,并且根據(jù)權(quán)重,將新流分配給一個下一跳。多路徑轉(zhuǎn)發(fā)元件56可應(yīng)用根據(jù)新流目的地的ECMP集合的權(quán)重58參數(shù)化的算法,并且使用該函數(shù)的結(jié)果,選擇用于流分配的一個可能的下一跳。例如,在某些情況下,多路徑轉(zhuǎn)發(fā)元件56應(yīng)用根據(jù)ECMP集合的權(quán)重58進(jìn)行加權(quán)的加權(quán)輪叫算法,以為指向ECMP集合所提供的目的地的新數(shù)據(jù)包流選擇一個可能的下一跳。作為另一個示例,在某些情況下,多路徑轉(zhuǎn)發(fā)元件56應(yīng)用加權(quán)的散列模型技術(shù),以首先根據(jù)路徑的權(quán)重58,增大ECMP集合內(nèi)路徑的散列桶的數(shù)量,并且然后,對例如新流的源/目的地地址進(jìn)行散列,以選擇散列桶和與ECMP集合內(nèi)用于新流的相關(guān)路徑。為了使新流與所選的下一跳相關(guān)聯(lián),多路徑轉(zhuǎn)發(fā)元件56在分類器74所生成的用于新流的流表72入口內(nèi),將索引(例如,轉(zhuǎn)為下一跳或指標(biāo)的指示器)加入轉(zhuǎn)發(fā)信息70內(nèi)所選的下一跳。用于新流的流表72入口內(nèi)所選的下一跳的索引,使數(shù)據(jù)平面32B的多路徑轉(zhuǎn)發(fā)元件將新流的數(shù)據(jù)包轉(zhuǎn)發(fā)給所選的下一跳。結(jié)果,根據(jù)用于為數(shù)據(jù)包流的目的地服務(wù)的ECMP 集合的不同路徑的最小可用帶寬,路由器28分配數(shù)據(jù)包流并且平衡網(wǎng)絡(luò)流量負(fù)載。圖3是示出了圖2的路由器28的示例操作的流程圖,該操作用于通過根據(jù)本公開中所描述的技術(shù)分析接口傳輸隊列特性,通告鄰近鏈路的可用帶寬。為了確定供未預(yù)留的(例如,IP和LDP)流量所使用的帶寬,流量分析模塊60讀取一個出站鏈路52的接口的傳輸隊列的尺寸(例如,傳輸所排隊的數(shù)據(jù)包數(shù)量)(100)。流量分析模塊60將所讀取的尺寸值存儲到流量統(tǒng)計62中,并且使用額外的數(shù)據(jù)點(即,讀取尺寸)重新計算傳輸隊列尺寸的滑動平均(200)。如果滑動平均超過流量分析模塊60所使用的先前滑動平均值的閾值差(例如,5%或絕對值差),據(jù)此更新鏈路的可用帶寬值(104的“是”分支),那么流量分析模塊60使用滑動平均,計算鏈路的可用帶寬(106),其中,鏈路上的可用帶寬與鏈路的傳輸隊列的尺寸的滑動平均反相關(guān)。流量分析模塊例如可計算物理或邏輯鏈路的可用帶寬,作為鏈路容量和所預(yù)留的帶寬與所測量的IP/LDP數(shù)據(jù)包帶寬的總和之間的差值。流量分析模塊60將可用帶寬存儲到TED46中,以由IGP-TE42通告給其他路由器中的路由處理的其他實例。圖4為示出了圖2的路由器28的示例操作的流程圖,根據(jù)本文中所描述的一個示例實施方式,該操作用于計算ECMP集合內(nèi)的路徑的各個權(quán)重并且基于權(quán)重將流分配給ECMP的路徑。在圖4的示例中,RP守護(hù)進(jìn)程40執(zhí)行IGP-TE42,以接收根據(jù)流量工程擴(kuò)展所形成的通告,從而包括通告鏈路可用的未預(yù)留的帶寬(120)。IGP-TE42存儲用于TED46內(nèi)所通告的鏈路的通告的可用帶寬值(122)。RP守護(hù)進(jìn)程40利用RIB38內(nèi)的鏈路狀態(tài)信息執(zhí)行最短路徑優(yōu)選算法,以計算從路由器28到不同目的地的最佳(根據(jù)RIB38內(nèi)的IGP度量值)轉(zhuǎn)發(fā)路徑。在某些情況下,RP守護(hù)進(jìn)程40識別至特定的目的地或目的地集合的多個最佳等價轉(zhuǎn)發(fā)路徑,并且在這種情況下,創(chuàng)建由多個等價轉(zhuǎn)發(fā)路徑構(gòu)成的ECMP集合(124)。路徑權(quán)重計算器44分析構(gòu)成ECMP內(nèi)的各個轉(zhuǎn)發(fā)路徑的各個鏈路,以確定路徑的最小可用帶寬(126)。例如,路徑權(quán)重計算器44讀取路徑 內(nèi)每個鏈路的可用帶寬值,并且確定不同鏈路的所有這種值之中最小的可用帶寬值。該最小可用帶寬值為相應(yīng)路徑的最小可用帶寬值。路徑權(quán)重計算器44使用為ECMP集合內(nèi)的每個路徑所確定的最小可用帶寬,計算路徑的相對權(quán)重,并且將這種權(quán)重存儲到權(quán)重58中(128)。所算出的相對較高的權(quán)重表示,與其他路徑相比,ECMP集合內(nèi)路徑的最小可用帶寬量更大。多路徑轉(zhuǎn)發(fā)元件56根據(jù)路徑的相應(yīng)權(quán)重58,將目的地為由ECMP集合所服務(wù)的目的地并且由分類器74所識別的新數(shù)據(jù)包流分配給ECMP集合內(nèi)的路徑(130)。圖5為示出了具有使用組合鏈路執(zhí)行加權(quán)ECMP技術(shù)的路由器82A–82F的示例網(wǎng)絡(luò)系統(tǒng)80的框圖。組合鏈路將MPLS網(wǎng)絡(luò)的兩個路由器之間的多個平行元件鏈路綁定在一起,作為單個邏輯網(wǎng)絡(luò)鏈路。元件鏈路在組合鏈路內(nèi)可不同種的,并且可具有不同的IGP或TE度量值,例如,成本和容量。組合鏈路的入口路由器可以以IGP的鏈路狀態(tài)通告將該鏈路通告給網(wǎng)絡(luò)的其他路由器。組合鏈路的元件鏈路可為從組合鏈路的入口路由器到組合鏈路的出口路由器的等價多路徑的集合。因此,本文中所描述的加權(quán)ECMP技術(shù)可改善組合鏈路的元件鏈路之間的網(wǎng)絡(luò)負(fù)載平衡,并且因此提高組合鏈路的整體性能。所述網(wǎng)絡(luò)系統(tǒng)80提供組合鏈路的兩個示例。路由器82B到路由器82E的組合鏈路83B包括元件鏈路86B、86A,這些元件鏈路均為路由器82B到路由器82E的LSP。路由器82A到路由器82E的組合鏈路83B包括元件鏈路84A、84B,這些元件鏈路均為路由器82A到路由器82E的LSP。組合鏈路83A包括作為元件鏈路84A的傳輸鏈路的組合鏈路83B,因此說明了在組合鏈路和元件鏈路之間的遞歸可能性。根據(jù)組合鏈路的各個元件鏈路的最小可用帶寬,路由器82使用本公開的技術(shù),通告組合鏈路83A-83B(“組合鏈路83”)的可用帶寬。路由器82B使用本文中所描述的技術(shù),確定用于組合鏈路83B的每個元件鏈路86A、86B的最小可用帶寬。例如,通過分別從路由器82C、82D接收關(guān)于路由器82C-82E鏈路和路由器82D-82E鏈路的可用帶寬通告,路由器82B可確定每個元件鏈路86A、86B的最小可用帶寬。例如,通過分析 鏈路的相應(yīng)的傳輸隊列,路由器82B可獨立地確定路由器82B–82C鏈路和路由器82B–82D鏈路上的可用帶寬。在一個示例中,路由器82B將組合鏈路83B的可用帶寬計算為元件鏈路86A、86B的最小可用帶寬的總和,并且在到路由器82A的IGP-TE通告88內(nèi)將作為組合鏈路83B的鏈路屬性的可用帶寬通告。對于接收IGP-TE通告88的路由器82A而言,組合鏈路83B表現(xiàn)上為朝向路由器82E的元件鏈路84A的單個鏈路,并且在確定最短路徑優(yōu)先時,可由路由器82A使用。然后,在路由器82A執(zhí)行WECMP技術(shù)以對組合鏈路83A的元件鏈路84A、84B上的網(wǎng)絡(luò)流量進(jìn)行負(fù)載平衡時,路由器82A可使用以IGP-TE通告88所接收的所通告的組合鏈路83B的可用帶寬。例如,組合鏈路83B的可用帶寬可表示組合鏈路83A的元件鏈路84A的任何子鏈路的最小可用帶寬。結(jié)果,路由器82A可使用組合鏈路83B的可用帶寬,計算元件鏈路84A的相對權(quán)重,并且根據(jù)使用本文中所描述的技術(shù)所算出的相對權(quán)重,負(fù)載平衡組合鏈路83A的元件鏈路84A、84B之間的網(wǎng)絡(luò)流量。由于添加或刪除其內(nèi)的各個元件鏈路,組合鏈路83的組成可改變。在這種情況下,路由器82可使用組合鏈路的元件鏈路的相應(yīng)新集合,重新計算和通告所修改的組合鏈路83的可用帶寬。網(wǎng)絡(luò)服務(wù)供應(yīng)商或其他管理員80可建立路由器82A到路由器82E的RSVP-TE信令LSP,其穿過路由器82B并通過組合鏈路83B而朝向路由器82E。作為RSVP-TE信令的一方面,路由器82B和路由器82E將LSP分配給組合鏈路83B的兩個元件鏈路86A、86B。換言之,與從路由器82B到路由器82E的LSP相關(guān)的標(biāo)簽在兩個元件鏈路86A、86B上是有效的,以通過從路由器82B到路由器82E的元件鏈路隧穿。由于RSVP-TE信令LSP的標(biāo)簽標(biāo)識路由器82B處的轉(zhuǎn)發(fā)等效類別,所以路由器82B可使用本公開中所描述的加權(quán)ECMP技術(shù),在元件鏈路86A、86B之間負(fù)載平衡LSP所攜帶的每個單獨的網(wǎng)絡(luò)數(shù)據(jù)包流,其中,組合鏈路83B有效地表示ECMP集合。在某些情況下,元件鏈路86A可具有不同的流量特性,不能支持RSVP-TE信令LSP的資源要求。在這種情況下,當(dāng)在組合鏈路83B 的元件鏈路之間進(jìn)行負(fù)載平衡時,將元件鏈路86A排除在ECMP集合之外。而且,由于可將從路由器82B到路由器82E的RSVP-TE信令LSP分配給組合鏈路83B的兩個元件鏈路86A、86B,所以路由器82B使用組合鏈路83B的可用帶寬,對PATH資源預(yù)留請求執(zhí)行呼叫進(jìn)入控制(CAC)。路由器82B可響應(yīng)于PATH資源預(yù)留請求,使用加權(quán)的ECMP技術(shù),來為元件鏈路86A、86B的相應(yīng)出站接口分配不同比例的資源。例如,路由器82B根據(jù)使用元件鏈路86的最小可用帶寬所算出的各個權(quán)重,響應(yīng)于對組合鏈路83B上的40MB/s帶寬的請求,可從元件鏈路86A的出站接口中預(yù)留30MB/s,同時從元件鏈路86B的出站接口中預(yù)留10MB/s。路由器82B確保響應(yīng)于特定請求所預(yù)留的帶寬小于元件鏈路86中特定鏈路的可用帶寬。由于路由器82B動態(tài)地應(yīng)用上述加權(quán)的ECMP技術(shù),所以路由器82B可動態(tài)地重新分配元件鏈路82A與元件鏈路82B之間的RSVP-TE信令LSP。路由器82B應(yīng)用以上所引用的Awduche等人所描述的先接后斷(MBB)技術(shù)以及LSP縫合,以應(yīng)用從元件鏈路82A到元件鏈路82B的單跳縫合。在Ayyangar等人的、2008年2月的網(wǎng)絡(luò)工作組,請求注釋5150中的“基于通用多協(xié)議標(biāo)簽交換流量工程的標(biāo)簽交換路徑縫合(LabelSwitchedPathStitchingwithGeneralizedMultiprotocolLabelSwitchingTrafficEngineering)(GMPLSTE)”中,更完整地描述了LSP縫合,通過引證將其全部內(nèi)容結(jié)合于本文中。路由器82B檢測到元件鏈路86A和/或元件鏈路86B上的擁塞時,路由器82B還可減少為分配給組合鏈路83B的RSVP-TE信令LSP所預(yù)留的帶寬。這樣,路由器82B可避免被LSP完全搶占,以有利于部分搶占,在Polk等人、2006年5月的網(wǎng)絡(luò)工作組,請求注釋4495,“用于減少預(yù)留量的帶寬的資源預(yù)留協(xié)議(RSVP)擴(kuò)展(AResourceReservationProtocol(RSVP)ExtensionfortheReductionofBandwidthofaReservationFlow)”中,對此進(jìn)行了更完整的描述,通過引證將其全部內(nèi)容結(jié)合于本文中。圖6為示出了將本文中所述的可用帶寬信息編碼以用于IS-IS路由協(xié)議的示例的框圖。通常IS-IS鏈路狀態(tài)PDU由固定的報頭以及多個元組構(gòu)成,每個元組包括類型、長度以及值(TLV)。通常,圖1的路由器10使用泛洪路由協(xié)議,來彼此通告拓?fù)湫畔?,并且同步每個路由器所保持的鏈路狀態(tài)數(shù)據(jù)庫。如本文中所述,路由器10支持以本文中所描述的方式擴(kuò)展后的增強內(nèi)部網(wǎng)關(guān)協(xié)議,通過該協(xié)議,路由器10可通告路由器所確定的關(guān)于鄰近鏈路的可用帶寬信息。在所述示例中,定義各種鏈路狀態(tài)消息可攜帶的新的、不透明類型、長度以及值(TLV),這些鏈路狀態(tài)消息已經(jīng)用于圖1的網(wǎng)絡(luò)系統(tǒng)2內(nèi)。TLV140包括TYPE(類型)字段144、LENGTH(長度)字段146以及包括AVAILABLEBANDWIDTH(可用帶寬)字段148的VALUE(值)字段142。TYPE字段144的長度為一個八位字節(jié),其指定本文中所定義的新TLV的唯一標(biāo)識符,以攜帶泛洪路由協(xié)議的突發(fā)速率和平均速率控制信息。LENGTH字段146的長度為一個八位字節(jié),并且表示VALUE字段142長度為八位字節(jié),即,在該示例的TLV中為4。VALUE字段142攜帶的AVAILABLEBANDWIDTH字段148指定與TLV140相關(guān)的鏈路的可用帶寬的速率。AVAILABLEBANDWIDTH字段148具有帶有單精度浮點值的四個八位字節(jié)的值,以將可用帶寬的速率存儲為例如千字節(jié)/秒。利用提供鏈路的鏈路狀態(tài)的IS-IS消息內(nèi)的包含物,可將TLV140與鏈路相關(guān)聯(lián)。IS-IS允許在任何類型的IS-IS消息內(nèi)包含TLV,并且協(xié)議規(guī)范要求路由器忽略未識別的TLV。這樣,TLV140在本文中稱為不透明的TLV,并且本文中所描述的技術(shù)允許路由器10提取并且記錄相關(guān)聯(lián)鏈路目前可用的帶寬。網(wǎng)絡(luò)系統(tǒng)2內(nèi)使用的多種不同類型的鏈路狀態(tài)消息可攜帶TLV140。例如,路由器10通常交換最初的鏈路狀態(tài)消息,以建立鄰接關(guān)系。例如,路由器10可交換IS-ISHELLO協(xié)議數(shù)據(jù)單元(PDU),以建立與其他路由器的鄰接關(guān)系。路由器10可在這些最初的PDU內(nèi)包括本文中所描述的TLV140,以將鄰近鏈路上可用的帶寬通知給其他路由器。此外/可替換地, 路由器10在泛洪鏈路狀態(tài)消息內(nèi)不透明地包括TLV140,以同步每個路由器所保持的流量工程數(shù)據(jù)庫。每個鏈路狀態(tài)消息通常在網(wǎng)絡(luò)上被定期刷新,并且由接收路由器確認(rèn)。例如,路由器10可使用定期IS-IS狀態(tài)鏈路PDU來同步其鏈路狀態(tài)數(shù)據(jù)庫,并利用部分序列號PDU(PSNP)和完整序列號PDU(CSNP)來確認(rèn)信息的接收。路由器10可將TLV140嵌入在鏈路狀態(tài)PDU內(nèi),或者更可能地嵌入在確認(rèn)PDU內(nèi)。作為另一個示例,路由器10可交換攜帶TLV140的不透明OSPF鏈路狀態(tài)通告(LSA),例如,流量工程LSA。在2003年9月的網(wǎng)絡(luò)工作組的RFC3630中的“流量工程(TE)擴(kuò)展至OSPF版本2(TrafficEngineering(TE)ExtensionstoOSPFVersion2)”內(nèi),描述了流量工程LSA,通過引證將其全部內(nèi)容結(jié)合于本文中。在流量工程LSA內(nèi),鏈路TLV描述了單個鏈路,并且包括子TLV的集合。TLV140可定義為用于鏈路TLV的新子TLV類型,其規(guī)定所述鏈路目前可用的帶寬,該帶寬既未被預(yù)留也未被目前用于通過鏈路傳輸互聯(lián)網(wǎng)協(xié)議(IP)數(shù)據(jù)包或LDP數(shù)據(jù)包。這樣,路由器10交換網(wǎng)絡(luò)6鏈路的可用帶寬,以能夠使用本文中所描述的加權(quán)ECMP技術(shù)。圖7為示出了執(zhí)行本公開中所描述的示例加權(quán)等價多路(ECMP)技術(shù)的示例網(wǎng)絡(luò)系統(tǒng)200的框圖。網(wǎng)絡(luò)206包括路由器210A–210F(“路由器210”)、源路由器212以及目的地路由器214,這些路由器將從源裝置220A-220N(源裝置220)接收的網(wǎng)絡(luò)數(shù)據(jù)包路由到目的地裝置222。網(wǎng)絡(luò)206可包括公共網(wǎng)絡(luò)(例如,因特網(wǎng))、專用網(wǎng)絡(luò)(例如,企業(yè)或服務(wù)供應(yīng)商所擁有和操作的那些專用網(wǎng)絡(luò))或公共和專用網(wǎng)絡(luò)的組合。結(jié)果,在本文中,網(wǎng)絡(luò)206可被替換地稱為服務(wù)供應(yīng)商(SP)網(wǎng)絡(luò)。網(wǎng)絡(luò)206可包括一個或多個廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、虛擬局域網(wǎng)(VLAN)、虛擬專用網(wǎng)絡(luò)(VPN)、和/或其他類型的網(wǎng)絡(luò)。在某些情況下,網(wǎng)絡(luò)206可為互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò),其中,路由器210使用IP轉(zhuǎn)發(fā)來將從源路由器212接收的網(wǎng)絡(luò)數(shù)據(jù)包傳輸。在其他示例中,網(wǎng)絡(luò)206可為MPLS網(wǎng)絡(luò),其中,路由器210可使用MPLS信令協(xié)議(例如LDP或RSVP)來建立LSP以傳輸網(wǎng)絡(luò)數(shù)據(jù)包。在某些示例中, 網(wǎng)絡(luò)206可包括RSVP多路流量,其中,子LSP被信號通知為不需要預(yù)留帶寬。K.Kompella的、2011年10月31日的網(wǎng)絡(luò)工作組互聯(lián)網(wǎng)草案中的“使用RSVP-TE進(jìn)行多路徑標(biāo)簽交換信號通知(Multi-pathLabelSwitchedPathsSignaledUsingRSVP-TE)”中,以及在2009年7月22日提交的題為“LoadBalancingNetworkTrafficonaLabelSwitchedPathUsingResourceReservationProtocolwithTrafficEngineering”的美國專利申請?zhí)?2/507,200中,記載了使用子LSP的RSVP多路徑的更多細(xì)節(jié),這兩者的全部內(nèi)容通過引證結(jié)合于本文中。因此,雖然圖7中示出為單個網(wǎng)絡(luò)206,但網(wǎng)絡(luò)206可包括任何數(shù)量的公共的或?qū)S玫幕ミB網(wǎng)絡(luò),其中,各種網(wǎng)絡(luò)互相連接以形成各種虛擬網(wǎng)絡(luò)。此外,網(wǎng)絡(luò)206可包括用于轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的各種其他網(wǎng)絡(luò)裝置,例如,附加的路由器、交換機或網(wǎng)橋。網(wǎng)絡(luò)系統(tǒng)206的特定配置僅僅為示例,并且路由器210、212、214可位于單個網(wǎng)絡(luò)內(nèi)或多個網(wǎng)絡(luò)內(nèi)。例如,路由器210、212、214可實施為圖2的路由器28,并且路由器28的元件可根據(jù)以下關(guān)于圖7所闡述的技術(shù)進(jìn)行操作。雖然相對于路由器作為示例進(jìn)行描述,但是本文中所描述的這些技術(shù)的各方面可用于其他網(wǎng)絡(luò)裝置(例如,網(wǎng)橋、交換機、網(wǎng)關(guān)、網(wǎng)絡(luò)高速緩存存取器以及網(wǎng)絡(luò)加速裝置)中并且可由其他網(wǎng)絡(luò)裝置實施。每個源裝置220A-220N和目的地裝置222可為個人計算機、膝上型計算機、移動電話、網(wǎng)絡(luò)電話、電視機頂盒、裝入車輛內(nèi)的網(wǎng)絡(luò)裝置、視頻游戲系統(tǒng)、銷售點裝置、個人數(shù)字助理、中間網(wǎng)絡(luò)裝置、網(wǎng)絡(luò)設(shè)備、超級計算機、大型計算機、或能夠與路由器212、214接口以及通過網(wǎng)絡(luò)206進(jìn)行通信的其他類型的裝置。源裝置220可將網(wǎng)絡(luò)流量發(fā)送給源路由器212,以通過網(wǎng)絡(luò)206傳輸并最終到達(dá)目的地裝置222。在圖7的示例中,源路由器212、路由器210以及目的地路由器214通過鏈路205A-205I(“鏈路205”)互相連接。在某些方面,源路由器212和目的地路由器214通過接入鏈路207連接至源裝置220和目的地裝置222,這些接入鏈路可包括有線和/或無線通信鏈路。本文中所使用的術(shù)語“通信鏈路”包括任何形式的傳輸介質(zhì)(有線或無線),并且可包括中間 節(jié)點,例如,網(wǎng)絡(luò)裝置。每個接入鏈路可包括例如非對稱的DSL網(wǎng)絡(luò)、WiMAX、T-1線路、綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)或有線以太網(wǎng)的各方面。鏈路205可包括網(wǎng)絡(luò)206的多個物理和虛擬通信鏈路,用于將路由器10互連以有助于控制路由器之間的數(shù)據(jù)通信。網(wǎng)絡(luò)206的物理鏈路可包括例如以太網(wǎng)PHY、同步光網(wǎng)絡(luò)(SONET)/同步數(shù)字體系(SDH)、λ、或具有數(shù)據(jù)包傳輸功能的其他層2數(shù)據(jù)鏈路。網(wǎng)絡(luò)206的邏輯鏈路可包括例如以太網(wǎng)虛擬LAN、MPLSLSP或MPLS-TELSP。路由器210可使用一個或多個內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),以獲悉關(guān)于網(wǎng)絡(luò)206內(nèi)部的通信鏈路的鏈路狀態(tài)/度量值。例如,路由器210A可使用開放式最短路徑優(yōu)先(OSPF)或中間系統(tǒng)到中間系統(tǒng)(IS-IS)協(xié)議,以與路由器210B–210F交換路由信息。路由器210A將路由信息存儲到路由信息庫中,路由器使用該信息庫計算到網(wǎng)絡(luò)206內(nèi)所通告的目的地地址的最佳路線。路由器210執(zhí)行內(nèi)部網(wǎng)關(guān)協(xié)議,以通過路由協(xié)議消息進(jìn)行通信并且交換為鏈路205所建立的度量值,以及將這些度量值存儲在相應(yīng)路由信息庫內(nèi),以用于計算到網(wǎng)絡(luò)206內(nèi)所通告的目的地地址的最佳路線。在某些情況下,路由器210、212、214支持流量工程,以提高通過網(wǎng)絡(luò)206的路徑的利用率。通常,流量工程指的是使流量遠(yuǎn)離內(nèi)部網(wǎng)關(guān)協(xié)議算出的網(wǎng)絡(luò)206的最短路徑流動并且流向擁塞可能更少的或以其他方式更可取的(從操作的觀點來看)物理路徑的操作。例如,使用基于流量工程擴(kuò)展的資源預(yù)留協(xié)議(RSVP-TE)或另一個標(biāo)簽分發(fā)協(xié)議(例如,標(biāo)簽分發(fā)協(xié)議(LDP)),路由器210、212、214或網(wǎng)絡(luò)206管理員可建立一個或多個LSP隧道,這些隧道連接多對路由器10,以將網(wǎng)絡(luò)流量路由為遠(yuǎn)離網(wǎng)絡(luò)故障、擁塞以及瓶頸。包括到LSP隧道的接口的路由器將度量值和LSP相關(guān)聯(lián)。LSP度量值可采用LSP進(jìn)行操作所經(jīng)由的下面IP路徑的度量值,或可由網(wǎng)絡(luò)206的管理員配置為不同的值,以影響路由器210、212、214做出的路由決定。路由器210、212、214執(zhí)行內(nèi)部網(wǎng)關(guān)協(xié)議,以通過路由協(xié)議消息進(jìn)行通信并且交換為LSP隧道所建立的度量值,以及將這些度量值存儲在相應(yīng)的路由信息庫內(nèi),以用于計算到網(wǎng)絡(luò)6內(nèi)所通告的目的地地址的最佳路線。 例如,路由器210、212、214可使用OSPF轉(zhuǎn)發(fā)鄰接(FA),通告作為網(wǎng)絡(luò)206的IGP鏈路的LSP隧道。因此,本文中所使用的術(shù)語“鏈路”或“通信鏈路”在某些示例中還指的是通過層2通信鏈路進(jìn)行操作的LSP。如本文中所述,源路由器212、路由器210以及目的地路由器214可使用到IGP的擴(kuò)展,另外分發(fā)有關(guān)網(wǎng)絡(luò)負(fù)載的詳細(xì)知識。例如,源路由器212、路由器210以及目的地路由器214可執(zhí)行本文中所描述的基于流量工程擴(kuò)展的IS-IS,這些擴(kuò)展使用新的類型長度值(TLV),例如,圖6中所示的TLV140。作為另一個示例,源路由器212、路由器210以及目的地路由器214可使用不透明的鏈路狀態(tài)通告(LSA),執(zhí)行基于流量工程擴(kuò)展的OSPF,以除了鏈路狀態(tài)和度量值之外,還將鏈路屬性分布在鏈路狀態(tài)通告中。根據(jù)本公開的技術(shù),源路由器212計算與源路由器212和目的地路由器214之間的多個所選路徑中的每個相關(guān)的帶寬量,并且根據(jù)所算出的要發(fā)送給這些路徑的下一跳的帶寬量,成比例地負(fù)載平衡至每個下一跳的流量。源路由器212根據(jù)所算出的帶寬量確定如何負(fù)載平衡至下一跳的流量所使用的方法在本文中稱為“加權(quán)的ECMP”技術(shù)。本文中所描述的WECMP技術(shù)可用于IP和LDP流量,以及在子LSP被信號通知不需要預(yù)留帶寬時,還可用于RSVP多路徑流量。雖然本文中關(guān)于“等價”路徑作為示例進(jìn)行描述,但是本公開的技術(shù)并不限于使用等價路徑,而是可更廣泛地用于以其他為基礎(chǔ)所選擇的路徑中。因此,在本文中所涉及的等價路徑或ECMP僅僅為舉例說明,而非限制性的。例如,所選的路徑可不均為等價,而是可更一般選擇為非環(huán)狀路徑。非環(huán)狀路徑指的是不通過計算路由器返回的路徑,即,第一路由器(計算路由器)和第二路由器之間的路徑,每個非環(huán)狀路徑沿著非環(huán)狀路徑具有各自的下一跳路由器,該下一跳路由器具有到第二路由器最短路徑,其中該最短路徑的成本比從第一路由器到第二路由器的最短路徑的成本更低。例如,到目的地的每個路徑表現(xiàn)出不同的成本,其中,每個下一跳路由器比計算路由器具有更低成本的最短路徑。實質(zhì)上,這會使用下游鄰居來提供非環(huán)狀路徑。作為另一個示例,對于顯式路由的路徑(例如, RSVP-TE),計算路由器可計算轉(zhuǎn)發(fā)路徑的任意集合,以基于多個約束條件中的任一個進(jìn)行使用。通常,源路由器212可如下考慮帶寬。在運行最短路徑優(yōu)先算法時,源路由器212存儲每個路徑上所使用的鏈路。源路由器212對路徑進(jìn)行后處理,以計算最后的下一跳帶寬。源路由器212根據(jù)通過WECMP算法為那些輸出接口算出的帶寬比,在輸出接口之間分割流量。下面更詳細(xì)地描述用于確定如何在輸出接口之間分割流量的一個示例算法。該目的如下:對于每個目的地而言,如果除了計算路由器和目的地之間的流量以外,網(wǎng)絡(luò)內(nèi)沒有其他流量,那么應(yīng)該能夠發(fā)送帶寬量等于WECMP算出的與每個初始下一跳相關(guān)的帶寬的流量,而不會造成網(wǎng)絡(luò)內(nèi)任何鏈路超負(fù)載。本文中所描述的加權(quán)ECMP技術(shù)可使用多個通告的鏈路帶寬中的任一個,來計算在每個輸出接口上向每個下一跳發(fā)送的帶寬量。作為一個示例,所通告的鏈路帶寬可為“最大鏈路帶寬”。最大鏈路帶寬限定與網(wǎng)絡(luò)鏈路相關(guān)的帶寬容量的最大量。作為另一個示例,所通告的鏈路帶寬可為“剩余帶寬”,即,最大鏈路帶寬減去資源預(yù)留協(xié)議操作時當(dāng)前預(yù)留(例如,預(yù)留給RSVP-TELSP)的帶寬。這是鏈路上可用于非RSVP流量的帶寬。剩余帶寬根據(jù)控制平面預(yù)留而變化。作為另一個示例,所通告的鏈路帶寬可為“可用帶寬”(在本文中還稱為“當(dāng)前可用帶寬”)??捎脦挒槭S鄮挏p去所測量出的用于轉(zhuǎn)發(fā)非RSVP-TE數(shù)據(jù)包的帶寬。換言之,可用帶寬限定既不被資源預(yù)留協(xié)議進(jìn)行操作時預(yù)留也不被第一路由器當(dāng)前轉(zhuǎn)發(fā)使用未預(yù)留的資源的流量使用的網(wǎng)絡(luò)鏈路的帶寬容量的量。鏈路上可用的帶寬量會隨著SPF以及加權(quán)的ECMP決定的結(jié)果而變化,但是該帶寬量可為具有有限通告頻率的輪叫平均。作為一個示例,計算路由器可確定操作資源預(yù)留協(xié)議時所預(yù)留的網(wǎng)絡(luò)鏈路的帶寬容量的量,并且可確定第一路由器當(dāng)前用于轉(zhuǎn)發(fā)使用未預(yù)留資源的流量的帶寬容量的量,使用流量分析模塊60監(jiān)測通過數(shù)據(jù)平面32B的流量,并且可計算上面關(guān)于圖2所描述的剩余帶寬和/或可用帶寬的量。在當(dāng)前可用帶寬的示例中,源路由器212、路由器210以及目的地路由器214可將網(wǎng)絡(luò)206的鏈路205目前可用的帶寬通告,其考慮另外未計入的流量。即,路由器210可監(jiān)控以及通告鏈路目前可用的帶寬,表示為速率(例如,MB/s),其考慮以下帶寬:既未通過RSVP-TE預(yù)留并且目前也不用于通過鏈路傳輸因特網(wǎng)協(xié)議(IP)數(shù)據(jù)包或LDP數(shù)據(jù)包的帶寬,其中,LDP數(shù)據(jù)包為具有由LDP分發(fā)的貼附標(biāo)簽的數(shù)據(jù)包。因此,鏈路的目前可用帶寬既不被預(yù)留,也不用于傳輸使用未預(yù)留資源的流量。路由器210可測量用于通過出站鏈路傳輸IP和LDP數(shù)據(jù)包的帶寬量,并且計算目前可用帶寬,作為鏈路容量與所預(yù)留的帶寬和所測量的IP/LDP數(shù)據(jù)包帶寬的和之間的差。路由器210可將所算出的用于各個出站鏈路的可用帶寬信息作為鏈路狀態(tài)內(nèi)部網(wǎng)關(guān)協(xié)議的擴(kuò)展鏈路狀態(tài)通告內(nèi)的鏈路屬性進(jìn)行交換,并且將所接收的鏈路屬性存儲到與通用路由信息庫(包括例如IGP鏈路狀態(tài)數(shù)據(jù)庫)不同的相應(yīng)流量工程數(shù)據(jù)庫(TED)中。計算裝置(例如,源路由器212)可執(zhí)行IGP-TE協(xié)議42,例如,已經(jīng)擴(kuò)展成包括支持本公開的WECMP技術(shù)的新功能的OSPF-TE或IS-IS-TE。例如,源路由器212、路由器210以及目的地路由器214可使用關(guān)于圖6所描述的TLV140,通告網(wǎng)絡(luò)206的鏈路205的最大鏈路帶寬、剩余帶寬或者當(dāng)前可用帶寬。作為另一個示例,OSPF-TE協(xié)議可擴(kuò)展成包括OSPF-TE快速路徑,其通告最大鏈路帶寬、剩余帶寬和/或當(dāng)前可用帶寬。在S.Giacalone的2011年9月網(wǎng)絡(luò)工作組的互聯(lián)網(wǎng)草案中的“OSPF流量工程(TE)快速路徑(OSPFTrafficEngineering(TE)ExpressPath)”中,可找出有關(guān)OSPF-TE快速路徑的詳情,通過引證將其全部內(nèi)容結(jié)合于本文中。源路由器212通過其路由信息庫,執(zhí)行最短路徑優(yōu)先(SPF)算法,從而計算通過網(wǎng)絡(luò)206至目的地路由器214的最佳轉(zhuǎn)發(fā)路徑。在某些情況下,源路由器212可通過其路由信息庫及其流量工程數(shù)據(jù)庫,在諸如輸入到CSPF算法內(nèi)的鏈路屬性要求的各種約束條件下,執(zhí)行受約束的SPF(CSPF)算法,以計算LSP的路徑。例如,源路由器212可在要求所算出的從源路由器212到目的地路由器214的路徑的每個鏈路具有最大鏈路 帶寬、剩余帶寬或可用帶寬中的至少規(guī)定量的約束條件下,執(zhí)行CSPF算法。在所述示例中,源路由器212通過其路由信息和/或TED計算SPF或CSPF算法,該算法產(chǎn)生位于源路由器212和目的地路由器214之間并具有相等成本的多個最短路徑216A、216B以及216C(“路徑216”)。即,源路由器212到目的地路由器214的路由成本在橫穿裝置212-210B-210E-210D-214之間的路徑的路徑216C、橫穿裝置212-210A-210C-210D-214之間的路徑的路徑216B、以及橫穿裝置212-210B-210E-210F-214之間路徑的路徑216C之間相等。路由器210E還計算SPF或CSPF算法,該算法產(chǎn)生從路由器212E到目的地路由器214的多個最短路徑218A和218B(“路徑218”)。即,路由器210E到目的地路由器214的路由成本在橫穿裝置210E-210D-214和裝置210E-210F-214的路徑218A之間相等。例如,路徑216和218均可表示LSP或IP路徑。路徑216A可包括點到多點(P2MP)IP路徑或LSP。在圖7的示例中,每個路徑具有其自身的整體路徑帶寬,但是源自不同下一跳路由器的路徑可重疊并且需要共享下游鏈路。例如,路徑216B與路徑216B和路徑218A重疊,并且與這些路徑共享鏈路205F。作為另一個示例,路徑216A和路徑216C共享共同的子路徑,即,共享沿著212-210B-210E路徑的部分的鏈路。更靠近目的地的路由器僅僅看到共享計算路由器看到的限制鏈路的路徑的子集。例如,路由器210C僅看到鏈路205F上的路徑216B,而源路由器212看到鏈路205F上的路徑216B、218A以及216C。根據(jù)本公開的技術(shù),源路由器212運行WECMP算法,以識別源路由器212和目的地路由器214之間的等價轉(zhuǎn)發(fā)路徑,計算在輸出接口上向與等價轉(zhuǎn)發(fā)路徑相關(guān)的下一跳發(fā)送的帶寬的量,以及根據(jù)所計算的該下一跳所代表的帶寬的量,成比例地負(fù)載平衡至每個下一跳的流量。例如,源路由器212根據(jù)與沿著路徑的每個鏈路相關(guān)的最小帶寬,計算最初的帶寬量。這樣做時,計算路由器(例如,源路由器212)還考慮路徑上共享的鏈路,例如,鏈路205F、鏈路205G以及鏈路205F。一旦確定多個等價轉(zhuǎn)發(fā)路徑中的多個共享的一個網(wǎng)絡(luò)鏈路時,源路由器212通過以下方式計算每個輸出接口的帶寬量:該方式考慮在共享該網(wǎng)絡(luò)鏈路的多個等價轉(zhuǎn)發(fā)路徑之間分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬??紤]在多個等價轉(zhuǎn)發(fā)路徑之間這樣分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬的一種示例算法,包括:將與位于網(wǎng)絡(luò)的第一路由器和第二路由器之間的網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路相關(guān)的節(jié)點的集合分類;以及針對與位于網(wǎng)絡(luò)的第一路由器和第二路由器之間的網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路相關(guān)的每個節(jié)點,從網(wǎng)絡(luò)中具有至第二路由器的最小成本的節(jié)點開始,計算從每個節(jié)點經(jīng)由每個網(wǎng)絡(luò)鏈路到達(dá)目的地的網(wǎng)絡(luò)流量的一部分。計算路由器在對于等價轉(zhuǎn)發(fā)路徑內(nèi)使用的每個網(wǎng)絡(luò)鏈路,該網(wǎng)絡(luò)鏈路上的網(wǎng)絡(luò)流量的量小于或等于該網(wǎng)絡(luò)鏈路的容量的約束條件下,將自第一路由器的下一跳網(wǎng)絡(luò)鏈路上流量的總和最大化,其中,計算每個網(wǎng)絡(luò)鏈路上的網(wǎng)絡(luò)流量的量,作為流到特定的鄰近節(jié)點的網(wǎng)絡(luò)流量的量乘以任何特定下游節(jié)點上負(fù)載的網(wǎng)絡(luò)流量的一部分的乘積。以下,將關(guān)于圖8描述該算法的進(jìn)一步細(xì)節(jié)。在另一個示例中,根據(jù)每個路徑“然后計算的”帶寬,可在路徑之間成比例地分配共享的鏈路帶寬。即,源路由器212在多個等價轉(zhuǎn)發(fā)路徑之間成比例地分配共享的網(wǎng)絡(luò)鏈路的鏈路帶寬,這些路徑與然后(在計算時)分配給多個等價轉(zhuǎn)發(fā)路徑中的每個的路徑帶寬成比例地共享網(wǎng)絡(luò)鏈路。源路由器212然后將用于多個等價轉(zhuǎn)發(fā)路徑中的一個的路徑帶寬設(shè)置為以下中的最小值,(i)隨后分配給多個等價轉(zhuǎn)發(fā)路徑中的一個的路徑帶寬;以及(ii)根據(jù)按比例分配鏈路帶寬,提供給多個等價轉(zhuǎn)發(fā)路徑中的一個的路徑的鏈路帶寬。換言之,路徑“然后計算的”帶寬以及提供給該路徑的共享的鏈路帶寬的最小值然后成為該路徑的新帶寬。源路由器212可循環(huán)地重復(fù)以下步驟:按比例地分配鏈路帶寬以及設(shè)置每個路由器210的路徑帶寬,從網(wǎng)絡(luò)206內(nèi)最靠近(例如,具有最小的成本)目的地路由器214的節(jié)點開始直到到達(dá)計算路由器。在計算用于等價轉(zhuǎn)發(fā)路徑的輸出接口的帶寬量時,計算路由器(例如,源路由器212)還可考慮下游路由器210的行為。網(wǎng)絡(luò)206內(nèi)的其他路由器210可或不可運行WECMP算法,并且可運行ECMP的較早形式。即 使另一個路由器210運行WECMP,其他路由器210也僅僅可看到路徑的子集,通過這些路徑,計算路由器看到共享的鏈路。因此,這可有助于計算路由器考慮下游路由器210的行為,例如,通過計算下游路由器的負(fù)載平衡分割以及考慮經(jīng)過該特定的下游路由器210的所有路徑的這種分割。計算帶寬量時,源路由器212可考慮下游路由器,這些下游路由器并不考慮在共享網(wǎng)絡(luò)鏈路的多個等價轉(zhuǎn)發(fā)路徑之間,分割所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬,這可減少不必要的擁塞??蛇B續(xù)地執(zhí)行所描述的技術(shù),以促進(jìn)數(shù)據(jù)包流隨著時間動態(tài)負(fù)載平衡,該動態(tài)負(fù)載平衡響應(yīng)于ECMP集合內(nèi)路徑的下面鏈路的帶寬狀態(tài)而變化。作為一個示例,可以以合理地隔開的間隔執(zhí)行這些技術(shù),以不在網(wǎng)絡(luò)內(nèi)造成反饋環(huán)路和振蕩。源路由器212的IGP-TE協(xié)議(例如,IGP-TE協(xié)議42(圖2))可擴(kuò)展成包括將額外功能(例如,ECMP功能)通告給鄰近路由器的能力,并且了解從鄰近路由器接收ECMP功能通告的時間。源路由器212因此可發(fā)送和接收功能通告,其表示源路由器212或下游路由器能夠計算帶寬量,以考慮在共享網(wǎng)絡(luò)鏈路的多個等價轉(zhuǎn)發(fā)路徑之間分割共享網(wǎng)絡(luò)鏈路的鏈路帶寬。例如,IGP-TE協(xié)議42可擴(kuò)展成通告功能,包括路由器是否支持均勻加權(quán)的ECMP、與接口帶寬成比例地加權(quán)的ECMP、根據(jù)路徑帶寬加權(quán)的ECMP或者通告與IGP-TE協(xié)議42所使用的ECMP算法相關(guān)的其他功能。作為一個示例,節(jié)點功能的兩比特可用于通告ECMP功能,并且可如下進(jìn)行限定:00-非特定的ECMP功能、01進(jìn)行均勻加權(quán)的ECMP、10-與接口帶寬成比例地加權(quán)的ECMP、11-根據(jù)路徑帶寬加權(quán)的ECMP。與TE擴(kuò)展一樣,IS-IS可擴(kuò)展成通告平行鏈路。此外,能夠識別需要某些性能特征(例如,最小等待時間)的流量,并且源路由器212可明確地將該流量轉(zhuǎn)發(fā)到最佳滿足這些要求的等價路徑上。對于涉及最小化或消弱拓?fù)洌ɡ?,包括所有?包括任何的/排除管理顏色、鏈路、節(jié)點或SRLG)的任何特征,都可進(jìn)行此??捎稍绰酚善?12例如用IPv4報頭或IPv6報頭內(nèi)的區(qū)別服務(wù)代碼點(DSCP)字段,或者由MPLS標(biāo)簽堆棧入口的EXP字段或流量類別字段標(biāo)識這種流量。本文中所描述的基本示例WECMP算法不假設(shè)計算路由器具有流量矩陣的任何知識。流量矩陣表示在時間T1到時間T2的指定時間間隔(例如,15分鐘)內(nèi),從路由器X發(fā)送多少流量到路由器Y。局部流量矩陣表示多少流量X希望發(fā)送到每個目的地。然而,如果已知流量矩陣,那么計算路由器可在考慮下游路由器的性能下使用該流量矩陣,來更新所使用的帶寬。例如,如果已知下游路由器X具有至Y的流量為T,那么計算路由器S可將通過X的路徑帶寬減小至T,這就提供了分層效果。這還未解決考慮到多個目的地的流量,但是通過將目的地以及額外的復(fù)雜性進(jìn)行排序,可解決該問題。作為一個示例,可將目的地從最大流量到最小流量進(jìn)行排序。也可使用整體流量矩陣,而非局部流量矩陣?,F(xiàn)在描述一種示例算法,該算法用于確定如何將至目的節(jié)點D的流量在可用于節(jié)點D的兩個以上ECMP路徑之間分布,以將可到達(dá)節(jié)點D的流量最大化,或者可替換地,如何盡可能多地將流量分布到節(jié)點D中,以將網(wǎng)絡(luò)擁塞最小化。提供以下算法中所使用的變量的描述符?!癈i,j”表示鏈路Li,j的容量?!癲”表示節(jié)點的集合中的索引,以D表示節(jié)點(即,D=Nd)?!癉”表示計算路由器進(jìn)行負(fù)載分割流量所至的“目的地”節(jié)點。“f”表示從特定節(jié)點到D的可能的下一跳的數(shù)量。“F”表示從特定節(jié)點到D的可能的下一跳的集合,從而F={Fi;1<i<f}?!癵,h,i,j,k”表示可用于各個集合/列表/矩陣內(nèi)的索引的索引變量?!癓”表示網(wǎng)絡(luò)內(nèi)的鏈路的集合?!癓i,j”表示從節(jié)點Ni到節(jié)點Nj的鏈路。對于每個目的地而言,“L′i,j”表示從計算路由器N1到目的地D的任何ECMP路徑內(nèi)所使用的鏈路的集合?!癓′”表示L的子集?!癕i,j”表示與Li,j相關(guān)的IGP度量值?!皀”表示網(wǎng)絡(luò)內(nèi)節(jié)點的數(shù)量?!癗”表示網(wǎng)絡(luò)內(nèi)節(jié)點的集合?!癗i”為第i個節(jié)點?!癗1”表示進(jìn)行這種計算的節(jié)點。假設(shè)N′為從計算路由器到目的地的路徑上所使用的所有路由器。將節(jié)點從N1到Nd進(jìn)行編號,并且D為Nd?!皃”表示從N1到D中存在的ECMP路徑的數(shù)量。“P”表示從N1到D中存在的ECMP路徑的集合,將其定義為{Pi;1≤i≤p}。“s”表示集合S內(nèi)節(jié)點的數(shù)量。“S”表示從N1到D的ECMP路徑中的任一個中出現(xiàn)的節(jié)點{Si;1<i<m}的集合。根據(jù)與 節(jié)點D相距的距離,對集合S進(jìn)行分類。在算法中,將從集合S中逐漸去除節(jié)點?!癝-first”表示S內(nèi)的第一節(jié)點(即,S內(nèi)具有的節(jié)點中最靠近D的節(jié)點,)?!癝umY”表示每當(dāng)運行線性編程問題時,所算出的最大值?!皒”表示鏈路流量矩陣。“Xi,j,k”表示經(jīng)由鏈路Lj,k從Ni到D的流量部分。“Y”和“Yi”表示線性編程算法中使用的變量。如下定義該問題。假設(shè)n個節(jié)點Ni(N1,N2,...Nn),鏈路的集合L,鏈路Li,j在節(jié)點i和j之間,其中,鏈路Li,j的容量表示為Ci,j,并且與鏈路Li,j相關(guān)的IGP度量值表示為Mi,j。已經(jīng)運行“標(biāo)準(zhǔn)的”狄克斯特拉(Dijkstra),以計算節(jié)點之間的路徑,包括ECMP路徑。假設(shè)節(jié)點N1為計算路由器,并且已經(jīng)算出至IGP區(qū)域內(nèi)所有其他節(jié)點的ECMP路徑;節(jié)點N1具有指向節(jié)點D(其中,D=Nd、1<d≤n)的數(shù)據(jù)流量;具有兩個以上可用于節(jié)點D的ECMP路徑;并且節(jié)點N1希望在多個路徑之間分布流量,以將可到達(dá)節(jié)點D的流量最大化(或者,將流量盡可能多地分布給節(jié)點D,以將網(wǎng)絡(luò)擁塞最小化)。然而,在該示例中,還假設(shè),這些節(jié)點使用IP轉(zhuǎn)發(fā)或LDP流量(具體而言,未使用RSVP-TE或顯式路由的路徑),并且當(dāng)節(jié)點N1在由算法所示的多個下一跳之間分布流量時,其他節(jié)點僅僅散布其流量,以將他們到D的流量均衡,并且不會注意到這些節(jié)點僅僅需要轉(zhuǎn)發(fā)部分流量這一事實。最初,假設(shè)所有節(jié)點使用同一個算法分布流量。在其他示例中,該算法可擴(kuò)展為處理某些下游節(jié)點僅僅在等價路徑之間均等地分割流量的情況。假設(shè)計算路由器意識到哪些下游節(jié)點正使用這種算法以及哪些下游節(jié)點正使用均等分割,例如,通過在IGP內(nèi)通告接收能量。在圖2、7和8的背景下示意性地描述了該示例,但是基本原理可用于各種不同的情況中。源路由器212接收指向目的地路由器214的網(wǎng)絡(luò)流量,將該網(wǎng)絡(luò)流量分為數(shù)據(jù)包流222A-222D(“數(shù)據(jù)包流222”)中的一個。根據(jù)所算出的用于路徑216的相應(yīng)權(quán)重,源路由器212將各個數(shù)據(jù)包流222分配給至目的地路由器214的路徑216中的一條,其中路徑216構(gòu)成ECMP集合,其中,根據(jù)在路徑216的輸出接口上發(fā)送的全部帶寬,計算這些權(quán)重。通常,由于所算出的權(quán)重,使得權(quán)重值越高,源路由器212分配給輸出接口(下一 跳接口)的網(wǎng)絡(luò)流量的相對比例越大。在所示出的示例中,與下一跳路由器210A和鏈路205A相關(guān)的輸出接口比與下一跳路由器210B和鏈路205B相關(guān)的輸出接口具有相對更高的路徑帶寬,并且因此,相比于與下一跳路由器210B相關(guān)的輸出接口,源路由器212為與下一跳路由器210A相關(guān)的輸出接口計算的權(quán)重更高。而且,在識別各個數(shù)據(jù)包流222之后,源路由器212根據(jù)所算出的輸出接口的權(quán)重,將各個數(shù)據(jù)包流222分配給與下一跳路由器210A相關(guān)的輸出接口。由于源路由器212將更高的權(quán)重值和與下一跳路由器210A相關(guān)的輸出接口相關(guān)聯(lián),所以源路由器212將多個數(shù)據(jù)包流(即,在該示例中,為數(shù)據(jù)包流222A、222B和222C)分配給與下一跳路由器210A和路徑216A相關(guān)的輸出接口,同時將少量的數(shù)據(jù)包流(僅僅為數(shù)據(jù)包流22D)分配給與下一跳路由器210B和路徑216B相關(guān)的輸出接口??蛇B續(xù)地執(zhí)行所描述的技術(shù),以隨著時間促進(jìn)數(shù)據(jù)包流的動態(tài)負(fù)載平衡,該動態(tài)負(fù)載平衡響應(yīng)于ECMP集合內(nèi)路徑的下面鏈路的可用帶寬狀態(tài)而變化。本公開的技術(shù)可改進(jìn)網(wǎng)絡(luò)6內(nèi)的負(fù)載平衡,以同時減少擁塞并且提高網(wǎng)絡(luò)性能。例如,假設(shè)各個數(shù)據(jù)包流222對于被分類成數(shù)據(jù)包流的數(shù)據(jù)包的尺寸和速率具有相似的配置,根據(jù)算出的沿著每個路徑216的路徑帶寬,而不是根據(jù)輪叫技術(shù),分配數(shù)據(jù)包流222時,可在路徑216之間提供更均等的負(fù)載平衡,這是由于與和下一跳路由器210B相關(guān)聯(lián)的輸出接口相比,源路由器212將更多的流量分配給與下一跳路由器210A相關(guān)聯(lián)的輸出接口,該輸出接口具有的所算出的帶寬量相對更高。這使路徑216A相對于路徑216B,攜帶相應(yīng)更大的流量流222,從而相對于等流量分布技術(shù),減少了路徑216B上的負(fù)載。圖8為示出了圖2的示例路由器28的示例操作的流程圖,該示例操作用于在至目的地裝置的多個ECMP路徑之間分布網(wǎng)絡(luò)流量。雖然關(guān)于圖2的路由器28作為示例進(jìn)行描述,但是圖7的路由器210、212或214也可應(yīng)用這些技術(shù)。路由器28的RP守護(hù)進(jìn)程40執(zhí)行最短路徑優(yōu)先算法,例如,Dijkstra算法,以計算網(wǎng)絡(luò)內(nèi)從N1到每個其他節(jié)點(包括目的地D)的一個或多個路徑。RP守護(hù)進(jìn)程40可通過RIB38內(nèi)的鏈路狀態(tài)信息, 執(zhí)行最短路徑優(yōu)先算法,以根據(jù)RIB38內(nèi)的IGP度量值計算ECMP路徑。在某些情況下,RP守護(hù)進(jìn)程40識別滿足一個或多個約束條件的、至特定目的地或目的地集合的多個等價轉(zhuǎn)發(fā)路徑,并且在這種情況下,創(chuàng)建由多個等價轉(zhuǎn)發(fā)路徑構(gòu)成的ECMP集合(230)。RP守護(hù)進(jìn)程40計算從N1到D的p個路徑,由P1,P2,…Pp表示。將集合P定義為從N1到D的所有路徑的集合{Pi;1<i<p}。RP守護(hù)進(jìn)程40計算s個節(jié)點的集合S={Si;1<i<s},其等于N1和D(包括N1和D)之間的p個路徑中的任一個上出現(xiàn)的網(wǎng)絡(luò)內(nèi)的所有節(jié)點(232)。對于從N1到D的兩個以上路徑內(nèi)出現(xiàn)的任何節(jié)點而言,該節(jié)點在集合S內(nèi)僅僅出現(xiàn)一次,因此s≤n。計算S時,要注意的是,所有路徑為等價路徑。因此,對于從N1到D的兩個以上路徑內(nèi)出現(xiàn)的任何節(jié)點Si,該節(jié)點以與N1相距相同距離出現(xiàn)在所有路徑內(nèi),并且還以與D相距相同距離出現(xiàn)在所有路徑上。路徑權(quán)重計算器44利用到D的距離對節(jié)點進(jìn)行分類,從而第一節(jié)點S1實際上為D,并且第s個節(jié)點實際上為N1(234)。因此,明確定義利用到D的距離將S的元素分類的概念,這是因為這相當(dāng)于利用到N1的距離的逆序進(jìn)行分類。而且,要注意的是,這種順序剛好為在標(biāo)準(zhǔn)的Dijkstra算法中將節(jié)點從TENT(試驗性)列表移動到PATHS(路徑)列表中的逆序。因此,假設(shè)RP守護(hù)進(jìn)程40運行Dijkstra,來計算ECMP路徑,則路徑權(quán)重計算器44將集合S內(nèi)出現(xiàn)的節(jié)點進(jìn)行分類時基本上不需要額外的工作。路徑權(quán)重計算器44計算路徑P的集合內(nèi)的鏈路L′的集合(236)。為了將從N1到D的流量分布在ECMP路徑之間,因此L′內(nèi)的鏈路集合為“感興趣的”鏈路(L′內(nèi)不存在的鏈路不位于從N1到D的任何ECMP路徑上,并且因此對于該算法的剩余部分而言,其可被忽略)。在該算法的每個步驟中,在S的起初,路徑權(quán)重計算器44從S中去除節(jié)點S-first(即,S內(nèi)保留的最靠近D的節(jié)點),并且路徑權(quán)重計算器44計算兩件事情:(i)從S-first到D的流量在從S-first到D的每個ECMP路徑的第一跳上的負(fù)載分割方式;(ii)對于從S-first到D的任何流量,L′內(nèi)的每個鏈路上出現(xiàn)的流量的量(238)。如下所述,路徑權(quán)重計算器44計算矩陣X的元素,其中,X的元素Xi,j,k為從N1到D的流量要經(jīng)過鏈路Li,k到達(dá)D的部分(240)。因此,對于所有i,j,k而言,O≤xi,j,k≤1。最初,路徑權(quán)重計算器44從S中去除節(jié)點D。對于所有而言j,k,定義Xd,j,k=O。接下來,路徑權(quán)重計算器44在集合S的開始,去除下一個節(jié)點Nh。要注意的是,該節(jié)點最靠近S內(nèi)所保留的節(jié)點中的D節(jié)點。因此,要注意的是,對于比Nh更靠近D的任何節(jié)點i(對于所有j和k而言,使鏈路Li,k以L′呈現(xiàn)),已經(jīng)計算出Xi,j,k。要注意的是,Nh可出現(xiàn)在從N1到D的一個或多個路徑上。而且,如果出現(xiàn)在多個路徑內(nèi),那么對于每個路徑而言,Nh之后的下一跳可相同(例如,這些路徑可在別處分叉)或可不同(這些路徑可在Nh處分叉)。此時,路徑權(quán)重計算器44需要知道在到D的路徑上Nh之后可能的下一跳的集合。RP守護(hù)進(jìn)程40可將這個信息存儲在TED46內(nèi),用于Dijkstra計算過程中的每個節(jié)點,使得該信息此時是可用的。如果從Nh到D僅僅具有一個下一跳,那么假設(shè)在Nh的這個路徑上的下游鏈路進(jìn)入鄰近節(jié)點Ng。在這種情況下,路徑權(quán)重計算器44設(shè)定:Xh,h,g=1(1)對于與(h,g)不同的所有(j,k)而言,Xh,j,k:Xg,j,k(2)這暗示,在這種情況下,從Nh到D的所有流量將經(jīng)過從Nh到Ng的鏈路,并且然后進(jìn)一步下游該流量將精確地使用節(jié)點Ng選擇的那條路徑。如果從Nh到D具有多個(兩個以下)下一跳,那么路徑權(quán)重計算器44需要計算Nh到D的流量在Nh的所有下游鏈路之間分布的方式。路由器28會限制路由器28使用的下一跳的數(shù)量。假設(shè)Nh使用的下一跳的數(shù)量以及所使用的線路中斷器(例如,下一跳回送地址高或低)是已知的??紤]到這種知識,Nh潛在的下一跳的集合可精確地縮小到f個可能的下一跳。路徑權(quán)重計算器44將F定義為從Nh到D的可能下一跳的集合,從而F={Fi;1<i<f}。具體而言,F(xiàn)為節(jié)點索引的列表。因此,F(xiàn)i為整數(shù),其表示可能下一跳的集合內(nèi)第i個節(jié)點的索引。因此,對于從Nh到D的下一跳的鏈路的第i個選擇為Lh,F(xiàn)i,并且這導(dǎo)向至節(jié)點NFi。同樣,第i個鏈路的容量為Ch,F(xiàn)i。路徑權(quán)重計算器44將Yi定義為路由器28在從Nh到其直接鄰居NFi的路徑上發(fā)送(以將總流量最大化)的流量總量,1<i<f。由于以下線性編程問題,路徑權(quán)重計算器44然后計算從Nh到D的最大可能的流量:將Y=∑1≤i≤f[Yi]最大化(3)在對于集合L′內(nèi)的每個鏈路L′j,k而言,:∑1≤i≤f[Yi*XFi,j,k]≤Cj,k,Yi≥0(4)的條件下路徑權(quán)重計算器44使用式子(3)和(4)的該線性編程問題,以通過在對于ECMP路徑的集合內(nèi)所使用的每個鏈路,該鏈路上的流量小于或等于該鏈路的容量的約束條件下,將Nh的“下一跳”鏈路上的流量總和最大化,來將從Nh流到D的流量最大化。計算每個鏈路上的流量的量,作為流向特定的鄰近節(jié)點的流量的量乘以任何特定下游節(jié)點上負(fù)載的該流量的一部分的乘積。已算出至每個鄰居的流量Yi,路徑權(quán)重計算器44然后設(shè)定:限定SumY=Sum[Yi]1≤i≤f(5)Xh,h,Fi=Yi/SumY1≤i≤f(6)Xh,j,k=Sum[Xh,h,Fi*XFi,j,k]1≤i≤f(7)對于所有(j,k),j不等于h。式子(5)限定可發(fā)送的總流量,與式子(3)和(4)的線性編程問題所算出的一樣。式子(6)設(shè)置自節(jié)點h經(jīng)由其每個下游鏈路發(fā)送的流量部分。式子(7)設(shè)置更處于下游的所有鏈路上、源自節(jié)點h的流量的流量負(fù)載。式子(7)表示,由始于Nh的流量所引起的每條下游鏈路上出現(xiàn)的流量只是經(jīng)過所有直接下游鄰居的流量的量的總和,該流量的量是Nh要發(fā)送給這些鄰居的,并且是從節(jié)點Nh到D的總流量的一部分乘以到該鄰居并隨后經(jīng)由下游鏈路的流量部分的總和。因此,路徑權(quán)重計算器44設(shè)定路徑的相對權(quán)重,作為自節(jié)點h經(jīng)由每個下游鏈路發(fā)送的流量部分(242)。這樣,路徑權(quán)重計算器44可以以下的方式設(shè)定ECMP路徑接口的權(quán)重,該方式考慮下游路由器的行為。路徑權(quán)重計算器44將權(quán)重存儲到權(quán)重58中。所算出的相對較高的權(quán)重表示,與其他路徑相比,ECMP集合內(nèi)的路 徑的最小可用帶寬的量更大。根據(jù)路徑的各個權(quán)重58,多路徑轉(zhuǎn)發(fā)元件56將指向ECMP集合所服務(wù)的以及分類器74所識別的目的地的新數(shù)據(jù)包流分配給ECMP集合內(nèi)的路徑(244)。下面在表1中示出了針對圖7的示例網(wǎng)絡(luò)所算出的示例矩陣X。表1在圖7的示例中,表1所表示的矩陣X的每個元素表示X的元素Xi,j,k,其為經(jīng)由鏈路Lj,k從節(jié)點Ni到D的流量部分。因此,例如,元素XSD212,SD212,R210A為穿過從SD212到路由器210A的鏈路(圖7的鏈路205A)的節(jié)點源裝置(SD)212的流量部分。如下計算元素Xi,j,k,以表1為例。從路由器210F開始,路由器210F經(jīng)由R210F→DD214之間的鏈路205I發(fā)送來自源裝置212的其所有流量,因此,元素XR210F,R210F,DD214的值為1,并且列R210F內(nèi)的所有其他元素的值為0。同樣,路由器210D經(jīng)由R210F→DD214之間的鏈路205I發(fā)送來自源裝置212的其所有流量,因此,元素XR210D,R210D,DD214的值為1,并且列R210F內(nèi)的所有其他元素的值為0。在圖7的示例中,路由器210D不通過鏈路205H發(fā)送任何流量,這是因為假設(shè)所有鏈路205等價時,路由器210D采用至目的地路由器214的最短路徑,而該最短路徑為鏈路205F。路由器210E通過鏈路205G將其一半流量發(fā)送給路由器210F(R210E→R210F),并且通過鏈路205H將其一半流量發(fā)送給路由器210D(R210E→R210D)。因此,元素XR210E,R210E,R210F和XR210E,R210E,R210D的值均為0.5。反過來,如上所述,路由器210F將所有這種流量從路由器210E發(fā) 送到目的地路由器210,所以通過乘法0.5*1=0.5,可算出元素XR210E,R210F,DD214。同樣,通過乘法0.5*1=0.5,可算出元素XR210E,R210D,DD214。路由器210C通過鏈路205D將其所有流量發(fā)送給路由器210D,因此,元素XR210C,R210C,R210D的值為1,然后,如上所述,路由器210D反過來通過鏈路205F將所有這種流量發(fā)送給路由器214,因此,元素XR210C,R210D,DD214的值為1*1=1。同樣,路由器210A通過鏈路205C將其所有流量發(fā)送給路由器210C,因此,元素XR210A,R210A,R210C的值為1,然后,反過來,如上所述,路由器210C通過鏈路205D將所有這種流量發(fā)送給路由器210D,因此,元素XR210A,R210C,R210D的值為1*1=1。路由器210B通過鏈路205E將其所有流量發(fā)送給路由器210E,因此,元素XR210B,R210B,R210E的值為1。根據(jù)與上面所計算的比相同的比,路由器210E分布路由器210B的流量,從而可從路由器210E列中,復(fù)制路由器210B列的元素的剩余部分。源路由器212通過鏈路205A將其一半流量發(fā)送給路由器210A,并且通過鏈路205B將其一半流量發(fā)送給路由器210B,因此,元素XSD212,SD212,R210A和XSD212,SD212,R210B的值均為0.5。根據(jù)上述式子(7),表1中示出了剩余的值。由于式子(2)和(3)的線性編程問題的本性,不存在單個唯一的解,即,多個解是可能的。結(jié)果,下游節(jié)點碰巧提出與上游節(jié)點所期望的解不同的解。通過首先計算從Nh到D可支持的最大流量,然后,利用總流量(Yi的總和)正是如此大的所添加的約束條件,將Nh中最繁忙的鏈路上的流量最小化,可潛在地減小這個問題的影響。原則上,使用兩個單獨的線性編程計算可實現(xiàn)此。然而,這會浪費計算資源,并且會遇到舍入誤差這一潛在的問題(由于這涉及增加僅僅勉強可行的約束條件,所以舍入誤差會使得其明顯不可行)。可通過算法中相對直接部分的方式來增加約束條件并且改變目的地函數(shù)。雖然這并非線性,但是另一個解決方法在于,將所使用的下一跳數(shù)量最大化,同時將任何兩個Yi之間的比最小化。如下找出確定解的一個示例方法,該確定解試圖均衡流量并且具有最小數(shù)量的不同值。該理念在于不斷地嘗試發(fā)送等量的流量。a)開始于所有的Xi相等并且等于Zj的假設(shè)。b)求解Z。c)在相等的式子中,從該問題中去除任何Yi,也去除這些式子。為等于Zj的那些Yi求解。d)從(a)開始,重復(fù)剩余的值,假設(shè)這些值等于Zj+1≥Zj。e)Yi均具有解集時,完成問題。用于找出試圖均衡流量的確定解的另一個示例方法在于,開始于固定的帶寬單元,然后反過來進(jìn)行將該固定的帶寬單元添加至要發(fā)送至每個鄰居的帶寬的循環(huán)操作。如果所添加的帶寬造成違反鏈路容量,那么去除所添加的帶寬,并且從循環(huán)中去除鄰居,繼續(xù)進(jìn)行這種操作直到所有的鄰居被去除。如上所述,路由器所使用的IGP-TE可擴(kuò)展到包括將ECMP功能通告給鄰近路由器的能力。以上示例算法可被增強為處理以下可能性:某些下游節(jié)點僅僅能夠在所有可能的等價的直接下游鄰居之間進(jìn)行平等的負(fù)載分割。處理根本不進(jìn)行負(fù)載分割的下游節(jié)點時遇到以下問題:如果下游節(jié)點具有進(jìn)入D的兩種等價方式,那么計算路由器不知道下游節(jié)點使用哪種方式。同樣,如果下游節(jié)點僅能夠在兩個鄰居之間進(jìn)行均等地分割,而下游節(jié)點實際上具有四個等價的下游鄰居,那么計算路由器不知道下游節(jié)點將選擇這四個下游鄰居中的哪兩個。在路由器實施時,僅僅具有如此多可使用的不同下一跳,這是由轉(zhuǎn)發(fā)平面的限制以及配置造成的。在SPF計算動態(tài)地分配下一跳并不是起因。如論如何,來自所有下一跳的這種限制存在于SPF內(nèi),并且在ECMP流量加權(quán)算法中,需要考慮這種限制。通常,路由器可做以下三件事情之一:(1)將下一跳路由器的回路地址用作線路中斷器,并且保持與數(shù)字最低的回路地址相對應(yīng)的下一跳;(2)將下一跳路由器的回路地址用作線路中斷器,并且保持與數(shù)字最高的回路地址相對應(yīng)的下一跳;(3)保持遇到的第一下一跳并且丟棄剩余下一跳。如果已知路由器執(zhí)行(1)或(2)以及下一跳的最大計數(shù)為多少,那么可使用該信息選擇Nh會挑選的始于Nh的可能下一跳的子集。然后,可使用這個減少的集合來代替。由于Nh已經(jīng) 運行,所以選項(3)需要運行相同的SPF算法,這可能不太實際。這還要求該算法不刪除等價路徑并且保持反向指示器(back-indicator)的列表,從而可獲悉整個路徑集合。在一個示例方面,一種網(wǎng)絡(luò)裝置包括:控制單元,包括一個或多個處理器;控制單元的路由協(xié)議軟件,接收位于網(wǎng)絡(luò)的網(wǎng)絡(luò)裝置和第二網(wǎng)絡(luò)裝置之間的網(wǎng)絡(luò)的一個或多個網(wǎng)絡(luò)鏈路中的每個的鏈路帶寬,其中,所述路由協(xié)議軟件用于執(zhí)行路由協(xié)議,以選擇均滿足約束條件的、自網(wǎng)絡(luò)裝置到第二網(wǎng)絡(luò)裝置的多條轉(zhuǎn)發(fā)路徑。網(wǎng)絡(luò)裝置還包括控制單元的路徑權(quán)重計算器,用于在確定出由多條轉(zhuǎn)發(fā)路徑中的多個共享的一個網(wǎng)絡(luò)鏈路時,計算可在第一路由器的輸出接口上發(fā)送給多條轉(zhuǎn)發(fā)路徑上的鄰近節(jié)點的帶寬量,所述多條轉(zhuǎn)發(fā)路徑共享一個網(wǎng)絡(luò)鏈路,其中,計算所述帶寬量時,所述路徑權(quán)重計算器考慮在共享所述網(wǎng)絡(luò)鏈路的多條轉(zhuǎn)發(fā)路徑之間分割所述共享的網(wǎng)絡(luò)鏈路的鏈路帶寬,以及當(dāng)下游路由器計算可在下游路由器的輸出接口上發(fā)送的帶寬量時,考慮這樣的下游路由器,該下游路由器并不考慮在共享所述網(wǎng)絡(luò)鏈路的多條轉(zhuǎn)發(fā)路徑之間分割所述共享的網(wǎng)絡(luò)鏈路的鏈路帶寬。網(wǎng)絡(luò)裝置進(jìn)一步包括控制單元的多路徑轉(zhuǎn)發(fā)元件,用于至少根據(jù)所算出的帶寬量,選擇性地將數(shù)據(jù)包流分配給第一路由器的多個輸出接口中的每個;以及一個或多個接口卡,用于接收數(shù)據(jù)包流的數(shù)據(jù)包,其中,多路徑轉(zhuǎn)發(fā)元件將每個數(shù)據(jù)包流的數(shù)據(jù)包轉(zhuǎn)發(fā)給多個輸出接口中數(shù)據(jù)包流所分配給的相應(yīng)一個輸出接口。在這個和其他示例中,網(wǎng)絡(luò)裝置可包括一個接口卡,其接收功能通告,該功能通告表示下游路由器是否具有考慮將所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬在共享網(wǎng)絡(luò)鏈路的多條轉(zhuǎn)發(fā)路徑之間分割的功能。在這個和其他示例中,網(wǎng)絡(luò)裝置的路徑加權(quán)計算器可用于,為始于網(wǎng)絡(luò)中具有至第二路由器的最少成本的節(jié)點并與位于網(wǎng)絡(luò)的第一路由器和第二路由器之間的網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路相關(guān)聯(lián)的每個節(jié)點,計算從各個節(jié)點經(jīng)過各條網(wǎng)絡(luò)鏈路到達(dá)目的地的網(wǎng)絡(luò)流量部分;以及在對于等價轉(zhuǎn)發(fā)路徑內(nèi)使用的每個網(wǎng)絡(luò)鏈路,網(wǎng)絡(luò)鏈路上的網(wǎng)絡(luò)流量量小于或等于該網(wǎng)絡(luò)鏈路的容量的約束條件下,將始于第一路由器的下一跳網(wǎng)絡(luò)鏈路上的流量的總和 最大化,其中,計算每個網(wǎng)絡(luò)鏈路上的網(wǎng)絡(luò)流量量,作為流向特定的鄰近節(jié)點的網(wǎng)絡(luò)流量乘以在與鄰近節(jié)點相關(guān)聯(lián)的任何特定下游鏈路上負(fù)載的網(wǎng)絡(luò)流量部分的乘積。在這個和其他示例中,網(wǎng)絡(luò)鏈路的容量包括鏈路的總?cè)萘?、鏈路的剩余帶寬容量以及鏈路的可用帶寬容量中的一個。在這個和其他示例中,網(wǎng)絡(luò)裝置的路徑加權(quán)計算器可用于為多條轉(zhuǎn)發(fā)路徑中的一個,成比例地分配多條轉(zhuǎn)發(fā)路徑之間所共享的網(wǎng)絡(luò)鏈路的鏈路帶寬,成比例分配的鏈路帶寬以隨后分配給多條轉(zhuǎn)發(fā)路徑中的每個的帶寬量成比例;以及將用于多條轉(zhuǎn)發(fā)路徑中的一個的帶寬量設(shè)定為以下中的最小值,(i)隨后分配給多條轉(zhuǎn)發(fā)路徑中的一個的帶寬量;以及(ii)根據(jù)按比例分配鏈路帶寬,分配給多條轉(zhuǎn)發(fā)路徑中的一條轉(zhuǎn)發(fā)路徑的路徑鏈路帶寬部分。在這個和其他示例中,網(wǎng)絡(luò)裝置的路徑加權(quán)計算器可用于為始于網(wǎng)絡(luò)內(nèi)具有至第二路由器的最小成本距離的節(jié)點并與位于網(wǎng)絡(luò)的第一路由器和第二路由器之間的網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路相關(guān)聯(lián)的每個節(jié)點,重復(fù)以下步驟:按比例地分配鏈路帶寬以及設(shè)定帶寬量。在這個和其他示例中,網(wǎng)絡(luò)裝置的路徑加權(quán)計算器可用于至少根據(jù)所算出的用于多條轉(zhuǎn)發(fā)路徑中的每個的帶寬量,確定多條轉(zhuǎn)發(fā)路徑中的每個的權(quán)重;以及至少根據(jù)多條轉(zhuǎn)發(fā)路徑中的每個的權(quán)重,將數(shù)據(jù)包流選擇性地分配給多條轉(zhuǎn)發(fā)路徑中的每個。在這個和其他示例中,多條轉(zhuǎn)發(fā)路徑包括多個等價轉(zhuǎn)發(fā)路徑,并且路由協(xié)議軟件用于生成等價多路徑(ECMP)集合,其包括多個等價轉(zhuǎn)發(fā)路徑。在這個和其他示例中,網(wǎng)絡(luò)裝置可進(jìn)一步包括轉(zhuǎn)發(fā)信息以及含有每個數(shù)據(jù)包流的相應(yīng)數(shù)據(jù)包流入口的流表,其中,路徑加權(quán)計算器至少根據(jù)所算出的關(guān)于ECMP集合內(nèi)多個等價轉(zhuǎn)發(fā)路徑中的每個的帶寬量,確定ECMP集合內(nèi)多個等價轉(zhuǎn)發(fā)路徑中的每個的權(quán)重,并且其中,路由協(xié)議軟件生成用于ECMP集合內(nèi)多個等價轉(zhuǎn)發(fā)路徑中的每個的相應(yīng)下一跳結(jié)構(gòu)并將下一跳結(jié)構(gòu)安置到轉(zhuǎn)發(fā)信息中。此外,多路徑轉(zhuǎn)發(fā)元件將用于ECMP集合內(nèi)多個等價轉(zhuǎn)發(fā)路徑中的每個的權(quán)重和用于轉(zhuǎn)發(fā)路徑的下一跳結(jié)構(gòu) 相關(guān)聯(lián);以及至少根據(jù)與下一跳結(jié)構(gòu)相關(guān)聯(lián)的權(quán)重,將數(shù)據(jù)包流選擇性地分配給下一跳結(jié)構(gòu),以及對于每個數(shù)據(jù)包流,在用于數(shù)據(jù)包流的各個數(shù)據(jù)包流入口內(nèi),設(shè)置在轉(zhuǎn)發(fā)信息內(nèi)為數(shù)據(jù)包流所分配的下一跳結(jié)構(gòu)的索引。在這個和其他示例中,鏈路帶寬可包括:一個或多個網(wǎng)絡(luò)鏈路中的每個的一個最大鏈路帶寬,其中,最大鏈路帶寬限定了與網(wǎng)絡(luò)鏈路相關(guān)聯(lián)的帶寬容量的最大量;一個或多個網(wǎng)絡(luò)鏈路中的每個的剩余帶寬,其中,剩余帶寬限定了最大鏈路帶寬減去資源預(yù)留協(xié)議操作所預(yù)留的網(wǎng)絡(luò)鏈路的帶寬后的網(wǎng)絡(luò)鏈路的帶寬容量的量;以及一個或多個網(wǎng)絡(luò)鏈路的每個的可用帶寬,其中,可用帶寬限定了既非資源預(yù)留協(xié)議操作所預(yù)留的也非第一路由器當(dāng)前用于轉(zhuǎn)發(fā)使用未預(yù)留資源的流量的網(wǎng)絡(luò)鏈路的帶寬容量的量。已經(jīng)描述了各個示例。這些以及其他示例在所附權(quán)利要求書的范圍內(nèi)。