專利名稱:一種128位因特網(wǎng)地址并行高速路由尋址方法
技術(shù)領(lǐng)域:
本發(fā)明是一種用于計(jì)算機(jī)網(wǎng)絡(luò)IPv6 (互連網(wǎng)協(xié)議版本6)的并行高速路由 尋址方法,屬于計(jì)算機(jī)網(wǎng)絡(luò)與信息網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù):
隨著Intemet規(guī)模的急劇膨脹,信息量的加大以及Intemet上新應(yīng)用的不斷涌 現(xiàn),20多年前提出的IPv4網(wǎng)際互連協(xié)議有許多方面不適應(yīng)。首先是地址的限制, 其次是日益復(fù)雜的應(yīng)用業(yè)務(wù)如流式視頻和音頻業(yè)務(wù)等對(duì)網(wǎng)絡(luò)性能提出新的需 求,人們對(duì)IP協(xié)議的地址空間、性能以及安全性等方面提出了更高的要求,使 IPv4的局限性越來越顯現(xiàn)出來,迫切需要發(fā)展新一代互聯(lián)網(wǎng),IPv6正是為了滿 足這些新的需求而提出來的。
另一方面,由于Internet規(guī)模的膨脹、信息量的加大、應(yīng)用業(yè)務(wù)的多元化 導(dǎo)致網(wǎng)絡(luò)流量的迅速增加,據(jù)統(tǒng)計(jì),網(wǎng)絡(luò)流量每幾個(gè)月就會(huì)翻一番。為了消除 網(wǎng)絡(luò)流量增加帶來的影響,保證Internet的服務(wù)質(zhì)量,我們必須消除三個(gè)主要 因素的影響鏈路傳輸速率、路由器的數(shù)據(jù)處理能力和路由查找速率。而前兩 個(gè)因素都已經(jīng)存在解決方案,例如,光纖的廣泛應(yīng)用可以保證鏈路的傳輸速率; 交換技術(shù)的應(yīng)用能夠使路由器以G比特的速率將數(shù)據(jù)包從輸入端口轉(zhuǎn)移到相 應(yīng)的輸出端口。而第三個(gè)因素就成為了制約網(wǎng)絡(luò)速率的瓶頸,而當(dāng)前的路由查 找算法大部分是針對(duì)IPv4,針對(duì)IPv6的路由査找算法還不夠成熟。因此,有 必要進(jìn)行針對(duì)于IPv6的高速路由査找算法的研究。
IPv6地址的長(zhǎng)度為128位,也就是說可以有2的128次方的IP地址,相當(dāng)于 10的后面有38個(gè)零,如此龐大的地址空間,足以保證地球上每個(gè)人擁有一個(gè)或 多個(gè)IP地址。
2. IPv6地址類型
IPv6地址分三種類型的,分別占用不同的地址空間*單點(diǎn)傳送(unicast address):這種類型的地址是單個(gè)接口的地址。 發(fā)送到一個(gè)單點(diǎn)傳送地址的信息包只會(huì)送到地址為這個(gè)地址的接口。
*任意點(diǎn)傳送(anycast address):這種類型的地址是一組接口的地址, 發(fā)送到一個(gè)任意點(diǎn)傳送地址的信息包只會(huì)發(fā)送到這組地址中的一個(gè)(根據(jù)路由 距離的遠(yuǎn)近來選擇)
*多點(diǎn)傳送(multicast address):這種類型的地址是一組接口的地址, 發(fā)送到一個(gè)多點(diǎn)傳送地址的信息包會(huì)發(fā)送到屬于這個(gè)組的全部接口。
3. IPv6尋址方法
技術(shù)領(lǐng)域:
本發(fā)明內(nèi)容只涉及對(duì)單點(diǎn)傳送地址的尋址處理。
當(dāng)IP分組進(jìn)入路由器時(shí),路由器根據(jù)IP頭中的目的IP地址,在路由表 (Routing Table,又稱前綴表Prefix Table)中査找相應(yīng)的輸出端口和下一跳 信息(Next-Hop),以便將IP分組從這個(gè)輸出端口傳送到對(duì)應(yīng)的下一跳路由器。 在路由表中査找目的IP地址的下一跳信息的動(dòng)作就是IP路由査找。與精確匹配 查找(Exact Match Search)不同的是,IP路由查找必須在前綴表中査找到和目 的地址匹配的最長(zhǎng)前綴,這種查找是一種最長(zhǎng)匹配査找(Longest Match Search , LMS),而匹配的最長(zhǎng)前綴被稱為最長(zhǎng)匹配前綴(Longest Prefix Match ,LPM),所以IP路由査找問題有時(shí)也被稱為L(zhǎng)PM問題。
4. 一些名詞及術(shù)語
為了便于描述,我們使用prefix32, prefix35, prefix48分別表示長(zhǎng)度 為32, 35, 48的前綴。并稱前綴的最高位為第1位,使用hx—y(prefix32)表示 取長(zhǎng)度為32位的前綴的第x到第y位。
發(fā)明內(nèi)容
技術(shù)問題本發(fā)明的目的就是提供一種128位因特網(wǎng)地址(IPv6)并行高 速路由尋址方法,該方法具有并行高速路由尋址方法,解決路由器由于路由尋 址而帶來的數(shù)據(jù)處理工作。
技術(shù)方案隨著Internet的發(fā)展,路由信息不斷增加,路由表不斷膨脹, 路由査找問題越來越成為影響網(wǎng)絡(luò)通信速度的瓶頸,如何快速有效地詢查路由 地址,實(shí)現(xiàn)數(shù)據(jù)的高效轉(zhuǎn)發(fā)是提高計(jì)算機(jī)網(wǎng)絡(luò)性能急需解決的問題,基于對(duì) 當(dāng)前IPv6骨干路由器的路由表的特點(diǎn)進(jìn)行分析總結(jié),設(shè)計(jì)了一種適合IPv6的
4并行査找方法。該方法由四路組成(見圖2),其中三路是由占了路由前綴數(shù)量 90%以上的長(zhǎng)度為32, 35, 48的前綴組成,第四路采用硬件方法,處理除長(zhǎng) 度為32, 35, 48外的其他前綴。對(duì)于32, 35, 48三路,本發(fā)明設(shè)計(jì)了兩個(gè)數(shù) 據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的處理,稱為段表和偏移量表,它們的結(jié)構(gòu)如圖4、 5、 6所示。 由于該三路只要考慮確定長(zhǎng)度的路由前綴,避免了最長(zhǎng)前綴匹配問題。該三路 的路由査找只需要最多兩次的存儲(chǔ)器訪問操作,并且可以在常量時(shí)間內(nèi)實(shí)現(xiàn)路 由更新,存儲(chǔ)器的需求不到lMbytes,且該需求受路由前綴數(shù)量的增加影響較 小。該方法對(duì)未來路由尋址的發(fā)展具有良好的適應(yīng)性。 具體步驟為
a) 采用四路并行路由地址尋找框架,
其中三路是由占了路由前綴長(zhǎng)度為32, 35, 48的前綴組成,第四路處理 其他長(zhǎng)度的前綴尋址,路由尋址査找時(shí),對(duì)并行框架中的4路同時(shí)進(jìn)行査找, 然后由前綴長(zhǎng)度比較器選出前綴最長(zhǎng)的一路對(duì)應(yīng)的下一跳;
b) 對(duì)每一路采用的尋址方法為;
1) 取目標(biāo)IP地址的17到32比特做為索引,記為h17—32(IP),訪問段表 的對(duì)應(yīng)的表項(xiàng);
2) 査看該表項(xiàng)的最高位即第1比特,若為0,則取出段表表項(xiàng)中存儲(chǔ)的信 息,并取目標(biāo)IP的前16比特,記為hl—16(IP),進(jìn)行比較,若相等,則哮取 段表表項(xiàng)中存儲(chǔ)的下一跳信息做為査詢結(jié)果,送前綴長(zhǎng)度比較器;若不相等, 則將0作為結(jié)果送前綴長(zhǎng)度比較器;
3) 若段表表項(xiàng)的第1比特為1,則讀取段表表項(xiàng)中存儲(chǔ)的信息,記為 off—index,并取目標(biāo)IP的前16比特,按以下公式計(jì)算散列值,記為hash:
hash = off—index * 16 + f( hi—16(IP))
然后以此hash為索引去訪問偏移量表,若偏移量表對(duì)應(yīng)的表項(xiàng)不為空, 則取出該表項(xiàng)中存儲(chǔ)的信息,記為hi—16(prefix32),并與hi—16(IP)進(jìn)行比 較,若相等,則讀取該表項(xiàng)中存儲(chǔ)的下一跳信息做為査詢結(jié)果,送前綴長(zhǎng)度比 較器;若不相等,則將O作為結(jié)果送前綴長(zhǎng)度比較器;
4) 前綴長(zhǎng)度比較器從并行的各個(gè)分路獲得前綴長(zhǎng)度和對(duì)應(yīng)的下一跳的路 由信息,除去下一跳為零的分路后,選擇前綴長(zhǎng)度最長(zhǎng)的分路對(duì)應(yīng)的下一跳做
5為査詢結(jié)果,路由尋址結(jié)束。
有益效果對(duì)當(dāng)前IPv6骨干路由器的路由表的特點(diǎn)進(jìn)行分析總結(jié),根據(jù) IPv6路由表的特點(diǎn)設(shè)計(jì)了一適合IPv6的并行查找框架。該框架由四路組成, 其中三路是由占了路由前綴數(shù)量90%以上的長(zhǎng)度為32, 35, 48的前綴組成, 第四路采用TCAM,其中存放了除長(zhǎng)度為32, 35, 48外的其他前綴,TCAM為硬 件實(shí)現(xiàn),其査詢速度很快,不會(huì)影響并行框架的整體性能。對(duì)于32, 35, 48 三路,本文設(shè)計(jì)了段表加偏移量表的數(shù)據(jù)結(jié)構(gòu),并設(shè)計(jì)了相應(yīng)的hash函數(shù)。 由于該三路只要考慮確定長(zhǎng)度的路由前綴,避免了最長(zhǎng)前綴匹配問題。該三路 的路由査找只需要最多兩次的存儲(chǔ)器訪問操作,并且可以在常量時(shí)間內(nèi)實(shí)現(xiàn)路 由更新,存儲(chǔ)器的需求不到lMbytes,且該需求受路由前綴數(shù)量的增加影響較 小。該算法對(duì)未來路由尋址的發(fā)展具有良好的適應(yīng)性。具體表現(xiàn)為
(1)方法的路由查詢的時(shí)間復(fù)雜度。對(duì)于32, 35, 48三個(gè)分路,算法實(shí) 現(xiàn)的數(shù)據(jù)結(jié)構(gòu)都是段表加偏移量表,路由的査詢時(shí)間體現(xiàn)在段表和偏移量表的 訪問,最多兩次對(duì)存儲(chǔ)器的訪問,便可得到査詢結(jié)果,因此路由査詢的時(shí),間復(fù) 雜度為O(l)。
(2)方法的對(duì)存儲(chǔ)容量需求。存儲(chǔ)容量需求就是段表和偏移量表的存儲(chǔ)需 求。段表的存儲(chǔ)容量需求即為三個(gè)段表的需求的和,各個(gè)段表的存儲(chǔ)容量需求 分別為
216*4*sizeof(char) = 256k (Byte),對(duì)于pref ix32;
216*4*sizeof(char) = 256k (Byte),對(duì)于pref ix35;
216*6*sizeof(char)=384k(Byte),對(duì)于prefix48. 所以,段表的儲(chǔ)存容量需求為-
256k+256k+384k = 896k (Byte). 偏移量表的存儲(chǔ)容量需求為解決段表沖突所需的存儲(chǔ)容量,若前綴數(shù)量為N, 則最壞情況下,每?jī)蓚€(gè)前綴就會(huì)產(chǎn)生沖突,所以沖突數(shù)量最多為N/2,而段表 的每個(gè)沖突偏移量表用16個(gè)表項(xiàng)來解決,每個(gè)表項(xiàng)又占用4個(gè)Bytes,所以算 法的偏移量表存儲(chǔ)容量需求最多為
N/2*16*4 = 32N (Byte). 所以,算法總的存儲(chǔ)容量的需求為
896k + 32N (Byte).對(duì)當(dāng)前的路由表,在實(shí)驗(yàn)中,對(duì)prefix32、 prefix35、 prefix化我們分 別使用大小為213, 21G, 21()個(gè)表項(xiàng)的偏移量表,則根據(jù)段表和偏移量表的存儲(chǔ) 內(nèi)容,各個(gè)分路的存儲(chǔ)容量的需求分別為
216*4*sizeof(char) + 213*4*sizeof(char) = 256k + 32k = 288k(Byte),對(duì)于 prefix32;
216*4*sizeof(char) + 210*4*sizeof(char) = 256k + lk =257k(Byte),對(duì)于 prefix35:
216*6*sizeof(char) + 210*6*sizeof(char) = 384k+6k =390k(Byte),對(duì)于 prefix48.
所以,存儲(chǔ)容量的總需求為
288k+257k+3卯k = 935k(Byte).
圖1是單播地址格式,
圖2是IPv6并行路由尋址框架,
圖3是并行框架中prefix32分路的路由尋址實(shí)現(xiàn)結(jié)構(gòu), 圖4是32bit前綴的段表和偏移量表表項(xiàng)的內(nèi)容, 圖5是35bit前綴的段表和偏移量表表項(xiàng)的內(nèi)容, 圖6是48bit前綴的段表和偏移量表表項(xiàng)的內(nèi)容。
具體實(shí)施例方式
路由査找時(shí),我們對(duì)并行框架中的4路同時(shí)進(jìn)行査找,然后由前綴長(zhǎng)度比 較器選出前綴最長(zhǎng)的一路對(duì)應(yīng)的Next Hop。其中,TCAM是硬件實(shí)現(xiàn)的,且TCAM 是根據(jù)前綴內(nèi)容直接進(jìn)行查找,査詢速度很快,不會(huì)對(duì)并行框架的整體的査詢 時(shí)間。我們重點(diǎn)闡述其他三路的路由査找過程。
下面對(duì)pref ix32這路進(jìn)行闡述,査詢過程如下
(1) 取目標(biāo)IP地址的17—32比特hl7—32(IP)做為索引,訪問段表對(duì)應(yīng)的 表項(xiàng);
(2) 査看該表項(xiàng)的第1比特(即最高位),若為0,則取出段表表項(xiàng)中存儲(chǔ) 的hl—16(prefix32),并取目標(biāo)IP的前16比特hi—16(IP),進(jìn)行比較,若相
7等,則讀取段表表項(xiàng)中存儲(chǔ)的Next H叩做為查詢結(jié)果,送前綴長(zhǎng)度比較器; 若不相等,則將O作為結(jié)果送前綴長(zhǎng)度比較器。
(3) 若段表表項(xiàng)的第1比特為1,則讀取段表表項(xiàng)中存儲(chǔ)的offjndex,并 取目標(biāo)IP的前16比特hi—16(IP),然后以如下公式計(jì)算hash:
hash = off—index * 16 + f( hl一16(IP))
再以此hash為索引去訪問偏移量表。若偏移量表對(duì)應(yīng)的表項(xiàng)不為空,則 取出該表項(xiàng)中存儲(chǔ)的hi—16(prefix32),并與hi—16(IP)進(jìn)行比較,若相等, 則讀取該表項(xiàng)中存儲(chǔ)的Next Hop做為査詢結(jié)果,送前綴長(zhǎng)度比較器;若不相 等,則將O作為結(jié)果送前綴長(zhǎng)度比較器。
(4) 前綴長(zhǎng)度比較器從并行的各個(gè)分路獲得前綴長(zhǎng)度和對(duì)應(yīng)的下一跳的 路由信息,除去Next Hop為零的分路后,選擇前綴長(zhǎng)度最長(zhǎng)的分路對(duì)應(yīng)的Next H叩做為查詢結(jié)果。路由査找結(jié)束。算法結(jié)束。
為了便于描述,我們使用prefix32, prefix35, prefix48分別表示長(zhǎng)度 為32, 35, 48的前綴。并稱前綴的最高位為第1位,使用hx—y(prefix32)表示 取長(zhǎng)度為32位的前綴的第x到第y位。
以prefix32為例,如圖3所示,該體系結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)主要是兩張表(段 表和偏移量表)。段表共有216=65536個(gè)表項(xiàng),以h17—32(prefix32)做為hash 函數(shù)(也就是段表的索引),我們使用段表表項(xiàng)的第1個(gè)比特(記為F)來標(biāo)識(shí) 是否有hash沖突發(fā)生,當(dāng)F為0,表示沒有沖突發(fā)生;當(dāng)F為1時(shí)表示有沖突 發(fā)生。
當(dāng)沒有沖突發(fā)生時(shí),段表以hl7—32(prefix32)為索引的表項(xiàng)中需要存儲(chǔ)為 了精確匹配前綴的hi—16(prefix32),若目標(biāo)IP的hi—16(IP)和段表表項(xiàng)中的 hi—16(prefix32)匹配,則說明找到了相應(yīng)的路由,需要獲取相應(yīng)的下一跳路 由信息,所以段表表項(xiàng)還要存儲(chǔ)下一跳的路由信息Next Hop。所以沒有沖突時(shí), 段表表項(xiàng)需要存儲(chǔ)以下內(nèi)容
(1) 標(biāo)識(shí)是否有沖突的標(biāo)志F=0;
(2) 為了精確匹配前綴的h1—16(prefix32);
(3) 下一跳的路由信息Next Hop。
當(dāng)有沖突發(fā)生時(shí),我們使用偏移量表來存儲(chǔ)段表中沖突的表項(xiàng),因此段表
8中要存儲(chǔ)偏移量表中對(duì)應(yīng)表項(xiàng)的索引,為了算法更新操作方便,我們還在段表 表項(xiàng)中存入對(duì)應(yīng)該表項(xiàng)的hash沖突數(shù)量。所以有沖突時(shí),段表表項(xiàng)需要存儲(chǔ) 以下內(nèi)容-
(1) 標(biāo)識(shí)是否有沖突的標(biāo)志F-1;
(2) 偏移量表中對(duì)應(yīng)表項(xiàng)的索引;
(3) 該表項(xiàng)的hash沖突數(shù)量。
偏移量表中存儲(chǔ)的是段表中有沖突時(shí)的表項(xiàng),存儲(chǔ)內(nèi)容與段表中沒有沖突 時(shí)的內(nèi)容類似,只是不需要存儲(chǔ)標(biāo)識(shí)F。所以偏移量表中需要存儲(chǔ)以下內(nèi)容-
(1) 為了精確匹配前綴的h1—16(prefix32);
(2) 下一跳的路由信息Next Hop。
pref ix32段表和偏移量表的存儲(chǔ)內(nèi)容如圖4所示。
前面我們都是以prefix32為例,對(duì)于prefix35和prefix48,算法的體系 結(jié)構(gòu)基本相同,所不同的只是段表的hash函數(shù),存儲(chǔ)內(nèi)容以及偏移量表的大 小和存儲(chǔ)內(nèi)容。
對(duì)prefix35段表的hash函數(shù)選擇h20—35(prefix35),共216=65536個(gè) 表項(xiàng)。對(duì)當(dāng)前IPv6路由表,我們給prefix35偏移量表分配了 21Q=1024個(gè)表 項(xiàng),段表和偏移量表表項(xiàng)的內(nèi)容如圖5所示。
對(duì)prefix48段表的hash函數(shù)選擇h33—48(prefix48),共216=65536個(gè) 表項(xiàng)。對(duì)當(dāng)前IPv6路由表,我們給prefix48偏移量表分配了2W-1024個(gè)表 項(xiàng),段表和偏移量表表項(xiàng)的內(nèi)容如圖6所示。
算法的hash函數(shù)的設(shè)計(jì)包括32, 35, 48三個(gè)分路的hash函數(shù)的設(shè)計(jì), 每個(gè)分路的hash函數(shù)的設(shè)計(jì)又包括段表的hash函數(shù)的設(shè)計(jì)和偏移量表的hash 函數(shù)的設(shè)計(jì)。
對(duì)于prefix32,我們以h17—32(prefix32)做為段表的hash函數(shù)(也就是 段表的索引),我們?cè)诙伪肀眄?xiàng)中存儲(chǔ)了偏移量表的索引off_index。偏移量表 的hash函數(shù)我們?cè)O(shè)計(jì)為
hash = off—index * 16 + f( hl一16(prefix32)) (公式1)
其中,函數(shù)f(y)定義如下/O) = (Cv & 0x兩0)》12)A((y & 0jc扁)》8)A(0 & 0滿)》4)A(> & 0x尸)
其中,&表示二進(jìn)制按位相與,"表示二進(jìn)制按位相異或。
所以,函數(shù)f(hi—16(prefix32))表示對(duì)hl一16(prefix32)即prefix32 的前16比特進(jìn)行4位間的異或操作。如f (0x2001)的結(jié)果為0x2'0x0"0x(T0xl =0x3。對(duì)于hl」6(prefix32)的9個(gè)不同值,使用hash函數(shù)f ()的計(jì)算結(jié)果 如下
f(0x2001) = 0x3; f(0x2002) = 0x0; f(0x2003) = Oxl;
f(0x2400) = 0x6; f(0x2404) = 0x2; f(0x2610) = 0x5;
f(0x2800) = OxA; f(0x2A01) = 0x9; f(0x3FFE) = OxD.
我們給pref ix32偏移量表分配了 213 = 8192個(gè)表項(xiàng),因?yàn)槎伪碇忻總€(gè)沖突 的表項(xiàng)在偏移量表中用16個(gè)表項(xiàng)來解決沖突,所以213個(gè)表項(xiàng)的偏移量表可以 解決213/16 = 512個(gè)段表沖突的表項(xiàng)。
對(duì)于prefix35,我們選取h20_35 (pref ix35)為段表的hash函數(shù)。在偏移 量表中用16個(gè)表項(xiàng)來存儲(chǔ)段表中沖突的選項(xiàng),以和prefix32保持一致。若有 沖突發(fā)生,直接使用off_indeX*16為索引來訪問偏移量表,偏移量表中的沖 突表項(xiàng)采用順序存儲(chǔ)的方式,
對(duì)于prefix48,我們選取h33—48(prefix48)為段表的hash函數(shù)。在偏移 量表中用也使用16個(gè)表項(xiàng)來存儲(chǔ)段表中沖突的選項(xiàng),以和prefix32保持一致。 偏移量表中的沖突表項(xiàng)也采用順序存儲(chǔ)。
在完成了 hash函數(shù)、前綴的段表和偏移量表的具體構(gòu)造后,就可以按照 技術(shù)方案中的查詢過程進(jìn)行路由的地址詢査。
10
權(quán)利要求
1.一種128位因特網(wǎng)地址并行高速路由尋址方法,其特征在于對(duì)路由尋址采用四路并行匹配方法,具體步驟為c)采用四路并行路由地址尋找框架,其中三路是由占了路由前綴長(zhǎng)度為32,35,48的前綴組成,第四路處理其他長(zhǎng)度的前綴尋址,路由尋址查找時(shí),對(duì)并行框架中的4路同時(shí)進(jìn)行查找,然后由前綴長(zhǎng)度比較器選出前綴最長(zhǎng)的一路對(duì)應(yīng)的下一跳;d)對(duì)每一路采用的尋址方法為;1)取目標(biāo)IP地址的17到32比特做為索引,記為h17_32(IP),訪問段表的對(duì)應(yīng)的表項(xiàng);2)查看該表項(xiàng)的最高位即第1比特,若為0,則取出段表表項(xiàng)中存儲(chǔ)的信息,并取目標(biāo)IP的前16比特,記為h1_16(IP),進(jìn)行比較,若相等,則讀取段表表項(xiàng)中存儲(chǔ)的下一跳信息做為查詢結(jié)果,送前綴長(zhǎng)度比較器;若不相等,則將0作為結(jié)果送前綴長(zhǎng)度比較器;3)若段表表項(xiàng)的第1比特為1,則讀取段表表項(xiàng)中存儲(chǔ)的信息,記為off_index,并取目標(biāo)IP的前16比特,按以下公式計(jì)算散列值,記為hashhash=off_index*16+f(h1_16(IP))然后以此hash為索引去訪問偏移量表,若偏移量表對(duì)應(yīng)的表項(xiàng)不為空,則取出該表項(xiàng)中存儲(chǔ)的信息,記為h1_16(prefix32),并與h1_16(IP)進(jìn)行比較,若相等,則讀取該表項(xiàng)中存儲(chǔ)的下一跳信息做為查詢結(jié)果,送前綴長(zhǎng)度比較器;若不相等,則將0作為結(jié)果送前綴長(zhǎng)度比較器;4)前綴長(zhǎng)度比較器從并行的各個(gè)分路獲得前綴長(zhǎng)度和對(duì)應(yīng)的下一跳的路由信息,除去下一跳為零的分路后,選擇前綴長(zhǎng)度最長(zhǎng)的分路對(duì)應(yīng)的下一跳做為查詢結(jié)果,路由尋址結(jié)束。
全文摘要
本發(fā)明設(shè)計(jì)了一種128位因特網(wǎng)地址(IPv6)的四路并行尋址方法,其中三路是由占了路由前綴數(shù)量90%以上的長(zhǎng)度為32,35,48的前綴組成,第四路處理除長(zhǎng)度為32,35,48外的其他前綴,采用硬件實(shí)現(xiàn)方法,其查詢速度很快,不會(huì)影響并行框架的整體性能。對(duì)于32,35,48三路,本文設(shè)計(jì)了段表加偏移量表的數(shù)據(jù)結(jié)構(gòu),并設(shè)計(jì)了相應(yīng)的hash函數(shù)。由于該三路只要考慮確定長(zhǎng)度的路由前綴,避免了最長(zhǎng)前綴匹配問題。該三路的路由查找只需要最多兩次的存儲(chǔ)器訪問操作,并且可以在常量時(shí)間內(nèi)實(shí)現(xiàn)路由更新,存儲(chǔ)器的需求不到1M bytes,且該需求受路由前綴數(shù)量的增加影響較小,該算法對(duì)未來路由尋址方法的發(fā)展具有良好的適應(yīng)性。
文檔編號(hào)H04L12/56GK101494603SQ200910028310
公開日2009年7月29日 申請(qǐng)日期2009年1月13日 優(yōu)先權(quán)日2009年1月13日
發(fā)明者李大偉, 庚 楊, 祁正華, 陳燕俐, 陳珊珊 申請(qǐng)人:南京郵電大學(xué)