胖樹網(wǎng)絡(luò)中的無死鎖路由的制作方法
【專利摘要】本發(fā)明涉及胖樹網(wǎng)絡(luò)中的無死鎖路由。在胖樹網(wǎng)絡(luò)中的源和目的地交換機(jī)之間路由數(shù)據(jù)分組的方法和裝置。為每個(gè)數(shù)據(jù)分組選擇具有三個(gè)或更少路由階段的路由,使得路由遵循源和目的地交換機(jī)之間的跨過網(wǎng)絡(luò)的最短路徑。經(jīng)由路由,在第一和第二虛擬通道中的一個(gè)上從源到目的地交換機(jī)傳送數(shù)據(jù)分組,除非該路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的一個(gè)轉(zhuǎn)彎。如果路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的一個(gè)轉(zhuǎn)彎,則經(jīng)由路由,直到轉(zhuǎn)彎發(fā)生的交換機(jī)處在第一虛擬通道上傳送數(shù)據(jù)分組,并且從該交換機(jī)起在第二虛擬通道上傳送數(shù)據(jù)分組。這提供胖樹網(wǎng)絡(luò)中無死鎖操作的完全連接。提供直接胖樹網(wǎng)絡(luò),末端節(jié)點(diǎn)連接到胖樹拓?fù)涞亩鄠€(gè)級中的交換機(jī)。
【專利說明】胖樹網(wǎng)絡(luò)中的無死鎖路由
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明一般涉及胖樹網(wǎng)絡(luò)中的無死鎖路由。
【背景技術(shù)】
[0002]胖樹網(wǎng)絡(luò)是包括以多根樹形拓?fù)溥B接的多個(gè)交換機(jī)的分層遞歸結(jié)構(gòu)網(wǎng)絡(luò)。這些網(wǎng)絡(luò)得到廣泛的普及并被用在許多現(xiàn)代的高性能計(jì)算系統(tǒng)和商業(yè)數(shù)據(jù)中心基礎(chǔ)設(shè)施中。胖樹拓?fù)浣Y(jié)構(gòu)存在大量變型,但從附圖的圖1中可以理解這些網(wǎng)絡(luò)的基本原理。其顯示了被稱為“k元η樹”的具體的非常規(guī)則的胖樹網(wǎng)絡(luò)的例子。在這種指定中,k為樹的數(shù)基(即在每一級中子和/或父的數(shù)量),η是級數(shù)。k元η樹有η級交換機(jī),每個(gè)交換機(jī)具有數(shù)基2k,其中一半端口向下連接,而另一半向上連接。(頂級中的交換機(jī)(即樹的根)在原理上只需要數(shù)基k,因?yàn)樗鼈儧]有父,但實(shí)際上這些端口可能存在并且是未連接的以允許未來網(wǎng)絡(luò)擴(kuò)展)。圖1的網(wǎng)絡(luò)是二進(jìn)制4樹,由此k=2且n=4,其中正方形表示交換機(jī)并且它們之間的線表示交換機(jī)間鏈路。交換機(jī)形成間接網(wǎng)絡(luò)拓?fù)涞幕ミB網(wǎng)絡(luò),即末端節(jié)點(diǎn)(計(jì)算節(jié)點(diǎn)、服務(wù)器等)連接在網(wǎng)絡(luò)的邊緣處,從而在計(jì)算和聯(lián)網(wǎng)之間提供明確的區(qū)分。圖1中的末端節(jié)點(diǎn)由圓圈表示,并連接到交換機(jī)的底層,即樹拓?fù)涞娜~子。
[0003]經(jīng)由包括兩個(gè)路由階段的簡單路由過程,可在胖樹網(wǎng)絡(luò)中的任何一對末端節(jié)點(diǎn)之間傳輸分組。第一路由階段是“向上階段”,其中路由跟隨拓?fù)涞南蛏戏较?即朝向根)中的一個(gè)或多個(gè)交換機(jī)到交換機(jī)跳躍。這接著是“向下階段”,在“向下階段”中,路由跟隨拓?fù)涞南蛳路较蛑械囊粋€(gè)或多個(gè)交換機(jī)到交換機(jī)跳躍。利用這種路由策略,最短路徑路由是直接的,因?yàn)槁酚芍话ㄏ蛏?向下轉(zhuǎn)彎,而不包括向下/向上轉(zhuǎn)彎,從而避免了死鎖。(如果在通道依賴關(guān)系圖中的資源之間有循環(huán)依賴,則死鎖可能發(fā)生,因?yàn)檫@可能導(dǎo)致網(wǎng)絡(luò)的操作中資源請求之間不可調(diào)和的沖突)。在任何源和目的地(未連接到相同的葉交換機(jī))之間還有多條等長的路徑,從而使能網(wǎng)絡(luò)操作中的多條路徑和負(fù)載平衡。胖樹網(wǎng)絡(luò)還提供高平分帶寬,并且層次結(jié)構(gòu)易于擴(kuò)展到非常大的網(wǎng)絡(luò)。
[0004]由于胖樹網(wǎng)絡(luò)的間接特性,用于這些網(wǎng)絡(luò)的路由算法只處理從一個(gè)末端節(jié)點(diǎn)到另一個(gè)末端節(jié)點(diǎn)的流量,而不提供從網(wǎng)絡(luò)中的任何交換機(jī)到任何其它交換機(jī)的連接。完全的交換機(jī)到交換機(jī)連接將需要使用具有向上/向下轉(zhuǎn)彎的路由,而這些轉(zhuǎn)彎可以在網(wǎng)絡(luò)中引入死鎖,必須不惜一切代價(jià)避免死鎖。然而,直接的交換機(jī)到交換機(jī)連接對若干網(wǎng)絡(luò)管理功能來說可以是非常有益的,例如通信拓?fù)渥兓?節(jié)點(diǎn)和/或交換機(jī)的添加或去除)、本地故障事件(例如鏈路斷開)的分布以及診斷(測量任意交換機(jī)對之間的延遲或吞吐量)。此外,目前的InfiniBand交換機(jī)經(jīng)常具有需要與網(wǎng)絡(luò)中所有交換機(jī)連接的嵌入的子網(wǎng)管理器。(InfiniBand是InfiniBand貿(mào)易協(xié)會的商標(biāo))。
[0005]在Bogdanski等人在ACM Trans.Architecture and Code Optimization、第 8 卷第4 期、2012 年 I 月的“sFtree:A fully connected and deadlock-free switch-to-switchrouting algorithm for fat-trees”中描述了胖樹網(wǎng)絡(luò)中完全連接的提議。此提議指定在整個(gè)間接網(wǎng)絡(luò)拓?fù)鋬?nèi)的特定反轉(zhuǎn)的子樹,其中在路由期間向下/向上轉(zhuǎn)彎可能發(fā)生。如果傳統(tǒng)兩階段的向上-向下路由不提供源交換機(jī)和目的地交換機(jī)之間的連接,則使用四階段的向上-向下-向上-向下路由,其中,在指定的子樹中發(fā)生向下/向上轉(zhuǎn)彎。通過路由限制來避免硬件修改,例如使用作者認(rèn)為對于這些網(wǎng)絡(luò)不可取的虛擬通道,這提供了無死鎖的路由。提出的路由方法既不是最短路徑,也不能充分利用路徑多樣性。此外,因?yàn)樗谝粋€(gè)反轉(zhuǎn)的子樹中集中交換機(jī)到交換機(jī)流量,該網(wǎng)絡(luò)容易由于網(wǎng)絡(luò)故障而發(fā)生擁塞效應(yīng)和連接損失。
[0006]一般對于網(wǎng)絡(luò)中避免死鎖來說各種機(jī)制是已知的,包括使用虛擬通道(gp資源(例如交換機(jī)緩沖器和鏈接)的分區(qū)以提供一個(gè)物理通道內(nèi)的多個(gè)邏輯通道),以及諸如注入限制的流控制機(jī)制以防止任何單個(gè)的資源停止運(yùn)送。Domke等人在Proceedings of the25th IEEE International Parallel&Distributed ProcessingSymposium(IPDPS), Anchorage, USA,第 613-624 頁,2011 年 5 月上的“Deadlock-freeOblivious Routing for Arbitrary Topologies”中討論了在任意節(jié)點(diǎn)到節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)渲袨楸苊馑梨i使用虛擬通道。這提出了基于網(wǎng)絡(luò)拓?fù)涞脑敿?xì)分析的復(fù)雜系統(tǒng)。這個(gè)算法和類似的算法通常需要2到12個(gè)虛擬通道,以保證無死鎖。Sancho等人在Pioc.1EEEInternational Conference on Parallel Processing (ICPP), Vancouver, Canada,第409-418 頁,2002年8 月的“Effective Methodology for Deadlock-Free Minimal Routingin InfiniBand Networks”中公開了在InfiniBand網(wǎng)絡(luò)中為無死鎖路由而使用虛擬渠道和服務(wù)級。這需要包括最小的路徑計(jì)算并映射到任意拓?fù)涞纳蓸涞膹?fù)雜網(wǎng)絡(luò)分析,其中,虛擬通道被分配(如果可用的話)以打破死鎖。這些用于任意拓?fù)涞母鞣N技術(shù)在胖樹網(wǎng)絡(luò)中導(dǎo)致表現(xiàn)不佳,因?yàn)樗鼈兾茨芾脴涞亩嗦窂侥芰Α?br>
【發(fā)明內(nèi)容】
[0007]本發(fā)明的一個(gè)方面提供了一種在胖樹網(wǎng)絡(luò)中的源交換機(jī)與目的地交換機(jī)之間路由數(shù)據(jù)分組的方法,該方法包括:
[0008]為每個(gè)分組選擇具有三個(gè)或更少的路由階段的路由,使得路由遵循源交換機(jī)和目的地交換機(jī)(即用于所選路由的源交換機(jī)和目的地交換機(jī))之間的跨過所述網(wǎng)絡(luò)的最短路徑;
[0009]經(jīng)由所述路由,從源交換機(jī)到目的地交換機(jī)在第一虛擬通道和第二虛擬通道中的一個(gè)上傳送數(shù)據(jù)分組,除非該路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的一個(gè)轉(zhuǎn)彎;以及
[0010]如果該路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的所述一個(gè)轉(zhuǎn)彎,則經(jīng)由所述路由,直到所述轉(zhuǎn)彎發(fā)生的交換機(jī)處在第一虛擬通道上傳送數(shù)據(jù)分組,并且從該交換機(jī)起在第二虛擬通道上傳送數(shù)據(jù)分組。
[0011]利用體現(xiàn)本發(fā)明的路由方法,所有的路由具有三個(gè)或更少的路由階段。這允許路由階段的六種可能的組合:向上、向下、向上-向下、向下-向上、向上-向下-向上和向下-向上-向下。這六種階段組合中的任何一種可用于路由,但是對于任何給定的路由,使用適當(dāng)?shù)碾A段組合,使得路由遵循整個(gè)網(wǎng)絡(luò)拓?fù)渲械脑春湍康牡刂g的最短路徑(即最小數(shù)量的交換機(jī)間跳躍)。通過為包括預(yù)定類型的轉(zhuǎn)彎的路由使用兩個(gè)虛擬通道而避免死鎖。在一些實(shí)施例中,這是向下到向上轉(zhuǎn)彎。在其他實(shí)施例中,它是向上到向下轉(zhuǎn)彎。如果為數(shù)據(jù)分組選擇的路由包括這種特定類型的轉(zhuǎn)彎,則從源直到該轉(zhuǎn)彎發(fā)生的交換機(jī)(“轉(zhuǎn)彎交換機(jī)”)處在第一虛擬通道上傳送該分組,并且從轉(zhuǎn)彎交換機(jī)到目的地在第二虛擬通道上傳送該分組。其他路由對于從源到目的地的整個(gè)路由可使用任一個(gè)虛擬通道。這提供了簡單但是高效的路由系統(tǒng),該路由系統(tǒng)提供胖樹網(wǎng)絡(luò)中的完全的交換機(jī)到交換機(jī)連接。對于任何路由,需要不超過三個(gè)路由階段,可使用適當(dāng)?shù)碾A段組合,使得總是為任何的源交換機(jī)和目的地交換機(jī)對選擇最短路徑。通過僅僅使用兩個(gè)虛擬通道,即只是比必要的物理通道多一個(gè)通道,始終保證避免死鎖。和上述Bogdanski等人的想法相反,這個(gè)簡單的雙通道系統(tǒng)提供顯著的性能優(yōu)勢。可充分利用胖樹網(wǎng)絡(luò)中路徑多樣性,同時(shí)實(shí)現(xiàn)完全的最短路徑連接。通過在多個(gè)路徑上的負(fù)載均衡,延遲可以被最小化,而效率可被進(jìn)一步提高。此外,通過避免路徑限制,可靠性和效率均得到提高:擁塞影響的可能性減小而容錯(cuò)性提高。因此,總的來說,體現(xiàn)本發(fā)明的路由方法提供了完全連接的胖樹網(wǎng)絡(luò)中的簡單、可靠且高效的路由。
[0012]在優(yōu)選實(shí)施例中,向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的所述預(yù)定的轉(zhuǎn)彎是向下到向上轉(zhuǎn)彎,從而分組在具有向下/向上轉(zhuǎn)彎的路由上從第一虛擬通道改變到第二虛擬通道。在特別簡單的實(shí)現(xiàn)中,對于不包括預(yù)定的一個(gè)轉(zhuǎn)彎的路由,在第一虛擬通道上傳送分組。然后最初在第一通道上傳送所有分組,僅在做出向下/向上(或可替代地向上/向下)轉(zhuǎn)彎時(shí)改變到第二通道。
[0013]體現(xiàn)本發(fā)明的路由方法可包括為數(shù)據(jù)分組計(jì)算路由的步驟。通常,可預(yù)先為網(wǎng)絡(luò)拓?fù)渲械慕粨Q機(jī)對計(jì)算路由并且然后在適當(dāng)時(shí)選擇,或者路由可作為路由選擇過程的一部分被動態(tài)計(jì)算。此外,可整體計(jì)算用于給定的源交換機(jī)和給定的目的地交換機(jī)之間的路由,或者可在逐個(gè)跳躍的基礎(chǔ)上對于給定的路由上的連續(xù)交換機(jī)計(jì)算路由。在任何情況下,優(yōu)選實(shí)施例包括:通過為路由上的每個(gè)交換機(jī)確定用于下一跳躍的路由階段的方向和在該方向上的路由上的下一交換機(jī),而為數(shù)據(jù)分組計(jì)算路由。然后,對于路由上的每個(gè)交換機(jī),可依賴于所述方向確定用于下一跳躍的虛擬通道。
[0014]如果路由被預(yù)先計(jì)算,例如在網(wǎng)絡(luò)操作之前脫機(jī)計(jì)算,則體現(xiàn)本發(fā)明的路由方法可包括:使用預(yù)定路由數(shù)據(jù),為數(shù)據(jù)分組選擇路由,該預(yù)定路由數(shù)據(jù)指示網(wǎng)絡(luò)中的交換機(jī)對之間的預(yù)先計(jì)算的路由。這樣的路由數(shù)據(jù)可包括由交換機(jī)在網(wǎng)絡(luò)操作期間訪問的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)(例如路由表)。可替代的實(shí)施例包括在網(wǎng)絡(luò)的操作中為每個(gè)數(shù)據(jù)分組動態(tài)計(jì)算路由。通常,可單獨(dú)為每個(gè)分組或?yàn)閿?shù)據(jù)分組的組(例如給定消息中的所有分組)執(zhí)行這樣的動態(tài)路由計(jì)算。在下述優(yōu)選實(shí)施例中,通過在所述路徑中連續(xù)交換機(jī)處為每個(gè)數(shù)據(jù)分組在逐個(gè)跳躍的基礎(chǔ)上計(jì)算路由,來執(zhí)行動態(tài)路由計(jì)算。
[0015]發(fā)明的第二方面提供了一種包括程序代碼裝置的計(jì)算機(jī)程序,用于使得相似交換機(jī)胖樹網(wǎng)絡(luò)中的交換機(jī)的處理器和其他交換機(jī)共同執(zhí)行根據(jù)發(fā)明第一方面的方法。
[0016]可在操作中動態(tài)地執(zhí)行給定的路由上的分組傳送的虛擬通道分配,或者在每個(gè)交換機(jī)中在逐個(gè)跳躍的基礎(chǔ)上,或者在用于路由的源交換機(jī)處。然而,如果希望的話,例如在網(wǎng)絡(luò)的操作之前可通過網(wǎng)絡(luò)管理計(jì)算機(jī)預(yù)先執(zhí)行路由計(jì)算和給特定虛擬通道的路由分配。因此本發(fā)明的第三方面提供了一種計(jì)算機(jī)實(shí)現(xiàn)的方法,用于確定在胖樹網(wǎng)絡(luò)的交換機(jī)之間的數(shù)據(jù)分組的路由,該方法包括:
[0017]對于源交換機(jī)和目的地交換機(jī)對之間的路由,選擇具有三個(gè)或更少路由階段的相應(yīng)的路由,使得每個(gè)路由遵循源交換機(jī)和目的地交換機(jī)之間的跨過所述網(wǎng)絡(luò)的最短路徑;[0018]分配從源交換機(jī)到目的地交換機(jī)的每個(gè)路由給第一虛擬通道和第二虛擬通道中的一個(gè),除非該路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的一個(gè)轉(zhuǎn)彎;以及
[0019]如果路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的所述一個(gè)轉(zhuǎn)彎,則直到所述轉(zhuǎn)彎發(fā)生的交換機(jī)處將路由分配給第一虛擬通道,并從該交換機(jī)起將路由分配給第二虛擬通道。
[0020]這樣的方法可包括:提供由網(wǎng)絡(luò)中的交換機(jī)使用的路由數(shù)據(jù),路由數(shù)據(jù)指示所述路由中的每個(gè)和其虛擬通道分配,例如作為在網(wǎng)絡(luò)操作期間由交換機(jī)訪問的路由表。
[0021]發(fā)明的第四方面是程序代碼裝置,用于使計(jì)算機(jī)執(zhí)行根據(jù)發(fā)明第三方面的方法。將理解的是,術(shù)語“計(jì)算機(jī)”用于最一般的意義,并且包括具有用于執(zhí)行計(jì)算機(jī)程序的數(shù)據(jù)處理能力的任何裝置、部件或系統(tǒng)。此外,體現(xiàn)本發(fā)明的計(jì)算機(jī)程序可構(gòu)成獨(dú)立的程序或者可以是更大程序的元素,并可以被提供,例如實(shí)施在例如用于加載在計(jì)算機(jī)中的磁盤或電子傳輸?shù)挠?jì)算機(jī)可讀介質(zhì)中。計(jì)算機(jī)程序的程序代碼裝置可包括一組指令的以任何語言、代碼或符號的任何表達(dá)式,該組指令旨在直接或者在(a)到另一語言、代碼或符號的轉(zhuǎn)換以及(b)以不同材料形式的再現(xiàn)中的任一者或兩者之后使得計(jì)算機(jī)執(zhí)行考慮的方法。
[0022]發(fā)明的第五方面提供了一種胖樹網(wǎng)絡(luò),包括以胖樹拓?fù)溥B接的多個(gè)交換機(jī),交換機(jī)適合于實(shí)現(xiàn)根據(jù)發(fā)明第一方面的路由方法。本發(fā)明的再一方面提供了根據(jù)發(fā)明第五方面的胖樹網(wǎng)絡(luò)的交換機(jī)。
[0023]與傳統(tǒng)的胖樹網(wǎng)絡(luò)類似,體現(xiàn)本發(fā)明第五方面的胖樹網(wǎng)絡(luò)可能是間接網(wǎng)絡(luò)。在這種情況下,胖樹拓?fù)涞淖畹图壷械拿總€(gè)交換機(jī)可連接到至少一個(gè)末端節(jié)點(diǎn)。然后由路由方法使能的完全連接可針對任何所需的交換機(jī)間通信,例如用于網(wǎng)絡(luò)管理功能而被利用。然而,交換機(jī)到交換機(jī)路由技術(shù)使能胖樹拓?fù)涞某R?guī)使用的擴(kuò)展。特別地,體現(xiàn)本發(fā)明第五方面的胖樹網(wǎng)絡(luò)可能是直接網(wǎng)絡(luò)。在這樣的直接胖樹網(wǎng)絡(luò)中,胖樹拓?fù)涞亩鄠€(gè)級中的每個(gè)交換機(jī)都可以連接到至少一個(gè)末端節(jié)點(diǎn)。因此,網(wǎng)絡(luò)中的每個(gè)交換機(jī)可連接到一個(gè)或多個(gè)末端節(jié)點(diǎn)。
[0024]通常,在此參考發(fā)明的一個(gè)方面的實(shí)施例描述特征,可在發(fā)明的另一個(gè)方面的實(shí)施例中適當(dāng)?shù)靥峁┫鄳?yīng)的特征。
【專利附圖】
【附圖說明】
[0025]通過示例的方式,現(xiàn)在將參考附圖描述發(fā)明的優(yōu)選實(shí)施例,其中:
[0026]圖1顯示示例性的胖樹網(wǎng)絡(luò)拓?fù)洌?br>
[0027]圖2是用于體現(xiàn)本發(fā)明的路由方法中的交換機(jī)的示意圖;
[0028]圖3示出體現(xiàn)本發(fā)明的胖樹網(wǎng)絡(luò)中的交換機(jī)指定;
[0029]圖4指示由實(shí)現(xiàn)體現(xiàn)本發(fā)明的路由方法的交換機(jī)所執(zhí)行的步驟;
[0030]圖5至圖10示出用圖4的方法獲得的路由階段的不同組合的示例性路由;
[0031]圖11示出體現(xiàn)本發(fā)明的直接胖樹網(wǎng)絡(luò)的示例;以及
[0032]圖12顯示體現(xiàn)本發(fā)明的混合的直接/間接網(wǎng)絡(luò)的示例。
【具體實(shí)施方式】
[0033]圖2是網(wǎng)絡(luò)交換機(jī)I的簡化示意圖,網(wǎng)絡(luò)交換機(jī)I用于在胖樹網(wǎng)絡(luò)中實(shí)現(xiàn)體現(xiàn)本發(fā)明的路由方法。在此示例中,交換機(jī)I具有四個(gè)端口,用于以類似于圖1中的二進(jìn)制胖樹拓?fù)涞倪B接。兩個(gè)面向上的端口被標(biāo)記為Ul和u2,而兩個(gè)面向下的端口被標(biāo)記為dl和d2。交換機(jī)包括通常的網(wǎng)絡(luò)接口電路(I/F)2,用于經(jīng)由連接到端口的網(wǎng)絡(luò)鏈接發(fā)送和接收數(shù)據(jù)分組。交換機(jī)構(gòu)造3包括通常的緩沖器和連接,經(jīng)由該緩沖器和連接,接收的分組在輸入端口和相應(yīng)輸出端口之間穿過交換機(jī),用于其跨網(wǎng)絡(luò)的路由。此過程由交換機(jī)控制器4控制。交換機(jī)構(gòu)造3支持用于在網(wǎng)絡(luò)中傳輸數(shù)據(jù)分組的兩個(gè)虛擬通道,被指定為VCO和VC1。因此,通過緩沖器等的邏輯分區(qū),在交換機(jī)控制器4以通常的方式的控制下,交換機(jī)的物理資源被分區(qū)以提供相同的底層硬件上的兩個(gè)邏輯通道??刂破?通??刂平粨Q機(jī)I的操作,并包括用于執(zhí)行以下詳述的路由功能的路由單元5。通常可在硬件或軟件或它們的組合中實(shí)現(xiàn)路由單元5。因此,在一些實(shí)施例中,路由單元可由處理器實(shí)現(xiàn)(其通常包括一個(gè)或多個(gè)構(gòu)成的處理器),該處理器由軟件配置以執(zhí)行所述功能,從此處的描述,合適軟件對本領(lǐng)域技術(shù)人員來說顯而易見。在將要描述的特定實(shí)施例中,由交換機(jī)I在逐個(gè)跳躍的基礎(chǔ)上動態(tài)執(zhí)行路由計(jì)算,路由單元5優(yōu)選地在硬連線邏輯上實(shí)現(xiàn)以實(shí)現(xiàn)操作速度。再次,適當(dāng)?shù)膶?shí)現(xiàn)方式對于本領(lǐng)域技術(shù)人員將易于顯而易見。
[0034]圖3顯示體現(xiàn)本發(fā)明的網(wǎng)絡(luò)的第一個(gè)例子。該網(wǎng)絡(luò)10由以間接的二元4樹拓?fù)溥B接的多個(gè)類似的交換機(jī)I構(gòu)造而成。因此,網(wǎng)絡(luò)10具有n=4級的交換機(jī),其中,數(shù)基k=2,從而形成了在末端節(jié)點(diǎn)11之間的互連網(wǎng)絡(luò),末端節(jié)點(diǎn)11連接到交換機(jī)層次的最低級(級I)中的葉交換機(jī)。交換機(jī)I適于實(shí)施下文詳述的路由方法,借此可在網(wǎng)絡(luò)中的任何交換機(jī)對之間路由數(shù)據(jù)分組。因此,可為末端節(jié)點(diǎn)11之間的節(jié)點(diǎn)到節(jié)點(diǎn)通信、還為任何兩個(gè)交換機(jī)I之間的交換機(jī)間通信這兩者執(zhí)行路由。為其執(zhí)行路由的數(shù)據(jù)分組因此可包含任何類型的數(shù)據(jù),無論源自末端節(jié)點(diǎn)的數(shù)據(jù)(例如用戶數(shù)據(jù))和/或源自交換機(jī)的數(shù)據(jù)(例如控制/管理數(shù)據(jù))。將要描述的路由方法在本實(shí)施例中是基于數(shù)字的,其中,網(wǎng)絡(luò)中的每個(gè)交換機(jī)I由其級和指示交換機(jī)在該級中的位置的(η-l)位的k進(jìn)制的指定所確定。在圖3的示例中,其中n=4且k=2,每個(gè)交換機(jī)在其級內(nèi)由該圖中指示的3位二進(jìn)制指定確定。連接到每個(gè)葉交換機(jī)的兩個(gè)末端節(jié)點(diǎn)可由所示的4位確定,該4位是葉交換機(jī)的3位指定和一個(gè)附加位。
[0035]為了在網(wǎng)絡(luò)10中的源交換機(jī)和目的地交換機(jī)的任何給定對之間路由數(shù)據(jù)分組,每個(gè)交換機(jī)I的路由單元5實(shí)現(xiàn)下文詳述的路由算法,由此在逐個(gè)跳躍的基礎(chǔ)上動態(tài)地計(jì)算路由并將其分配給虛擬通道VC0、VC1。因此,在本實(shí)施例中,經(jīng)由從源交換機(jī)到目的地交換機(jī)的路由上的連續(xù)交換機(jī)的集體操作來選擇路由并將其分配給虛擬通道。由每個(gè)交換機(jī)I實(shí)現(xiàn)的路由過程的主要步驟在圖4的流程圖中指示。當(dāng)數(shù)據(jù)分組將被路由到特定的目的地交換機(jī)時(shí),該過程在步驟20處開始。這個(gè)分組可能已從路由上之前的交換機(jī)被發(fā)送到當(dāng)前交換機(jī),或者在作為源交換機(jī)的當(dāng)前交換機(jī)處本地產(chǎn)生。在步驟21中,路由單元5首先為路由上的下一個(gè)跳躍確定路由階段的適當(dāng)方向(即向上或向下)。接著,在步驟22中,路由單元在所選方向上選擇特定的父交換機(jī)或子交換機(jī)作為路由上的下一個(gè)交換機(jī)。如以下所示,以這樣的方式執(zhí)行步驟21和22,所述方式使得所選路由將始終遵循整個(gè)網(wǎng)絡(luò)拓?fù)渲械脑唇粨Q機(jī)和目的地交換機(jī)之間的最短路徑(交換機(jī)間跳躍數(shù)的最小可能數(shù)量)。在步驟23中,路由單元5然后確定將用于下一跳躍的虛擬通道。虛擬通道的分配在這里依賴于所選的路由方向,并根據(jù)以下說明的原理而被執(zhí)行,以便避免網(wǎng)絡(luò)操作期間的死鎖。在步驟24中,經(jīng)由適當(dāng)?shù)亩丝趯⒎纸M傳送到分配的虛擬通道上的下一個(gè)交換機(jī),該過程完成。[0036]下面更詳細(xì)地闡述圖4過程的各個(gè)步驟。首先考慮步驟21中的路由方向的確定,以這樣的方式執(zhí)行該步驟,該方式使得路由可以有三個(gè)或更少的路由階段的任何組合。因此,所有的路由具有下列階段組合中的一個(gè):向上、向下、向上-向下、向下-向上、向上-向下-向下、向下-向上-向下。執(zhí)行步驟21時(shí),對于每個(gè)路由,路由單元確保使用合適的階段組合,使得路由可遵循跨整個(gè)網(wǎng)絡(luò)的最短路徑。
[0037]圖4中的步驟22選擇所需方向上特定的最短路徑路由。具體地,網(wǎng)絡(luò)的拓?fù)涫沁@樣的,對于許多對源交換機(jī)和目的地交換機(jī)來說,存在不止一個(gè)的最短路徑路由。在這種情況下,可以采用可以是靜態(tài)或動態(tài)的各種各樣的路徑選擇策略來選擇特定的最短路徑。這樣的策略在本領(lǐng)域是眾所周知的,這里不作討論。足以說,由胖樹拓?fù)渌峁┑穆窂蕉鄻有钥筛鶕?jù)期望在給定情況下利用。
[0038]圖4的步驟23確保在網(wǎng)絡(luò)10的操作中無死鎖路由。通過改變包括預(yù)定的一個(gè)轉(zhuǎn)彎類型的路由上的虛擬通道來避免死鎖。在本實(shí)施例中,這是向下到向上轉(zhuǎn)彎。具體地,如果為數(shù)據(jù)分組選擇的路由包括向下到向上轉(zhuǎn)彎,則從源交換機(jī)直到向下-向下轉(zhuǎn)彎發(fā)生的交換機(jī)(“轉(zhuǎn)彎交換機(jī)”)處在第一虛擬通道(在這里是VC0)上發(fā)送所述包。然后從轉(zhuǎn)彎交換機(jī)到目的地交換機(jī)在第二虛擬通道(在這里是VCl)上發(fā)送所述分組。不包括向下到向上轉(zhuǎn)彎的路由對于從源到目的地的整個(gè)路由可使用任一個(gè)虛擬通道。在本實(shí)施例中,該路由使用通道VC0,據(jù)此所有路由至少在最初遵循VC0,其中,包含向下/向上轉(zhuǎn)彎的路由在轉(zhuǎn)彎交換機(jī)處改變到VC1。通過避免通道依賴圖中的循環(huán)依賴,用于將路由分配給虛擬通道的這種策略保證無死鎖操作。
[0039]用于在路由單元5中實(shí)現(xiàn)以執(zhí)行上述步驟的示例性路由算法由下面給出的偽代碼定義。在這段代碼中:
[0040]L(S)指示交換機(jī)s的級,I≤L(S)≤n ;
[0041]每個(gè)交換機(jī)由(η-l)位數(shù)字確定,該數(shù)字從I編號到η-1,數(shù)字I (最右邊)是最低有效,而數(shù)字η_1 (最左邊)是最聞有效;
[0042]Di (S)指示交換機(jī)s的第i個(gè)數(shù)字,I ( Di (s) <k,I≤i≤n-1
[0043]c表示當(dāng)前交換機(jī)位置;
[0044]d表示目的地交換機(jī)位置;
[0045]MSD (c, d) =C和d之間最聞有效的不同數(shù)字;以及
[0046]LSD (c, d) =C和d之間最低有效的不同數(shù)字
[0047]步驟21:確定路由方向
[0048]
【權(quán)利要求】
1.一種在胖樹網(wǎng)絡(luò)中的源交換機(jī)與目的地交換機(jī)之間路由數(shù)據(jù)分組的方法,所述方法包括: 為每個(gè)分組選擇具有三個(gè)或更少的路由階段的路由,使得所述路由遵循所述源交換機(jī)和目的地交換機(jī)之間的跨過所述網(wǎng)絡(luò)的最短路徑; 經(jīng)過所述路由,從所述源交換機(jī)到目的地交換機(jī)在第一虛擬通道和第二虛擬通道中的一個(gè)上傳送所述數(shù)據(jù)分組,除非所述路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的一個(gè)轉(zhuǎn)彎;以及 如果所述路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的所述一個(gè)轉(zhuǎn)彎,則經(jīng)由所述路由,直到所述轉(zhuǎn)彎發(fā)生的交換機(jī)處在所述第一虛擬通道上傳送所述數(shù)據(jù)分組,并且從該交換機(jī)起在所述第二虛擬通道上傳送所述數(shù)據(jù)分組。
2.如權(quán)利要求1所述的方法,其中所述預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的所述一個(gè)轉(zhuǎn)彎是向下到向上轉(zhuǎn)彎。
3.如權(quán)利要求1或2所述的方法,包括:如果所述路由不包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的所述一個(gè)轉(zhuǎn)彎,則在所述第一虛擬通道上傳送所述數(shù)據(jù)分組。
4.如前述任一權(quán)利要求所述的方法,包括為所述數(shù)據(jù)分組計(jì)算路由。
5.如權(quán)利要求4所述的方法,包括:通過為所述路由上的每個(gè)交換機(jī)確定用于下一跳躍的路由階段的方向和在該方向上的所述路由上的下一交換機(jī),為所述數(shù)據(jù)分組計(jì)算路由。
6.如權(quán)利要求5所述的方法,包括:依賴于所述方向,為所述路由上的每個(gè)交換機(jī)確定下一跳躍的虛擬通道。`
7.如前述任一權(quán)利要求所述的方法,包括:使用預(yù)定路由數(shù)據(jù),為所述數(shù)據(jù)分組選擇路由,所述預(yù)定路由數(shù)據(jù)指示所述網(wǎng)絡(luò)中的交換機(jī)對之間的預(yù)先計(jì)算的路由。
8.如權(quán)利要求4至6中任一項(xiàng)所述的方法,包括在所述網(wǎng)絡(luò)的操作中為每個(gè)數(shù)據(jù)分組動態(tài)計(jì)算路由。
9.如權(quán)利要求8所述的方法,包括:在所述路徑中的連續(xù)交換機(jī)處為每個(gè)數(shù)據(jù)分組逐個(gè)跳躍地計(jì)算路由。
10.一種用于在胖樹網(wǎng)絡(luò)中的源交換機(jī)與目的地交換機(jī)之間路由數(shù)據(jù)分組的裝置,所述裝置包括適于執(zhí)行如權(quán)利要求1-9中任一項(xiàng)所述的方法的模塊。
11.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,用于確定在胖樹網(wǎng)絡(luò)中的源交換機(jī)與目的地交換機(jī)之間的數(shù)據(jù)分組的路由,所述方法包括: 對于所述源交換機(jī)和目的地交換機(jī)對之間的路由,選擇具有三個(gè)或更少路由階段的相應(yīng)的路由,使得每個(gè)路由遵循所述源交換機(jī)和所述目的地交換機(jī)之間的跨過所述網(wǎng)絡(luò)的最短路徑; 分配從所述源交換機(jī)到所述目的地交換機(jī)的每個(gè)路由給第一虛擬通道和第二虛擬通道中的一個(gè),除非該路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的一個(gè)轉(zhuǎn)彎;以及 如果路由包括預(yù)定的、向下到向上轉(zhuǎn)彎和向上到向下轉(zhuǎn)彎中的所述一個(gè)轉(zhuǎn)彎,則直到所述轉(zhuǎn)彎發(fā)生的交換機(jī)處將所述路由分配給所述第一虛擬通道,并且從該交換機(jī)起將所述路由分配給所述第二虛擬通道。
12.如權(quán)利要求11所述的方法,包括:提供由所述網(wǎng)絡(luò)中的交換機(jī)使用的路由數(shù)據(jù),所述路由數(shù)據(jù)指示所述的路由中的每個(gè)路由及其虛擬通道分配。
13.一種用于確定胖樹網(wǎng)絡(luò)中的交換機(jī)之間的數(shù)據(jù)分組的路由的裝置,所述裝置包括適于執(zhí)行如權(quán)利要求11或12所述的方法的模塊。
14.一種胖樹網(wǎng)絡(luò),包括以胖樹拓?fù)溥B接的多個(gè)交換機(jī),所述交換機(jī)適于實(shí)現(xiàn)如權(quán)利要求I至9中任一項(xiàng)所述的路由方法。
15.如權(quán)利要求14所述的間接胖樹網(wǎng)絡(luò),其中所述胖樹拓?fù)涞淖畹图壷械拿總€(gè)交換機(jī)連接到至少一個(gè)末端節(jié)點(diǎn)。
16.如權(quán)利要求14所述的直接胖樹網(wǎng)絡(luò),其中所述胖樹拓?fù)涞亩鄠€(gè)級中的交換機(jī)每個(gè)都連接到至少一個(gè)末端節(jié)點(diǎn)。
17.如權(quán)利要求16所述的直接胖樹網(wǎng)絡(luò),其中所述網(wǎng)絡(luò)中的每個(gè)交換機(jī)都連接到至少一個(gè)末端節(jié)點(diǎn)。
18.一種網(wǎng)絡(luò),包括如權(quán)利要求16或17所述的至少一個(gè)直接胖樹網(wǎng)絡(luò)和至少一個(gè)互連網(wǎng)絡(luò)。
19.一種基本上如前所述的胖樹網(wǎng)絡(luò)。
20.一種如權(quán)利要求 14或19所述的胖樹網(wǎng)絡(luò)的交換機(jī)。
【文檔編號】H04L12/703GK103873367SQ201310627428
【公開日】2014年6月18日 申請日期:2013年11月29日 優(yōu)先權(quán)日:2012年12月14日
【發(fā)明者】C·J·明肯伯格, G·羅德里格赫雷拉, M·格撒特 申請人:國際商業(yè)機(jī)器公司