国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

無人機集群SDN 交換機轉發(fā)表的設計與實現*

2023-10-21 12:17:50徐任暉喬廬峰魯銘洋
通信技術 2023年9期
關鍵詞:流表表項關鍵字

張 棟,徐任暉,喬廬峰,續(xù) 欣,魯銘洋

(中國人民解放軍陸軍工程大學,江蘇 南京 210007)

0 引言

無人機集群的發(fā)展越來越迅速,應用范圍不斷擴展。當無人機集群應用于戰(zhàn)場環(huán)境時,其對載荷業(yè)務數據和控制數據傳輸有很高的要求。如圖1 所示,無人機集群戰(zhàn)場環(huán)境包括無線通信、衛(wèi)星通信、延遲容忍網絡等多種通信方式;包括陸地、海上、空中、指揮所等多個作戰(zhàn)單元。多種通信手段需要互聯互通,多個協議之間需要彼此協調。網絡拓撲始終處于變化之中。由于無人機集群是一種由具有移動性的無線設備組成的網絡,拓撲始終處于頻繁變化的狀態(tài),因此無人機集群需要這樣一個軟件架構,使集群能夠自主根據感知情況計算行動資源,動態(tài)完成感知、決策、實施等一系列任務。無人機集群在向分布式、大規(guī)模、智能自治方向發(fā)展,重點需要集群自治、人機組隊、集群感知、集群組網和集群智能[1]這5 種能力。此外,為了有效應對軍事任務需求,無人機集群還要能夠克服固定架構網絡的不足,適應戰(zhàn)場未知多變環(huán)境,因而需要一個開放、可動態(tài)調整的網絡架構。

圖1 無人機集群戰(zhàn)場要素

軟件定義網絡(Soft Design Network,SDN)具有網絡可編程、業(yè)務調度靈活、開放性好、成本低的特點,因此基于SDN 架構的無人機網絡研究日益得到重視。軟件定義網絡的網絡架構由美國斯坦福大學Clean Slate 研究組提出[2],具體如圖2 所示。SDN 設計初衷是為了使硬件標準化,用軟件對所有的設備進行統(tǒng)一控制。通過編程實現對硬件數據轉發(fā)規(guī)則的控制,從而達到對流量進行自由操控的目的。

圖2 SDN 體系結構

現今SDN 主要應用于數據中心業(yè)務。SDN 技術能很好地契合數據中心網絡的集中網絡管理、虛擬機部署和智能遷移、靈活組網多路徑轉發(fā)、虛擬多租戶、云計算基礎設施服務(Infrastructure as a Service,IaaS)等方面的需求,非常適合在數據中心網絡中應用。SDN 處理大容量數據時,其資源管控、隊列調度能力比較強,對功耗不敏感[3]。SDN應用于數據中心時,僅用于處理2 層交換或3 層交換,不能滿足多層交換的需求。如圖3 所示為典型無人機集群網絡,圖中共有3 個無人機網絡,每個無人機網絡都有一個負責人master,master 具有組織協調功能,負責協調各項資源。集群中任何一個無人機都可以充當master。無人機之間、無人機集群之間可能采用不同的網絡協議手段。例如,無人機集群之間采用的是延遲容忍網絡(Delay Tolerance Network,DTN)協議,集群內無人機之間采用無線傳輸控制協議(Transmission Control Protocol,TCP)等協議。

圖3 無人機蜂群

綜上,SDN 應用于無人機網絡需要滿足以下需求:(1)小型化、低功耗、集成度高;(2)滿足大容量數據交換需求;(3)要具有服務質量(Quality of Service,QoS)保證能力。

傳統(tǒng)流表功耗較高,硬件資源消耗較大。查找時,傳統(tǒng)流表采用片內查找的方法,片內資源較少,表項數量不可能做得太大。因此亟須一種新的算法統(tǒng)一設計流表和規(guī)則表,功耗較低,并且能夠處理大容量數據。

本文設計一種流表算法,采用多級流表查找方式。每一級流表關注不同的字段。根據實際應用需求,靈活組合形成不同級的流表。流表級數越高,查找優(yōu)先級越高。例如,最高級的流表關注源IP地址、目的IP 地址、源端口號、目的端口號、服務類型字段,次一級流表關注源IP 地址、目的IP地址和服務類型字段,最低一級流表關注源IP地址、目的IP 地址。將規(guī)則表和流表統(tǒng)一設計,降低資源消耗,同時兼顧靈活性、功耗、查找速度,使其達到平衡狀態(tài),更加適用于大容量查詢的場景。

1 Open Flow 協議

Open Flow 是開放網絡基金會(Open Network Foundation,ONF)給出的SDN 架構中的首個標準協議,用于定義控制器和轉發(fā)設備之間的接口。Open Flow 協議將網絡設備的控制層面和數據層面解耦合實現網絡流量的控制和管理,現已成為SDN最重要的南向接口標準。自從2009 年12 月發(fā)布第一個版本以來,Open Flow 協議已經有多個版本發(fā)布,2014 年8 月發(fā)布最新的1.5 版本。交換機通過Open Flow 協議與控制器進行通信,控制器使用Open Flow 協議下發(fā)指令給網絡設備,它可以添加、更新和刪除網絡設備中流表的表項。交換機通過解析數據包匹配流表中的特定字段,執(zhí)行控制器下發(fā)的后續(xù)操作指令。Open Flow 使用流水線來完成包的匹配工作。在Open Flow v1.0 版本中,還未提出多級流表的概念,整個交換機都只使用一個流表,包含非常多的流表項,每一個流表項的字段均為全匹配域。在后續(xù)的版本中才出現了多級流表的概念。

Open Flow v1.1 版本協議中規(guī)定多級流表。許多硬件廠商受到自己設備原始設計的限制,很難提供足夠的支持,目前普遍支持的只有能力受限的兩級流表,靈活性低。此外,傳統(tǒng)的網絡協議字段大多是5 元組(源IP 地址、目的IP 地址、源端口號、目的端口號、網絡協議),而Open Flow 協議包含更多的協議字段,如圖4 所示,在Open Flow v1.1版本中就包含有數據鏈路層、網絡層、傳輸層在內的12 個協議字段。為了在數據轉發(fā)時提供更豐富、更靈活的規(guī)則,Open Flow v1.5 版本協議包含的字段數量已達40 多個[4]。這些字段數量多、長度不等、匹配方式不同,導致數據包的轉發(fā)速度和存儲效率下降。數據包的轉發(fā)速度決定著Open Flow 交換機的吞吐能力。數據包轉發(fā)速度和存儲效率的降低已經成為Open Flow 交換機提高轉發(fā)性能的瓶頸,因此,設計一個高效的流表匹配算法對SDN 的發(fā)展至關重要。

圖4 Open Flow 協議包頭流表項

2 SDN 交換機硬件結構設計

SDN 交換機和傳統(tǒng)交換機本質上都是根據規(guī)則將接收到的數據進行轉發(fā),區(qū)別在于遵循的規(guī)則標準不同。傳統(tǒng)交換機得到網絡數據后,要對數據包進行解析,之后進行鏈路發(fā)現、地址學習、路由建立、協議控制等一系列步驟,再決定數據轉發(fā)的端口,這大大降低了傳統(tǒng)交換機的工作效率。SDN 交換機將傳統(tǒng)交換機需要完成的復雜的邏輯控制和計算交給控制端完成,交換機只需要執(zhí)行控制端下發(fā)的指令就可以完成轉發(fā)。

本文設計的SDN 交換機結構如圖5 所示,是基于Xlinx ZYNQ-7100系列開發(fā)板(Field Programmable Gate Array,FPGA)實現整體架構。片內包括處理系統(tǒng)(Processing System,PS)側的處理器平臺、可編程邏輯(Programmable Logic,PL)側的邏輯部分。處理器平臺和邏輯部分通過高級可擴展接口(Advanced eXtensible Interface,AXI)與總線連接。片外為雙倍速率同步動態(tài)隨機存儲器(Double Data Rate SDRAM,DDR)和Flash 等存儲載體。邏輯部分包括以太網MAC 控制器接收模塊MAC_RX、以太網MAC 控制器發(fā)送模塊MAC_TX、交換單元、轉發(fā)表(流表)、分組處理單元、輸出隊列管理器、DTN 消息處理引擎和TCP 引擎等。轉發(fā)表通過分組處理單元與交換單元連接。交換單元有一端口,與DTN 消息處理引擎和TCP 引擎連接。DTN 消息處理引擎通過DDR 接口電路與片外DDR3 存儲連接。片外各有一塊DDR3 存儲和Flash 存儲,作為處理器平臺工作的內存和閃存。

圖5 SDN 交換機硬件結構設計

MAC 接收控制器接收上一節(jié)點傳來的數據,并將數據傳遞給后級分組處理單元。分組處理單元將數據幀頭中的關鍵信息,如源IP、目的IP、源端口、目的端口、服務類型等抽取出來,并將這些關鍵信息傳入轉發(fā)表(流表)。轉發(fā)表(流表)收到這些信息后根據優(yōu)先級匹配相應的流表項。如果匹配成功,則將查找結果返回給分組處理單元;如果未匹配成功,則將傳入的信息丟棄。分組處理單元接收到查找結果后,根據結果中的輸出端口映射位圖、數據幀長度及轉發(fā)優(yōu)先級等信息形成該數據幀的本地頭,后由交換單元轉發(fā)至相應的端口。

3 轉發(fā)表(流表)的設計與實現

3.1 設計思路

轉發(fā)表(流表)是SDN 交換機的核心單元。轉發(fā)表(流表)應滿足以下條件:(1)添加表項時,表項信息中帶有優(yōu)先級;(2)優(yōu)先級可以根據業(yè)務需求靈活配置;(3)查找表項時,從優(yōu)先級最高的表項到優(yōu)先級最低的表項依次查找;(4)采取多級流表查找的方式;(5)考慮使用靜態(tài)隨機存儲器(Static Random Access Memory,SRAM)實現查表結構,降低資源消耗,更加適用于大容量查詢的場景。

為滿足以上條件,設計以下算法實現功能。首先采用算法1 實現表項的添加。

算法2 描述了流表表項刪除的過程。刪除流表表項時,首先根據需要刪除的關鍵字clear_key 搜索四桶哈希電路中關鍵字的key 值。若能搜索到,則刪除key 所對應的表項;若不能搜索到,則返回未搜索到信號clear_nak。

算法3 描述了表項查找的過程。查找表項時,首先提取出關鍵信息;其次根據關鍵信息,按照優(yōu)先級由高到低的順序依次匹配表項。如果匹配成功,則輸出查找結果;如果并未匹配成功,則繼續(xù)查找下一優(yōu)先級的表項;如果到最低一級優(yōu)先級仍未匹配成功,則輸出查找結果為全0。

3.2 四桶哈希查找電路

流表項的存儲與查找采用四桶哈希查找電路。哈希查找電路的工作原理是利用哈希函數建立關鍵字到哈希表地址空間的映射,將關鍵字進行哈希散列運算得到哈希值(Hash),并將哈希值作為存儲地址來存儲表項。這種映射是一種壓縮映射,不同的關鍵字可能會產生相同的Hash,從而導致沖突。為了盡可能減少哈希沖突,可以采用哈希多桶技術,這里采用四桶哈希表結構[5]。

四桶哈希技術通過增大哈希表的位寬,使得一個Hash 對應的存儲空間中可以同時存儲4 個關鍵字及其對應的結果信息,從而減少哈希沖突。本設計中的哈希查找電路的關鍵字是目的IP 地址、源IP 地址、源端口、目的端口、服務類型等從幀頭中提取的關鍵信息。本設計中,關鍵字可以根據業(yè)務需要靈活配置,只要關鍵字位數小于或等于128 位即可。輸出結果是流號(flow_id)、輸出端口映射位圖、源MAC、目的MAC 等。同樣的,輸出結果在寫入時也可以根據業(yè)務需要靈活配置,只需要輸出結果位數小于或等于144 位即可。

哈希查找電路實現的功能有表項添加操作、表項刪除操作和表項查找操作。表項添加操作是在Hash 對應的存儲中寫入流表項。哈希查找電路添加表項時,利用哈希函數計算關鍵字key 得到Hash,以Hash 為地址將關鍵字key 及其對應的result 寫入,完成表項添加操作。哈希查找電路查找表項時,根據關鍵字key 值計算出Hash 值,通過Hash 值讀取4 個哈希桶中對應的表項。表項匹配成功,得到相應的查找結果result。哈希查找電路進行刪除操作時,根據關鍵字key 得到Hash 讀取4 個哈希桶中對應的表項,將該表項全部清零,完成表項刪除操作。

3.3 優(yōu)先級劃分標準

整個轉發(fā)電路中,優(yōu)先級劃分的標準是一個關鍵問題。當優(yōu)先級劃分的標準確定后,才能明確各個表項的優(yōu)先級。優(yōu)先級的劃分應該滿足以下條件:(1)添加表項時應該帶入優(yōu)先級;(2)表項查找時,可能會產生多個結果,這時需要通過優(yōu)先級確定輸出結果;(3)查找時先查找優(yōu)先級較高的表項,再查找優(yōu)先級較低的表項;(4)要能夠根據業(yè)務需求靈活設置表項的優(yōu)先級。

綜上,本文設計采用匹配中關鍵信息的多少來劃分優(yōu)先級,即能匹配中的關鍵信息越多優(yōu)先級越高,匹配中的關鍵信息越少優(yōu)先級越低。當添加表項時,關鍵字key 值的高8 位作為優(yōu)先級的數值。

如圖6 所示為包含優(yōu)先級的數據幀結構。添加流表項時,關鍵字key 值高8 位為優(yōu)先級數值,優(yōu)先級越高數值越大。key 值中除需要匹配的數據位外,其余數據位均為0。表項查找時,從數據幀中提取關鍵信息后,組建查找關鍵字se_key。se_key值高8 位為優(yōu)先級數值,se_key 值中除需要匹配查找的數據位外,其余數據位均為0。

圖6 包含優(yōu)先級的數據幀結構

如圖7 所示為查找流程。當數據幀進入查找電路后,經過幀提取,得到不同優(yōu)先級的查找關鍵字se_key_1,se_key_2,…,se_key_n。首先查找優(yōu)先級最高的關鍵字se_key_n。如果能夠查找到,則直接輸出結果;如果不能查找到,則查找優(yōu)先級低一級的關鍵字se_key_n-1。對于關鍵字se_key_n-1,如果能查找到,則輸出查找結果;如果不能查找到,則依次類推,繼續(xù)查找優(yōu)先級低一級的關鍵字。如果最低優(yōu)先級的查找關鍵字se_key_1 也不能被查找到,那么輸出查找結果全0。

圖7 查找流程

4 仿真分析

本文以Xilinx ZYNQ-7100 開發(fā)板為硬件平臺搭建SDN 交換機電路。其轉發(fā)表(流表)算法電路仿真如圖8 至圖12 所示。圖8 和圖9 為表項添加仿真結果。

圖8 表項添加仿真結果

圖9 表項查找仿真結果1

圖8 中共添加4 個流表項,在圖中分別以數字1 到4 標出,標1 處至標4 處的優(yōu)先級依次增大。由cpu_add_ack 信號值為1’b1 可知,4 個表項添加成功。通過add_key 信號可以看到,這4 個表項匹配分別為:表項1 僅匹配目的IP 地址32’hc0_a8_01_01,表項2 僅匹配源IP 地址32’hc0_a8_01_02,表項3匹配目的IP地址32’hc0_a8_01_01和源IP 地址32’hc0_a8_01_01,表項4 匹配目的IP 地址32’hc0_a8_01_01、源IP 地址32’hc0_a8_01_02、協議類型8’h11、源端口16’h99_98 和目的端口16’h99_99。

圖9 給出了表項查找仿真結果。由于數據幀提取后匹配表項的優(yōu)先級由高到低,所以圖9 中se_key 有2 個值,即它匹配中了表項3。表項3 對應的動作action 為從端口3 和端口2 轉發(fā)數據。從圖10 可以看到,數據已經從端口3 和端口2 轉發(fā)出去,表項查找成功。

圖11 為表項刪除仿真結果。clear_key 是表項3對應的關鍵字,刪除的是表項3。由于表項3 刪除,且表項查找時總是由優(yōu)先級高的表項到優(yōu)先級低的表項。因此再次查找時,查找結果應為表項2。表項2 對應的動作action 為從端口3、端口2 和端口1 轉發(fā)。從圖12 可以看到,數據已經從端口3、端口2 和端口1 轉發(fā)出去,表項3 刪除成功。根據表1 所示的資源利用率統(tǒng)計表,查找表(Lookup Table,LUT)資 源 利 用 率 為15.01%,觸 發(fā) 器(Flip-Flop,FF)資源利用率為10.33%,塊狀存儲器(Block Ram,BRAM)資源利用率為39.21%。整體資源消耗率較低。每秒最高支持6×107次查找。

表1 資源利用率統(tǒng)計表

圖11 表項刪除仿真結果1

圖12 表項刪除仿真結果2

5 結語

本文給出了一種針對無人機集群的SDN 交換機的系統(tǒng)設計方案,由數據收發(fā)單元、交換單元、轉發(fā)表(流表)、分組處理單元、輸出隊列管理器、DTN 消息處理引擎和TCP 引擎組成。為滿足多樣化的業(yè)務需求,設計的流表可靈活配置轉發(fā)優(yōu)先級,靈活設置表項關鍵字及其對應的匹配結果,搜索鍵值最高支持128 bit。針對SDN 交換機關鍵電路在Xilinx ZYNQ-7100 平臺開發(fā)板上進行了設計與仿真分析,結果表明,轉發(fā)表(流表)電路可以滿足多樣化業(yè)務需求,并能為不同業(yè)務流提供所需的QoS 保證。

猜你喜歡
流表表項關鍵字
一種改進的TCAM路由表項管理算法及實現
通信技術(2022年5期)2022-06-11 00:47:44
履職盡責求實效 真抓實干勇作為——十個關鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
華人時刊(2022年1期)2022-04-26 13:39:28
基于時序與集合的SDN流表更新策略
基于ARMA模型預測的交換機流表更新算法
成功避開“關鍵字”
基于緩存策略的OpenFlow流表存儲優(yōu)化方案研究
電子測試(2018年21期)2018-11-08 03:09:34
簡析yangUI流表控制
軟件定義網絡中一種兩步式多級流表構建算法
SDN數據中心網絡基于流表項轉換的流表調度優(yōu)化
基于用戶反饋的關系數據庫關鍵字查詢系統(tǒng)
文登市| 泗洪县| 永城市| 西峡县| 章丘市| 大化| 贵定县| 林甸县| 增城市| 关岭| 龙游县| 汉川市| 贵定县| 库车县| 沭阳县| 岳阳县| 四会市| 双流县| 盐津县| 曲靖市| 永胜县| 岑溪市| 仙游县| 东乌珠穆沁旗| 镇平县| 苏州市| 定西市| 澄迈县| 赤壁市| 时尚| 洛阳市| 平顺县| 邛崃市| 阿荣旗| 吉首市| 囊谦县| 天台县| 莲花县| 泗洪县| 武强县| 墨玉县|