TWI413910B - 數值資料範圍區間查詢方法及系統 - Google Patents
數值資料範圍區間查詢方法及系統 Download PDFInfo
- Publication number
- TWI413910B TWI413910B TW097102787A TW97102787A TWI413910B TW I413910 B TWI413910 B TW I413910B TW 097102787 A TW097102787 A TW 097102787A TW 97102787 A TW97102787 A TW 97102787A TW I413910 B TWI413910 B TW I413910B
- Authority
- TW
- Taiwan
- Prior art keywords
- range
- query
- numerical data
- interval
- input
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明係有關於一種電腦資訊技術,特別是有關於一種數值資料範圍區間查詢方法及系統,其可整合至一資訊處理系統,例如為電腦系統、伺服器系統、網路系統,用以對一輸入之數值資料(例如網路位址、記憶體位址、或硬碟位址)提供一範圍區間查詢功能,藉以查詢出該輸入之數值資料之值所在之範圍區間。
於電腦資訊的處理上,常有需要針對某些固定長度格式的數值資料來求取其值所在之範圍區間,以依據其所在之範圍區間來對其執行不同之處理動作。此類型之數值資料例如包括網路位址、記憶體位址、硬碟位址、等等。
以網路系統之應用為例,封包分類(packet classification)為網路系統中一項重要的功能,可用以判別各個輸入之封包的屬性,例如為其中之目的地位址(destination IP address)之值所在之範圍區間,以據此來對各個不同範圍區間內之封包提供不同的處理方式。
目前網路位址範圍區間的查詢方法可單純採用一個查詢表(lookup table)來具體實施。此作法只需要執行一次查詢動作即可搜尋到所要之範圍區間資訊(例如為範圍區間的編號)。然而此種作法於實際應用上的一項缺點在於其查詢表的資料量係正比於網路位址的數值空間;亦即若網路位址的位元長度為L
,則所需之查詢表的資料量即正比於2 L
。就目前所廣泛採用之IPv4網路通訊規範而言,其所採用之網路位址長度為32位元,因此所需之查詢表的資料量即正比於232
;而未來之IPv6規範的網路位址長度為128位元,因此所需之查詢表的資料量即正比於2128
。由於此種單階式之查詢表資料結構需求頗大之記憶體儲存空間,因此其所需之處理時間亦較為費時而沒有效率。
有鑒於上述之問題,因此目前於電腦網路資訊產業中的一項重要的研究課題即在於研發及設計一種高效能及低記憶體容量之網路位址範圍區間搜尋技術。
鑒於以上所述先前技術之缺點,本發明之主要目的便是在於提供一種數值資料範圍區間查詢方法及系統,其於具體實施上可需求較小之記憶體儲存空間,且可提供更快速之處理效能。
本發明之數值資料範圍區間查詢方法及系統係應用於整合至一資訊處理系統,例如為電腦系統、伺服器系統、網路系統,用以對一輸入之數值資料(例如網路位址、記憶體位址、或硬碟位址)提供一範圍區間查詢功能,藉以查詢出該輸入之數值資料之值所在之範圍區間。
本發明之數值資料範圍區間查詢方法至少包含以下之處理動作:(M1)預建一多階層式查詢表資料結構,其係將輸入之數值資料的格式長度分割為複數個區段,並從最前端之區段開始逐一針對其區段數值及按照一預定之範圍區間對應關係來建立複數個階層化連結之查詢表;(M2)於實際操作時,將該輸入之數值資料以一分段方式讀取出其中之各個區段中的數值,並將各個讀取出之區段數值分別作為一查詢用之索引字組;以及(M3)利用各個索引字組來對該多階層式查詢表資料結構中的複數個階層化之查詢表進行一查詢程序,藉此而索引出該輸入之數值資料所對應之範圍區間編號。
本發明之數值資料範圍區間查詢系統係設計用來執行上述之方法,其實體架構至少包含:(A)一多階層式查詢表資料結構模組;(B)一數值資料分段讀取模組;以及(C)一查詢處理模組。
本發明之數值資料範圍區間查詢方法及系統的特點在於將輸入之數值資料的格式長度分割為複數個區段,並從最前端之區段開始逐一針對其各個區段數值及按照一預定之範圍區間對應關係來建立複數個階層化連結之查詢表;並於實際對一輸入之數值資料進行其範圍區間編號的查詢時,從最前端之區段開始循序利用各個區段的數值作為索引字組來對該多階層式查詢表資料結構中的各個查詢表逐一進行查詢工作,直至搜尋到對應之範圍區間編號為止。
以下即配合所附之圖式,詳細揭露說明本發明之數值資料範圍區間查詢方法及系統之實施例。
第1圖即顯示本發明之數值資料範圍區間查詢系統(如標號50所指之方塊所示之部分)的應用方式。如圖所示,本發明之數值資料範圍區間查詢系統50於實際應用上係整合至一資訊處理系統10,例如為電腦系統、伺服器系統、網路系統(例如路由器、網路匯集器、防火牆、等等),用以對該資訊處理系統10所處理之一種固定長度的數值資料(例如網路位址、記憶體位址、硬碟位址、等等)提供一範圍區間查詢功能,藉以查詢出該些數值資料之值所在之範圍區間。
於以下所述之實施例中,本發明之數值資料範圍區間查詢系統50係例如整合至一網路系統中的封包分類或過濾(packet classification/filtering)處理機制中,且所處理之輸入數值資料為固定長度之32位元的網路位址(IP address),用以判別該網路系統所接收到之各個封包的目的地位址所在之特定的範圍區間。
第2圖即顯示本發明之數值資料範圍區間查詢系統50的輸入輸出功能模型。如圖所示,本發明之數值資料範圍區間查詢系統50於實際應用時需由網路管理人員預先定義一範圍區間對應表20,其中將32位元之網路位址的所有可能之值預先區分成複數個連續之範圍區間,且各個範圍區間係預先設定為對應至一獨特之編號。於第2圖所示之範圍區間對應表20的實施例中,若網路位址之數值所在之範圍區間為[00000000]-[1234565F],則其對應之編號為[1];若為[12345660]-[1234566F],則其對應之編號為[2];若為[1234567-]-[123456CC],則其對應之編號為[3];依此類推。
因此假設有一輸入之網路位址30為[12348888],則本發明之數值資料範圍區間查詢系統50即可查詢出其所在之範圍區間的編號為[5],並將此編號作為輸出之查詢結果40。
如第3圖所示,於實體架構上,本發明之數值資料範圍區間查詢系統50至少包含:(A)一多階層式查詢表資料結構模組100;(B)一數值資料分段讀取模組210;以及(C)一查詢處理模組220。以下即首先分別說明此些構件的個別屬性及功能。
多階層式查詢表資料結構模組100為一靜態之資料結構模組,其建構方法係將輸入之網路位址30的格式長度分割為複數個區段,並從最前端之區段開始逐一針對其區段數值來建立一多階層式的查詢表資料結構,其中包括複數個階層化連結之查詢表;且其中各個查詢表係依據該範圍區間對應表20中所預設之範圍區間數值與該分段後之數值資料長度格式中的各個區段的對應關係來設定該階層式查詢表資料結構中的查詢對應關係。
此多階層式查詢表資料結構模組100的建構具有2種不同的實施方式,分別如下所述。
於第4A圖所示之實施例中,係將輸入之32位元的網路位址30的格式長度例如分割為3個區段:一16位元之前置區段31、一8位元之中間區段32、和一8位元之後置區段33。此處須注意的一點在於上述之網路位址格式長度的分割方式並不限於3個區段,亦可為2、4、5、或更多。基本上,分割後的區段數目愈多,則所需之記憶體儲存空間也就愈少,但可能增加設計上的複雜度。
接著參照範圍區間對應表20來從最前端之16位元前置區段31開始逐一針對其區段數值來建立一對應之3階層式的查詢表資料結構;其中第1階層包括一個查詢表(以下稱為第1階查詢表110),第2階層包括二個查詢表(以下稱為第2階第1層查詢表120a和第2階第2層查詢表120b),而第3階層則包括一個查詢表(以下稱為第3階查詢表130)。此些查詢表110、120a、120b、130中的各項對應關係依據範圍區間對應表20中所預設之範圍區間數值與該網路位址30之3個區段31、32、33的對應關係來設定,其方法如下所述。
由第2圖所示之範圍區間對應表20可知,若輸入之網路位址的16位元前置區段31之值位於[0000]-[1233]之間,則其所在之範圍區間的編號必然為[1],因此第1階查詢表110即將其對應值設定為[1];若正好為[1234],則其所在之範圍區間的編號必然為位於[1]-[5]之間,因此第1階查詢表110即將其對應值設定為連結至第2階第1層查詢表120a;若為位於[1235]-[ABCC]之間,則其所在之範圍區間的編號必然為[5],因此第1階查詢表110即將其對應值設定為[5];若正好為[ABCD],則其所在之範圍區間的編號為位於[5]-[7]之間,因此第1階查詢表110即將其對應值設定為連結至第2階第2層查詢表120b;若為位於[ABCE]-[FFFF]之間,則其所在之範圍區間的編號必然為[7],因此第1階查詢表110即將其對應值設定為[7]。於第4A圖所示之第1階查詢表110中,標號111所指之部分即分別代表一編號設定項,而標號112所指之部分則分別代表一連結設定項。
於第2階第1層查詢表120a中,若輸入之網路位址的8位元之中間區段之值為位於[00]-[55]之間,則其所在之範圍區間的編號必然為[1],因此將其對應值設定為[1];若正好為[56],則其所在之範圍區間的編號必然為位於[1]-[4]之間,因此將其對應值設定為連結至一第3階查詢表130;若為位於[57]-[FF]之間,則其所在之範圍區間的編號必然為[5],因此將其對應值設定為[5]。於第2階第2層查詢表120b中,若輸入之網路位址的8位元之中間區段之值為位於[00]-[55]之間,則其所在之範圍區間的編號必然為[5],因此將其對應值設定為[5];若為位於[E0]-[EE]之間,則其所在之範圍區間的編號必然為[6],因此將其對應值設定為[6];若為位於[EF]-[FF]之間,則其所在之範圍區間的編號必然為[7],因此將其對應值設定為[7]。於此第2階之二個查詢表120a、120b中,標號121所指之部分即分別代表一編號設定項,而標號122所指之部分則分別代表一連結設定項。
於第3階查詢表130中,若輸入之網路位址的8位元之後置區段之值為位於[00]-[5F]之間,則其所在之範圍區間的編號必然為[1],因此將其對應值設定為[1];若為位於[60]-[6F]之間,則其所在之範圍區間的編號必然為[2],因此將其對應值設定為[2];若為位於[70]-[CC]之間,則其所在之範圍區間的編號必然為[3],因此將其對應值設定為[3];若為位於[CD]-[FF]之間,則其所在之範圍區間的編號必然為[4],因此將其對應值設定為[4]。於此第3階查詢表130中,標號131所指之部分即分別代表一編號設定項。由於此第3階查詢表130中均為編號設定項131,而無連結設定項,因此其即為最終階之查詢表。
如第4B圖所示,多階層式查詢表資料結構模組100的第二實施方式與上述之第一實施方式不相異之處在於若輸入之網路位址的16位元前置區段31之值正好為[ABCD],則由於其所在之區間的編號可能為[5]、或[6]、或[7]而具有連續性,因此於第1階查詢表110中即設定為對應至一編號範圍設定及連結項113,並於此編號範圍設定及連結項113中設定其編號範圍為[5]至[7]之間,並將下一階段之查詢程序連結至一範圍區間查詢表140。於具體實施上,此編號範圍的設定方式有以下3種不同的實施方式:(1)[5-7],即設定編號範圍之起始值5及終端值7;(2)[5-3],即設定編號範圍的起始值5及此範圍中的區間編號的個數3;以及(3)[7-3],即設定編號範圍的終端值7及此範圍中的區間編號的個數3。
如第4B圖所示,相較於原始之範圍區間對應表20,上述之範圍區間查詢表140中僅需於各個對應值中設定各個範圍區間的起始值;例如第1個範圍區間為[00000000]-[1234565F],但於此範圍區間查詢表140中僅需設定其起始值[00000000];第2個範圍區間為[12345660]-[1234566F],但於此範圍區間查詢表140中僅需設定其起始值[12345660];依此類推。但此範圍區間查詢表140於最後需增加一列對應關係,用以設定最終之結束值[FFFFFFFF]。此範圍區間查詢表140所採用之搜尋法例如可採用二元搜尋法(binary search)、或任何其它等效之搜尋法。
此外,於第2階第1層查詢表120中,若輸入之網路位址的8位元之中間區段之值正好為[56],則其所在之範圍區間的編號必然為位於[1]-[4]之間,因此亦以上述之同樣的方式於第1階查詢表110中設定為對應至一編號範圍設定及連結項123,並於此編號範圍設定及連結項123中設定其編號範圍為[1]至[4]之間,並將下一階段之查詢程序連結至範圍區間查詢表140。於第4B圖所示之實施例中,編號範圍設定方式例如為[1-4],其中[1]代表此編號範圍的起始值,而[4]則代表此編號範圍中的編號個數。
上述之作法的優點在於可不必使用到第4A圖所示之實施方式中的第2階第2層查詢表120b,因此可因省略一個查詢表而減少所需之記憶體儲存空間。
數值資料分段讀取模組210可將輸入之網路位址30以一分段方式讀取出其中之各個區段中的數值,並將各個讀取出之區段數值分別作為一查詢用之索引字組來對多階層式查詢表資料結構模組100中的複數個階層化之查詢表進行查詢程序。
於第4A圖所示之實施例中,此數值資料分段讀取模組210即例如將各個輸入之網路位址30的32位元長度格式劃分成3個區段:16位元之前置區段31、8位元之中間區段32、以及8位元之後置區段33,並以分段方式分別讀取出各個區段31、32、33中的數值而產生3個查詢用之索引字組。
於第4B圖所示之實施例中,此數值資料分段讀取模組210則例如係於第1階段之查詢程序中讀取16位元前置區段31的數值來作為查詢用之索引字組,於第2階段之查詢程序中讀取8位元中間區段32的數值來作為索引字組,並於第3階段之查詢程序中讀取整體之32位元的數值來作為索引字組。
查詢處理模組220可利用上述之數值資料分段讀取模組210所讀取到之各個索引字組來對多階層式查詢表資料結構模組100中的複數個階層化之查詢表(即第一實施例之110、120a、120b、130或第二實施例之110、120、140)進行一分階段式之查詢程序,藉此而索引出該輸入之網路位址30所對應之範圍區間編號。
以第4A圖所示之實施方式為例,假設輸入之網路位址30的值為[18888888],則上述之數值資料分段讀取模組210所產生之3個查詢用之索引字組分別為{[1888]、[88]、[88]};則此查詢處理模組220即首先利用第1個索引字組[1888]來查詢第1階查詢表110,且其結果為編號[5],因此即完成查詢工作並輸出查詢結果為[5]。再者,假設輸入之網路位址的值為[12345600],則上述之數值資料分段讀取模組210所產生之3個查詢用之索引字組分別為{[1234]、[56]、[00]};則此查詢處理模組220即首先利用第1個索引字組[1234]來查詢第1階查詢表110,且其結果為連結至第2階第1層查詢表120a。因此查詢處理模組220接著利用第2個索引字組[56]來查詢第2階第1層查詢表120a,其結果為連結至第3階查詢表130。因此查詢處理模組220接著利用第3個索引字組[00]來查詢第3階查詢表130,其結果為編號[1],因此即完成查詢工作並輸出查詢結果為[1]。
以第4B圖所示之實施方式為例,假設輸入之網路位址30的值為[12345688],則上述之數值資料分段讀取模組210所產生之3個查詢用之索引字組分別為{[1234]、[56]、[12345688]};則此查詢處理模組220即首先利用第1個索引字組[1234]來查詢第1階查詢表110,且其結果為連結至第2階之查詢表120;再接著利用第2個索引字組[56]來查詢第2階之查詢表120,且其結果為連結至範圍區間查詢表140;再接著利用第3個索引字組[12345688]來查詢範圍區間查詢表140,其結果為編號[3],因此即完成查詢工作並輸出查詢結果為[3]。
以下即利用一應用實例來說明本發明之數值資料範圍區間查詢系統50於實際應用時的操作方式。於以下之應用實例中,假設輸入之數值資料為一32位元之網路位址30,且於此實施例中係採用3階段查詢方式來將該32位元之網路位址30的長度格式劃分成3個區段:16位元前置區段31、8位元中間區段32、以及8位元後置區段33。
於多階層式查詢表資料結構模組100為第4A圖所示之第一實施方式的情況下,當本發明之數值資料範圍區間查詢系統50接收到一輸入之網路位址30時,數值資料分段讀取模組210即會首先讀取該網路位址30的16位元前置區段31的數值,並將讀取到的數值傳送給查詢處理模組220作為第1階段之查詢程序的索引字組,令查詢處理模組220利用此索引字組來從第1階查詢表110中索引出其對應值。
若對應值為一編號設定項111,則即完成查詢工作,並輸出該編號設定項111所儲存之編號作為輸出之查詢結果40。
反之,若對應值為一連結設定項112,則接著進行第2階段之查詢程序,令數值資料分段讀取模組210接著讀取輸入之網路位址30的8位元之中間區段32的數值,並將讀取到的數值傳送給查詢處理模組220作為第2階段之查詢程序的索引字組,令查詢處理模組220利用此索引字組來從該連結設定項112所連結之第2階查詢表(即第2階第1層查詢表120a或第2階第2層查詢表120b)中索引出其對應值。若對應值為一編號設定項121,則即完成查詢工作,並輸出該編號設定項121所儲存之編號作為輸出之查詢結果40。反之,若對應值為一連結設定項122,則接著進行第3階段之查詢程序,令數值資料分段讀取模組210接著讀取輸入之網路位址30的8位元之後置區段33的數值,並將讀取到的數值傳送給查詢處理模組220作為第3階段之查詢程序的索引字組,令查詢處理模組220利用此索引字組來從該連結設定項122所連結之第3階查詢表130中索引出其對應值,並將索引出之編號作為輸出之查詢結果40。
於多階層式查詢表資料結構模組100為第4B圖所示之第二實施方式的情況下,當本發明之數值資料範圍區間查詢系統50接收到一輸入之網路位址30時,數值資料分段讀取模組210即會首先讀取該網路位址30的16位元前置區段31的數值,並將讀取到的數值傳送給查詢處理模組220作為第1階段之查詢程序的索引字組,令查詢處理模組220利用此索引字組來從第1階查詢表110中索引出其對應值。
若對應值為一編號設定項111或一連結設定項112,則其處理方式與上述之第一實施方式相同,因此於此不作重複之說明。
反之,若對應值為一編號範圍設定及連結項113,則即讀取其中之編號範圍設定值(於第4B圖所示之實施例中,例如為[5-3],代表編號為{[5]、[6]、[7]}其中之一),並將下一階段的查詢工作連結至範圍區間查詢表140;再接著利用網路位址30的全部32位元的值從此範圍區間查詢表140的3個編號{[5]、[6]、[7]}的範圍中索引出對應之編號,並將索引出之編號作為輸出之查詢結果40。
總而言之,本發明提供了一種新穎之數值資料範圍區間查詢方法及系統,其特點在於將輸入之數值資料的格式長度分割為複數個區段,並從最前端之區段開始逐一針對其各個區段數值及按照一預定之範圍區間對應關係來建立複數個階層化連結之查詢表;並於實際對一輸入之數值資料進行其範圍區間編號的查詢時,從最前端之區段開始循序利用各個區段的數值作為索引字組來對該多階層式查詢表資料結構中的各個查詢表逐一進行查詢工作,直至搜尋到對應之範圍區間編號為止。此作法的優點在於具體實施上可需求較小之記憶體儲存空間,並可提供更快速之處理效能。本發明因此較先前技術具有更佳之進步性及實用性。
以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之實質技術內容的範圍。本發明之實質技術內容係廣義地定義於下述之申請專利範圍中。若任何他人所完成之技術實體或方法與下述之申請專利範圍所定義者為完全相同、或是為一種等效之變更,均將被視為涵蓋於本發明之申請專利範圍之中。
10...資訊處理系統
20...範圍區間對應表
30...輸入之數值資料(網路位址)
31...16位元前置區段
32...8位元之中間區段
33...8位元之後置區段
40...輸出之查詢結果(範圍區間編號)
50...本發明之數值資料範圍區間查詢系統
100...多階層式查詢表資料結構模組
110...第1階查詢表
111...編號設定項
112...連結設定項
113...編號範圍設定及連結項
120...第2階查詢表
120a...第2階第1層查詢表
120b...第2階第2層查詢表
121...編號設定項
122...連結設定項
123...編號範圍設定及連結項
130...第3階查詢表
131...編號設定項
140...範圍區間查詢表
210...數值資料分段讀取模組
220...查詢處理模組
第1圖為一應用示意圖,用以顯示本發明之數值資料範圍區間查詢系統整合至一資訊處理系統的應用實例;第2圖為一功能示意圖,用以顯示本發明之數值資料範圍區間查詢系統的輸入輸出功能模型;第3圖為一架構示意圖,用以顯示本發明之數值資料範圍區間查詢系統之模組化的基本架構;第4A圖為一資料結構示意圖,用以顯示本發明所採用之多階層式查詢表資料結構模組的第一實施方式;第4B圖為一資料結構示意圖,用以顯示本發明所採用之多階層式查詢表資料結構模組的第二實施方式。
30...輸入之數值資料(網路位址)
40...輸出之查詢結果(範圍區間編號)
50...本發明之數值資料範圍區間查詢系統
100...多階層式查詢表資料結構模組
210...數值資料分段讀取模組
220...查詢處理模組
Claims (25)
- 一種數值資料範圍區間查詢方法,其可應用於一資訊處理系統,用以對一組輸入之固定長度格式之數值資料提供一範圍區間查詢功能;其中該輸入之數值資料的所有可能之值係預先區分成複數個連續之範圍區間,且各個範圍區間係預先設定為對應至一獨特之編號,而該範圍區間查詢功能即用以查詢出該輸入之數值資料之值所對應之範圍區間編號;此數值資料範圍區間查詢方法至少包含:預建一多階層式查詢表資料結構,其係將輸入之數值資料的格式長度分割為複數個不等長的區段,並從最前端之區段開始逐一針對其區段數值及按照一預定之範圍區間對應關係來建立複數個階層化連結之查詢表;於實際操作時,將該輸入之數值資料以一分段方式讀取出其中之各個區段中的數值,並將各個讀取出之區段數值分別作為一查詢用之索引字組;以及利用各個索引字組來對該多階層式查詢表資料結構中的複數個階層化之查詢表進行一查詢程序,藉此而索引出該輸入之數值資料所對應之範圍區間編號。
- 如申請專利範圍第1項所述之數值資料範圍區間查詢方法,其中該輸入之數值資料為一網路位址。
- 如申請專利範圍第1項所述之數值資料範圍區間查詢 方法,其中該輸入之數值資料為一記憶體位址。
- 如申請專利範圍第1項所述之數值資料範圍區間查詢方法,其中該輸入之數值資料為一硬碟位址。
- 一種數值資料範圍區間查詢系統,其可整合至一資訊處理系統,用以對一組輸入之固定長度格式之數值資料提供一範圍區間查詢功能;其中該輸入之數值資料的所有可能之值係預先區分成複數個連續之範圍區間,且各個範圍區間係預先設定為對應至一獨特之編號,而該範圍區間查詢功能即用以查詢出該輸入之數值資料之值所對應之範圍區間編號;此數值資料範圍區間查詢系統至少包含:一多階層式查詢表資料結構模組,其係將輸入之數值資料的格式長度分割為複數個不等長的區段,並從最前端之區段開始逐一針對其區段數值及按照一預定之範圍區間對應關係來建立一多階層式的查詢表資料結構,其中包括複數個階層化連結之查詢表;一數值資料分段讀取模組,其可將該輸入之數值資料以一分段方式讀取出其中之各個區段中的數值,並將各個讀取出之區段數值分別作為一查詢用之索引字組;以及一查詢處理模組,其可利用該數值資料分段讀取模組所讀取到之索引字組來對該多階層式查詢表資料結構模組中的複數個階層化之查詢表進行一查詢程序,藉此而索引出該輸入之數值資料所對應之範圍 區間編號。
- 如申請專利範圍第5項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一網路位址。
- 如申請專利範圍第5項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一記憶體位址。
- 如申請專利範圍第5項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一硬碟位址。
- 如申請專利範圍第5項所述之數值資料範圍區間查詢系統,其中該多階層式查詢表資料結構模組中的查詢表包括一編號範圍設定及連結項,用以設定該輸入之數值資料其中一個區段所對應之區間編號的範圍,並將其連結至一範圍區間查詢表。
- 如申請專利範圍第9項所述之數值資料範圍區間查詢系統,其中該編號範圍設定及連結項中所設定之各個編號範圍包括該編號範圍之起始值及終端值。
- 如申請專利範圍第9項所述之數值資料範圍區間查詢系統,其中該編號範圍設定及連結項中所設定之各個編號範圍包括該編號範圍的起始值及其中所包括之區間編號的個數。
- 如申請專利範圍第9項所述之數值資料範圍區間查詢系統,其中該編號範圍設定及連結項中所設定之各個編號範圍包括該編號範圍的終端值及其中所包括之區間編號的個數。
- 如申請專利範圍第9項所述之數值資料範圍區間查詢 系統,其中該範圍區間查詢表所採用之搜尋法為二元搜尋法。
- 一種數值資料範圍區間查詢系統,其可整合至一資訊處理系統,用以對一組輸入之固定長度格式之數值資料提供一範圍區間查詢功能;其中該輸入之數值資料的所有可能之值係預先區分成複數個連續之範圍區間,且各個範圍區間係預先設定為對應至一獨特之編號,而該範圍區間查詢功能即用以查詢出該輸入之數值資料之值所對應之範圍區間編號;此數值資料範圍區間查詢系統至少包含:一多階層式查詢表資料結構模組,其係將輸入之數值資料的格式長度分割為複數個不等長的區段,並從最前端之區段開始逐一針對其區段數值及按照一預定之範圍區間對應關係來建立一多階層式的查詢表資料結構,其中包括複數個階層化連結之查詢表;且其中之各個查詢表採用一編號設定項來設定對應之範圍區間編號,並採用一連結設定項來連結至下一階段的查詢表;一數值資料分段讀取模組,其可將該輸入之數值資料以一分段方式讀取出其中之各個區段中的數值,並將各個讀取出之區段數值分別作為一查詢用之索引字組;以及一查詢處理模組,其可利用該數值資料分段讀取模組所讀取到之索引字組來對該多階層式查詢表資 料結構模組中的複數個階層化之查詢表進行一查詢程序,藉此而索引出該輸入之數值資料所對應之範圍區間編號。
- 如申請專利範圍第14項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一網路位址。
- 如申請專利範圍第14項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一記憶體位址。
- 如申請專利範圍第14項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一硬碟位址。
- 一種數值資料範圍區間查詢系統,其可整合至一資訊處理系統,用以對一組輸入之固定長度格式之數值資料提供一範圍區間查詢功能;其中該輸入之數值資料的所有可能之值係預先區分成複數個連續之範圍區間,且各個範圍區間係預先設定為對應至一獨特之編號,而該範圍區間查詢功能即用以查詢出該輸入之數值資料之值所對應之範圍區間編號;此數值資料範圍區間查詢系統至少包含:一多階層式查詢表資料結構模組,其係將輸入之數值資料的格式長度分割為複數個不等長的區段,並從最前端之區段開始逐一針對其區段數值及按照一預定之範圍區間對應關係來建立一多階層式的查詢表資料結構,其中包括複數個階層化連結之查詢表;且其中之各個查詢表採用一編號設定項來設定對應之範圍區間編號,並採用一連結設定項來連結至下一 階段的查詢表,以及採用一編號範圍設定及連結項來設定對應之範圍區間編號的範圍及連結至一範圍區間查詢表;一數值資料分段讀取模組,其可將該輸入之數值資料以一分段方式讀取出其中之各個區段中的數值,並將各個讀取出之區段數值分別作為一查詢用之索引字組;以及一查詢處理模組,其可利用該數值資料分段讀取模組所讀取到之索引字組來對該多階層式查詢表資料結構模組中的複數個階層化之查詢表進行一查詢程序,藉此而索引出該輸入之數值資料所對應之範圍區間編號。
- 如申請專利範圍第18項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一網路位址。
- 如申請專利範圍第18項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一記憶體位址。
- 如申請專利範圍第18項所述之數值資料範圍區間查詢系統,其中該輸入之數值資料為一硬碟位址。
- 如申請專利範圍第18項所述之數值資料範圍區間查詢系統,其中該編號範圍設定及連結項中所設定之各個編號範圍包括該編號範圍之起始值及終端值。
- 如申請專利範圍第18項所述之數值資料範圍區間查詢系統,其中該編號範圍設定及連結項中所設定之各個編號範圍包括該編號範圍的起始值及其中所包括 之區間編號的個數。
- 如申請專利範圍第18項所述之數值資料範圍區間查詢系統,其中該編號範圍設定及連結項中所設定之各個編號範圍包括該編號範圍的終端值及其中所包括之區間編號的個數。
- 如申請專利範圍第18項所述之數值資料範圍區間查詢系統,其中該範圍區間查詢表所採用之搜尋法為二元搜尋法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097102787A TWI413910B (zh) | 2008-01-25 | 2008-01-25 | 數值資料範圍區間查詢方法及系統 |
US12/142,592 US8130763B2 (en) | 2008-01-25 | 2008-06-19 | Data item interval identifier lookup method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097102787A TWI413910B (zh) | 2008-01-25 | 2008-01-25 | 數值資料範圍區間查詢方法及系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200933406A TW200933406A (en) | 2009-08-01 |
TWI413910B true TWI413910B (zh) | 2013-11-01 |
Family
ID=40899163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097102787A TWI413910B (zh) | 2008-01-25 | 2008-01-25 | 數值資料範圍區間查詢方法及系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8130763B2 (zh) |
TW (1) | TWI413910B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI413910B (zh) * | 2008-01-25 | 2013-11-01 | Univ Nat Taiwan | 數值資料範圍區間查詢方法及系統 |
US9331982B2 (en) * | 2009-09-30 | 2016-05-03 | Freescale Semiconductor, Inc. | System and method for filtering received data units |
US9979648B1 (en) * | 2015-12-28 | 2018-05-22 | Amazon Technologies, Inc. | Increasing entropy across routing table segments |
CN112514337B (zh) * | 2018-08-07 | 2024-05-14 | 三菱电机株式会社 | 分布匹配电路、分布解匹配电路、分布匹配方法、分布解匹配方法以及光传输系统 |
CN114615196B (zh) * | 2022-03-24 | 2024-11-22 | 北京左江科技股份有限公司 | 一种高速精确匹配查找方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW444479B (en) * | 1998-11-03 | 2001-07-01 | Intel Corp | Method and apparatus for communicating transaction types between hubs in a computer system |
US6289013B1 (en) * | 1998-02-09 | 2001-09-11 | Lucent Technologies, Inc. | Packet filter method and apparatus employing reduced memory |
US6434144B1 (en) * | 1998-07-06 | 2002-08-13 | Aleksey Romanov | Multi-level table lookup |
TW508926B (en) * | 1999-09-22 | 2002-11-01 | Effnet Group Ab | Method and system for efficient routing table compression and fast routing lookups |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634028A (en) * | 1994-12-15 | 1997-05-27 | International Business Machines Corporation | Compact track address translation mapping system and method |
US6963924B1 (en) * | 1999-02-01 | 2005-11-08 | Nen-Fu Huang | IP routing lookup scheme and system for multi-gigabit switching routers |
TW468116B (en) * | 1999-02-08 | 2001-12-11 | Wen-Shian Chen | High speed Internet protocol address lookups method for saving memory |
EP1083768A1 (en) * | 1999-09-08 | 2001-03-14 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | A method for facilitating data transmission |
US20010042130A1 (en) * | 1999-12-10 | 2001-11-15 | Mosaid Technologies, Inc. | Method and apparatus for depth expansion of a longest prefix match lookup table |
US7274697B2 (en) * | 2000-11-16 | 2007-09-25 | Tensilica, Inc. | Fast IP route lookup with 16/K and 16/Kc compressed data structures |
US7031320B2 (en) * | 2000-12-22 | 2006-04-18 | Samsung Electronics Co., Ltd. | Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables |
US7031314B2 (en) * | 2001-05-16 | 2006-04-18 | Bytemobile, Inc. | Systems and methods for providing differentiated services within a network communication system |
US6775737B1 (en) * | 2001-10-09 | 2004-08-10 | Cisco Technology, Inc. | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories |
EP1457889A1 (en) * | 2003-03-13 | 2004-09-15 | Koninklijke Philips Electronics N.V. | Improved fingerprint matching method and system |
JP4818249B2 (ja) * | 2007-12-14 | 2011-11-16 | アラクサラネットワークス株式会社 | ネットワーク中継システム、ネットワーク中継システムの制御方法、および、ネットワーク中継システムにおける管理装置 |
TWI348297B (en) * | 2008-01-25 | 2011-09-01 | Univ Nat Taiwan | Two-stage computer network packet classification method and system |
TWI413910B (zh) * | 2008-01-25 | 2013-11-01 | Univ Nat Taiwan | 數值資料範圍區間查詢方法及系統 |
-
2008
- 2008-01-25 TW TW097102787A patent/TWI413910B/zh not_active IP Right Cessation
- 2008-06-19 US US12/142,592 patent/US8130763B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289013B1 (en) * | 1998-02-09 | 2001-09-11 | Lucent Technologies, Inc. | Packet filter method and apparatus employing reduced memory |
US6434144B1 (en) * | 1998-07-06 | 2002-08-13 | Aleksey Romanov | Multi-level table lookup |
TW444479B (en) * | 1998-11-03 | 2001-07-01 | Intel Corp | Method and apparatus for communicating transaction types between hubs in a computer system |
TW508926B (en) * | 1999-09-22 | 2002-11-01 | Effnet Group Ab | Method and system for efficient routing table compression and fast routing lookups |
Non-Patent Citations (3)
Title |
---|
Chi Jia Huang; Chien Chen ; Chia Sheng Chou ; Shou Ting Kao , 「Fast Packet Classification Using Multi-Dimensional Encoding 」,Published in: High Performance Switching and Routing, 2007. HPSR '07. Workshop on ,Date of Conference: May 30 2007-June 1 2007 ,Page(s):1 - 6 2007/06/01 * |
Hung-Yi Chang ; Chia-Tai Chan ; Pi-Chung Wang ; Chun-Liang Lee,「A scalable hardware solution for packet classification 」,Published in:Communications Systems, 2004 * |
ICCS 2004. The Ninth International Conference on ,Date of Conference: 7-7 Sept. 2004, Page(s): 542 - 546 2004/09/07 * |
Also Published As
Publication number | Publication date |
---|---|
US8130763B2 (en) | 2012-03-06 |
US20090190597A1 (en) | 2009-07-30 |
TW200933406A (en) | 2009-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6434144B1 (en) | Multi-level table lookup | |
Mun et al. | New approach for efficient ip address lookup using a bloom filter in trie-based algorithms | |
Lim et al. | On adding bloom filters to longest prefix matching algorithms | |
US6728732B1 (en) | Data structure using a tree bitmap and method for rapid classification of data in a database | |
US20230127391A1 (en) | Algorithmic tcam based ternary lookup | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
US7446681B2 (en) | Lookup table array compression and indexing | |
US20050174272A1 (en) | Content-based information retrieval architecture | |
TWI413910B (zh) | 數值資料範圍區間查詢方法及系統 | |
Le et al. | Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning | |
US7249149B1 (en) | Tree bitmap data structures and their use in performing lookup operations | |
CN101621502A (zh) | 存储、查找路由表的方法及装置 | |
JP4995125B2 (ja) | 固定長データの検索方法 | |
EP1063827B1 (en) | Method for address lookup | |
Pao et al. | Efficient hardware architecture for fast IP address lookup | |
CN103107945B (zh) | 一种快速查找ipv6路由的系统及方法 | |
Hua et al. | A multi-attribute data structure with parallel bloom filters for network services | |
CN1543150A (zh) | 分组分类装置和使用字段级特里结构的方法 | |
CN107330094A (zh) | 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法 | |
US6590898B1 (en) | Method and apparatus for routing data packets | |
CN115987888B (zh) | 路由地址存储方法、装置、网络设备及存储介质 | |
CN115086221B (zh) | 一种报文处理方法、装置、转发设备和存储介质 | |
US6671771B2 (en) | Hash CAM having a reduced width comparison circuitry and its application | |
US6804768B2 (en) | Programmable microprocessor cache index hashing function | |
Lim et al. | Tuple pruning using bloom filters for packet classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |