一级黄色片免费播放|中国黄色视频播放片|日本三级a|可以直接考播黄片影视免费一级毛片

高級搜索

留言板

尊敬的讀者、作者、審稿人, 關(guān)于本刊的投稿、審稿、編輯和出版的任何問題, 您可以本頁添加留言。我們將盡快給您答復(fù)。謝謝您的支持!

姓名
郵箱
手機(jī)號碼
標(biāo)題
留言內(nèi)容
驗(yàn)證碼

一種面向連接的快速多維包分類算法

張斌 吳浩明

張斌, 吳浩明. 一種面向連接的快速多維包分類算法[J]. 電子與信息學(xué)報(bào), 2020, 42(6): 1526-1533. doi: 10.11999/JEIT190434
引用本文: 張斌, 吳浩明. 一種面向連接的快速多維包分類算法[J]. 電子與信息學(xué)報(bào), 2020, 42(6): 1526-1533. doi: 10.11999/JEIT190434
Bin ZHANG, Haoming WU. A Connection-oriented Fast Multi-dimensional Packet Classification Algorithm[J]. Journal of Electronics & Information Technology, 2020, 42(6): 1526-1533. doi: 10.11999/JEIT190434
Citation: Bin ZHANG, Haoming WU. A Connection-oriented Fast Multi-dimensional Packet Classification Algorithm[J]. Journal of Electronics & Information Technology, 2020, 42(6): 1526-1533. doi: 10.11999/JEIT190434

一種面向連接的快速多維包分類算法

doi: 10.11999/JEIT190434 cstr: 32379.14.JEIT190434
基金項(xiàng)目: 河南省基礎(chǔ)與前沿技術(shù)研究計(jì)劃基金(142300413201),信息工程大學(xué)新興科研方向培育基金(2016604703),信息工程大學(xué)科研項(xiàng)目(2019f3303)
詳細(xì)信息
    作者簡介:

    張斌:男,1969年生,教授、博士生導(dǎo)師,研究方向?yàn)榫W(wǎng)絡(luò)空間安全

    吳浩明:男,1995年生,碩士生,主要研究方向?yàn)榫W(wǎng)絡(luò)流量檢測

    通訊作者:

    吳浩明 wuhaoming0512@126.com

  • 中圖分類號: TN919; TP391

A Connection-oriented Fast Multi-dimensional Packet Classification Algorithm

Funds: The Foundation and Frontier Technology Research Project of Henan Province (142300413201), The New Research Direction Cultivation Fund of Information Engineering University (2016604703), The Research Project of Information Engineering University (2019f3303)
  • 摘要:

    為進(jìn)一步提高聚合位向量(ABV)算法分類數(shù)據(jù)包的速度,該文提出一種面向連接的改進(jìn)ABV(IABV)算法。該算法利用同一連接包分類查找規(guī)則相對一致的特點(diǎn),建立哈希表-規(guī)則庫兩級優(yōu)化查找結(jié)構(gòu),首先通過哈希表查找包分類規(guī)則,若未命中繼續(xù)從規(guī)則庫中查找。利用連接時效性特點(diǎn)設(shè)計(jì)哈希表沖突處理機(jī)制,根據(jù)表項(xiàng)最近命中時間判斷是否進(jìn)行覆寫更新,避免規(guī)則累積導(dǎo)致查找時間增加;其次對ABV算法各維度進(jìn)行等分處理,為各等分區(qū)間建立數(shù)組索引,從而快速縮小向量查找范圍,加快查找規(guī)則庫速度;最后,將規(guī)則中前綴轉(zhuǎn)化為范圍降低輔助查找結(jié)構(gòu)復(fù)雜度,以減少內(nèi)存空間占用量并加快規(guī)則查找速度。實(shí)驗(yàn)結(jié)果表明,將規(guī)則中前綴轉(zhuǎn)化為范圍后能夠有效提升算法性能,相同條件下IABV算法相比ABV算法時間性能有顯著提高。

  • 圖  1  特里樹切分示例

    圖  2  IABV算法流程

    圖  3  BV, ABV和IABV算法內(nèi)存占用量對比

    表  1  IABV算法偽代碼

     輸入:數(shù)據(jù)包Packet, 規(guī)則庫${R_{1,2,···,N}}$
     輸出:數(shù)據(jù)包匹配的規(guī)則Rule
     (1) ${\rm{Axis}}[1,2, ··· ,d]{\rm{ = Project}}({R_{1,2,···,N}})$//將所有規(guī)則$d$個維度分別投影到數(shù)軸上;
     (2) ${\rm{AxisCut}}[1,2,···,d][1,2,···,e]{\rm{ = CutDimension(Axis}}[1,2,···,d],e)$//將各維$e$等分;
     (3) FOR $m{\rm{ }} = {\rm{ }}1$ TO $d$;
     (4)  FOR $n{\rm{ }} = {\rm{ }}1$ TO $e$;
     (5) ${\rm{Array}}[m][n] = {\rm{BuildSearchStructure}}({\rm{AxisCut}}[m][n])$//對各維等分區(qū)間建立相應(yīng)數(shù)據(jù)結(jié)構(gòu)對其內(nèi)的投影區(qū)間進(jìn)行索引,并建立數(shù)組索
       引各維等分區(qū)間上的數(shù)據(jù)結(jié)構(gòu);
     (6) ${\rm{BuildVector(Array}}[m][n],{R_{1,2,···,N}})$//根據(jù)規(guī)則庫中規(guī)則對位向量以及聚合位向量進(jìn)行設(shè)置;
     (7)  END FOR
     (8) END FOR
     (9) ${\rm{Build(HashTable}}[1,2, ··· ,S],t[1,2, ··· ,S],\sigma ,{\rm{clk}})$//建立哈希表與時鐘,對哈希表每個單元設(shè)置最近命中時間${t_j}(j = 1,2,···,S)$,設(shè)置命
       中時間差閾值$\sigma $并開啟時鐘${\rm{clk}}$;
     (10) WHILE PacketArrive()//接收到數(shù)據(jù)包時進(jìn)行操作;
     (11)   ${\rm{Field[1,2,}}···{\rm{,}}d{\rm{] }} = {\rm{ GetField}}\left( {{\rm{Packet}}} \right)$//取出$d$個包頭字段;
     (12)   $j = {\rm{Hash}}\left( {{\rm{Field[1,2,}}···{\rm{,}}d{\rm{]}}} \right)\% \left( {S + 1} \right)$//計(jì)算哈希地址;
     (13)   IF ${\rm{Field[1,2,}}···{\rm{,}}d{\rm{]}} \in {\rm{HashTable[}}j{\rm{]}}$//若哈希表中存儲的規(guī)則與數(shù)據(jù)包匹配,更新命中時間并返回規(guī)則;
     (14)      ${t_j}{\rm{ = clk}}$;
     (15)      RETURN ${\rm{HashTable[}}j{\rm{]}}$;
     (16)   END IF
     (17)   FOR $i{\rm{ }} = {\rm{ }}1$ TO $d$//$d$個維度分別查找向量;
     (18)      ${\rm{Root} }[i]{\rm{ } } = {\rm{ Array} }[i]\left[\left\lceil {{ {e*{\rm{Field} }[i]} }/{ { {\rm{Range} }({\rm{Field} }[i])} } } \right\rceil \right]$//計(jì)算字段值所在的數(shù)組單元,取出子結(jié)構(gòu)根結(jié)點(diǎn);
     (19)      ${\rm{ABV}}[i][1,2, ··· ,\left\lceil {N/L} \right\rceil ],{\rm{BV}}[i][1,2,···,N] = {\rm{FindVector}}({\rm{Root}}[i],{\rm{Field}}[i])$//查找子結(jié)構(gòu),找到位向量與聚合位向量;
     (20)   END FOR
     (21)   $P = {\rm{ABV}}[1]\& ··· \& {\rm{ABV}}[d]$//聚合位向量按位與;
     (22)   FOR $x = 1$ TO $P.{\rm{Length}}$//對$P$中每一位執(zhí)行循環(huán);
     (23)      IF $P[x] = 1$//如果$P$中第$x$位為比特1;
     (24)            ${Q_x} = {\rm{BV}}[1][L \cdot (x - 1) + 1,L \cdot (x - 1) + 2,···,L \cdot x]\& ···\& {\rm{BV}}[d][L \cdot (x - 1) + 1,L \cdot (x - 1) + 2$,
                   $···,L \cdot x]$//取出BV中與x對應(yīng)的$L$位按位與;
     (25)            IF ${Q_x}! = 0$;
     (26)             $c = {Q_x}.{\rm{FirstBitPosition}}(1)$//${Q_x}$中第1個比特1的位置;
     (27)             IF ${\rm{clk} } - {t_j} \ge \sigma $//判斷規(guī)則是否寫入哈希表;
     (28)               ${\rm{HashTable[}}j{\rm{]}} = {R_{L(x - 1) + c}}$;
     (29)               ${t_j} = {\rm{clk}}$;
     (30)             END IF
     (31)             RETURN ${R_{L(x - 1) + c}}$;
     (32)          END IF
     (33)        END IF
     (34)      END FOR
     (35)  RETURN ${\rm{DefaultRule}}$//返回默認(rèn)規(guī)則;
     (36) END WHILE
    下載: 導(dǎo)出CSV

    表  2  算法預(yù)處理時間對比(ms)

    數(shù)據(jù)結(jié)構(gòu)規(guī)則庫規(guī)模
    10 k20 k30 k
    ACLFWIPCACLFWIPCACLFWIPC
    Trie-1BV1174125404249636991069151956985075202435430327
    ABV1192126024523137981105671960685125209298440421
    IABV1237126594556341011112061966245163209871443620
    Trie-2BV12017083251463453661911181004987126026266448
    ABV12627390261313531678281182195043129580270810
    IABV13237536265793834686221187935158131054272014
    Trie-4BV13687182235713973623801057426124120220242206
    ABV13967503243004055645711063466233123834250471
    IABV14277620246674151665761111406301127998255087
    RTreeBV106934481051432072827043799490556598106005
    ABV111735891067532732877544428491057610106186
    IABV113137931109532842920044890499659252107847
    下載: 導(dǎo)出CSV

    表  3  算法內(nèi)存訪問次數(shù)對比

    規(guī)則庫Trie-1Trie-2
    最小內(nèi)存訪問次數(shù)最大內(nèi)存訪問次數(shù)平均內(nèi)存訪問次數(shù)最小內(nèi)存訪問次數(shù)最大內(nèi)存訪問次數(shù)平均內(nèi)存訪問次數(shù)
    BVABVIABVBVABVIABVBVABVIABVBVABVIABVBVABVIABVBVABVIABV
    ACL 10k787851103471466605110484651510714504535798340
    ACL 20k788353273923919152413770465153241891895149811161
    ACL 30k46485463810181014218117788313554606986990215415179
    FW 10k41305292278280145121573027526726126813010653
    FW 20k755753271225622511608621240463953260224822481592605236
    FW 30k755654720285828533045965197473954715285228523031951194
    IPC 10k4348516146586648242447529345159664465480322371
    IPC 20k735953163733735161421989434553149719727159219784
    IPC 30k706454755109210972280386203424654727107810882258365196
    規(guī)則庫Trie-4RTree
    最小內(nèi)存訪問次數(shù)最大內(nèi)存訪問次數(shù)平均內(nèi)存訪問次數(shù)最小內(nèi)存訪問次數(shù)最大內(nèi)存訪問次數(shù)平均內(nèi)存訪問次數(shù)
    BVABVIABVBVABVIABVBVABVIABVBVABVIABVBVABVIABVBVABVIABV
    ACL 10k30355105543944656670362934510544414485677136
    ACL 20k3035532258758831484975630355322687688314869956
    ACL 30k242854590970978214113774323754593973977214512474
    FW 10k2425525525226212298513842526926426013511052
    FW 20k313053255224422471583596234374253270226022491595608236
    FW 30k323054713284828513023943192384254731286628543036957194
    IPC 10k2227515876376497932136839445160465665580922971
    IPC 20k283253142712723158018581414653163732732159720284
    IPC 30k283254713107210842247354192414654733109310912265372197
    下載: 導(dǎo)出CSV
  • SHEN Tong, ZHANG Dafang, XIE Gaogang, et al. Optimizing multi-dimensional packet classification for multi-core systems[J]. Journal of Computer Science and Technology, 2018, 33(5): 1056–1071. doi: 10.1007/s11390-018-1873-9
    BI Xiaan, LUO Xianhao, and SUN Qi. Branch tire packet classification algorithm based on single-linkage clustering[J]. Mathematics and Computers in Simulation, 2019, 155: 78–91. doi: 10.1016/j.matcom.2017.11.003
    亓亞烜, 李軍. 高性能網(wǎng)包分類理論與算法綜述[J]. 計(jì)算機(jī)學(xué)報(bào), 2013, 36(2): 408–421. doi: 10.3724/SP.J.1016.2013.00408

    QI Yaxuan and LI Jun. Theoretical analysis and algorithm design of high-performance packet classification algorithms[J]. Chinese Journal of Computers, 2013, 36(2): 408–421. doi: 10.3724/SP.J.1016.2013.00408
    陳小雨, 陸月明. 基于多維空間動態(tài)劃分與RFC的包分類改進(jìn)算法[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2018, 4(3): 35–41. doi: 10.11959/j.issn.2096-109x.2018024

    CHEN Xiaoyu and LU Yueming. Improved packet classification algorithm based on multidimensional space dynamic division and RFC[J]. Chinese Journal of Network and Information Security, 2018, 4(3): 35–41. doi: 10.11959/j.issn.2096-109x.2018024
    LAKSHMAN T V and STILIADIS D. High-speed policy-based packet forwarding using efficient multi-dimensional range matching[J]. ACM SIGCOMM Computer Communication Review, 1998, 28(14): 203–214. doi: 10.1145/285243.285283
    萬云凱, 嵩天, 劉苗苗, 等. 流量自適應(yīng)的多維度包分類方法研究[J]. 計(jì)算機(jī)學(xué)報(bào), 2017, 40(7): 1543–1555. doi: 10.11897/SP.J.1016.2017.01543

    WAN Yunkai, SONG Tian, LIU Miaomiao, et al. A flow adaptive multi-dimensional packet classification algorithm[J]. Chinese Journal of Computers, 2017, 40(7): 1543–1555. doi: 10.11897/SP.J.1016.2017.01543
    ZHOU Shijie, QU Y R, and PRASANNA V K. Multi-core implementation of decomposition-based packet classification algorithms[J]. The Journal of Supercomputing, 2014, 69(1): 34–42. doi: 10.1007/s11227-014-1205-y
    ABBASI M, TAHOURI R, and RAFIEE M. Enhancing the performance of the aggregated bit vector algorithm in network packet classification using GPU[J]. PeerJ Computer Science, 2019, 5: e185. doi: 10.7717/peerj-cs.185
    BABOESCU F and VARGHESE G. Scalable packet classification[J]. IEEE/ACM Transactions on Networking, 2005, 13(1): 2–14. doi: 10.1109/TNET.2004.842232
    賀亞威, 侯整風(fēng), 吳亮亮. 一種基于位向量流分類算法的改進(jìn)[J]. 合肥工業(yè)大學(xué)學(xué)報(bào): 自然科學(xué)版, 2015, 38(3): 331–335. doi: 10.3969/j.issn.1003-5060.2015.03.009

    HE Yawei, HOU Zhengfeng, and WU Liangliang. An improved flow classification algorithm based on bit vector[J]. Journal of Hefei University of Technology:Natural Science, 2015, 38(3): 331–335. doi: 10.3969/j.issn.1003-5060.2015.03.009
    李林. 防火墻規(guī)則集關(guān)鍵技術(shù)研究[D]. [博士論文], 電子科技大學(xué), 2009.

    LI Lin. Research on key techniques of firewall rule set[D]. [Ph.D. dissertation], University of Electronic Science and Technology of China, 2009.
    CAIDA. The CAIDA UCSD anonymized internet traces 2016[EB/OL]. http://www.caida.org/data/passive/passive_2016_dataset.xml, 2016.
    顏天信, 王永綱, 石江濤, 等. 區(qū)域分割包分類算法的優(yōu)化實(shí)現(xiàn)[J]. 通信學(xué)報(bào), 2004, 25(6): 80–88. doi: 10.3321/j.issn:1000-436X.2004.06.011

    YAN Tianxin, WANG Yonggang, SHI Jiangtao, et al. Optimized implementation of regional partition algorithm for packet classification[J]. Journal of China Institute of Communications, 2004, 25(6): 80–88. doi: 10.3321/j.issn:1000-436X.2004.06.011
    TAYLOR D E and TURNER J S. ClassBench: A packet classification benchmark[C]. Proceedings of the IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies, Miami, USA, 2005: 2068–2079. doi: 10.1109/INFCOM.2005.1498483.
    孫鵬浩, 蘭巨龍, 陸肖元, 等. 一種基于匹配域裁剪的包分類規(guī)則集壓縮方法[J]. 電子與信息學(xué)報(bào), 2017, 39(5): 1185–1192. doi: 10.11999/JEIT160740

    SUN Penghao, LAN Julong, LU Xiaoyuan, et al. Field-trimming compression model for rule set of packet classification[J]. Journal of Electronics &Information Technology, 2017, 39(5): 1185–1192. doi: 10.11999/JEIT160740
  • 加載中
圖(3) / 表(3)
計(jì)量
  • 文章訪問數(shù):  2601
  • HTML全文瀏覽量:  1082
  • PDF下載量:  59
  • 被引次數(shù): 0
出版歷程
  • 收稿日期:  2019-06-13
  • 修回日期:  2020-03-03
  • 網(wǎng)絡(luò)出版日期:  2020-03-27
  • 刊出日期:  2020-06-22

目錄

    /

    返回文章
    返回