確定最短路徑的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及確定最短路徑的方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)網(wǎng)中包括多個(gè)網(wǎng)絡(luò)設(shè)備。每個(gè)網(wǎng)絡(luò)設(shè)備以自身為根節(jié)點(diǎn)計(jì)算自身到其他網(wǎng)絡(luò)設(shè)備最短路徑,從而生成最短路徑優(yōu)先樹(shortest path first tree,SPF tree)?,F(xiàn)網(wǎng)中生成最短路徑優(yōu)先樹是分布式實(shí)現(xiàn)的。舉例來說,所述多個(gè)網(wǎng)絡(luò)設(shè)備可以是多個(gè)路由器。每個(gè)路由器只生成自身的最短路徑優(yōu)先樹,不生成其他路由器的最短路徑優(yōu)先樹。
[0003]目前尚未發(fā)現(xiàn)現(xiàn)網(wǎng)中存在集中式生成最短路徑優(yōu)先樹的情形。理論上,集中式生成最短路徑優(yōu)先樹可以通過如下途徑實(shí)現(xiàn):一個(gè)網(wǎng)絡(luò)設(shè)備多次運(yùn)行最短路徑優(yōu)先算法(shortest path first algorithm, SPF algorithm),從而生成多個(gè)網(wǎng)絡(luò)設(shè)備的最短路徑優(yōu)先樹。集中式生成最短路徑優(yōu)先樹消耗的資源較多。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供確定最短路徑的方法及裝置,有助于降低生成最短路徑優(yōu)先樹對(duì)資源的消耗。
[0005]第一方面,提供一種確定最短路徑的方法,包括:
[0006]確定第一節(jié)點(diǎn)到第二節(jié)點(diǎn)的第一最短路徑;以及
[0007]確定第三節(jié)點(diǎn)到第二節(jié)點(diǎn)的第二最短路徑;
[0008]其中,所述確定第三節(jié)點(diǎn)到第二節(jié)點(diǎn)的第二最短路徑包括:
[0009]將所述第三節(jié)點(diǎn)作為根節(jié)點(diǎn)運(yùn)行最短路徑優(yōu)先算法執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的最短路徑優(yōu)先樹的操作,當(dāng)計(jì)算至所述第一節(jié)點(diǎn)為所述第三節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),如果所述第三節(jié)點(diǎn)只能通過所述第一節(jié)點(diǎn)到達(dá)所述第二節(jié)點(diǎn),則避免執(zhí)行通過運(yùn)行所述最短路徑優(yōu)先算法計(jì)算所述第一節(jié)點(diǎn)的子節(jié)點(diǎn)的操作,將所述第一最短路徑作為所述第二最短路徑的一部分。
[0010]上述技術(shù)方案中,先確定所述第一節(jié)點(diǎn)到所述第二節(jié)點(diǎn)的所述第一最短路徑,然后確定所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)的所述第二最短路徑。確定所述第二最短路徑時(shí),當(dāng)計(jì)算至所述第一節(jié)點(diǎn)為所述第三節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),可以將已確定的所述第一節(jié)點(diǎn)到所述第二節(jié)點(diǎn)的所述第一最短路徑作為所述第二最短路徑的一部分,避免了通過運(yùn)行所述最短路徑優(yōu)先算法計(jì)算所述第一節(jié)點(diǎn)的子節(jié)點(diǎn)的操作。因此,上述技術(shù)方案有助于降低生成最短路徑優(yōu)先樹對(duì)資源的消耗。
[0011]第一方面的第一種可能的實(shí)現(xiàn)方式中,所述確定第三節(jié)點(diǎn)到第二節(jié)點(diǎn)的第二最短路徑,還包括:
[0012]如果所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)存在其他路徑,所述其他路徑不經(jīng)過所述第一節(jié)點(diǎn),則比較所述其他路徑的開銷與第一開銷,所述第一開銷為第一路徑的開銷與第二路徑的開銷的和,所述第一路徑為所述第一最短路徑,所述第二路徑為執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的所述最短路徑優(yōu)先樹的操作得到的所述第三節(jié)點(diǎn)到所述第一節(jié)點(diǎn)的路徑;以及
[0013]如果所述其他路徑的開銷大于所述第一開銷,則將所述第一最短路徑作為所述第二最短路徑的一部分。
[0014]第一方面的第二種可能的實(shí)現(xiàn)方式中,所述確定第三節(jié)點(diǎn)到第二節(jié)點(diǎn)的第二最短路徑,還包括:
[0015]如果所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)存在其他路徑,所述其他路徑不經(jīng)過所述第一節(jié)點(diǎn),則比較所述其他路徑的開銷與第一開銷,所述第一開銷為第一路徑的開銷與第二路徑的開銷的和,所述第一路徑為所述第一最短路徑,所述第二路徑為執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的所述最短路徑優(yōu)先樹的操作得到的所述第三節(jié)點(diǎn)到所述第一節(jié)點(diǎn)的路徑;以及
[0016]如果所述其他路徑的開銷小于所述第一開銷,則避免執(zhí)行將所述第一最短路徑作為所述第二最短路徑的一部分的操作,將所述其他路徑作為所述第二最短路徑。
[0017]第一方面的第三種可能的實(shí)現(xiàn)方式中,所述確定第三節(jié)點(diǎn)到第二節(jié)點(diǎn)的第二最短路徑,還包括:
[0018]如果所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)存在其他路徑,所述其他路徑不經(jīng)過所述第一節(jié)點(diǎn),則比較所述其他路徑的開銷與第一開銷,所述第一開銷為第一路徑的開銷與第二路徑的開銷的和,所述第一路徑為所述第一最短路徑,所述第二路徑為執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的所述最短路徑優(yōu)先樹的操作得到的所述第三節(jié)點(diǎn)到所述第一節(jié)點(diǎn)的路徑;以及
[0019]如果所述其他路徑的開銷等于所述第一開銷,則將所述第一最短路徑作為所述第二最短路徑的一部分,或者避免執(zhí)行將所述第一最短路徑作為所述第二最短路徑的一部分的操作,將所述其他路徑作為所述第二最短路徑。
[0020]根據(jù)第一方面、第一方面的第一種可能的實(shí)現(xiàn)方式、第一方面的第二種可能的實(shí)現(xiàn)方式中或者第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的數(shù)量大于所述最短路徑優(yōu)先樹中所述第一節(jié)點(diǎn)以外的每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的數(shù)量。
[0021]第二方面,提供一種確定最短路徑的裝置,包括:
[0022]第一單元,用于確定第一節(jié)點(diǎn)到第二節(jié)點(diǎn)的第一最短路徑;以及
[0023]第二單元,用于確定第三節(jié)點(diǎn)到第二節(jié)點(diǎn)的第二最短路徑;
[0024]其中,所述第二單元具體用于將所述第三節(jié)點(diǎn)作為根節(jié)點(diǎn)運(yùn)行最短路徑優(yōu)先算法執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的最短路徑優(yōu)先樹的操作,當(dāng)計(jì)算至所述第一節(jié)點(diǎn)為所述第三節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),如果所述第三節(jié)點(diǎn)只能通過所述第一節(jié)點(diǎn)到達(dá)所述第二節(jié)點(diǎn),則避免執(zhí)行通過運(yùn)行所述最短路徑優(yōu)先算法計(jì)算所述第一節(jié)點(diǎn)的子節(jié)點(diǎn)的操作,將所述第一最短路徑作為所述第二最短路徑的一部分。
[0025]上述技術(shù)方案中,先確定所述第一節(jié)點(diǎn)到所述第二節(jié)點(diǎn)的所述第一最短路徑,然后確定所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)的所述第二最短路徑。確定所述第二最短路徑時(shí),當(dāng)計(jì)算至所述第一節(jié)點(diǎn)為所述第三節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),可以將已確定的所述第一節(jié)點(diǎn)到所述第二節(jié)點(diǎn)的所述第一最短路徑作為所述第二最短路徑的一部分,從而避免了通過運(yùn)行所述最短路徑優(yōu)先算法計(jì)算所述第一節(jié)點(diǎn)的子節(jié)點(diǎn)的操作。因此,上述技術(shù)方案有助于降低生成最短路徑優(yōu)先樹對(duì)資源的消耗。
[0026]第二方面的第一種可能的實(shí)現(xiàn)方式中,所述第二單元還包括:
[0027]比較單元,用于如果所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)存在其他路徑,所述其他路徑不經(jīng)過所述第一節(jié)點(diǎn),則比較所述其他路徑的開銷與第一開銷,所述第一開銷為第一路徑的開銷與第二路徑的開銷的和,所述第一路徑為所述第一最短路徑,所述第二路徑為執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的所述最短路徑優(yōu)先樹的操作得到的所述第三節(jié)點(diǎn)到所述第一節(jié)點(diǎn)的路徑;以及
[0028]確定單元,用于如果所述其他路徑的開銷大于所述第一開銷,則將所述第一最短路徑作為所述第二最短路徑的一部分。
[0029]第二方面的第二種可能的實(shí)現(xiàn)方式中,所述第二單元還包括:
[0030]比較單元,用于如果所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)存在其他路徑,所述其他路徑不經(jīng)過所述第一節(jié)點(diǎn),則比較所述其他路徑的開銷與第一開銷,所述第一開銷為第一路徑的開銷與第二路徑的開銷的和,所述第一路徑為所述第一最短路徑,所述第二路徑為執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的所述最短路徑優(yōu)先樹的操作得到的所述第三節(jié)點(diǎn)到所述第一節(jié)點(diǎn)的路徑;以及
[0031]確定單元,用于如果所述其他路徑的開銷小于所述第一開銷,則避免執(zhí)行將所述第一最短路徑作為所述第二最短路徑的一部分的操作,將所述其他路徑作為所述第二最短路徑。
[0032]第二方面的第三種可能的實(shí)現(xiàn)方式中,所述第二單元還包括:
[0033]比較單元,用于如果所述第三節(jié)點(diǎn)到所述第二節(jié)點(diǎn)存在其他路徑,所述其他路徑不經(jīng)過所述第一節(jié)點(diǎn),則比較所述其他路徑的開銷與第一開銷,所述第一開銷為第一路徑的開銷與第二路徑的開銷的和,所述第一路徑為所述第一最短路徑,所述第二路徑為執(zhí)行逐跳計(jì)算所述第三節(jié)點(diǎn)的所述最短路徑優(yōu)先樹的操作得到的所述第三節(jié)點(diǎn)到所述第一節(jié)點(diǎn)的路徑;以及
[0034]確定單元,用于如果所述其他路徑的開銷等于所述第一開銷,則將所述第一最短路徑作為所述第二最短路徑的一部分,或者避免執(zhí)行將所述第一最短路徑作為所述第二最短路徑的一部分的操作,將所述其他路徑作為所述第二最短路徑。
[0035]根據(jù)第二方面、第二方面的第一種可能的實(shí)現(xiàn)方式、第二方面的第二種可能的實(shí)現(xiàn)方式中或者第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的數(shù)量大于所述最短路徑優(yōu)先樹中所述第一節(jié)點(diǎn)以外的每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的數(shù)量。
【附圖說明】
[0036]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造