專利名稱:一種互聯(lián)網(wǎng)協(xié)議報文轉(zhuǎn)發(fā)過程中快速重選路由的方法
發(fā)明內(nèi)容
本發(fā)明涉及一種互聯(lián)網(wǎng)協(xié)議報文轉(zhuǎn)發(fā)過程中快速重選路由方法,屬于數(shù)據(jù)通訊領(lǐng)域。
現(xiàn)有重路由技術(shù)的缺陷在于下一跳失效的消息是通過路由收斂的過程得到的,當路由器的某一端口失效時,必須等待一個較長的路由收斂過程才能將以此端口為出端口的路由下一跳從轉(zhuǎn)發(fā)表中刪除掉。在這段時間內(nèi)報文仍然會選擇這些路由下一跳轉(zhuǎn)發(fā),而不能及時的重路由到其它可能的負載分擔項上(即轉(zhuǎn)發(fā)表中其它的下一跳)。此缺陷造成重路由生效時間較長,重路由生效過程中的丟包率較高。
本發(fā)明的目的是克服已有技術(shù)的重路由生效時間較長、重路由生效過程中的丟包率較高等缺點,提出一種互聯(lián)網(wǎng)協(xié)議(以下簡稱IP)報文轉(zhuǎn)發(fā)過程中快速重選路由的方法,在報文轉(zhuǎn)發(fā)過程中的某一個下一跳路由器端口失效的情況下,為報文轉(zhuǎn)發(fā)快速地重新選擇有效路由,并減小重選路由過程中的丟包率。
本發(fā)明提出的互聯(lián)網(wǎng)協(xié)議報文轉(zhuǎn)發(fā)過程中快速重選路由的方法,包括如下各步驟1、建立實時端口狀態(tài)表,為每個端口設(shè)置兩個標志,其中的一個用于標識該端口所在地線路卡是否有效,另一個用于標識該端口是否有效,當檢測到該端口失效或由失效轉(zhuǎn)為有效時更新端口狀態(tài)表;2、在IP報文轉(zhuǎn)發(fā)過程中,檢查轉(zhuǎn)發(fā)信息表,若轉(zhuǎn)發(fā)表項中只有一個下一跳,則用當前下一跳轉(zhuǎn)發(fā)報文;3、若上述轉(zhuǎn)發(fā)表項中含有多個下一跳,則從多個下一跳中選定一個下一跳,用于發(fā)送報文。
上述第(3)步中用于從轉(zhuǎn)發(fā)表項的多個下一跳中選定一個下一跳的方法是哈希算法。
第(3)步中用選定的下一跳發(fā)送報文的過程如下1、根據(jù)端口實時狀態(tài)表,檢查選定的下一跳出端口的狀態(tài)和該端口所在地線路卡是否都有效,若都有效,則用該下一跳轉(zhuǎn)發(fā)報文;2、若該下一跳出端口的狀態(tài)或該端口所在地線路卡中的任何一個無效,則選擇另一個下一跳,并判斷該下一跳是否為最后一個下一跳,若是最后一個下一跳,則用該下一跳轉(zhuǎn)發(fā)報文;3、若不是最后一個下一跳,則在端口狀態(tài)表中檢查該下一跳出端口的狀態(tài)和該端口所在地線路卡是否都有效,若都有效,則用該下一跳轉(zhuǎn)發(fā)報文;
4、若該下一跳出端口的狀態(tài)和該端口所在地線路卡中有任何一個無效,則重復(fù)該上述第(2)、第(3)步,直至轉(zhuǎn)發(fā)報文。
本發(fā)明提出的互聯(lián)網(wǎng)協(xié)議報文轉(zhuǎn)發(fā)過程中快速重選路由的方法,由于檢測并更新端口狀態(tài)的動作比路由收斂的動作要快得多,所以本方法可以使重路由功能快速生效,并充分利用轉(zhuǎn)發(fā)表中的多個下一跳實現(xiàn)高可靠性的數(shù)據(jù)轉(zhuǎn)發(fā),減小重選路由過程中的丟包率。在IP網(wǎng)絡(luò)中應(yīng)用本發(fā)明的方法,通過在關(guān)鍵路徑上配置多個下一跳并應(yīng)用IP快速重路由技術(shù),可極大地提高網(wǎng)絡(luò)可靠性,最大限度地減少由線路及設(shè)備故障引起的丟包。
上述方法中,當轉(zhuǎn)發(fā)表項中含有多個下一跳時,則按照哈希算法從多個下一跳中選定一個下一跳。哈希算法的具體過程是將報文中的源IP地址簡稱為SA,報文中的目的IP地址簡稱為DA,哈希算法的實現(xiàn)過程如下假定整個SA、DA構(gòu)成一個Hash空間,Hash算法從宏觀上將這個空間均勻映射為一個從0~99的值。如果有兩個下一跳,則落在0~49和50~99之間的地址對是幾率均等的。這樣就使哈希值在0~49的報文走第一條路由,剩下的哈希值在50~99的報文走第二條路由,即可實現(xiàn)負載分擔。如果有三個下一跳,設(shè)報文的地址對的哈希值為X,則哈希值為0≤X≤33的報文走第一個下一跳;哈希值為34≤X≤66的報文走第二個下一跳,哈希值為67≤X≤99的報文走第三個下一跳。
選定了新的下一跳以后,從上述端口實時狀態(tài)表中,檢查該選定的下一跳,其出端口的狀態(tài)和該端口所在地線路卡是否都有效,若都有效,則用該下一跳轉(zhuǎn)發(fā)報文。若該下一跳出端口的狀態(tài)或該端口所在地線路卡中任何一個無效,則選擇另一個下一跳,并判斷該下一跳是否為最后一個下一跳,如果是最后一個下一跳,則用該下一跳轉(zhuǎn)發(fā)報文,如果不是最后一個下一跳,則在端口狀態(tài)表中檢查這個下一跳出端口的狀態(tài)和該端口所在地線路卡是否都有效,如果都有效,則用當前下一跳轉(zhuǎn)發(fā)報文,若任何一個無效,則重復(fù)選擇、判斷,直至成功轉(zhuǎn)發(fā)報文。
以下是IP快速重路由技術(shù)與基于路由收斂的重路由技術(shù)的實驗比較數(shù)據(jù)。實驗配置了一條有兩個下一條的路由(出端口分別為端口1、端口2),并從端口0輸入流量。在報文轉(zhuǎn)發(fā)過程中輪流對端口1和端口2進行打開、關(guān)閉操作,以模擬鏈路失效情況。
表1未采用IP快速重路由技術(shù)的實驗結(jié)果
平均重路由生效時間=0.2576秒丟包率=(12901005-7622266-41512099)/12901005=5.9%表2采用IP快速重路由技術(shù)后的實驗結(jié)果
平均重路由生效時間=0.001秒丟包率=(11077145-6605850-4468305)/11077145=0.027%從上面的實驗數(shù)據(jù)中可以看到在使用IP快速重路由技術(shù)后,重路由生效的時間由秒級減小到毫秒級,丟包率減少99%以上。
權(quán)利要求
1.一種互聯(lián)網(wǎng)協(xié)議報文轉(zhuǎn)發(fā)過程中快速重選路由的方法,其特征在于該方法包括如下各步驟(1)建立實時端口狀態(tài)表,為每個端口設(shè)置兩個標志,其中的一個用于標識該端口所在地線路卡是否有效,另一個用于標識該端口是否有效,當檢測到該端口失效或由失效轉(zhuǎn)為有效時更新端口狀態(tài)表;(2)在IP報文轉(zhuǎn)發(fā)過程中,檢查轉(zhuǎn)發(fā)信息表,若轉(zhuǎn)發(fā)表項中只有一個下一跳,則用當前下一跳轉(zhuǎn)發(fā)報文;(3)若上述轉(zhuǎn)發(fā)表項中含有多個下一跳,則從多個下一跳中選定一個下一跳,用于發(fā)送報文。
2.如權(quán)利要求1所述的方法,其特征在于其中的第(3)步中用于從轉(zhuǎn)發(fā)表項的多個下一跳中選定一個下一跳的方法是哈希算法。
3.如權(quán)利要求1所述的方法,其特征在于其中的第三步中用選定的下一跳發(fā)送報文的過程如下(1)根據(jù)端口實時狀態(tài)表,檢查選定的下一跳出端口的狀態(tài)和該端口所在地線路卡是否都有效,若都有效,則用該下一跳轉(zhuǎn)發(fā)報文;(2)若該下一跳出端口的狀態(tài)或該端口所在地線路卡中的任何一個無效,則選擇另一個下一跳,并判斷該下一跳是否為最后一個下一跳,若是最后一個下一跳,則用該下一跳轉(zhuǎn)發(fā)報文;(3)若不是最后一個下一跳,則在端口狀態(tài)表中檢查該下一跳出端口的狀態(tài)和該端口所在地線路卡是否都有效,若都有效,則用該下一跳轉(zhuǎn)發(fā)報文;(4)若該下一跳出端口的狀態(tài)和該端口所在地線路卡中有任何一個無效,則重復(fù)該上述第(2)、第(3)步,直至轉(zhuǎn)發(fā)報文。
全文摘要
本發(fā)明涉及一種互聯(lián)網(wǎng)協(xié)議報文轉(zhuǎn)發(fā)過程中快速重選路由的方法,屬數(shù)據(jù)傳輸技術(shù)領(lǐng)域。該方法首先建立實時端口狀態(tài)表,在IP報文轉(zhuǎn)發(fā)過程中,若轉(zhuǎn)發(fā)表項中只有一個下一跳,則用當前下一跳轉(zhuǎn)發(fā)報文。若有多個下一跳,則選定一個下一跳,并從端口狀態(tài)表中,檢查該下一跳出端口的狀態(tài)和該端口所在地線路卡,一定規(guī)則選定新的下一跳轉(zhuǎn)發(fā)報文。本發(fā)明的方法,由于檢測并更新端口狀態(tài)的動作比路由收斂的動作要快得多,所以可以使重路由功能快速生效,并充分利用轉(zhuǎn)發(fā)表中的多個下一跳實現(xiàn)高可靠性的數(shù)據(jù)轉(zhuǎn)發(fā),減小重選路由過程中的丟包率。
文檔編號H04Q3/00GK1469600SQ02126770
公開日2004年1月21日 申請日期2002年7月15日 優(yōu)先權(quán)日2002年7月15日
發(fā)明者魏中華, 孫健, 任江興 申請人:華為技術(shù)有限公司