專利名稱:使用循環(huán)冗余校驗散列函數(shù)管理網(wǎng)絡(luò)業(yè)務(wù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及管理網(wǎng)絡(luò)業(yè)務(wù),特別地,涉及通過使用循環(huán)冗余校驗(CRC)散列函數(shù)提高確定數(shù)據(jù)分組路由的效率。
背景技術(shù):
在網(wǎng)絡(luò)上移動數(shù)據(jù)的過程中,需要確定在網(wǎng)絡(luò)上是否允許該數(shù)據(jù),如果允許,則需要確定數(shù)據(jù)將被傳送到哪里。當(dāng)數(shù)據(jù)從源端傳送到目的端的時候,網(wǎng)絡(luò)可以確定發(fā)送端和接收端是否都是有效的和是否允許使用該網(wǎng)絡(luò),以及將如何處理數(shù)據(jù)。傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)數(shù)據(jù)典型地是以幀的形式傳輸,所述幀包括至少兩個部分,地址首標(biāo)和數(shù)據(jù)負(fù)載??梢詮奈逶M形式的地址首標(biāo)中找到通常用于通過網(wǎng)絡(luò)向目的端傳輸數(shù)據(jù)的信息,所述五元組包括下述字段源地址、目的端地址、源端口、目的端口和協(xié)議。
通常沒有這樣一種網(wǎng)絡(luò)編址方案,其支持高達(dá)40億個具有向40億個目的端中的任何一個發(fā)送數(shù)據(jù)的能力的源端而且每個源端或目的端都能具有高達(dá)64000個端口。因此,嘗試支持這樣一個編址方案會需要一個巨大的查找表,以及具有龐大內(nèi)存量的業(yè)務(wù)管理系統(tǒng)。另一方面,在任意給定時刻網(wǎng)絡(luò)上只有有限數(shù)量的業(yè)務(wù)允許使用一個包含較少信息量的較小的表格。為了達(dá)到這個目的,可以在地址首標(biāo)中的相關(guān)信息上使用散列函數(shù)來確定一個指向較小表格的索引值。
散列函數(shù)是一種數(shù)學(xué)算法,它能夠?qū)?shù)值從一個非常大的值域映射到一個較小的值域。一個“好”的散列函數(shù)包括,其中該散列函數(shù)在大的數(shù)值組中的應(yīng)用導(dǎo)致一個較小的索引值組,所述索引值在一個較小的域內(nèi)均勻分布。一個“壞”的散列函數(shù)是,較大域中數(shù)值組內(nèi)的許多數(shù)值被映射到較小值域內(nèi)的同一個索引值。任何這樣的事件通常稱為沖突。因為在任何具體索引值處只有一個連接作為入口,所以任何沖突都要求在各個表格的入口中保持附加信息,從而進一步指導(dǎo)網(wǎng)絡(luò)去哪里查找混編到相同索引值的任何附加連接。這個具有相同的索引值的入口鏈接需要一個處理引擎來混編到索引值,讀取入口,將其與預(yù)混編的五元組比較,并且如果沒有找到匹配的,則使用入口中的指針讀取另一個入口。重復(fù)這個過程直到有匹配或者已經(jīng)達(dá)到鏈接的最后入口,因為對于每個數(shù)據(jù)分組都重復(fù)這樣的過程,處理引擎的效率就降低了。
因此,工業(yè)上需要一種通過使用改進的散列函數(shù)來管理網(wǎng)絡(luò)業(yè)務(wù)的設(shè)備、方法和系統(tǒng)。因此,出于這些考慮和其它因素,產(chǎn)生了本發(fā)明。
發(fā)明內(nèi)容
本發(fā)明目的在于使用混編地址首標(biāo)的CRC索引來管理網(wǎng)絡(luò)業(yè)務(wù)。為了從數(shù)據(jù)分組中確定地址首標(biāo),本發(fā)明部分地基于地址首標(biāo)中的特定字段來確定一個CRC索引。通過使用掩碼寄存器從CRC索引中選擇出一組預(yù)定的比特來形成最后的索引值。最后的索引值在從轉(zhuǎn)發(fā)到網(wǎng)絡(luò)的緩存器中檢索出來時被附加在數(shù)據(jù)分組中。
依照本發(fā)明的一個實施例,一個裝置被用來管理網(wǎng)絡(luò)上的信號。這個裝置包括CRC電路、換算電路和重新插入電路。CRC電路用于部分地基于輸入信號的一部分來確定CRC索引。換算電路用于從CRC索引中確定至少一個比特。重新插入電路用于把從CRC索引中選取的至少一個比特組合到信號中。
依照本發(fā)明的另一個實施例,一個設(shè)備被用來管理網(wǎng)絡(luò)上的業(yè)務(wù)。這個設(shè)備包括收發(fā)器和索引設(shè)備。收發(fā)器用于確定與數(shù)據(jù)分組流中數(shù)據(jù)分組關(guān)聯(lián)的地址首標(biāo)并將該地址首標(biāo)轉(zhuǎn)發(fā)到索引設(shè)備。索引設(shè)備用于部分地基于地址首標(biāo)確定CRC索引,從CRC索引中確定比特子集,并將比特子集組合到數(shù)據(jù)分組中。
依照本發(fā)明的另一個實施例,一種方法被用來管理網(wǎng)絡(luò)上的業(yè)務(wù)。這個方法包括確定與數(shù)據(jù)分組流中數(shù)據(jù)分組關(guān)聯(lián)的地址首標(biāo)、部分地基于地址首標(biāo)確定CRC索引、從CRC索引中選取至少一個比特,和部分地通過將該選取的至少一個比特組合到數(shù)據(jù)分組中的方式來修改數(shù)據(jù)分組。
依照本發(fā)明更進一步的實施例,一個系統(tǒng)被用來管理網(wǎng)絡(luò)上的業(yè)務(wù)。這個系統(tǒng)包括第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備。第一網(wǎng)絡(luò)設(shè)備用于確定與數(shù)據(jù)分組關(guān)聯(lián)的地址首標(biāo),部分地基于地址首標(biāo)確定CRC索引,從CRC索引中確定至少一個比特,和通過將從CRC索引中選取的至少一個比特組合到數(shù)據(jù)分組中的方式來確定修改的數(shù)據(jù)分組。第二網(wǎng)絡(luò)設(shè)備用于從第一網(wǎng)絡(luò)設(shè)備中讀取修改的數(shù)據(jù)分組并部分地基于CRC索引信息路由該修改的數(shù)據(jù)分組。
對本發(fā)明更完整的理解和其改進可以通過參考附圖和下面的本發(fā)明優(yōu)選實施例的詳細(xì)說明以及附帶的權(quán)利要求來獲得,所述附圖簡要地總結(jié)如下。
參照以下附圖來描述本發(fā)明的非限制性和非窮舉的實施例。在附圖中,除非特別說明,不同的附圖中相同的附圖標(biāo)記表示相同的部件。
為了更好的理解本發(fā)明,將參考以下結(jié)合附圖的優(yōu)選實施例的詳細(xì)描述,其中圖1示出可以實施本發(fā)明的一個網(wǎng)絡(luò)系統(tǒng)的實施例;圖2示出用于確定CRC索引的裝置的實施例框圖;和圖3示出按照本發(fā)明的實施例一般表示確定CRC索引過程的流程圖。
具體實施例方式
本發(fā)明克服了以上提到的缺點、不足和問題,通過閱讀和研究以下的詳細(xì)說明將更好地理解本發(fā)明。
下面將參考相應(yīng)的附圖來更詳盡地描述本發(fā)明,所述附圖作為說明書的一部分,以圖例的形式示出了本發(fā)明得以實施的特殊實施例。然而,本發(fā)明本可以用多種形式來表現(xiàn),在這里對實施例的解釋不能作為對本發(fā)明的限制;相反的,提供這些實施例以便本發(fā)明的公開充分和完整,并且可以更好地向本領(lǐng)域技術(shù)人員告知本發(fā)明的范圍。另外,本發(fā)明可以以方法或設(shè)備來實施。因此,本發(fā)明可以采取完全的硬件實施方式、完全的軟件實施方式或者軟硬件組合的實施方式。因而以下的具體描述不能理解為對本發(fā)明的限制。
術(shù)語“耦合”和“連接”包括相連物體之間的直接連接,或者通過一個或多個無源或有源的中間設(shè)備或部件的間接連接。
術(shù)語“包含”、“包括”、“含有”、“具有”和“其特征在于”包括開放式的或包含性的過渡的結(jié)構(gòu),并不排除附加的、未提及的元件或方法步驟。例如,一種包含A和B元件的組合物,也可以理解成是一個由A、B和C元件組成的組合物。
“一個”、“一種”、“這種”的意思包括復(fù)數(shù)個?!霸?.....內(nèi)”的意思包括“在......內(nèi)”和“在......上”。另外,除非有其它的說明或者與本說明不一致,單個的參考物也包括多個參考物。
簡明地說,本發(fā)明目的在于一種確定用于修改數(shù)據(jù)分組的CRC散列函數(shù)的設(shè)備和方法。本發(fā)明進一步的目的是減少沖突的可能性和提高CRC散列函數(shù)執(zhí)行的速度。一個“好”的散列函數(shù)可以產(chǎn)生在縮小的域內(nèi)完全均勻分布的索引。簡單的基于對輸入的運算值進行加法或乘法運算的散列函數(shù),主要是異或運算,不能實現(xiàn)均勻的分布,因為其中一個輸入運算值的單個比特的改變通常導(dǎo)致在產(chǎn)生的索引中有單個比特的改變,而對索引根本沒有任何改變。不同于通常使用的基于異或的運算,本發(fā)明中所采用的CRC函數(shù)可以用于達(dá)到這個目的。由于CRC函數(shù)的連續(xù)推導(dǎo)法,CRC函數(shù)的單個運算值中單個比特的改變會影響產(chǎn)生的索引的每個比特。
下面描述的是應(yīng)用于IPv4因特網(wǎng)通信所使用的32比特數(shù)據(jù)分組中的CRC散列函數(shù)。用于從32比特數(shù)據(jù)分組中產(chǎn)生隨機索引值的CRC多項式的實施例為X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+5+X4+X2+X+1,其中變量X表示寄存器,變量X的系數(shù)表示為CRC選擇的比特(例如32比特,26比特,等等)。
使用上述的CRC多項式,可以獲得為與數(shù)據(jù)分組相關(guān)的32比特地址首標(biāo)隨機產(chǎn)生的32比特索引。索引可以部分地基于預(yù)定的比特掩碼而進一步減少長度。索引可以與相應(yīng)的地址首標(biāo)和數(shù)據(jù)分組中的數(shù)據(jù)負(fù)載組合,并且重新插入到數(shù)據(jù)分組的IPv4數(shù)據(jù)流中。隨后的網(wǎng)絡(luò)中的業(yè)務(wù)設(shè)備,例如路由器,網(wǎng)絡(luò)變換設(shè)備等等,可以應(yīng)用該索引進一步路由該數(shù)據(jù)分組。
本發(fā)明并不局限于以上描述的CRC多項式,也可以使用其它的多項式。另外,盡管為了舉例說明的目的應(yīng)用了包含32比特數(shù)據(jù)分組的數(shù)據(jù)流,但是本發(fā)明并不局限于32比特寬度的數(shù)據(jù)。而且,本發(fā)明并不局限于最大長度32比特的輸入運算值。例如,在使用IPv6協(xié)議的網(wǎng)絡(luò)系統(tǒng)或類似系統(tǒng)中可以使用包含128比特輸入運算值地址的數(shù)據(jù)分組和其它的CRC多項式。
在軟件方面,執(zhí)行上述處理可能需要超過一千次的數(shù)據(jù)分組的循環(huán),無論數(shù)據(jù)分組是64字節(jié)還是1500字節(jié)長。因此,在軟件中使用CRC散列函數(shù)可能消耗非常多的時間。然而,如下所述,當(dāng)使用本發(fā)明執(zhí)行相似的操作的時候僅有10次循環(huán)。這樣通過減少操作時間和更少的內(nèi)存需求可以提供更高的效率。
示意性操作環(huán)境圖1示出了本發(fā)明在其中可以實施的網(wǎng)絡(luò)系統(tǒng)100的一個實施例。如同以下將要詳細(xì)描述的,本發(fā)明涉及一種用于至少在網(wǎng)絡(luò)的一部分中管理網(wǎng)絡(luò)業(yè)務(wù)的方法和裝置。網(wǎng)絡(luò)系統(tǒng)100可以包括比圖中示出的更多或更少的組成部分,然而,所示出的已經(jīng)足以說明本發(fā)明能夠?qū)嵤┑氖疽庑原h(huán)境。
如圖1所示,網(wǎng)絡(luò)系統(tǒng)100包括局域網(wǎng)/廣域網(wǎng)(LAN/WAN)102、104和108,和業(yè)務(wù)設(shè)備106和110。
局域網(wǎng)/廣域網(wǎng)102和108與業(yè)務(wù)設(shè)備110通信。業(yè)務(wù)設(shè)備106與局域網(wǎng)/廣域網(wǎng)104和102通信。
局域網(wǎng)/廣域網(wǎng)102、104和108能夠使用任何形式的用于從一個電子設(shè)備向另一個電子設(shè)備通信信息的計算機可讀介質(zhì)。另外,除了局域網(wǎng),廣域網(wǎng)局域網(wǎng)/廣域網(wǎng)102、104和108還可以包括互聯(lián)網(wǎng)、直接連接,比如通過通用串行總線(USB)端口,其它形式的計算機可讀介質(zhì),以及其中的任何組合。在包括基于不同體系和協(xié)議的LAN的相互連接的一組局域網(wǎng)中,路由器作為局域網(wǎng)之間的鏈路,使得消息從一個局域網(wǎng)傳到另一個局域網(wǎng)。而且,局域網(wǎng)內(nèi)的通信鏈路典型地包括雙絞線或同軸電纜,而網(wǎng)絡(luò)間的通信鏈路可以利用模擬電話線、其包括T1、T2、T3和T4的完全或部分的專用數(shù)據(jù)線,綜合業(yè)務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)、數(shù)字用戶線路(DSL)、包括衛(wèi)星鏈路的無線鏈路,或者本領(lǐng)域技術(shù)人員公知的其它通信鏈路。此外,遠(yuǎn)程計算機和其它相關(guān)的電子設(shè)備可以通過調(diào)制解調(diào)器和臨時電話鏈路遠(yuǎn)程連接到局域網(wǎng)或廣域網(wǎng)。局域網(wǎng)/廣域網(wǎng)102、104和108基本上可以包括備種可以在網(wǎng)絡(luò)設(shè)備之間傳輸信息的通信機制。
按照本發(fā)明的一個實施例,業(yè)務(wù)設(shè)備106和110配置成管理在使用CRC索引方案的局域網(wǎng)/廣域網(wǎng)102、104和108之間數(shù)據(jù)分組的傳輸。另一個實施例中,業(yè)務(wù)設(shè)備106和110可以存在于局域網(wǎng)/廣域網(wǎng)102、104和108內(nèi)部,并管理內(nèi)部的網(wǎng)絡(luò)業(yè)務(wù)。
業(yè)務(wù)設(shè)備106和110可以配置成作為路由器、防火墻、網(wǎng)絡(luò)變換設(shè)備等等來操作。
圖2示出CRC索引系統(tǒng)200的一個實施例的框圖,該系統(tǒng)可以用于業(yè)務(wù)設(shè)備中,例如用于圖1的業(yè)務(wù)設(shè)備106和110中。CRC索引系統(tǒng)200可以包括比圖中示出的更多或更少的組成部分,然而,所示出的部分已經(jīng)足以說明本發(fā)明能夠?qū)嵤┑氖疽庑詫嵤┓桨浮?br>
如圖2所示,CRC索引系統(tǒng)200包括分路器202、CRC電路204、換算電路206和重新插入電路214。換算電路206包括CRC散列存儲器208、散列長度存儲器210和加法電路212。重新插入電路214包括緩存器216和組合設(shè)備218。CRC電路204、換算電路206和重新插入電路214是CRC索引系統(tǒng)200的示意性實施例,其可以被組合、重新組織、分割成更小的子電路等等,來執(zhí)行基本上相同的操作。
分路器202耦合到CRC電路204和緩存器216。CRC電路204耦合到CRC散列存儲器208,該CRC散列存儲器然后耦合到加法電路212的一個輸入端。散列長度存儲器210耦合到加法電路212的另一個輸入端。加法電路212的輸出和緩存器216的輸出一起耦合到組合設(shè)備218。
分路器202配置成接收數(shù)據(jù)分組并從接收到的數(shù)據(jù)分組中確定數(shù)據(jù)負(fù)載和地址首標(biāo)。地址首標(biāo)可以包括任何形式的網(wǎng)絡(luò)編址信息,包括但是并不局限于五元組的IP首標(biāo)等等。分路器202可以在轉(zhuǎn)發(fā)數(shù)據(jù)分組給緩存器216的同時復(fù)制地址首標(biāo)到CRC電路204。分路器202可以被實現(xiàn)為譯碼器、移位寄存器等等。
CRC電路204配置成部分地基于地址首標(biāo)來確定CRC索引。CRC電路204可以利用前面提到的CRC多項式來確定CRC索引,該CRC索引可以通過地址首標(biāo)和CRC多項式的多項式除法來確定。在32比特系統(tǒng)的例子中,將該方法應(yīng)用到32比特的地址首標(biāo)可以產(chǎn)生單一的、隨機的32比特索引。
根據(jù)本發(fā)明的一個實施例,CRC電路204可以被實現(xiàn)為移位寄存器、異或-觸發(fā)器鏈等等,但是也可以包括實質(zhì)上任何形式的判定電路,配置成確定CRC。
CRC散列存儲器208實質(zhì)上包括配置成接收和存儲CRC索引的任何設(shè)備。CRC散列存儲器208可以被實現(xiàn)成寄存器、存儲設(shè)備等等。
散列長度存儲器210實質(zhì)上包括配置成接收和存儲預(yù)定的CRC索引比特掩碼的任何設(shè)備??梢詮腃RC索引中選擇至少1個比特用于合成索引。所述至少1個比特可以包括從CRC索引的開頭、中間或末尾處的一組連續(xù)比特中選取來的1個或多個比特。被選取來的比特也可以是非連續(xù)的一組比特,例如CRC索引中的相間隔的比特等等。可以被實現(xiàn)為寄存器和存儲設(shè)備等等的散列長度存儲器210,存儲確定CRC索引的哪個比特將被屏蔽的索引。在一個實施例中,存儲在散列長度存儲器210中的預(yù)定比特掩碼可以是掩碼索引。
加法器電路212包括任何配置成組合CRC散列存儲器208和散列長度存儲器210的輸出的設(shè)備,以提供從CRC索引到合成索引的掩碼。盡管這里提到的是加法電路,但是本發(fā)明并不局限于加法操作。例如,也可以使用“或”電路、異或電路、比較器等等。
緩存器216實質(zhì)上包括任何配置成在CRC索引確定和換算操作過程中接收和存儲數(shù)據(jù)分組的設(shè)備。緩存器216可以被實現(xiàn)成寄存器或存儲設(shè)備等等。
組合設(shè)備218包括任何配置成組合從緩存器216接收的數(shù)據(jù)分組和從換算電路206接收的合成索引以提供修改的數(shù)據(jù)分組的設(shè)備。該合成索引可以以各種方式與數(shù)據(jù)分組組合,包括,但并不局限于將該合成索引附加到地址首標(biāo),或用該合成索引加密地址首標(biāo),等等。合成設(shè)備218可以被實現(xiàn)成多路復(fù)用器、存儲器、編碼器和加密設(shè)備等等。
以上提到的CRC索引系統(tǒng)200可以作為業(yè)務(wù)設(shè)備的一部分來實施。該業(yè)務(wù)設(shè)備可以讀取合成索引,從數(shù)據(jù)分組中除去該合成索引并將數(shù)據(jù)分組路由到目的地。在另一個實施例中,業(yè)務(wù)設(shè)備可以傳輸帶有合成索引的數(shù)據(jù)分組,在這種情況下,路由可以由另一個業(yè)務(wù)設(shè)備來實施。因此,業(yè)務(wù)設(shè)備可以從CRC索引系統(tǒng)200傳輸修改的數(shù)據(jù)分組,或除去合成索引并傳輸原始數(shù)據(jù)分組。
本發(fā)明在硬件中提高的效率可以通過比較硬件和軟件設(shè)備實施所使用的時鐘周期數(shù)來說明。為32比特的碼字(word)計算CRC索引,可能需要處理開始的6個長字,每個長字在CRC電路204中使用一個時鐘周期。同時,將同樣的6個長字寫入緩存器216。這可能需要兩個額外的時鐘周期,其中一個用于釋放CRC索引到CRC散列存儲器208,另一個用于CRC散列存儲器208的輸出與散列長度存儲器210的輸出相加。最后,可能還要使用兩個時鐘周期用于組合合成索引數(shù)據(jù)分組并將該數(shù)據(jù)分組重新插入到數(shù)據(jù)流中。因此,當(dāng)在32比特系統(tǒng)的硬件中實現(xiàn)本發(fā)明時只需要使用少至10個時鐘周期。類似的軟件實施不管怎樣都要幾百個周期到超過一千周期進行。這使這個處理對于一些網(wǎng)絡(luò)系統(tǒng)要消耗非常多的時間。
通用操作圖3大體上示出確定CRC索引的過程的一個實施例的流程圖。索引過程300可以,例如,在圖2的CRC索引系統(tǒng)200中進行操作。
如圖3所示如果已經(jīng)收到要索引的數(shù)據(jù)分組,則索引過程300在開始方框之后從方框302開始。收到的數(shù)據(jù)分組可以是IPv4數(shù)據(jù)分組、IPv6數(shù)據(jù)分組等等。
過程執(zhí)行到方框304,其中確定接收的數(shù)據(jù)分組的數(shù)據(jù)負(fù)載和地址首標(biāo)。地址首標(biāo),被復(fù)制到方框306的CRC索引確定過程,其中地址首標(biāo)可以是IP首標(biāo)、IP五元組的一部分等等,。
在方框306,部分地基于地址首標(biāo)確定CRC索引。方框306可以使用前面提到的CRC多項式來確定CRC索引,其中CRC多項式的系數(shù)代表比特值??梢曰诘刂肥讟?biāo)的比特形成類似的多項式,并執(zhí)行CRC多項式和地址首標(biāo)多項式之間的多項式除法。多項式除法的余數(shù)構(gòu)成了CRC索引。在32比特系統(tǒng)的例子中,根據(jù)IPv4協(xié)議,應(yīng)用該方法到32比特地址首標(biāo)可以獲得單一的,隨機的32比特索引。
在方框308,從CRC索引中確定至少一個比特用來提供合成索引。這個至少1比特可以包括從CRC索引中確定的一個或多個比特,最多包括所有的比特。這些比特可以是CRC索引的開頭、中間或末尾區(qū)域的一組連續(xù)比特。確定的比特也可以是非連續(xù)的一組比特,例如CRC索引中的相間隔的比特等等。這組從CRC索引中確定出的比特確定了合成索引的長度。
在方框310,將合成索引與數(shù)據(jù)分組組合得到修改后的數(shù)據(jù)分組。組合過程可以通過多種方法來執(zhí)行,包括預(yù)先添加、附加合成索引到數(shù)據(jù)分組等等。合成索引也可以被插入到地址首標(biāo)中預(yù)定的位置。在另一個實施例中,地址首標(biāo)可以使用合成索引加密。
可以在網(wǎng)絡(luò)上傳輸?shù)玫降男薷暮蟮臄?shù)據(jù)分組,用于部分地基于合成索引信息來路由。在另一個實施例中,可以在網(wǎng)絡(luò)上傳輸以及把合成索引從數(shù)據(jù)分組中刪除之前檢索從合成索引中獲得的路由信息。在這個實施例中,可以在網(wǎng)絡(luò)上傳輸原始數(shù)據(jù)分組。在完成方框310后,索引過程300返回到調(diào)用過程來執(zhí)行其它的操作。
需要理解的是,流程圖的各個步驟,以及流程圖中各個步驟的組合,可以通過硬件系統(tǒng)和軟件指令的組合來實現(xiàn)。軟件指令可以由處理器執(zhí)行,產(chǎn)生一系列處理器執(zhí)行的可操作步驟,產(chǎn)生計算機執(zhí)行程序,使得在處理器上執(zhí)行的指令提供用于實現(xiàn)在流程圖中描述的一些或全部操作的步驟。
因此,流程圖的框圖說明支持執(zhí)行這些指定操作的方法的組合,執(zhí)行這些指定操作的步驟組合和執(zhí)行指定操作的程序指令方法。另外需要理解的是,流程圖說明的各個方框和其中方框的組合,可以通過專用硬件的系統(tǒng)來實現(xiàn),該系統(tǒng)執(zhí)行指定的操作或步驟,也可以通過專用硬件和計算機指令組合來實現(xiàn)。
以上的說明、舉例和數(shù)據(jù)充分描述了本發(fā)明組成的制造和使用。因為可以在不脫離本發(fā)明的主旨和范圍的情況下做出很多本發(fā)明的實施例,所以本發(fā)明的范圍在下面附上的權(quán)利要求書中。
權(quán)利要求
1.一種用于在網(wǎng)絡(luò)上管理信號的裝置,包括循環(huán)冗余校驗(CRC)電路,被配置成接收所述信號的至少一部分,并部分地基于所述信號的所述部分而確定CRC索引;換算電路,耦合到所述CRC電路,被配置成根據(jù)所述CRC索引中確定至少一個比特;重新插入電路,耦合到所述換算電路,被配置成通過將從所述CRC索引中選擇的所述至少一個比特與所述信號相組合來確定修改后的信號,其中從所述CRC索引中選擇的所述至少一個比特使得所述修改后的信號能夠在所述網(wǎng)絡(luò)上路由。
2.根據(jù)權(quán)利要求1所述的裝置,其中所述信號的所述部分還包括地址首標(biāo)。
3.根據(jù)權(quán)利要求1所述的裝置,其中所述至少一個比特還包括通過所述CRC索引與預(yù)定的比特掩碼相加而得到的至少一個比特。
4.根據(jù)權(quán)利要求1所述的裝置,其中所述至少一個比特還包括非連續(xù)性的多個比特、至少兩個比特、連續(xù)的幾個比特以及所有的比特中的至少一種。
5.根據(jù)權(quán)利要求1所述的裝置,其中所述信號的所述部分還包括源地址、目的端地址、源端口、目的端口和協(xié)議中的至少一個。
6.根據(jù)權(quán)利要求1所述的裝置,其中所述CRC電路還包括執(zhí)行操作的電路,所述操作包括32比特CRC多項式計算和128比特多項式計算中的至少一個。
7.根據(jù)權(quán)利要求1所述的裝置,其中所述CRC電路還包括移位寄存器、存儲器和異或觸發(fā)器鏈中的至少一個。
8.根據(jù)權(quán)利要求1所述的裝置,其中所述換算電路還包括散列長度存儲器,被配置成保持預(yù)定的比特掩碼;和加法電路,耦合到所述散列長度存儲器,被配置成通過組合所述CRC索引和所述預(yù)定的比特掩碼,從所述CRC索引中選取所述至少一個比特。
9.根據(jù)權(quán)利要求8所述的裝置,其中所述散列長度存儲器還包括寄存器和存儲器中的至少一個。
10.根據(jù)權(quán)利要求1所述的裝置,其中所述重新插入電路還包括緩存器,被配置成保持所述信號;組合設(shè)備,耦合到所述緩存器,被配置成部分地通過將從所述CRC索引中選取的所述至少一個比特與所述信號組合,來確定所述修改后的信號。
11.根據(jù)權(quán)利要求10所述的裝置,其中所述緩存器還包括先進先出(FIFO)緩存器。
12.根據(jù)權(quán)利要求10所述的裝置,其中所述組合設(shè)備還包括多路復(fù)用器、比較器、存儲器、編碼器中的至少一種。
13.一種用于管理網(wǎng)絡(luò)業(yè)務(wù)的設(shè)備,包括收發(fā)器,用于執(zhí)行如下操作接收數(shù)據(jù)分組流中的數(shù)據(jù)分組;確定與所述數(shù)據(jù)分組關(guān)聯(lián)的地址首標(biāo);并且轉(zhuǎn)發(fā)所述地址首標(biāo);和索引設(shè)備,耦合到所述收發(fā)器,用于執(zhí)行如下操作接收所述地址首標(biāo);部分地基于所述地址首標(biāo)確定CRC索引;從所述CRC索引中確定比特子集;和通過將從所述CRC索引中確定的所述比特子集與所述數(shù)據(jù)分組相組合,以確定修改后的數(shù)據(jù)分組,其中從所述CRC索引獲得的所述比特子集使得所述數(shù)據(jù)分組能夠在網(wǎng)絡(luò)上路由。
14.根據(jù)權(quán)利要求13所述的設(shè)備,還包括重新插入電路,所述重新插入電路耦合到所述索引設(shè)備,用于執(zhí)行如下操作將所述數(shù)據(jù)分組重新插入到數(shù)據(jù)流中。
15.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述地址首標(biāo)還包括源地址、目的端地址、源端口、目的端口和協(xié)議中的至少一個。
16.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述設(shè)備可以在負(fù)載均衡器、路由器、防火墻、代理、網(wǎng)橋和網(wǎng)絡(luò)轉(zhuǎn)換設(shè)備中的至少一個上實施。
17.根據(jù)權(quán)利要求13所述的設(shè)備,其中從所述CRC索引獲得的所述比特子集還包括非連續(xù)的多個比特、至少兩個比特、連續(xù)的幾個比特以及所有的比特中的至少一種。
18.一種在網(wǎng)絡(luò)上路由業(yè)務(wù)的方法,包括接收數(shù)據(jù)分組流中的數(shù)據(jù)分組;確定與所述數(shù)據(jù)分組關(guān)聯(lián)的地址首標(biāo);部分地基于所述地址首標(biāo)確定CRC索引;從所述CRC索引中選擇出至少一個比特;和通過組合從所述CRC索引中選擇出的所述至少一個比特和所述數(shù)據(jù)分組來確定修改后的數(shù)據(jù)分組,其中所述至少一個從所述CRC索引中選擇的比特使得所述數(shù)據(jù)分組能夠在網(wǎng)絡(luò)上路由。
19.根據(jù)權(quán)利要求18所述的方法,還包括將所述修改后的數(shù)據(jù)分組重新插入到數(shù)據(jù)流中。
20.根據(jù)權(quán)利要求18所述的方法,其中所述方法可以在負(fù)載均衡器、路由器、防火墻、代理、網(wǎng)橋和網(wǎng)絡(luò)轉(zhuǎn)化設(shè)備中的至少一個上實施。
21.根據(jù)權(quán)利要求18所述的方法,其中所述地址首標(biāo)還包括源地址、目的端地址、源端口、目的端口和協(xié)議中的至少一個。
22.根據(jù)權(quán)利要求18所述的方法,還包括通過將從所述CRC索引選取的所述至少一個比特與路由表中的信息比校,來確定所述數(shù)據(jù)分組的目的端。
23.根據(jù)權(quán)利要求18所述的方法,其中確定所述修改后的數(shù)據(jù)分組還包括將從用所述CRC索引中選取的所述至少一個比特預(yù)先添加、附加、加密所述數(shù)據(jù)分組的所述地址首標(biāo)中的至少一種方法。
24.一種在網(wǎng)絡(luò)上路由數(shù)據(jù)分組的設(shè)備,包括用于接收數(shù)據(jù)分組流中數(shù)據(jù)分組的裝置;用于確定與所述數(shù)據(jù)分組關(guān)聯(lián)的地址首標(biāo)的裝置;用于部分地基于所述地址首標(biāo)確定CRC索引的裝置,用于從所述CRC索引中選取至少一個比特的裝置;和用于部分地基于將從所述CRC索引中選取的所述至少一個比特與所述數(shù)據(jù)分組的地址首標(biāo)組合,來確定修改后的數(shù)據(jù)分組的裝置,其中從所述CRC索引中選取的至少一個比特使得所述數(shù)據(jù)分組能夠在網(wǎng)絡(luò)上路由。
25.一種用于管理網(wǎng)絡(luò)業(yè)務(wù)的系統(tǒng),包括第一網(wǎng)絡(luò)設(shè)備,被配置成執(zhí)行如下操作接收數(shù)據(jù)分組流中的數(shù)據(jù)分組;確定與所述數(shù)據(jù)分組關(guān)聯(lián)的地址首標(biāo);部分地基于所述地址首標(biāo)確定CRC索引;從所述CRC索引中選取至少一個比特;和通過組合從所述CRC索引中選取的所述至少一個比特與所述數(shù)據(jù)分組的方式來確定修改后的數(shù)據(jù)分組;和第二網(wǎng)絡(luò)設(shè)備,與所述第一網(wǎng)絡(luò)設(shè)備通信,用于執(zhí)行如下操作接收修改后的數(shù)據(jù)分組;和部分地基于從所述CRC索引中選取的所述至少一個比特,路由所述修改后的數(shù)據(jù)分組。
全文摘要
使用可變長度的循環(huán)冗余校驗(CRC)索引來混編地址首標(biāo)以管理網(wǎng)絡(luò)業(yè)務(wù)的方法、裝置和系統(tǒng)。本發(fā)明將數(shù)據(jù)分組的地址首標(biāo)復(fù)制到CRC產(chǎn)生器。部分地基于地址首標(biāo)確定CRC索引。部分地基于預(yù)定的比特掩碼從CRC索引中確定比特子集。地址首標(biāo)和數(shù)據(jù)負(fù)載與從CRC索引中獲得的比特子集組合。修改后的數(shù)據(jù)分組隨后在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)。在一個實施例中,本發(fā)明在業(yè)務(wù)設(shè)備中的硬件電路中得以實施。
文檔編號G06FGK1671125SQ200410104778
公開日2005年9月21日 申請日期2004年11月12日 優(yōu)先權(quán)日2003年11月13日
發(fā)明者小詹姆斯·B·萊賓 申請人:諾基亞公司