NAT處理,充分發(fā)揮處理器和邏輯處理各自的長(zhǎng)處,合理分配各自的實(shí)現(xiàn)功能,并采用了學(xué)習(xí)/處理模塊來(lái)彌補(bǔ)處理器模塊處理能力的不足,采用先進(jìn)的數(shù)據(jù)結(jié)構(gòu)(NAT處理表)和合理的NAT處理流程,最大限度的提升通用性和處理性能;而且還具有NAT處理靈活、處理速度快、成本低、功耗低的優(yōu)點(diǎn),具有良好的經(jīng)濟(jì)和社會(huì)效益。
[0067]本發(fā)明可廣泛應(yīng)用于各種NAT處理系統(tǒng)。
[0068]以上是對(duì)本發(fā)明的較佳實(shí)施進(jìn)行了具體說(shuō)明,但本發(fā)明創(chuàng)造并不限于所述實(shí)施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請(qǐng)權(quán)利要求所限定的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,其包括步驟: SI,對(duì)數(shù)據(jù)包進(jìn)行信息提?。? S2,將數(shù)據(jù)包存入緩沖區(qū),同時(shí)將提取的信息提交給學(xué)習(xí)/處理模塊; S3,學(xué)習(xí)/處理模塊判斷自己能否處理此信息,如果能處理,則進(jìn)入步驟S4,否則將接收到的信息提交給處理器并進(jìn)入步驟S5 ; S4,學(xué)習(xí)/處理模塊根據(jù)以前學(xué)習(xí)的內(nèi)容進(jìn)行處理,然后將處理結(jié)果提交給NAT處理模塊; S5,處理器對(duì)接收到信息進(jìn)行處理,并將處理結(jié)果返回給學(xué)習(xí)/處理模塊; S6,學(xué)習(xí)/處理模塊學(xué)習(xí)處理器的結(jié)果,并將處理結(jié)果提交給NAT處理模塊; S7,NAT處理模塊、NAT逆處理模塊根據(jù)接收的處理結(jié)果對(duì)緩沖區(qū)中的數(shù)據(jù)包進(jìn)行處理。2.根據(jù)權(quán)利要求1所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,步驟SI所述信息包括源MAC地址、以太網(wǎng)協(xié)議類(lèi)型、IP協(xié)議類(lèi)型、以太網(wǎng)源IP、以太網(wǎng)目的IP、ICMP標(biāo)識(shí)符、ICMP序列號(hào)、源端口號(hào)、目的端口、IP包的16位標(biāo)識(shí)、IP包的3位標(biāo)志及13位片偏移、IP首部檢驗(yàn)和、ICMP/TCP/UDP的檢驗(yàn)和。3.根據(jù)權(quán)利要求1所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,步驟S2中所述提交給學(xué)習(xí)/處理模塊的信息包括源IP、目的IP、源端口號(hào)(TCP、UDP)、目的端口(TCP、UDP)、IP包的16位標(biāo)識(shí)、IP包的3位標(biāo)志及13位片偏移及協(xié)議類(lèi)型。4.根據(jù)權(quán)利要求2或3所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,所述步驟S3具體包括子步驟: S31,首先通過(guò)數(shù)據(jù)包的3位標(biāo)志及13位片偏移判斷該數(shù)據(jù)包是否為IP分片包,如果是分片包,則不能處理此信息,否則進(jìn)入步驟S32 ; S32,用信息中的源IP、源端口、目的IP、目的端口、協(xié)議類(lèi)型進(jìn)行CAM查詢(xún),如果存在有效項(xiàng),則表示學(xué)習(xí)/處理模塊能處理此信息并進(jìn)入步驟S4,否則表示不能處理此信息并進(jìn)入步驟S33 ; S33,將接收到的信息提交給處理器并進(jìn)入步驟S5。5.根據(jù)權(quán)利要求1所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,所述步驟S4具體為??從CAM的輸出中獲取匹配單元的地址,從存儲(chǔ)模塊中讀出該地址單元的內(nèi)容,作為處理結(jié)果返回給NAT處理模塊,同時(shí)將對(duì)應(yīng)的老化計(jì)數(shù)器清零。6.根據(jù)權(quán)利要求1所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,步驟S5中所述的信息為私網(wǎng)數(shù)據(jù)或公網(wǎng)數(shù)據(jù),所述步驟S5具體包括子步驟: S51,對(duì)私網(wǎng)數(shù)據(jù)進(jìn)行處理,并將處理結(jié)果返回給學(xué)習(xí)/處理模塊; 或者 S52,對(duì)公網(wǎng)數(shù)據(jù)進(jìn)行處理,并將處理結(jié)果返回給學(xué)習(xí)/處理模塊。7.根據(jù)權(quán)利要求6所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,所述步驟S51具體包括子步驟: S511,用源端口號(hào)作為私網(wǎng)端口查找表的索引,從存儲(chǔ)器中取出該序號(hào)的對(duì)應(yīng)表項(xiàng),判斷表項(xiàng)的有效標(biāo)識(shí)位是否有效,如果有效則進(jìn)入步驟S512,否則轉(zhuǎn)至步驟S519 ; S512,判斷指針標(biāo)識(shí)位是否有效,如果有效則轉(zhuǎn)至步驟S517,否則轉(zhuǎn)至步驟S513 ; S513,判斷協(xié)議字段、源IP字段是否匹配,如果匹配則轉(zhuǎn)至步驟S514,否則轉(zhuǎn)至步驟S519 ; S514,用替換端口的內(nèi)容對(duì)源端口進(jìn)行替換,并判斷外網(wǎng)網(wǎng)關(guān)有效標(biāo)識(shí)位是否有效,如果有效則轉(zhuǎn)至步驟S516,否則轉(zhuǎn)至步驟S515 ; S515,數(shù)據(jù)包可直接送達(dá)或采用默認(rèn)網(wǎng)關(guān),轉(zhuǎn)至步驟S518 ; S516,數(shù)據(jù)包需經(jīng)過(guò)該外網(wǎng)網(wǎng)關(guān)轉(zhuǎn)發(fā),轉(zhuǎn)至步驟S518 ; S517,通過(guò)IP指針找到IP查找表,歷遍有效標(biāo)識(shí)位有效的表項(xiàng),如果存在協(xié)議字段、源IP字段匹配項(xiàng),則轉(zhuǎn)至步驟S514,否則轉(zhuǎn)至步驟S519 ; S518,查表成功,轉(zhuǎn)至步驟S5111 ; S519,若動(dòng)態(tài)模式位置位,則隨機(jī)分配一個(gè)未使用的公網(wǎng)IP、端口,并將相應(yīng)信息添加到NAT配置表中,轉(zhuǎn)至步驟S5111 ; S5110,查表失敗,數(shù)據(jù)包丟棄,轉(zhuǎn)至步驟S5111 ; S5111,將處理結(jié)果返回給學(xué)習(xí)/處理模塊,轉(zhuǎn)至步驟S511,開(kāi)始下一次查表; 所述步驟S52具體包括子步驟: S521,用目的端口號(hào)作為公網(wǎng)端口查找表的索引,從存儲(chǔ)器中取出該序號(hào)的對(duì)應(yīng)表項(xiàng),判斷表項(xiàng)的有效標(biāo)識(shí)位是否有效,如果無(wú)效則轉(zhuǎn)至步驟S5210,如果有效則轉(zhuǎn)至步驟S522 ; S522,判斷指針標(biāo)識(shí)位是否有效,如果無(wú)效則轉(zhuǎn)至步驟S523,如果有效則轉(zhuǎn)至步驟S525 ; S523,判斷協(xié)議字段、外網(wǎng)IP字段是否匹配,如果匹配則轉(zhuǎn)至驟S524,否則轉(zhuǎn)至步驟S5210 ; S524,用替換端口的內(nèi)容、內(nèi)網(wǎng)IP的內(nèi)容對(duì)目的端口、目的IP進(jìn)行替換,轉(zhuǎn)至步驟S529 ; S525,通過(guò)IP指針找到IP查找表,歷遍有效標(biāo)識(shí)位有效的表項(xiàng),如果存在協(xié)議字段、外網(wǎng)IP字段匹配,且當(dāng)遠(yuǎn)程IP有效標(biāo)識(shí)有效時(shí),遠(yuǎn)程IP、遠(yuǎn)程端口也匹配的匹配項(xiàng)時(shí)則轉(zhuǎn)至步驟S526,如果沒(méi)有則轉(zhuǎn)至步驟S5210 ; S526,判斷內(nèi)網(wǎng)IP有效標(biāo)識(shí)是否有效,如果有效則轉(zhuǎn)至步驟S527,否則轉(zhuǎn)至步驟5528; S527,用IP查找表中的替換端口、內(nèi)網(wǎng)IP對(duì)目的端口、目的IP進(jìn)行替換,轉(zhuǎn)至步驟5529; S528,用IP查找表中的替換端口、端口查找表中的內(nèi)網(wǎng)IP對(duì)目的端口、目的IP進(jìn)行替換,轉(zhuǎn)至步驟S529 ; S529,查表成功,轉(zhuǎn)至步驟S5211 ; S5210,查表失敗,轉(zhuǎn)至步驟S5211 ; S5211,將處理結(jié)果返回給學(xué)習(xí)/處理模塊,轉(zhuǎn)至步驟S521,開(kāi)始下一次查表。8.根據(jù)權(quán)利要求6所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,所述步驟S5還包括子步驟: S50,對(duì)接收到的信息進(jìn)行IP分片包處理; 所述步驟S50具體包括子步驟: S501,判斷是否為IP分片包,如果是分片包則轉(zhuǎn)至步驟S502 ; S502,判斷是否為IP分片包的首包,如果是則轉(zhuǎn)至步驟S503,否則轉(zhuǎn)至步驟S504 ;S503,將首包按非分片包的處理方式進(jìn)行處理,并將緩存中該分片包的其它分片也按該方式處理,轉(zhuǎn)至步驟S505 ; S504,將分片包信息緩存,轉(zhuǎn)至步驟S505 ; S505,轉(zhuǎn)至步驟S501步,開(kāi)始下一次處理。9.根據(jù)權(quán)利要求1所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其特征在于,所述步驟S7具體包括子步驟: S71,根據(jù)學(xué)習(xí)/處理模塊輸出的結(jié)果,結(jié)合提取模塊的輸出、數(shù)據(jù)緩沖模塊中的數(shù)據(jù)包內(nèi)容,實(shí)現(xiàn)私網(wǎng)到公網(wǎng)TCP、UDP數(shù)據(jù)包的源IP、源端口替換,即完成NAT處理; S72,根據(jù)學(xué)習(xí)/處理模塊輸出的結(jié)果,結(jié)合提取模塊的輸出、數(shù)據(jù)緩沖模塊中的數(shù)據(jù)包內(nèi)容,實(shí)現(xiàn)公網(wǎng)到私網(wǎng)TCP、UDP數(shù)據(jù)包的目的IP、目的端口替換,即完成NAT逆處理;S73,重新計(jì)算IP首部校驗(yàn)和、TCP校驗(yàn)和、UDP校驗(yàn)和。10.一種基于SOPC的NAT的實(shí)現(xiàn)裝置,其特征在于,其用于實(shí)施如權(quán)利要求1至9任一項(xiàng)所述的基于SOPC的NAT的實(shí)現(xiàn)方法,其包括: 處理器模塊,用于對(duì)學(xué)習(xí)/處理模塊輸出的數(shù)據(jù)包信息進(jìn)行查表處理,并將處理結(jié)果返回給學(xué)習(xí)/處理模塊; 學(xué)習(xí)/處理模塊,其分別與提取模塊和處理器模塊相連,主要有兩個(gè)作用:一是接收提取模塊的輸出,檢查學(xué)習(xí)內(nèi)容中是否有符合項(xiàng),如果有符合項(xiàng)則將存儲(chǔ)的對(duì)應(yīng)結(jié)果輸出給NAT處理模塊,如果沒(méi)有符合項(xiàng)則將接收的數(shù)據(jù)直接提交給處理器模塊,并記錄該數(shù)據(jù),以便在學(xué)習(xí)過(guò)程中與處理結(jié)果建立一一對(duì)應(yīng)關(guān)系;二是學(xué)習(xí)處理器輸出的數(shù)據(jù)包處理結(jié)果,即將數(shù)據(jù)包信息輸入與數(shù)據(jù)包處理結(jié)果間建立一一對(duì)應(yīng)的關(guān)系,以便對(duì)后續(xù)數(shù)據(jù)包中有相同輸入條件的數(shù)據(jù)包直接進(jìn)行處理,以減輕處理器模塊的負(fù)荷,提高數(shù)據(jù)包的處理能力,然后將結(jié)果輸出給NAT處理模塊; 提取模塊,其與以太網(wǎng)接口模塊相連,用于提取數(shù)據(jù)包信息; 以太網(wǎng)接口,包括用于連接私網(wǎng)的私網(wǎng)以太網(wǎng)接口和用于連接公網(wǎng)的以太網(wǎng)接口 ; 數(shù)據(jù)緩沖模塊,其連接于提取模塊和NAT處理模塊或NAT逆處理模塊之間,用于緩存數(shù)據(jù)包; NAT處理模塊,其分別與提取模塊、數(shù)據(jù)緩沖模塊、學(xué)習(xí)/處理模塊和以太網(wǎng)接口連接,其用于接收學(xué)習(xí)/處理模塊的輸出,并結(jié)合提取模塊的輸出、數(shù)據(jù)緩沖模塊中的數(shù)據(jù)包內(nèi)容,實(shí)現(xiàn)私網(wǎng)到公網(wǎng)的NAT處理; NAT逆處理模塊,其分別與提取模塊、數(shù)據(jù)緩沖模塊、學(xué)習(xí)/處理模塊和以太網(wǎng)接口連接,其用于接收學(xué)習(xí)/處理模塊的輸出,并結(jié)合提取模塊的輸出、數(shù)據(jù)緩沖模塊中的數(shù)據(jù)包內(nèi)容,實(shí)現(xiàn)公網(wǎng)到私網(wǎng)的NAT逆處理。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了基于SOPC的NAT的實(shí)現(xiàn)方法及裝置。步驟包括學(xué)習(xí)/處理模塊判斷自己能否處理此信息,如果能處理,學(xué)習(xí)/處理模塊根據(jù)以前學(xué)習(xí)的內(nèi)容進(jìn)行處理,然后將處理結(jié)果提交給NAT處理模塊否則將接收到的信息提交給處理器處理。裝置包括處理器模塊、學(xué)習(xí)/處理模塊、以太網(wǎng)接口模塊、提取模塊、數(shù)據(jù)緩沖模塊、NAT處理模塊、NAT逆處理模塊。本發(fā)明通過(guò)基于SOPC實(shí)現(xiàn)了NAT處理,充分發(fā)揮處理器和邏輯處理各自的長(zhǎng)處,合理分配各自的實(shí)現(xiàn)功能,并采用了學(xué)習(xí)/處理模塊來(lái)彌補(bǔ)處理器模塊處理能力的不足;而且還具有NAT處理靈活、處理速度快、成本低、功耗低的優(yōu)點(diǎn),具有良好的經(jīng)濟(jì)和社會(huì)效益。本發(fā)明可廣泛應(yīng)用于各種NAT處理系統(tǒng)。
【IPC分類(lèi)】H04L29/12
【公開(kāi)號(hào)】CN105162901
【申請(qǐng)?zhí)枴緾N201510641720
【發(fā)明人】劉兆先
【申請(qǐng)人】北京特立信電子技術(shù)股份有限公司, 邦彥技術(shù)股份有限公司
【公開(kāi)日】2015年12月16日
【申請(qǐng)日】2015年9月30日