国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種建立最短路徑樹的方法

      文檔序號:7648031閱讀:295來源:國知局
      專利名稱:一種建立最短路徑樹的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及網(wǎng)絡(luò)路由選擇方法,特別涉及一種采用SPF(最短路徑優(yōu)先)算法的建立最短路徑樹的方法。
      背景技術(shù)
      在數(shù)據(jù)通訊網(wǎng)絡(luò)中,可以將網(wǎng)絡(luò)抽象化為枝和點構(gòu)成的拓?fù)鋱D,網(wǎng)絡(luò)中的路由器構(gòu)成網(wǎng)絡(luò)中的點。一般情況下,路由器選擇最短的路徑來傳輸數(shù)據(jù)包,SPF算法是路由器中最常用的算法之一。例如在ISIS(網(wǎng)絡(luò)鏈路狀態(tài)路由協(xié)議)中就是采用SPF算法選擇最優(yōu)路由的。每個路由器使用SPF算法,在縱橫交錯的網(wǎng)絡(luò)中找出以自己為根的最短路徑樹,路由器根據(jù)該最短路徑樹,決定數(shù)據(jù)包的轉(zhuǎn)發(fā)路徑。圖1顯示了SPF的計算過程。其基本方法是第一步,在網(wǎng)絡(luò)拓?fù)渲姓业疆?dāng)前節(jié)點的相鄰節(jié)點W。
      第二步,判斷是否將節(jié)點W加入侯選節(jié)點集合,包括如下步驟如果在最短路徑樹中已經(jīng)有到節(jié)點W的路徑,則返回第一步,檢查下一個相鄰節(jié)點。否則,判斷侯選節(jié)點集合中有沒有節(jié)點W;如果侯選節(jié)點集合中沒有節(jié)點W,則直接將W加入到侯選節(jié)點集合中;如果侯選節(jié)點集合中有節(jié)點W,設(shè)為W′,計算W到根節(jié)點R的距離D,和W′到根節(jié)點的距離D′進行比較,如果D·D′,則將W加入到侯選節(jié)點集合中,否則,檢查下一個相鄰節(jié)點。
      第三步,選出最短距離路徑節(jié)點并放入最短路徑樹。
      第四步SPF計算的初始化將根節(jié)點放入最短路徑樹,反復(fù)執(zhí)行以上三個計算步驟,到侯選節(jié)點集合為空時停止計算,此時網(wǎng)絡(luò)中根節(jié)點A的最短路徑樹就建立起來了。
      下面結(jié)合圖1來說明SPF算法的執(zhí)行過程。圖2(a)和(b)分別是一個示意性的網(wǎng)絡(luò)拓?fù)鋱D,各節(jié)點A~E間的距離或稱量度(Metric)以圖中的數(shù)字例示。其中圖2(a)中顯示了各節(jié)點間距離都不為零的情況,而圖2(b)顯示了節(jié)點B、D間距離為零的情況。
      首先,參考圖2(a),SPF算法通過初始化將根節(jié)點A放入最短路徑樹中。按照前面所述的第一到第三步執(zhí)行第一次的SPF計算。結(jié)果,最短路徑樹為A·A,Metric=0。
      然后,從第一到第三步執(zhí)行第二次的SPF計算。在網(wǎng)絡(luò)拓?fù)鋱D中,取節(jié)點A的相鄰的節(jié)點B和D放入候選節(jié)點集合中。接下來,從候選節(jié)點集合中選擇一個到A距離最短的節(jié)點開始計算,此時有可能選B,也有可能選D。假設(shè)此時選擇了B,則A·B為到B的最短路徑,因此將A·B放入最短路徑樹。此后,節(jié)點B就不會再被放入候選節(jié)點集合中。結(jié)果,最短路徑樹為A·A,Metric=0A·B,Metric=2接著,從第一到第三步執(zhí)行第三次的SPF計算。取節(jié)點B的相鄰節(jié)點C和D放入候選節(jié)點集合中,與第二次SPF計算相同,此時假設(shè)選擇D(此時的D相當(dāng)于W節(jié)點)。由于在侯選節(jié)點集合中已存在A·D的路徑(此時的D相當(dāng)于W′節(jié)點),即A·D(距離為2)。而在該次SPF計算中D作為B的相鄰節(jié)點放入侯選節(jié)點集合中,則存在路徑A·B·D(距離為3)。顯然此處A·D為根節(jié)點A到節(jié)點D的最短路徑。因此將A·D放入最短路徑樹中。節(jié)點D就不會再被放入候選節(jié)點集合中。最短路徑樹為A·A,Metric=0A·B,Metric=2A·D,Metric=2對于節(jié)點B的相鄰節(jié)點C,根據(jù)SPF算法,求出根節(jié)點A與節(jié)點C的距離。存在兩條A·C的路徑,即A·B·C(距離為3)和A·D·B·C(距離為4)。根據(jù)最短路徑優(yōu)先的原則,將A·B·C放入最短路徑樹中。此后,節(jié)點C就不會再被放入候選節(jié)點集合中。結(jié)果,最短路徑樹為A·A,Metric=0A·B,Metric=2A·D,Metric=2A·B·C,Metric=3再從第一到第三步執(zhí)行第五次的SPF計算。取節(jié)點D的相鄰節(jié)點B和E,根據(jù)SPF的算法,節(jié)點B不再放入候選節(jié)點集合中。因此只有節(jié)點E放入節(jié)點候選節(jié)點集合中。求出節(jié)點A與節(jié)點E的距離。將最短距離A·D·E放入最短路徑樹中。候選節(jié)點集合清空,SPF算法結(jié)束。最終的最短路徑樹為A·A,Metric=0A·B,Metric=2A·D,Metric=2A·B·C,Metric=3A·D·E,Metric=3下面參考圖2(b),說明上述常規(guī)的SPF算法中的問題。
      圖2(b)與圖2(a)的差異在于,節(jié)點B和D之間的距離為零。在這種情況下,按照現(xiàn)有的SPF算法進行路由選擇就會出現(xiàn)問題。具體地說,在圖2(b)所示的情況下,現(xiàn)有的SPF算法仍然如上面所描述的情況那樣,將A·B的最短路徑加入根節(jié)點A的最短路徑樹,再將A·D的最短路徑加入根節(jié)點A的最短路徑樹。由于A·B·D在圖2(b)的情況下也是最短路徑(Metric=2),因此,在第三次SPF計算后,最短路徑樹為,A·A,Metric=0A·B,Metric=2A·D,Metric=2A·B·D,Metric=2在圖2(b)所示的情況下,顯然可以看出,存在從A·B·C和從A·D·B·C兩條最短的路徑。但是,按照現(xiàn)有的SPF算法的第二步,由于在第二次的計算中已找出了從A到B的最短路徑,故節(jié)點B不再放入侯選節(jié)點集合中。因此在第三次計算中就不可能再計算出A·D·B和A·D·B·C兩條最短的路徑。從而漏掉了兩條路由。換言之,采用現(xiàn)有技術(shù)的SPF算法來建立最短路徑樹,在網(wǎng)絡(luò)節(jié)點間距離為0的情況下,就不能正確得到所有的路由。

      發(fā)明內(nèi)容
      因此,為了克服上述現(xiàn)有技術(shù)不能在網(wǎng)絡(luò)節(jié)點間距離為零的情況下不能正確計算出所有路由的缺陷,本發(fā)明提出了一種改進的采用SPF算法的建立最短路徑樹的方法。
      根據(jù)本發(fā)明的方法包括如下步驟1)在網(wǎng)絡(luò)拓?fù)渲姓业疆?dāng)前節(jié)點的相鄰節(jié)點;2)如果在最短路徑樹中已經(jīng)存在從根節(jié)點到相鄰節(jié)點的最短路徑,判斷是否存在到該相鄰節(jié)點的等價路由;和3)如果存在等價路由,則將該相鄰節(jié)點加入侯選節(jié)點集合中,參加最短路徑的計算。
      在本發(fā)明的一種實施方案中,判斷是否存在等價路由的步驟包括2-1)將所述相鄰節(jié)點到所述最優(yōu)節(jié)點之間的路徑與所述最短路徑進行路徑距離的比較;2-2)如果兩條路徑的距離相等,則比較兩條路徑的下一跳;2-3)如果兩條路徑的下一跳不同,則表明存在到該相鄰節(jié)點的等價路由。
      本發(fā)明的方法還可進一步包括如下步驟4)將根節(jié)點在初始時放入最短路徑樹,作為最初的當(dāng)前節(jié)點;和5)重復(fù)上述步驟1)至3)。
      根據(jù)本發(fā)明的方法,有效地解決了現(xiàn)有技術(shù)對于網(wǎng)絡(luò)節(jié)點間距離為零情況下存在路由計算漏缺的問題,能夠正確地建立最短路徑樹。


      下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
      圖1是常規(guī)的SPF計算過程的示意圖;圖2(a)和(b)是運用常規(guī)SPF算法建立最短路徑樹的網(wǎng)絡(luò)拓?fù)涞氖纠龍D;圖3是本發(fā)明的建立最短路徑樹的方法的優(yōu)選實施方案的流程圖。
      優(yōu)選實施方式的說明參考圖3,以一個優(yōu)選的實施方案來說明本發(fā)明的建立最短路徑樹的方法。為了便于理解,仍以圖2(b)所示的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為例來說明。
      在該實施方案中,建立根節(jié)點A到節(jié)點B、D的最短路徑樹的過程即前三次的計算與前面描述的現(xiàn)有技術(shù)情況相同,在此不再贅述。在經(jīng)過第三次計算后,最短路徑樹為A·A,Metric=0
      A·B,Metric=2A·D,Metric=2A·B·D,Metric=2接下來,在第四次計算中,取出D節(jié)點的相鄰節(jié)點B和E。
      由于最短路徑樹中存在到B的最短路徑,在現(xiàn)有技術(shù)中B就不能再放入侯選節(jié)點集合中。而根據(jù)本發(fā)明的方法,先要判斷是否存在有從根節(jié)點A到B的等價路由。即,比較從A到B的其它路徑與當(dāng)前最短路徑的距離。在本例中還有A·D·B的路徑。比較A·D·B和A·B兩條路徑的距離。如果A·D·B路徑距離大于A·B的路徑,則同樣不將節(jié)點B放入根目錄中。如果相等,則比較A·D·B和A·B的下一跳,即根節(jié)點A之后的那個節(jié)點。因為A·D·B的下一跳是D,而A·B的下一跳是B,比較結(jié)果是下一跳不一樣,表明A·D·B與A·B的路徑是等價路由。因此,將節(jié)點B和E放入候選節(jié)點集合。
      然后,將節(jié)點B的路由A·D·B放入最短路徑樹。另一方面,A·B·D·B和A·B的距離相等,所以也要按上述方法比較這兩條路徑的下一跳,比較結(jié)果是這兩條路徑的下一跳都是B。因此路徑A·B·D·B不是最短路徑A·B的等價路徑,不能加入最短路徑樹。然后,再次將節(jié)點B移出候選節(jié)點集合。這樣,最短路徑樹為A·A,Metric=0A·B,Metric=2A·D,Metric=2A·B·D,Metric=2A·D·B,Metric=2接下來,進行第五次計算。先取B的相鄰節(jié)點D和C。由于在最短路徑樹中已經(jīng)存在到D的最短路徑,即A·B·D和A·D·B·D,而且它們各自的下一跳相同,所以D不用放入候選節(jié)點集合中參加計算,只將節(jié)點C加入候選節(jié)點集合中,求出根節(jié)點A到節(jié)點C的最短路徑。
      因為有兩條從根節(jié)點A到節(jié)點C的路徑,即A·B·C和A·D·B·C。通過計算可知A·B·C和A·D·B·C的路徑距離相同。且它們的下一跳相同。因此,這兩條路徑是等價路由。將節(jié)點C的兩條等價路由加入最短路徑樹中。并將節(jié)點C移出候選節(jié)點集合。此時,最短路徑樹就變?yōu)锳·A,Metric=0A·B,Metric=2A·D,Metric=2A·B·D,Metric=2A·D·B,Metric=2A·B·C,Metric=2A·D·B·C,Metric=3最后,再進行第六次計算。此時,在候選節(jié)點集合中只有節(jié)點E。路徑搜索表明存在兩條從根節(jié)點到節(jié)點E的路徑A·D·E和A·B·D·E。按照如上所述的方法判斷出這兩條路徑距離相等(Metric=3),且下一跳也相同,因此這兩條路徑也是到節(jié)點E的等價路由。將這兩條路徑A·D·E和A·B·D·E放入最短路徑樹中,并將侯選節(jié)點集合清空。至此,SPF計算結(jié)束,最后完成了根節(jié)點A的最短路徑樹A·A,Metric=0A·B,Metric=2A·D,Metric=2A·B·D,Metric=2
      A·D·B,Metric=2A·B·C,Metric=2A·D·B·C,Metric=3A·D·E,Metric=3A·B·D·E,Metric=3從上面的說明可以看出,本發(fā)明的方法在上述例子的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中存在節(jié)點間距離為零的情況下,也能夠正確地計算出所有的最短路徑,包括在現(xiàn)有技術(shù)的方法中未能求出的路徑A·D·B·C。因此,本發(fā)明很好地解決了關(guān)于建立最短路徑樹的現(xiàn)有技術(shù)在網(wǎng)絡(luò)節(jié)點間距離為零(Metric=0)情況下不能正確求出所有最短路徑的問題。
      上述說明只是通過一個簡單的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的例子對本發(fā)明的技術(shù)構(gòu)思和技術(shù)方案進行了解釋,目的是為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明的精神實質(zhì)。因此上述說明并不是對本發(fā)明的具體限定?,F(xiàn)實中的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)當(dāng)然也會復(fù)雜得多。本領(lǐng)域技術(shù)員可以理解,本發(fā)明可以適應(yīng)于包括網(wǎng)絡(luò)節(jié)點間距離為零等情況下的各種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。并且在本發(fā)明的精神和實質(zhì)的基礎(chǔ)上也可以進行各種修改和等同方式的替換。
      權(quán)利要求
      1.一種建立最短路徑樹的方法,所述方法采用SPF算法,其特征在于,包括如下步驟1)在網(wǎng)絡(luò)拓?fù)渲姓业疆?dāng)前節(jié)點的相鄰節(jié)點;2)如果在最短路徑樹中已經(jīng)存在從根節(jié)點到所述相鄰節(jié)點的最短路徑,判斷是否存在到該相鄰節(jié)點的等價路由;和3)如果存在等價路由,則將該相鄰節(jié)點加入侯選節(jié)點集合中,參加最短路徑的計算。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2)中判斷是否存在等價路由的步驟包括2-1)將所述相鄰節(jié)點到所述根節(jié)點之間的路徑與所述最短路徑進行路徑距離的比較;2-2)如果兩條路徑的距離相等,則比較兩條路徑的下一跳;2-3)如果兩條路徑的下一跳不同,則表明所述兩條路徑為從所述根節(jié)點到該相鄰節(jié)點的等價路由。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述步驟2)之后進一步包括如下步驟2’)如果在最短路徑樹中沒有從根節(jié)點到所述相鄰節(jié)點的最短路徑,則直接將該相鄰節(jié)點加入到侯選節(jié)點集合中。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,進一步包括如下步驟2”-1)如果所述侯選節(jié)點集合中已經(jīng)有所述相鄰節(jié)點,則計算要加入到所述侯選節(jié)點集合中的所述相鄰節(jié)點到根節(jié)點的距離;和2”-2)如果該距離小于所述的在侯選節(jié)點集合中已經(jīng)存在的相鄰節(jié)點到所述根節(jié)點的距離,則將所述相鄰節(jié)點加入到所述侯選節(jié)點集合中。
      5.根據(jù)權(quán)利要求1-4任一項所述的方法,其特征在于,進一步包括如下步驟4)將從所述根節(jié)點到所述相鄰節(jié)點的最短路徑加入最短路徑樹;和5)將所述最短路徑已加入最短路徑樹中的所述相鄰節(jié)點從當(dāng)前侯選節(jié)點集合中去掉。
      6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述當(dāng)前節(jié)點最初為根節(jié)點。
      7.根據(jù)權(quán)利要求6所述的方法,其特征在于,進一步包括6)當(dāng)所述侯選節(jié)點集合為空時,結(jié)束最短路徑樹的建立過程。
      全文摘要
      本發(fā)明提供了一種改進的采用SPF算法建立最短路徑樹的方法。該方法包括在網(wǎng)絡(luò)拓?fù)渲姓业疆?dāng)前節(jié)點的相鄰節(jié)點;對于在最短路徑樹中已經(jīng)存在最短路徑的相鄰節(jié)點,判斷是否存在到該相鄰節(jié)點的等價路由;如果存在等價路由,則將該相鄰節(jié)點加入候選節(jié)點集合中,參加路徑計算。本發(fā)明的方法能夠很好地解決關(guān)于建立最短路徑樹的現(xiàn)有技術(shù)在網(wǎng)絡(luò)節(jié)點間距離為零情況下不能正確求出所有最短路徑的問題。
      文檔編號H04L12/56GK1518297SQ03142620
      公開日2004年8月4日 申請日期2003年6月8日 優(yōu)先權(quán)日2003年1月27日
      發(fā)明者賀騫, 饒遠(yuǎn), 盛成, 張江平, 賀 騫 申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1