專(zhuān)利名稱(chēng):一種實(shí)現(xiàn)ipsec vpn加解密處理的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)通信領(lǐng)域,尤其涉及一種采用異步機(jī)制高速實(shí)現(xiàn)IPSEC VPN加解密處理的方法及裝置。
背景技術(shù):
術(shù)語(yǔ)解釋
IPESC Internet Protocol Security 的縮寫(xiě),表不 Internet 協(xié)議安全性。是一種開(kāi)放標(biāo)準(zhǔn)的框架結(jié)構(gòu),通過(guò)使用加密的安全服務(wù)以確保在Internet協(xié)議(IP)網(wǎng)絡(luò)上進(jìn)行保密而安全的通訊;VPN :虛擬專(zhuān)用網(wǎng)絡(luò)(Virtual Private Network ,簡(jiǎn)稱(chēng)VPN)指的是在公用網(wǎng)絡(luò)上建立專(zhuān)用網(wǎng)絡(luò)的技木。其之所以稱(chēng)為虛擬網(wǎng),主要是因?yàn)檎麄€(gè)VPN網(wǎng)絡(luò)的任意兩個(gè)節(jié)點(diǎn)之間的連接并沒(méi)有傳統(tǒng)專(zhuān)網(wǎng)所需的端到端的物理鏈路,而是架構(gòu)在公用網(wǎng)絡(luò)服務(wù)商所提供的網(wǎng)絡(luò)平臺(tái),如Internet、ATM(異步傳輸模式〉、Frame Relay (巾貞中繼)等之上的邏輯網(wǎng)絡(luò),用戶(hù)數(shù)據(jù)在邏輯鏈路中傳輸。它涵蓋了跨共享網(wǎng)絡(luò)或公共網(wǎng)絡(luò)的封裝、加密和身份驗(yàn)證鏈接的專(zhuān)用網(wǎng)絡(luò)的擴(kuò)展。VPN主要采用了隧道技術(shù)、加解密技術(shù)、密鑰管理技術(shù)和使用者與設(shè)備身份認(rèn)證技木。目前,市場(chǎng)上的IPSECVPN設(shè)備在處理數(shù)據(jù)報(bào)文加解密的時(shí)候,通常是分別為加解密協(xié)處理器和網(wǎng)卡維持単獨(dú)的數(shù)據(jù)隊(duì)列,并采用生產(chǎn)者-消費(fèi)者模型實(shí)現(xiàn)數(shù)據(jù)報(bào)文的處理,其處理模型如圖I所示
在網(wǎng)絡(luò)處理器中,分別用網(wǎng)卡接收隊(duì)列、網(wǎng)卡發(fā)送隊(duì)列管理網(wǎng)卡接收的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文和經(jīng)加解密協(xié)處理器處理后可立即由網(wǎng)卡發(fā)送的數(shù)據(jù)報(bào)文,在加解密協(xié)處理器中,則用協(xié)處理器隊(duì)列管理等待處理的數(shù)據(jù)報(bào)文,這三個(gè)隊(duì)列都分別配置有生產(chǎn)者和消費(fèi)者兩個(gè)隊(duì)列指針。在中央處理器的調(diào)度下,網(wǎng)卡接收的數(shù)據(jù)報(bào)文經(jīng)指針生產(chǎn)者I指示按序存入網(wǎng)卡接收隊(duì)列,再經(jīng)指針消費(fèi)者I指示從網(wǎng)卡接收隊(duì)列中按序讀取數(shù)據(jù)報(bào)文,同步傳輸至協(xié)處理器,在指針生產(chǎn)者2的指示下按序存入?yún)f(xié)處理器隊(duì)列,協(xié)處理器經(jīng)指針消費(fèi)者2從協(xié)處理器隊(duì)列中讀取數(shù)據(jù)報(bào)文進(jìn)行處理,此時(shí)中央處理器需等待協(xié)處理器的加解密結(jié)果才能繼續(xù)下一流程,即觸發(fā)數(shù)據(jù)發(fā)送處理線(xiàn)程工作。處理完的報(bào)文同步傳輸給網(wǎng)卡,在指針生產(chǎn)者3的指示下按序存入網(wǎng)卡發(fā)送隊(duì)列,網(wǎng)卡再在指針消費(fèi)者3的指示下從網(wǎng)卡發(fā)送隊(duì)列中按序讀取數(shù)據(jù)報(bào)文進(jìn)行發(fā)送?,F(xiàn)有的這種網(wǎng)絡(luò)數(shù)據(jù)報(bào)文的處理方法,由于其不但要維持各隊(duì)列內(nèi)的數(shù)據(jù)報(bào)文處理,還要時(shí)刻維持隊(duì)列間的同步以及系統(tǒng)內(nèi)部的實(shí)時(shí)數(shù)據(jù)傳輸,中央處理器經(jīng)常處于等待狀態(tài),造成數(shù)據(jù)報(bào)文的處理效率以及協(xié)處理器的利用效率都非常低,而且還需要占用很多的內(nèi)存資源和中央處理器的開(kāi)銷(xiāo),數(shù)據(jù)報(bào)文的處理效率(即吞吐率)最高還不到30%
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)中用多個(gè)單獨(dú)的數(shù)據(jù)隊(duì)列來(lái)分別管理加解密協(xié)處理器和網(wǎng)卡中的數(shù)據(jù)報(bào)文,從而為了維持各隊(duì)列內(nèi)的數(shù)據(jù)報(bào)文處理,以及維持隊(duì)列間的同步和系統(tǒng)內(nèi)部的實(shí)時(shí)數(shù)據(jù)傳輸,使得數(shù)據(jù)報(bào)文的處理效率及協(xié)處理器的利用效率很低,且內(nèi)存資源和中央處理器的開(kāi)銷(xiāo)過(guò)大的問(wèn)題,提供一種采用異步機(jī)制高速實(shí)現(xiàn)IPSEC VPN加解密處理的方法及裝置,采用內(nèi)核線(xiàn)程共享的數(shù)據(jù)接收處理線(xiàn)程(數(shù)據(jù)接收處理模塊)、數(shù)據(jù)加解密處理線(xiàn)程(數(shù)據(jù)加解密處理模塊)、數(shù)據(jù)發(fā)送處理線(xiàn)程(數(shù)據(jù)發(fā)送處理模塊)對(duì)網(wǎng)卡輸入的數(shù)據(jù)進(jìn)行異步處理,同時(shí)幾個(gè)線(xiàn)程(模塊)還可同時(shí)并行工作,操作隊(duì)列的生產(chǎn)者、操作者、消費(fèi)者三個(gè)指針實(shí)現(xiàn)數(shù)據(jù)報(bào)文的互斥、協(xié)同處理,順序協(xié)調(diào)隊(duì)列中數(shù)據(jù)報(bào)文的進(jìn)出以及與加解密協(xié)處理器的通信,加解密協(xié)處理器工作時(shí)收發(fā)網(wǎng)絡(luò)數(shù)據(jù)和其他的數(shù)據(jù)處理工作仍然可以同時(shí)進(jìn)行,從而可以極大地減少數(shù)據(jù)傳輸和同步維持帶來(lái)的開(kāi)銷(xiāo),實(shí)現(xiàn)數(shù)據(jù)報(bào)文的處理率及協(xié)處理器的利用效率的大幅提高。除此之外,通過(guò)設(shè)定生產(chǎn)者指針、操作者指針、消費(fèi)者指針相對(duì)的位置關(guān)系,使得對(duì)環(huán)形緩沖隊(duì)列中數(shù)據(jù)的處理效率進(jìn)ー步提高,除此之外,對(duì)網(wǎng)卡輸入的不同的數(shù)據(jù)報(bào)文處理采用并行處理,除此之外,在環(huán)形緩沖隊(duì)列中的報(bào)文數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)發(fā)送處理線(xiàn)程處理后對(duì)數(shù)據(jù)報(bào)文的數(shù)據(jù)緩沖區(qū)進(jìn)行清空,確保下一幀存儲(chǔ)在此數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)的準(zhǔn)確性。
本發(fā)明采用的技術(shù)方案如下
一種實(shí)現(xiàn)IPSEC VPN加解密處理的方法包括步驟
步驟ー網(wǎng)卡中斷發(fā)生時(shí),數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到未經(jīng)加密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針存入環(huán)形緩沖隊(duì)列,并觸發(fā)數(shù)據(jù)加解密處理線(xiàn)程工作;
步驟ニ數(shù)據(jù)加解密處理線(xiàn)程通過(guò)操作者指針從所述環(huán)形緩沖隊(duì)列中獲取數(shù)據(jù)報(bào)文發(fā)送給加解密協(xié)處理器進(jìn)行處理后,在經(jīng)由操作者指針存入環(huán)形緩沖隊(duì)列,并觸發(fā)數(shù)據(jù)發(fā)送處理線(xiàn)程工作;
步驟三數(shù)據(jù)發(fā)送處理線(xiàn)程通過(guò)消費(fèi)者指針從環(huán)形緩沖隊(duì)列獲取數(shù)據(jù)報(bào)文發(fā)送給網(wǎng)
卡;
所述數(shù)據(jù)接受處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程采用異步方式分別對(duì)所述網(wǎng)卡輸入的數(shù)據(jù)報(bào)文進(jìn)行處理后,再通過(guò)網(wǎng)卡輸出;同時(shí)對(duì)網(wǎng)卡輸入的不同的數(shù)據(jù)報(bào)文處理采用并行處理,數(shù)據(jù)接受處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程對(duì)環(huán)形緩沖隊(duì)列共享。所述步驟一中當(dāng)所述生產(chǎn)者指針將數(shù)據(jù)存入環(huán)形緩沖隊(duì)列,所述生產(chǎn)者指針地址加一位不超過(guò)消費(fèi)者指針地址時(shí),數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針將數(shù)據(jù)報(bào)文存入環(huán)形緩沖隊(duì)列緩存區(qū),設(shè)置緩存區(qū)當(dāng)前狀態(tài)為FULL狀態(tài)。所述步驟ニ中當(dāng)操作者指針地址加一位不超過(guò)生產(chǎn)者指針地址時(shí),數(shù)據(jù)加解密處理線(xiàn)程經(jīng)操作者指針將環(huán)形緩沖隊(duì)列緩沖區(qū)為FULL狀態(tài)的數(shù)據(jù)交加密協(xié)處理器進(jìn)行加解密處理,完成處理的數(shù)據(jù)報(bào)文經(jīng)操作者指針存回環(huán)形緩沖隊(duì)列并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為DIRTY狀態(tài)。所述步驟三中當(dāng)消費(fèi)者指針地址加一位不超過(guò)操作者指針地址時(shí),數(shù)據(jù)發(fā)送處理線(xiàn)程經(jīng)消費(fèi)者指針從環(huán)形緩沖隊(duì)列中獲取已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文交網(wǎng)卡進(jìn)行發(fā)送,并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為EMPTY狀態(tài)。
所述對(duì)已發(fā)送給網(wǎng)卡的已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文在所述環(huán)形緩沖隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)進(jìn)行清空,所述生產(chǎn)者指針、操作者指針、消費(fèi)者指針為互斥、協(xié)同的指針變量,數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程之間進(jìn)行流量控制。所述觸發(fā)數(shù)據(jù)加解密處理線(xiàn)程工作、觸發(fā)數(shù)據(jù)發(fā)送線(xiàn)程工作中觸發(fā)機(jī)制是異步軟中斷方式(區(qū)別于常見(jiàn)的同步等待查詢(xún)方式),網(wǎng)卡發(fā)生中斷指的是當(dāng)網(wǎng)卡有接收到來(lái)自VPN設(shè)備的未經(jīng)協(xié)處理器處理的數(shù)據(jù)報(bào)文或來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)報(bào)文。一種實(shí)現(xiàn)IPSEC VPN加解密處理的方法,還包括初始化步驟,所述初始化步驟具體為初始化數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程、生產(chǎn)者指針、操作者指針及消費(fèi)者指針,構(gòu)建環(huán)形緩沖隊(duì)列,啟動(dòng)數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程,所述數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程分別對(duì)應(yīng)生產(chǎn)者指針、操作者指針、消費(fèi)者指針,初始化加解密協(xié)處理器,將生產(chǎn)者指針、操作者指針、消費(fèi)者指針置位,指向環(huán)形隊(duì)列首項(xiàng),隊(duì)列中的所有數(shù)據(jù)狀態(tài)皆置為EMPTY ; 一種實(shí)現(xiàn)IPSEC VPN加解密處理的裝置包括
數(shù)據(jù)接收處理模塊,用于接收網(wǎng)卡傳送的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文,將該數(shù)據(jù)報(bào)文存入所述環(huán)形緩沖隊(duì)列;
數(shù)據(jù)加解密處理模塊,用于將所述環(huán)形緩沖隊(duì)列中的數(shù)據(jù)報(bào)文發(fā)送給加解密協(xié)處理器處理,然后將加解密協(xié)處理器處理完的數(shù)據(jù)報(bào)文存回所述環(huán)形緩沖隊(duì)列;
數(shù)據(jù)發(fā)送處理模塊,用于將所述環(huán)形緩沖隊(duì)列中已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文發(fā)送給網(wǎng)卡。所述生產(chǎn)者指針、操作者指針及消費(fèi)者指針為互斥的指針變量。所述數(shù)據(jù)發(fā)送模塊還用于對(duì)已發(fā)送給網(wǎng)絡(luò)處理器的已經(jīng)協(xié)處理器處理的數(shù)據(jù)報(bào)文在所述環(huán)形緩沖隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)進(jìn)行清空。綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是
1)采用異步機(jī)制高速實(shí)現(xiàn)IPSECVPN加解密處理的方法及裝置,采用內(nèi)核線(xiàn)程共享的數(shù)據(jù)接收處理線(xiàn)程(數(shù)據(jù)接收處理模塊)、數(shù)據(jù)加解密處理線(xiàn)程(數(shù)據(jù)加解密處理模塊)、數(shù)據(jù)發(fā)送處理線(xiàn)程(數(shù)據(jù)發(fā)送處理模塊)對(duì)網(wǎng)卡輸入的數(shù)據(jù)進(jìn)行異步處理,操作隊(duì)列的生產(chǎn)者、操作者、消費(fèi)者三個(gè)指針實(shí)現(xiàn)數(shù)據(jù)報(bào)文的互斥、協(xié)同處理,順序協(xié)調(diào)隊(duì)列中數(shù)據(jù)報(bào)文的進(jìn)出以及與加解密協(xié)處理器的通信,加解密協(xié)處理器工作時(shí)收發(fā)網(wǎng)絡(luò)數(shù)據(jù)和其他的數(shù)據(jù)處理工作仍然可以同時(shí)進(jìn)行,從而可以極大地減少數(shù)據(jù)傳輸和同步維持帶來(lái)的開(kāi)銷(xiāo),實(shí)現(xiàn)數(shù)據(jù)報(bào)文的處理率及協(xié)處理器的利用效率的大幅提高;
2)通過(guò)設(shè)置當(dāng)所述生產(chǎn)者指針將數(shù)據(jù)存入環(huán)形緩沖隊(duì)列,所述生產(chǎn)者指針地址加一位不超過(guò)消費(fèi)者指針地址時(shí),數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針將數(shù)據(jù)報(bào)文存入環(huán)形緩沖隊(duì)列緩存區(qū),設(shè)置緩存區(qū)當(dāng)前狀態(tài)為FULL狀態(tài);當(dāng)操作者指針地址加一位不超過(guò)生產(chǎn)者指針地址時(shí),數(shù)據(jù)加解密處理線(xiàn)程經(jīng)操作者指針將環(huán)形緩沖隊(duì)列緩沖區(qū)為FULL狀態(tài)的數(shù)據(jù)交加密協(xié)處理器進(jìn)行加解密處理,完成處理的數(shù)據(jù)報(bào)文經(jīng)操作者指針存回環(huán)形緩沖隊(duì)列并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為DIRTY狀態(tài),當(dāng)消費(fèi)者指針地址加一位不超過(guò)操作者指針地址吋,數(shù)據(jù)發(fā)送處理線(xiàn)程經(jīng)消費(fèi)者指針從環(huán)形緩沖隊(duì)列中獲取已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文交網(wǎng)卡進(jìn)行發(fā)送,并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為EMPTY狀態(tài),以上生產(chǎn)者指針、操作者指針、消費(fèi)者指針?lè)謩e對(duì)應(yīng)與數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程的配合準(zhǔn)確的處理未經(jīng)加密協(xié)處理器處理的數(shù)據(jù),使得處理過(guò)程中隊(duì)環(huán)形緩沖隊(duì)列的處理效率進(jìn)ー步提聞;
3)對(duì)網(wǎng)卡輸入的不同的數(shù)據(jù)報(bào)文處理采用并行處理;
4)在環(huán)形緩沖隊(duì)列中的報(bào)文數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)發(fā)送處理線(xiàn)程處理后對(duì)數(shù)據(jù)報(bào)文的環(huán)形緩沖隊(duì)列緩沖區(qū)進(jìn)行清空,確保下一幀存儲(chǔ)在此數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)的準(zhǔn)確性。
本發(fā)明將通過(guò)例子并參照附圖的方式說(shuō)明,其中
圖I是現(xiàn)有的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文處理模型;
圖2是本發(fā)明網(wǎng)絡(luò)數(shù)據(jù)報(bào)文處理方法的實(shí)現(xiàn)流程 圖3是本發(fā)明網(wǎng)絡(luò)數(shù)據(jù)報(bào)文處理模型;
圖4是本發(fā)明網(wǎng)絡(luò)數(shù)據(jù)報(bào)文處理裝置的結(jié)構(gòu) 圖中41-網(wǎng)卡42-處理系統(tǒng)
43-加解密協(xié)處理器44-中央處理器
421-初始化模塊422數(shù)據(jù)接收處理模塊
423-數(shù)據(jù)發(fā)送處理模塊424-數(shù)據(jù)加解密處理模塊。
具體實(shí)施例方式本說(shuō)明書(shū)中公開(kāi)的所有特征,或公開(kāi)的所有方法或過(guò)程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。本說(shuō)明書(shū)(包括任何附加權(quán)利要求、摘要和附圖)中公開(kāi)的任一特征,除非特別敘述,均可被其他等效或具有類(lèi)似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只是ー系列等效或類(lèi)似特征中的ー個(gè)例子而已。本發(fā)明相關(guān)術(shù)語(yǔ)解釋
生產(chǎn)者及生產(chǎn)者指針?lè)謩e與生產(chǎn)者-消費(fèi)者模型中生產(chǎn)者及生產(chǎn)者指針定義相同。消費(fèi)者及消費(fèi)者指針?lè)謩e與生產(chǎn)者-消費(fèi)者模型中消費(fèi)者及消費(fèi)者指針定義相同。操作者指針在生產(chǎn)者和消費(fèi)者之間對(duì)等待加解密以及完成加解密處理的數(shù)據(jù)報(bào)文進(jìn)行傳遞的指針。FULL狀態(tài)表示該緩沖區(qū)已填入等待加解密處理的數(shù)據(jù)報(bào)文。DIRTY狀態(tài)表示該緩沖區(qū)的數(shù)據(jù)報(bào)文已經(jīng)完成加解密處理,可以發(fā)送。EMPTY狀態(tài)表示該緩沖區(qū)的數(shù)據(jù)報(bào)文已經(jīng)被發(fā)送,可填入新的等待加解密處理的數(shù)據(jù)報(bào)文。數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程異步的方式獨(dú)立エ作,上ー線(xiàn)程的處理結(jié)果存入環(huán)形緩沖隊(duì)列并通知下一線(xiàn)程即可,例如數(shù)據(jù)接收處理線(xiàn)程處理結(jié)果存入環(huán)形緩沖隊(duì)列并通知數(shù)據(jù)加解密處理線(xiàn)程;數(shù)據(jù)加解密處理線(xiàn)程處理結(jié)果存入環(huán)形緩沖隊(duì)列并通知數(shù)據(jù)發(fā)送處理線(xiàn)程;數(shù)據(jù)發(fā)送處理線(xiàn)程處理結(jié)果存入環(huán)形緩沖隊(duì)列并通知數(shù)據(jù)接收處理線(xiàn)程。生產(chǎn)者指針、操作者指針、消費(fèi)者指針進(jìn)行協(xié)同和互斥,通過(guò)內(nèi)核消息互相通知。工作原理本發(fā)明采用異步機(jī)制高速實(shí)現(xiàn)IPSEC VPN加解密處理的方法及裝置,通過(guò)采用環(huán)形緩沖隊(duì)列統(tǒng)一管理網(wǎng)絡(luò)數(shù)據(jù)報(bào)文,并通過(guò)生產(chǎn)者指針、操作者指針、消費(fèi)者指針以及對(duì)應(yīng)的數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)報(bào)文收發(fā)以及加解密處理的并行,從而可以極大地減少數(shù)據(jù)傳輸和同步維持帶來(lái)的開(kāi)銷(xiāo),實(shí)現(xiàn)數(shù)據(jù)報(bào)文的處理率及加解密協(xié)處理器的利用效率的大幅提高。實(shí)施例一一種實(shí)現(xiàn)IPSEC VPN加解密處理的方法,包括步驟
步驟ー網(wǎng)卡中斷發(fā)生時(shí),數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到未經(jīng)加密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針存入環(huán)形緩沖隊(duì)列,并觸發(fā)數(shù)據(jù)加解密處理線(xiàn)程工作;
步驟ニ數(shù)據(jù)加解密處理線(xiàn)程通過(guò)操作者指針從所述環(huán)形緩沖隊(duì)列中獲取數(shù)據(jù)報(bào)文發(fā)送給加解密協(xié)處理器進(jìn)行處理后,在經(jīng)由操作者指針存入環(huán)形緩沖隊(duì)列,并觸發(fā)數(shù)據(jù)發(fā)送處理線(xiàn)程工作;
步驟三數(shù)據(jù)發(fā)送處理線(xiàn)程通過(guò)消費(fèi)者指針從環(huán)形緩沖隊(duì)列獲取數(shù)據(jù)報(bào)文發(fā)送給網(wǎng)
卡;
所述數(shù)據(jù)接受處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程采用異步方式分別對(duì)所述網(wǎng)卡輸入的數(shù)據(jù)報(bào)文進(jìn)行處理后,再通過(guò)網(wǎng)卡輸出;同時(shí)對(duì)網(wǎng)卡輸入的不同的數(shù)據(jù)報(bào)文處理采用并行處理,數(shù)據(jù)接受處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程對(duì)環(huán)形緩沖隊(duì)列共享。實(shí)施例ニ 在實(shí)施例一基礎(chǔ)上,所述步驟一中當(dāng)所述生產(chǎn)者指針將數(shù)據(jù)存入環(huán)形緩沖隊(duì)列,所述生產(chǎn)者指針地址加一位不超過(guò)消費(fèi)者指針地址時(shí),數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針將數(shù)據(jù)報(bào)文存入環(huán)形緩沖隊(duì)列緩存區(qū),設(shè)置緩存區(qū)當(dāng)前狀態(tài)為FULL狀態(tài)。實(shí)施例三在實(shí)施例ニ基礎(chǔ)上,所述步驟ニ中當(dāng)操作者指針地址加一位不超過(guò)生產(chǎn)者指針地址吋,數(shù)據(jù)加解密處理線(xiàn)程經(jīng)操作者指針將環(huán)形緩沖隊(duì)列緩沖區(qū)為FULL狀態(tài)的數(shù)據(jù)交加密協(xié)處理器進(jìn)行加解密處理,完成處理的數(shù)據(jù)報(bào)文經(jīng)操作者指針存回環(huán)形緩沖隊(duì)列并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為DIRTY狀態(tài)。實(shí)施例四,在實(shí)施例三基礎(chǔ)上,所述步驟三中當(dāng)消費(fèi)者指針地址加一位不超過(guò)操作者指針地址時(shí),數(shù)據(jù)發(fā)送處理線(xiàn)程經(jīng)消費(fèi)者指針從環(huán)形緩沖隊(duì)列中獲取已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文交網(wǎng)卡進(jìn)行發(fā)送,并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為EMPTY狀態(tài)。實(shí)施例五,在實(shí)施例基礎(chǔ)上,所述對(duì)已發(fā)送給網(wǎng)卡的已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文在所述環(huán)形緩沖隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)進(jìn)行清空,所述生產(chǎn)者指針、操作者指針、消費(fèi)者指針為互斥、協(xié)同的指針變量,數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程之間進(jìn)行流量控制。實(shí)施例六,在實(shí)施例四或五基礎(chǔ)上,所述觸發(fā)數(shù)據(jù)加解密處理線(xiàn)程工作、觸發(fā)數(shù)據(jù)發(fā)送線(xiàn)程工作中觸發(fā)機(jī)制是異步軟中斷方式,網(wǎng)卡發(fā)生中斷指的是當(dāng)網(wǎng)卡有接收到來(lái)自VPN設(shè)備的未經(jīng)協(xié)處理器處理的數(shù)據(jù)報(bào)文或來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)報(bào)文。實(shí)施例七在實(shí)施例一至六之一基礎(chǔ)上,所述步驟一之前還包括初始化步驟,所述、初始化步驟具體為初始化數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程、生產(chǎn)者指針、操作者指針及消費(fèi)者指針,構(gòu)建環(huán)形緩沖隊(duì)列,啟動(dòng)數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程,所述數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程分別對(duì)應(yīng)生產(chǎn)者指針、操作者指針、消費(fèi)者指針,初始化加解密協(xié)處理器,將生產(chǎn)者指針、操作者指針、消費(fèi)者指針置位,指向環(huán)形隊(duì)列首項(xiàng),隊(duì)列中的所有數(shù)據(jù)狀態(tài)皆置為HMPTY。實(shí)施例八,圖2示出了本發(fā)明實(shí)現(xiàn)IPSEC VPN加解密處理方法的實(shí)現(xiàn)流程,詳述如下
在步驟ー(S201)中,構(gòu)建環(huán)形緩沖隊(duì)列,并為該隊(duì)列配置三個(gè)指針,分別設(shè)為生產(chǎn)者指針、操作者指針、消費(fèi)者指針,同時(shí)啟動(dòng)數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程三個(gè)內(nèi)核線(xiàn)程,所述啟動(dòng)數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù) 據(jù)報(bào)文發(fā)送處理線(xiàn)程分別對(duì)應(yīng)生產(chǎn)者指針、操作者指針、消費(fèi)者指針。加解密協(xié)處理器/網(wǎng)卡初始化吋,預(yù)分配n個(gè)緩沖區(qū),通過(guò)雙向指針將該n個(gè)緩沖區(qū)連接成環(huán)形隊(duì)列,并為該隊(duì)列配置三個(gè)互斥的指針,分別設(shè)為生產(chǎn)者指針、操作者指針、消費(fèi)者指針,同吋,將生產(chǎn)者指針、操作者指針、消費(fèi)者指針置位,指向環(huán)形隊(duì)列首項(xiàng),隊(duì)列中的所有數(shù)據(jù)狀態(tài)皆置為EMPTY。在步驟ニ(S202)中,網(wǎng)卡中斷發(fā)生吋,網(wǎng)卡接收的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針存入環(huán)形緩沖隊(duì)列。當(dāng)網(wǎng)卡有接收到來(lái)自設(shè)備內(nèi)部的未經(jīng)協(xié)處理器處理的數(shù)據(jù)報(bào)文,或來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)幀時(shí),網(wǎng)卡中斷發(fā)生,繼而通知數(shù)據(jù)報(bào)文接收處理線(xiàn)程,將網(wǎng)卡接收的本地?cái)?shù)據(jù)報(bào)文解析后的數(shù)據(jù)報(bào)文在生產(chǎn)者指針的指示下按序存入上述環(huán)形緩沖隊(duì)列,并將隊(duì)列中相應(yīng)數(shù)據(jù)狀態(tài)置為FULL。在步驟三(S203)中,數(shù)據(jù)加解密處理線(xiàn)程經(jīng)操作者指針從環(huán)形緩沖隊(duì)列中獲取數(shù)據(jù)報(bào)文交加解密協(xié)處理器進(jìn)行處理,加解密協(xié)處理器工作時(shí)收發(fā)網(wǎng)絡(luò)數(shù)據(jù)和其他的數(shù)據(jù)處理工作仍然可以同時(shí)進(jìn)行,協(xié)處理器處理完的報(bào)文再經(jīng)操作者指針存入隊(duì)列,并將隊(duì)列中相應(yīng)數(shù)據(jù)狀態(tài)置為DIRTY。在步驟四(S204)中,數(shù)據(jù)發(fā)送處理線(xiàn)程經(jīng)消費(fèi)者指針從隊(duì)列中獲取處理完的數(shù)據(jù)報(bào)文交網(wǎng)卡進(jìn)行發(fā)送?;谏鲜龇椒ǖ木W(wǎng)絡(luò)數(shù)據(jù)報(bào)文處理模型如圖3所示
在本發(fā)明實(shí)施例中,緩沖區(qū)I、緩沖區(qū)2、緩沖區(qū)3、…、緩沖區(qū)n3、…、緩沖區(qū)n2、…、緩沖區(qū)nl、…、緩沖區(qū)n、緩沖區(qū)I依次被連接成環(huán)形緩沖隊(duì)列,緩沖區(qū)I的首地址為隊(duì)列首項(xiàng),初始化時(shí),指針生產(chǎn)者指針、操作者指針、消費(fèi)者指針均指向環(huán)形緩沖隊(duì)列首項(xiàng),環(huán)形緩沖隊(duì)列所有數(shù)據(jù)的初始狀態(tài)皆置為EMPTY,其中生產(chǎn)者指針、操作者指針、消費(fèi)者指針依次通過(guò)環(huán)形緩沖隊(duì)列。網(wǎng)卡中斷發(fā)生時(shí),數(shù)據(jù)接收處理線(xiàn)程在生產(chǎn)者指針的指示下,將數(shù)據(jù)報(bào)文依次存入緩沖區(qū)I、緩沖區(qū)2、……并將其狀態(tài)一一置為FULL ;當(dāng)有一個(gè)或者多個(gè)數(shù)據(jù)報(bào)文完成存入隊(duì)列吋,即可通過(guò)異步軟中斷事件等方式觸發(fā)下ー過(guò)程,即數(shù)據(jù)加解密處理線(xiàn)程在操作者指針的指示下,從緩沖區(qū)I的首個(gè)存儲(chǔ)地址開(kāi)始,逐個(gè)獲取隊(duì)列中的狀態(tài)為FULL的數(shù)據(jù)報(bào)文交加解密協(xié)處理器進(jìn)行相應(yīng)處理,完成處理的數(shù)據(jù)報(bào)文則實(shí)時(shí)地經(jīng)操作者指針存回隊(duì)列井置狀態(tài)為DIRTY ;當(dāng)隊(duì)列中有一個(gè)或者多個(gè)數(shù)據(jù)報(bào)文完成處理時(shí),即可觸發(fā)處理該數(shù)據(jù)報(bào)文的下ー過(guò)程,即數(shù)據(jù)發(fā)送處理線(xiàn)程在消費(fèi)者指針的指示下,從緩沖區(qū)I的首個(gè)存儲(chǔ)地址開(kāi)始,逐個(gè)獲取隊(duì)列中已經(jīng)過(guò)處理即狀態(tài)為DIRTY的數(shù)據(jù)報(bào)文進(jìn)行發(fā)送,同時(shí),對(duì)該數(shù)據(jù)報(bào)文在隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)進(jìn)行清空井置狀態(tài)為EMPTY。在上述過(guò)程中,生產(chǎn)者指針、操作者指針及消費(fèi)者指針沿著環(huán)形隊(duì)列移動(dòng),且操作者指針地址加一位不超過(guò)生產(chǎn)者指針地址,消費(fèi)者指針地址加一位不超過(guò)操作者指針地址,生產(chǎn)者指針加一位不超過(guò)消費(fèi)者指針地址,數(shù)據(jù)接收處理線(xiàn)程只能將數(shù)據(jù)存入狀態(tài)為EMPTY的環(huán)形緩沖隊(duì)列數(shù)據(jù),數(shù)據(jù)加解密處理線(xiàn)程只能對(duì)狀態(tài)為FULL的環(huán)形緩沖隊(duì)列數(shù)據(jù)進(jìn)行操作,數(shù)據(jù)發(fā)送處理線(xiàn)程只能發(fā)送狀態(tài)為DIRTY的環(huán)形緩沖隊(duì)列數(shù)據(jù)。而網(wǎng)卡接收數(shù)據(jù)報(bào)文、加解密協(xié)處理器處理數(shù)據(jù)報(bào)文以及網(wǎng)卡發(fā)送數(shù)據(jù)報(bào)文這三個(gè)過(guò)程在滿(mǎn)足以上條件的前提下則可以并行,在同一時(shí)間處理不同數(shù)據(jù)報(bào)文的不同流程(接收、發(fā)送、加解密),從而形成流水線(xiàn)的處理機(jī)制,各個(gè)過(guò)程之間無(wú)需等待與同步維持,也不需要數(shù)據(jù)傳輸。圖4是本發(fā)明實(shí)現(xiàn)IPSEC VPN加解密處理裝置,其中處理系統(tǒng)42即示出了本發(fā)明 實(shí)現(xiàn)IPSEC VPN加解密處理裝置,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,這些部分可以是軟件、硬件或軟硬件結(jié)合的模塊
實(shí)施例一,一種實(shí)現(xiàn)IPSEC VPN加解密處理的裝置(處理系統(tǒng)42)包括初始化模塊421、數(shù)據(jù)接受處理模塊422、數(shù)據(jù)處理模塊423以及數(shù)據(jù)發(fā)送處理模塊424。初始化模塊421用于構(gòu)建環(huán)形緩沖隊(duì)列,設(shè)置并初始化生產(chǎn)者、操作者及消費(fèi)者指針,啟動(dòng)數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程三個(gè)內(nèi)核線(xiàn)程。其中生產(chǎn)者指針、操作者指針、消費(fèi)者指針依從緩沖區(qū)I、緩沖區(qū)2、緩沖區(qū)3、…、緩沖區(qū)n3、…、緩沖區(qū)n2、…、緩沖區(qū)nl、 、到緩沖區(qū)n,生產(chǎn)者指針、操作者指針、消費(fèi)者指針地址分別依次増加一位,當(dāng)各個(gè)指針地址從緩存區(qū)n的地址加一位后默認(rèn)成為緩存區(qū)I的地址。數(shù)據(jù)接收處理模塊422 (用于接收網(wǎng)卡傳送的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文,將該數(shù)據(jù)報(bào)文存入所述環(huán)形緩沖隊(duì)列)在中央處理器44的信號(hào)啟動(dòng)下,接收網(wǎng)卡41傳送的需經(jīng)加解密協(xié)處理器43處理的數(shù)據(jù)報(bào)文,通過(guò)生產(chǎn)者指針將數(shù)據(jù)報(bào)文按序存入環(huán)形緩沖隊(duì)列,并控制生產(chǎn)者指針不超過(guò)消費(fèi)者指針(生產(chǎn)者指針地址加一位不超過(guò)消費(fèi)者指針地址),置FULL狀態(tài),井向中央處理器44發(fā)送中斷信號(hào),以啟動(dòng)處理該數(shù)據(jù)報(bào)文的數(shù)據(jù)報(bào)文加解密處理模塊。中央處理器44則根據(jù)上述中斷信號(hào)發(fā)送啟動(dòng)信號(hào)至數(shù)據(jù)加解密處理模塊424(用于將所述環(huán)形緩沖隊(duì)列中的數(shù)據(jù)報(bào)文發(fā)送給加解密協(xié)處理器處理,然后將加解密協(xié)處理器處理完的數(shù)據(jù)報(bào)文存回所述環(huán)形緩沖隊(duì)列),由數(shù)據(jù)加解密處理模塊424通過(guò)操作者指針將環(huán)形緩沖隊(duì)列中的數(shù)據(jù)報(bào)文發(fā)送給加解密協(xié)處理器43處理,并將處理完的數(shù)據(jù)報(bào)文再通過(guò)操作者指針存回環(huán)形緩沖隊(duì)列,以及控制操作者指針不超過(guò)生產(chǎn)者指針(操作者指針地址加一位不超過(guò)生產(chǎn)者指針),置DIRTY狀態(tài),并發(fā)送中斷信號(hào)至中央處理器44。數(shù)據(jù)發(fā)送模塊423(數(shù)據(jù)發(fā)送處理模塊,用于將所述環(huán)形緩沖隊(duì)列中已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文發(fā)送給網(wǎng)卡)在中央處理器44的信號(hào)啟動(dòng)下,通過(guò)消費(fèi)者指針將環(huán)形緩沖隊(duì)列中已經(jīng)加解密協(xié)處理器43處理的數(shù)據(jù)報(bào)文發(fā)送給網(wǎng)卡41,以及控制消費(fèi)者指針不超過(guò)操作者指針(消費(fèi)者指針地址加一位不超過(guò)操作者指針地址),井清空隊(duì)列中完成發(fā)送的數(shù)據(jù)緩沖區(qū),置EMPTY狀態(tài)。在本發(fā)明實(shí)施例中,上述數(shù)據(jù)接受處理模塊422、數(shù)據(jù)加解密處理模塊424、數(shù)據(jù)發(fā)送處理模塊423 —旦啟動(dòng)后,各模塊對(duì)數(shù)據(jù)報(bào)文的處理可以并行,在同一時(shí)間處理不同數(shù)據(jù)報(bào)文的不同流程(接收、發(fā)送、加解密),從而形成流水線(xiàn)的處理機(jī)制。本發(fā)明實(shí)施例通過(guò)將現(xiàn)有技術(shù)中的三個(gè)獨(dú)立的數(shù)據(jù)報(bào)文處理隊(duì)列統(tǒng)ー為ー個(gè)環(huán)形隊(duì)列,并通過(guò)操作隊(duì)列的三個(gè)指針(生產(chǎn)者指針、操作者指針、消費(fèi)者指針)和環(huán)形緩沖隊(duì)列數(shù)據(jù)緩沖區(qū)的三個(gè)狀態(tài)(FULL、DIRTY、EMPTY)實(shí)現(xiàn)與網(wǎng)卡和加解密協(xié)處理器間的數(shù)據(jù)高效傳遞,數(shù)據(jù)報(bào)文只在環(huán)形隊(duì)列中維持一份拷貝,不但可以節(jié)省大量的內(nèi)存資源,而且還可以消除現(xiàn)有技術(shù)中因?yàn)轭l繁分配和釋放內(nèi)存資源所帯來(lái)的時(shí)間、內(nèi)存與中央處理器的消耗,并且可以將等待和同步帶來(lái)的時(shí)間延遲和中央處理器的資源消耗減小到最低,同時(shí),利 用指針生產(chǎn)者指針、操作者指針、消費(fèi)者指針之間的互斥以及FULL、DIRTY、EMPTY三個(gè)狀態(tài)之間的遷移可以實(shí)現(xiàn)對(duì)流量的控制,利用三個(gè)內(nèi)核處理線(xiàn)程的并行工作可以實(shí)現(xiàn)快速流水線(xiàn)處理流程,從而使數(shù)據(jù)報(bào)文處理的呑吐率達(dá)到最佳,從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)報(bào)文進(jìn)行快速的安全處理和轉(zhuǎn)發(fā)處理。經(jīng)實(shí)踐檢測(cè),采用本發(fā)明實(shí)施例提供的高速實(shí)現(xiàn)IPSEC VPN加解密處理的方法及系統(tǒng)進(jìn)行優(yōu)化后的IPSEC VPN設(shè)備,數(shù)據(jù)報(bào)文的處理效率可達(dá)到90%以上??梢酝ㄟ^(guò)實(shí)驗(yàn)表格進(jìn)行證明。實(shí)施例ニ在實(shí)施例一基礎(chǔ)上,所述生產(chǎn)者指針、操作者指針及消費(fèi)者指針為互斥的指針變量。實(shí)施例三所述數(shù)據(jù)發(fā)送模塊還用于對(duì)已發(fā)送給網(wǎng)絡(luò)處理器的已經(jīng)協(xié)處理器處理的數(shù)據(jù)報(bào)文在所述環(huán)形緩沖隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)進(jìn)行清空。本發(fā)明并不局限于前述的具體實(shí)施方式
。本發(fā)明擴(kuò)展到任何在本說(shuō)明書(shū)中披露的新特征或任何新的組合,以及披露的任一新的方法或過(guò)程的步驟或任何新的組合。
權(quán)利要求
1.一種實(shí)現(xiàn)IPSEC VPN加解密處理的方法,其特征在于,包括步驟 步驟一網(wǎng)卡中斷發(fā)生時(shí),數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到未經(jīng)加密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針存入環(huán)形緩沖隊(duì)列,并觸發(fā)數(shù)據(jù)加解密處理線(xiàn)程工作; 步驟ニ數(shù)據(jù)加解密處理線(xiàn)程通過(guò)操作者指針從所述環(huán)形緩沖隊(duì)列中獲取數(shù)據(jù)報(bào)文發(fā)送給加解密協(xié)處理器進(jìn)行處理后,在經(jīng)由操作者指針存入環(huán)形緩沖隊(duì)列,并觸發(fā)數(shù)據(jù)發(fā)送處理線(xiàn)程工作; 步驟三數(shù)據(jù)發(fā)送處理線(xiàn)程通過(guò)消費(fèi)者指針從環(huán)形緩沖隊(duì)列獲取數(shù)據(jù)報(bào)文發(fā)送給網(wǎng)卡; 所述數(shù)據(jù)接受處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程采用異步方式分別對(duì)所述網(wǎng)卡輸入的數(shù)據(jù)報(bào)文進(jìn)行處理后,再通過(guò)網(wǎng)卡輸出;同時(shí)對(duì)網(wǎng)卡輸入的不同的數(shù)據(jù)報(bào)文處理采用并行處理,數(shù)據(jù)接受處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程對(duì)環(huán)形緩沖隊(duì)列共享。
2.根據(jù)權(quán)利要求I所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的方法,其特征在于所述步驟一中當(dāng)所述生產(chǎn)者指針將數(shù)據(jù)存入環(huán)形緩沖隊(duì)列,所述生產(chǎn)者指針地址加一位不超過(guò)消費(fèi)者指針地址時(shí),數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針將數(shù)據(jù)報(bào)文存入環(huán)形緩沖隊(duì)列緩存區(qū),設(shè)置緩存區(qū)當(dāng)前狀態(tài)為FULL狀態(tài)。
3.根據(jù)權(quán)利要求2所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的方法,其特征在于所述步驟ニ中當(dāng)操作者指針地址加一位不超過(guò)生產(chǎn)者指針地址時(shí),數(shù)據(jù)加解密處理線(xiàn)程經(jīng)操作者指針將環(huán)形緩沖隊(duì)列緩沖區(qū)為FULL狀態(tài)的數(shù)據(jù)交加密協(xié)處理器進(jìn)行加解密處理,完成處理的數(shù)據(jù)報(bào)文經(jīng)操作者指針存回環(huán)形緩沖隊(duì)列并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為DIRTY狀態(tài)。
4.根據(jù)權(quán)利要求3之一所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的方法,其特征在于所述步驟三中當(dāng)消費(fèi)者指針地址加一位不超過(guò)操作者指針地址時(shí),數(shù)據(jù)發(fā)送處理線(xiàn)程經(jīng)消費(fèi)者指針從環(huán)形緩沖隊(duì)列中獲取已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文交網(wǎng)卡進(jìn)行發(fā)送,并設(shè)置環(huán)形緩沖隊(duì)列緩沖區(qū)當(dāng)前狀態(tài)為EMPTY狀態(tài)。
5.根據(jù)權(quán)利要求4所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的方法,其特征在于所述對(duì)已發(fā)送給網(wǎng)卡的已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文在所述環(huán)形緩沖隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)進(jìn)行清空,所述生產(chǎn)者指針、操作者指針、消費(fèi)者指針為互斥、協(xié)同的指針變量,數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程之間進(jìn)行流量控制。
6.根據(jù)權(quán)利要求4所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的方法,其特征在于所述觸發(fā)數(shù)據(jù)加解密處理線(xiàn)程工作、觸發(fā)數(shù)據(jù)發(fā)送線(xiàn)程工作中觸發(fā)機(jī)制是異步軟中斷方式,網(wǎng)卡發(fā)生中斷指的是當(dāng)網(wǎng)卡有接收到來(lái)自VPN設(shè)備的未經(jīng)協(xié)處理器處理的數(shù)據(jù)報(bào)文或來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)報(bào)文。
7.根據(jù)權(quán)利要求I至6之一所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的方法,其特征在于所述步驟一之前還包括初始化步驟,所述初始化步驟具體為初始化數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程、生產(chǎn)者指針、操作者指針及消費(fèi)者指針,構(gòu)建環(huán)形緩沖隊(duì)列,啟動(dòng)數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程,所述數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程分別對(duì)應(yīng)生產(chǎn)者指針、操作者指針、消費(fèi)者指針,初始化加解密協(xié)處理器,將生產(chǎn)者指針、操作者指針、消費(fèi)者指針置位,指向環(huán)形隊(duì)列首項(xiàng),隊(duì)列中的所有數(shù)據(jù)狀態(tài)皆置為EMPTY。
8.根據(jù)權(quán)利要求I所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的裝置,其特征在于包括 初始化模塊用于構(gòu)建環(huán)形緩沖隊(duì)列,設(shè)置并初始化生產(chǎn)者、操作者及消費(fèi)者指針,啟動(dòng)數(shù)據(jù)接收處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程三個(gè)內(nèi)核線(xiàn)程,其中生產(chǎn)者指針、操作者指針、消費(fèi)者指針依次通過(guò)環(huán)形緩沖隊(duì)列,生產(chǎn)者指針、操作者指針、消費(fèi)者指針地址分別依次増加一位,當(dāng)各個(gè)指針地址從緩存區(qū)n的地址加一位后默認(rèn)成為緩存區(qū)I的地址; 數(shù)據(jù)接收處理模塊,用于接收網(wǎng)卡傳送的未經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文,將該數(shù)據(jù)報(bào)文存入所述環(huán)形緩沖隊(duì)列; 數(shù)據(jù)加解密處理模塊,用于將所述環(huán)形緩沖隊(duì)列中的數(shù)據(jù)報(bào)文發(fā)送給加解密協(xié)處理器處理,然后將加解密協(xié)處理器處理完的數(shù)據(jù)報(bào)文存回所述環(huán)形緩沖隊(duì)列; 數(shù)據(jù)發(fā)送處理模塊,用于將所述環(huán)形緩沖隊(duì)列中已經(jīng)加解密協(xié)處理器處理的數(shù)據(jù)報(bào)文發(fā)送給網(wǎng)卡。
9.根據(jù)權(quán)利要求8所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的裝置,其特征在于所述生產(chǎn)者指針、操作者指針及消費(fèi)者指針為互斥的指針變量。
10.根據(jù)權(quán)利要求9所述的ー種實(shí)現(xiàn)IPSECVPN加解密處理的裝置,其特征在于所述數(shù)據(jù)發(fā)送模塊還用于對(duì)已發(fā)送給網(wǎng)絡(luò)處理器的已經(jīng)協(xié)處理器處理的數(shù)據(jù)報(bào)文在所述環(huán)形緩沖隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)進(jìn)行清空。
全文摘要
本發(fā)明屬于數(shù)據(jù)通信領(lǐng)域,尤其涉及一種采用異步機(jī)制高速實(shí)現(xiàn)IPSEC VPN加解密處理的方法及裝置。本發(fā)明針對(duì)現(xiàn)有技術(shù)的問(wèn)題,提供一種實(shí)現(xiàn)IPSEC VPN加解密處理的方法及裝置,采用三個(gè)內(nèi)核線(xiàn)程共享對(duì)網(wǎng)卡輸入的數(shù)據(jù)進(jìn)行異步處理,同時(shí)幾個(gè)線(xiàn)程(模塊)還可同時(shí)并行工作,從而實(shí)現(xiàn)數(shù)據(jù)報(bào)文的處理率及協(xié)處理器的利用效率的大幅提高。本發(fā)明主要包括數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)加解密處理線(xiàn)程、數(shù)據(jù)發(fā)送處理線(xiàn)程,通過(guò)數(shù)據(jù)接收處理線(xiàn)程將網(wǎng)卡接收到未經(jīng)加密協(xié)處理器處理的數(shù)據(jù)報(bào)文經(jīng)生產(chǎn)者指針存入環(huán)形緩沖隊(duì)列,并觸發(fā)數(shù)據(jù)加解密處理線(xiàn)程工作等完成本設(shè)計(jì),本發(fā)明主要應(yīng)用于IPSEC VPN數(shù)據(jù)處理領(lǐng)域。
文檔編號(hào)H04L12/56GK102780625SQ20121026484
公開(kāi)日2012年11月14日 申請(qǐng)日期2012年7月30日 優(yōu)先權(quán)日2012年7月30日
發(fā)明者羅俊 申請(qǐng)人:成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司