專利名稱:一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方 法及系統(tǒng)。
背景技術(shù):
通過使用NAT (網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù), 一個(gè)組織可以重用一個(gè)或多個(gè) 注冊(cè)過的全球唯一的IP地址,這可以在一定程度上緩解互聯(lián)網(wǎng)絡(luò)IP地址不 足的壓力。
圖1是傳統(tǒng)的NAT功能實(shí)現(xiàn)方式。
數(shù)據(jù)包轉(zhuǎn)發(fā)單元101:數(shù)據(jù)包轉(zhuǎn)發(fā)單元101接收到輸入的原始數(shù)據(jù)報(bào)文 105,進(jìn)行相應(yīng)的業(yè)務(wù)處理和路由轉(zhuǎn)發(fā)等功能的實(shí)現(xiàn)。對(duì)于需要進(jìn)行NAT處 理的報(bào)文,送到NAT業(yè)務(wù)處理單元102;
NAT業(yè)務(wù)處理單元102: NAT業(yè)務(wù)處理單元102從數(shù)據(jù)包轉(zhuǎn)發(fā)單元101 接收到需要進(jìn)行NAT處理的原始數(shù)據(jù)報(bào)文105,查找對(duì)應(yīng)的NAT轉(zhuǎn)換條目 信息107,進(jìn)行源IP地址或者目的IP地址轉(zhuǎn)換,將轉(zhuǎn)換后數(shù)據(jù)報(bào)文106再 次送到數(shù)據(jù)包轉(zhuǎn)發(fā)單元101進(jìn)行轉(zhuǎn)發(fā)處理。當(dāng)查找不到相應(yīng)的轉(zhuǎn)換條目信息 時(shí),需要將相應(yīng)的原始數(shù)據(jù)報(bào)文105送到協(xié)議處理單元103生成轉(zhuǎn)換條目;
協(xié)議處理單元103:接收到需要處理的原始數(shù)據(jù)報(bào)文105后,根據(jù)報(bào)文 的內(nèi)容,包括源IP、目的IP、協(xié)議類型、協(xié)議狀態(tài)等信息,生成對(duì)應(yīng)該報(bào) 文的NAT轉(zhuǎn)換條目信息107,并寫入到存儲(chǔ)單元104中;
存儲(chǔ)單元104:該硬件存儲(chǔ)單元保存協(xié)議處理單元103生成的NAT轉(zhuǎn) 換條目信息107,供NAT業(yè)務(wù)處理單元102 4艮據(jù)原始數(shù)據(jù)報(bào)文105的內(nèi)容 進(jìn)行查找;,
原始數(shù)據(jù)報(bào)文105:該數(shù)據(jù)報(bào)文是指輸入到數(shù)據(jù)包轉(zhuǎn)發(fā)單元101的數(shù)據(jù)報(bào)文,可能被應(yīng)用到各種業(yè)務(wù)處理中;轉(zhuǎn)換后數(shù)據(jù)報(bào)文106:經(jīng)過NAT業(yè)務(wù)處理單元102進(jìn)行過NAT轉(zhuǎn)換(包 括源轉(zhuǎn)換和目的轉(zhuǎn)換)的數(shù)據(jù)報(bào)文,該報(bào)文的IP地址和協(xié)議端口內(nèi)容是根 據(jù)對(duì)應(yīng)的NAT轉(zhuǎn)換條目信息107從原始數(shù)據(jù)報(bào)文105轉(zhuǎn)換而來的;NAT轉(zhuǎn)換條目信息107:該轉(zhuǎn)換信息由協(xié)議處理單元103生成,并儲(chǔ)存 到存儲(chǔ)單元104中,原始數(shù)據(jù)報(bào)文105在NAT業(yè)務(wù)處理單元102中進(jìn)行NAT 轉(zhuǎn)換操作的時(shí)候,將會(huì)查找對(duì)應(yīng)的轉(zhuǎn)換信息。CPU隊(duì)列單元108:該隊(duì)列是NAT業(yè)務(wù)處理單元102和協(xié)議處理單元 103的接口 ,用于原始數(shù)據(jù)報(bào)文105的緩存。通常情況下NAT業(yè)務(wù)處理單 元102是由專用處理器、網(wǎng)絡(luò)處理器或ASIC實(shí)現(xiàn)的,而協(xié)議處理單元103 是由通用處理器實(shí)現(xiàn)的。圖2是傳統(tǒng)的NAT功能實(shí)現(xiàn)流程圖步驟301:數(shù)據(jù)包轉(zhuǎn)發(fā)單元101從外部接收到原始數(shù)據(jù)報(bào)文105,進(jìn)行 相應(yīng)的轉(zhuǎn)發(fā)處理;步驟302:判斷報(bào)文是否滿足NAT轉(zhuǎn)換條件,如果是,(即對(duì)于需要 進(jìn)行NAT處理的用戶報(bào)文),則執(zhí)行步驟303,否則,執(zhí)行步驟308;對(duì)于滿足NAT轉(zhuǎn)換條件的報(bào)文,即對(duì)于需要進(jìn)行NAT處理的用戶報(bào)文, 跳到查到轉(zhuǎn)換條目303,進(jìn)行查找轉(zhuǎn)換條目的操作,否則,不需要進(jìn)行NAT 的處理流程,直接跳轉(zhuǎn)到發(fā)送才艮文308。步驟303: NAT業(yè)務(wù)處理單元102在存儲(chǔ)單元104中查找對(duì)應(yīng)原始數(shù) 據(jù)報(bào)文105的NAT轉(zhuǎn)換條目,如果查找到相應(yīng)的條目,則執(zhí)行步驟307, 否則,執(zhí)行步驟304;步驟304:在將原始數(shù)據(jù)報(bào)文105送給協(xié)議處理單元103時(shí),如果作為 接口的CPU隊(duì)列單元108已經(jīng)滿,則執(zhí)行步驟306,否則執(zhí)行步驟305;步驟305:協(xié)議處理單元103根據(jù)接收到的原始數(shù)據(jù)報(bào)文105和用戶的 配置信息,生成對(duì)應(yīng)的NAT轉(zhuǎn)換條目信息107,并更新到存儲(chǔ)單元104,結(jié)束流程;步驟306:對(duì)當(dāng)前的報(bào)文不做任何其它操作,不再轉(zhuǎn)發(fā)和上送,直接丟棄,結(jié)束流程;步驟307: NAT業(yè)務(wù)處理單元102根據(jù)與原始數(shù)據(jù)報(bào)文105對(duì)應(yīng)的NAT 轉(zhuǎn)換條目信息107,對(duì)原始數(shù)據(jù)報(bào)文105的IP地址、協(xié)議端口進(jìn)行替換操作;步驟308:進(jìn)行報(bào)文的轉(zhuǎn)發(fā)操作,結(jié)束。在上述傳統(tǒng)的網(wǎng)絡(luò)地址轉(zhuǎn)換實(shí)現(xiàn)方式中,有一個(gè)最大的缺陷上送的報(bào) 文沒有區(qū)分優(yōu)先級(jí),在CPU隊(duì)列的緩存空間不足時(shí),將無法即使?jié)M足重要 用戶或重要報(bào)文的NAT處理。眾所周知,在路由器結(jié)構(gòu)中,數(shù)據(jù)包轉(zhuǎn)發(fā)單元101和NAT業(yè)務(wù)處理單 元102通常是在專用處理器、網(wǎng)絡(luò)處理器或ASIC中實(shí)現(xiàn)的,而協(xié)議處理單 元103通常是在通用處理器中實(shí)現(xiàn)的,這兩個(gè)部分在處理能力上存在較大差 別,前者的高速的處理能力使得在將原始數(shù)據(jù)報(bào)文105上送協(xié)議處理單元 103時(shí),經(jīng)常會(huì)出現(xiàn)CPU隊(duì)列單元108堵滿的情況,在隊(duì)列堵滿時(shí),再上 送的報(bào)文會(huì)被丟棄掉,即使后面需要上送的是高優(yōu)先級(jí)的報(bào)文也不例外。這 樣產(chǎn)生的后果是,有些高優(yōu)先級(jí)的用戶在訪問外部網(wǎng)絡(luò)時(shí)會(huì)由于低優(yōu)先級(jí)用 戶的堵塞而無法連接。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方 法及系統(tǒng),改善了報(bào)文上送的方式,在CPU隊(duì)列總深度不變的情況下,更 好的保證了高優(yōu)先級(jí)報(bào)文的上送和NAT轉(zhuǎn)換條目信息的生成。為了解決上述問題,本發(fā)明提供了一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方 法,包括數(shù)據(jù)包轉(zhuǎn)發(fā)單元、NAT業(yè)務(wù)處理單元,包括以下步驟,a、 數(shù)據(jù)包轉(zhuǎn)發(fā)單元將需要進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換NAT處理的數(shù)據(jù)報(bào)文,送 到NAT業(yè)務(wù)處理單元;b、 如果NAT業(yè)務(wù)處理單元判斷上送隊(duì)列剩余空間小于n個(gè)數(shù)據(jù)報(bào)文的 長(zhǎng)度,則只將接收的高優(yōu)先級(jí)的數(shù)據(jù)報(bào)文上送,進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,其中n 為剩余深度的閥值,取值為正整數(shù)。進(jìn)一步地,上述方法還可包括,所述步驟a中還包括,數(shù)據(jù)包轉(zhuǎn)發(fā)單元接收需要進(jìn)行轉(zhuǎn)發(fā)處理的數(shù)據(jù)報(bào)文,進(jìn)行相應(yīng)的業(yè)務(wù)處理和路由轉(zhuǎn)發(fā),對(duì)于需要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,送到NAT業(yè)務(wù)處理單元。進(jìn)一步地,上述方法還可包括,所述步驟b中還包括,NAT業(yè)務(wù)處理單元對(duì)輸入的數(shù)據(jù)報(bào)文進(jìn)行分析,對(duì)于滿足NAT處理?xiàng)l 件的數(shù)據(jù)報(bào)文,送到CPU隊(duì)列,如果CPU隊(duì)列未滿,且CPU隊(duì)列剩余空 間大于等于n個(gè)數(shù)據(jù)報(bào)文的長(zhǎng)度,則將該數(shù)據(jù)報(bào)文送到協(xié)議處理單元生成 NAT轉(zhuǎn)換條目信息,并寫入存儲(chǔ)單元。進(jìn)一步地,上述方法還可包括,所述步驟b中還包括,NAT業(yè)務(wù)處理單元對(duì)輸入的數(shù)據(jù)報(bào)文進(jìn)行分析,對(duì)于不滿足NAT處理 條件的數(shù)據(jù)報(bào)文,送回到數(shù)據(jù)包轉(zhuǎn)發(fā)單元,數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送該數(shù)據(jù)報(bào)文。進(jìn)一步地,上述方法還可包括,所述步驟b中進(jìn)一步包括,NAT業(yè)務(wù)處理單元將滿足NAT處理?xiàng)l件的數(shù)據(jù)報(bào)文送到CPU隊(duì)列, 如果CPU隊(duì)列滿,則丟棄該數(shù)據(jù)報(bào)文。進(jìn)一步地,上述方法還可包括,所述步驟b中進(jìn)一步包括,NAT業(yè)務(wù)處理單元將滿足NAT處理?xiàng)l件的數(shù)據(jù)報(bào)文送到CPU隊(duì)列, 如果CPU隊(duì)列未滿,且CPU隊(duì)列剩余空間小于n個(gè)數(shù)據(jù)報(bào)文的長(zhǎng)度,且數(shù) 據(jù)報(bào)文為高優(yōu)先級(jí)的數(shù)據(jù)報(bào)文,則將該數(shù)據(jù)報(bào)文送到協(xié)議處理單元生成 NAT轉(zhuǎn)換條目信息,并寫入存儲(chǔ)單元;否則,丟棄該數(shù)據(jù)報(bào)文。進(jìn)一步地,上述方法還可包括,所述剩余深度的閥值n由用戶定義、或 者n值按照特定長(zhǎng)度的數(shù)據(jù)報(bào)文來計(jì)算;其中剩余深度的閥值n越大,隊(duì)列 利用率越低。本發(fā)明還提供了 一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng),包括數(shù)據(jù)包轉(zhuǎn)發(fā) 單元,還包括優(yōu)先級(jí)NAT業(yè)務(wù)處理單元,用于接收數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送的需 要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,如果判斷上送隊(duì)列剩余空間小于n個(gè)數(shù)據(jù)報(bào) 文的長(zhǎng)度,則只將高優(yōu)先級(jí)的數(shù)據(jù)報(bào)文上送,進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,其中n為 剩余深度的閥值,取值為正整數(shù)。進(jìn)一步地,上述網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng)還可包括,所述優(yōu)先級(jí)NAT業(yè)務(wù)處 理單元,還用于接收數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送的需要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文, 查找對(duì)應(yīng)的NAT轉(zhuǎn)換條目信息,進(jìn)行源轉(zhuǎn)換或者目的轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù) 據(jù)^t艮文再次送到數(shù)據(jù)包轉(zhuǎn)發(fā)單元進(jìn)行轉(zhuǎn)發(fā)處理,當(dāng)查找不到相應(yīng)的轉(zhuǎn)換條目 時(shí),需要將相應(yīng)的數(shù)據(jù)報(bào)文送到協(xié)議處理單元生成NAT轉(zhuǎn)換條目信息。進(jìn)一步地,上述網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng)還可包括,所述數(shù)據(jù)包轉(zhuǎn)發(fā)單元,用 于接收輸入的原始數(shù)據(jù)報(bào)文,進(jìn)行相應(yīng)的業(yè)務(wù)處理和路由轉(zhuǎn)發(fā)功能,對(duì)于需 要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,送到優(yōu)先級(jí)NAT業(yè)務(wù)處理單元;接收優(yōu)先級(jí) NAT業(yè)務(wù)處理單元發(fā)送的轉(zhuǎn)換后的數(shù)據(jù)報(bào)文并發(fā)送。進(jìn)一步地,上述網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng)還可包括CPU隊(duì)列單元、協(xié)議處理 單元、存儲(chǔ)單元,其中,CPU隊(duì)列單元,作為優(yōu)先級(jí)NAT業(yè)務(wù)處理單元與協(xié)議處理單元的接口 , 用來進(jìn)行數(shù)據(jù)包的緩存;協(xié)議處理單元,用于接收優(yōu)先級(jí)NAT業(yè)務(wù)處理單元通過CPU隊(duì)列單元 上送的需要處理的數(shù)據(jù)報(bào)文,根據(jù)報(bào)文的內(nèi)容,包括源IP、目的IP、協(xié)議 類型、協(xié)議狀態(tài)的信息,生成對(duì)應(yīng)該數(shù)據(jù)報(bào)文的NAT轉(zhuǎn)換條目信息,并寫 入存儲(chǔ)單元;存儲(chǔ)單元,用于保存協(xié)議處理單元生成的NAT轉(zhuǎn)換條目信息,為優(yōu)先 級(jí)NAT業(yè)務(wù)處理單元保存生成的NAT轉(zhuǎn)換條目信息。與現(xiàn)有技術(shù)相比,應(yīng)用本發(fā)明,改善了報(bào)文上送的方式,在CPU隊(duì)列 總深度不變的情況下,更好的保證了高優(yōu)先級(jí)報(bào)文的上送和NAT轉(zhuǎn)換條目 信息的生成。
圖1是傳統(tǒng)的NAT功能實(shí)現(xiàn)框圖;圖2是傳統(tǒng)的NAT功能實(shí)現(xiàn)流程圖;圖3是本發(fā)明的基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方法的流程圖;圖4是本發(fā)明的基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng)的結(jié)構(gòu)圖;圖5是本發(fā)明改進(jìn)的NAT處理方式的實(shí)現(xiàn)效果圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步說明。本發(fā)明對(duì)NAT業(yè)務(wù)處理單元上送報(bào)文的流程進(jìn)行了修改,在上送隊(duì)列 的剩余空間不是很大的時(shí)候,可以優(yōu)先將高優(yōu)先級(jí)用戶的報(bào)文上送,而丟棄 低優(yōu)先級(jí)用戶的上送報(bào)文,從而保證系統(tǒng)對(duì)高優(yōu)先級(jí)用戶的支持,而且對(duì)總 體流程的影響很小。本發(fā)明的基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方法,主要構(gòu)思是如果上送隊(duì)列 剩余空間大于等于n個(gè)報(bào)文的長(zhǎng)度(n為正整數(shù)),則報(bào)文正常上送;如果 上送隊(duì)列剩余空間小于n個(gè)報(bào)文的長(zhǎng)度(n為正整數(shù)),則判斷報(bào)文優(yōu)先級(jí) 的高低,如果是高優(yōu)先級(jí)的報(bào)文,則可以直接進(jìn)入隊(duì)列,直到隊(duì)列滿,否則 報(bào)文(即低優(yōu)先級(jí)的報(bào)文)不再進(jìn)行上送的操作,也就是不再進(jìn)入隊(duì)列。本發(fā)明的基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方法,如圖3所示,包括以下步驟,步驟410:數(shù)據(jù)包轉(zhuǎn)發(fā)單元接收需要進(jìn)行轉(zhuǎn)發(fā)處理的數(shù)據(jù)報(bào)文,進(jìn)行相 應(yīng)的業(yè)務(wù)處理和路由轉(zhuǎn)發(fā),對(duì)于需要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,送到優(yōu)先 級(jí)NAT業(yè)務(wù)處理單元;步驟420:優(yōu)先級(jí)NAT業(yè)務(wù)處理單元對(duì)輸入報(bào)文進(jìn)行分析,對(duì)于滿足 NAT處理?xiàng)l件的報(bào)文,執(zhí)行步驟440,否則執(zhí)行步驟430;步驟430:優(yōu)先級(jí)NAT業(yè)務(wù)處理單元將不滿足NAT處理?xiàng)l件的^^文送 回到數(shù)據(jù)包轉(zhuǎn)發(fā)單元,數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送該報(bào)文,結(jié)束流程;步驟440:優(yōu)先級(jí)NAT業(yè)務(wù)處理單元將滿足NAT處理?xiàng)l件的報(bào)文送到 CPU隊(duì)列,如果CPU隊(duì)列滿,則丟棄該報(bào)文,結(jié)束流程,否則執(zhí)行步驟450;步驟450:優(yōu)先級(jí)NAT業(yè)務(wù)處理單元判斷CPU隊(duì)列剩余空間是否大于 等于n個(gè)報(bào)文的長(zhǎng)度,如果是,則執(zhí)行步驟470,否則執(zhí)行步驟460;CPU隊(duì)列剩余空間大于n個(gè)報(bào)文的長(zhǎng)度的定義,該n值可以由用戶定義。 其中剩余深度的閥值(即n值)越大,隊(duì)列利用率越低,但是能夠更好 的保證高優(yōu)先級(jí)報(bào)文的上送,反之亦然。n個(gè)報(bào)文的長(zhǎng)度可以按照特定長(zhǎng)度的報(bào)文來計(jì)算。步驟460:如果優(yōu)先級(jí)NAT業(yè)務(wù)處理單元判斷報(bào)文為高優(yōu)先級(jí)報(bào)文, 則執(zhí)行步驟470,否則丟棄該報(bào)文,結(jié)束流程;步驟470:將所述報(bào)文送到協(xié)議處理單元生成NAT轉(zhuǎn)換條目信息,寫 入存儲(chǔ)單元,結(jié)束。如圖4所示,基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng),包括,數(shù)據(jù)包轉(zhuǎn)發(fā)單元、 優(yōu)先級(jí)NAT業(yè)務(wù)處理單元、協(xié)議處理單元、存儲(chǔ)單元、CPU隊(duì)列單元,其 中,數(shù)據(jù)包轉(zhuǎn)發(fā)單元用于接收輸入的原始數(shù)據(jù)報(bào)文,進(jìn)行相應(yīng)的業(yè)務(wù)處理 和路由轉(zhuǎn)發(fā)等功能,對(duì)于需要進(jìn)行NAT處理的原始數(shù)據(jù)報(bào)文,送到優(yōu)先級(jí) NAT業(yè)務(wù)處理單元;接收優(yōu)先級(jí)NAT業(yè)務(wù)處理單元發(fā)送的轉(zhuǎn)換后的數(shù)據(jù)報(bào) 文并發(fā)送。優(yōu)先級(jí)NAT業(yè)務(wù)處理單元(優(yōu)先級(jí)NAT業(yè)務(wù)處理單元在傳統(tǒng)的NAT 業(yè)務(wù)處理單元基礎(chǔ)上衍生得到)用于接收數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送的需要進(jìn)行 NAT處理的數(shù)據(jù)報(bào)文,查找對(duì)應(yīng)的NAT轉(zhuǎn)換條目信息,進(jìn)行源轉(zhuǎn)換或者目 的轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)據(jù)報(bào)文再次送到數(shù)據(jù)包轉(zhuǎn)發(fā)單元進(jìn)行轉(zhuǎn)發(fā)處理,當(dāng)查 找不到相應(yīng)的轉(zhuǎn)換條目時(shí),需要將相應(yīng)的原始數(shù)據(jù)報(bào)文通過CPU隊(duì)列單元 送到協(xié)議處理單元生成NAT轉(zhuǎn)換條目信息;在上送協(xié)議處理單元的過程中, 在上送隊(duì)列剩余空間很小的情況下(例如小于n個(gè)報(bào)文的長(zhǎng)度),如果上送 的依然是低優(yōu)先級(jí)用戶的報(bào)文(后面稱為低優(yōu)先級(jí)報(bào)文),將不再進(jìn)行上送 的操作,也就是不再進(jìn)入隊(duì)列,當(dāng)高優(yōu)先級(jí)用戶的報(bào)文(后面稱為高優(yōu)先級(jí) 報(bào)文)需要上送的時(shí)候,則可以直接進(jìn)入隊(duì)列,直到隊(duì)列滿;協(xié)議處理單元用于接收優(yōu)先級(jí)NAT業(yè)務(wù)處理單元通過CPU隊(duì)列單元 上送的需要處理的原始數(shù)據(jù)報(bào)文,根據(jù)報(bào)文的內(nèi)容,包括源IP、目的IP、 協(xié)議類型、協(xié)議狀態(tài)等信息,生成對(duì)應(yīng)該報(bào)文的NAT轉(zhuǎn)換條目信息,并寫 入存儲(chǔ)單元;存儲(chǔ)單元用于保存協(xié)議處理單元生成的NAT轉(zhuǎn)換條目信息,為優(yōu)先 級(jí)NAT業(yè)務(wù)處理單元保存生成的NAT轉(zhuǎn)換條目信息;CPU隊(duì)列單元作為優(yōu)先級(jí)NAT業(yè)務(wù)處理單元與協(xié)議處理單元的接口 , 用來進(jìn)行數(shù)據(jù)包的緩存。本發(fā)明主要改進(jìn)了 NAT業(yè)務(wù)處理單元上送CPU的隊(duì)列實(shí)現(xiàn)方式,其中,優(yōu)先級(jí)NAT業(yè)務(wù)處理單元從數(shù)據(jù)包轉(zhuǎn)發(fā)單元接收到需要進(jìn)行NAT處理 的原始數(shù)據(jù)報(bào)文,查找對(duì)應(yīng)的NAT轉(zhuǎn)換條目,進(jìn)行源轉(zhuǎn)換或者目的轉(zhuǎn)換, 將轉(zhuǎn)換后數(shù)據(jù)報(bào)文再次送到數(shù)據(jù)包轉(zhuǎn)發(fā)單元進(jìn)行轉(zhuǎn)發(fā)處理,當(dāng)查找不到相應(yīng) 的轉(zhuǎn)換條目時(shí),需要將相應(yīng)的原始數(shù)據(jù)報(bào)文通過CPU隊(duì)列單元送到協(xié)議處 理單元生成轉(zhuǎn)換條目,這是與NAT業(yè)務(wù)處理單元一樣的,區(qū)別在于NAT 業(yè)務(wù)處理單元在將報(bào)文上送到CPU隊(duì)列單元的時(shí)候,并沒有進(jìn)行特殊的處 ' 理,包括區(qū)分優(yōu)先級(jí)的處理,而優(yōu)先級(jí)NAT業(yè)務(wù)處理單元對(duì)報(bào)文進(jìn)行了區(qū) 分優(yōu)先級(jí)的處理,將原始數(shù)據(jù)報(bào)文分為高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)報(bào)文,在進(jìn) 入到CPU隊(duì)列單元時(shí),對(duì)于低優(yōu)先級(jí)報(bào)文,要先判斷CPU隊(duì)列單元剩余空 間是否可以容納n個(gè)報(bào)文,即CPU隊(duì)列單元剩余空間是否大于某一個(gè)臨界 值,如果剩余空間足夠大,低優(yōu)先級(jí)報(bào)文可以進(jìn)入隊(duì)列,否則,直接丟棄, 對(duì)于高優(yōu)先級(jí)報(bào)文,不需要判斷CPU隊(duì)列單元的剩余空間是否可以容納n 個(gè)報(bào)文,只要可以容納當(dāng)前的報(bào)文,就將高優(yōu)先級(jí)報(bào)文送入隊(duì)列,否則丟棄。優(yōu)先級(jí)NAT業(yè)務(wù)處理單元和NAT業(yè)務(wù)處理單元相比,優(yōu)先級(jí)NAT業(yè) 務(wù)處理單元增加了對(duì)上送報(bào)文優(yōu)先級(jí)的判斷,保證了高優(yōu)先級(jí)用戶的NAT 轉(zhuǎn)換條目可以及時(shí)生成,而不受低優(yōu)先級(jí)用戶的影響。i 圖5描述了本發(fā)明改進(jìn)的NAT處理方式的實(shí)現(xiàn)效果當(dāng)有大量的高優(yōu)先級(jí)報(bào)文202和低優(yōu)先級(jí)報(bào)文203上送到CPU隊(duì)列單 元108時(shí),有可能會(huì)發(fā)生擁塞,當(dāng)CPU隊(duì)列單元108的剩余空間不足以容 納n個(gè)報(bào)文時(shí),本發(fā)明的實(shí)現(xiàn)方式是只允許高優(yōu)先級(jí)報(bào)文202進(jìn)入到隊(duì)列, 并上送到協(xié)議處理單元103,因此,只有高優(yōu)先級(jí)報(bào)文202可以生成對(duì)應(yīng)的 : 轉(zhuǎn)換條目501,而低優(yōu)先級(jí)報(bào)文203不能送到協(xié)議處理單元103,因此不能 生成對(duì)應(yīng)的條目。這種實(shí)現(xiàn)方式在一定程度上保證了高優(yōu)先級(jí)用戶的優(yōu)先 性。元的報(bào)文區(qū)分了優(yōu)先級(jí),實(shí)現(xiàn)了一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方法,改善了報(bào)文上送的方式,在CPU隊(duì)列總深度不變的情況下,更好的保證了高優(yōu)先級(jí)報(bào)文的上送和條目的生成。該方法可以應(yīng)用于基于網(wǎng)絡(luò)處理器或者ASIC的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)裝置和NAT設(shè)備中。本發(fā)明的結(jié)構(gòu)(方法)在作以下的變更后,還可以提供相近的功效對(duì)于優(yōu)先級(jí)NAT業(yè)務(wù)處理單元201中CPU剩余隊(duì)列深度閥值的設(shè)置, 可以根據(jù)一定的算法進(jìn)行調(diào)整,進(jìn)而達(dá)到不同的效果。當(dāng)需要提高優(yōu)先級(jí)用 戶的優(yōu)先級(jí)時(shí),可以適當(dāng)提高剩余隊(duì)列深度的閥值,否則,當(dāng)需要降低高優(yōu) 先級(jí)用戶的優(yōu)先級(jí)時(shí),可以適當(dāng)減小剩余隊(duì)列深度的閥值。本發(fā)明可以應(yīng)用于基于"網(wǎng)絡(luò)處理器+ CPU"的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)架構(gòu)中, 也可以應(yīng)用于"ASIC (特定用途集成電路)+CPU"的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)架構(gòu) 中,同樣可以應(yīng)用于其它基于"硬件數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)+ CPU"的數(shù)據(jù)產(chǎn)品中。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不 局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可輕易想到 的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范 圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方法,包括數(shù)據(jù)包轉(zhuǎn)發(fā)單元、NAT業(yè)務(wù)處理單元,其特征在于,包括以下步驟,a、數(shù)據(jù)包轉(zhuǎn)發(fā)單元將需要進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換NAT處理的數(shù)據(jù)報(bào)文,送到NAT業(yè)務(wù)處理單元;b、如果NAT業(yè)務(wù)處理單元判斷上送隊(duì)列剩余空間小于n個(gè)數(shù)據(jù)報(bào)文的長(zhǎng)度,則只將接收的高優(yōu)先級(jí)的數(shù)據(jù)報(bào)文上送,進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,其中n為剩余深度的閥值,取值為正整數(shù)。
2、 如權(quán)利要求l所述的方法,其特征在于, 所述步驟a中還包括,數(shù)據(jù)包轉(zhuǎn)發(fā)單元接收需要進(jìn)行轉(zhuǎn)發(fā)處理的數(shù)據(jù)報(bào)文,進(jìn)行相應(yīng)的業(yè)務(wù)處 理和路由轉(zhuǎn)發(fā),對(duì)于需要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,送到NAT業(yè)務(wù)處理單元。
3、 權(quán)利要求1或2所述的方法,其特征在于, 所述步驟b中還包括,NAT業(yè)務(wù)處理單元對(duì)輸入的數(shù)據(jù)報(bào)文進(jìn)行分析,對(duì)于滿足NAT處理?xiàng)l 件的數(shù)據(jù)報(bào)文,送到CPU隊(duì)列,如果CPU隊(duì)列未滿,且CPU隊(duì)列剩余空 間大于等于n個(gè)數(shù)據(jù)^JL的長(zhǎng)度,則將該數(shù)據(jù)報(bào)文送到協(xié)議處理單元生成 NAT轉(zhuǎn)換條目信息,并寫入存儲(chǔ)單元。
4、 權(quán)利要求3所述的方法,其特征在于, 所述步驟b中還包括,NAT業(yè)務(wù)處理單元對(duì)輸入的數(shù)據(jù)報(bào)文進(jìn)行分析,對(duì)于不滿足NAT處理 條件的數(shù)據(jù)報(bào)文,送回到數(shù)據(jù)包轉(zhuǎn)發(fā)單元,數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送該數(shù)據(jù)報(bào)文。
5、 權(quán)利要求3所述的方法,其特征在于, 所述步驟b中進(jìn)一步包括,NAT業(yè)務(wù)處理單元將滿足NAT處理?xiàng)l件的數(shù)據(jù)"^艮文送到CPU隊(duì)列, 如果CPU隊(duì)列滿,則丟棄該數(shù)據(jù)"l艮文。
6、 權(quán)利要求3所述的方法,其特征在于, 所述步驟b中進(jìn)一步包括,NAT業(yè)務(wù)處理單元將滿足NAT處理?xiàng)l件的數(shù)據(jù)報(bào)文送到CPU隊(duì)列, 如果CPU隊(duì)列未滿,且CPU隊(duì)列剩余空間小于n個(gè)數(shù)據(jù)報(bào)文的長(zhǎng)度,且數(shù) 據(jù)報(bào)文為高優(yōu)先級(jí)的數(shù)據(jù)報(bào)文,則將該數(shù)據(jù)報(bào)文送到協(xié)議處理單元生成 NAT轉(zhuǎn)換條目信息,并寫入存儲(chǔ)單元;否則,丟棄該數(shù)據(jù)報(bào)文。
7、 權(quán)利要求l、 2或6所述的方法,其特征在于, 所述剩余深度的閥值n由用戶定義、或者n值按照特定長(zhǎng)度的數(shù)據(jù)報(bào)文來計(jì)算;其中剩余深度的閥值n越大,隊(duì)列利用率越低。
8、 一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng),包括數(shù)據(jù)包轉(zhuǎn)發(fā)單元,其 特征在于,還包括優(yōu)先級(jí)NAT業(yè)務(wù)處理單元,用于接收數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送的需 要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,如果判斷上送隊(duì)列剩余空間小于n個(gè)數(shù)據(jù)報(bào) 文的長(zhǎng)度,則只將高優(yōu)先級(jí)的數(shù)據(jù)報(bào)文上送,進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,其中n為 剩余深度的閥值,取值為正整數(shù)。
9、 如權(quán)利要求8所述的網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng),其特征在于,所述優(yōu)先級(jí)NAT業(yè)務(wù)處理單元,還用于接收數(shù)據(jù)包轉(zhuǎn)發(fā)單元發(fā)送的需 要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,查找對(duì)應(yīng)的NAT轉(zhuǎn)換條目信息,進(jìn)行源轉(zhuǎn)換 或者目的轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)據(jù)報(bào)文再次送到數(shù)據(jù)包轉(zhuǎn)發(fā)單元進(jìn)行轉(zhuǎn)發(fā)處 理,當(dāng)查找不到相應(yīng)的轉(zhuǎn)換條目時(shí),需要將相應(yīng)的數(shù)據(jù)報(bào)文送到協(xié)議處理單 元生成NAT轉(zhuǎn)換條目信息。
10、 如權(quán)利要求8或9所述的網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng),其特征在于,所述數(shù)據(jù)包轉(zhuǎn)發(fā)單元,用于接收輸入的原始數(shù)據(jù)報(bào)文,進(jìn)行相應(yīng)的業(yè)務(wù) 處理和路由轉(zhuǎn)發(fā)功能,對(duì)于需要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,送到優(yōu)先級(jí)NAT業(yè)務(wù)處理單元;接收優(yōu)先級(jí)NAT業(yè)務(wù)處理單元發(fā)送的轉(zhuǎn)換后的數(shù)據(jù)"R文并 發(fā)送。
11、 如權(quán)利要求9所述的網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng),其特征在于,還包括CPU隊(duì)列單元、協(xié)議處理單元、存儲(chǔ)單元,其中,CPU隊(duì)列單元,作為優(yōu)先級(jí)NAT業(yè)務(wù)處理單元與協(xié)議處理單元的接口 , 用來進(jìn)行數(shù)據(jù)包的緩存;協(xié)議處理單元,用于接收優(yōu)先級(jí)NAT業(yè)務(wù)處理單元通過CPU隊(duì)列單元 上送的需要處理的數(shù)據(jù)報(bào)文,根據(jù)報(bào)文的內(nèi)容,包括源IP、目的IP、協(xié)議 類型、協(xié)議狀態(tài)的信息,生成對(duì)應(yīng)該數(shù)據(jù)報(bào)文的NAT轉(zhuǎn)換條目信息,并寫 入存儲(chǔ)單元;存儲(chǔ)單元,用于保存協(xié)議處理單元生成的NAT轉(zhuǎn)換條目信息,為優(yōu)先 級(jí)NAT業(yè)務(wù)處理單元保存生成的NAT轉(zhuǎn)換條目信息。
全文摘要
本發(fā)明公開了一種基于優(yōu)先級(jí)的網(wǎng)絡(luò)地址轉(zhuǎn)換方法及系統(tǒng),包括,數(shù)據(jù)包轉(zhuǎn)發(fā)單元將需要進(jìn)行NAT處理的數(shù)據(jù)報(bào)文,送到NAT業(yè)務(wù)處理單元;如果NAT業(yè)務(wù)處理單元判斷上送隊(duì)列剩余空間小于n個(gè)數(shù)據(jù)報(bào)文的長(zhǎng)度,則只將接收的高優(yōu)先級(jí)的數(shù)據(jù)報(bào)文上送,進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,其中n為剩余深度的閥值,取值為正整數(shù)。應(yīng)用本發(fā)明,改善了報(bào)文上送的方式,在CPU隊(duì)列總深度不變的情況下,更好的保證了高優(yōu)先級(jí)報(bào)文的上送和NAT轉(zhuǎn)換條目信息的生成。
文檔編號(hào)H04L29/06GK101242361SQ20081000659
公開日2008年8月13日 申請(qǐng)日期2008年3月13日 優(yōu)先權(quán)日2008年3月13日
發(fā)明者焱 楊 申請(qǐng)人:中興通訊股份有限公司