亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        無鎖結(jié)構(gòu)在國產(chǎn)防火墻上的應(yīng)用與研究*

        2020-12-23 06:12:52原蓓蓓
        通信技術(shù) 2020年10期
        關(guān)鍵詞:程序方法

        李 雷,焦 哲,原蓓蓓,艾 磊

        (1.中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041;2.成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司,四川 成都 610041)

        0 引言

        隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,傳統(tǒng)的基于內(nèi)核的報文收發(fā)方式造成大量的性能開銷,網(wǎng)絡(luò)傳輸速率很難得到提高。為了實現(xiàn)網(wǎng)絡(luò)的高速傳輸,Intel 設(shè)計了高性能的數(shù)據(jù)包處理框架 DPDK(Data Plane Development Kit)。近年來,通過不斷地對dpdk 技術(shù)進(jìn)行改造,在國產(chǎn)申威處理器平臺上已實現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)的高速轉(zhuǎn)發(fā)[1]。

        隨著國產(chǎn)多核處理器的普遍使用,高并發(fā)數(shù)據(jù)結(jié)構(gòu)變得越來越重要[2]。為了充分發(fā)揮多核處理器的性能,軟件人員必須編寫可擴(kuò)展的并發(fā)程序才能使其在多核環(huán)境下具有高的性能。并發(fā)程序編寫存在一個重要問題,就是多個線程/進(jìn)程對共享資源的同步訪問問題。網(wǎng)絡(luò)安全設(shè)備多核并行協(xié)議棧運(yùn)行過程中,不可避免地要在核間共享數(shù)據(jù),比如:ddos 統(tǒng)計表,nat 轉(zhuǎn)換表,aspf 表等。保證數(shù)據(jù)一致性的通用方法是加鎖,但鎖機(jī)制的引入帶來了數(shù)據(jù)處理的串行化,大大降低了安全設(shè)備的網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能,同時又增加死鎖和數(shù)據(jù)競爭的風(fēng)險。近年來,工程人員開始對無鎖(lockfree)數(shù)據(jù)結(jié)構(gòu)進(jìn)行研究,使用CAS(compare and swap)細(xì)粒度同步原語的無鎖數(shù)據(jù)結(jié)構(gòu)能夠擺脫死鎖和數(shù)據(jù)競爭問題,更重要的是它對多核是可擴(kuò)展的[3]。

        針對以上問題與現(xiàn)狀,結(jié)合對國產(chǎn)處理器平臺的研究與應(yīng)用[4],本文提出了一種無鎖結(jié)構(gòu)在國產(chǎn)防火墻上的應(yīng)用方案。在并行處理的協(xié)議棧間使用無鎖結(jié)構(gòu)進(jìn)行數(shù)據(jù)共享,減少數(shù)據(jù)競爭時的等待時間,從而提高網(wǎng)絡(luò)轉(zhuǎn)發(fā)速率。實驗表明,該方案在小包(64 字節(jié))數(shù)據(jù)轉(zhuǎn)發(fā)時,吞吐率性能比常規(guī)方法提升23.68%。

        1 關(guān)鍵技術(shù)

        程序方法的調(diào)用到執(zhí)行完成需要時間,從某個方法調(diào)用事件的開始到執(zhí)行結(jié)束過程中,當(dāng)這個方法調(diào)用事件開始而執(zhí)行未結(jié)束,稱其調(diào)用是未決的。并發(fā)程序方法的執(zhí)行可以相互重疊,而單線程程序方法的執(zhí)行總是順序無重疊的。在一個程序中,當(dāng)方法的未決調(diào)用能夠延遲其他方法的未決調(diào)用時,我們稱其是阻塞的;相反,當(dāng)方法的未決調(diào)用不會延遲其他方法的未決調(diào)用時,我們稱其是非阻塞的。在一個程序中,一個方法的無限次調(diào)用能夠在有限次內(nèi)完成,我們稱其是無鎖(lockfree)的;一個方法的每次調(diào)用都能在有限次內(nèi)完成,我們稱其是無等待(waitfree)的;一個方法調(diào)用存在著關(guān)于它的操作次數(shù)的確定界限,我們稱其是有界無等待(waitfree bounded)的[3]。無鎖結(jié)構(gòu)實現(xiàn)的方法也是無鎖的,其實現(xiàn)的基礎(chǔ)是CAS,且大多數(shù)國產(chǎn)處理器已硬件實現(xiàn)。CAS 可以保證需要更新的地址在沒有被其他線程或進(jìn)程改動過的情況下安全地寫入新數(shù)據(jù),保證讀寫操作的一致性,不出現(xiàn)臟數(shù)據(jù)。而這個地址內(nèi)存空間也是我們通常在鎖機(jī)制中需要加鎖重點(diǎn)保護(hù)的。

        2 國產(chǎn)防火墻無鎖結(jié)構(gòu)的實現(xiàn)

        2.1 國產(chǎn)防火墻簡介

        基于dpdk 技術(shù)的國產(chǎn)防火墻架構(gòu)如圖1 所示。

        圖1 國產(chǎn)防火墻架構(gòu)

        該防火墻在國產(chǎn)化多核處理器核和國產(chǎn)化多隊列網(wǎng)卡的基礎(chǔ)上,對dpdk 技術(shù)進(jìn)行改造,構(gòu)建一個高速的二層轉(zhuǎn)發(fā)平臺。在dpdk 驅(qū)動上構(gòu)建一個多核并行運(yùn)行的用戶態(tài)協(xié)議棧,各協(xié)議棧與處理器核綁定且獨(dú)立運(yùn)行,并行協(xié)議棧間通過共享數(shù)據(jù)進(jìn)行傳遞信息,運(yùn)用無鎖結(jié)構(gòu)及其操作進(jìn)行數(shù)據(jù)同步,保證一致性。

        2.2 無鎖結(jié)構(gòu)的實現(xiàn)方法

        (1)初始化

        設(shè)備上電啟動過程中,由協(xié)議棧0 所運(yùn)行的線程或進(jìn)程在dpdk 大頁中使用rte_memzone_reserve方法申請共享內(nèi)存,并進(jìn)行初始化。

        (2)共享數(shù)據(jù)的獲取

        協(xié)議棧并行運(yùn)行時,各個協(xié)議棧使用rte_memzone_lookup 方法獲取共享內(nèi)存,再根據(jù)其具體使用的數(shù)據(jù)結(jié)構(gòu)方法獲取所需的數(shù)據(jù)。比如:hash表可通過hash 值獲取。

        (3)共享數(shù)據(jù)的更新

        各個協(xié)議棧在獲取共享內(nèi)存后采用無鎖機(jī)制對共享數(shù)據(jù)進(jìn)行操作。無鎖化機(jī)制的核心原語為CAS,其在大多數(shù)國產(chǎn)處理器中已經(jīng)實現(xiàn)。比如龍芯平臺的CAS 原語實現(xiàn)方法如下:

        在應(yīng)用程序的線程或進(jìn)程中,對64 位共享數(shù)據(jù)的更新方法如下:

        其中A 為被更新的數(shù)據(jù),A*為更新后的數(shù)據(jù)。

        2.3 性能分析

        相比于加鎖的方式,采用硬件原語CAS 實現(xiàn)的無鎖數(shù)據(jù)結(jié)構(gòu)在進(jìn)行操作時,將縮短數(shù)據(jù)競爭時的等待時間,從而提高網(wǎng)絡(luò)轉(zhuǎn)發(fā)速率。在程序運(yùn)行的整個周期中,數(shù)據(jù)競爭等待時間減少,則并行可執(zhí)行部分將變大。著名的阿姆達(dá)爾定律指出:數(shù)據(jù)結(jié)構(gòu)并發(fā)程序的優(yōu)化取決于并發(fā)可執(zhí)行部分占整個程序的比例和并發(fā)線程數(shù),其表達(dá)式如下[5]:

        其中,S為程序加速比,n為并發(fā)線程數(shù),P為并發(fā)可執(zhí)行部分。當(dāng)并發(fā)線程數(shù)n一定時,并發(fā)可執(zhí)行部分P越大,則程序加速比S越大。

        無鎖結(jié)構(gòu)降低了數(shù)據(jù)競爭的等待時間,則增大了程序并發(fā)可執(zhí)行部分,進(jìn)而提高了程序加速比。程序加速比的提高,使并行協(xié)議棧的網(wǎng)絡(luò)處理能力增強(qiáng)。

        3 實驗與分析

        3.1 實驗環(huán)境

        實驗硬件平臺采用8 核龍芯3A3000 處理器,主頻1399MHz,PCIE 接口為4 口、8 隊列SF400T千兆網(wǎng)卡,中標(biāo)麒麟操作系統(tǒng)。

        3.2 吞吐率測試

        采用spirent testcenter 儀表進(jìn)行rfc2544 吞吐率測試。多核并行協(xié)議棧環(huán)境下,核間數(shù)據(jù)競爭,將有鎖機(jī)制與無鎖機(jī)制下的吞吐率進(jìn)行對比。實驗采用dpdk 提供的共享內(nèi)存rte_memzone,dpdk 讀寫鎖rte_rwlock_write_lock,cas64 原語及無鎖方法。實驗分別測試udp 包長為64 字節(jié)、128 字節(jié)、256 字節(jié)、512 字節(jié)、1024 字節(jié)、1280 字節(jié)、1518 字節(jié)時的網(wǎng)絡(luò)吞吐率,其儀表連接關(guān)系如圖2 所示。

        圖2 實驗儀表連接示意圖

        Spirent TestCenter 的PORT1 和PORT2 通過直連網(wǎng)線與國產(chǎn)防火墻的ETH1 和ETH2 相連。

        實驗采用統(tǒng)計UDP 目的端口包數(shù)的方法使共享數(shù)據(jù)產(chǎn)生競爭,處理器核數(shù)為8,端口數(shù)為4 且儀表使用遞增的方式發(fā)包,則理論上同一時刻有2個線程或進(jìn)程競爭一個數(shù)據(jù),此時測得結(jié)果如表1所示:

        表1 吞吐率結(jié)果表

        防火墻在全速轉(zhuǎn)發(fā)的情況下,無鎖結(jié)構(gòu)同步機(jī)制比加鎖結(jié)構(gòu)同步機(jī)制的性能在包長64 字節(jié)時提升23.68%,包長128 字節(jié)時提升22.61%。包長為256、512、1024、1280、1518 時,無鎖結(jié)構(gòu)的同步機(jī)制與加鎖結(jié)構(gòu)的同步機(jī)制轉(zhuǎn)發(fā)速率均達(dá)到限速。

        3.3 數(shù)據(jù)競爭時延測試

        按照圖2 儀表連接方法,儀表以1Gb/s 速度發(fā)送500000 包的同時,防火墻程序記錄下并發(fā)不可執(zhí)行部分(更新共享數(shù)據(jù))所消耗的時間。程序使用CPU 的運(yùn)行周期作為時間單位進(jìn)行統(tǒng)計,將加鎖和無鎖環(huán)境下更新共享數(shù)據(jù)所消耗的時間進(jìn)行對比,其測試結(jié)果如表2 所示。

        表2 時間消耗表

        從實驗結(jié)果可以看出,無鎖環(huán)境更新共享數(shù)據(jù)所消耗的時間短于有鎖環(huán)境,則根據(jù)阿姆達(dá)爾定律可知,多核并行協(xié)議棧并行可執(zhí)行部分大,程序加速比高,有利于網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能的提高。

        4 結(jié)語

        本文在國產(chǎn)化背景下,提出了一種無鎖結(jié)構(gòu)在國產(chǎn)防火墻上的應(yīng)用方案。實驗表明,其提高了防火墻在實際工作中的網(wǎng)絡(luò)吞吐率,且為后續(xù)構(gòu)建國產(chǎn)化高速網(wǎng)絡(luò)安全平臺提供指導(dǎo)。尤其是無鎖化共享數(shù)據(jù)結(jié)構(gòu)的應(yīng)用進(jìn)一步提高了防火墻這類安全設(shè)備的實際網(wǎng)絡(luò)吞吐率。但是,本方案在設(shè)計和實驗過程中并未針對ABA 問題進(jìn)行分析,這是后續(xù)工作中需要研究的要點(diǎn)之一。

        猜你喜歡
        程序方法
        學(xué)習(xí)方法
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        色偷偷久久久精品亚洲| 中国产无码一区二区三区| 国产精品黄色av网站| 日本一区二区三区高清在线视频| 精品免费久久久久久久| 亚洲日韩欧美一区二区三区| 97碰碰碰人妻视频无码| 亚洲女同免费在线观看| 男女猛烈无遮挡免费视频| 国产亚洲av人片在线观看| 日本嗯啊在线观看| 粉嫩人妻91精品视色在线看| 7777色鬼xxxx欧美色妇| 九九久久精品国产| 亚洲国产一区二区三区,| 亚洲一区二区日韩精品在线| 在线成人爽a毛片免费软件| 国产天堂在线观看| 日本福利视频免费久久久| 手机免费在线观看av网址 | 免费 无码 国产在线观看不卡| 亚洲精品一区二区三区日韩| 亚洲 欧美 偷自乱 图片| 国产精品美女久久久久| 亚洲av日韩av一卡二卡| 亚洲精品美女中文字幕久久| 成人网站在线进入爽爽爽| 小12萝8禁在线喷水观看| 国产精品自拍首页在线观看| 亚洲一二三四区免费视频 | 中文字幕亚洲无线码| 免费观看视频在线播放| 激情 一区二区| 丝袜美腿精品福利在线视频| 乱码av麻豆丝袜熟女系列| japanesehd中国产在线看| 国产欧美日韩不卡一区二区三区 | 中文字幕一区二区三区喷水| 天天综合网网欲色| 成人网站免费大全日韩国产| 两个人免费视频大全毛片|