999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件可編程的FPGA網絡測量引擎技術實現

2021-01-08 02:25:58晏子杰王京梅
電子科技 2021年2期
關鍵詞:引擎指令規則

晏子杰,王京梅,陳 卓,劉 宇

(電子科技大學 電子科學與工程學院,四川 成都 610054)

互聯網技術的快速發展和網絡流量的高速增長使得網絡業務流的種類越來越豐富,網絡規模和復雜性也越來越高[1]。其中,基于IP(Internet Protocol)的網絡更是極大地影響了人們的生活[2-3]。網絡流量作為網絡運行狀態的首要參考,監聽、分析和研究網絡流量的數據信息是網絡運營和維護的重要環節[4]。通過對IP網絡流量的有效測量,獲得準確的網絡性能特征參數,為網絡運營商有效分配網絡帶寬及更加合理地利用網絡資源提供了建設性意見。

傳統網絡流量測量方法主要有兩種:基于硬件的測量方法和基于通用PC(Personal Computer)平臺的測量方法[5]。針對基于硬件的測量方法通常采用Cisco公司提出的NetFlow技術,利用包交換芯片對IP數據流進行轉發并同步進行簡單的測量與統計[6]。由于該方案不要求對從每個接口接收到的每個數據包進行處理,因此需要設定合適的采樣率。在這樣的采樣方式下,設備的設置的采樣率很大程度上決定了流量測量的準確性[7-9],因此無法對網絡流做到精細化測量。基于通用PC平臺的測量方法是利用計算機網卡實現網絡數據幀的截取,然后進一步分析,例如Sniffer、Wireshark、NetPeeker等[10]。但是,在高速海量的網絡流量下,網絡業務種類越來越豐富,傳統的軟件實現流量監控方法必然會給處理器帶來額外的資源開銷[11]。此外,由于處理器速度和串行執行等原因的限制,也使其遠遠無法滿足當今網絡發展的需求。

鑒于上述情況,本文提出了一種軟件可編程的FPGA(Field Programmable Gate Array)網絡測量引擎技術實現方案。該方案既能解決采用NetFlow方案中無法對網絡流做到精細化測量的問題,又能解決傳統基于通用PC平臺的測量方法帶來的資源開銷較大及無法適配當今高速網絡鏈路環境的問題。

1 系統總體設計

本研究設計了一種軟件可編程的FPGA網絡測量引擎技術實現方案,該方案可應用于分布式多點測量體系。數據采集點分布在網絡中的各個節點,測量控制器用于將輸入的自定義匹配規則編譯成自定義指令集封裝發送至數據采集點,并接收由數據采集點上報的數據幀,總體架構如圖1所示。

圖1 系統總體架構圖Figure 1. Architecture diagram of overall system

數據采集點由MAC(Media Access Control)控制邏輯和規則過濾引擎構成,其中MAC控制邏輯用于實現交換機與測量目標之間的雙向通路以及數據采集點與測量控制器之間的通信[12-13]。所述規則過濾引擎負責以流水線的方式處理由測量控制器下發的指令集[14-16]。當指令集執行完畢且指定結果寄存器的值發生改變時,認定交換機與計算機之間交互的當前數據幀與自定義規則相匹配,并根據不同的動作對當前數據幀進行過濾,或將其字節數信息通過MAC控制邏輯上報給測量控制器。數據采集點的控制電路在FPGA器件上綜合實現,其整體框圖如圖2所示。

圖2 數據采集點整體框圖Figure 2.Overall block diagram of data collection point

2 系統實現方案

2.1 規則過濾引擎的實現

規則過濾引擎所支持的指令均采用32位固定長度,將每一條指令的處理過程拆分成取指、譯碼、執行、寫回4個階段。每個階段由專門的硬件單元構成,采用多個硬件單元以流水線的方式并行處理多條指令。圖3所示為規則過濾引擎的簡單示意圖,其實際構造比圖示復雜。

圖3 規則過濾引擎示意圖Figure 3. Schematic diagram of rule filter engine

取指階段負責確定下一條待讀取指令的地址PC_NEXT,并將每個時鐘周期的上升沿作為取指地址傳遞給指令存儲器。由于需要支持跳轉類指令,因此下一條指令的地址有可能是轉移地址1(PC+1),也可能是跳轉類指令指定的轉移地址。根據不同的跳轉類指令,轉移地址又有兩個不同的來源,分別是無條件跳轉指令J的轉移地址2、條件跳轉類指令BEQ和BNE的轉移地址3。所以用來選取PC_NEXT的多路選擇器會有3個輸入地址,在選擇信號JUMP_SEL的控制下選擇正確的地址。

譯碼階段由3個模塊組成,分別是寄存器堆、譯碼控制單元和跳轉條件判斷模塊。寄存器堆由64個16位的寄存器組成。值得一提的是,流經雙向以太網通路數據幀的五元組信息將會分別被記錄到該模塊中的指定寄存器中。該模塊包含了兩組讀端口和一組寫端口,負責提供指令處理過程中所需的操作數以及保存指令執行結果。所述譯碼控制單元負責根據指令的指定字段以及條件判斷模塊輸出的EQUAL信號進行識別,產生相應的控制信號,包括內部操作碼、JUMP_SEL信號以及寄存器堆的讀使能信號和寫使能信號。讀使能信號用于判斷當前指令所需的源操作數是否需要從寄存器堆中讀取,相應地,寫使能信號則用于判斷當前指令的運算結果是否需要寫入寄存器堆。

執行階段由一個算術邏輯運算單元(Arithmetic and Logic Unit,ALU)構成,在譯碼階段給出的內部操作碼的作用下,對譯碼階段傳遞過來的兩個源操作數進行運算并得到結果。

寫回階段負責將運算結果寫入寄存器堆中的目的寄存器。規則過濾引擎處理指令的狀態轉換圖如圖4所示,為其設計的指令集如表1所示。

圖4 指令處理狀態轉換圖Figure 4. State transition diagram of instruction processing

表1 規則過濾引擎指令集

2.2 規則轉譯器的實現

規則轉譯器可實現將輸入的自定義匹配規則進行預處理后轉譯成引擎可執行的指令的功能。匹配對象包括源IP地址、源端口、目的IP地址和目的端口,支持的操作符有“-”和“|”操作符,匹配成功后對應的動作可選擇字節計數或過濾。其中,“-”操作符執行的是范圍匹配,而“|”操作符則表示“或”操作。例如輸入規則“180-196|225”,其表示判斷匹配對象是否為180~196范圍內任一數值或者是否為225。需要說明的是, IP規則匹配的是IP地址和端口,以“-”字符進行區分。針對IP地址的匹配在規則輸入界面表現為4組以“.”字符分隔的形式,對應32位二進制數的IP地址。規則輸入界面如圖5所示。

圖5 規則輸入界面示意圖Figure 5. Schematic diagram of rule input interface

規則輸入完畢后開始對其進行預處理的操作。這里以圖5所示的源IP規則為例,由于其規則格式為part1.part2.part3.part4:part5的形式。因此,首先使用Java提供的String.split(String regex)函數以“:”字符為參數將規則拆分成源IP地址part1.part2.part3.part4和源端口part5兩部分。針對源IP地址以“\.” (“.”字符在正則表達式中為特殊符號需要轉義)為參數繼續切分成part1、part2、 part3和part4四部分。此時,規則已經被解析成part1、part2、part3、part4和part5五個獨立的字符串,接下來開始對每個part進行進一步解析,將字符串型的part轉換成變量型的part,每個變量型的part都包含了range、simple兩個list和target_reg、temp_reg、zero_reg共3個字符串變量。基本處理策略如下:對于每個字符串型的part,遇到“\d+ - \d+”形式的字符串就將其放入range型list中,并標識出最大值和最小值,否則將其放入simple型list里。分類完畢后,由于每個字符串型part針對的匹配對象不同,所以接下來需要對其寄存器組進行不同的賦值。具體值與規則過濾引擎中寄存器堆模塊的設計相互約束。

經預處理后的生成的變量型part都包含有上述5個類型,此時開始進行生成指令的準備工作:將所有變量型的part放入一個數組中,進行下標加1比較是否小于整個數組長度的操作。該過程用來確定是否存在下一個變量型part,若存在,則判斷其 range型List是否為空;若不為空,那么下一part的轉譯將從range型List開始。

生成指令的準備工作完成后開始對指令進行轉譯。首先查詢當前變量型part中simple型List是否為空,若為空,則完成當前part關于range型List的轉譯工作后會直接跳轉到下一part進行轉譯,以此類推,即可完成對輸入規則的所有遍歷。生成的每一條指令包含有指令助記符、當前指令的標簽、指定寄存器地址和立即數四組變量,轉譯指令全部生成完畢后將其放入一個新的List中,采用后續遍歷的方法對每條指令的標簽進行替換。至此,完成了整個規則轉譯器的實現過程。

3 系統工作流程

首先在測量控制器上的規則轉譯界面輸入自定義的匹配規則和對應的動作,每個匹配對象都可以轉移條件加上操作符的形式輸入實現精確匹配或范圍匹配。將輸入的自定義規則編譯成自定義的指令集,根據以太網802.3協議標準和IP/UDP協議封裝發送至數據采集點。

數據采集點中的MAC控制邏輯對接收到測量控制器下發的數據幀進行解幀操作,將封裝的指令剝離出來,以每32位二進制數為一個地址單元存放至規則過濾引擎的指令寄存器中。當來自雙向以太網通路的控制信號start_begin拉高,說明當前有數據幀流經雙向以太網通路且當前數據幀的五元組信息已被剝離出來存入規則過濾引擎的寄存器堆中,此時規則過濾引擎開始工作。

規則過濾引擎以流水線的方式對指令進行取指、譯碼、執行、寫回操作,當執行完STOP指令后,判斷寄存器堆中的結果寄存器的值是否發生改變。若發生變化則根據對應動作的不同,相應的執行過濾當前流經以太網通路的數據幀或是啟動計數信息數據幀的發送(其中包含了在雙向以太網通路中符合匹配規則數據幀的字節數信息),上報給測量控制器。從而完成了一種軟件可編程的FPGA網絡測量引擎技術的實現。

4 結果驗證

在動作為字節計數的條件下向規則輸入界面輸入“源IP:(180-196|225).(156|168).(0).(1)”實現對源IP地址的匹配,其中(180-196|225)用來匹配流經雙向以太網通路的數據幀的源IP地址的第0個字節是否為180~196范圍內任一數值或者是否為225;(156|168)則用來匹配源IP地址的第1個Byte的數值是否為156或168,其他以此類推。測量控制器通過對規則的編譯,形成數據采集點中規則過濾引擎可執行的指令,如圖6所示。值得注意的是,若規則匹配成功將會執行第34條指令(將第31個寄存器的值置1),否則執行第36條指令(空指令),即不執行任何操作。

圖6 編譯完成的指令示意圖Figure 6. Schematic diagram of compiled instructions

其中數據采集點的實現基于Xilinx Artix7系列FPGA設計完成。將MAC控制邏輯和規則過濾引擎采用一個頂層文件封裝,在一個多網口外設的開發板平臺上進行驗證。實驗平臺如圖7所示。

圖7 實驗平臺Figure 7. Experimental platform

當MAC控制邏輯接收完來自測量控制器下發的指令集并將其存入指令存儲器后,依次往雙向以太網通路中注入源IP地址為192.168.0.1,總字節數分別為86、87、88和89的數據幀。圖8所示為采用Wireshark抓包軟件抓取測量控制器接收到的數據幀(封裝有字節數的信息如圖箭頭所示),其中56、57、58和59數制為十六進制,分別對應十進制數86、87、88和89。測試結果表明,所設計的系統能正確接收并處理由測量控制器下發的自定義指令集,從而實現對不同網絡流進行測量的功能。

圖8 Wireshark抓包示意圖Figure 8. Capture package diagram of Wireshark

5 結束語

文中描述了一種基于FPGA的可配置網絡流量測量技術實現方案,并且通過Wireshark抓包軟件驗證了系統的正確性以及方案的可行性,為實現網絡流量測量提供了一種簡單可靠的設計。本設計只完成了基于UDP/IP協議的測量功能,后續可以考慮將更多功能集成到性能日益強大的FPGA內部,例如TCP/IP的硬件實現、多核規則過濾引擎的實現等,其實現方案還需要進一步驗證。

猜你喜歡
引擎指令規則
聽我指令:大催眠術
撐竿跳規則的制定
數獨的規則和演變
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
TPP反腐敗規則對我國的啟示
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發
主站蜘蛛池模板: 91破解版在线亚洲| 最新亚洲人成无码网站欣赏网| 999国产精品永久免费视频精品久久 | 四虎永久在线精品国产免费| 精品国产成人高清在线| 国产欧美日韩va另类在线播放| 国产爽爽视频| 亚洲热线99精品视频| 午夜a级毛片| 国产日产欧美精品| 亚洲国产欧美中日韩成人综合视频| 亚洲成人网在线观看| 97无码免费人妻超级碰碰碰| 天天做天天爱天天爽综合区| 97影院午夜在线观看视频| 国产成人精品综合| 手机精品视频在线观看免费| 日本一区高清| 亚洲欧美不卡中文字幕| 亚洲三级电影在线播放| 色综合久久88色综合天天提莫| www.日韩三级| 成人毛片免费观看| 国产欧美日韩资源在线观看| 亚洲av无码成人专区| 国产福利微拍精品一区二区| 97精品久久久大香线焦| 国产视频资源在线观看| 天堂成人在线| 伊在人亞洲香蕉精品區| 国产精品吹潮在线观看中文| 亚洲欧美人成电影在线观看| a级毛片一区二区免费视频| 国产男人的天堂| 国产经典在线观看一区| www.99在线观看| 精品剧情v国产在线观看| 91精品国产情侣高潮露脸| 亚洲国产系列| 五月天丁香婷婷综合久久| 最新国产网站| 亚洲成人黄色在线观看| 国产女人水多毛片18| 色播五月婷婷| 伊人国产无码高清视频| 成人国内精品久久久久影院| 无码在线激情片| av尤物免费在线观看| 精品国产aⅴ一区二区三区| 亚洲色中色| 免费欧美一级| 亚洲成aⅴ人片在线影院八| 女人18毛片水真多国产| 毛片免费高清免费| 又大又硬又爽免费视频| 欧美亚洲一区二区三区在线| 国产精品无码AV片在线观看播放| 国产精品一区二区在线播放| 免费 国产 无码久久久| 国产精品专区第一页在线观看| 伊人久久福利中文字幕| 国产欧美综合在线观看第七页| 91 九色视频丝袜| 亚洲日本一本dvd高清| 88av在线播放| 欧美精品成人一区二区视频一| 香蕉色综合| 四虎精品黑人视频| 国产成人盗摄精品| 在线观看无码av免费不卡网站| 国产久操视频| 欧美日本二区| 亚洲香蕉在线| 高清久久精品亚洲日韩Av| 欧美午夜在线视频| 国产精品成人第一区| 亚洲美女高潮久久久久久久| AV网站中文| 亚洲综合日韩精品| 青青青国产视频手机| 久久永久视频| 国产无人区一区二区三区|