欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于轉發(fā)具有層次結構化可變長度標識符的分組的系統(tǒng)的制作方法

文檔序號:7741799閱讀:253來源:國知局
專利名稱:用于轉發(fā)具有層次結構化可變長度標識符的分組的系統(tǒng)的制作方法
技術領域
本公開總的涉及促進通過數(shù)據(jù)網(wǎng)絡的通信。更具體地,本公開涉及一種用于使最 長前綴匹配查找引擎適于容納(accommoda te)層次結構化可變長度標識符以轉發(fā)數(shù)據(jù)的 方法。

發(fā)明內(nèi)容
—個實施例提供一種接收具有層次結構化可變長度標識符(HSVLI)的分組的系 統(tǒng)。HSVLI指示一條內(nèi)容并且指示從最普通級別到最特定級別排序的連續(xù)分量的層次結構。 各個標識符的長度不是固定的。在操作期間,該系統(tǒng)將所述HSVLI轉換成固定長度密鑰。隨 后,該系統(tǒng)使用固定長度密鑰基于最長前綴匹配查找引擎中的一個或更多最長前綴匹配來 獲取轉發(fā)信息。接著,該系統(tǒng)基于該轉發(fā)信息將該分組轉發(fā)到輸出端口。
在一些實施例中,將所述HSVLI轉換成固定長度密鑰包括將該固定長度密鑰劃 分成c個段Sl,. . . , s。;用段Sl,. . . , s?!碇甘綡SVLI的前面c-1個分量的分量散列;以及 用段s。來指示對HSVLI的其余分量的散列。 在一些實施例中,所述c個段的長度不相等并且其中各個段的長度能夠被動態(tài)地 重新配置。 在一些實施例中,所述系統(tǒng)至少基于HSVLI的一個或更多初始分量來動態(tài)地確定 所述c個段的長度、被散列化到每段內(nèi)的HSVLI分量的數(shù)量、和/或將與所述固定長度密鑰 算術組合的值。 在一些實施例中,最長前綴匹配查找引擎是網(wǎng)際協(xié)議(InternetProtocol, IP)路由器。 在一些實施例中,所述固定長度密鑰是網(wǎng)際協(xié)議版本4(IPv4)或網(wǎng)際協(xié)議版本 6 (IPv6)地址。 在一些實施例中,所述轉發(fā)信息包括至少一個輸出端口 。 在一些實施例中,所述層次結構包括以下中的一個或更多可全球路由的名稱、組 織名稱、版本標識符和摘要。


圖1說明了依據(jù)實施例的其中分組具有HSVLI的示例性網(wǎng)絡。 圖2說明了依據(jù)實施例的用于轉發(fā)具有HSVLI的分組的示例性系統(tǒng)的體系架構。 圖3介紹了說明依據(jù)實施例的轉發(fā)具有HSVLI的分組的過程的流程圖。 圖4介紹了說明依據(jù)實施例的將HSVLI轉換成固定長度密鑰的過程的流程圖。 圖5說明了依據(jù)實施例的被轉換成若干不同固定長度密鑰的示例性HSVLI。 圖6介紹了依據(jù)實施例的用于轉發(fā)具有HSVLI的分組的示例性設備。 在這些圖中,相似的參考數(shù)字指代相同的附圖元件。
具體實施例方式
現(xiàn)有的最長前綴匹配查找引擎只能處理相對小固定長度的地址。本發(fā)明的實施例 涉及使得現(xiàn)有的最長前綴匹配查找引擎適應較長的可變長度分組標識符。更具體地,本發(fā) 明的實施例涉及將長的可變長度分組標識符散列化(hash)成可與現(xiàn)有查找引擎一起使用 的多個短密鑰,從而促進在以內(nèi)容為中心的網(wǎng)絡中通過使用現(xiàn)有的硬件構造塊進行快速轉 發(fā)。本發(fā)明的實施例能夠實現(xiàn)具有HSVLI的分組在IP(網(wǎng)際協(xié)議)路由器中的轉發(fā),所述 I P路由器使用具有固定長度地址的最長前綴匹配查找引擎,該固定長度地址諸如網(wǎng)際協(xié) 議版本4(IPv4)和網(wǎng)際協(xié)議版本6(IPv6)地址。 以內(nèi)容為中心的網(wǎng)絡為內(nèi)容傳輸帶來了新方法。替代把網(wǎng)絡通信量在應用級看作 有內(nèi)容傳播的端對端對話,部分基于給予內(nèi)容的名稱來請求或返回該內(nèi)容,并且該網(wǎng)絡負 責將內(nèi)容從提供者路由到消費者。內(nèi)容包括能夠在通信系統(tǒng)中傳輸?shù)臄?shù)據(jù),包括諸如文本、 圖像、視頻和/或音頻的任何數(shù)據(jù)形式。消費者或提供者能夠是在該網(wǎng)絡之內(nèi)或之外的計 算機或者自動過程處的人員。在這樣的網(wǎng)絡中,一條內(nèi)容能夠指代整個內(nèi)容或該內(nèi)容的各 個部分。例如,報紙文章可能由體現(xiàn)為數(shù)據(jù)分組的多條內(nèi)容表示。 一條內(nèi)容還能夠與元數(shù) 據(jù)相關聯(lián),所述元數(shù)據(jù)用諸如驗證數(shù)據(jù)、創(chuàng)建數(shù)據(jù)、內(nèi)容所有者等等之類的信息來描述或者 擴充這條塊內(nèi)容。 在以內(nèi)容為中心的網(wǎng)絡中,不像常規(guī)IP網(wǎng)絡,分組可以由能夠被結構化或未被結 構化的HSVLI識別。例如,"abcd/bob/pa pers/cch/news"可以作為內(nèi)容的名稱并且識別 ( 一個或多個)對應分組,即來自名為"ABCD"的組織處的名為"Bob"用戶的"CCN"論文集 的"news,,文章。 為請求一條內(nèi)容,節(jié)點通過該內(nèi)容的名稱記錄(例如廣播)對該內(nèi)容的興趣。對
一條內(nèi)容的興趣能夠是根據(jù)內(nèi)容名稱或標識符對該內(nèi)容的查詢。該內(nèi)容如果可在網(wǎng)絡中獲
得則從存儲該內(nèi)容的任何節(jié)點被路由回到前述節(jié)點。路由基礎結構智能地將該興趣傳播到
可能具有信息的預期節(jié)點,然后將可獲得的內(nèi)容沿該興趣經(jīng)過的路徑帶回。 圖1說明了依據(jù)本發(fā)明實施例的網(wǎng)絡的示例性體系結構。在這個示例中,網(wǎng)絡180
包括節(jié)點100-145。該網(wǎng)絡中的每個節(jié)點耦合到一個或更多其他節(jié)點。網(wǎng)絡連接185是這
樣的連接的示例。盡管該網(wǎng)絡連接被示為實線,但是每條線還可以表示能夠將一個節(jié)點耦
合到另一個節(jié)點的子網(wǎng)絡或者超級網(wǎng)絡。網(wǎng)絡180能夠是本地網(wǎng)絡、超級網(wǎng)絡或子網(wǎng)絡。這
些網(wǎng)絡的每個都能夠被互連以使得一個網(wǎng)絡中的節(jié)點能夠到達其他網(wǎng)絡中的節(jié)點。所述網(wǎng)
絡連接能夠是寬帶、無線、電話、衛(wèi)星或任何類型的網(wǎng)絡連接.節(jié)點能夠是計算機系統(tǒng)、表
示用戶的端點、和/或能夠生成興趣或發(fā)起內(nèi)容的裝置。 依據(jù)本發(fā)明的實施例,消費者能夠生成對一條內(nèi)容的興趣,然后將該興趣發(fā)送到 網(wǎng)絡180中的節(jié)點。這條內(nèi)容能夠由能夠位于網(wǎng)絡之內(nèi)或之外的發(fā)布者或內(nèi)容提供者存儲 在網(wǎng)絡180中的節(jié)點處。例如,在圖1中,對一條內(nèi)容的興趣在節(jié)點105處發(fā)起。如果該 內(nèi)容在該節(jié)點處不可獲得,則該興趣流到耦合到第一節(jié)點的一個或更多節(jié)點。例如,在圖1 中,該興趣(興趣流150)流到?jīng)]有該內(nèi)容可用的節(jié)點115。接著,該興趣(興趣流155)從 節(jié)點105流到又沒有該內(nèi)容的節(jié)點125。然后,該興趣(興趣流160)流到該內(nèi)容可用的節(jié) 點130。該內(nèi)容流則折回其路徑(內(nèi)容流165、170和175)直到其到達節(jié)點105,在節(jié)點105 處該內(nèi)容被傳送。在該內(nèi)容流中能夠涉及諸如驗證的其他過程。
在網(wǎng)絡180中,當該內(nèi)容在該網(wǎng)絡上傳播時,在內(nèi)容持有者(節(jié)點130)和興趣生成節(jié)點(節(jié)點105)之間的路徑中的任何數(shù)量的中間節(jié)點(節(jié)點100-145)能夠參與該內(nèi)容的本地副本的高速緩存。通過隱含地共享對本地高速緩存的內(nèi)容的訪問,高速緩存為位于其他訂戶附近的第二訂戶減小了網(wǎng)絡負載。 常規(guī)分組轉發(fā)是基于分配給節(jié)點(或節(jié)點的接口 )的地址。在IP尋址中,使用地址的層次劃分以使得地址的第一部分識別網(wǎng)絡,后面部分識別該網(wǎng)絡內(nèi)的子網(wǎng)絡,而該地址的結尾識別子網(wǎng)絡內(nèi)的特定主機。這種布置允許分配唯一地址的責任被委托并從而被分發(fā)以使得互聯(lián)網(wǎng)能夠擴展到全球大小。它還通過限制IP路路由器在轉發(fā)分組到輸出端口時需要處理的信息量實現(xiàn)縮放。 在一個實施例中,分組由具有層次結構的HSVLI識別。HSVLI的這種層次結構提供優(yōu)于IP地址的層次結構的若干優(yōu)點。這樣的標識符能夠明確地通過名稱而不是隱含地通過包含子網(wǎng)掩碼的IP路由表條目來描述該結構。因而,在HSVLI中,該層次結構中的命名錯誤能夠經(jīng)過檢查而被檢測到,而基于IP的子網(wǎng)掩碼錯誤可能將分組路由到錯誤地址并且很難檢測到。 —般而言,因為一個以上查找引擎條目能夠匹配目的地地址,所以IP轉發(fā)器中的查找引擎使用最長前綴匹配。最特定條目-具有最長子網(wǎng)掩碼的條目-被稱為最長前綴匹配。例如,假設查找引擎具有以下IPv4條目192. 168.20. 16/28和192. 168.0.0/16。進入分組的目的地地址192. 168.20. 19匹配這兩個條目。然而,最長前綴匹配是192. 168. 20. 16/28,原因在于子網(wǎng)掩碼"/28"長于另一個條目的子網(wǎng)掩碼"/16"。注意,子網(wǎng)掩碼指定在匹配其對應地址時使用的前導位(即在子網(wǎng)掩碼中被設置為"l"的那些位)。被設置為"l"的前導位越多,則匹配越特定。 最長前綴匹配允許根據(jù)本地環(huán)境以不同的"分辨率"來解釋數(shù)據(jù)報的目的地地址。例如,遠離目的地13. 1. 64. 93 (alpha, pare, xerox, com)可能僅存在子網(wǎng)地址"13/8"(對應于子網(wǎng)掩碼255. 0. 0. 0)的IPv4條目,該子網(wǎng)地址將數(shù)據(jù)報帶到最近的網(wǎng)13 (Xerox)邊界網(wǎng)關。在該邊界網(wǎng)關處,可能存在子網(wǎng)地址"13. 1/16"以及可能的"13. 2/16"...(對應于子網(wǎng)掩碼255. 255. 0. 0)的條目,該子網(wǎng)地址將數(shù)據(jù)報帶到最近子網(wǎng)13. 1 (pare, xerox,com)邊界網(wǎng)關。在該邊界網(wǎng)關處,可能存在子網(wǎng)地址"13. 1.64/24"(對應于子網(wǎng)掩碼255.255.255.0)的條目,該子網(wǎng)地址將數(shù)據(jù)報帶到PARC的13. 1. 64子網(wǎng),等等。最長前綴匹配允許在相同路由表中高分辨率的本地信息(/16和/24前綴)覆蓋較低分辨率的全球信息(/8前綴)。 與精確匹配相比,最長前綴匹配允許地址的各部分之間的劃分在(全球)網(wǎng)絡上變化并且支持廣泛變化拓撲的靈活性。本文所描述的HSVLI也是有層次的,以實現(xiàn)命名責任的委托和最小轉發(fā)狀態(tài)。然而,IP地址(以及其他常規(guī)網(wǎng)絡地址)相對較短。例如,為了人們理解起見IPv4地址可以被寫為192. 9. 200. 6,但內(nèi)部總是32位數(shù)字,而IPv6地址是128位長。 在所有現(xiàn)有的IP路由器中,被處理的地址具有固定長度。因此不像常規(guī)地址,本文描述的分組標識符沒有固定長度。事實上,HSVLI的各個分量可以具有任意長度。這樣的HSVLI能夠具有明確劃界的分量,能夠包括任何字節(jié)序列,并且不限于人可讀的字符。
最長前綴匹配查找有益于具有HSVLI的分組的轉發(fā)。例如,"/parc/home/
5smetters,,中的興趣將匹配"/parc/home/smetters/test, txt,,禾口"/pare/home/smetters.
bar.txt"兩者(即,由這兩個名稱所識別的分組)。就名稱分量的數(shù)目而言最長匹配被認為最佳,因為它是最特定的。本發(fā)明的實施例提供一種適應現(xiàn)有最長前綴匹配查找引擎以使其能夠用可變長度分組標識符來執(zhí)行最長前綴匹配查找的機構。 圖2說明了依據(jù)實施例的用于轉發(fā)具有HSVLI的分組的示例性系統(tǒng)的概況。用于轉發(fā)具有HSVLI的分組的系統(tǒng)200包括分組接收器220、轉換器240、轉發(fā)信息獲取器260和分組轉發(fā)器280。分組接收器220接收來自輸入端口的分組210。分組210包括HSVLI230,HSVLI 230指示一條內(nèi)容并且指示從最普通級別到最特定級別排序的連續(xù)分量的層次結構。例如,HSVLI可能是"a/b/c/d",其中"a"是最普通級別而"a/b/c/d"是最特定級別。
接著,轉換器240將HSVLI 230作為輸入并且產(chǎn)生固定長度密鑰250。轉換器240將HSVLI 230轉換成可由最長前綴匹配查找引擎使用的固定長度格式。轉發(fā)信息獲取器260使用固定長度密鑰250來產(chǎn)生轉發(fā)信息270,該轉發(fā)信息270然后被輸入到分組轉發(fā)器280中。轉發(fā)信息能夠指示分組轉發(fā)器280將分組轉發(fā)到的至少一個輸出端口。節(jié)點包括一個或更多輸入和輸出端口,所述輸入和輸出端口耦合到其他節(jié)點。通常,所述系統(tǒng)(其能夠位于節(jié)點處)試圖選擇使某些準則諸如分組傳播時間或節(jié)點之間的跳數(shù)量最優(yōu)化的輸出端口。注意,典型的最長前綴匹配轉發(fā)器將基于固定長度地址的最長前綴匹配來轉發(fā)分組。相比而言,本文描述的轉發(fā)器基于HSVLI而不是地址來轉發(fā)分組。本發(fā)明的實施例允許典型的最長前綴匹配轉發(fā)引擎對可變長度分組標識符執(zhí)行最長前綴匹配。
圖3介紹了說明依據(jù)實施例的轉發(fā)具有HSVLI的分組的過程的流程圖。在操作期間,系統(tǒng)在輸入端口處接收分組(操作300)。所述分組包括HSVLI,所述HSVLI指示從最普通級別到最特定級別排序的連續(xù)分量的層次結構。該層次結構中的分量能包括可全球路由的名稱、組織名稱、版本標識符、簽名、摘要、發(fā)布者、循環(huán)冗余校驗、就分量的數(shù)量而言的長度、每個分量的若干位或字節(jié)、或者生存時間(TTL)。 —旦該系統(tǒng)接收了所述分組(操作300),該系統(tǒng)就將由該分組指示的HSVLI轉換成固定長度密鑰(操作310)。注意,HSVLI包括從最普通級別的分量開始的一個或更多連續(xù)分量。例如,"a/b"是"a/b/c/d"的前綴。在這個示例中,"a"處于最普通級別并且"a"、"b"、"c"和"d"是連續(xù)分量。 接著,該系統(tǒng)使用固定長度密鑰基于最長前綴匹配查找引擎中的一個或更多最長前綴匹配查找來獲取轉發(fā)信息(操作320)。隨后,該系統(tǒng)基于該轉發(fā)信息將所述分組轉發(fā)到輸出端口 (操作330)。該系統(tǒng)能夠排除輸入端口作為該分組能夠被轉發(fā)到的端口。這是因為到含有與所述HSVLI匹配的內(nèi)容的節(jié)點的最短路徑路線不能是原路返回(backtrack)經(jīng)過輸入端口的路徑路線。 在一個實施例中,轉發(fā)器能夠在轉發(fā)所述分組之前遞減作為內(nèi)容名稱的 一部分的TTL值。TTL是對所述分組能夠保持流通的時間周期或跳數(shù)量的限制。當TTL達到零時,該分組能夠被丟棄。因而TTL能夠減小在流通中不可傳送的分組的數(shù)量。在分組發(fā)生任何變化后但在轉發(fā)之前,轉發(fā)器也能夠重新計算校驗和(例如,循環(huán)冗余校驗和)。 一般而言,轉發(fā)器能夠在轉發(fā)之前修改該分組的任何方面。 圖4介紹了說明依據(jù)實施例轉換HSVLI的過程的流程圖。首先,系統(tǒng)將固定長度密鑰劃分成c個段Sl,. . . , s。(操作400)。接著,該系統(tǒng)計算HSVLI的前面c-l個分量的散
6列并且將這些散列值放置在段Sl,. . . , 中(操作410)。隨后,該系統(tǒng)對HSVLI的其余分 量計算散列并且將這個散列放置在段s。中(操作420)。 圖5說明了依據(jù)實施例的被轉換成若干不同固定長度密鑰的示例性HSVLI。圖5 將HSVLI 500示為"a/b/c/d"。 HSVLI 500能夠以許多不同方式被轉換;圖5僅說明了其中 HSVLI 500能夠被轉換的幾種方法。圖5所示的所有轉換使用固定長度32位密鑰(32位密 鑰510)。其他固定長度密鑰是可能的,諸如IPv6 128位地址。 轉換520對應于僅被劃分成一段的固定長度密鑰,即c = 1。注意,因為c = 1所 以c-l = 0。因此,轉換520沒有示出前面c-l (0)個分量的分量散列。函數(shù)"h(a/b/c/d)" 是"a/b/c/d的散列"的簡寫,其是從"a/b/c/d"導出的散列值。由于c = l,轉換520示出 了所有32位都被用來存儲"h(a/b/c/d)"。 轉換530對應于被劃分成兩段的固定長度密鑰,即c = 2。注意,在這個轉換中c-l =1。因此,轉換530僅示出由第一段指示的"a"的分量散列(即,"h(a)"),該分量散列以 18位進行存儲。轉換530還示出對由最后段指示的HSVLI的其余分量的散列(即,"h(b/ c/d)"),該散列以14位進行存儲。 轉換540對應于被劃分成三段的固定長度密鑰,即c = 3。注意,在這個轉換中c-l =2。因此,轉換540示出由第一段指示的"a"的分量散列(即,"h(a)"),該分量散列以 12位進行存儲;以及由第二段指示的"b"的分量散列(即,"h(b)"),該分量散列以12位進 行存儲。轉換540還示出對由最后段指示的HSVLI的其余分量的散列(即,"h(c/d)"),該 散列以8位進行存儲。 轉換550對應于被劃分成四段的固定長度密鑰,即c = 4。注意,在這個轉換中c-l =3。因此,轉換550示出由第一段指示的"a"的分量散列(即,"h(a)"),該分量散列以 14位進行存儲;由第二段指示的"b"的分量散列(即,"h (b)"),該分量散列以4位進行存 儲;以及由第三段指示的"c"的分量散列(即,"h(c)"),該分量散列以6位進行存儲。轉 換550還示出對由最后段指示的HSVLI的其余分量的散列(即,"h(d)"),該散列以8位進 行存儲。 注意,這些段的長度(即,位數(shù))不必相等,并且各個段的長度能夠被動態(tài)地重新 配置。例如,轉換530示出以18位存儲的"h(a)",轉換540示出以12位存儲的"h(a)",而 轉換550示出以14位存儲的"h(a)"。位數(shù)對于轉換530-550中"h(a)"是變化的以說明第 一分量能夠是在不同應用中出現(xiàn)的不同分量結構的一部分。例如,在轉換530中第一分量 散列具有18位的可能值。在轉換540中第一分量散列具有12位的可能值。在轉換550中 第一分量散列具有14位的可能值。 一般而言,與每個分量散列相關聯(lián)的位數(shù)能夠至少基于 每個分量的在該轉發(fā)點處將需要的可能值的數(shù)量以及每個分量的熵。 注意,為了保留最長匹配轉發(fā)的"較高本地信息分辨率"特征,能夠使用HSVLI的 一個或更多初始分量來動態(tài)地確定段的數(shù)量及段的長度。c的選擇可能受到將在該轉發(fā)點 處需要的標識符的分布的影響,所述標識符的分布可以在轉發(fā)表被填充時通過對查找條目 集合計算統(tǒng)計來確定。在一個實施例中,能夠基于HSVLI的早期部分的內(nèi)容來動態(tài)地確定 c的選擇和固定長度密鑰內(nèi)的位的分配。這就允許一系列前綴(例如,只含有單個值的前 綴如"pare, com")被不同地對待。結果,能夠使從HSVLI到固定長度密鑰的映射對與不同 類別的前綴相關聯(lián)的熵分布敏感。例如,與內(nèi)部網(wǎng)(intranet)名稱對應的HSVLI應當使大多數(shù)位被分配給后面的分量(例如圖5中的轉換550),原因在于后面的HSVLI分量攜帶更 有意義的信息。相比而言,與外部名稱對應的HSVLI應當使大多數(shù)位分配給第一個HSVLI 分量,其中大部分變化將被用來區(qū)別不同條目(例如圖5中的轉換530)。不是每個表實例 (或每個表每負載)具有單個映射方案,而是能夠通過首先檢查每個分組進入時每個分組 的第一分量(或前綴的若干分量)來確定該方案。就流動而言,這個過程能夠被視為在用 于獲取固定長度密鑰的映射之前執(zhí)行的或作為該映射的一部分執(zhí)行的專門查找,所述固定 長度密鑰將用于主表查找。 此外,當位離開導線時(as bits come off the wire),可以遞增地進行大多數(shù) HSVLI轉換。 一些現(xiàn)有的最長前綴匹配實施方式能夠遞增地操作并且因此能夠執(zhí)行HSVLI 分組的"直通(cut through)"轉發(fā)。其他實施方式要求整個地址/密鑰,但在本發(fā)明中,仍 然可以在查找發(fā)生之前當位被接收時執(zhí)行HSVLI-固定長度密鑰轉換。
查找引擎能夠包括以下中的一個或更多三重內(nèi)容可尋址內(nèi)存(TCAM),樹結構, 以及布隆(Bloom)過濾器。更通常的,能夠使用能夠適于最長前綴匹配的任何查找引擎。
內(nèi)容可尋址內(nèi)存(CAM)是這樣的內(nèi)存每個存儲位置具有針對每位的比較器,以 致CAM能夠針對輸入值并行地搜索所有內(nèi)容位置,以在一個循環(huán)中返回具有相關值的匹 配。TCAM將每個值位的關注/不關注位存儲在內(nèi)存位置中從而TCAM實現(xiàn)部分匹配。這就 實現(xiàn)了對于當今"無類"IP尋址所需要的前綴匹配,因為每個條目能夠被設置為對字的一些 數(shù)量的初始位的精確匹配而"不關注"其余位。在多個匹配前綴的情況下,通常返回第一匹 配,因此能夠通過按照降低前綴長度的順序加載TCAM來完成最長前綴匹配。
樹結構能夠被用來將最長前綴匹配實施為樹(也稱為查找樹(trie))中的前綴。 樹的基本形式針對前綴中的每個字符(其中字母為0、1的IP地址上下文中的每位)具有 節(jié)點分支。通過使用樹,在地址從導線中(逐位)解碼時能夠執(zhí)行該查找。當樹被遍歷時, 迄今為止的最長匹配能夠被保留在堆棧上,以便如果沒有完全匹配,能夠快速發(fā)現(xiàn)最長前 綴匹配。 在基數(shù)查找樹(radix trie)中,特定數(shù)量的位能夠被用來選擇處于每個級別的子 樹。例如通過8位基數(shù),第一 8位對根的256個可能子樹之一進行索引,而下一 8位對處于 第二級別的256個可能子樹之一進行索引。 Patricia樹是最小熵前綴搜索樹,其中節(jié)點僅表示作為不同條目之間的區(qū)分符的 那些位。每個節(jié)點識別將在該級別上檢查的區(qū)別不同前綴條目的位位置。
B1 o om濾波器包括m位的位陣列和k個不同散列函數(shù),所述散列函數(shù)從單元 (element)映射到m個陣列位置之一 (隨機地從均勻分布中選擇的)。最初,Bloom濾波器 的所有位被設置為0。將單元添加到Bloom濾波器涉及用k個散列函數(shù)中的每個對該元件 進行散列化以得到k個陣列位置。在所有這些位置處的每位都被設置為1。確定單元的成 員資格(即,測試該單元是否在包括Bloom濾波器的集合內(nèi))涉及用k個散列函數(shù)中的每 個對該單元進行散列化以得到k個位置。如果所有位置都指示l,則該單元在該集合內(nèi)。否 則,該單元不在集合內(nèi)。Bloom濾波器可能導致虛假正數(shù)(即,對于不在集合內(nèi)的項,可能獲 取正結果)但不是虛假負數(shù)(即,Bloom濾波器能夠確定地告知項何時不是集合的成員)。 一組Bloom濾波器(每個前綴長度有一個Bloom濾波器)能夠被并行地查詢,導致針對發(fā) 現(xiàn)匹配的每個濾波器在散列表中進行二次查找。各種優(yōu)化過程可以被用來適應不同的前綴數(shù)前綴長度的可能具有很少條目的初始直接查找陣列。 圖6介紹了依據(jù)實施例的用于轉發(fā)具有HSVLI的分組的示例性設備。 用于轉發(fā)具有HSVLI的分組的設備600包括處理器610、內(nèi)存620、存儲器630、分
組接收機構640、 HSVLI轉換機構650、轉發(fā)信息獲取機構660以及分組轉發(fā)機構670,它們
所有都能夠通過各種手段彼此通信。 在一些實施例中,機構640-670能夠作為處理器610的一部分。而且,在一些實施 例中,系統(tǒng)可以不包括單獨的處理器和內(nèi)存。相反,機構640-670除了執(zhí)行其特定任務之 外,單獨地或一致地可以作為通用計算引擎的一部分。 存儲器630存儲將由處理器610執(zhí)行的程序。具體而言,存儲器630存儲實施用 于轉發(fā)具有HSVLI的分組的系統(tǒng)(應用)的程序。在操作期間,應用程序能夠從存儲器630 加載到內(nèi)存620內(nèi)并且由處理器610執(zhí)行。結果,用于轉發(fā)具有HSVLI的分組的設備600 能夠執(zhí)行上面描述的功能。用于轉發(fā)具有HSVLI的分組的設備600能夠耦合到可選的顯示 器685、鍵盤675和指向裝置680。設備600還耦合到以內(nèi)容為中心的網(wǎng)絡690。
在實施例中,處理器610激活分組接收機構640并且向該分組接收機構640提供 分組。接著,處理器610激活轉換機構650并且向該轉換機構650提供由該分組指示的 HSVLI。隨后,處理器610激活轉發(fā)信息獲取機構660并且向該轉發(fā)信息獲取機構660提供 從轉換機構650獲取的至少一個固定長度密鑰。接著,處理器610激活分組轉發(fā)機構670 并且向分組轉發(fā)機構670提供從轉發(fā)信息獲取機構660獲取的轉發(fā)信息。
具體實施方式
中描述的數(shù)據(jù)結構和代碼典型地存儲在計算機可讀存儲媒介上, 計算機可讀存儲媒介可以是能夠存儲代碼和/或數(shù)據(jù)以供計算機系統(tǒng)使用的任何裝置或 媒介。計算機可讀存儲媒介包括但不限于易失性內(nèi)存、非易失性內(nèi)存、磁和光存儲裝置諸如 盤驅動器、磁帶、CD (高密度盤)、DVD (數(shù)字多功能盤或數(shù)字視頻盤)、或者其他能夠存儲計 算機可讀媒介的現(xiàn)在已知或以后研發(fā)的媒介。 在具體實施方式
中描述的方法和過程能夠被實現(xiàn)為代碼和/或數(shù)據(jù),其能夠被存 儲在如上描述的計算機可讀存儲媒介中。當計算機系統(tǒng)讀取和執(zhí)行計算機可讀存儲媒介上 存儲的代碼和/或數(shù)據(jù)時,計算機系統(tǒng)執(zhí)行這些被實現(xiàn)為數(shù)據(jù)結構和代碼并且存儲在計算 機可讀存儲媒介內(nèi)的方法和過程。 而且,本文描述的方法和過程能夠被包括在硬件模塊或設備中。這些模塊或設備 可以包括但不限于特定用途集成電路(ASIC)芯片、現(xiàn)場可編程門陣列(FPGA)、在特定時間 執(zhí)行特定軟件模塊或一塊代碼的專用或共享處理器、和/或現(xiàn)在已知或以后研發(fā)的其他可 編程邏輯器件。當硬件模塊或設備被激活時,它們執(zhí)行被包括在它們內(nèi)的方法和過程。
9
權利要求
一種用于促進轉發(fā)具有層次結構化可變長度標識符(HSVLI)的分組的計算機實施的方法,其中該計算機包括處理器,該方法包括在輸入端口上接收具有HSVLI的分組;其中所述HSVLI指示一條內(nèi)容并且能夠被層次結構化,包括從最普通級別到最特定級別排序的連續(xù)分量;且其中各個標識符的長度不是固定的;將所述HSVLI轉換成固定長度密鑰;使用固定長度密鑰基于由最長前綴匹配查找引擎進行的一個或更多最長前綴匹配來獲取轉發(fā)信息;以及基于該轉發(fā)信息將所述分組轉發(fā)到輸出端口。
2. 權利要求1的方法,其中將所述HSVLI轉換成固定長度密鑰包括 將該固定長度密鑰劃分成c個段Sl, . . . , s。;用段Sl, . . . , s?!碇甘綡SVLI的前面c-1個分量的分量散列;以及 用段s。來指示對HSVLI的其余分量的散列。
3. 權利要求2的方法,其中所述c個段的長度不相等并且各個段的長度能夠被動態(tài)地重新配置。
4. 權利要求2的方法,還包括至少基于HSVLI的一個或更多初始分量來動態(tài)地確定所 述c個段的長度、被散列化到每段內(nèi)的HSVLI分量的數(shù)量、和/或將與所述固定長度密鑰算 術組合的值。
5. 權利要求l的方法,其中所述最長前綴匹配查找引擎是網(wǎng)際協(xié)議(IP)路由器。
全文摘要
本發(fā)明涉及用于轉發(fā)具有層次結構化可變長度標識符的分組的系統(tǒng)和方法。該方法包括在輸入端口上接收具有HSVLI的分組;將所述HSVLI轉換成固定長度密鑰;使用固定長度密鑰基于由最長前綴匹配查找引擎進行的一個或更多最長前綴匹配來獲取轉發(fā)信息;以及基于該轉發(fā)信息將所述分組轉發(fā)到輸出端口。所述HSVLI指示一條內(nèi)容并且能夠被層次結構化,包括從最普通級別到最特定級別排序的連續(xù)分量。各個標識符的長度不是固定的。
文檔編號H04L12/56GK101795229SQ201010109070
公開日2010年8月4日 申請日期2010年2月1日 優(yōu)先權日2009年1月30日
發(fā)明者J·D·索恩頓, V·L·雅各布森 申請人:帕洛阿爾托研究中心公司
和龙市| 石棉县| 西畴县| 丹巴县| 巴林左旗| 长武县| 军事| 枣强县| 古交市| 永安市| 金昌市| 克东县| 阜南县| 浦东新区| 惠水县| 平乡县| 昌图县| 台州市| 滨海县| 长丰县| 泸西县| 化隆| 仙桃市| 盖州市| 石首市| 门源| 三原县| 建宁县| 克东县| 日照市| 古蔺县| 苍山县| 乌鲁木齐县| 贡嘎县| 瓦房店市| 偃师市| 凭祥市| 天柱县| 中方县| 龙泉市| 峨眉山市|