專利名稱::應(yīng)用于網(wǎng)絡(luò)裝置的查詢裝置與方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種網(wǎng)絡(luò)裝置的查詢引擎,尤指一種可選擇特性獨(dú)立分布(IdentityIndependentDistribution,以下簡稱I.I.D.)的雜湊函數(shù)的查詢引擎,以有效查詢網(wǎng)絡(luò)地址查詢表。為改善網(wǎng)絡(luò)地址的查詢效率,在INFOCOMM2000期刊中,徐俊(JunXu)等人發(fā)表一種新的快取架構(gòu)(routecachingscheme),可以存儲器存取速度支持layer-4的封包分類,(參見“ANovelCacheArchitecturetoSupportLayer-FourPacketClassificationatMemoryAccessSpeeds”一文)。該新的路由快取架構(gòu)建立在一種全新、且不依賴統(tǒng)計(jì)方式的平行雜湊架構(gòu)(statisticallyindependentparallelhashingscheme)的基礎(chǔ)上的動態(tài)集合關(guān)聯(lián)架構(gòu)(dynamicset-associativescheme)。徐俊所設(shè)計(jì)的路由快取架構(gòu)(routecache)是針對layer-4的查詢需求而設(shè)計(jì)的。該路由快取架構(gòu)包含一般的N個(gè)分項(xiàng)集合關(guān)聯(lián)架構(gòu)(N-wayset-associativescheme),其中N雜湊函數(shù)h1,h2,…,hN滿足以下的特性假設(shè)有個(gè)任意的雜湊鍵(hashkey)X,該雜湊鍵在經(jīng)過雜湊函數(shù)h1(x),h2(x),…,hN(x)等的運(yùn)算后,所產(chǎn)生的結(jié)果會是具有特性獨(dú)立分布(I.I.D.)的任意變量。參考圖1,當(dāng)一查詢的需求(request)到來時(shí),該需求中由104比特所構(gòu)成的layer-4地址<DA,SA,DP,SP,PRO>101,會分別被N個(gè)不同的硬件雜湊運(yùn)算裝置102平行處理,以產(chǎn)生N個(gè)具有r比特的雜湊值,及(104-r)-bit的尾標(biāo)(tags)。雜湊運(yùn)算裝置102的輸出傳送到N個(gè)獨(dú)立的SLDRAM(SynchronizeLinkDynamicRandomAccessMemory)儲存區(qū)塊(banks)103。每個(gè)快取登錄(entry)的尾標(biāo)字段將與雜湊運(yùn)算裝置102所輸出的尾標(biāo)值同時(shí)且平行地進(jìn)行比較。如果其中一個(gè)登錄的配對成功,對應(yīng)于該登錄的“next-hop”字段將會作為多任務(wù)器105的最后的“next-hop”輸出。相對地,查詢失誤(lookupmiss)則會由一取代邏輯(ReplacementLogic)106加以處理。徐俊的快取架構(gòu)的優(yōu)點(diǎn)在于可有效地降低碰撞機(jī)率。然而,徐俊并未揭露如何從GF(2)定義下的矩陣中選擇具有I.I.D.特性的雜湊函數(shù),而且每個(gè)雜湊函數(shù)個(gè)別地對應(yīng)于該矩陣。本發(fā)明的主要目的是提供一種易于實(shí)施于網(wǎng)絡(luò)裝置且效率高的查詢引擎,是利用I.I.D.雜湊函數(shù)以達(dá)到快速查詢網(wǎng)絡(luò)地址查詢表的目的。本發(fā)明的另一目的是提供一種可應(yīng)用于Layer-4網(wǎng)絡(luò)裝置的查詢引擎,以提供快速的封包轉(zhuǎn)送機(jī)制。本發(fā)明的又一目的是提供一種易于實(shí)施的雜湊機(jī)制,以選擇具有I.I.D.特性的雜湊函數(shù),進(jìn)而降低碰撞的機(jī)率,提高查詢網(wǎng)絡(luò)地址查詢表的效率。本發(fā)明的應(yīng)用于網(wǎng)絡(luò)裝置的查詢裝置是這樣實(shí)現(xiàn)的其至少包含一文法分析器,用以取得一到來的封包的網(wǎng)絡(luò)地址信息;一設(shè)定數(shù)的位移控制邏輯,其中每一位移控制邏輯用以依據(jù)該到來的封包的地址信息,各別產(chǎn)生具有特性獨(dú)立分布(I.I.D.)特性的雜湊索引;及一選擇裝置,用以從該設(shè)定數(shù)的位移控制邏輯中選擇一具有I.I.D.特性的雜湊索引,及經(jīng)由該所選擇的I.I.D.特性的雜湊索引,使該網(wǎng)絡(luò)地址查詢表輸出該到來的封包的轉(zhuǎn)送判定。更包含一中央處理單元,用以在上述的I.I.D.雜湊索引在上述的網(wǎng)絡(luò)地址查詢表中找不到對應(yīng)的資料時(shí),處理上述的到來的封包。3.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一目的MAC地址。4.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一目的IP地址。5.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一數(shù)據(jù)流地址。6.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的位移控制邏輯包含一位移緩存器,系分為復(fù)數(shù)個(gè)區(qū)段,用以依據(jù)一設(shè)定數(shù)的雜湊鍵的數(shù)目,執(zhí)行該復(fù)數(shù)個(gè)區(qū)段的位移;及XOR運(yùn)算裝置,用以執(zhí)行上述的復(fù)數(shù)個(gè)區(qū)段的XOR運(yùn)算。7.一種應(yīng)用于網(wǎng)絡(luò)裝置的查詢方法,至少包含步驟從一到來的封包的標(biāo)頭取得網(wǎng)絡(luò)地址;分割該m位的網(wǎng)絡(luò)地址為復(fù)數(shù)個(gè)區(qū)段Si,每個(gè)區(qū)段有n位,其中;執(zhí)行區(qū)段Sbase及區(qū)段Sextend的XOR運(yùn)算,以產(chǎn)生一I.I.D.雜湊索引,其中該區(qū)段Sbase的形成,是對該每個(gè)區(qū)段進(jìn)行XOR運(yùn)算的結(jié)果,及該區(qū)段Sextend的形成,是對區(qū)段So位移由一特定的雜湊鍵(hashkey)的數(shù)目所取決的位數(shù)的結(jié)果;及以該I.I.D.雜湊索引查詢一網(wǎng)絡(luò)地址查詢表,以產(chǎn)生轉(zhuǎn)送信息。8.如申請專利范圍第7項(xiàng)所述的方法,更包含步驟藉由填入二進(jìn)制的0,以使上述的區(qū)段具有與區(qū)段So相同的長度。9.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為一數(shù)據(jù)流地址(flowaddress),且上述的網(wǎng)絡(luò)地址查詢表為一數(shù)據(jù)流表(flowtable)。10.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為目的IP地址,及上述的網(wǎng)絡(luò)地址查詢表為一路由表。11.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為MAC地址,及上述的網(wǎng)絡(luò)地址查詢表為一過濾表。12.如申請專利范圍第7項(xiàng)所述的方法,更包含步驟當(dāng)上述的I.I.D.雜湊索引不在上述的網(wǎng)絡(luò)地址查詢表時(shí),轉(zhuǎn)送上述的到來封包至一處理器。本發(fā)明是一種網(wǎng)絡(luò)裝置的查詢引擎,包含一文法分析器,用以取得到來的封包的網(wǎng)絡(luò)地址信息。特定數(shù)量的位移控制邏輯,用以依據(jù)到來的封包的網(wǎng)絡(luò)地址信息,產(chǎn)生特性獨(dú)立分布(I.I.D.)的雜湊索引。每個(gè)位移控制邏輯的輸出經(jīng)由選擇器的逐一挑選,可藉由查詢網(wǎng)絡(luò)地址查詢表,而輸出相對應(yīng)的轉(zhuǎn)送信息。本發(fā)明更提出一種應(yīng)用于網(wǎng)絡(luò)裝置的查詢引擎的方法,該方法包含以下步驟首先,從到來的封包的標(biāo)頭部份取得網(wǎng)絡(luò)地址信息。然后,將m位的網(wǎng)絡(luò)地址分割為多個(gè)區(qū)段Si,每個(gè)區(qū)段具有n位,其中。然后,執(zhí)行區(qū)段Sbase及Sextend的XOR運(yùn)算,以產(chǎn)生I.I.D.雜湊索引。其中,區(qū)段Sbase是藉由在每個(gè)區(qū)段上執(zhí)行XOR運(yùn)算的方式所形成,而區(qū)段Sextend是藉由輪轉(zhuǎn)區(qū)段So的幾個(gè)特定數(shù)的比特而形成,而這幾個(gè)特定數(shù)的比特是依據(jù)雜湊鍵的數(shù)目所決定的。之后,利用I.I.D.雜湊索引查詢網(wǎng)絡(luò)地址查詢表,以產(chǎn)生轉(zhuǎn)送的信息。圖1為一傳統(tǒng)技術(shù)的快取架構(gòu)示意圖。圖2為一依據(jù)本發(fā)明的較佳實(shí)施例的網(wǎng)絡(luò)裝置的查詢引擎架構(gòu)的功能方塊圖。圖3為一依據(jù)本發(fā)明的較佳實(shí)施例的多重分項(xiàng)雜湊機(jī)制的功能方塊圖。圖4為一依據(jù)本發(fā)明的較佳實(shí)施例的位移控制邏輯的運(yùn)作流程的流程圖。為解決傳統(tǒng)的雜湊碰撞的問題,并提供一種適用于layer-4網(wǎng)絡(luò)裝置的查詢機(jī)制,本發(fā)明提供一種簡單的雜湊機(jī)制的硬件實(shí)施方式,是可選擇一具有特性獨(dú)立分布(IdentityIndependentDistribution,以下簡稱I.I.D.)的特性的雜湊函數(shù),以更有效地查詢網(wǎng)絡(luò)地址查詢表。本發(fā)明的雜湊機(jī)制可適用于任何需要進(jìn)行查表的網(wǎng)絡(luò)裝置,以產(chǎn)生封包轉(zhuǎn)送的判定(packetforwardingdecision),如layer-2,layer-3,及l(fā)ayer-4的交換器(switch)、路由器(router)、或橋接器(bridge)等。圖2顯示可提供layer-4服務(wù)的網(wǎng)絡(luò)裝置的查詢引擎10的基本架構(gòu)。當(dāng)layer-4的網(wǎng)絡(luò)裝置收到一個(gè)封包時(shí),便將該到來的封包傳送至查詢引擎10,以作出封包轉(zhuǎn)送的判定。到來的封包的標(biāo)頭部份將由文法分析器(parser)11進(jìn)行分析,以將標(biāo)頭的信息分別提供給封包分類裝置12,layer-3邏輯14,及l(fā)ayer-2邏輯18。有關(guān)layer-2及l(fā)ayer-3轉(zhuǎn)送引擎的架構(gòu)已為一般掌握該項(xiàng)技藝的人員所熟知,因此不再詳述。一般就網(wǎng)絡(luò)裝置所提供的layer-3服務(wù)而言,文法分析器11會將到來封包的目的IP地址轉(zhuǎn)送至layer-3邏輯14,以查詢路由表141,并使路由表141輸出相對應(yīng)的輸出端口端口。然后,輸出端口的信息便傳送至合并邏輯(MergeLogic)16。另一方面,在layer-2的服務(wù)層次而言,到來封包的MAC地址會轉(zhuǎn)送到layer-2邏輯18,以查詢過濾表(filteringtable)181,并輸出到相對應(yīng)的輸出端口。該輸出端口也同樣會傳送至合并邏輯16。合并邏輯16則利用輸出端口的信息以指導(dǎo)輸入端口如何處理該到來的封包,并傳送輸出端口信息至轉(zhuǎn)送引擎(forwardlngengine)17。任何的查詢失誤(1ookupmiss)將會傳送至中央處理單元(CentralProcessUnit,CPU)13以將到來的封包作更進(jìn)一步的處理。CPUl3中有一個(gè)規(guī)則表(ruletable)131,以作為服務(wù)類別的區(qū)分(servicedifferentiation),其中還有封包過濾(packetfiltering),策略選徑(policyrouting),流量限制(trafficratelimiting),會計(jì)及付款(accountingandbilling)等功能。規(guī)則表131可由系統(tǒng)/網(wǎng)絡(luò)管理者所界定,或從決策服務(wù)器(Dolicyserver)下載。規(guī)則表131的數(shù)據(jù)結(jié)構(gòu)包含來源IP地址(sourceIPaddress),來源IP地址屏蔽(sourceIPaddressmask),目的IP地址(destinationIPaddress),目的IP地址屏蔽(destinationIPaddressmask),來源端口范圍(sourceportrange),目的端口范圍(destinationportrange),協(xié)議ID(protocolID),可容許的輸入率(allowedinputrate),各跳程的行為(Per-hopbehavior,PHB),及下一個(gè)跳程(hop)等字段。每條法則可以包含一個(gè)以上的數(shù)據(jù)流(flow)。以下有幾條法則的例子,這些例子只供解說之用,而非用以限制本發(fā)明的范圍。例如法則1,服務(wù)區(qū)分(ServiceDifferentiation)從子網(wǎng)絡(luò)1.2.3.x來的封包應(yīng)接收EFPHB的信息。法則2,封包過濾(PacketFiltering)拒絕所有來自4.5.6.x且目的為7.8.9.x的封包。法則3,策略選徑(PolicyRouting)傳送所有來自10.2.3.x的語音用IP(voice-over-IP)封包,并通過分開的ATM網(wǎng)絡(luò)傳送至20.4.5.6。法則4,會計(jì)及付款(Accounting&Billing)將所有傳送至80.90.100.200的影像數(shù)據(jù)流量(videotraffic)賦予最高的優(yōu)先權(quán),并將以該方式傳送的流量予以計(jì)費(fèi)。法則5,流量率限制(TrafficRateLimiting)確定子網(wǎng)絡(luò)30.7.8.不會涌入5Mbps以上的電子郵件,并確定整體的流量控制在20Mbps。當(dāng)封包傳送給查詢引擎10時(shí),到來的封包的標(biāo)頭信息將會被用作數(shù)據(jù)流地址(flowaddress),以查詢封包分類裝置12的數(shù)據(jù)流表121。對任何新到來的封包,封包會導(dǎo)致數(shù)據(jù)流表的查詢失誤。然后,封包便會傳送到CPU13,以依據(jù)規(guī)則表131中所界定的法則,更進(jìn)一步地對封包進(jìn)行分類。應(yīng)事先將利用CPU運(yùn)算的算法安裝好,以對到來的封包進(jìn)行分類。每個(gè)傳送到CPU13的封包會符合上述的至少一條已定義的法則。每條法則指定一種可將封包加以歸類的類別,如Per-HopBehavior(PHB)?;谶@些指定的類別,封包便會依據(jù)這些服務(wù)的分類被傳送。同時(shí),CPU13在數(shù)據(jù)流表121中,會為屬于該數(shù)據(jù)流的到來封包,產(chǎn)生一筆新的數(shù)據(jù)輸入(entry)。在本發(fā)明的一較佳實(shí)施例中,封包分類裝置(packetclassifier)12具有自動學(xué)習(xí)(Auto-learning)的能力。也就是,封包分類裝置12將會學(xué)習(xí)CPU13的轉(zhuǎn)送方式(forwardingbehavior),如PHB選擇,并將該筆選擇記錄于數(shù)據(jù)流表121中。封包分類裝置12使用文法分析器11所提供的標(biāo)頭信息以形成數(shù)據(jù)流地址(flowaddress),并進(jìn)行數(shù)據(jù)流表121的查詢。所謂的“數(shù)據(jù)流”(flow)是一種應(yīng)用對應(yīng)用(application-to-application)的封包流,且“數(shù)據(jù)流”是由來源IP(SIP)、目的IP(DIP)、協(xié)議(PRO)、來源端口(SP),及目的端口(DP)等信息的比特所構(gòu)成的比特組合(bit-combination)。數(shù)據(jù)流表121己錄來源IP地址、目的IP地址、來源端口、目的端口、協(xié)議ID,及法則索引等信息,以產(chǎn)生對應(yīng)于到來的封包的計(jì)量ID(MID)。為解說方便,試舉一些數(shù)據(jù)流的實(shí)施例如下數(shù)據(jù)流-1從IP1.2.3.4,port1500至IP100.2.3.4,port150,等來的封包,為一符合法則-1的數(shù)據(jù)流,在數(shù)據(jù)流表121中為一筆登錄(entry)。數(shù)據(jù)流-2從IP1.2.3.8,port2500至IP200.2.3.4,port250到來的封包,也屬于EF(expeditedforwarding)的數(shù)據(jù)流。流量策略管理裝置(TrafficProfileManager)15維護(hù)一計(jì)量表151。計(jì)量表151的數(shù)據(jù)結(jié)構(gòu)包含符號空欄(tokenbucket)、容許的輸入率(allowedinputrate),最后一次的更新登錄(lasttimeupdateentry,tokenenoughPHB,tokennotenoughPHB,及tokennotenoughnexthop)。計(jì)量表151記錄線上流量的統(tǒng)計(jì)及流量參數(shù),以決定數(shù)據(jù)流的流量是否符合設(shè)定的方案(profile)。計(jì)量表151也分別記錄方案中(in-profile)及方案外(out-of-profile)的活動。計(jì)量表151將依據(jù)數(shù)據(jù)流表12所輸出的計(jì)量ID,輸出一轉(zhuǎn)送的決定給轉(zhuǎn)送引擎(forwardingengine)17。計(jì)量表151也可輸出一轉(zhuǎn)送端口判定給合并邏輯16。以上述的例子為例,數(shù)據(jù)流-1與數(shù)據(jù)流-2應(yīng)符合法則-1所界定的流量方案(trafficprofile)。任何查詢失誤也將會送至CPU13處理。查詢引擎10具有查詢網(wǎng)絡(luò)地址查詢表的機(jī)制,包含但不限于數(shù)據(jù)流表121,計(jì)量表151,路由表141及過濾表181。以數(shù)據(jù)流表121的查詢?yōu)槔景l(fā)明提供一雜湊機(jī)制,其可選擇一I.I.D.雜湊函數(shù)以更有效查詢數(shù)據(jù)流表121。參閱圖2,以顯示本發(fā)明的最佳實(shí)施例的雜湊機(jī)制。雜湊機(jī)制可將雜湊鍵的范圍(universe)轉(zhuǎn)譯為更零散、更均勻分布的地址。參閱圖3,數(shù)據(jù)流表121是作為個(gè)別的端點(diǎn)對端點(diǎn)(end-to-end)的數(shù)據(jù)流的快取數(shù)據(jù)流信息之用。每筆數(shù)據(jù)流表121中的登錄以一個(gè)完全指定的過濾器(fullyspecifiedfilter)(即不包含萬用字符,nowildcards)對應(yīng)至一筆數(shù)據(jù)流。由于不用萬用字符(wildcarding),所以雜湊的運(yùn)算可以更有效地執(zhí)行,以實(shí)施數(shù)據(jù)流表121。為提供I.I.D.特性的雜湊函數(shù),本發(fā)明應(yīng)用一種數(shù)學(xué)上已經(jīng)獲得證明的I.I.D.矩陣,由L.Carter及M.Wegman在“UniversalClassesofHashingFunctions,”一文中所提出,(參見J.ComputerandSystemSciences,vol.18,no.2,pp.143-154,1979。)以產(chǎn)生多個(gè)I.I.D.雜湊函數(shù)。依此,I.I.D.雜湊函數(shù)的產(chǎn)生,可用數(shù)據(jù)流地址<SIP,DIP,SP,DP,PRO>乘以I.I.D.矩陣來達(dá)成。I.I.D.矩陣可以下列方式表示其中,B代表n位的雜湊索引,Q代表所有n×m矩陣的集合,T代表轉(zhuǎn)換裝置,A代表m位的數(shù)據(jù)流地址。依此,每個(gè)雜湊函數(shù)為BT=QAT的線性轉(zhuǎn)換,該線性轉(zhuǎn)換為m-位的二進(jìn)制比特流(bit-stream)A=a0a1…am-1對應(yīng)至n-位的二進(jìn)制比特流,B=b0b1…bn-1。在此,k-比特流被視為k-因次的向量,以GF(2)={0,1}定義的。Q為n×m矩陣,由GF(2)所定義且每個(gè)雜湊函數(shù)單獨(dú)地對應(yīng)至該矩陣Q。GF(2)中的乘積與加法運(yùn)算是分別由booleanAND(以符號&表示)及XOR(以符號_表示)的操作數(shù)所執(zhí)行的。因此,B的每個(gè)位計(jì)算如下bi=(a0&qi,0)_(a1&qi,1)_…_(am-1&qi,m-1),i=0,1,2,…,n-1。讓Q指n×m矩陣所有可能的集合,其中n代表2n大小的數(shù)據(jù)流表,m代表m位的數(shù)據(jù)流地址的數(shù)目。讓Qh∈Q為所需要的矩陣集合,且0≤h≤n-l(索引h指雜湊函數(shù)選擇器)。而且,讓qi,j指Qh的組件,其中i代表行列數(shù)(rownumber),j代表字段數(shù)(columnnumber),(0≤i≤n-1且0≤j≤m-1)。然后,在此條件下當(dāng)j<n時(shí),如果j等于(i+h)modn,qi,j=1;否則,qi,j=0;當(dāng)j≥n時(shí),如果i等于jmodn,qi,j=1;否則,qi,j=0。依據(jù)此條件,I.I.D.雜湊函數(shù)可從I.I.D.矩陣中選取出來。因此,基于qi,j的定義,bi=a(i+h)modn_ai+n_ai+n…,其中i=0,1,2,…,n-1。依據(jù)該條件,假設(shè)有一任意的雜湊鍵X或一數(shù)據(jù)流地址,則多重分項(xiàng)N(themulti-wayN)的雜湊函數(shù)h1(x),h2(x),…,hN(x)都是I.I.D的任意變量。也就是,每個(gè)雜湊索引,如h1(X),可被視為數(shù)據(jù)流表121中的一個(gè)內(nèi)存空間地址。假設(shè)有個(gè)特別的數(shù)據(jù)流地址,這些所產(chǎn)生的雜湊索引都必然不相同。為更清楚顯示這些雜湊鍵的I.I.D.特性,以一個(gè)5×19Q矩陣為例說明,其中雜湊函數(shù)選擇器h為2。然后,Q2經(jīng)過計(jì)算并顯示如下由以上的矩陣可知,數(shù)據(jù)流地址在矩陣中的排列是零散地分布。并且,Qh所有的行列向量(rowvectors)的線性分布都是獨(dú)立的。在上述的矩陣選擇(Qh)程序形成的后,就不必執(zhí)行任何與矩陣相關(guān)的運(yùn)算。上述的方法的硬件實(shí)施可利用簡易的位移控制邏輯22來達(dá)成。位移控制邏輯22包含一個(gè)位移緩存器及多個(gè)XOR邏輯門。位移控制邏輯22的運(yùn)算如圖4所示。依據(jù)圖3所示的較佳實(shí)施例,每個(gè)數(shù)據(jù)流地址皆會由四個(gè)位移控制邏輯22進(jìn)行4次的雜湊運(yùn)算。換言之,圖3的實(shí)施例在成本的考慮下,每個(gè)數(shù)據(jù)流地址最多可存取數(shù)據(jù)流表121四次。其方法為,首先,從文法分析器11取得m位的數(shù)據(jù)流地址21,步驟301。然后,將數(shù)據(jù)流地址21切割為K個(gè)曲段Si,。每個(gè)區(qū)段Si包含n個(gè)位,表示1×n的矩陣。如果最后的區(qū)段有剩余的位,則以“0”將最右邊的位填滿,步驟302。的后,一邊執(zhí)行Si區(qū)段的位移,其位移的位數(shù)由所設(shè)定的雜湊鍵數(shù)決定,一邊進(jìn)行每個(gè)區(qū)段Si的XOR運(yùn)算,步驟303。換言之,在每次的XOR運(yùn)算的后,區(qū)段So的h-bit(在此為4位)先被向右位移。選擇器所選擇的雜湊索引(indexh)于是產(chǎn)生,即indexh=S0_S1…_使雜湊索引Sbase=S1XORS2XOR…Sk-1。由于任何的數(shù)據(jù)流地址A可表示為a0,a1,a2,…,am,Sbase的區(qū)段可表示為Sbase,i。如此,Sbase,i=an+i_a2n+i_…。步驟304 ̄步驟311是有關(guān)S0的h-bit的輪轉(zhuǎn)(rotate)與位移(shift),以產(chǎn)生每個(gè)I.I.D.的雜湊索引。步驟304設(shè)i=0。然后,設(shè)定Sextend=RotateS0Key[i]bits,以產(chǎn)生一個(gè)新的區(qū)段,步驟305。Sextend的組件可以Sextend,i來表示。于是,基于輪轉(zhuǎn)的運(yùn)算,Sextend,i=a(i+h)modn。然后,以執(zhí)行Sbase及Sextend的XOR運(yùn)作的方式,產(chǎn)生I.I.D.雜湊索引。Indexh=SbaseXORSextend,步驟306。當(dāng)Indexh為計(jì)算的結(jié)果時(shí),Indexh的組件可用Indexh,i表示。因此,Indexh,i=a(i+h)modn_an+i_a2n+i_…依此,輪轉(zhuǎn)(rotation)及XOR運(yùn)算的結(jié)果等同于矩陣的運(yùn)算(matrixoperation)。然后檢查i是否小于雜湊鍵的數(shù)目(keynumber),步驟307。如果是,執(zhí)行步驟308以將i的值加1,然后執(zhí)行步驟305。重復(fù)這些步驟,直到4個(gè)雜湊鍵皆已產(chǎn)生,然后執(zhí)行步驟309結(jié)束。位移控制邏輯22所產(chǎn)生的四個(gè)雜湊鍵依序地由選擇器23依據(jù)比較邏輯24的控制而選取,直到找到一筆空的登錄(entry)。比較器邏輯24依序地檢查該目前雜湊索引所對應(yīng)的數(shù)據(jù)流表121中的登錄,是否為空閑的。如果是,該登錄便被選取。否則,該比較器邏輯24便傳送一控制信號至選擇器23,以選取下一個(gè)可用的雜湊鍵22。此程序反復(fù)進(jìn)行,直到每個(gè)雜湊索引22皆已被選取。如果在第一輪的雜湊索引查詢中找不到空閑的位置,查詢失誤的信息便會傳送到CPU13,以處理到來的封包。依此,當(dāng)一查詢的需求到來時(shí),該需求中104-位的數(shù)據(jù)流地址21將會被用來產(chǎn)生n-位的雜湊索引。例如,如果n的值為16,則數(shù)據(jù)流表的大小為64K(2n=216)。直覺上,若與IP地址的雜湊進(jìn)行方式(32-bit→16-bit)相比較,這樣的雜湊配對(104-bit→16-bit)會導(dǎo)致高度的碰撞機(jī)率。然而,由于本發(fā)明使用了以上所描述的I.I.D.矩陣,因此雜湊碰撞的機(jī)率已降至最低。綜上所述,本發(fā)明所選擇的雜湊函數(shù)可保障在查表時(shí),可使窗體的查詢及數(shù)據(jù)插入具有I.I.D.的特性。因此,本發(fā)明可更有效地使用內(nèi)存空間并可與Layer-3邏輯及Layer-2邏輯一樣快速存取內(nèi)存,以在同樣的封包處理周期中完成其工作。如此,查詢引擎便可以快速地建構(gòu)每筆數(shù)據(jù)流的登錄并對屬于該筆數(shù)據(jù)流的封包進(jìn)行服務(wù)分類。1.一種應(yīng)用于網(wǎng)絡(luò)裝置的查詢裝置,至少包含一文法分析器,用以取得一到來的封包的網(wǎng)絡(luò)地址信息;一設(shè)定數(shù)的位移控制邏輯,其中每一位移控制邏輯用以依據(jù)該到來的封包的地址信息,各別產(chǎn)生具有特性獨(dú)立分布(I.I.D.)特性的雜湊索引;及一選擇裝置,用以從該設(shè)定數(shù)的位移控制邏輯中選擇一具有I.I.D.特性的雜湊索引,及經(jīng)由該所選擇的I.I.D.特性的雜湊索引,使該網(wǎng)絡(luò)地址查詢表輸出該到來的封包的轉(zhuǎn)送判定。2.如申請專利范圍第1項(xiàng)所述的查詢裝置,更包含一中央處理單元,用以在上述的I.I.D.雜湊索引在上述的網(wǎng)絡(luò)地址查詢表中找不到對應(yīng)的資料時(shí),處理上述的到來的封包。3.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一目的MAC地址。4.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一目的IP地址。5.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一數(shù)據(jù)流地址。6.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的位移控制邏輯包含一位移緩存器,系分為復(fù)數(shù)個(gè)區(qū)段,用以依據(jù)一設(shè)定數(shù)的雜湊鍵的數(shù)目,執(zhí)行該復(fù)數(shù)個(gè)區(qū)段的位移;及XOR運(yùn)算裝置,用以執(zhí)行上述的復(fù)數(shù)個(gè)區(qū)段的XOR運(yùn)算。7.一種應(yīng)用于網(wǎng)絡(luò)裝置的查詢方法,至少包含步驟從一到來的封包的標(biāo)頭取得網(wǎng)絡(luò)地址;分割該m位的網(wǎng)絡(luò)地址為復(fù)數(shù)個(gè)區(qū)段Si,每個(gè)區(qū)段有n位,其中;執(zhí)行區(qū)段Sbase及區(qū)段Sextend的XOR運(yùn)算,以產(chǎn)生一I.I.D.雜湊索引,其中該區(qū)段Sbase的形成,是對該每個(gè)區(qū)段進(jìn)行XOR運(yùn)算的結(jié)果,及該區(qū)段Sextend的形成,是對區(qū)段So位移由一特定的雜湊鍵(hashkey)的數(shù)目所取決的位數(shù)的結(jié)果;及以該I.I.D.雜湊索引查詢一網(wǎng)絡(luò)地址查詢表,以產(chǎn)生轉(zhuǎn)送信息。8.如申請專利范圍第7項(xiàng)所述的方法,更包含步驟藉由填入二進(jìn)制的0,以使上述的區(qū)段具有與區(qū)段So相同的長度。9.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為一數(shù)據(jù)流地址(flowaddress),且上述的網(wǎng)絡(luò)地址查詢表為一數(shù)據(jù)流表(f1owtable)。10.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為目的IP地址,及上述的網(wǎng)絡(luò)地址查詢表為一路由表。11.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為MAC地址,及上述的網(wǎng)絡(luò)地址查詢表為一過濾表。12.如申請專利范圍第7項(xiàng)所述的方法,更包含步驟當(dāng)上述的I.I.D.雜湊索引不在上述的網(wǎng)絡(luò)地址查詢表時(shí),轉(zhuǎn)送上述的到來封包至一處理器。權(quán)利要求1.一種應(yīng)用于網(wǎng)絡(luò)裝置的查詢裝置,至少包含一文法分析器,用以取得一到來的封包的網(wǎng)絡(luò)地址信息;一設(shè)定數(shù)的位移控制邏輯,其中每一位移控制邏輯用以依據(jù)該到來的封包的地址信息,各別產(chǎn)生具有特性獨(dú)立分布(I.I.D.)特性的雜湊索引;及一選擇裝置,用以從該設(shè)定數(shù)的位移控制邏輯中選擇一具有I.I.D.特性的雜湊索引,及經(jīng)由該所選擇的I.I.D.特性的雜湊索引,使該網(wǎng)絡(luò)地址查詢表輸出該到來的封包的轉(zhuǎn)送判定。2.如申請專利范圍第1項(xiàng)所述的查詢裝置,更包含一中央處理單元,用以在上述的I.I.D.雜湊索引在上述的網(wǎng)絡(luò)地址查詢表中找不到對應(yīng)的資料時(shí),處理上述的到來的封包。3.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一目的MAC地址。4.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一目的IP地址。5.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的網(wǎng)絡(luò)地址為一數(shù)據(jù)流地址。6.如申請專利范圍第1項(xiàng)所述的查詢裝置,其中上述的位移控制邏輯包含一位移緩存器,系分為復(fù)數(shù)個(gè)區(qū)段,用以依據(jù)一設(shè)定數(shù)的雜湊鍵的數(shù)目,執(zhí)行該復(fù)數(shù)個(gè)區(qū)段的位移;及XOR運(yùn)算裝置,用以執(zhí)行上述的復(fù)數(shù)個(gè)區(qū)段的XOR運(yùn)算。7.一種應(yīng)用于網(wǎng)絡(luò)裝置的查詢方法,至少包含步驟從一到來的封包的標(biāo)頭取得網(wǎng)絡(luò)地址;分割該m位的網(wǎng)絡(luò)地址為復(fù)數(shù)個(gè)區(qū)段Si,每個(gè)區(qū)段有n位,其中;執(zhí)行區(qū)段Sbase及區(qū)段Sextend的XOR運(yùn)算,以產(chǎn)生一I.I.D.雜湊索引,其中該區(qū)段Sbase的形成,是對該每個(gè)區(qū)段進(jìn)行XOR運(yùn)算的結(jié)果,及該區(qū)段Sextend的形成,是對區(qū)段So位移由一特定的雜湊鍵(hashkey)的數(shù)目所取決的位數(shù)的結(jié)果;及以該I.I.D.雜湊索引查詢一網(wǎng)絡(luò)地址查詢表,以產(chǎn)生轉(zhuǎn)送信息。8.如申請專利范圍第7項(xiàng)所述的方法,更包含步驟藉由填入二進(jìn)制的0,以使上述的區(qū)段具有與區(qū)段So相同的長度。9.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為一數(shù)據(jù)流地址(flowaddress),且上述的網(wǎng)絡(luò)地址查詢表為一數(shù)據(jù)流表(flowtable)。10.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為目的IP地址,及上述的網(wǎng)絡(luò)地址查詢表為一路由表。11.如申請專利范圍第7項(xiàng)所述的方法,其中上述的網(wǎng)絡(luò)地址為MAC地址,及上述的網(wǎng)絡(luò)地址查詢表為一過濾表。12.如申請專利范圍第7項(xiàng)所述的方法,更包含步驟當(dāng)上述的I.I.D.雜湊索引不在上述的網(wǎng)絡(luò)地址查詢表時(shí),轉(zhuǎn)送上述的到來封包至一處理器。全文摘要一種應(yīng)用于網(wǎng)絡(luò)裝置的查詢裝置與方法,用以查詢網(wǎng)絡(luò)地址查詢表。該查詢裝置主要包含:一文法分析器,用以取得到來的封包的網(wǎng)絡(luò)地址信息。特定數(shù)量的位移控制邏輯,用以依據(jù)到來的封包的網(wǎng)絡(luò)地址信息,產(chǎn)生特性獨(dú)立分布(I.I.D.)的雜湊索引。每個(gè)位移控制邏輯的輸出經(jīng)由選擇器的逐一挑選,可藉由查詢網(wǎng)絡(luò)地址查詢表,而輸出相對應(yīng)的轉(zhuǎn)送信息。藉由本發(fā)明的位移控制邏輯的設(shè)置,可以使查詢引擎更有效率地建構(gòu)每筆數(shù)據(jù)流的登錄(f1owentry),并快速執(zhí)行屬于該筆數(shù)據(jù)流封包的服務(wù)分類。文檔編號H04L12/54GK1300147SQ0110229公開日2001年6月20日申請日期2001年1月21日優(yōu)先權(quán)日2001年1月21日發(fā)明者陳俊儒,王耀宗申請人:普邦科技股份有限公司