TW468116B - High speed Internet protocol address lookups method for saving memory - Google Patents

High speed Internet protocol address lookups method for saving memory Download PDF

Info

Publication number
TW468116B
TW468116B TW088101917A TW88101917A TW468116B TW 468116 B TW468116 B TW 468116B TW 088101917 A TW088101917 A TW 088101917A TW 88101917 A TW88101917 A TW 88101917A TW 468116 B TW468116 B TW 468116B
Authority
TW
Taiwan
Prior art keywords
bit
internet protocol
address
protocol address
information table
Prior art date
Application number
TW088101917A
Other languages
English (en)
Inventor
Wen-Shian Chen
Jung-Ting Tsai
Original Assignee
Wen-Shian Chen
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wen-Shian Chen filed Critical Wen-Shian Chen
Priority to TW088101917A priority Critical patent/TW468116B/zh
Priority to US09/454,549 priority patent/US6658482B1/en
Application granted granted Critical
Publication of TW468116B publication Critical patent/TW468116B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Description

經濟部中央標準局貝工消費合作杜印製 6 8116 A7 ___ B7 五、發明説明(I ) 發明領域: 本發明係關於一種節省記憶體之快速找尋網際網路協 定位址(internet protocol address lookups (IP Lookups))之 方法,尤指利用建立適當的前置位元資訊表(Prefix Information Table (PIT))而有效地壓縮資料以達到可快速比 對找尋網際網路協定位址之方法。 發明背景: . 隨著網際網路的快速成長擴大、網路流量劇增、頻寬 的增加,使得路由器(router)中傳統的網際網路協定之找尋 速度已無法符合現今的要求。由於網際網路協定路由需要 對每個進入的封包(packet)做最長匹配前置位元(longest matching prefix)的尋找,並將其當作最佳匹配前置位元( B e s t M a t c h i n g P r e f i X (Β Μ P)),以求出此封包之輸出堤( output port)。習知技術所使用之方法的步驟較爲複雜且花 時間,因此路由器便成爲網路上的瓶頸。因此發明人首創 —種新穎的路徑尋找方法,可大量地提昇路由器中之位址 尋找速度=主要的技術思想在於首先建立一第m階之前置位 元資訊表及一第η階之前置位元資訊表,以適當地劃分若干 區域對應全部的網際網路協定位址:接著再將欲找尋的網 際網路協定位址與第m階之前置位元資訊表及第η階之前置 位元資訊表作比對,以定出目標位址之區域,找出網際網 路協定位址之確實目標位址,或找出特定的網際網路協定 位址找尋表(Lookup Table(LT));及最後將欲找尋的網際網 路協定位址與該特定的網際網路協定位址找尋表作比對| (請先聞讀背面之注$項—¾寫本Ϊ) .裝_ 訂 本纸張尺度適用中國國家標準(CNS ) A4規格< 210X297公釐) -4- 經濟部中央標準局貝工消費合作社印製 4681 1 6 A7 B7 五、發明説明έ ) 以正確地定出最佳匹配前置位元,找到確實的目的埠β本 發明之構想係利用二分法的技術將IPv4的3 2-位元之最佳匹 配前置位元範圍縮小,再用此範圍中展開的位址找尋表對 應找到其BMP。利用此種方法最多只需1次雜湊(hash)程序 加2次的記憶體存取,而在一個41,000路由表目(routing entries)的IPv4網路主幹路由器(backbone router)上之平均次 數則爲0.53次雜湊程序加1.4次記憶體存取;以50ns的動態 存取記憶體(DRAM)來做評估.,則網際網路協定位址找尋的 .速度可達每秒10百萬封包(million packets per second):若 以5ns的同步動態存取記憶體(SDRAM)來做評估,則網際網 路協定找尋的速度可達每秒100百萬封包。若未來記憶體的 速度越來越快,網際網路協定找尋的速度也會隨之增進。 此外,依據本發明之方法,更新位址的過程簡單且額外負擔 _很小,供查詢的轉送表(forwarding table)也只需0.6MB左右 ,將有效解決習知網際網路協定找尋所發生之問題。 習知技術之相關敘述: 最原始傳統的網際網路協定找尋方法是將前置位元依 照其長度的不同分別存放在不同的雜湊表(hash tables)中, 當封包進來要找目標網際網路協定位址的最長匹配前置位 元時,就從長度(length)由長至短的前置位元雜湊表(prefix hash table)來做雜湊程序,直到找到符合的前置位元爲止, 因此最壞的情況下網際網路協定找尋要做32次的雜湊才能 完成,此方法也就是傳統檢索樹(Trie)[2][.6]之路由找尋, (请先閲讀背面之注意事項—4V寫本頁) -裝-
、1T 本紙張尺度適用中國國家標準(CNS ) Α4祝格(2Ι0Χ29<7公釐) -5- 經濟部中央標準局員工消費合作社印裝 46 8116 A7 B7 五、發明説明备) 如第1圖所示β 此方法在最壞的情況下必須做32次的雜湊程序,在一 般的情形中亦需要十幾次的雜湊程序,這樣的網際網路協 定找尋速度並無法符合現今路由器之需求。 另一種習知技術爲可擴展式的高速網際網路協定路由 找尋(Scalable High Speed IP Routing Lookups),由Μ. Waldvogel,G. Varghese,J. Turner.與 B. Plattner 所提出來 的網際網路協定路由找尋之方法,此演算法以傳統的檢索 樹之架構,將所有前置位元網際網路協定位址依照前置位 元長度之不同,用雜湊表存放在樹狀結構的每一層中,並 根據前置位元長度使用二元搜尋法(bin ary search)來搜尋樹 狀結構上的雜湊表,以找尋最長匹配前置位元,如圖2所示 。再加上配合轉變的二元搜尋法(Mutating Binary Search)與 其他最佳化的方法,來減少存取記憶體的次數,改善網際 網路協定路由找尋的速度,達到提昇整體網路效率之目的 〇 此方法之運作原理如下。將所有的標記(markers)加入 於前置位元雜湊表中。亦即把較長的前置位元之前面η位元 加入長度爲η的較短前置位元之雜湊表中當作標記,以用來 指示二元搜尋時搜尋的方向。利用二元搜尋法由樹狀結構 的中間層(median level)開始搜尋,若此層的雜湊表中找不 到前置位元表目(entry),則向上半部的樹搜尋;否則,就 可找到前置位元表目。若此前置位元表目爲標記,則將前 置位元表目當作目前的最佳匹配前置位元,並繼續向下半 本紙張尺度適用中國國家標準(CNS ) A4祝格(210 X 297公釐) -6- {請先閲讀背面之注意事項#--4寫本頁) -裝. 訂 經濟部中央標隼局負工消費合作社印製 4 6 8116 at B7 五、發明説明4 ) 部的樹搜尋;若此前置位元表目並非標記’則找到最長的 .前置位元,把前置位元表目當作最佳匹配前置位元並結束 搜尋。重複前述步驟,不斷地進行直到找到最長的前置位 元爲止。此外,改善此法效能的可行步驟爲使用轉變的二 元搜尋法來減少搜尋的次數,亦即當我們移動到一個新的 點作搜尋時,我們只需搜尋此點向下的子樹(subtree) » 在此演算法中,路由表的大小與網際網路協定找尋的 次數無關,且存取記憶體的次數與網際網路協定的長度成2 的對數關係,因此對IPv6有很好的支援。此方法之網際網 路協定位址找尋的平均次數爲2次雜湊程序,最多次數則爲 log2(位址位元)次,因IPv4之位址長度爲32位元,所以最多 次數就爲5次雜湊程序,雖然在網際網路協定找尋的速度方 面有不錯的改善,但因其資料結構的龐雜與繁瑣,導致路 由表中的新增或刪除較爲複雜,必須藉由重建.新的路由表 來完成,而且重建路由表所花費的時間相當長。 另一種習知方法是由史丹佛大學之Pankaj Gupta,
Steven Lin與Nick McKeown所提出來的網際網路協定找尋之 方法,.希望能藉由硬體的環境實作高速的最長前置位元匹 配之方式'來達到十億位元(gigabit)的速度。此方法將網際網 路協定位址分成前24-位元與後8-位元兩部分,前24-位元全 部展開成一個TBL24表,儲存所有長度小於等於24位元的所 有可能的前置位元,TBL24表中的表目第一個位元爲〇,表 不其餘15個位元是用來指出下一站的資訊。第一個位元爲1 ,表示其餘15個位元爲指向後8-位元TBLlong的指標。 本紙張尺度適用中國國家橾準(CNS ) A4辑^ ( 210X297公釐) (請先閲讀背面之注意事窝本頁) -裝. -訂 6 4 81 1 6 a7 __ B7____ 五、發明説明台) TBLlong表儲存所有長度大於24位元的所有可能的前置位元 -,其網際網路協定找尋的過程如第3圖所示° (請先閲讀背面之注意事項-ft--ck本頁) 此方法之記億體存取的平均次數約爲1次(實際上略比1 次多),最多次數則爲2次,雖然其網際網路協定找尋的速 度十分快,但此架構需花費3 3 Μ B (百萬位元組)的動態存取 記憶體來存放整個資料結構,在記憶體的使用上非常沒有 效率,對未來網際網路協定位址擴充到128位元時並無法做 有效的支援,且不適合以分散的方式來實作。 發明節要: 本發明之目的在於提供一種節省記憶體之快速找尋網 際網路協定位址之方法,具有以下的特性:網際網路協定 找尋所用的記憶體存取次數能越少越好,且最壞的情形下 之存取次數能限制在某個範圍內,以提高網際網路協定找 尋的速度:同時在記憶體存取時能允許管線化(pipelined)的 進行;資料結構所需的記憶體容量能較爲合理,越少越好 ;此外,資料結構本身能越簡單越好,便其建立與更新時 經濟部中央標準局員工消費合作社印裝 的額外負擔能減低;更新的步驟與額外負擔亦是越低越好 <} 依據本發明的一個觀點’提供一種節省記憶體之快速 找尋網際網路協定位址之方法,包含以下步驟:建立—第m 階之前置位元資訊表及一第η階之前置位元資訊表,以適當 地劃分若干區域對應全部的網際網路協定位址;將欲找尋 的網際網路協定位址與第m階之前置位元資訊表及第^階之 本紙^尺度適用中國國家標準(匚阳)八4規格(2【0父297公釐) 'Γ 經濟部中央標準局員工消費合作杜印製 46 81 1 6 αί Α7 Β7 五、發明説明$ ) 前置位元資訊表作比對,以定出目標位址之區域,找出網 •際網路協定位址之確實目標位址,或找出特定的網際網路 協定位址找尋表;及將欲找尋的網際網路協定位址與特定 的網際網路協定位址找尋表作比對,以正確地定出最佳匹 配前置位元,找到確實的目的埠,其中第m階之前置位元資 訊表中的資料包含至少四種資訊:m位元的表目辨識碼、1 位元的方向辨.識碼、1位元的前置位元辨識碼與丨4位元的指 標(pointer);且第η階之前置位元資訊表中的資料包含至少 四種資訊:η位元的表目辨識碼' 1位元的方向辨識碼、1位 元的前置位元辨識碼與1 4位元的指標。而網際網路協定位 址找尋表中則存放輸出埠,可利用部分的網際網路協定位 址當索引,以對應找出正確的輸出埠。 依據本發明的另一個觀點,提供一種節省記憶體之快 速找尋網際網路協定位址之方法,包含以下步驟··建立第 mi、πη、、、mi階之前置位元資訊表(共i個前置位元資訊表 ),以適當地劃分若干區域對應全部的網際網路協定位址: 將欲找尋的網際網路協定位址與第nn、、、m:階之前 置位元資訊表作比對,以定出目標位址之區域,找出網際 網路協定位址之確實目標位址,或找出特定的網際網路協 定位址找尋表;及將欲找尋的網際網路協定位址與該特定 的網際網路協定位址找尋表作比對,以正確地.定出最佳匹 配前置位元,找到確實的目的埠,其中第mi階之前置位元 資訊表中的資料包含至少四種資訊:mi位元的表目辨識碼 ' 1位元的方向辨識碼、1位元的前置位元辨識碼與1 4位元 0¾ - Λ/ (請先閲讀背面之注$項頁) -^-°
本紙張尺度適用中國國家標準(CNS ) A4祝格(2 [ 0 X 297公釐) _g _ 經濟部中央標準局貝工消費合作社印製 46 8116 A7 _ B7 *圓__________ . _____________ 五、發明説明f ) 的指檩。 圖形之簡要敘述: 參見以下之附圖連同較佳實施例之詳細敘述,將可明 顯看出本發明之其它優點與特徵。 第1圖是一圖形,指出傳統的路由表找尋方法。 第2圖是一圖形,指出在檢索樹上作二元搜尋之另一種 習知方法。 第3圖是一圖形,指出以硬體中的記憶體存取來加速路 由找尋之習知方法。 第4圖是一圖形,用於說明前置位元樹分層之架構圖。 第5圖是一圖形,指出本發明之三層的資料結構。 第6 A圖是一圖形,指出1 = 0時之前置位元資訊表表目格 式;而第6B圖屋一圖形,指出1=1時之前置位元資訊表表目 格式。 第7圖指出二元子樹與例如在24,64.1的節點處之1^-8(24 )的對應關係》 第8圖是一圖形,用於說明依據本發明之整體處理過程 〇 第9圖是實際範例之說明圖。 較佳實施例之詳細敘述: 本發明所提出的方法是建立在前置位元樹的架構上, 並結合區域分割的技術來減少所需儲存之資料結構,以達 (請先閣讀背面之注意事項ί寫本頁) •裝· 訂 本紙張尺度適用中國國家標準(CNS ) Α4祝格(210Χ297公釐) -10 - 經濟部中央標準扃貝工消費合作社印策 46 8116 a? __B7 _ 五、發明説明$ ) 到減少空間的效果。想法是在路由表目的前置位元二元樹 •上利用二分法,將最佳匹配前置位元的搜尋之可能區域由 原先32-位元縮小到較小的範圍:高度爲8或16-位元的子樹 ,再進入此範圍內找到所要求的最佳匹配前置位元的輸出 .埠,其架構如第4圖所示。因此所需要的資料結構包含二分 法時判別方向與區域的前置位元資訊,與確定範圍後子樹 內之網際網路協定位址和輸出埠的對應表。而唯有在此子 樹範圍內有兩個以上不同的輸出璋資訊時,才需要存在網 際網路協定位址與輸出埠的對應表,亦即位址找尋表,否 則就把單一的輸出埠資訊附在前置位元資訊中即可,如此 一來便可大量縮減轉送表(forwarding tables)的大小,但同 時亦保有二元搜尋的優點,且因爲不需每層都存放前置位 元資訊,也大大減少位址更新時的複雜度,使轉送表的更 新更爲快速方便且額外負擔更小。. 今曰路由器之資料庫中存放許多路由前置位元,我們 必須利用這些前置位元來建立路徑選擇時所需用到的轉送 表g在本發明中,發明人將前置位元二π樹分成三部分: 高度爲0-16(高度0代表根節點(root))、高度17-24、高度25-32_,如第5圖所示。本發明使用到兩種資料結構,一是前置 位元資訊表,其存放適當的前置位元資訊以提供二分法時 方向的指示與提供部份的輸出埠資訊,在高度爲16與24處 各有一個前置位元資訊表,分別爲PIT-16與PIT-24;另一個 則是位址找尋表,其提供二分法後所屬區域範圍內之子樹 其位址與輸出埠的對應表。 (請先閲讀背面之注意事項一iik窝本頁) 裝. 本紙張尺度適用中國國家標準(CNS ) A4祝格(210X 297公釐) -11 - 4 6 81 1 § A7 B7 經濟部中央標準局負工消費合作社印裝 五、發明説明6 ) 目[J置位元資訊表: 如前文所提,我們將前置位元二元樹分成三部分:高 度爲0-16、高度17-24、高度25-32。在高度爲16與24處各有 —個前置位元資訊表,分別爲PIT-16與PIT-24。以PIT-16爲 例:取長度大於或等於16之前置位元的前16位元,存入PIT- 16中。pit-16中記載的資訊至少包、含有16位元的表目辨識碼 · · · 、1位元的方向辨識碼、1位元的前置位元辨識礙與14位元 ...... ........ _ 的指標,其中表目可分爲三大類: --一 - (1) 純前置位元(X):前置位元長度爲16之前置位元·在PIT-16 中所形成的表目,以1 = 0及P=1來表示,1 = 0意指已經沒有更 長匹配的前置位元,亦即表目號碼爲所要的最佳匹配前置 位元,P=1意指表目號碼爲前置位元本身,此時指標爲此前 置位元的輸出埠。 (2) 純標記(M):前置位元長度大·於16之前置位元,取前16位 元在PIT-16中形成的表目,其前16位元均相同的前置位元只.. 需用一個表目來表示即可。此表目本身年不是一個前置位 元而只是一個標:記,以Id及P = 0來表示,1=1意指可能有更 長匹配之前置位元,必須繼續進行下一·個找尋步驟,_P = 〇意 指表目號碼本身不是前置位元,此時指標指向一個位址找 尋表的索引資.訊。 (3) 既是前置位元又是標記(XM):前置位元長度爲16及前置 位元長度大於16之前置位元共同在ρπμ 6中所形成的表目, 其前16位元均相同,此時本身既是一個前置位元又是一個 (請先閲讀背面之注意事項b 4寫4頁) -裝. 、?τ
0T 本紙浪尺度適用中國國家標準(CNS )八4祝格(2!0Χ297公董) -12- 4 68118 經濟部中央標準局員工消費合作社印製 A7 B7 五、發明説明彳0 ) ' 標記’以1=1及P=1來表示,1=1意指可能有更長匹配之前置 位元,必須繼續進行下一個找尋步驟,p=l意指表目號碼本 身是前置位元,此時指標爲指向一個位址找尋表的索引資 訊-。 在此必須注意PIT-1 6中所記載的資訊是代表一種前置位 元的註記,代表著此表目爲起始向下的子樹中還有更長的 前置位元存在,因此當多個前置位元之前16位元均相同時 、在PIT-16中只需用一個表目來表示即可。若此表目本身爲 前置位元且有長度大於16之前置位元的前16位元和此表目 相同,則此表目同時代表了前置位元與標記在第1 6層上的 註記。在PIT-24的情形亦相同。
V 當pit中1=0時,標記即存放代表輸出埠控!訊;若j=i 表示可能有更長匹配之前置位元,此時必須進行下一個 步驟以找尋最佳匹配前置位元,指標即存放特定位址找尋 表之索引資訊》P是用來表示此表目本身是否爲前置位元, 有.P = l則表示此表目本身是前置位元,反之若P = 0則表示此 表目本身不是前置位元。1 PIT-24之建立方法與PIT-16相同,但其存放的是長度大 於或等於24之前置位元。取長度大於或等於24之前置位元 的前24位元,存入PIT-24中。PIT-24中記載的資訊至少包含 有24位元的表目辨識碼、1位元的方向辨識碼、1位元的前 置位元辨識碼與i4位元的指標,其中表目可分爲三大類: (1)純前置位元(X):前置位元長度爲24之前置位元在PIT-24 中所形成的表目,以1 = 0及P=i來表示,1 = 0意指已經沒有更 本紙張尺度適用中國國家標準(CNS ) A#見格(2 i Ο X 297公釐) -13- II. .^ϋ I- . I —II.....I II - - -.— - 「, (請先閎讀背面之注意事項#-,%.寫本頁) -訂 46 8116 A7 B7 五、發明説明彳1 ) 長匹配的前置位元,,亦即表目號碼爲所要的網際網路協定 •位址,P= 1意指表目號碼爲前置位元本身,此時指標爲此前 置位元的輸出埠。 (2) 純標記(M):前置位元長度大於24之前置位元在PIT-24中 形成的表目,其前24位元均相同的前置位元只需用一個表 目來表示即可。此時表目本身並不是一個前置位元而只是 —個標記,以1=1及P = 0來表示,1=.1意指可能有更長匹配之 前置位元,必須繼續進行下一個找尋步驟,P = 0意指表目號 碼本身不是前置位元,此時指標爲指向位址找尋表的索引 資訊。 (3) 既是前置位元又是標記(XM):前置位元長度爲24及前置 位元長度大於24之前置位元共同在PIT-24中所形成的表目, 其前24位元均相同,但本身既是一個前置位元又是一個標 記,以1=1及P=1來表示,1=1意指可能有更長匹配之前置位 元,必須繼續進行下一個找尋步驟,P=1意指表目號碼本身 是前置位元,此時標記爲指向一個位址找尋表的索引資訊 ( 〇 參見第6A與6B圖,分別指出1 = 0與1=1時的前置位元資 訊表的表目格式。當我們要找尋某一個表目是否在前置位 元資訊ϋ中時,我們使用雜湊的技術來做比對。須注意前 置位元資訊表的表目格式中之I爲1位元的方向辨識碼,用 於表示是否還有更長匹配之前置位元,而前置位元資訊表 的表目格式中之Ρ爲1位元的前置位元辨識碼,用於表示表 目本身是否爲前置位元。 本紙浪尺度適用中國國家揉率(CNS > Α4規格(210X297公釐) .λα . — ---------裝-- (請先閱讀背面之注意事項#-1寫本頁) 訂 經濟部中央標準局員工消費合作社印装 經濟部中央標準局貝工消費合作社印製 A7 B7 五、發明説明彳2 ) -位址找尋表: &本#明的一個較佳實施例中所使用的位址找尋表依 第5圖之三層的資料結構可區分爲以下三種,須注意LT_i(j) 中的i表示此位址找尋表在樹狀結構中涵蓋範圍的高度而j表 示找尋表係從位階之高度爲j之處開始往下: (1) LT-15(0):將二元前置位元樹中.長度爲〇至15的所有可能 路徑抉擇(亦即所有可能位址)與輸出璋的對應列在一個表中 ’換句話說將第5圖中的第一層內所有網際網路協定位址的 比對資料均列於一個LT-15(0)中。 (2) LT-7(16):將二元前置位元樹中長度爲16至23的所有可能 路徑抉擇與輸出埠的對應列在一個表中,換句話說將第5圖 中的第二層內所有網際網路協定位址的比對資料列於若干 個 LT-7(16)中。 (3) LT-8(24):將二元前置位元樹中長度爲24至32的所有可能 路徑抉擇與輸出埠的對應列在一個表中,換句話說將第5圖 中的第二層內所有網際網路協定位址的比對資料列於若千 個 LT-8(24)中。 參見第7圖,指出二元子樹與例如在24.64.1的節點處之 LT-8(24)的對應關係 > 其中24.64.1.0至24.64.1.191之前置位 元均指向代表輸出埠號碼之A,而24.64.1.1 92至24.64.1.255 之前置位元均指向代表輸出埠號碼之B。 網際網路協定找尋的步驟: 本紙張尺度適用中國國家標準(CNS ) A4祝格(210X297公釐) _ - (請先閲讀背面之注意事項^^寫本頁) -裝· -訂- 46 81 1 6 A7 B7 經潦部中央標準局貝工消費合作社印裝 五、發明説明纟3 ) 當一個封包進入時,我們利用此封包之目標位址( •destination address (DA))來進行下面路徑選擇的步驟: 假設DA之32位元編號爲0~31,取網際網路協定之DA的 前16位元與PIT-16中的表目號碼利用雜湊的技術做比對。若 前置位元與PIT-16中的表目號碼不符,則表示網際網路協定 位址的前置位元數目小於1 6,於是找尋步驟回到位址找尋 表LT-15(0),以DA的前15位元當索引進入位址找尋表LT-15( 0),找到確實的輸出璋號碼,.結束搜尋。 若前置位元與PIT-16中的表目號碼相符,則表示網際網 路協定位址的前置位元數目大於或等於16。接著比對I之値 若1 = 0表7K找到BMP’.亦即指標爲輸出卑號碼,結束搜尋 〇 若1=丨表示此時必須繼續往下找。接著取網際網路協定 之DA的前24位元與PIT-24中的表目號碼利用雜湊的技術做 比對。若前置位元與PIT-24中的表目號碼不符,則表示網際 網路協定位址係位於第5圖之資料結構的第二層內,意指網 際網路協定位址的最長匹配前置位元之長度係介於16與23 之間,於是找尋步驟回到原先PIT-16中指標指向的位址找尋 表LT-7(16),以DA的第16至22位元當索引進入位址找尋表 LT-7(16)’找到確實的輸出淳號碼,結束搜尋。 若前置位元與PIT-24中的表目號碼相符,則表示網際網 路協定位址的前置位元數目,大於或等於24。接著比對I之値 ,若1 = 0表示找到BMP,亦即指標爲輸出埠號碼,結束搜尋 (請先閲讀背面之注意事項 寫本頁) -裝. 訂 本紙張尺度適用中國國家標準(CNS ) Α4祝格(210X297公釐) -16- 4 6 8116 A7 B7 經濟部中央標隼局員工消費合作社印製 五、發明説明纟4 ) 若1= 1表示此時必須繼續往下找。換句話說,此時網際 '網路協定位址係位於第5圖之資料結構的第三層內I意指網 際網路協定位址的最長匹配前置位元之長度係介於24與32 之間,於是找尋步驟進行至指標所指向的位址找尋表LT-8( 24),進行前置位元與以DA的第24至31位元當索引進入位址 找尋表LT-8X24),找到確實的輸出埠號碼,結束搜尋。 依據本發明,例如使用下面的找尋比對功能之演算法 則來做輸出埠的搜尋。 Function LookupSearch(DA) (^search for address DA*) Extract the first 16 bits of DA into DA_16; M_16 := Search(DA_1 6, PIT-1 6.hash); (^search hash for DA_16*)If M_16 is not nil and = 0 Then BMP_OutputPort : = M_ 1 6.Ptr; Elseif M„16 is not nil and M_16.I = 1 Then Extract the first 24 bits of DA into DA_24; M_24 := Search(DA_24, PIT-24.hash); If M_24 is not nil and M_24.Ptr is a output port Then BMP_OutputPort := M_24.Ptr; Elseif M_24 is not nil and M_24.Ptr is not a output p ort Then Extract the 24-31 bit of DA into DA_8; BMP.OutputPort := LT-8[M_24. Ptr] [D A_8];. Else (*M_24 is nil*) I---------1II (請先閲讀背面之注意事項P寫本頁)
tT
,¼. -J 本紙張尺度適用中國國家棲準(CNS ) A4祝格(21 OX297公釐) -17
4 6 B] 1 B A7 B7 經濟部中夬棣準局員工消资合作社印袈 五、發明説明牦)
If M_16.Ptr is a output port Then BMP_OutputPort := M_16.Ptr;
Else
Extract the 16-22 bit of DA into DA_7; BMP_OutputPort := LT-7 [M_l 6.Ptr] [DA_7];
Endif
Endif
Else (*M_16 is nil*)
Extract the first 15 bits of DA into DA_15; BMP_〇utputPort := LT-15 [D 15]; 由於上面所提出的架構都使用了雜湊的方法,若雜湊 程序發生碰撞時,就必須做一次以上的記憶體存取。爲了 避免這樣的情彤發生,我們便將PIT-16以表目位址全部展開 的方式來取代原本的雜湊表,希望能將雜湊程序所需的次 數降至最低。所以由上面的方法可知,在最壞的情況下, 第一次搜尋PIT-1 6 *找到且1= 1再第二次用雜湊程序搜尋PIT -24 ’若沒有同時找到輸出埠則必須第三次搜尋lt-7( 16)或 LT-8(24) ’在此《形下必須做1次雜湊程序與2次的記憶體存 取才能找到輸出埠。所以使用本發明之快速找尋網際網路 協定位址之方法,在最差的情形下會需要1次雜湊程序與2 次的記憶體存取。. 爲了方便瞭解本發明之整體處理過程,以第8圖之圖形 來做說明。 本紙張尺度適用中國國家標準(CNS ) A4^格(210X297公釐) (請先閱讀背面之注意事項寫本瓦) 裝· 4 6 81 1 a A7 B7 經濟部中央標準局貝工消費合作杜印裝 五、發明説明彳6 ) 第9圓爲實際範例之網際網路位址找尋說明。下面以此 •圖配合實際範例來說明找尋的過程。 假設下面幾個前置位元已存在路由表中:20.92.32/24 ' 20.92.32.192 /26' 24.64/16' 24.64.192/20' 24.64.128/24 。此時ΡΙΊΜ6中存有"20.92"之表目其P = 〇、I. = 1,與 "24.64”之表目其P = 1、I = 1,其中"24.64”的指標指向一 個LT-7(16) ’且LT-7(16)中之索引9.6~1ΰ3的輸出埠均存放前 置位元”24.64.192"之輸出埠Β,”20.92”的指標也指向一個, LT-7(1 6),不過爲簡化說明起見,圖中並沒有詳細描述其內 容:ΡΙΤ-24中存有 ”24,64.128’1 Ρ=1、Ι = 0 之表目,與 ”20.92.32”且Ρ = 1、Ϊ = 1之表目,其中”20.92.32”的指標指 向一個LT-8(24),且LT-8 (24)中之索弓丨192〜255的輸出璋均存 放前置位元"20.92.32.192”之輸出埠D。 假設一個封包進入,其DA爲20.92.32.194,第一次尋找 時我們取DA的前16-bit “20.92-,用雜湊的技術與ΡΙΤ-16的 表目號碼做比對,此時發現PIT-16中有"20.92”的表目且其I =1,表示间下可能還有更長匹配的前置位元,因此向下搜 尋 PIT-24,取 DA 的前 24-bit ”20‘.92.32”與?11:-24中的表目編 號利用雜湊的技術做比對,發現PIT-24中有”20.92.32”的表 目且其I = 1、指標中存指向LT-8(2 4)的索引,表示向下可 能還有更長匹配的前置位元,於是我們利用此指標找到屬 於"20.92.32”的1^-8(24),此時拿〇八的第24~311^“194”當 索引,在L.T-8(24)中對應到輸出埠D,即爲所求。 如果另一個封包進入,其DA爲24.64.1 96.1 54,第一次 請 先 閲 之 注 項 P 未 頁 裝 訂 本紙張尺度適用中國國家標準(CNS ) A4規格(2丨0X297公釐) -19- 4β81 1 β Α7 Β7 五、發明説明彳7 ) 尋找時我們取DA的前16-bit “24.64”,用雜湊的技術與PIT--16的表目編號做比對,此時發現PIT-16中有”24.64"的表目且 其I = 1,表示向下可能還有更長匹配的前置位元,因此向 下搜尋PIT-24,取DA的前24-bit ’'24.64.1 96”與卩1下-24中的表 目編號利用雜湊的技術做比對1結果並沒有找到"24.64.196" 的表目,表示BMP可能落於長度16~2 3.的前置位元中,因此 取先前PIT-16中之指標,找到屬於”24.64”的LT-7(16),此時 拿DA的第16〜22位元之“97”當.索引,在LT-7(16)中對應到輸 出埠B,即爲所求。 最後,我們再假設有一個封包進入,其DA爲24.64.128. 154,第一次尋找時我們取DA的前i6位元“24.64”,用雜湊的 技術與PIT-16的表目編號做比對,此時發現PIT-16中有 ”24.64"的表目且其I = 1,表示向下可能還有更長匹配的前 置位元,因此向下搜尋PIT-24,取DA的前24-bit "24.64.128·’ 與PIT-24中的表目位元利用雜湊的技術做比對,結果找到 ”24.64.128”這個表目且 I = 0,表示 BMP即爲 ”24.64.128·’,此 時指標·中所存放的輸出埠Η即爲所求。 經濟部中央標準局貝工消費合作社印裝 (請先閲讀背面之注意事項寫本頁) 以上已敘述了應用本發明的一個實施例,但本發明之 應甩並不限於此。例如,本發明之技術思想亦可應用於將 來128位元的網際網路協定位址之找尋。依據本發明的另一 個觀點之快速找尋網際網路協定位址之方法,包含以下步 驟:建立第mi、m2、、、mi階之前置位元資訊表(共i個前置 位元資訊表),以適當地劃分若干區域對應全部的網際網路 協定位址;將欲找尋的網際網路協定位址與第m,、m2、、 本紙張尺度適用中國國家標準(CNS ) A4祝格(210X297公釐) _ 2〇 81 1 β Α7 Β7 五、發明説明彳δ ) 、mi階之前置位元資訊表作比對,以定出目標位址之區域 ',找出網際網路協定位址之確實目標位址’或找出特定的 網際網路協定位址找尋表;及將欲找尋的網際網路協定位 址與該特定的網際網路協定位址找尋表作比對’以正確地 定出最佳匹配前置位元,找到確實的目的埠,其中第i階 之前置位元資訊表中的資料包含至少四種資訊:mi位元的 表目辨識碼' 1位元的方向辨識碼.、1位元的前置位元辨識 碼與14位元的指標。 雖然以上已針對本發明之實施例加以敘述,對熟於此 技對者而言,在不偏離本發明之精神與範圍下,可容易地 想到其它的修改。因此’以如下之申請專利範圍來界定本 案所欲請求之範圍。 (請先閱讀背面之注意事項^¾^本頁) 經濟部中央標準局貝工消費合作杜印製 -21 - 本紙張尺度適用中國國家標準(CNS ) A4祝格(210X297公釐)

Claims (1)

  1. B8 C8 D8 鲤濟部中央標準局貞工消费合作社印策 4 6 81 1 ^ 々、申請專利範圍 1、 一種節省記憶體之快速找尋網際網路協定位址之方 法,包含以下步驟: 建立一第m階之前置位元資訊表及一第η階之前置位元 資訊表,以適當地劃分若干區域對應全部的網際網路協定 位址; 將欲找尋的網際網路協定位址與該第m階之前置位元資 訊表及該第η階之前置位元資訊表作比對,以定出目標位址 之區域,找出網際網路協定位址之確實目標位址,或找出 特定的網際網路協定位址找尋表:及 將欲找尋的網際網路協定位址與該特定的網際網路協 定位址找尋表作比對,以正確地定出最佳匹配前置位元, 找到確實的目的埠。 2、 如申請專利範圍第1項之節省記億體之快速找尋網 際網路協定位址之方法,其中該第m階之前置位元資訊表中 的資料包含至少四種資訊:m位元的表目辨識碼、1位元的 方向辨識碼、1位元的前置位元辨識碼與14位元的指標:且 該第η階之前置位元資訊表中的資料包含至少三種資訊:η 位元的表目辨識碼、1位元的方向辨識碼、1位元的前置位 元辨識碼與丨4位元的指標。 3、 如申請專利範圍第2項之節省記憶體之快速找尋網 際網路協定位址之方法’其中m爲16且η爲24 » ‘ 4、 一種節省記憶體之快速找尋網際網路協定位址之方 法,包含以下步驟: 建立第im'nu、、、m,階之前置位元資訊表(共i個前置 本紙張尺度逋用中圃圃家搮準(CNS ) A4規格(210x297公釐) -22- - 03 (请先閲讀背面之注意事項寫本頁) 每;
    AS B8 CS D8 46 81 六、申請專利範圍 位元資訊表),以適當地劃分若干區域對應全部的網際網路 -協定位址; 將欲找尋的網際網路協定位址與該第nn、m2 '、、m·· 階之前置位元資訊表作比對,以定出目標位址之區域,找 出網際網路協定位址之確實目標位址,或找出特定的網際 網路協定位址找尋表;及 將欲找尋的網際網路協定位址與該特定的網際網路協 定位址找尋表作比對,以正確地定出最佳匹配前置位元, 找到確實的目的埠。 5、如申請專利範圍第4項之節省記憶體之快速找尋網 際網路協定位址之方法,其中該第mi階之前置位元資訊表 中的資料包含至少四種資訊:mi元的表目辨識碼、1位元 的方向辨識碼、1位元的前置位元辨識碼與14位元的指標 I--------1-- !-S (請先E讀背面之注意事項14寫本頁) 訂 1線- Nly 經濟部中夬榡準局負工消費合作社印裝 本紙張尺度適用中國國家梯準(CNS ) A4規格(210X297公釐) _ 23 -
TW088101917A 1999-02-08 1999-02-08 High speed Internet protocol address lookups method for saving memory TW468116B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW088101917A TW468116B (en) 1999-02-08 1999-02-08 High speed Internet protocol address lookups method for saving memory
US09/454,549 US6658482B1 (en) 1999-02-08 1999-12-07 Method for speeding up internet protocol address lookups with efficient use of memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW088101917A TW468116B (en) 1999-02-08 1999-02-08 High speed Internet protocol address lookups method for saving memory

Publications (1)

Publication Number Publication Date
TW468116B true TW468116B (en) 2001-12-11

Family

ID=21639646

Family Applications (1)

Application Number Title Priority Date Filing Date
TW088101917A TW468116B (en) 1999-02-08 1999-02-08 High speed Internet protocol address lookups method for saving memory

Country Status (2)

Country Link
US (1) US6658482B1 (zh)
TW (1) TW468116B (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3391316B2 (ja) * 1999-10-22 2003-03-31 日本電気株式会社 ネットワークシステム
EP1250779A2 (en) * 1999-12-10 2002-10-23 Mosaid Technologies Incorporated Method and apparatus for longest match address lookup
US6778539B1 (en) * 2000-03-07 2004-08-17 Sun Microsystems, Inc. Multilevel table routing
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US6826561B2 (en) 2000-05-22 2004-11-30 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
US6880064B1 (en) * 2000-06-21 2005-04-12 Mosaid Technologies, Inc. Method and apparatus for physical width expansion of a longest prefix match lookup table
US7111071B1 (en) * 2000-06-29 2006-09-19 Intel Corporation Longest prefix match for IP routers
US6851000B2 (en) * 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
US6888838B1 (en) * 2000-11-16 2005-05-03 Tensilica, Inc. Fast IP route lookup with configurable processor and compressed routing table
US7274697B2 (en) * 2000-11-16 2007-09-25 Tensilica, Inc. Fast IP route lookup with 16/K and 16/Kc compressed data structures
US20020129149A1 (en) * 2001-03-06 2002-09-12 Kenneth Schulz Method and system for automatically directing a web user to a selected web server
US7227842B1 (en) * 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
US7002965B1 (en) * 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
US7106740B1 (en) * 2002-01-02 2006-09-12 Juniper Networks, Inc. Nexthop to a forwarding table
JP4048861B2 (ja) * 2002-07-23 2008-02-20 日本電気株式会社 アドレス検索装置
US7096277B2 (en) * 2002-08-07 2006-08-22 Intel Corporation Distributed lookup based on packet contents
US7877504B2 (en) * 2002-08-29 2011-01-25 Intel Corporation Techniques for entry lookups
KR100918733B1 (ko) * 2003-01-30 2009-09-24 삼성전자주식회사 포워딩정보를 동적으로 관리하는 분산구조라우터 및 그방법
US7483430B1 (en) * 2003-02-28 2009-01-27 Cisco Technology, Inc. Hierarchical hash method for performing forward route lookup
US7325059B2 (en) * 2003-05-15 2008-01-29 Cisco Technology, Inc. Bounded index extensible hash-based IPv6 address lookup method
US7418505B2 (en) * 2003-05-26 2008-08-26 Ewha University Industry Collaboration Foundation IP address lookup using either a hashing table or multiple hash functions
US20040264479A1 (en) * 2003-06-30 2004-12-30 Makaram Raghunandan Method for generating a trie having a reduced number of trie blocks
US7308505B2 (en) * 2003-12-17 2007-12-11 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US7817629B2 (en) * 2006-05-12 2010-10-19 Agere Systems Inc. Methods and apparatus for performing network operations on packets of data in response to content of particular user-specified protocol header fields
EP2055051A1 (en) * 2006-08-25 2009-05-06 University Of Florida Research Foundation, Inc. Recursively partioned static ip router tables
TWI413910B (zh) * 2008-01-25 2013-11-01 Univ Nat Taiwan 數值資料範圍區間查詢方法及系統
US8114117B2 (en) * 2008-09-30 2012-02-14 Tyco Healthcare Group Lp Compression device with wear area
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US7738454B1 (en) 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US8675648B1 (en) 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US7835357B2 (en) * 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US7961734B2 (en) 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
US7889741B1 (en) 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch
JP2013206095A (ja) * 2012-03-28 2013-10-07 Fujitsu Ltd データ処理装置及びデータ処理装置の制御方法
US8923298B2 (en) * 2012-05-04 2014-12-30 Futurewei Technoligies, Inc. Optimized trie-based address lookup
CN109905413B (zh) * 2019-04-30 2021-10-22 新华三信息安全技术有限公司 一种ip地址的匹配方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018524A (en) * 1997-09-09 2000-01-25 Washington University Scalable high speed IP routing lookups
US6266706B1 (en) * 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6067574A (en) * 1998-05-18 2000-05-23 Lucent Technologies Inc High speed routing using compressed tree process
US6385649B1 (en) * 1998-11-06 2002-05-07 Microsoft Corporation Routers and methods for optimal routing table compression

Also Published As

Publication number Publication date
US6658482B1 (en) 2003-12-02

Similar Documents

Publication Publication Date Title
TW468116B (en) High speed Internet protocol address lookups method for saving memory
US7966421B2 (en) Method and apparatus for logically expanding the length of a search key
JP4565793B2 (ja) 最長一致アドレスルックアップのための方法および装置
US7443841B2 (en) Longest prefix matching (LPM) using a fixed comparison hash table
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US7433871B2 (en) Efficient ipv4/ipv6 best matching prefix method and apparatus
US8160069B2 (en) System for forwarding a packet with a hierarchically structured variable-length identifier
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US7885268B2 (en) Method and system for hash table based routing via table and prefix aggregation
US7111071B1 (en) Longest prefix match for IP routers
Huang et al. A fast IP routing lookup scheme for gigabit switching routers
US6963924B1 (en) IP routing lookup scheme and system for multi-gigabit switching routers
US6917954B2 (en) Load balancing in IP address lookup
US7398278B2 (en) Prefix processing technique for faster IP routing
TWI239476B (en) Address search
EP1533956A2 (en) Dynamic forwarding of data packets using binary search
CA2302744A1 (en) A lookup device and a method for classification and forwarding of packets
CN111865804B (zh) 一种通过硬件发包机制提升路由下发效率的方法及系统
JP3663355B2 (ja) 最長一致プレフィックス・ルックアップ
CN107204926B (zh) 预处理cache的路由快速查找方法
Wang et al. A fast table update scheme for high-performance IP forwarding
Wang et al. Routing interval: a new concept for IP lookups
TW536889B (en) IP address built-up and search method of router and device therefor
McLaughlin et al. Implementing high speed IP address lookups in hardware

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees