專利名稱:利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,尤其涉及一種利用網(wǎng)絡(luò)處理器來實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法。
背景技術(shù):
IPv4(TCP/IP)協(xié)議是當(dāng)代Internet上最重要的協(xié)議族,它是連接到Internet上的所有計算機都必須支持的協(xié)議。但是,隨著Internet的發(fā)展,IPv4的一些缺點也逐漸暴露出來,其中最主要的缺點就是地址空間嚴重不足。由于歷史原因,分配給我國的IPv4地址較少,地址枯竭問題就更加嚴重。
IPv6是設(shè)計用來替代現(xiàn)有IPv4(TCP/IP)協(xié)議,也被稱作下一代互聯(lián)網(wǎng)協(xié)議。IPv6是為了解決IPv4所存在的一些問題和不足而提出的,同時它還在許多方面提出了改進,例如路由方面、自動配置方面。IPv6協(xié)議包括I Pv6基本協(xié)議和ICMPv6協(xié)議。
但是在IPv6地址和IPv4地址共存的時期,如何讓IPv6節(jié)點和IPv4節(jié)點通信呢?為了解決這個難題,提出了網(wǎng)絡(luò)地址轉(zhuǎn)換-協(xié)議轉(zhuǎn)換(NAT-PT)及網(wǎng)絡(luò)地址端口轉(zhuǎn)換-協(xié)議轉(zhuǎn)換(NAPT-PT)。從而在網(wǎng)絡(luò)層上實現(xiàn)了從IPv6節(jié)點主動向IPv4節(jié)點建立單向連接。同時,從IPv4節(jié)點主動向IPv6節(jié)點建立的連接,還必須在應(yīng)用層添加應(yīng)用層網(wǎng)關(guān)(ALG)才能實現(xiàn)。
由于NAT-PT過渡方式只需在中間設(shè)置轉(zhuǎn)換設(shè)備即可完成IPv6網(wǎng)絡(luò)和IPv4網(wǎng)絡(luò)的互通,各網(wǎng)絡(luò)節(jié)點不需要做任何的修改,對各個網(wǎng)絡(luò)的主機設(shè)備完全透明,具有部署迅速,配置簡便的優(yōu)點,是IPv4向IPv6過渡階段的最重要的網(wǎng)絡(luò)互通方式。
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)是當(dāng)前IPv4網(wǎng)絡(luò)廣泛采用的一項技術(shù),在NAT環(huán)境中,網(wǎng)絡(luò)被劃分為內(nèi)部網(wǎng)(通常為企業(yè)局域網(wǎng))和外部網(wǎng)(通常為因特網(wǎng)),NAT網(wǎng)關(guān)將內(nèi)部網(wǎng)對外訪問的數(shù)據(jù)報源地址轉(zhuǎn)換成某個外部網(wǎng)絡(luò)地址,從而實現(xiàn)對珍貴的IPv4地址的共享,其中外部網(wǎng)絡(luò)地址可能由多個地址組成的地址池,NAT網(wǎng)關(guān)遵照一定的算法實現(xiàn)地址的動態(tài)分配。
NAT-PT是上述NAT技術(shù)在IPv4和IPv6混合網(wǎng)絡(luò)的一種自然延伸和擴展,所不同的是NAT-PT的內(nèi)部網(wǎng)是IPv6網(wǎng)絡(luò),NAT-PT在進行地址轉(zhuǎn)換時還需要同時實現(xiàn)網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換。
當(dāng)IPv6主機要與IPv4主機通信時,首先需要在IPv6網(wǎng)絡(luò)中標(biāo)識IPv4主機,NAT-PT網(wǎng)關(guān)向IPv6網(wǎng)絡(luò)中廣播一個96位的地址前綴,用96位地址前綴加上32位IPv4主機地址作為對IPv4網(wǎng)絡(luò)中主機的標(biāo)識。IPv6主機發(fā)給IPv4主機的報文,通過96位前綴被路由到NAT-PT網(wǎng)關(guān)處,NAT-PT網(wǎng)關(guān)對IPv6報文頭進行轉(zhuǎn)換,分配臨時IPv4地址來標(biāo)識IPv6源,報文轉(zhuǎn)換為IPv4報文后發(fā)給IPv4目的主機。
由于全球公用的IPv4地址的獲取困難,NAT-PT網(wǎng)關(guān)必須實現(xiàn)IPv4地址的共享。與NAT類似,NAT-PT的地址共享也是通過傳輸層標(biāo)識(TCP/UDP端口或ICMP類型碼)的跟蹤與復(fù)用來實現(xiàn)的。這時,當(dāng)內(nèi)部網(wǎng)絡(luò)主機向外建立連接時,NAT-PT網(wǎng)關(guān)必須動態(tài)分配對外的地址和傳輸層標(biāo)識,記錄每個連接會話(UDP/ICMP是偽連接)與外部地址的綁定關(guān)系,然后跟蹤該連接的狀態(tài),當(dāng)連接關(guān)閉后,NAT-PT網(wǎng)關(guān)必須自動釋放先前分配的地址和傳輸層標(biāo)識,以便后續(xù)連接使用。
與NAT類似,應(yīng)用層協(xié)議如果包含了第三層的地址或傳輸層的標(biāo)識,也需要進行相應(yīng)的轉(zhuǎn)換和轉(zhuǎn)換,這種服務(wù)叫應(yīng)用層網(wǎng)關(guān)(ALG),如域名查詢服務(wù)DNS,或FTP、H323、SIP等的控制連接。
隨著網(wǎng)絡(luò)速度的飛速發(fā)展,傳統(tǒng)的路由器已經(jīng)越來越難已滿足報文的快速轉(zhuǎn)發(fā)。為了適應(yīng)這一發(fā)展,出現(xiàn)了新型的網(wǎng)絡(luò)處理器。它是一種新型的處理器類型,專門用于滿足網(wǎng)絡(luò)交換設(shè)備的需求、網(wǎng)絡(luò)環(huán)境的要求而設(shè)計的。它除了一般處理器的功能外還包含若干個專門處理數(shù)據(jù)分組的高速智能接口,即高速引擎,使得網(wǎng)絡(luò)處理器能夠處理高速網(wǎng)絡(luò)中同時到達的多個數(shù)據(jù)流。
網(wǎng)絡(luò)處理器是用于實現(xiàn)報文處理、協(xié)議分析、路由、語音/數(shù)據(jù)集成、防火墻和QoS等通信工作的可編程硬件。它被經(jīng)過專門設(shè)計和高度優(yōu)化來完成各種網(wǎng)絡(luò)功能?,F(xiàn)有的網(wǎng)絡(luò)通訊設(shè)備主要有基于通用CPU和基于ASIC兩種類型?;谕ㄓ肅PU的網(wǎng)絡(luò)通訊設(shè)備具備了易于擴展和修改的能力,但是它提供的性能不能滿足現(xiàn)在高速網(wǎng)絡(luò)的需求?;贏SIC的網(wǎng)絡(luò)通訊設(shè)備達到高性能的數(shù)據(jù)傳輸速度。雖然ASIC提供了快速處理能力,但它的靈活性遠遠跟不上網(wǎng)絡(luò)協(xié)議和標(biāo)準的快速改變,典型的ASIC需要1年至3年的開發(fā)周期,無法進行版本更新和功能升級,制造工藝的需要也較高。
網(wǎng)絡(luò)處理器被稱為第五代路由器的核心,充分地繼承了以上兩種路由器的優(yōu)點,又克服了它們的缺點既有高性能,又可以編程,這使得Internet上不斷涌現(xiàn)的新技術(shù)能夠迅速的在實際的路由器中得以應(yīng)用。
以色列Ezchip公司的NP-1c網(wǎng)絡(luò)處理器具有很高的集成度、簡化的編程模型和先進的業(yè)務(wù)能力,代表了網(wǎng)絡(luò)處理器未來的發(fā)展方向。它采用了獨特先進的流水線結(jié)構(gòu)體系優(yōu)化的任務(wù)處理器(TOPs,Task Optimized Processors)結(jié)構(gòu)體系,包括4種不同類型的TOP,每種類型的TOP完成不同的任務(wù)。其中,分析模塊TOPparse用來分辨和提取各種數(shù)據(jù)幀的包頭、標(biāo)記、地址、端口、協(xié)議、領(lǐng)域、模式和關(guān)鍵字,該模塊能夠分析任意格式、任意封裝方式和任意具有優(yōu)先權(quán)標(biāo)記等的包。第一查找模塊TOPsearchI使用分析過的區(qū)域作為關(guān)鍵字進行相關(guān)表的查找、分類和管理。決策模塊TOPresolve進行包轉(zhuǎn)發(fā)和QoS決策,并更新表和片狀態(tài)信息。第二查找模塊TOPserachII是可選的,在TOPresolve完成之后進行附加的查找。修改模塊TOPmodify對包的內(nèi)容進行修改,完成在包的任何地方進行改寫、添加和插入操作。
發(fā)明內(nèi)容
本發(fā)明的目的在于實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換,提供了一種利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,它能滿足報文的快速轉(zhuǎn)發(fā),進一步加快了網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的處理速度,使IPv4主機和IPv6主機能夠無障礙的通信。
本發(fā)明的技術(shù)方案為一種利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,包括IPv6子網(wǎng)主機到IPv4子網(wǎng)主機的會話首包的報文流程、IPv4子網(wǎng)主機到IPv6子網(wǎng)主機的會話首包的報文流程、已建立會話的報文流程;所述IPv6子網(wǎng)主機到IPv4子網(wǎng)主機的會話首包的報文流程是指IPv6子網(wǎng)主機發(fā)送會話首包報文,由網(wǎng)絡(luò)處理器接收后先進行正確性驗證,然后查找各個表獲得該報文具體的路由轉(zhuǎn)換信息并將該路由轉(zhuǎn)換信息記錄在會話表中以實現(xiàn)狀態(tài)維護,最后把修改后的報文發(fā)送到IPv4子網(wǎng)主機;所述IPv4子網(wǎng)主機到IPv6子網(wǎng)主機的會話首包的報文流程包括步驟(1)IPv4子網(wǎng)主機先發(fā)送DNS詢問報文以詢問IPv6子網(wǎng)主機的IP地址,網(wǎng)絡(luò)處理器接收該詢問報文后查找各個表以獲得路由轉(zhuǎn)換信息,并添加會話表,將其發(fā)送給IPv6端的DNS服務(wù)器,當(dāng)網(wǎng)絡(luò)處理器收到IPv6端DNS服務(wù)器發(fā)出的DNS應(yīng)答報文后查找會話表獲得所有的路由轉(zhuǎn)換信息,同時為報文回答域中的IPv6地址動態(tài)分配一個唯一有效的IPv4地址,并把這一關(guān)系記錄在網(wǎng)絡(luò)地址轉(zhuǎn)換映射表中,接著把DNS應(yīng)答報文發(fā)送回IPv4子網(wǎng)主機;步驟(2)IPv4子網(wǎng)主機發(fā)送會話首包報文,由網(wǎng)絡(luò)處理器接收后進行正確性驗證,然后查找各個表以及步驟(1)中的網(wǎng)絡(luò)地址轉(zhuǎn)換映射表以獲得報文目的地址對應(yīng)的IPv6地址,接著把所有的路由轉(zhuǎn)換信息記錄在會話表中以實現(xiàn)狀態(tài)維護,最后把修改后的報文發(fā)送到IPv6子網(wǎng)主機;所述已建立會話的報文流程是指網(wǎng)絡(luò)處理器收到報文后查找會話表獲得所有的路由轉(zhuǎn)換信息,然后修改并發(fā)送該報文。
上述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,所述各個表包括路由表、IP-MAC表、端口配置表、地址轉(zhuǎn)換表、協(xié)議轉(zhuǎn)換前綴表。
上述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,所述會話表是為了保證同屬一個業(yè)務(wù)流的數(shù)據(jù)報文由同樣的地址發(fā)送至目的端,會話表的鍵通常是一個五元組源地址、源端口、目的地址、目的端口和協(xié)議,結(jié)果中包含所有的地址轉(zhuǎn)換和路由信息。
上述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,所述IPv6子網(wǎng)主機到IPv4子網(wǎng)主機的會話首包的報文流程主要是為該會話首包的源地址分配一個動態(tài)地址池中的IPv4地址,所述報文流程包括兩圈網(wǎng)絡(luò)處理器流程,其中第一圈網(wǎng)絡(luò)處理器流程分配IPv4地址和端口號,第二圈網(wǎng)絡(luò)處理器流程獲得該IPv4地址和端口號。
上述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,所述第一圈網(wǎng)絡(luò)處理器流程包括分析模塊階段檢測報文正確性,區(qū)分不同類型的報文,創(chuàng)建五元組,創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段以所述五元組為鍵查找相應(yīng)的會話表;以報文的目的IP地址的前12個字節(jié)為鍵查找協(xié)議轉(zhuǎn)換前綴表;以報文轉(zhuǎn)換后的目的IP地址為鍵查找路由表;以路由表中查到的下一跳IP地址為鍵查找IP-MAC表;以路由表中查到的輸出端口號為鍵查找端口配置表;建立狀態(tài)更新消息;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);判斷會話表是否命中,若命中則以已建立會話的報文流程來處理,若不命中則繼續(xù)處理;判斷協(xié)議轉(zhuǎn)換前綴表是否命中,若命中則繼續(xù)處理;收集路由表、IP-MAC表、硬件寄存器消息和狀態(tài)更新消息中的所有信息,在相應(yīng)的會話表中建立表項,并且啟動動態(tài)分配IPv4和端口號的模塊;創(chuàng)建所需的消息,包括環(huán)回頭信息和硬件寄存器信息;修改模塊階段填寫數(shù)據(jù)報文的報頭,并把報文發(fā)送到交換口,由同一個網(wǎng)絡(luò)處理器接收并進行第二圈網(wǎng)絡(luò)處理器流程。
上述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,所述第二圈網(wǎng)絡(luò)處理器流程包括分析模塊階段根據(jù)第一圈傳入的環(huán)回頭信息,區(qū)分不同類型的報文,創(chuàng)建五元組用于查找會話表,創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段以五元組為鍵,查找相應(yīng)的會話表;以會話表結(jié)果中索引域的第一個字節(jié)作為鍵,查找IPv4地址索引表,取得地址池中實際的IPv4地址;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);收集會話表、IPv4地址索引表、報文相關(guān)信息和五元組消息中的所有信息更新會話表中相應(yīng)的正向表項,同時創(chuàng)建逆向表項;創(chuàng)建所需的消息和鍵,包括協(xié)議轉(zhuǎn)換消息、輸出端口鍵、路由轉(zhuǎn)發(fā)消息和硬件寄存器消息;修改模塊階段處理四層頭,填寫源端口號和目的端口號,重新計算校驗和;處理三層頭,把協(xié)議轉(zhuǎn)換消息中的內(nèi)容寫入三層頭;處理二層頭,把路由轉(zhuǎn)發(fā)消息中的內(nèi)容寫入二層頭相應(yīng)的域中;寫發(fā)送寄存器并發(fā)送報文。
上述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,所述IPv4子網(wǎng)主機到IPv6子網(wǎng)主機的會話首包的報文流程包括分析模塊階段檢測報文正確性,區(qū)分不同類型的報文,創(chuàng)建五元組用于查找會話表,創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段以五元組為鍵查找相應(yīng)的會話表;查找網(wǎng)絡(luò)地址轉(zhuǎn)換映射表,若網(wǎng)絡(luò)地址轉(zhuǎn)換映射表命中則接著查找路由表;以路由表中查到的下一跳IP地址為鍵查找IP-MAC表;以路由表中查到的輸出口號為鍵查找端口配置表;建立狀態(tài)更新信息;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);判斷會話是否命中,若命中是已有會話的情況,若不命中則繼續(xù)處理;判斷網(wǎng)絡(luò)地址轉(zhuǎn)換映射表是否命中,若命中則繼續(xù)處理;收集網(wǎng)絡(luò)地址轉(zhuǎn)換映射表、路由表、IP-MAC表、硬件寄存器消息和狀態(tài)更新消息中的所有信息,在相應(yīng)的會話表中建立表項;創(chuàng)建所需的消息和鍵,包括協(xié)議轉(zhuǎn)換消息、輸出端口鍵、路由轉(zhuǎn)發(fā)消息和硬件寄存器消息;修改模塊階段處理四層頭,填寫源端口號和目的端口號,重新計算校驗和;處理三層頭,把協(xié)議轉(zhuǎn)換消息中的內(nèi)容寫入三層頭相應(yīng)的域中;處理二層頭,把路由轉(zhuǎn)發(fā)消息中的內(nèi)容寫入二層頭相應(yīng)的域中;寫發(fā)送寄存器并發(fā)送報文。
上述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其中,所述已建立會話的報文流程包括分析模塊階段區(qū)分不同類型的報文;創(chuàng)建五元組用于查找會話表;創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段根據(jù)五元組查找相應(yīng)的會話表得到包含所有路由轉(zhuǎn)換信息的查詢結(jié)果;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);創(chuàng)建協(xié)議轉(zhuǎn)換消息;創(chuàng)建輸出端口鍵;創(chuàng)建路由轉(zhuǎn)發(fā)消息和硬件寄存器消息;修改模塊階段處理四層頭,填寫源端口號和目的端口號,重新計算校驗和;處理三層頭,把協(xié)議轉(zhuǎn)換消息中的內(nèi)容寫入三層頭相應(yīng)的域中;處理二層頭,把路由轉(zhuǎn)發(fā)消息中的內(nèi)容寫入二層頭相應(yīng)的域中;寫發(fā)送寄存器并發(fā)送報文。
本發(fā)明對比現(xiàn)有技術(shù)有如下的有益效果本發(fā)明采用網(wǎng)絡(luò)處理器對IPv4主機到IPv6主機會話首包、IPv6主機到IPv4主機會話首包、DNS報文和后續(xù)報文這四種報文進行處理。本發(fā)明加快了上述報文的轉(zhuǎn)發(fā)速度,使IPv4子網(wǎng)和Ipv6子網(wǎng)之間能夠相互通信。
圖1是本發(fā)明中IPv6報文處理的流程圖。
圖2是本發(fā)明中IPv4報文處理的流程圖。
具體實施例方式
下面結(jié)合附圖和實施例對本發(fā)明的實施例作進一步的描述。
在IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換過程中,需要對四種類型的報文進行處理,它們是IPv4主機到IPv6主機的報文會話首包、IPv6主機到IPv4主機的報文會話首包、DNS報文和已建立會話的后續(xù)報文。
圖1示出了IPv6報文處理的流程圖。請結(jié)合圖1,在IPv6子網(wǎng)中的主機要主動和IPv4子網(wǎng)中的主機通信的情況下,IPv6主機先發(fā)送一個報文,稱之為新的會話首包。NP-1c網(wǎng)絡(luò)處理器收到該會話首包后,先進行正確性驗證;然后查找各個不同的表(如路由表,IP-MAC表,端口配置表、地址轉(zhuǎn)換表、協(xié)議轉(zhuǎn)換(PT)前綴表等)獲得該報文具體的路由轉(zhuǎn)換信息;接著,最重要的是把所有的路由轉(zhuǎn)換信息記錄在會話表中,實現(xiàn)狀態(tài)維護;最后把修改后的報文發(fā)送到V4主機。此處實現(xiàn)的是網(wǎng)絡(luò)地址端口轉(zhuǎn)換(NAPT)和協(xié)議轉(zhuǎn)換(PT)。
當(dāng)IPv6子網(wǎng)中的主機和IPv4子網(wǎng)中的主機建立了連接之后,即實現(xiàn)了上述的會話表建立之后,它們之間就能進行正常的通信了。這時,NP-1c網(wǎng)絡(luò)處理器收到的報文只要查找會話表,獲得了所有的路由轉(zhuǎn)換信息,修改并發(fā)送該報文即可。
上述的會話表是為了保證同屬一個業(yè)務(wù)流的數(shù)據(jù)報文由同樣的地址發(fā)送至目的端,會話表的鍵通常是一個五元組源地址、源端口、目的地址、目的端口和協(xié)議(SRC_IP、SRC_PORT、DST_IP、DST_PORT、PROTO),結(jié)果中包含所有的地址轉(zhuǎn)換和路由信息。另外由于分片報文非首包并不包含通常的五元組,所以為了正確的識別分片報文的非首包術(shù)語哪個會話(session),還必須維護一張分片會話表,以一個四元組源地址、目的地址、協(xié)議和分片號(SRC_IP、DST_IP、PROTO、FRAG_ID)標(biāo)識。
具體地說,由IPv6主機向IPv4主機建立連接的會話首包的流程比較復(fù)雜,主要是因為必須為該會話首包的源地址分配一個動態(tài)地址池中的IPv4地址,即實現(xiàn)NAPT功能。而由于硬件的局限性,這個分配動作無法在一個網(wǎng)絡(luò)處理器流程中完成。實際工作中,第一圈網(wǎng)絡(luò)處理器流程只能分配IPv4地址而無法獲取該地址,第二圈網(wǎng)絡(luò)處理器流程才能獲得該IPv4地址和端口。所以每個IPv6到IPv4的會話首包必須在網(wǎng)絡(luò)處理器中走兩個流程才能完成相應(yīng)的轉(zhuǎn)換。
IPv6主機向IPv4主機會話首包的第一圈網(wǎng)絡(luò)處理器流程大致分成以下階段(1)分析模塊(TOPparse)階段首先檢測報文的正確性,區(qū)分不同類型的報文。先區(qū)分該報文是從RX端(網(wǎng)口)還是從TX端(交換口)進來。若是TX端,再區(qū)分是從中央處理器(CP)端來的還是從同一網(wǎng)絡(luò)處理器(NP)端來的報文。從CP端來的報文主要是從NP端發(fā)送給CP端處理的報文,是那些對實時性要求不高的、很少出現(xiàn)的、處理流程復(fù)雜的報文類型,在NAPT中就是DNS報文。從同一NP來的報文就是IPv6主機到IPv4主機的報文會話首包。若是從同一NP來的報文,還要區(qū)分出具體的4層協(xié)議類型(TCP、UDP、ICMP、UNKNOWN)。若是RX端,也要區(qū)分出具體的3層和4層協(xié)議類型,即IPv4(TCP、UDP、ICMP、UNKNOWN)或IPv6(TCP、UDP、ICMP、UNKNOWN)。
然后創(chuàng)建五元組、報文相關(guān)消息和硬件寄存器消息等相關(guān)消息。由于各個處理階段(TOPs)之間信息的共享必須通過消息來實現(xiàn),所以我們必須為那些需要修改的數(shù)據(jù)或者那些被后面階段用到的信息創(chuàng)建消息。報文相關(guān)消息中的內(nèi)容用于協(xié)議轉(zhuǎn)換(PT),包括(IPv6/IPv4)負載長度/總長度、下一報頭號/協(xié)議號、跳限制/生存時間、分片標(biāo)識符、分片標(biāo)志、四層校驗和等內(nèi)容,決定這些數(shù)據(jù)應(yīng)該如何被修改將在決策模塊(TOPresolve)進行。硬件寄存器消息是所有報文所必需的,記錄了所有硬件相關(guān)的信息。值得一提的是,該消息中的“RSV Label”域,存儲的是跳轉(zhuǎn)行標(biāo),用于在TOPresolve階段實現(xiàn)多分支跳轉(zhuǎn)。
(2)第一查找模塊(TOPsearchI)階段首先以五元組為鍵查找相應(yīng)的會話表。若會話表命中,說明該報文是已建立會話的后續(xù)報文;若會話表不命中,即表示是新的會話首包,則繼續(xù)處理,查找其他的表。
然后以報文的目的IP地址的前12個字節(jié)為鍵,查找協(xié)議轉(zhuǎn)換(PT)前綴表。若PT前綴表不命中,則說明該報文是需要路由的報文;若命中則說明該報文是需要PT的報文,繼續(xù)處理查找其他的表。這里的PT前綴表的結(jié)構(gòu)十分簡單,只有一個控制字節(jié),標(biāo)志是否命中了該表。
接著以報文轉(zhuǎn)換后的目的IP地址為鍵,查找路由表。若路由表不命中,則以后要返回一個路由不可達的網(wǎng)絡(luò)控制消息協(xié)議(ICMP)錯誤報文;若路由表命中,則繼續(xù)處理,查找其他的表。
以路由表中查到的下一跳IP地址為鍵,查找IP-MAC表。若IP-MAC表不命中,則以后要發(fā)起一個鄰接點詢問報文;若IP-MAC表命中,則繼續(xù)處理,查找其他的表。
以路由表中查到的輸出端口號為鍵,查找端口配置表。查找端口配置表的目的是為了獲得端口相關(guān)的信息,包括PT前綴、子網(wǎng)掩碼、MTU、本端口以太網(wǎng)媒體節(jié)入控制器(MAC)等。
最后建立狀態(tài)更新消息。建立該消息的目的就是為了把五元組傳遞給下面的TOPresolve階段,用于創(chuàng)建會話表表項,所以更新消息中就只有五元組信息。
(3)決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo)。
判斷會話表是否命中,若命中則說明該報文是已建立會話的后續(xù)報文;若不命中則繼續(xù)處理。
判斷PT前綴表是否命中,若不命中則是需要路由的報文;若命中則繼續(xù)處理。
收集路由表、IP-MAC表、硬件寄存器消息和狀態(tài)更新消息中的所有消息,在相應(yīng)的會話表中建立表項。此時需要給源地址分配一個動態(tài)地址池中的IPv4地址,這個分配動作是通過硬件部件Index_Q來實現(xiàn)的。Index_Q是一組計數(shù)器的指針,這組計數(shù)器的物理地址是連續(xù)的,每個地址都是24位長。我們把前一個字節(jié)作為IPv4的地址索引,后兩個字節(jié)作為NAPT端口號。硬件實現(xiàn)的動態(tài)地址池包含256個全球唯一有效的IPv4地址,每個地址都可以復(fù)用65536個端口,大大提高了地址池的容量。而這個Index_Q的分配地址動作是在創(chuàng)建會話表表項時同時進行的。當(dāng)創(chuàng)建好表項之后,雖然在會話表中已經(jīng)有相應(yīng)的地址池IPv4地址索引信息,但是在TOPresolve階段,無法查表,所以無法索取這個信息。必須要回到TOPsearchI階段查找會話表獲取這個計數(shù)器的地址,即IPv4地址索引號和NAT端口號。這就是必須在NP中走兩圈才能完成轉(zhuǎn)換的原因。在創(chuàng)建會話表時,由于無法獲取轉(zhuǎn)換后的源地址,所以無法創(chuàng)建逆向的會話表項(逆向會話表項的鍵值中的目的地址就是轉(zhuǎn)換后的源地址),現(xiàn)在只能創(chuàng)建正向的表項,而且結(jié)果中有些域的值無法獲取,比如轉(zhuǎn)換后的源地址(T_SRC_IP),轉(zhuǎn)換后的源端口(T_SRC_PORT)。并且啟動動態(tài)分配IPv4和端口號的模塊。
創(chuàng)建所需的消息,包括環(huán)回頭消息(Loopback_EZHeader頭消息)和硬件寄存器消息。Loopback_EZHeader頭消息包含報文相關(guān)消息和五元組消息,為了便于下一圈對報文的內(nèi)容直接處理,不用再解析報文。硬件寄存器消息只要拷貝TOPparse階段的硬件寄存器消息即可,其中“RSV Label”域改為相應(yīng)的“MDF Label”域。
(4)修改模塊(TOPmodify)階段該階段不需要對報文進行修改,只需要填寫數(shù)據(jù)報文的報頭(Ezheader頭),并把報文發(fā)送到交換口,由同一個網(wǎng)絡(luò)處理器接收,進行第二圈的處理。Ezheader頭只要拷貝TOPresolve階段傳過來的Loopback_EZHeader頭消息即可。
之后,網(wǎng)絡(luò)處理器進行IPv6主機向IPv4主機會話首包的第二圈流程,分成以下階段(1)分析模塊(TOPparse)階段和第一圈流程的TOPparse階段功能類似,分析環(huán)回頭信息,創(chuàng)建五元組和相關(guān)消息。
(2)第一查找模塊(TOPsearchI)階段以五元組為鍵,查找相應(yīng)的會話表,此時會話表必然命中。
以會話表結(jié)果總的“index”域的第一個字節(jié)作為鍵,查找IPv4地址索引表,取得地址池中實際的IPv4地址。這里的“index”域其實就是Index_Q,即計數(shù)器指針。IPv4地址索引表是由CP端的DNS-ALG創(chuàng)建和維護的。
(3)決策模塊(TOPresolve)階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo)。
收集會話表、IPv4地址索引表、報文相關(guān)消息和五元組消息中的所有信息更新會話表中相應(yīng)的正向表項,同時創(chuàng)建逆向表項。
正向表項中,轉(zhuǎn)換后的源地址和轉(zhuǎn)換后的源端口還未填寫,現(xiàn)在這些信息都能夠獲得了。轉(zhuǎn)換后的源地址就是IPv4地址索引表中的IPv4地址,轉(zhuǎn)換后的源端口就是會話表中“Index”域的后兩個字節(jié),所以在第二圈中對第一圈建立的會話表條目進行更新。
創(chuàng)建所需的消息和鍵,包括PT消息、輸出端口鍵、RT消息和硬件寄存器消息。
(4)修改模塊(TOPmodify)階段處理四層頭。包括填寫源端口號和目的端口號,重新計算校驗和等。由于本階段校驗和的計算,硬件是通過增量法實現(xiàn)的,所以我們必須先減去報文原來的偽報頭(如果存在的話),然后再添加報文修改后新的偽報頭。
處理三層頭。把PT消息中的內(nèi)容寫入三層頭相應(yīng)的域中。
處理二層頭。把RT消息中的內(nèi)容寫入二層頭相應(yīng)的域中。
寫發(fā)送寄存器,并發(fā)送報文。
經(jīng)歷了上述兩圈網(wǎng)絡(luò)處理器流程,就完成了IPv6子網(wǎng)主機到IPv4子網(wǎng)主機會話首包報文的處理流程。
圖2示出了本發(fā)明中IPv4報文處理的流程。請參見圖2,在IPv4子網(wǎng)中的主機主動和IPv6子網(wǎng)中的主機通信的情況下,IPv4主機先發(fā)送一個DNS詢問報文,詢問IPv6主機的IP地址。NP-1c網(wǎng)絡(luò)處理器收到這個詢問報文后,也要查找各個表(路由表、IP-MAC表和端口配置表),獲得路由轉(zhuǎn)換信息,并且為該報文建立會話關(guān)系,即添加會話表,然后發(fā)送給IPv6端的DNS服務(wù)器。當(dāng)收到IPv6端DNS服務(wù)器發(fā)出的DNS應(yīng)答報文后,只要查找會話表,就能獲得所有的路由轉(zhuǎn)換信息;同時,為報文回答域中的IPv6地址動態(tài)分配一個全球唯一有效的IPv4地址,并把這一關(guān)系記錄在NAT映射表中,最后把DNS應(yīng)答報文發(fā)送回IPv4主機。
在上述轉(zhuǎn)換并記錄實現(xiàn)之后,IPv4主機才能發(fā)送一個新的會話首包。NP-1c網(wǎng)絡(luò)處理器收到該會話首包后,先進行正確性驗證;然后查找各個不同的表(如路由表,IP-MAC表,端口配置表等),并且要查找NAT映射表,獲得報文目的地址對應(yīng)的IPv6地址;接著,最重要的是把所有的路由轉(zhuǎn)換信息記錄在會話表中,實現(xiàn)狀態(tài)維護;最后把修改后的報文發(fā)送到IPv6主機。此處實現(xiàn)的是帶緩存的NAT和PT。
當(dāng)IPv4子網(wǎng)中的主機和IPv6子網(wǎng)中的主機建立了連接之后,即實現(xiàn)了上述的會話表建立之后,它們之間就能進行正常的通信了。這時,NP-1c網(wǎng)絡(luò)處理器收到的報文只要查找會話表,獲得了所有的路由轉(zhuǎn)換信息,修改并發(fā)送該報文即可。
具體地說,IPv4主機主動向IPv6主機建立連接的會話首包流程如下由于在發(fā)送會話首包之前,已經(jīng)通過DNS報文在邊緣路由器上建立了IPv4和IPv6地址的映射關(guān)系,我們只需進行相應(yīng)的轉(zhuǎn)換即可。
(1)分析模塊(TOPparse)階段和上述的分析模塊階段功能類似,主要用于檢測報文正確性,區(qū)分不同類型報文及創(chuàng)建五元組和相關(guān)消息。
(2)第一查找模塊(TOPsearchI)階段和上一節(jié)第一圈網(wǎng)絡(luò)處理器流程的TOPsearchI階段功能類似,唯一不同的是查找相應(yīng)會話表后,當(dāng)發(fā)現(xiàn)會話表不命中,即表明是會話首包;這時接著要查找NAT映射表,即IPv4和IPv6映射關(guān)系表,查找報文中目的地址對應(yīng)轉(zhuǎn)換后的IPv6地址。若NAT映射表命中,接著就查找路由表,和上一節(jié)第一圈網(wǎng)絡(luò)處理器流程的TOPsearchI階段功能類似;若NAT映射表不命中,則表明不是一個PT包,不屬于本節(jié)的討論范圍。
NAT映射表記錄了由IPv4端向IPv6端發(fā)起的連接中,IPv6地址和NAT地址池中的IPv4地址的綁定關(guān)系。由于每個會話是雙向的,所以存在兩張NAT映射表,分別以IPv4地址和IPv6地址為鍵值。NAT映射表的創(chuàng)建和維護是由CP端實現(xiàn)的,并且CP端周期性的掃描NAT映射表,刪除超過緩存時間的綁定關(guān)系,同時把釋放的IPv4地址放回NAT地址池中,這就是帶緩存的NAT的實現(xiàn)。
(3)決策模塊(TOPresolve)階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo)。
判斷會話表是否命中,若命中則表明是已有會話的情況;若不命中則繼續(xù)處理。
判斷NAT映射表是否命中,若命中則繼續(xù)處理。
收集NAT映射表、路由表、IP-MAC表、硬件寄存器消息和狀態(tài)更新消息(HL消息)中的所有信息,在相應(yīng)的會話表中建立表項。由于會話是雙向的,所以要建立正向和逆向兩個表項,每個表項的內(nèi)容出處和相應(yīng)表項類似,在此不再復(fù)述。
創(chuàng)建所需的消息和鍵,包括PT消息、輸出端口鍵、RT消息和硬件寄存器消息。
(4)修改模塊(TOPmodify)階段處理四層頭。包括填寫源端口號和目的端口號,重新計算校驗和等。由于本階段校驗和的計算,硬件是通過增量法實現(xiàn)的,所以我們必須先減去報文原來的偽報頭(如果存在的話),然后再添加報文修改后新的偽報頭。
處理三層頭。把PT消息中的內(nèi)容寫入三層頭相應(yīng)的域中。
處理二層頭。把RT消息中的內(nèi)容寫入二層頭相應(yīng)的域中。
寫發(fā)送寄存器,并發(fā)送報文。設(shè)置發(fā)送接口寄存器,使得硬件從正確的端口發(fā)送處理后的報文。
經(jīng)過上述4個階段的處理,完成了IPv4主機到IPv6主機會話首包報文的處理流程。
當(dāng)IPv4主機主動向IPv6主機發(fā)送的會話首包以及IPv6主機主動向IPv4主機發(fā)送的會話首包處理完成后,在IPv4主機和IPv6主機之間建立了通信連接。后續(xù)報文會依已建立會話的報文流程來處理,具體處理流程如下(1)分析模塊(TOPparse)階段區(qū)分不同類型的報文。
創(chuàng)建五元組用于查找會話表。由于是已建立會話的報文,所以在會話表中一定建立了相應(yīng)的會話表項,只要查找會話表就能獲得該報文所有的路由轉(zhuǎn)換信息。由于是區(qū)分不同的協(xié)議類型,所以會有多張不同的會話表。
創(chuàng)建報文相關(guān)消息和硬件寄存器消息。
(2)第一查找模塊(TOPsearchI)階段根據(jù)五元組查找相應(yīng)的會話表。因為其為會話的后續(xù)報文,所以肯定會話表查詢命中。查詢結(jié)果中幾乎包含了所有需要的路由轉(zhuǎn)換信息,包括轉(zhuǎn)換后的目的MAC、源IP、目的IP、源端口、目的端口、發(fā)送物理端口號等。其中缺少了轉(zhuǎn)換后的源MAC,這個信息是通過在第二查找模塊(TOPSEARCHII)階段查找端口配置表得到。
(3)決策模塊(TOPresolve)階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo)。區(qū)分報文的種類和TOPparse階段類似。跳轉(zhuǎn)處理行標(biāo)是通過多分支跳轉(zhuǎn)實現(xiàn)的,而這個跳轉(zhuǎn)行標(biāo)就是TOPparse階段傳過來的硬件寄存器消息中的“RSV Label”域。
創(chuàng)建PT消息。把報文相關(guān)消息中的數(shù)據(jù)按照PT轉(zhuǎn)換規(guī)則修改,修改后寫入PT消息中;同時還要把查找會話表得出的結(jié)果寫入PT消息中。所以PT消息就是會話表結(jié)果和報文相關(guān)消息的總和。
創(chuàng)建輸出端口鍵。創(chuàng)建該鍵的目的是為了在TOPsearchII階段查找端口配置表,獲得報文的源MAC。
創(chuàng)建RT消息和硬件寄存器消息。RT消息,即路由消息,對于所有的報文來說都必須有。該消息中保存目的MAC和發(fā)送端口號。對于只需要路由處理的報文,只要該消息即可;而對于需要PT的報文,還需要PT消息。硬件寄存器消息只要拷貝TOPparse階段的硬件寄存器消息,其中“RSV Label”域改為相應(yīng)的“MDF Label”域。
(4)修改模塊(TOPmodify)階段處理四層頭。包括填寫源端口號和目的端口號,重新計算校驗和等。由于本階段校驗和的計算,硬件是通過增量法實現(xiàn)的,所以我們必須先減去報文原來的偽報頭(如果存在的話),然后再添加報文修改后新的偽報頭。
處理三層頭。把PT消息中的內(nèi)容寫入三層頭相應(yīng)的域中。
處理二層頭。把RT消息中的內(nèi)容寫入二層頭相應(yīng)的域中。
寫發(fā)送寄存器,并發(fā)送報文。設(shè)置發(fā)送接口寄存器,使得硬件從正確的端口發(fā)送處理后的報文。
應(yīng)理解,上述實施例是提供給本領(lǐng)域普通技術(shù)人員來實現(xiàn)或使用本發(fā)明的,本領(lǐng)域普通技術(shù)人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對上述實施例做出種種修改或變化,因而本發(fā)明的保護范圍并不被上述實施例所限,而應(yīng)該是符合權(quán)利要求書提到的創(chuàng)新性特征的最大范圍。
權(quán)利要求
1 一種利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,包括IPv6子網(wǎng)主機到IPv4子網(wǎng)主機的會話首包的報文流程、IPv4子網(wǎng)主機到IPv6子網(wǎng)主機的會話首包的報文流程、已建立會話的報文流程;所述IPv6子網(wǎng)主機到IPv4子網(wǎng)主機的會話首包的報文流程是指IPv6子網(wǎng)主機發(fā)送會話首包報文,由網(wǎng)絡(luò)處理器接收后先進行正確性驗證,然后查找各個表獲得該報文具體的路由轉(zhuǎn)換信息并將該路由轉(zhuǎn)換信息記錄在會話表中以實現(xiàn)狀態(tài)維護,最后把修改后的報文發(fā)送到IPv4子網(wǎng)主機;所述IPv4子網(wǎng)主機到IPv6子網(wǎng)主機的會話首包的報文流程包括步驟(1)IPv4子網(wǎng)主機先發(fā)送DNS詢問報文以詢問IPv6子網(wǎng)主機的IP地址,網(wǎng)絡(luò)處理器接收該詢問報文后查找各個表以獲得路由轉(zhuǎn)換信息,并添加會話表,將其發(fā)送給IPv6端的DNS服務(wù)器,當(dāng)網(wǎng)絡(luò)處理器收到IPv6端DNS服務(wù)器發(fā)出的DNS應(yīng)答報文后查找會話表獲得所有的路由轉(zhuǎn)換信息,同時為報文回答域中的IPv6地址動態(tài)分配一個唯一有效的IPv4地址,并把這一關(guān)系記錄在網(wǎng)絡(luò)地址轉(zhuǎn)換映射表中,接著把DNS應(yīng)答報文發(fā)送回IPv4子網(wǎng)主機;步驟(2)IPv4子網(wǎng)主機發(fā)送會話首包報文,由網(wǎng)絡(luò)處理器接收后進行正確性驗證,然后查找各個表以及步驟(1)中的網(wǎng)絡(luò)地址轉(zhuǎn)換映射表以獲得報文目的地址對應(yīng)的IPv6地址,接著把所有的路由轉(zhuǎn)換信息記錄在會話表中以實現(xiàn)狀態(tài)維護,最后把修改后的報文發(fā)送到IPv6子網(wǎng)主機;所述已建立會話的報文流程是指網(wǎng)絡(luò)處理器收到報文后查找會話表獲得所有的路由轉(zhuǎn)換信息,然后修改并發(fā)送該報文。
2根據(jù)權(quán)利要求1所述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,所述各個表包括路由表、IP-MAC表、端口配置表、地址轉(zhuǎn)換表、協(xié)議轉(zhuǎn)換前綴表。
3根據(jù)權(quán)利要求1所述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,所述會話表是為了保證同屬一個業(yè)務(wù)流的數(shù)據(jù)報文由同樣的地址發(fā)送至目的端,會話表的鍵通常是一個五元組源地址、源端口、目的地址、目的端口和協(xié)議,結(jié)果中包含所有的地址轉(zhuǎn)換和路由信息。
4根據(jù)權(quán)利要求1所述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,所述IPv6子網(wǎng)主機到IPv4子網(wǎng)主機的會話首包的報文流程主要是為該會話首包的源地址分配一個動態(tài)地址池中的IPv4地址,所述報文流程包括兩圈網(wǎng)絡(luò)處理器流程,其中第一圈網(wǎng)絡(luò)處理器流程分配IPv4地址和端口號,第二圈網(wǎng)絡(luò)處理器流程獲得該IPv4地址和端口號。
5根據(jù)權(quán)利要求4所述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,所述第一圈網(wǎng)絡(luò)處理器流程包括分析模塊階段檢測報文正確性,區(qū)分不同類型的報文,創(chuàng)建五元組,創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段以所述五元組為鍵查找相應(yīng)的會話表;以報文的目的IP地址的前12個字節(jié)為鍵查找協(xié)議轉(zhuǎn)換前綴表;以報文轉(zhuǎn)換后的目的IP地址為鍵查找路由表;以路由表中查到的下一跳IP地址為鍵查找IP-MAC表;以路由表中查到的輸出端口號為鍵查找端口配置表;建立狀態(tài)更新消息;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);判斷會話表是否命中,若命中則以已建立會話的報文流程來處理,若不命中則繼續(xù)處理;判斷協(xié)議轉(zhuǎn)換前綴表是否命中,若命中則繼續(xù)處理;收集路由表、IP-MAC表、硬件寄存器消息和狀態(tài)更新消息中的所有信息,在相應(yīng)的會話表中建立表項,并且啟動動態(tài)分配IPv4和端口號的模塊;創(chuàng)建所需的消息,包括環(huán)回頭信息和硬件寄存器信息;修改模塊階段填寫數(shù)據(jù)報文的報頭,并把報文發(fā)送到交換口,由同一個網(wǎng)絡(luò)處理器接收并進行第二圈網(wǎng)絡(luò)處理器流程。
6根據(jù)權(quán)利要求5所述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,所述第二圈網(wǎng)絡(luò)處理器流程包括分析模塊階段根據(jù)第一圈傳入的環(huán)回頭信息,區(qū)分不同類型的報文,創(chuàng)建五元組用于查找會話表,創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段以五元組為鍵,查找相應(yīng)的會話表;以會話表結(jié)果中索引域的第一個字節(jié)作為鍵,查找IPv4地址索引表,取得地址池中實際的IPv4地址;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);收集會話表、IPv4地址索引表、報文相關(guān)信息和五元組消息中的所有信息更新會話表中相應(yīng)的正向表項,同時創(chuàng)建逆向表項;創(chuàng)建所需的消息和鍵,包括協(xié)議轉(zhuǎn)換消息、輸出端口鍵、路由轉(zhuǎn)發(fā)消息和硬件寄存器消息;修改模塊階段處理四層頭,填寫源端口號和目的端口號,重新計算校驗和;處理三層頭,把協(xié)議轉(zhuǎn)換消息中的內(nèi)容寫入三層頭;處理二層頭,把路由轉(zhuǎn)發(fā)消息中的內(nèi)容寫入二層頭相應(yīng)的域中;寫發(fā)送寄存器并發(fā)送報文。
7根據(jù)權(quán)利要求1所述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,所述IPv4子網(wǎng)主機到IPv6子網(wǎng)主機的會話首包的報文流程包括分析模塊階段檢測報文正確性,區(qū)分不同類型的報文,創(chuàng)建五元組用于查找會話表,創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段以五元組為鍵查找相應(yīng)的會話表;查找網(wǎng)絡(luò)地址轉(zhuǎn)換映射表,若網(wǎng)絡(luò)地址轉(zhuǎn)換映射表命中則接著查找路由表;以路由表中查到的下一跳IP地址為鍵查找IP-MAC表;以路由表中查到的輸出口號為鍵查找端口配置表;建立狀態(tài)更新信息;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);判斷會話是否命中,若命中是已有會話的情況,若不命中則繼續(xù)處理;判斷網(wǎng)絡(luò)地址轉(zhuǎn)換映射表是否命中,若命中則繼續(xù)處理;收集網(wǎng)絡(luò)地址轉(zhuǎn)換映射表、路由表、IP-MAC表、硬件寄存器消息和狀態(tài)更新消息中的所有信息,在相應(yīng)的會話表中建立表項;創(chuàng)建所需的消息和鍵,包括協(xié)議轉(zhuǎn)換消息、輸出端口鍵、路由轉(zhuǎn)發(fā)消息和硬件寄存器消息;修改模塊階段處理四層頭,填寫源端口號和目的端口號,重新計算校驗和;處理三層頭,把協(xié)議轉(zhuǎn)換消息中的內(nèi)容寫入三層頭相應(yīng)的域中;處理二層頭,把路由轉(zhuǎn)發(fā)消息中的內(nèi)容寫入二層頭相應(yīng)的域中;寫發(fā)送寄存器并發(fā)送報文。
8根據(jù)權(quán)利要求1所述的利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,其特征在于,所述已建立會話的報文流程包括分析模塊階段區(qū)分不同類型的報文;創(chuàng)建五元組用于查找會話表;創(chuàng)建報文相關(guān)消息和硬件寄存器消息;第一查找模塊階段根據(jù)五元組查找相應(yīng)的會話表得到包含所有路由轉(zhuǎn)換信息的查詢結(jié)果;決策模塊階段根據(jù)分析模塊階段的不同分析結(jié)果,跳到各個報文的處理行標(biāo);創(chuàng)建協(xié)議轉(zhuǎn)換消息;創(chuàng)建輸出端口鍵;創(chuàng)建路由轉(zhuǎn)發(fā)消息和硬件寄存器消息;修改模塊階段處理四層頭,填寫源端口號和目的端口號,重新計算校驗和;處理三層頭,把協(xié)議轉(zhuǎn)換消息中的內(nèi)容寫入三層頭相應(yīng)的域中;處理二層頭,把路由轉(zhuǎn)發(fā)消息中的內(nèi)容寫入二層頭相應(yīng)的域中;寫發(fā)送寄存器并發(fā)送報文。
全文摘要
本發(fā)明公開了一種利用網(wǎng)絡(luò)處理器實現(xiàn)IPv4/IPv6網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換的方法,它能滿足報文的快速轉(zhuǎn)發(fā),使IPv4主機和IPv6主機能夠無障礙的通信。其技術(shù)方案為本發(fā)明利用網(wǎng)絡(luò)處理器將報文分為以下三種類型處理IPv6子網(wǎng)主機到IPv4子網(wǎng)主機的會話首包、IPv4子網(wǎng)主機到IPv6子網(wǎng)主機的會話首包、已建立會話的報文。本發(fā)明應(yīng)用于IPv4/IPv6子網(wǎng)主機之間的協(xié)議轉(zhuǎn)換。
文檔編號H04L12/56GK101087296SQ20061002746
公開日2007年12月12日 申請日期2006年6月8日 優(yōu)先權(quán)日2006年6月8日
發(fā)明者曲延光, 李存, 張文良, 楊兵, 曹昊陽 申請人:上海億人通信終端有限公司