專(zhuān)利名稱(chēng):無(wú)死鎖自適應(yīng)路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高性能服務(wù)器技術(shù)領(lǐng)域,特別涉及一種無(wú)死鎖自適應(yīng)路由方法。
背景技術(shù):
高端容錯(cuò)計(jì)算機(jī)在銀行業(yè),遠(yuǎn)程通訊管理,電子化政務(wù)以及很多其它關(guān)鍵任務(wù)的處理中得到了廣泛的應(yīng)用。高端容錯(cuò)計(jì)算機(jī),通常也可以稱(chēng)為服務(wù)器,通常具有強(qiáng)大的信息處理能力以及大規(guī)模服務(wù)器系統(tǒng)中的高可靠性。這種計(jì)算機(jī)一般含有8 64個(gè)處理器,能夠運(yùn)行大規(guī)模的計(jì)算任務(wù)同時(shí)具有高達(dá)99.999%的可靠性。高速信息處理能力以及高可靠性是容錯(cuò)計(jì)算機(jī)的兩個(gè)最重要的特性。容錯(cuò)是指在部件失效的情況下網(wǎng)絡(luò)運(yùn)作的能力。然而容錯(cuò)實(shí)現(xiàn)技術(shù)往往是巨大的性能降低為代價(jià)的。故障的存在使得已有的無(wú)死鎖和無(wú)活鎖路由解決方法變的無(wú)效。近期,設(shè)計(jì)出了一種新型的容錯(cuò)計(jì)算機(jī)結(jié)構(gòu),此系統(tǒng)結(jié)構(gòu)含有32個(gè)計(jì)算節(jié)點(diǎn),其中每一個(gè)計(jì)算節(jié)點(diǎn)都能提供足夠強(qiáng)大的計(jì)算能力。此系統(tǒng)可以劃分為兩個(gè)子網(wǎng)絡(luò),其中每一子網(wǎng)絡(luò)中均含有十六個(gè)計(jì)算節(jié)點(diǎn)。且每個(gè)子網(wǎng)絡(luò)中含有8個(gè)彼此連接的交換器,每一個(gè)交換器連接兩個(gè)計(jì)算節(jié)點(diǎn)。每個(gè)交換器連接到另一子網(wǎng)絡(luò)中的一臺(tái)交換器。每一個(gè)交換器的度均為10,其連接了兩個(gè)本地計(jì)算節(jié)點(diǎn)以及八個(gè)相鄰的交換器?,F(xiàn)代的路由器是非常健壯的,在運(yùn)行中不會(huì)經(jīng)常出現(xiàn)失效。但是在某些環(huán)境下,必須對(duì)失效要有所預(yù)料以及定位,無(wú)論部件失效的概率多么小(例如:國(guó)防軍工應(yīng)用系統(tǒng),太空運(yùn)載系統(tǒng)等等)。這些工作環(huán)境采用部件失效率,故障修復(fù)能力以及系統(tǒng)平滑降級(jí)使用能力來(lái)表征,這就帶動(dòng)了用于直接網(wǎng)絡(luò)容錯(cuò)路由算法的發(fā)展。路由算法決定了報(bào)文包經(jīng)由數(shù)據(jù)源節(jié)點(diǎn)向目的節(jié)點(diǎn)傳輸?shù)倪^(guò)程中所占用的通道序列。路由策略對(duì)直連網(wǎng)絡(luò)的效率具有非常重要的影響。對(duì)于高端的容錯(cuò)計(jì)算機(jī)關(guān)鍵系統(tǒng)來(lái)說(shuō),容錯(cuò)路由的算法對(duì)于系統(tǒng)的表現(xiàn)有著更加重要的作用。由于給定的容錯(cuò)計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)是全新的,它不同于以往的任何網(wǎng)絡(luò)結(jié)構(gòu),并沒(méi)有相應(yīng)的路由算法。因此,該網(wǎng)絡(luò)需要一種高效的無(wú)死鎖路由策略。特別是由于此網(wǎng)絡(luò)針對(duì)的是關(guān)鍵任務(wù)的運(yùn)作,因此為其提供一種無(wú)死鎖高效的容錯(cuò)自適應(yīng)路由策略就顯得極為重要。
發(fā)明內(nèi)容
(一 )要解決的技術(shù)問(wèn)題本發(fā)明要解決的技術(shù)問(wèn)題是:對(duì)于上述的新型容錯(cuò)計(jì)算機(jī)網(wǎng)絡(luò),在不使用虛擬通道的情況下如何實(shí)現(xiàn)無(wú)死鎖的自適應(yīng)路由策略。( 二 )技術(shù)方案為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種無(wú)死鎖自適應(yīng)路由方法,根據(jù)數(shù)據(jù)源節(jié)點(diǎn)與目的節(jié)點(diǎn)的邏輯連接關(guān)系,按照負(fù)向選擇策略選擇所述源節(jié)點(diǎn)到目的節(jié)點(diǎn)的通路,所述邏輯連接關(guān)系定義如下:
對(duì)容錯(cuò)網(wǎng)絡(luò)的第一個(gè)子網(wǎng)絡(luò)中的N個(gè)交換器按O N-1編號(hào),第二個(gè)子網(wǎng)絡(luò)中N個(gè)交換器按N 2N-1編號(hào),若位于不同網(wǎng)絡(luò)的兩個(gè)交換器的節(jié)點(diǎn)編號(hào)對(duì)N取模的值相同,則位于不同網(wǎng)絡(luò)的這兩個(gè)交換器之間存在一條鏈路;所述負(fù)向選擇策略定義如下:當(dāng)前節(jié)點(diǎn)的編號(hào)大于下一節(jié)點(diǎn)編號(hào),那么則這條通路定義為負(fù)跨度;反之則為正跨度,若報(bào)文沿負(fù)跨度傳輸后,允許其向負(fù)跨度以及正跨度傳輸;若報(bào)文沿正跨度傳輸后,則僅允許報(bào)文沿正跨度傳輸。其中,按照負(fù)向選擇策略選擇所述源節(jié)點(diǎn)到目的節(jié)點(diǎn)的通路的方式為:若有兩條最短路徑,且路徑都可用,則隨機(jī)選擇一條輸出;若有兩條最短路徑,有一條的路徑可用,則選擇該條路徑輸出;若無(wú)可用最短路徑,則繞道路由。其中,所述繞道路由的方式具體為:根據(jù)數(shù)據(jù)源節(jié)點(diǎn)與目的節(jié)點(diǎn)所在網(wǎng)絡(luò)的位置關(guān)系,選擇符合傳輸原則的中繼節(jié)點(diǎn),所述中繼節(jié)點(diǎn)符合以下情況:若數(shù)據(jù)源節(jié)點(diǎn)標(biāo)號(hào)比目的節(jié)點(diǎn)標(biāo)號(hào)大,中繼節(jié)點(diǎn)需滿(mǎn)足節(jié)點(diǎn)標(biāo)號(hào)小于數(shù)據(jù)源節(jié)點(diǎn)。若數(shù)據(jù)源節(jié)點(diǎn)標(biāo)號(hào)比目的節(jié)點(diǎn)標(biāo)號(hào)小,中繼節(jié)點(diǎn)需滿(mǎn)足節(jié)點(diǎn)標(biāo)號(hào)小于目的節(jié)點(diǎn)標(biāo)號(hào)。(三)有益效果本發(fā)明的方法中通過(guò)負(fù)向優(yōu)先選擇策略,在不使用虛擬通道的情況下實(shí)現(xiàn)了在結(jié)構(gòu)無(wú)故障網(wǎng)絡(luò)中無(wú)死鎖的適應(yīng)性路由。
圖1是本發(fā)明的無(wú)死鎖自適應(yīng)路由方法基于的容錯(cuò)網(wǎng)絡(luò)結(jié)構(gòu);圖2是圖1的容錯(cuò)網(wǎng)絡(luò)中可能構(gòu)成的死鎖結(jié)構(gòu);圖3是采用本路由策略后對(duì)死鎖的消除后的示意圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。對(duì)容錯(cuò)網(wǎng)絡(luò)的第一個(gè)子網(wǎng)絡(luò)中的N個(gè)交換器按O N-1編號(hào),第二個(gè)子網(wǎng)絡(luò)中N個(gè)交換器按N 2N-1編號(hào),若位于不同網(wǎng)絡(luò)的兩個(gè)交換器的節(jié)點(diǎn)編號(hào)對(duì)N取模的值相同,則位于不同網(wǎng)絡(luò)的這兩個(gè)交換器之間存在一條鏈路。以每個(gè)子網(wǎng)絡(luò)8個(gè)交換器為例,對(duì)容錯(cuò)網(wǎng)絡(luò)中的兩個(gè)子網(wǎng)絡(luò)的所有的交換器都是用一個(gè)二進(jìn)制數(shù)表示(也可以用其他進(jìn)制數(shù)表示),第一個(gè)子網(wǎng)絡(luò)結(jié)構(gòu)由下列8個(gè)交換器構(gòu)成:0000、0001、0010、0011、0100、0101、0110、0111 ;第二個(gè)子網(wǎng)絡(luò)中交換器序號(hào)為:1000,1001、1010、1011、1100、1101、1110、1111。兩個(gè)子網(wǎng)絡(luò)之間,若位于不同網(wǎng)絡(luò)的兩個(gè)交換器的節(jié)點(diǎn)編號(hào)對(duì)N取模的值相同,則兩個(gè)交換器之間存在一條鏈路,對(duì)于8個(gè)交換器的情況,表現(xiàn)為兩個(gè)交換器編號(hào)僅首位不同。首先,系統(tǒng)中每個(gè)節(jié)點(diǎn)的方向由下述方式定義。令(V1, V2)是兩個(gè)節(jié)點(diǎn)間的鏈路。當(dāng)V1比V2標(biāo)號(hào)大時(shí),則認(rèn)為鏈路(Vl,V2)是負(fù)向的;反之,則認(rèn)為這條鏈路是正向的。若報(bào)文包沿負(fù)向鏈路傳輸,則稱(chēng)報(bào)文傳輸了一個(gè)負(fù)跨度;同理,當(dāng)報(bào)文傳輸了正向鏈路之后就稱(chēng)其傳輸了一個(gè)正跨度。其次,系統(tǒng)中的任意一個(gè)環(huán)路一定是由如下兩種模式構(gòu)成的(I) 一次或是兩次正跨度+ —次或是兩次的負(fù)跨度+—次或是兩次的正跨度,(2) 一次或是兩次負(fù)跨度+ —次或兩次正跨度+ —次或兩次負(fù)跨度。最后,死鎖的產(chǎn)生有四個(gè)必要條件:互斥,請(qǐng)求與保持,非搶占式以及循環(huán)等待,破壞其中的任何一項(xiàng)都能有效的避免死鎖。基于該容錯(cuò)計(jì)算機(jī)網(wǎng)絡(luò)的無(wú)死鎖路由策略在無(wú)故障的狀態(tài)下,不使用任何虛擬通道加以實(shí)現(xiàn)??紤]死鎖產(chǎn)生的四個(gè)必要條件:資源互斥,請(qǐng)求與保持,非搶占式以及循環(huán)等待。因此,采用消除循環(huán)等待的方式進(jìn)行死鎖的避免。使報(bào)文傳輸時(shí)滿(mǎn)足下列規(guī)則:若報(bào)文沿負(fù)跨度傳輸,允許其向負(fù)跨度以及正跨度傳輸;若報(bào)文沿正跨度傳輸后,則允許報(bào)文沿正跨度傳輸??紤]從1100向0011傳輸?shù)膱?bào)文。那么從1100向0011傳輸有兩條最短路徑:(1) 1100-0100-0011以及(2) 1100-1011-0011。這兩個(gè)通道序列都是由兩個(gè)負(fù)跨度組成,則
這兩條通路都能夠用來(lái)傳輸報(bào)文??紤]從1011向0100傳輸?shù)膱?bào)文。同樣的,存在兩條最短路徑:
(1)1011-0011-0100, (2) 1011-1100-0100。第一條路徑中,報(bào)文首先沿負(fù)跨度傳輸,接著沿正跨度傳輸,能夠用來(lái)傳輸報(bào)文;第二條路徑中,報(bào)文首先沿正跨度傳輸,接著沿負(fù)跨度傳輸,這是一條違反傳輸規(guī)則的路徑,報(bào)文不能選擇這條路徑進(jìn)行傳輸??紤]從0011向1100傳輸?shù)膱?bào)文,存在兩條最短路徑:(I) 0011-0100-1100、
(2)0011-1011-1100。兩條通路都是兩個(gè)正跨度,都能夠用來(lái)作為報(bào)文的傳輸選擇。考慮從0100向1011傳輸?shù)膱?bào)文,存在兩條最短路徑:(I) 0100-1100-1011、
(2)0100-0011-1011。第一條通路先沿正跨度傳輸,再沿負(fù)跨度傳輸,違反了傳輸規(guī)則,因此報(bào)文不能選擇這條路徑進(jìn)行傳輸;第二條通路先沿負(fù)跨度進(jìn)行傳輸,再沿正跨度傳輸,可以米用。當(dāng)最小可選路徑被占用時(shí),特別是當(dāng)報(bào)文只有一條可選路徑的情況下,采用繞道路由的方式。繞道路由將會(huì)使報(bào)文包傳輸時(shí)增加一到多次跨度。在本發(fā)明中,當(dāng)報(bào)文繞道路由時(shí)只增加一個(gè)跨度??紤]由0100向1001傳輸?shù)膱?bào)文包,當(dāng)可選通路被阻塞了之后,報(bào)文可以首先路由至Ij 0010,0000或者0011,這樣隨后就會(huì)分別傳輸?shù)?010、1000以及1011之中。對(duì)于這三種不同的傳輸方式來(lái)說(shuō),當(dāng)報(bào)文首先傳輸?shù)?000時(shí),報(bào)文傳輸了一個(gè)負(fù)跨度,之后再經(jīng)由兩次正跨度傳輸?shù)侥康墓?jié)點(diǎn)1001;對(duì)報(bào)文包經(jīng)由0010,0011繞道的情況下,報(bào)文傳輸將經(jīng)過(guò)一次負(fù)跨度,一次正跨度后再經(jīng)過(guò)一次負(fù)跨度,顯然是違背了傳輸?shù)脑瓌t,不允許進(jìn)行這樣的路由選擇。那么,給出的容錯(cuò)計(jì)算機(jī)網(wǎng)絡(luò)中,無(wú)故障無(wú)死鎖自適應(yīng)路由策略可以用如下幾條規(guī)則描述:規(guī)則1:報(bào)文包進(jìn)行路由的通道序列必須首先沿負(fù)跨度傳輸,如果沿正跨度傳輸之后,報(bào)文包不允許再沿負(fù)跨度傳輸。規(guī)則2:報(bào)文包在進(jìn)行通道選擇時(shí),根據(jù)規(guī)則I對(duì)備選的通路進(jìn)行選擇。規(guī)則3:若產(chǎn)生的兩個(gè)備選通道都可使用時(shí),任選一條。若僅有一條通道可用,選擇本通道。若可選通道均阻塞,根據(jù)規(guī)則4與規(guī)則5進(jìn)行繞道路由。規(guī)則4:當(dāng)源節(jié)點(diǎn)在第二個(gè)子網(wǎng)絡(luò)中時(shí),報(bào)文繞道路由時(shí)選取的繞道節(jié)點(diǎn)滿(mǎn)足節(jié)點(diǎn)的編碼號(hào)小于源節(jié)點(diǎn)編號(hào)。規(guī)則5:當(dāng)源節(jié)點(diǎn)在第一個(gè)子網(wǎng)絡(luò)中時(shí),報(bào)文繞道路由時(shí)選取繞道節(jié)點(diǎn)滿(mǎn)足節(jié)點(diǎn)編碼小于目的節(jié)點(diǎn)編碼。下面結(jié)合
本發(fā)明的方法如何通過(guò)消除循環(huán)等待以消除死鎖的原理。圖1中展示了本發(fā)明所適用的容錯(cuò)計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)。系統(tǒng)結(jié)構(gòu)含有32個(gè)計(jì)算節(jié)點(diǎn),其中每一個(gè)計(jì)算節(jié)點(diǎn)都能提供足夠強(qiáng)大的計(jì)算能力。此系統(tǒng)可以劃分為兩個(gè)子網(wǎng)絡(luò),其中每一子網(wǎng)絡(luò)中均含有十六個(gè)計(jì)算節(jié)點(diǎn)。且每個(gè)子網(wǎng)絡(luò)中含有8個(gè)彼此連接的交換器,每一個(gè)交換器連接兩個(gè)計(jì)算節(jié)點(diǎn)。每個(gè)交換器連接到另一子網(wǎng)絡(luò)中的一臺(tái)交換器。每一個(gè)交換器的度均為10,其連接了兩個(gè)本地計(jì)算節(jié)點(diǎn)以及八個(gè)相鄰的交換器。圖2展示了本網(wǎng)絡(luò)中可能出現(xiàn)的死鎖情況以及此時(shí)的通道依賴(lài)圖。如圖2中
(a)所示,緩存 B1, B2, B3 以及 B4 分別表示通道 0100-0101,0101-1101,1100-1101 以及1100-0100。報(bào)文包P1占用緩存B1且申請(qǐng)緩存B4,報(bào)文P2占用B4申請(qǐng)緩存匕,報(bào)文p3占用B3申請(qǐng)緩存B2,報(bào)文p4占用緩存B2申請(qǐng)緩存I。此時(shí),很顯然的產(chǎn)生了通道依賴(lài)關(guān)系,也就是說(shuō)產(chǎn)生了死鎖,如圖2中(b)所示,即環(huán)0101-0100-1100-1101-0101中的四個(gè)報(bào)文可能產(chǎn)生死鎖配置。類(lèi)似的死鎖結(jié)構(gòu)很容易構(gòu)成,緩存B’ 1;B’ 2,B’ 3以及B’ 4分別表示通道0100-0011、0011-1011、1011-1100 以及 1100-0100。報(bào)文包 P’ !占用緩存 B’ !且申請(qǐng)緩存B’ 2,報(bào)文P’ 2占用B’ 2申請(qǐng)緩存B’ 3,報(bào)文P’ 3占用B’ 3申請(qǐng)緩存B’ 4,報(bào)文P’ 4占用緩存B’ 4申請(qǐng)緩存B’ 10此時(shí),很顯然的產(chǎn)生了通道依賴(lài)關(guān)系,也就是說(shuō)同樣產(chǎn)生了死鎖,即環(huán)0100-0011-1011-0100中的四個(gè)報(bào)文可能產(chǎn)生死鎖配置。表I中展示了無(wú)故障網(wǎng)絡(luò)中如何進(jìn)行無(wú)死鎖路由。首先根據(jù)當(dāng)前節(jié)點(diǎn)的狀態(tài)進(jìn)行判斷,如果當(dāng)前節(jié)點(diǎn)為源節(jié)點(diǎn)且與終點(diǎn)之間不直接相連,那么判斷最短路徑上的中繼節(jié)點(diǎn)是否可以作為報(bào)文傳輸?shù)南乱豢缍?。若兩條最小路徑上的中繼節(jié)點(diǎn)均可作為傳輸節(jié)點(diǎn),那么任選傳向任一中繼節(jié)點(diǎn)的通道作為輸出通道。若僅存在一條最小路徑上的中繼節(jié)點(diǎn)可以作為報(bào)文傳輸?shù)南乱唤Y(jié)點(diǎn),那么使用圖4中所示的繞道路由策略進(jìn)行傳輸。如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)d直接相連,那么就將報(bào)文傳輸給d 。若當(dāng)前節(jié)點(diǎn)為目的節(jié)點(diǎn),則將報(bào)文收起。表I無(wú)故障網(wǎng)絡(luò)中的無(wú)死鎖適應(yīng)性路由偽代碼
權(quán)利要求
1.一種無(wú)死鎖自適應(yīng)路由方法,其特征在于,根據(jù)數(shù)據(jù)源節(jié)點(diǎn)與目的節(jié)點(diǎn)的邏輯連接關(guān)系,按照負(fù)向選擇策略選擇所述源節(jié)點(diǎn)到目的節(jié)點(diǎn)的通路,所述邏輯連接關(guān)系定義如下: 對(duì)容錯(cuò)網(wǎng)絡(luò)的第一個(gè)子網(wǎng)絡(luò)中的N個(gè)交換器按O N-1編號(hào),第二個(gè)子網(wǎng)絡(luò)中N個(gè)交換器按N 2N-1編號(hào),若位于不同網(wǎng)絡(luò)的兩個(gè)交換器的節(jié)點(diǎn)編號(hào)對(duì)N取模的值相同,則位于不同網(wǎng)絡(luò)的這兩個(gè)交換器之間存在一條鏈路; 所述負(fù)向選擇策略定義如下: 當(dāng)前節(jié)點(diǎn)的編號(hào)大于下一節(jié)點(diǎn)編號(hào),那么則這條通路定義為負(fù)跨度;反之則為正跨度,若報(bào)文沿負(fù)跨度傳輸后,允許其向負(fù)跨度以及正跨度傳輸;若報(bào)文沿正跨度傳輸后,則僅允許報(bào)文沿正跨度傳輸。
2.如權(quán)利要求1所述的無(wú)死鎖自適應(yīng)路由方法,其特征在于,按照負(fù)向選擇策略選擇所述源節(jié)點(diǎn)到目的節(jié)點(diǎn)的通路的方式為: 若有兩條最短路徑,且路徑都可用,則隨機(jī)選擇一條輸出; 若有兩條最短路徑,有一條的路徑可用,則選擇該條路徑輸出; 若無(wú)可用最短路徑,則繞道路由。
3.如權(quán)利要求2所述的無(wú)死鎖自適應(yīng)路由方法,其特征在于,所述繞道路由的方式具體為:根據(jù)數(shù)據(jù)源節(jié)點(diǎn)與目的節(jié)點(diǎn)所在網(wǎng)絡(luò)的位置關(guān)系,選擇符合傳輸原則的中繼節(jié)點(diǎn),所述中繼節(jié)點(diǎn)符合以下情況: 若數(shù)據(jù)源節(jié)點(diǎn)標(biāo)號(hào)比目的節(jié)點(diǎn)標(biāo)號(hào)大,中繼節(jié)點(diǎn)需滿(mǎn)足節(jié)點(diǎn)標(biāo)號(hào)小于數(shù)據(jù)源節(jié)點(diǎn)。
若數(shù)據(jù)源節(jié)點(diǎn)標(biāo)號(hào)比目的節(jié)點(diǎn)標(biāo)號(hào)小,中繼節(jié)點(diǎn)需滿(mǎn)足節(jié)點(diǎn)標(biāo)號(hào)小于目的節(jié)點(diǎn)標(biāo)號(hào)。
全文摘要
本發(fā)明公開(kāi)了一種無(wú)死鎖自適應(yīng)路由方法,涉及高性能服務(wù)器技術(shù)領(lǐng)域,該方法根據(jù)數(shù)據(jù)源節(jié)點(diǎn)與目的節(jié)點(diǎn)的邏輯連接關(guān)系,按照負(fù)向選擇策略選擇所述源節(jié)點(diǎn)到目的節(jié)點(diǎn)的通路,對(duì)容錯(cuò)網(wǎng)絡(luò)的第一個(gè)子網(wǎng)絡(luò)中的N個(gè)交換器按0~N-1編號(hào),第二個(gè)子網(wǎng)絡(luò)中N個(gè)交換器按N~2N-1編號(hào),若位于不同網(wǎng)絡(luò)的兩個(gè)交換器的節(jié)點(diǎn)編號(hào)對(duì)N取模的值相同,則位于不同網(wǎng)絡(luò)的這兩個(gè)交換器之間存在一條鏈路。本發(fā)明在不使用虛擬通道的情況下實(shí)現(xiàn)了在結(jié)構(gòu)無(wú)故障網(wǎng)絡(luò)中無(wú)死鎖的適應(yīng)性路由。
文檔編號(hào)H04L12/721GK103179034SQ201110436008
公開(kāi)日2013年6月26日 申請(qǐng)日期2011年12月22日 優(yōu)先權(quán)日2011年12月22日
發(fā)明者向東, 張研 申請(qǐng)人:清華大學(xué)