專利名稱:光纖最短路由優(yōu)先協(xié)議的路由確定方法和裝置的制作方法
技術(shù)領域:
本發(fā)明涉及網(wǎng)絡通信技術(shù),特別涉及一種光纖最短路由優(yōu)先協(xié)議的路由確定方法和裝置。
背景技術(shù):
光纖最短3各徑優(yōu)先(FSPF, Fabric Shortest Path First)協(xié)議是光纖通道架構(gòu)所使用標準的動態(tài)路由發(fā)現(xiàn)協(xié)議。該協(xié)議將光纖通道架構(gòu)中的所有交換機連接起來,通過同步鏈路狀態(tài)數(shù)據(jù)庫(LSDB, Link-State DataBase)計算出 一 臺交換機到其它所有交換機的路由,從而實現(xiàn)相互訪問。
每一個運行FSPF的節(jié)點收集接口和鄰居信息并生成相應的鏈^各狀態(tài)記錄(LSR, LinkState Record)并在整個網(wǎng)絡中擴散,使得整個網(wǎng)絡中的每個節(jié)點都可以接收到網(wǎng)絡內(nèi)所有節(jié)點的LSR并及時更新和維護鏈路狀態(tài)數(shù)據(jù)庫(LSDB, Link State DataBase),也就是說,光纖通道架構(gòu)中的所有節(jié)點都維護相同的LSDB從而獲知整個網(wǎng)絡中的拓樸連接狀況。
但是現(xiàn)有技術(shù)中并沒有針對FSPF協(xié)議的任何路由確定方法,即使各節(jié)點獲知整個網(wǎng)絡中的拓樸連接狀況也無法實現(xiàn)光纖通道架構(gòu)中節(jié)點之間的報文通信。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種FSPF協(xié)議的路由確定方法和裝置,以便于實現(xiàn)光纖通道架構(gòu)中節(jié)點之間的報文通信。 -一種光纖最短路由FSPF協(xié)議的路由確定方法,該方法包括節(jié)點a根據(jù)自身維護的鏈路狀態(tài)數(shù)據(jù)庫LSDB以及與節(jié)點a存在鏈路連接的各節(jié)點之間的鏈路開銷,以到節(jié)點a的鏈路開銷最小為原則將與所述LSDB中的各節(jié)點逐一加入以節(jié)點a為根節(jié)點的最短路徑樹;并且在將每一個節(jié)點加入所述最短路徑樹時,將當前加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點a維護的路由表。
一種FSPF協(xié)議的路由確定裝置,用于節(jié)點a的路由確定,該裝置包括路徑樹生成單元和路由更新單元;
所述路徑樹生成單元,用于根據(jù)節(jié)點a維護的LSDB以及節(jié)點a存在鏈路連接的各節(jié)點之間的鏈路開銷,以到節(jié)點a的鏈路開銷最小為原則將與所述
LSDB的各節(jié)點逐一加入以節(jié)點a為根節(jié)點的最短路徑樹;
所述路由更新單元,用于在所述路徑樹生成單元將每一個節(jié)點加入所述最短路徑樹時,將當前加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點a維護的路由表。
由以上技術(shù)方案可以看出,本發(fā)明提供的方法和裝置中,網(wǎng)絡中的節(jié)點A可以按照自身維護的LSDB以及與節(jié)點A存在鏈;洛連接的各節(jié)點之間的鏈路開銷,將與LSDB中的各節(jié)點逐一加入以節(jié)點A為根節(jié)點的最短路徑樹;并且在將每一個節(jié)點加入以節(jié)點A為根節(jié)點的最短路徑樹時,將該加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點A維護的路由表。從而提供了一種FSPF協(xié)議的路由確定方法,從而使得各節(jié)點能夠根據(jù)自身維護的路由表實現(xiàn)光纖通道架構(gòu)中節(jié)點之間的報文通信。并且,本發(fā)明在將每一個節(jié)點加入最短路徑樹的時候就將該節(jié)點的路由信息更新到路由表中,構(gòu)建最短路徑樹的過程和更新路由表的操作是相互融合的一個階段過程,即一個節(jié)點的路由表項并不會影響其它路由表項,節(jié)點仍可按照已經(jīng)下刷的路由表進行數(shù)據(jù)的正常轉(zhuǎn)發(fā),保證業(yè)務正常進行。
.
圖1為本發(fā)明實施例提供的主要方法流程圖;圖2為本發(fā)明實施例提供的詳細方法流程圖;圖3為本發(fā)明實施例提供的一個網(wǎng)絡拓樸變化圖;圖4中(a)和(b)為圖3所示網(wǎng)絡拓樸變化前后對應的最短路徑樹示意圖5為本發(fā)明實施例提供的裝置結(jié)構(gòu)示意圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述。
本發(fā)明核心思想主要包括節(jié)點A按照自身維護的LSDB以及與節(jié)點A存在鏈路連接的各節(jié)點之間的鏈路開銷,將與LSDB的各節(jié)點逐一加入以節(jié)點A為根節(jié)點的最短路徑樹;并且在將每一個節(jié)點加入以節(jié)點A為根節(jié)點的最短路徑樹時,將該加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點A維護的路由表。
需要說明的是上述的節(jié)點A可以是光纖通道網(wǎng)絡中運行FSPF協(xié)議的任一個節(jié)點,節(jié)點A是為了描述方便的一個代稱。
圖1為本發(fā)明實施例提供的主要方法流程圖,如圖1所示,該方法主要包括以下步驟
步驟101:節(jié)點A清空最短路徑樹和候選列表,將自身加入最短路徑樹并作為根節(jié)點。
步驟102:將當前加入最短路徑樹的節(jié)點的各鄰居節(jié)點記錄在候選列表中,并對應每一個鄰居節(jié)點記錄距離節(jié)點a的最小鏈路開銷。
步驟103:判斷候選列表是否為空,如果是,結(jié)束流程,否則執(zhí)行步驟
104。
步驟104:從候選列表中選擇一個鏈路開銷最小的節(jié)點,按照開銷最小的鏈路加入最短路徑樹,并將該選擇的節(jié)點從候選列表中刪除,轉(zhuǎn)至執(zhí)行步驟102。
下面結(jié)合具體實施例對上述方法進行詳細描述。圖2為本發(fā)明實施例提供的詳細方法流程圖,當網(wǎng)絡初始構(gòu)建完畢,或者節(jié)點維護的LSDB發(fā)生變
8化時,可以觸發(fā)執(zhí)行本發(fā)明。其中,節(jié)點維護的LSDB發(fā)生變化可能是由網(wǎng)絡中有新加入的節(jié)點,或有節(jié)點離開,或者有新的鏈路建立或斷開等情況引起。由于當網(wǎng)絡拓樸發(fā)生變化時,會引起網(wǎng)絡中所有節(jié)點的LSDB發(fā)生變化,因此,每一個節(jié)點均會執(zhí)行圖2所示的流程,在此以節(jié)點A為例進行描述。如圖2所示,該方法可以具體包括以下步-嗥
步驟201:節(jié)點A清空候選列表和最短路徑樹。
當節(jié)點維護的LSDB發(fā)生變化時,需要重新構(gòu)建最短路徑樹,此時就需要將原有的最短路徑樹清空,候選列表是構(gòu)建最短路徑樹過程中使用的一個中間過程列表,其功用將在后續(xù)描述中體現(xiàn)。
步驟202:節(jié)點A加入最短路徑樹,并作為最短路徑樹的根節(jié)點。步驟203:開始對當前加入最短路徑樹的節(jié)點的鄰居節(jié)點進行遍歷。由于各節(jié)點中都存儲有LSDB,能夠獲知網(wǎng)絡中所有節(jié)點的鏈路連接信息。
步驟204:判斷當前遍歷到的鄰居節(jié)點是否已經(jīng)加入以節(jié)點A為根節(jié)點的最短路徑樹,如果是,執(zhí)行步驟211;否則,執(zhí)行步驟205。
本步驟是為了防止一個節(jié)點被重復加入最短路徑樹,從而防止出錯,加快構(gòu)建最短路徑樹的進程。
步驟205:計算根節(jié)點A到當前遍歷到的鄰居節(jié)點之間的鏈路開銷。
步驟206:判斷候選列表中是否存在該鄰居節(jié)點,如果否,執(zhí)行步驟207;如果是,執(zhí)行步驟208。
步驟207:將該鄰居節(jié)點加入候選列表,并對應該鄰居節(jié)點記錄計算的鏈路開銷,將該鄰居節(jié)點記錄為從根節(jié)點A到該鄰居節(jié)點路由中當前加入最短路徑樹的節(jié)點的下一跳,執(zhí)行步驟211。
本步驟中將該鄰居節(jié)點記錄為從根節(jié)點A到該鄰居節(jié)點路由中當前加入最短路徑樹的節(jié)點的下一跳,以便在后續(xù)將該鄰居節(jié)點按照距離節(jié)點A最小鏈路開銷的鏈路加入最短路徑樹時,能夠直接按照記錄的下一跳信息執(zhí)行。鏈路開銷與候選列表中對應該鄰居節(jié)點記錄的鏈路開銷,如果大于候選列表中對應該鄰居節(jié)點記錄的鏈路開銷,則執(zhí)行步驟211;如果等于,則執(zhí)行步驟209;如果小于,則執(zhí)行步驟210。
步驟209:將該鄰居節(jié)點記錄為從根節(jié)點A到該鄰居節(jié)點路由中當前加入最短路徑樹的節(jié)點的下一跳,執(zhí)行步驟211。
步驟210:將候選列表中對應該鄰居節(jié)點記錄的鏈路開銷更新為該計算的鏈路開銷,將從根節(jié)點A到鄰居節(jié)點if各由中當前加入最短路徑樹的節(jié)點的下 一跳更新為該鄰居節(jié)點。
步驟211:判斷是否存在下一個鄰居節(jié)點,如果是,繼續(xù)遍歷下一個鄰居節(jié)點,執(zhí)行步驟204;否則執(zhí)行步驟212。
步驟212:判斷候選列表是否為空,如果是,結(jié)束路由計算;否則,執(zhí)行步驟213。
步驟213:從候選列表中選擇對應的鏈路開銷最小的節(jié)點,將該節(jié)點按照到節(jié)點A的最小鏈路開銷對應的鏈路加入到最短路徑樹中,將該節(jié)點從候選列表中刪除,并將該節(jié)點對應的路由信息更新到路由表中。轉(zhuǎn)至執(zhí)行步驟203。
本步驟中,將節(jié)點對應的路由信息更新到路由表中可以具體為確定當前加入最短5§4圣樹的節(jié)點的域標識(domain ID ),節(jié)點A至該當前加入最短路徑樹的節(jié)點的出接口信息以及距離節(jié)點A的最小鏈路開銷,利用確定的內(nèi)容替換路由表中當前加入最短路徑樹的節(jié)點對應的表項。
路由信息的內(nèi)容和確定方法與現(xiàn)有技術(shù)相同,但是需要注意的是,本發(fā)明在構(gòu)建最短路徑樹的過程中,每將一個節(jié)點加入最短路徑樹,就將該節(jié)點的路由信息更新到路由表中,也就是說,構(gòu)建最短路徑樹的過程和更新路由表的操作是相互融合的,即在一個階段完成。這相比較與通常的先構(gòu)建最短路徑樹完畢后,再生成路由表的兩階段過程,本發(fā)明的方式并不會影響業(yè)務的正常進行。現(xiàn)有技術(shù)兩階段的方式,會造成新的拓樸結(jié)構(gòu)變化后,從最短路徑樹構(gòu)建到生成路由表之間的時間內(nèi),該節(jié)點無法進行正常的數(shù)據(jù)轉(zhuǎn)發(fā),業(yè)務無法正常進行。而本發(fā)明的方式在更新一個鄰居節(jié)點對應的路由表項時,并不影響其它路由表項,仍可按照已經(jīng)下刷的路由表進行數(shù)據(jù)的正常轉(zhuǎn)發(fā),保證業(yè)務正常進行。
下面舉一個具體的實例描述上述方法的實現(xiàn)過程。如圖3所示,假設網(wǎng)
絡中原來節(jié)點之間的拓樸連接為節(jié)點A、節(jié)點C和節(jié)點D構(gòu)成一條鏈路,節(jié)點A與節(jié)點B相連構(gòu)成一條鏈路,在該拓樸連接下各節(jié)點中已經(jīng)維護了相同的LSDB,最短路徑樹和路由表。當網(wǎng)絡拓樸發(fā)生變化,節(jié)點B與節(jié)點D之間連接構(gòu)成了一條新的鏈路時,會在網(wǎng)絡中擴散發(fā)生變化的LSR,使得各節(jié)點都更新自身維護的LSDB從而觸發(fā)本發(fā)明的方法流程,開始重新生成最短if各徑樹以及更新3各由表。由于各節(jié)點的LSDB都發(fā)生變化,都會4安照本發(fā)明的流程執(zhí)行,在此僅以網(wǎng)絡節(jié)點A為例進行說明。在該實例中,假設節(jié)點A和節(jié)點B之間的鏈路開銷為10,節(jié)點B和節(jié)點D之間的鏈路開銷為10,節(jié)點A和節(jié)點C之間的鏈^各開銷為50,節(jié)點C和節(jié)點D之間的鏈路開銷為10。
節(jié)點A首先清空針對節(jié)點A的候選列表和最短路徑樹。節(jié)點A加入最短路徑樹,并作為最短路徑樹的根節(jié)點。當前加入最短路徑樹的為節(jié)點A,就對節(jié)點A的所有鄰居節(jié)點進行遍歷,節(jié)點A的鄰居節(jié)點分別為節(jié)點B和節(jié)點C。首先遍歷節(jié)點B,由于目前的最短路徑樹中僅存在根節(jié)點A,計算節(jié)點A到節(jié)點B之間的鏈路開銷為10,由于候選列表為空,因此,將節(jié)點B加入候選列表,并對應節(jié)點B記錄計算的鏈路開銷10,將節(jié)點A到節(jié)點B的路由中節(jié)點A的下一跳。繼續(xù)遍歷節(jié)點C,最短路徑樹中尚沒有節(jié)點C,計算節(jié)點A到節(jié)點C之間的鏈路開銷為50,由于候選列表中尚沒有節(jié)點C,因此將節(jié)點C加入候選列表,并對應節(jié)點C記錄計算的鏈路開銷50,并將節(jié)點A到節(jié)點C的路由中節(jié)點A的下一跳。對節(jié)點A的鄰居節(jié)點已經(jīng)遍歷完畢,從候選列表中選取一個對應鏈路開銷最小的節(jié)點,即節(jié)點B將其加入到最短路徑樹中,將節(jié)點B從候選列表中刪除,將節(jié)點A到節(jié)點B的路由信息更新到路由表中。針對當前加入到最短路徑樹中的節(jié)點B從步驟203開始執(zhí)行,遍歷節(jié)點B的鄰居節(jié)點,即節(jié)點A和節(jié)點D,由于節(jié)點A已經(jīng)加入最短路徑樹,因此繼續(xù)遍歷節(jié)點D。計算根節(jié)點A到節(jié)點D之間的鏈路開銷為20,由于節(jié)點D尚沒有在候選列表中,將該節(jié)點D加入候選列表,并對應節(jié)點D記錄計算的鏈路開銷20,記錄節(jié)點D為節(jié)點A到節(jié)點D的路由中節(jié)點B的下一跳。對應節(jié)點B的鄰居節(jié)點已經(jīng)遍歷完畢,從候選列表中選擇對應鏈路開銷最小的節(jié)點D按照對應路由加入最短路徑樹,將該節(jié)點D,人候選列表中刪除,并將節(jié)點A到節(jié)點D的路由信息更新到路由表中。
針對當前加入到最短路徑樹中的節(jié)點D從步驟203開始執(zhí)行,遍歷節(jié)點D的鄰居節(jié)點,即節(jié)點B和節(jié)點C,由于節(jié)點B已經(jīng)加入最短路徑樹,因此繼續(xù)遍歷節(jié)點C。計算根節(jié)點A到節(jié)點C之間的鏈路開銷為30,由于節(jié)點C已經(jīng)在候選列表中,比較計算的鏈路開銷與候選列表中對應該節(jié)點C記錄的鏈路開銷,由于計算的鏈路開銷小于候選列表中對應該節(jié)點C記錄的鏈路開銷,因此,將候選列表中對應該節(jié)點C記錄的鏈路開銷更新為計算的鏈路開銷即30,將根節(jié)點A到節(jié)點C的路由進行更新,將節(jié)點C更新為節(jié)點D的下一跳。對應節(jié)點D的鄰居節(jié)點遍歷完畢,從候選列表中選擇對應鏈路開銷最小的節(jié)點C按照對應路由加入最短路徑樹,即連在節(jié)點D之后,將節(jié)點C從候選列表中刪除,并將節(jié)點A到節(jié)點C的路由信息更新到路由表中。
執(zhí)行到此時候選列表為空,網(wǎng)絡中的各節(jié)點都加入到了最短路徑樹中,結(jié)束流程。在網(wǎng)絡拓樸變化前的最短路徑樹如圖4中的(a)所示,網(wǎng)絡拓樸變化后執(zhí)行本發(fā)明流程生成的最短路徑樹如圖4(b)所示,該最短路徑樹保證了從節(jié)點A到其它各節(jié)點的路徑最短,且無環(huán)路出現(xiàn)。
以上是對本發(fā)明所提供的方法進行地詳細描述,下面對本發(fā)明所提供的裝置進行詳細描述。圖5為本發(fā)明提供的裝置結(jié)構(gòu)示意圖,該裝置用于節(jié)點A的路由確定,同樣,這里節(jié)點A只是一個代稱,可以是光纖通道網(wǎng)絡中運行FSPF的任一個節(jié)點。如圖5所示,該裝置可以包括路徑樹生成單元500和路由更
12新單元510。
路徑樹生成單元500,用于根據(jù)節(jié)點A維護的LSDB以及節(jié)點A存在鏈路連接的各節(jié)點之間的鏈路開銷,以到節(jié)點A的鏈路開銷最小為原則將與LSDB中的各節(jié)點逐一加入以節(jié)點A為根節(jié)點的最短路徑樹。
路由更新單元510,用于在路徑樹生成單元500將每一個節(jié)點加入最短路徑樹時,將當前加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點A維護的路由表。
另外,該裝置還可以包括 -執(zhí)行觸發(fā)單元520,用于在網(wǎng)絡初始構(gòu)建完成,或者節(jié)點A維護的LSDB發(fā)生變化后,觸發(fā)路徑樹生成單元500執(zhí)行將與節(jié)點A存在鏈路連接的各節(jié)點逐一加入以節(jié)點A為根節(jié)點的最短路徑樹。
其中,LSDB發(fā)生變化通常是網(wǎng)絡拓樸發(fā)生變化引起的,例如新的節(jié)點加入鏈路,新的鏈路形成,鏈路斷開,節(jié)點離開鏈路等等。
該裝置中的路徑樹生成單元500可以具體包括初始化子單元501、候選列表記錄子單元502、判斷子單元503和加入處理子單元504。
初始化子單元501,用于清空最短路徑樹和候選列表,將節(jié)點A加入最短路徑樹并作為根節(jié)點,向候選列表記錄子單元502發(fā)送4丸行通知。
候選列表記錄子單元502,用于接收到執(zhí)行通知后,將當前加入最短路徑樹的節(jié)點的各鄰居節(jié)點記錄在候選列表中,并對應每一個鄰居節(jié)點記錄距離節(jié)點A的最小鏈路開銷,向判斷子單元503發(fā)送判斷通知。
判斷子單元503,用于接收到判斷通知后,判斷候選列表是否為空,如果是,結(jié)束操作;否則,向加入處理子單元504發(fā)送處理通知。
加入處理子單元504,用于接收到處理通知后,從候選列表中選擇一個鏈路開銷最小的節(jié)點,按照鏈路開銷最小的鏈路加入最短路徑樹,并將該選擇的節(jié)點從候選列表中刪除,向候選列表記錄子單元502發(fā)送執(zhí)行通知。
更具體地,候選列表記錄子單元502可以包括節(jié)點遍歷;f莫塊5021、第一判斷模塊5022、開銷計算模塊5023、第二判斷模塊5024、列表記錄模塊5025、比較處理模塊5026和第三判斷模塊5027。
節(jié)點遍歷模塊5021,用于接收到執(zhí)行通知后,對當前加入最短路徑樹的節(jié)點的鄰居節(jié)點進行遍歷。
第一判斷模塊5022,用于判斷當前遍歷到的鄰居節(jié)點是否已經(jīng)加入最短路 徑樹,如果是,向第三判斷模塊5027發(fā)送判斷通知;否則,向開銷計算模塊 5023發(fā)送計算通知。
開銷計算模塊5023,用于接收到計算通知后,計算節(jié)點A距離當前遍歷到 的鄰居節(jié)點的鏈路開銷,并向第二判斷模塊5024發(fā)送判斷通知。
第二判斷模塊5024,用于接收到判斷通知后,判斷候選列表中是否存在當 前遍歷到的鄰居節(jié)點,如果否,向列表記錄模塊5025發(fā)送記錄通知,如果是, 向比較處理模塊5026發(fā)送比較通知。
列表記錄模塊5025,用于接收到記錄通知后,將當前遍歷到的鄰居節(jié)點加 入候選列表,并對應該鄰居節(jié)點記錄計算的鏈路開銷,向第三判斷模塊5027 發(fā)送判斷通知。
比較處理模塊5026,用于接收到比較通知后,比較開銷計算模塊5023當 前計算的鏈路開銷與候選列表中對應當前遍歷到的鄰居節(jié)點記錄的鏈路開銷; 如果大于,向第三判斷模塊5027發(fā)送判斷通知,如果小于,通知列表記錄模塊 5025將候選列表中對應的該鄰居節(jié)點記錄的開銷更新為計算的鏈路開銷,并向 第三判斷模塊5027發(fā)送判斷通知。
第三判斷模塊5027,用于接收到判斷通知后,判斷是否存在下一個鄰居節(jié) 點,如果是,觸發(fā)節(jié)點遍歷模塊5021遍歷下一個鄰居節(jié)點;否則向判斷子才莫塊 503發(fā)送判斷通知。
另外,路由更新單元510可以具體包括路由計算子單元511和更新處理 子單元512。
路由計算子單元511,用于確定當前加入最短路徑樹的節(jié)點的域標識 domAin ID,節(jié)點A至該當前加入最短路徑初t的節(jié)點的出接口信息以及距離加 點A的最小鏈路開銷。
更新處理子單元512,用于利用路由計算子單元511確定的內(nèi)容替換路由 表中當前加入最短路徑樹的節(jié)點對應的表項。由以上描述可以看出,.本發(fā)明提供的方法和裝置中,網(wǎng)絡中的節(jié)點A可以
按照自身維護的LSDB以及與節(jié)點A存在鏈路連接的各節(jié)點之間的鏈路開銷, 將與LSDB中的各節(jié)點逐一加入以節(jié)點A為根節(jié)點的最短路徑樹;并且在將每 一個節(jié)點加入以節(jié)點A為根節(jié)點的最短路徑樹時,將該加入最短^42樹的節(jié)點 對應的路由更新至節(jié)點A維護的路由表。從而提供了一種FSPF協(xié)議的路由確 定方法,從而使得各節(jié)點能夠根據(jù)自身維護的路由表實現(xiàn)光纖通道架構(gòu)中節(jié)點 之間的報文通信。并且,本發(fā)明在將每一個節(jié)點加入最短路徑樹的時候就將該 節(jié)點的路由信息更新到路由表中,構(gòu)建最短路徑樹的過程和更新路由表的操作 是相互融合的一個階段過程,即一個節(jié)點的路由表項并不會影響其它路由表項, 節(jié)點仍可按照已經(jīng)下刷的路由表進行數(shù)據(jù)的正常轉(zhuǎn)發(fā),保證業(yè)務正常進行。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā) 明保護的范圍之內(nèi)。
權(quán)利要求
1、一種光纖最短路由FSPF協(xié)議的路由確定方法,其特征在于,該方法包括節(jié)點a根據(jù)自身維護的鏈路狀態(tài)數(shù)據(jù)庫LSDB以及與節(jié)點a存在鏈路連接的各節(jié)點之間的鏈路開銷,以到節(jié)點a的鏈路開銷最小為原則將與所述LSDB中的各節(jié)點逐一加入以節(jié)點a為根節(jié)點的最短路徑樹;并且在將每一個節(jié)點加入所述最短路徑樹時,將當前加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點a維護的路由表。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述節(jié)點a在網(wǎng)絡初始完成, 或者節(jié)點a維護的LSDB發(fā)生變化后,執(zhí)行權(quán)利要求1所述的方法。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將與節(jié)點a存在鏈路連 接的各節(jié)點逐一加入以節(jié)點a為根節(jié)點的最短路徑樹具體包括A、 所述節(jié)點a清空最短路徑樹和候選列表,將自身加入最短路徑樹并作為 根節(jié)點;B、 將當前加入最短路徑樹的節(jié)點的各鄰居節(jié)點記錄在候選列表中,并對應 每一個鄰居節(jié)點記錄距離節(jié)點a的最小鏈路開銷;C、 判斷候選列表是否為空,如果是,結(jié)束流程,否則從候選列表中選擇一 個鏈路開銷最小的節(jié)點,按照鏈路開銷最小的鏈路加入最短路徑樹,并將該選 擇的節(jié)點從候選列表中刪除,轉(zhuǎn)至執(zhí)行步驟B。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B具體包括 B1 、對當前加入最短路徑樹的節(jié)點的鄰居節(jié)點進行遍歷;B2、判斷當前遍歷到的鄰居節(jié)點是否已經(jīng)加入所述最短路徑樹,如果是, 執(zhí)行步驟B6;否則,執(zhí)行步驟B3;B3、計算節(jié)點a距離當前遍歷到的鄰居節(jié)點的鏈路開銷,判斷所述候選列 表中是否存在該鄰居節(jié)點,如果否,執(zhí)行步驟B4;如果是,執(zhí)行步驟B5;B4、將當前遍歷到的鄰居節(jié)點加入候選列表,并對應該鄰居節(jié)點記錄計算的鏈路開銷,執(zhí)行步驟B6;B5、比較計算的鏈路開銷與候選列表中對應該鄰居節(jié)點記錄的鏈路開銷, 如果大于,執(zhí)行步驟B6;如果小于,將候選列表中對應該鄰居節(jié)點記錄的開銷 更新為計算的鏈路開銷;B6、判斷是否存在下一個鄰居節(jié)點,如果是,遍歷下一個鄰居節(jié)點,轉(zhuǎn)至 步驟B2,否則執(zhí)行步驟C。
5、 根據(jù)權(quán)利要求1至4任一權(quán)項所述的方法,其特征在于,所述將當前加 入最短路徑樹的節(jié)點對應的路由更新至節(jié)點a維護的路由表具體包括確定當 前加入最短路徑樹的節(jié)點的域標識domain ID,節(jié)點a至該當前加入最短路徑樹 的節(jié)點的出接口信息以及距離節(jié)點a的最小鏈路開銷,利用確定的內(nèi)容替換路 由表中當前加入最短路徑樹的節(jié)點對應的表項。
6、 一種FSPF協(xié)議的路由確定裝置,用于節(jié)點a的路由確定,其特征在于, 該裝置包括路徑樹生成單元和路由更新單元;所述路徑樹生成單元,用于根據(jù)節(jié)點a維護的LSDB以及節(jié)點a存在鏈路 連接的各節(jié)點之間的鏈路開銷,以到節(jié)點a的鏈路開銷最小為原則將與所述 LSDB的各節(jié)點逐一加入以節(jié)點a為根節(jié)點的最短路徑樹;所述路由更新單元,用于在所述if各徑樹生成單元將每一個節(jié)點加入所述最 短路徑樹時,將當前加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點a維護的路 由表。
7、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,該裝置還包括執(zhí)行觸發(fā)單 元,用于在網(wǎng)絡初始構(gòu)建完成,或者節(jié)點a維護的LSDB發(fā)生變化后,觸發(fā)所 述路徑樹生成單元執(zhí)行所述將與節(jié)點a存在鏈路連接的各節(jié)點逐一加入以節(jié)點 a為根節(jié)點的最短路徑樹。
8、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述路徑樹生成單元具體包 括初始化子單元、候選列表記錄子單元、判斷子單元和加入處理子單元;所述初始化子單元,用于清空最短路徑樹和候選列表,將節(jié)點a加入最短 路徑樹并作為根節(jié)點,向所述候選列表記錄子單元發(fā)送執(zhí)行通知;所述候選列表記錄子單元,用于接收到執(zhí)行通知后,將當前加入最短路徑 樹的節(jié)點的各鄰居節(jié)點記錄在候選列表中,并對應每一個鄰居節(jié)點記錄距離節(jié)點a的最小鏈路開銷,向所述判斷子單元發(fā)送判斷通知;所述判斷子單元,用于接收到所述判斷通知后,判斷候選列表是否為空, 如果是,結(jié)束操作;否則,向加入處理子單元發(fā)送處理通知;所述加入處理子單元,用于接收到處理通知后,從候選列表中選擇一個鏈 路開銷最小的節(jié)點,按照鏈路開銷最小的鏈路加入最短路徑樹,并將該選擇的 節(jié)點從候選列表中刪除,向所述候選列表記錄子單元發(fā)送執(zhí)行通知。
9、根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述候選列表記錄子單元包 括節(jié)點遍歷模塊、第一判斷模塊、開銷計算模塊、第二判斷模塊、列表記錄 模塊、比較處理模塊和第三判斷模塊;所述節(jié)點遍歷模塊,用于接收到執(zhí)行通知后,對當前加入最短路徑樹的節(jié) 點的鄰居節(jié)點進行遍歷;所述第一判斷模塊,用于判斷當前遍歷到的鄰居節(jié)點是否已經(jīng)加入所述最 短路徑樹,如果是,向所述第三判斷模塊發(fā)送判斷通知;否則,向所述開銷計 算模塊發(fā)送計算通知;所述開銷計算模塊,用于接收到計算通知后,計算節(jié)點a距離當前遍歷到 的鄰居節(jié)點的鏈路開銷,并向所述第二判斷模塊發(fā)送判斷通知;所述第二判斷模塊,用于接收到判斷通知后,判斷候選列表中是否存在當 前遍歷到的鄰居節(jié)點,如果否,向列表記錄模塊發(fā)送記錄通知,如果是,向所 述比較處理模塊發(fā)送比較通知;所述列表記錄模塊,用于接收到記錄通知后,將當前遍歷到的鄰居節(jié)點加 入候選列表,并對應該鄰居節(jié)點記錄計算的鏈路開銷,向所述第三判斷模塊發(fā) 送判斷通知;所迷比較處理模塊,用于接收到比較通知后,比較所述開銷計算模塊當前 計算的鏈路開銷與候選列表中對應當前遍歷到的鄰居節(jié)點記錄的鏈路開銷;如 果大于,向所述第三判斷模塊發(fā)送判斷通知,如果小于,通知所述列表記錄模塊將候選列表中對應的該鄰居節(jié)點記錄的開銷更新為計算的鏈路開銷,并向所述第三判斷模塊發(fā)送判斷通知;所述第三判斷模塊,用于接收到判斷通知后,判斷是否存在下一個鄰居節(jié) 點,如果是,觸發(fā)所述節(jié)點遍歷^t塊遍歷下一個鄰居節(jié)點;否則向所述判斷子 單元發(fā)送判斷通知。
10、根據(jù)權(quán)利要求6至9任一權(quán)項所述的裝置,其特征在于,所述路由更 新單元包括路由計算子單元和更新處理子單元;所述路由計算子單元,用于確定當前加入最短路徑樹的節(jié)點的域標識 domainID,節(jié)點a至該當前加入最短路徑樹的節(jié)點的出接口信息以及距離加點 a的最小鏈路開銷;所述更新處理子單元,用于利用所述路由計算子單元確定的內(nèi)容替換路由 表中當前加入最短路徑樹的節(jié)點對應的表項。
全文摘要
一種光纖最短路由(FSPF)協(xié)議的路由確定方法和裝置,節(jié)點a根據(jù)自身維護的鏈路狀態(tài)數(shù)據(jù)庫(LSDB)以及與節(jié)點a存在鏈路連接的各節(jié)點之間的鏈路開銷,以到節(jié)點a的鏈路開銷最小為原則將所述LSDB的各節(jié)點逐一加入以節(jié)點a為根節(jié)點的最短路徑樹;并且在將每一個節(jié)點加入所述最短路徑樹時,將當前加入最短路徑樹的節(jié)點對應的路由更新至節(jié)點a維護的路由表。通過本發(fā)明的路由確定方法和裝置能夠?qū)崿F(xiàn)光纖通道架構(gòu)中節(jié)點之間的報文通信。
文檔編號H04Q11/00GK101552936SQ200910083199
公開日2009年10月7日 申請日期2009年5月5日 優(yōu)先權(quán)日2009年5月5日
發(fā)明者張長君, 婧 徐 申請人:杭州華三通信技術(shù)有限公司