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

轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法

文檔序號:7907934閱讀:437來源:國知局
專利名稱:轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法
技術(shù)領(lǐng)域
本發(fā)明涉及電數(shù)字?jǐn)?shù)據(jù)處理,尤其涉及一種在路由器、交換機(jī)等設(shè)備中轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法。
背景技術(shù)
在路由器和交換機(jī)的設(shè)計中,必須要進(jìn)行對于數(shù)據(jù)的查表處理,以便找到數(shù)據(jù)包的下一個節(jié)點,目前在硬件處理的過程中,針對IP包的查找通常采用有兩種實現(xiàn)方法一是采用專用的內(nèi)容尋址存儲器(CAM,Content Address Memory),可以快速查找相應(yīng)的內(nèi)容;二是采用專門的查找算法,外部利用靜態(tài)隨機(jī)存取存貯器(SSRAM)和動態(tài)隨機(jī)存取存貯器(SDRAM)來存儲表項。
隨著因特網(wǎng)(Internet)的普及和廣泛應(yīng)用,IP協(xié)議(因特網(wǎng)協(xié)議)不斷完善,新增加的協(xié)議越來越多,例如GRE(Generic RoutingEncapsulation,即普通路由封裝)、L2TP(Layer 2 tunneling protocol,即二層隧道協(xié)議)、IPSec(IP Security,即IP安全)、MPLS(MultiprotocolLabel Switching,即多協(xié)議標(biāo)簽交換)、IP/IP(IP Encapsulation within IP,即IP封裝IP)等,查表的內(nèi)容也越來越復(fù)雜。隨著目前IPv6(InternetProtocol version 6,即因特網(wǎng)第6版本協(xié)議)研究的深入,由IPv4(InternetProtocol version 4,即因特網(wǎng)第4版本協(xié)議)向IPv6過渡又必須采用隧道技術(shù)和NAT-PT(網(wǎng)絡(luò)地址轉(zhuǎn)換-協(xié)議轉(zhuǎn)換)等技術(shù),查表的種類和涉及到的范圍更加復(fù)雜。
在實現(xiàn)中,一般采用各自獨立的查表方式,即使用獨立的MPLS表、IPv4單播/多播表、MAC表、L2TP表等各自的表項,這樣表項種類越來越多,外部器件和接口也越來越多,而且長度各不一樣,實現(xiàn)復(fù)雜,通常在實現(xiàn)中,只能兼顧其中的一種或兩種,將1~2個重要的表采用硬件實現(xiàn)(通常為流分類表和IPv4單播/多播查找),而其余表認(rèn)為流量小,采用軟件實現(xiàn)或者在芯片內(nèi)部使用片內(nèi)的靜態(tài)隨機(jī)存貯器(SRAM)實現(xiàn)線性查找,因此對于邊緣或網(wǎng)關(guān)產(chǎn)品,這樣的性能必然滿足不了日益增長的網(wǎng)絡(luò)應(yīng)用需要,并導(dǎo)致路由交換設(shè)備網(wǎng)絡(luò)適應(yīng)能力低,假如L2TP采用軟件實現(xiàn),那么當(dāng)設(shè)備應(yīng)用在L2TP業(yè)務(wù)流量多的領(lǐng)域,端口性能就大大降低,影響業(yè)務(wù)的轉(zhuǎn)發(fā)性能,而且使用片內(nèi)隨機(jī)存貯器(RAM)導(dǎo)致表項數(shù)目少,不利于網(wǎng)絡(luò)的大規(guī)模應(yīng)用。
現(xiàn)有技術(shù)還采用統(tǒng)一的查找KEY(查找表的輸入數(shù)據(jù))寬度來查表,在IPv4中利用這樣的查找KEY,例如256位,可以適用任何其中一種查表用途,但查表的結(jié)果是對于大多數(shù)的查找有比較大的浪費,如對于普通的IPv4單播查找,查找KEY只需要32bit(IP地址為32位)左右,因此其余224位的查找KEY空間就全部浪費了,而且采用現(xiàn)有的統(tǒng)一的查找KEY寬度,通常只能作為一種查找類型的應(yīng)用,不能兼容IPv6的多種需要,不能很好的支持IPv6的查找。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有數(shù)據(jù)包轉(zhuǎn)發(fā)采用獨立表項查表時,外部表項種類多,實現(xiàn)復(fù)雜,以及采用統(tǒng)一的查找KEY寬度查表時,只能作為一種查找類型應(yīng)用的不足,提供一種支持全部表項的處理的查表方法,從而使得路由交換設(shè)備可以全面支持各種IPv4/IPv6的查表操作,對于所有的查找表均可以硬件加速實現(xiàn),有效地提高設(shè)備的處理能力。
本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案為
這種轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于采用帶有類型區(qū)分域的查找表輸入數(shù)據(jù)(KEY)來查表,包括以下步驟首先構(gòu)造至少一個查找KEY寬度模式;根據(jù)數(shù)據(jù)包的包頭類型將數(shù)據(jù)包按不同的查找表分類;構(gòu)建查找KEY,查找KEY中設(shè)置類型區(qū)分域和目的地址(DA)域,根據(jù)所述數(shù)據(jù)包查找表的分類情況確定類型區(qū)分域?qū)挾?,利用所述的類型區(qū)分域?qū)Σ檎冶眍愋瓦M(jìn)行區(qū)分,并根據(jù)所述的目的地址域查表。
所述的查找KEY可采用72位和288位兩種寬度模式,或只采用288位一種寬度模式。
所述的目的地址域根據(jù)數(shù)據(jù)包包頭的相關(guān)域進(jìn)行確定。
將查找表分為16類,采用4位所述的類型區(qū)分域來區(qū)分不同的查找表類型。
可采用哈希(HASH)或其它算法將所述的查找KEY中目的地址域或類型區(qū)分域統(tǒng)一為某個固定的長度。
所述的類型區(qū)分域可以含有因特網(wǎng)協(xié)議(IP)類型,也可以含有異步傳輸模式(ATM)類型。
在系統(tǒng)中維護(hù)一個可包含各種隧道信息表和普通轉(zhuǎn)發(fā)信息表的轉(zhuǎn)發(fā)信息庫,在進(jìn)行隧道處理時,通過所述的查找KEY對轉(zhuǎn)發(fā)信息庫進(jìn)行查找,確定下一跳出口。
本發(fā)明的有益效果為本發(fā)明針對目前在查找領(lǐng)域內(nèi)的這些矛盾問題,簡化了查表的種類,將各種表項合并為一種查表方式,查找表類型采用類型區(qū)分域區(qū)別,同一物理查找表可以同時支持IPv4、IPv6、L2TP、MPLS、GRE、IP/IP、IPSec、6to4、自動隧道、手工隧道、NAT-PT等范圍的多種查找內(nèi)容,表項空間完全可以共享使用,使得路由交換設(shè)備可以全面支持各種IPv4/IPv6的查表操作,對于所有的查找表均可以硬件加速實現(xiàn),有效地提高了設(shè)備的處理能力。
利用本發(fā)明進(jìn)行隧道處理時,可以通過這種通用的查找KEY找到轉(zhuǎn)發(fā)信息庫,轉(zhuǎn)發(fā)信息庫中可包含各種隧道信息表和普通的轉(zhuǎn)發(fā)信息表,所有的查找表可通過統(tǒng)一形式的查找KEY進(jìn)行查找,對外部查找表的接口只有一個,因而十分方便硬件的實現(xiàn),可形成一個通用的查找流程,本發(fā)明提供了一種既可以支持全部表項的處理,又可以提供全面有效的查表性能的行之有效的方法。


圖1為本發(fā)明不等寬度查找KEY示意圖;圖2為利用本發(fā)明查找KEY進(jìn)行查找的通用查找處理流程圖。
具體實施例方式
下面根據(jù)附圖和實施例對本發(fā)明作進(jìn)一步詳細(xì)說明首先構(gòu)造一個或兩個查找KEY寬度模式,例如72bit和288bit。
當(dāng)IP數(shù)據(jù)流進(jìn)入數(shù)據(jù)處理單元,首先根據(jù)數(shù)據(jù)包的包頭的類型將數(shù)據(jù)包按照不同的查找表分類,并提供相應(yīng)的查找KEY值,這里可以設(shè)定數(shù)據(jù)包查找表為16類IPv4單播、IPv4多播、MPLS、L2TP、GRE、IP/IP、IPSec、IPv6單播、IPv6多播、6to4隧道....
然后按照如下兩種方式構(gòu)建查找KEY,使用4bit類型區(qū)分域(16種類型)表明查找類型

或者

目的地址(DA,Destination Address)根據(jù)數(shù)據(jù)包包頭的相關(guān)域進(jìn)行確定,如當(dāng)IPv4單播時DA=目的IPv4地址當(dāng)IPv4多播時DA=源IPv4地址+組IPv4地址當(dāng)MPLS時DA=標(biāo)簽當(dāng)IPv6單播時DA=目的IPv6地址DA也可以是IP地址和TOS(服務(wù)類型)等域的HASH值或組合值。
對于IPv6的查找,只能采用288bit的KEY方法來查找。
若采用72bit+288bit兩種查找KEY的方法,則在物理上存在大小兩種類型的查找表,由于所有的查找表已經(jīng)歸為這兩種類型,因此可以在同一個物理介質(zhì)中實現(xiàn),如圖1所示為不等寬度查找KEY示意圖,在實現(xiàn)中可以根據(jù)應(yīng)用的需要重新分配這兩個表的邏輯空間大小,從而達(dá)到硬件存儲資源的動態(tài)調(diào)整。
本發(fā)明也可以采用單一的查找KEY寬度模式,只提供288bit的查找KEY,查找KEY覆蓋全部的查找空間,然后利用查找KEY的類型區(qū)分域來分類查找表項,同樣可以兼容所有的IPv4/IPv6查找內(nèi)容。
當(dāng)然,本發(fā)明也可以采用HASH或其他算法,將查找KEY中DA域或類型區(qū)分域統(tǒng)一到某個固定的長度上,例如將DA域統(tǒng)一到144bit,將類型區(qū)分域統(tǒng)一到2bit,同樣可以達(dá)到本發(fā)明的目的。
另外,類型區(qū)分域中除了IP類型外,也可以含有異步傳輸模式(ATM)類型,利用本發(fā)明同樣可以實現(xiàn)全面有效的查表。
當(dāng)一個節(jié)點支持作為隧道入口節(jié)點的封裝處理、隧道中間節(jié)點的轉(zhuǎn)發(fā)處理、和隧道出口節(jié)點的解封裝處理時,必須進(jìn)行相應(yīng)的查表處理,現(xiàn)有技術(shù)是按獨立的查找表方式進(jìn)行查找,比如MPLS查找應(yīng)當(dāng)維護(hù)一個MPLS的隧道表,L2TP查找應(yīng)當(dāng)維護(hù)一個L2TP的隧道表,
IPv6單播查找應(yīng)當(dāng)維護(hù)一個IPv6單播表等等。
這樣在執(zhí)行查找中,按照對應(yīng)的協(xié)議構(gòu)建獨立的查找KEY之后,首先要判斷是查找哪種協(xié)議,然后找到對應(yīng)的查找表,在硬件實現(xiàn)中就會出現(xiàn)多個不同協(xié)議的查找表,查找接口是分別各自獨立存在的,對于硬件實現(xiàn)是非常不利的。
本發(fā)明將所有的查找表通過統(tǒng)一形式的查找KEY結(jié)合在一起,對外部查找表的接口只有一個,十分方便硬件的實現(xiàn),形成一個通用的查找處理流程,如圖2所示(該流程不體現(xiàn)按隧道進(jìn)行收發(fā)統(tǒng)計計數(shù)、進(jìn)行用戶認(rèn)證的功能)1、從鏈路層接口接收到數(shù)據(jù)幀。
2、數(shù)據(jù)鏈路層(L2)處理,剝除鏈路層封裝。
3、確定鏈路幀的數(shù)據(jù)報文是何種協(xié)議,令當(dāng)前處理協(xié)議(CrP)為L2協(xié)議號域指示的協(xié)議,例如,對以太網(wǎng),當(dāng)Eth_Type為0800時是IPv4。
4、按CrP協(xié)議的要求對數(shù)據(jù)報文作合法性檢查,并從報文頭中獲取當(dāng)前目的地址(DA),目的地址(DA)指數(shù)據(jù)報文中用來確定報文轉(zhuǎn)發(fā)路徑的域,例如,IP包中DA是目的IP地址,MPLS包中DA是標(biāo)記棧中的標(biāo)記。
5、通過本發(fā)明的通用查找KEY中的DA去查找CrP對應(yīng)的轉(zhuǎn)發(fā)信息庫,轉(zhuǎn)發(fā)信息庫中包含有各種隧道信息表和普通的轉(zhuǎn)發(fā)信息表。
6、判斷本節(jié)點是否為該報文所用的隧道出口,同時識別出隧道類型。如果是本節(jié)點是該報文所用的隧道出口,則令CrP為隧道內(nèi)的數(shù)據(jù)報文的協(xié)議,剝除隧道封裝,重新對報文作合法性檢查,從報文頭中獲得當(dāng)前DA,重新進(jìn)行轉(zhuǎn)發(fā)查找;如果本節(jié)點不是該報文所用的隧道出口,則繼續(xù)后續(xù)處理。
判斷“本節(jié)點是否該報文所用隧道出口”時,如果“當(dāng)前處理協(xié)議”是MPLS,則可以直接根據(jù)頂層標(biāo)記來判斷;如果“當(dāng)前處理協(xié)議”是IPv4,判斷過程如下if目的IP地址是本節(jié)點thenif協(xié)議號是TCP或UDP thenif端口號是知名的用于隧道的端口號then本節(jié)點是隧道出口;else不是;end if;else if協(xié)議號是用于隧道協(xié)議的then本節(jié)點是隧道出口;else不是;end if;else不是;end if;如果“當(dāng)前處理協(xié)議”是其他協(xié)議,應(yīng)該按照該協(xié)議的規(guī)定去做。
7、轉(zhuǎn)發(fā)信息庫中,下一跳出口可以是普通的出口,也可以是一個隧道入口,轉(zhuǎn)發(fā)信息庫中使用標(biāo)記區(qū)分這兩類出口,若下一跳出口是某條隧道的入口,則判斷是否進(jìn)入隧道,如果不進(jìn)入隧道,則進(jìn)行普通查找,將查找后的封裝信息取出來,并更新相應(yīng)的統(tǒng)計管理信息,然后就直接L2鏈路層封裝發(fā)送;如果進(jìn)入隧道,則轉(zhuǎn)入到隧道處理流程中,取得隧道類型及使用的分發(fā)協(xié)議類型,并取得構(gòu)造分發(fā)協(xié)議包頭必須的信息,進(jìn)行隧道封裝,然后判斷是否可以根據(jù)隧道信息直接確定鏈路層出口,如果可以,則鏈路層封裝發(fā)送;如果不可以,則令CrP為分發(fā)協(xié)議,令當(dāng)前目的地址DA為分發(fā)協(xié)議包頭的DA,重新進(jìn)行轉(zhuǎn)發(fā)查找。
系統(tǒng)在轉(zhuǎn)發(fā)信息庫中維護(hù)有隧道信息表,根據(jù)隧道入口ID(Identifier,即識別符)查這個表即可得到進(jìn)行隧道封裝的必要信息(包括構(gòu)造分發(fā)協(xié)議報文頭和構(gòu)造隧道協(xié)議報文頭需要的信息)。
對于MPLS,由于它是面向連接的,可以根據(jù)隧道信息直接確定鏈路層出口;而對于使用IPv4作為承載協(xié)議的隧道來說,建立隧道時一般只能確定隧道出口節(jié)點的IPv4地址,不能直接確定在本節(jié)點的鏈路層出口,因此需要再查一次轉(zhuǎn)發(fā)表以確定數(shù)據(jù)包的鏈路層出口。但是,在一些特殊的應(yīng)用場合中(例如,使用隧道作為用戶接入,隧道報文必須從指定的接口接收或發(fā)送),建立隧道時就可以確定該隧道對應(yīng)的鏈路層出口,這種情況下就不需要再查一次轉(zhuǎn)發(fā)表了。
按以上流程,如果由于配置錯誤,導(dǎo)致隧道信息中的分發(fā)協(xié)議包頭的DA就是本節(jié)點的話,會出現(xiàn)“封裝—解封裝”的循環(huán),這有可能使一個數(shù)據(jù)包被無限次處理,從而嚴(yán)重影響節(jié)點的轉(zhuǎn)發(fā)處理性能。為了避免這種情況的發(fā)生,可以在獲取分發(fā)協(xié)議報頭DA時,判斷該DA是否本節(jié)點DA,如果是則將數(shù)據(jù)包丟棄;另一種方法是,限制在節(jié)點中對一個數(shù)據(jù)包封裝的次數(shù)和解封裝的次數(shù),當(dāng)封裝或解封裝的次數(shù)超出一定值時,丟棄這個數(shù)據(jù)包。
利用本發(fā)明的這種通用查找KEY對轉(zhuǎn)發(fā)信息庫進(jìn)行查找時,可通過統(tǒng)一形式的查找KEY對所有的查找表進(jìn)行查找,可形成一個通用的查找流程,對外部查找表的接口只有一個,十分方便硬件的實現(xiàn)。
權(quán)利要求
1.一種轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于采用帶有類型區(qū)分域的查找表輸入數(shù)據(jù)(KEY)來查表,包括以下步驟首先構(gòu)造至少一個查找KEY寬度模式;根據(jù)數(shù)據(jù)包的包頭類型將數(shù)據(jù)包按不同的查找表分類;構(gòu)建查找KEY,查找KEY中設(shè)置類型區(qū)分域和目的地址(DA)域,根據(jù)所述數(shù)據(jù)包查找表的分類情況確定類型區(qū)分域?qū)挾?,利用所述的類型區(qū)分域?qū)Σ檎冶眍愋瓦M(jìn)行區(qū)分,并根據(jù)所述的目的地址域查表。
2.根據(jù)權(quán)利要求1所述的轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于所述的查找KEY可采用72位和288位兩種寬度模式,或只采用288位一種寬度模式。
3.根據(jù)權(quán)利要求1或2所述的轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于所述的目的地址域根據(jù)數(shù)據(jù)包包頭的相關(guān)域進(jìn)行確定。
4.根據(jù)權(quán)利要求3所述的轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于將查找表分為16類,采用4位所述的類型區(qū)分域來區(qū)分不同的查找表類型。
5.根據(jù)權(quán)利要求3所述的轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于可采用哈希(HASH)或其它算法將所述的查找KEY中目的地址域或類型區(qū)分域統(tǒng)一為某個固定的長度。
6.根據(jù)權(quán)利要求3所述的轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于所述的類型區(qū)分域可以含有因特網(wǎng)協(xié)議(IP)類型,也可以含有異步傳輸模式(ATM)類型。
7.根據(jù)權(quán)利要求3所述的轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,其特征在于在系統(tǒng)中維護(hù)一個可包含各種隧道信息表和普通轉(zhuǎn)發(fā)信息表的轉(zhuǎn)發(fā)信息庫,在進(jìn)行隧道處理時,通過所述的查找KEY對轉(zhuǎn)發(fā)信息庫進(jìn)行查找,確定下一跳出口。
全文摘要
一種轉(zhuǎn)發(fā)數(shù)據(jù)包的查表方法,采用帶有類型區(qū)分域的查找表輸入數(shù)據(jù)(KEY)來查表,首先根據(jù)需要構(gòu)造至少一個查找KEY寬度模式,并根據(jù)數(shù)據(jù)包的包頭類型將數(shù)據(jù)包按不同的查找表類型分類,然后構(gòu)建查找KEY,查找KEY中設(shè)置類型區(qū)分域和目的地址(DA)域,利用類型區(qū)分域?qū)Σ檎冶眍愋瓦M(jìn)行區(qū)分,可以采用72位和288位兩種查找KEY寬度模式,或只采用288位一種查找KEY寬度模式。本發(fā)明提供一種支持全部表項的處理的查表方法,從而使得路由交換設(shè)備可以全面支持各種IPv4/IPv6的查表操作,對于所有的查找表均可以硬件加速實現(xiàn),有效地提高設(shè)備的處理能力。
文檔編號H04Q3/545GK1543131SQ03122348
公開日2004年11月3日 申請日期2003年4月30日 優(yōu)先權(quán)日2003年4月30日
發(fā)明者杜涌, 杜 涌 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
彩票| 阜康市| 河曲县| 龙江县| 凤阳县| 阿瓦提县| 长垣县| 宣化县| 河东区| 平湖市| 济源市| 贵阳市| 缙云县| 大邑县| 闻喜县| 巢湖市| 汪清县| 山西省| 昌邑市| 万载县| 九江市| 南陵县| 年辖:市辖区| 桐庐县| 略阳县| 周宁县| 周至县| 榆社县| 曲水县| 肃宁县| 枣庄市| 封丘县| 正定县| 东乡族自治县| 广宗县| 墨竹工卡县| 聂拉木县| 全南县| 常德市| 通江县| 潞西市|