亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置制造方法

文檔序號:7777436閱讀:367來源:國知局
一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置制造方法【專利摘要】本發(fā)明提供的一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置,通過確定多個數(shù)據(jù)包在各自轉(zhuǎn)發(fā)過程中的相同環(huán)節(jié),進(jìn)而根據(jù)所述相同環(huán)節(jié)對應(yīng)提取所述各數(shù)據(jù)包中的相同特征信息,并且,根據(jù)所述相同特征信息對所述各預(yù)定種類的數(shù)據(jù)包進(jìn)行快轉(zhuǎn)分類,再將快轉(zhuǎn)分類后的數(shù)據(jù)包類別關(guān)聯(lián)上對應(yīng)的轉(zhuǎn)發(fā)操作集,而當(dāng)后續(xù)要轉(zhuǎn)發(fā)的數(shù)據(jù)包屬于所述數(shù)據(jù)包類別時,即可根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包并轉(zhuǎn)發(fā),從而節(jié)省查路由表、查NAT表等等的操作時間,加速了數(shù)據(jù)包的轉(zhuǎn)發(fā)?!緦@f明】一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及通信【
技術(shù)領(lǐng)域
】,特別是涉及一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置。【
背景技術(shù)
】[0002]互聯(lián)網(wǎng)設(shè)備發(fā)展迅猛,網(wǎng)關(guān)產(chǎn)品上Linux網(wǎng)絡(luò)協(xié)議棧對數(shù)據(jù)包的轉(zhuǎn)發(fā)按轉(zhuǎn)發(fā)方向分類可以分為:上行轉(zhuǎn)發(fā)和下行轉(zhuǎn)發(fā);按轉(zhuǎn)發(fā)涉及的網(wǎng)絡(luò)層次分類可以分為:二層轉(zhuǎn)發(fā)和三層轉(zhuǎn)發(fā)。[0003]對于一般的需要做轉(zhuǎn)發(fā)處理的數(shù)據(jù)包的轉(zhuǎn)發(fā)流程是:[0004]第一步:當(dāng)網(wǎng)絡(luò)接口驅(qū)動程序接收到數(shù)據(jù)包后,交給Linux網(wǎng)絡(luò)協(xié)議棧的收包函數(shù),協(xié)議棧根據(jù)目的MAC做二層轉(zhuǎn)發(fā)還是三層轉(zhuǎn)發(fā)的判斷,[0005]第二步:如果是二層轉(zhuǎn)發(fā),上行和下行轉(zhuǎn)發(fā)的處理過程是一樣的。先交由bridge模塊先做防火墻過濾規(guī)則檢查;對于能夠轉(zhuǎn)發(fā)的數(shù)據(jù)包,根據(jù)橋的端口配置關(guān)系進(jìn)行轉(zhuǎn)發(fā);然后交由出接口的網(wǎng)絡(luò)接口驅(qū)動層序發(fā)送到物理鏈路。[0006]第三步:如果是三層轉(zhuǎn)發(fā),對于下行數(shù)據(jù)包,如果是PPPoE封包,先去掉PPPoE封裝;然后進(jìn)入Netfilter模塊的PREROUTING模塊,做DNAT檢查,對于下行數(shù)據(jù)包需要修改目的IP和目的端口;然后進(jìn)入FORWARD模塊,做防火墻的過濾規(guī)則檢查;然后進(jìn)入OUTPUT模塊,查路由表,選擇出去的路由,然后做防火墻的過濾規(guī)則檢查;然后進(jìn)入P0STR0UTING模塊,對于上行數(shù)據(jù)包需要根據(jù)NAT規(guī)則,修改源IP和源端口;對于上行數(shù)據(jù)包如果出接口是PPPoE類型的,需要對封包進(jìn)行PPPoE封裝;然后交由出接口的網(wǎng)絡(luò)接口驅(qū)動程序發(fā)送到物理鏈路。[0007]但是,終端用戶對網(wǎng)絡(luò)帶寬的要求越來越大,提升網(wǎng)關(guān)設(shè)備的轉(zhuǎn)發(fā)性能也越來來越迫切。解決這個問題總體來說有兩個方案:一個是提升硬件的處理能力;另一個是在軟件上做優(yōu)化,但是目前針對網(wǎng)關(guān)設(shè)備的軟件優(yōu)化方案還是比較少?!?br/>發(fā)明內(nèi)容】[0008]鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置,用于解決上述現(xiàn)有技術(shù)網(wǎng)關(guān)產(chǎn)品性能不足以應(yīng)對網(wǎng)絡(luò)帶寬要求的問題。[0009]為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,包括:確定多個數(shù)據(jù)包在各自轉(zhuǎn)發(fā)過程中的相同環(huán)節(jié);根據(jù)所述相同環(huán)節(jié)對應(yīng)提取所述各數(shù)據(jù)包中的相同特征信息;根據(jù)所述相同特征信息對所述各預(yù)定種類的數(shù)據(jù)包進(jìn)行快轉(zhuǎn)分類;將快轉(zhuǎn)分類后的數(shù)據(jù)包類別關(guān)聯(lián)上對應(yīng)的轉(zhuǎn)發(fā)操作集;當(dāng)數(shù)據(jù)包屬于所述數(shù)據(jù)包類別時,根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包并轉(zhuǎn)發(fā);當(dāng)數(shù)據(jù)包不屬于所述數(shù)據(jù)包類別時,通過Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā)。[0010]優(yōu)選的,所述數(shù)據(jù)包是在MAC層即二層和/或IP層即三層轉(zhuǎn)發(fā)的;所述相同特征信息包括:對于二層轉(zhuǎn)發(fā)所有源MAC地址和目的MAC地址相同的報文,同一個組播源的組播數(shù)據(jù)報文,TCP三次握手成功后續(xù)傳數(shù)據(jù)的報文,UDP傳輸數(shù)據(jù)時源IP地址、目的IP地址、源端口信息目的端口信息都相同的報文。[0011]優(yōu)選的,所述快轉(zhuǎn)分類指的是:生成快速轉(zhuǎn)發(fā)表,其中,所述快速轉(zhuǎn)發(fā)表記錄所述快轉(zhuǎn)分類后的數(shù)據(jù)包類別及對應(yīng)的轉(zhuǎn)發(fā)操作集;所述數(shù)據(jù)包屬于所述數(shù)據(jù)包類別指的是:從數(shù)據(jù)包中提取的信息字段命中所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別對應(yīng)的相同特征信息。[0012]優(yōu)選的,所述數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法還包括:快速轉(zhuǎn)發(fā)表更新步驟:學(xué)習(xí)已經(jīng)成功轉(zhuǎn)發(fā)的數(shù)據(jù)包所包含的信息字段,以更新所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息。[0013]優(yōu)選的,所述數(shù)據(jù)包類別所包括的信息有:數(shù)據(jù)包的源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址、通信協(xié)議、源端口信息、目的端口信息。[0014]優(yōu)選的,所述快速轉(zhuǎn)發(fā)表包括:對應(yīng)MAC層的二層快速轉(zhuǎn)發(fā)表、對應(yīng)TCP/IP層的三層快速轉(zhuǎn)發(fā)表;所述二層快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息包括:源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識;所述三層快速轉(zhuǎn)發(fā)表的數(shù)據(jù)包類別信息包括:虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址信息、通信協(xié)議、源端口信息、目的端口信息。[0015]優(yōu)選的,所述根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包,包括:對應(yīng)所述二層快速轉(zhuǎn)發(fā)表的修改,包括:數(shù)據(jù)包的虛擬局域網(wǎng)標(biāo)識信息的修改、二層網(wǎng)絡(luò)協(xié)議的修改;對應(yīng)所述三層快速轉(zhuǎn)發(fā)表的修改,包括:數(shù)據(jù)包的源MAC地址的修改、目的MAC地址的修改、虛擬局域網(wǎng)標(biāo)識的修改、源IP地址的修改、目的IP地址的修改、通信協(xié)議的修改、源端口信息的修改、目的端口信息的修改、PPPoE封裝、TTL的修改。[0016]優(yōu)選的,所述源IP地址信息的修改和源端口信息的修改是在三層上行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述目的IP地址信息的修改和目的端口信息的修改是在三層下行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述PPPoE封裝是在三層轉(zhuǎn)發(fā)中涉及PPPoE端口信息時進(jìn)行的;所述TTL的修改指的是三層轉(zhuǎn)發(fā)數(shù)據(jù)包時TTL值減I。[0017]優(yōu)選的,所述根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包,包括:修改數(shù)據(jù)包格式以適應(yīng)指定轉(zhuǎn)發(fā)的網(wǎng)絡(luò)接口。[0018]優(yōu)選的,所述數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法還包括:記錄數(shù)據(jù)包被防火墻攔截的信息;根據(jù)所述數(shù)據(jù)包被防火墻攔截的信息,將與被攔截數(shù)據(jù)包在所述數(shù)據(jù)包類別中屬于同類的數(shù)據(jù)包通過Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā)。[0019]為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明還提供一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,包括:確認(rèn)模塊,用于確定多個數(shù)據(jù)包在各自轉(zhuǎn)發(fā)過程中的相同環(huán)節(jié);提取模塊,用于根據(jù)所述相同環(huán)節(jié)對應(yīng)提取所述各數(shù)據(jù)包中的相同特征信息;快轉(zhuǎn)分類模塊,用于根據(jù)所述相同特征信息對所述各預(yù)定種類的數(shù)據(jù)包進(jìn)行快轉(zhuǎn)分類;關(guān)聯(lián)模塊,用于將快轉(zhuǎn)分類后的數(shù)據(jù)包類別關(guān)聯(lián)上對應(yīng)的轉(zhuǎn)發(fā)操作集;判斷模塊,用于當(dāng)判斷出待轉(zhuǎn)發(fā)的數(shù)據(jù)包是否屬于所述數(shù)據(jù)包類別,當(dāng)判斷出數(shù)據(jù)包不屬于所述數(shù)據(jù)包類別時,通過Linux網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā);修改模塊,用于當(dāng)所述判斷模塊判斷出數(shù)據(jù)包屬于所述數(shù)據(jù)包類別時,根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包并轉(zhuǎn)發(fā)。[0020]優(yōu)選的,所述數(shù)據(jù)包是在MAC層即二層和/或IP層即三層轉(zhuǎn)發(fā)的;所述相同特征信息包括:對于二層轉(zhuǎn)發(fā)所有源MAC地址和目的MAC地址相同的報文,同一個組播源的組播數(shù)據(jù)報文,TCP三次握手成功后續(xù)傳數(shù)據(jù)的報文,UDP傳輸數(shù)據(jù)時源IP地址、目的IP地址、源端口信息目的端口信息都相同的報文。[0021]優(yōu)選的,所述快轉(zhuǎn)分類指的是:生成快速轉(zhuǎn)發(fā)表,其中,所述快速轉(zhuǎn)發(fā)表記錄所述快轉(zhuǎn)分類后的數(shù)據(jù)包類別及對應(yīng)的轉(zhuǎn)發(fā)操作集;所述數(shù)據(jù)包屬于所述數(shù)據(jù)包類別指的是:從數(shù)據(jù)包中提取的信息字段命中所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別對應(yīng)的相同特征信息。[0022]優(yōu)選的,所述數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置還包括:快速轉(zhuǎn)發(fā)表更新模塊,用于學(xué)習(xí)已經(jīng)成功轉(zhuǎn)發(fā)的數(shù)據(jù)包所包含的信息字段,以更新所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息。[0023]優(yōu)選的,所述數(shù)據(jù)包類別所包括的信息有:數(shù)據(jù)包的源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址、通信協(xié)議、源端口信息、目的端口信息。[0024]優(yōu)選的,所述快速轉(zhuǎn)發(fā)表包括:對應(yīng)MAC層的二層快速轉(zhuǎn)發(fā)表、對應(yīng)TCP/IP層的三層快速轉(zhuǎn)發(fā)表;所述二層快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息包括:源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識;所述三層快速轉(zhuǎn)發(fā)表的數(shù)據(jù)包類別信息包括:虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址信息、通信協(xié)議、源端口信息、目的端口信息。[0025]優(yōu)選的,所述修改模塊對數(shù)據(jù)包的修改包括:對應(yīng)所述二層快速轉(zhuǎn)發(fā)表的修改,包括:待轉(zhuǎn)發(fā)的數(shù)據(jù)包的虛擬局域網(wǎng)標(biāo)識信息的修改、二層網(wǎng)絡(luò)協(xié)議的修改;對應(yīng)所述三層快速轉(zhuǎn)發(fā)表的修改,包括:待轉(zhuǎn)發(fā)的數(shù)據(jù)包的源MAC地址的修改、目的MAC地址的修改、虛擬局域網(wǎng)標(biāo)識的修改、源IP地址的修改、目的IP地址的修改、通信協(xié)議的修改、源端口信息的修改、目的端口信息的修改、PPPoE封裝、TTL的修改。[0026]優(yōu)選的,所述源IP地址信息的修改和源端口信息的修改是在三層上行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述目的IP地址信息的修改和目的端口信息的修改是在三層下行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述PPPoE封裝是在三層轉(zhuǎn)發(fā)中涉及PPPoE端口信息時進(jìn)行的;所述TTL的修改指的是三層轉(zhuǎn)發(fā)數(shù)據(jù)包時TTL值減I。[0027]優(yōu)選的,所述修改模塊,還用于修改數(shù)據(jù)包格式以適應(yīng)指定轉(zhuǎn)發(fā)的網(wǎng)絡(luò)接口。[0028]優(yōu)選的,所述數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置還包括:記錄模塊,用于記錄數(shù)據(jù)包被防火墻攔截的信息,并根據(jù)所述數(shù)據(jù)包被防火墻攔截的信息,將與被攔截數(shù)據(jù)包在所述數(shù)據(jù)包類別中屬于同類的數(shù)據(jù)包通過Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā)。[0029]如上所述,本發(fā)明提供的一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置,通過確定多個數(shù)據(jù)包在各自轉(zhuǎn)發(fā)過程中的相同環(huán)節(jié),進(jìn)而根據(jù)所述相同環(huán)節(jié)對應(yīng)提取所述各數(shù)據(jù)包中的相同特征信息,并且,根據(jù)所述相同特征信息對所述各預(yù)定種類的數(shù)據(jù)包進(jìn)行快轉(zhuǎn)分類,再將快轉(zhuǎn)分類后的數(shù)據(jù)包類別關(guān)聯(lián)上對應(yīng)的轉(zhuǎn)發(fā)操作集,而當(dāng)后續(xù)要轉(zhuǎn)發(fā)的數(shù)據(jù)包屬于所述數(shù)據(jù)包類別時,即可根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包并轉(zhuǎn)發(fā),從而節(jié)省查路由表、查NAT表等等的操作時間,加速了數(shù)據(jù)包的轉(zhuǎn)發(fā)。【專利附圖】【附圖說明】[0030]圖1顯示為本發(fā)明的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法的一實施例的步驟流程示意圖。[0031]圖2顯示為本發(fā)明的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法的另一實施例的步驟流程示意圖。[0032]圖3顯示為本發(fā)明的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法的又一實施例的步驟流程示意圖。[0033]圖4顯示為本發(fā)明的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置的實施例的結(jié)構(gòu)示意圖。[0034]圖5顯示為本發(fā)明的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法及裝置的運作原理圖。[0035]元件標(biāo)號說明[0036]1數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置11確認(rèn)模塊12提取模塊13快轉(zhuǎn)分類模塊14關(guān)聯(lián)模塊15判斷模塊16修改模塊[0037]17快速轉(zhuǎn)發(fā)表更新模塊18記錄模塊S1-S19方法步驟【具體實施方式】[0038]以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應(yīng)用,本說明書中的各項細(xì)節(jié)也可以基于不同觀點與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。需說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。[0039]請參閱圖1,本發(fā)明提供的一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,包括:[0040]步驟S1:確定多個數(shù)據(jù)包在各自轉(zhuǎn)發(fā)過程中的相同環(huán)節(jié);[0041]步驟S2:根據(jù)所述相同環(huán)節(jié)對應(yīng)提取所述各數(shù)據(jù)包中的相同特征信息;[0042]步驟S3:根據(jù)所述相同特征信息對所述各預(yù)定種類的數(shù)據(jù)包進(jìn)行快轉(zhuǎn)分類;[0043]步驟S4:將快轉(zhuǎn)分類后的數(shù)據(jù)包類別關(guān)聯(lián)上對應(yīng)的轉(zhuǎn)發(fā)操作集;[0044]步驟S5:當(dāng)數(shù)據(jù)包屬于所述數(shù)據(jù)包類別時,根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包并轉(zhuǎn)發(fā);當(dāng)數(shù)據(jù)包不屬于所述數(shù)據(jù)包類別時,通過Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā)。[0045]在本實施例中,所述數(shù)據(jù)包是在MAC層即二層和/或IP層即三層轉(zhuǎn)發(fā)的,意即應(yīng)用于以太網(wǎng)的OSI或TCP/IP網(wǎng)絡(luò)模型中的協(xié)議層,本發(fā)明可以應(yīng)用于Linux系統(tǒng)的網(wǎng)關(guān)設(shè)備如路由器、交換機中,三層交換機已是常見設(shè)備,所謂三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的是加快大型局域網(wǎng)內(nèi)部的數(shù)據(jù)交換,所具有的路由功能也是為這目的服務(wù)的,能夠做到一次路由。[0046]在本實施例中,所述相同特征信息包括:對于二層轉(zhuǎn)發(fā)所有源MAC地址和目的MAC地址相同的報文,同一個組播源的組播數(shù)據(jù)報文,TCP三次握手成功后續(xù)傳數(shù)據(jù)的報文,UDP傳輸數(shù)據(jù)時源IP地址、目的IP地址、源端口信息目的端口信息都相同的報文,對于上面描述的這幾類數(shù)據(jù)包有各自的共同特征,只要這些特征相同,那么對應(yīng)的轉(zhuǎn)發(fā)處理也相同,即后續(xù)所要做的修改和轉(zhuǎn)發(fā)處理都相同,本發(fā)明的方法就是利用這些特征減少轉(zhuǎn)發(fā)過程中的判斷邏輯和處理流程,來提升數(shù)據(jù)包的轉(zhuǎn)發(fā)效率。[0047]在本實施例中,所述快轉(zhuǎn)分類有生成快速轉(zhuǎn)發(fā)表,其中,所述快速轉(zhuǎn)發(fā)表記錄所述快轉(zhuǎn)分類后的數(shù)據(jù)包類別及對應(yīng)的轉(zhuǎn)發(fā)操作集;所述數(shù)據(jù)包屬于所述數(shù)據(jù)包類別指的是:從數(shù)據(jù)包中提取的信息字段命中所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別對應(yīng)的相同特征信息。[0048]在本實施例中,所述數(shù)據(jù)包類別所包括的信息有:數(shù)據(jù)包的源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址、通信協(xié)議、源端口信息、目的端口信息。[0049]并且,在本實施例中,因為要考慮二層和三層轉(zhuǎn)發(fā),因此快速轉(zhuǎn)發(fā)表可以包括兩張:對應(yīng)MAC層的二層快速轉(zhuǎn)發(fā)表、對應(yīng)TCP/IP層的三層快速轉(zhuǎn)發(fā)表;所述二層快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息包括:源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識;所述三層快速轉(zhuǎn)發(fā)表的數(shù)據(jù)包類別信息包括:虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址信息、通信協(xié)議、源端口信息、目的端口信息。[0050]在本實施例中,所述快轉(zhuǎn)分類就是對于二層轉(zhuǎn)發(fā)用“目的MAC+源MAC+VLAN”的分類方法;對于三層轉(zhuǎn)發(fā)采用“VLAN+目的IP+源IP+目的端口+源端口+協(xié)議”的分類方法;為這兩種分類方法各維護(hù)一張表,前者定義為二層快速轉(zhuǎn)發(fā)表;后者定義為三層快速轉(zhuǎn)發(fā)表,表內(nèi)的每條記錄對應(yīng)一條可以由快速轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)的數(shù)據(jù)流。在做分類時,從數(shù)據(jù)包中提取相應(yīng)的字段,和兩個表中的所有記錄做比較,如果命中,則說明該數(shù)據(jù)包能夠做快速轉(zhuǎn)發(fā);不能命中,則交由Linux網(wǎng)絡(luò)協(xié)議棧做轉(zhuǎn)發(fā)。[0051]在本實施例中,對應(yīng)的,所述數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法還包括:快速轉(zhuǎn)發(fā)表更新步驟:學(xué)習(xí)已經(jīng)成功轉(zhuǎn)發(fā)的數(shù)據(jù)包所包含的信息字段,以更新所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息。具體來說,本發(fā)明的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法還提供學(xué)習(xí)機制,即一種根據(jù)已經(jīng)成功轉(zhuǎn)發(fā)的數(shù)據(jù)包的特征更新二層快速轉(zhuǎn)發(fā)表或三層快速轉(zhuǎn)發(fā)表的記錄,以保證后續(xù)具有同樣特征的數(shù)據(jù)包能夠由快速轉(zhuǎn)發(fā)模塊根據(jù)該記錄實現(xiàn)轉(zhuǎn)發(fā)的機制。[0052]在本實施例中,學(xué)習(xí)機制的工作流程如下:快速轉(zhuǎn)發(fā)模塊接收到網(wǎng)絡(luò)驅(qū)動層序發(fā)送過來的數(shù)據(jù)包,提取數(shù)據(jù)包的特征字段到skbuff的對應(yīng)字段,skbuff.h是Linux內(nèi)核的頭文件,skbuff.h中最主要的是包含了Linux內(nèi)核網(wǎng)絡(luò)子系統(tǒng)(協(xié)議棧)用來表示數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)包交由Linux協(xié)議棧的收包函數(shù),做轉(zhuǎn)發(fā)處理;Linux協(xié)議棧在做轉(zhuǎn)發(fā)處理時,根據(jù)需要設(shè)置skbuff中的學(xué)習(xí)標(biāo)志位;Linux協(xié)議棧發(fā)送數(shù)據(jù)包調(diào)用快速轉(zhuǎn)發(fā)模塊發(fā)送前處理函數(shù),檢查skbuff中的學(xué)習(xí)標(biāo)志位;如果被置位,則對skbuff中的記錄字段和修改后的數(shù)據(jù)包做比較生成相應(yīng)的修改處理規(guī)則。[0053]其中,對于二層轉(zhuǎn)發(fā),提取數(shù)據(jù)包的源MAC、目的MAC、接收設(shè)備和源數(shù)據(jù)包的VLANTAG作為分類標(biāo)準(zhǔn),并記錄VLANTAG的改動和發(fā)送接口作為修改和轉(zhuǎn)發(fā)的規(guī)則;而對于三層轉(zhuǎn)發(fā),提取數(shù)據(jù)包的接收設(shè)備、源數(shù)據(jù)包的VLANTAG、目的IP、源IP、目的port、源port和協(xié)議信息作為分類標(biāo)準(zhǔn),并記錄源MAC、目的MAC、VLANTAG、源IP地址、目的IP地址、源端口和目的端口的改動作為修改和轉(zhuǎn)發(fā)的規(guī)則。[0054]由于二層快速轉(zhuǎn)發(fā)表和三層快速轉(zhuǎn)發(fā)表的記錄都是有生存周期的,二層快速轉(zhuǎn)發(fā)表采用超時機制,超時機制與內(nèi)核協(xié)議棧的Mactable的一致,超時時間默認(rèn)為2分鐘,在成功使用該記錄實現(xiàn)轉(zhuǎn)發(fā)時刷新超時定時器,在閑置2分鐘后,清楚該記錄。三層快速轉(zhuǎn)發(fā)表采用和二層快速轉(zhuǎn)發(fā)表相同的超時機制,但默認(rèn)超時時間為20秒。[0055]對于下面的幾種情形內(nèi)核協(xié)議棧需要設(shè)置相應(yīng)skbuff的學(xué)習(xí)標(biāo)志位:[0056]二層轉(zhuǎn)發(fā),bridge模塊成功轉(zhuǎn)發(fā)一個單播數(shù)據(jù)包時;[0057]三層轉(zhuǎn)發(fā),Netfilter模塊成功加入一條nf_contrack記錄時,目前只針對TCP和UDP協(xié)議做處理。[0058]以上為例示性的學(xué)習(xí)機制,并非以此為限。[0059]在本實施例中,所述根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包,包括:對應(yīng)所述二層快速轉(zhuǎn)發(fā)表的修改,包括:數(shù)據(jù)包的虛擬局域網(wǎng)標(biāo)識信息的修改、二層網(wǎng)絡(luò)協(xié)議的修改;對應(yīng)所述三層快速轉(zhuǎn)發(fā)表的修改,包括:數(shù)據(jù)包的源MAC地址的修改、目的MAC地址的修改、虛擬局域網(wǎng)標(biāo)識的修改、源IP地址的修改、目的IP地址的修改、通信協(xié)議的修改、源端口信息的修改、目的端口信息的修改、PPPoE封裝、TTL的修改。[0060]對數(shù)據(jù)包的修改處理見下表例示:[0061]【權(quán)利要求】1.一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,包括:確定多個數(shù)據(jù)包在各自轉(zhuǎn)發(fā)過程中的相同環(huán)節(jié);根據(jù)所述相同環(huán)節(jié)對應(yīng)提取所述各數(shù)據(jù)包中的相同特征信息;根據(jù)所述相同特征信息對所述各預(yù)定種類的數(shù)據(jù)包進(jìn)行快轉(zhuǎn)分類;將快轉(zhuǎn)分類后的數(shù)據(jù)包類別關(guān)聯(lián)上對應(yīng)的轉(zhuǎn)發(fā)操作集;當(dāng)數(shù)據(jù)包屬于所述數(shù)據(jù)包類別時,根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包并轉(zhuǎn)發(fā);當(dāng)數(shù)據(jù)包不屬于所述數(shù)據(jù)包類別時,通過Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā)。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,所述數(shù)據(jù)包是在MAC層即二層和/或IP層即三層轉(zhuǎn)發(fā)的;所述相同特征信息包括:對于二層轉(zhuǎn)發(fā)所有源MAC地址和目的MAC地址相同的報文,同一個組播源的組播數(shù)據(jù)報文,TCP三次握手成功后續(xù)傳數(shù)據(jù)的報文,UDP傳輸數(shù)據(jù)時源IP地址、目的IP地址、源端口信息目的端口信息都相同的報文。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,所述快轉(zhuǎn)分類指的是:生成快速轉(zhuǎn)發(fā)表,其中,所述快速轉(zhuǎn)發(fā)表記錄所述快轉(zhuǎn)分類后的數(shù)據(jù)包類別及對應(yīng)的轉(zhuǎn)發(fā)操作集;所述數(shù)據(jù)包屬于所述數(shù)據(jù)包類別指的是:從數(shù)據(jù)包中提取的信息字段命中所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別對應(yīng)的相同特征信息。4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,還包括快速轉(zhuǎn)發(fā)表更新步驟:學(xué)習(xí)已經(jīng)成功轉(zhuǎn)發(fā)的數(shù)據(jù)包所包含的信息字段,以更新所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息。5.根據(jù)權(quán)利要求3所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,所述數(shù)據(jù)包類別所包括的信息有:數(shù)據(jù)包的源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址、通信協(xié)議、源端口信息、目的端口信息。6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,所述快速轉(zhuǎn)發(fā)表包括:對應(yīng)MAC層的二層快速轉(zhuǎn)發(fā)表、對應(yīng)TCP/IP層的三層快速轉(zhuǎn)發(fā)表;所述二層快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息包括:源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識;所述三層快速轉(zhuǎn)發(fā)表的數(shù)據(jù)包類別信息包括:虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址信息、通信協(xié)議、源端口信息、目的端口信息。7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,所述根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包,包括:對應(yīng)所述二層快速轉(zhuǎn)發(fā)表的修改,包括:數(shù)據(jù)包的虛擬局域網(wǎng)標(biāo)識信息的修改、二層網(wǎng)絡(luò)協(xié)議的修改;對應(yīng)所述三層快速轉(zhuǎn)發(fā)表的修改,包括:數(shù)據(jù)包的源MAC地址的修改、目的MAC地址的修改、虛擬局域網(wǎng)標(biāo)識的修改、源IP地址的修改、目的IP地址的修改、通信協(xié)議的修改、源端口信息的修改、目的端口信息的修改、PPPoE封裝、TTL的修改。8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,所述源IP地址信息的修改和源端口信息的修改是在三層上行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述目的IP地址信息的修改和目的端口信息的修改是在三層下行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述PPPoE封裝是在三層轉(zhuǎn)發(fā)中涉及PPPoE端口信息時進(jìn)行的;所述TTL的修改指的是三層轉(zhuǎn)發(fā)數(shù)據(jù)包時TTL值減I。9.根據(jù)權(quán)利要求1至7中任一項所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,所述根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包,包括:修改數(shù)據(jù)包格式以適應(yīng)指定轉(zhuǎn)發(fā)的網(wǎng)絡(luò)接口。10.根據(jù)權(quán)利要求1所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)方法,其特征在于,還包括:記錄數(shù)據(jù)包被防火墻攔截的信息;根據(jù)所述數(shù)據(jù)包被防火墻攔截的信息,將與被攔截數(shù)據(jù)包在所述數(shù)據(jù)包類別中屬于同類的數(shù)據(jù)包通過Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā)。11.一種數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,包括:確認(rèn)模塊,用于確定多個數(shù)據(jù)包在各自轉(zhuǎn)發(fā)過程中的相同環(huán)節(jié);提取模塊,用于根據(jù)所述相同環(huán)節(jié)對應(yīng)提取所述各數(shù)據(jù)包中的相同特征信息;快轉(zhuǎn)分類模塊,用于根據(jù)所述相同特征信息對所述各預(yù)定種類的數(shù)據(jù)包進(jìn)行快轉(zhuǎn)分類;關(guān)聯(lián)模塊,用于將快轉(zhuǎn)分類后的數(shù)據(jù)包類別關(guān)聯(lián)上對應(yīng)的轉(zhuǎn)發(fā)操作集;判斷模塊,用于當(dāng)判斷出待轉(zhuǎn)發(fā)的數(shù)據(jù)包是否屬于所述數(shù)據(jù)包類別,當(dāng)判斷出數(shù)據(jù)包不屬于所述數(shù)據(jù)包類別時,通過Linux網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā);修改模塊,用于當(dāng)所述判斷模塊判斷出數(shù)據(jù)包屬于所述數(shù)據(jù)包類別時,根據(jù)所對應(yīng)的轉(zhuǎn)發(fā)操作集修改數(shù)據(jù)包并轉(zhuǎn)發(fā)。12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,所述數(shù)據(jù)包是在MAC層即二層和/或IP層即三層轉(zhuǎn)發(fā)的;所述相同特征信息包括:對于二層轉(zhuǎn)發(fā)所有源MAC地址和目的MAC地址相同的報文,同一個組播源的組播數(shù)據(jù)報文,TCP三次握手成功后續(xù)傳數(shù)據(jù)的報文,UDP傳輸數(shù)據(jù)時源IP地址、目的IP地址、源端口信息目的端口信息都相同的報文。13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,所述快轉(zhuǎn)分類指的是:生成快速轉(zhuǎn)發(fā)表,其中,所述快速轉(zhuǎn)發(fā)表記錄所述快轉(zhuǎn)分類后的數(shù)據(jù)包類別及對應(yīng)的轉(zhuǎn)發(fā)操作集;所述數(shù)據(jù)包屬于所述數(shù)據(jù)包類別指的是:從數(shù)據(jù)包中提取的信息字段命中所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別對應(yīng)的相同特征信息。14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,還包括:快速轉(zhuǎn)發(fā)表更新模塊,用于學(xué)習(xí)已經(jīng)成功轉(zhuǎn)發(fā)的數(shù)據(jù)包所包含的信息字段,以更新所述快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息。15.根據(jù)權(quán)利要求13所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,所述數(shù)據(jù)包類別所包括的信息有:數(shù)據(jù)包的源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址、通信協(xié)議、源端口信息、目的端口信息。16.根據(jù)權(quán)利要求15所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,所述快速轉(zhuǎn)發(fā)表包括:對應(yīng)MAC層的二層快速轉(zhuǎn)發(fā)表、對應(yīng)TCP/IP層的三層快速轉(zhuǎn)發(fā)表;所述二層快速轉(zhuǎn)發(fā)表中的數(shù)據(jù)包類別信息包括:源MAC地址、目的MAC地址、虛擬局域網(wǎng)標(biāo)識;所述三層快速轉(zhuǎn)發(fā)表的數(shù)據(jù)包類別信息包括:虛擬局域網(wǎng)標(biāo)識、源IP地址、目的IP地址信息、通信協(xié)議、源端口信息、目的端口信息。17.根據(jù)權(quán)利要求16所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,所述修改模塊對數(shù)據(jù)包的修改包括:對應(yīng)所述二層快速轉(zhuǎn)發(fā)表的修改,包括:待轉(zhuǎn)發(fā)的數(shù)據(jù)包的虛擬局域網(wǎng)標(biāo)識信息的修改、二層網(wǎng)絡(luò)協(xié)議的修改;對應(yīng)所述三層快速轉(zhuǎn)發(fā)表的修改,包括:待轉(zhuǎn)發(fā)的數(shù)據(jù)包的源MAC地址的修改、目的MAC地址的修改、虛擬局域網(wǎng)標(biāo)識的修改、源IP地址的修改、目的IP地址的修改、通信協(xié)議的修改、源端口信息的修改、目的端口信息的修改、PPPoE封裝、TTL的修改。18.根據(jù)權(quán)利要求17所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,所述源IP地址信息的修改和源端口信息的修改是在三層上行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述目的IP地址信息的修改和目的端口信息的修改是在三層下行數(shù)據(jù)包的轉(zhuǎn)發(fā)過程中有NAT時進(jìn)行的;所述PPPoE封裝是在三層轉(zhuǎn)發(fā)中涉及PPPoE端口信息時進(jìn)行的;所述TTL的修改指的是三層轉(zhuǎn)發(fā)數(shù)據(jù)包時TTL值減I。19.根據(jù)權(quán)利要求11或17所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,所述修改模塊,還用于修改數(shù)據(jù)包格式以適應(yīng)指定轉(zhuǎn)發(fā)的網(wǎng)絡(luò)接口。20.根據(jù)權(quán)利要求11所述的數(shù)據(jù)包快速轉(zhuǎn)發(fā)裝置,其特征在于,還包括:記錄模塊,用于記錄數(shù)據(jù)包被防火墻攔截的信息,并根據(jù)所述數(shù)據(jù)包被防火墻攔截的信息,將與被攔截數(shù)據(jù)包在所述數(shù)據(jù)包類別中屬于同類的數(shù)據(jù)包通過Linux系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧轉(zhuǎn)發(fā)?!疚臋n編號】H04L12/741GK103647716SQ201310597300【公開日】2014年3月19日申請日期:2013年11月22日優(yōu)先權(quán)日:2013年11月22日【發(fā)明者】管建智申請人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1