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

網絡路由加速平臺的設計與實現

2018-04-13 08:28:04趙爽李念軍
計算技術與自動化 2018年2期

趙爽 李念軍

摘要:網絡路由加速平臺是一個基于多核處理器的軟件平臺,實現網絡數據報文的快速接收、快速處理、快速輸出轉發。該軟件平臺運行在多核處理器上,采用混合模式,一個core運行Linux操作系統作為控制平面,其余的core運行SE做為數據處理平面。該軟件平臺充分利用了Linux和SE本身所具有的特點,既發揮了Linux系統化管理和調度的優勢,又簡化了代碼的開發結構,提高了數據轉發效率,使得平臺處理得以加速,可以應用于基于多核處理器的路由器、SDN、防火墻和負載均衡等通信產品。

關鍵字:路由加速平臺;Linux模式;SE模式;混合模式

中圖分類號:TP393

文獻標識碼:A

1 引言

隨著網絡技術和計算機通訊技術的飛速發展,人們不僅對網絡應用的多樣性有了新的要求,而且對網絡產品的處理性能也有了新的需求。這就對網絡核心設備——路由器提出了全新的要求。一方面傳輸線路帶寬的增長極大地推動了路由器性能的不斷提升,以滿足通信網絡的高速需求;另一方面,多種業務集成的發展驅動著路由器具備更強的業務處理能力。目前針對網絡數據處理的處理器主要有多核處理器、硬件并行處理器、可編程的硬件處理器[1,2]。其中,軟件平臺在多核處理器上的運行模式決定了軟件實現模式,多核處理器支持三種模式[3],分別是全部Linux模式、全部SE模式和Linux與SE混合模式。

全部Linux模式是將多核處理器完全交給Linux操作系統進行管理,系統SMP支持多核處理器的調度工作[4,5],軟件加速平臺代碼全部在Linux平臺上通過進程的方式完成,表項資源的同步互斥由操作系統保證。上述方式同時存在運行的內核態和用戶態的區別,從內核到用戶態需要進行數據的拷貝。由于操作系統的特殊結構模式,在一定程度上影響了軟件平臺的運行效率。這種模式在中高端網絡路由加速軟件平臺中很少被采用,在處理器核數較少的低端路由器中常被采用。

全部SE模式是讓多核處理器完全運行SE的模式,它是一個輕量級的操作系統,具有高效的運行效率。SE上運行的代碼需要開發者自行完成,表項的同步互斥也由軟件平臺實現,軟件的處理流程由軟件自身控制。但芯片接口和管理接口的數據收發驅動等全部需要軟件平臺維護,這會導致軟件平臺工作量有所增加。

針對上述問題,采用一種Linux與SE混合的模式,該模式讓linux作為管理控制平面,對管理接口進行全面系統化管理,并引導SE在多核處理器上啟動;SE上運行軟件平臺的流程處理代碼,實現數據平面的數據加速轉發,發揮其高效的運行特點。對比上述兩種模式,混合模式具有兩者相同的共性特點,具有與全SE幾乎相當的執行效率,并擁有Linux開源的操作系統對芯片外部設備的統一化管理,選擇混合模式是中高端路由加速平臺最合理選擇。

2 平臺總體設計方案

網絡路由加速平臺運行在多核處理器上[6],并采用混合模式,一個core運行Linux操作系統,其余的core運行SE(多核處理器專用操作方式)做為數據處理平面,在core的分配上[7,8],也可以根據實際應用來調整,可以讓多個core運行Linux操作系統,相應的減少運行SE模式的core數量。

軟件主要分兩個部分,一部分是運行在Linux平面的,主要負責調用命令向SE平面傳遞通道和命令管理,另外一部分是SE環境下運行的數據面相關軟件模塊,本軟件平臺的各開發模塊主要集中在SE下的功能模塊。

從系統結構中可知系統采用的Linux加SE的混合系統架構,充分利用了Linux和SE本身所具有的優勢特點,在發揮了Linux系統化管理和調度的優勢的同時,SE簡化了代碼的開發結構,提高了數據轉發效率,使得平臺處理得以加速。

運行在Linux平面的軟件主要有:控制通道網絡接口管理、接口報文向SE層報文格式轉換、簡單網絡管理命令行、定時統計上報等。

SE環境下運行的模塊主要有:IPv4/IPv6轉發、IPSec、NAT、Tunnel、VLAN、VPN、 組播、ACL、Net-Flow、IPsec、PPPoE/L2TP以及安全模塊等。

Linux平面與SE平面運行在不同的核上,兩者之間的表項通過共享內存的方式獲取[7],表項的實際創建和插刪改的操作由SE完成,表項插刪改的控制命令需要通過發送消息隊列的方式從Linux上發送到SE上。

3 平臺業務流程

對于軟件平臺業務流程有兩個方面:一是從Linux平面來的配置命令下發和表項狀態獲取;二是SE平面對數據報文的接收、處理、輸出的一連串業務處理流程。

3.1 Linux平面業務流程

配置命令從管理以太網接口進入Linux內核態,用戶態通過socket[9,10]從內核態獲取配置命令,如果屬于Linux平面當前需要處理的命令,則直接對通過共享內存[11]讀到的表項進行獲取操作;如果是涉及插刪改一系列寫命令的操作,則需要通過發送消息隊列的方式發送到SE平面。Linux平面同時負責對NetFlow表項數據統計和表項內容上報的工作業務,通過啟用的進程定期對共享內存的表項進行循環輪詢,統計表項數據結構并把統計結果通過socket發送到管理網口到上層,業務處理流程圖如下圖所示:

3.2 SE平面業務流程

數據報文[12]從接口進入SE平面,首先進行報文合法性校驗、剝去報文二層頭部、通過VLAN恢復報文的入接口、判斷報文是否為IP報文還是非IP報文、對于非IP報文分別送入MPLS或PPPoE的處理模塊、對于IP報文分別判斷是否需要進行NetFlow的數據流統計、判斷是否需要進行NAT轉換、判斷是否需要進行IPsec模塊的處理、判斷是否需要進行ACL的處理、對于組播報文進行組播報文模塊的處理、對IP報文分IPv4和IPv6數據報文,分別送兩個不同的協議棧中處理、處理過程中根據是否存在快表,如果存在則快速進行二層分裝進行轉發、如果不存在則進行普通轉發處理流程,并構建快表項、出方向報文先后經過判斷決定是否需要NAT轉換、是否需要進行IPsec處理、是否需要進行ACL的處理、以及是否需要進行NetFlow的數據流統計功能、完成上述處理流程后報文被轉發至輸出接口。

4 關鍵技術設計與實現

4.1 高速流表轉發

路由表在設計時采用兩層的設計結構,簡稱“總表”和“流表”。在多核并行執行環境中,利用處理器的高速緩存,在Cache中申請與CPU核數相等(N)個數的空間來存放流表的空間塊。每個“流表”內路由表項的集合構成了“總表”的一個子集,這些流表在路由初始化后隨著數據流轉發過程逐步建立。處理器的核每次接收到數據包,需要進行路由查找時,先去對應的流表中進行匹配,如果找到,則根據路由信息中的出端口將數據包直接進行轉發;如果匹配不到,則再進入總表中查找,在總表中查找到路由后,將該條路由添加到子表中。

4.2 大容量ACL

大容量ACL的實現方法是將ACL的鏈表存儲結構設成雙向鏈表的方式,建立ACL中各表項之間的結構關系。這里將ACL的表項設計成兩級結構是算法的特殊化處理,為算法的實現提供數據結構支撐。如下圖所示:

多核處理器(Cores)對初次進入的數據流(Pl、P2' - Pj)進行流的劃分,建立流表(Flow tables),同時查找合適的訪問控制列表表項,建立流表與訪問控制列表表項的關聯;其中,多核處理器將接收到的數據流中的數據包(P)分發到各個空閑的核上,核抽取數據包中對應的條件字段進行哈希(Hash)運算,根據哈希值的不同將數據包劃分到不同的流表中,每張流表中可以容納3條Hash沖突的數據流單元(Entry),每個單元(Entry)結構中分別由有效位Valid、數據流條件字段Key、控制訪問列表動作有效位Flag和控制訪問列表動作結構體的指針Act。后續進入的數據流直接從流表表項中獲取訪問控制列表的執行動作。

4.3 多業務的實現

多核上的多業務是指增值業務(防火墻、NAT等)以嵌入的形式存在,數據處理過程中符合相關條件的數據包通過調用相關業務處理模塊的鉤子函數,來實現相關業務的功能。例如二層業務NAT的鉤子函數定義為ipnet_natjnput,當消息進入時首先判斷端口(in/out方向)是否使能NAT,若使能則調用鉤子函數直接進入NAT處理模塊,若未使能則繼續往下處理。流程如下圖所示:

5 實驗測試

實驗在高端路由器上進行,環境基于網絡路由加速平臺,實驗儀表為Spirent Test Center,在路由器上配置相關功能,在儀表上查看數據轉發相關情況。該結果表明網絡路由加速平臺能實現數據快速、高效的處理、轉發和接收。

在儀表上查看數據收發情況,數據全部轉發:

5 結束語

介紹了一種網絡路由加速平臺的實現方法,設計了該系統的總體架構,并對其平面業務流程進行了說明。目前,用戶對網絡通信設備的功能和處理速度的需求不斷變化,怎么合理分配core的數量,發揮其高效的運行特點,以及在該軟件平臺上,靈活擴展軟件功能以最大化地滿足用戶需求,成為下一步研究的重點。

參考文獻

[1]王鵬.基于網絡處理器的高性能路由器轉發面的設計與實現[D].成都:西南交通大學,2011.

[2]朱佳.網絡路由仿真平臺的設計與實現[D].武漢:華中科技大學,2007.

[3]王學龍.嵌入式Linux系統設計與應用[M].北京:清華大學出版,2001.

[4]張修琪.基于Linux多核進程調度的研究[D].成都:電子科技大學,2012

[5]黃道穎,張安琳.Linux系統對SMP并行處理的支持[J].鄭州輕工業學院學報,2001,16 (4):26-30.

[6]葉永春,多核網絡處理器驅動軟件關鍵技術研究[D].西安電子科技大學,2010.

[7] 齊斌.網絡處理器內核體系結構研究[D].西安:西北工業大學,2004.

[8]張宏科,蘇偉,武勇.網絡處理器原理與技術[M].北京郵電大學出版社,2004.

[9]王楓,羅家融.Linux下多線程Socket通訊的研究與應用[J].計算機工程與應用,2004,16:106-109.

[10]郭東升,田秀華.Linux環境下基于Socket的網絡通信[J].軟件導刊,2009,8(1):116-118.

[11]沈劍光,淺析Linux中的共享內存機制[J].中國科技信息,2006,15:146-149.

[12]王海濤,田暢,鄭少仁.路由器并行交換體系結構的研究[J].數據通信,2001,7 (3):4-7.

主站蜘蛛池模板: 亚洲天堂2014| AⅤ色综合久久天堂AV色综合| 久久综合色天堂av| 国产精品污视频| 欧洲成人免费视频| 色综合久久久久8天国| 国产成人精品免费视频大全五级| 亚洲精品中文字幕无乱码| 粗大猛烈进出高潮视频无码| 国产午夜一级淫片| 亚洲人成网站在线播放2019| 思思热在线视频精品| 久久综合丝袜长腿丝袜| 日韩中文无码av超清| 国产亚洲精| 日韩欧美中文在线| 国产呦精品一区二区三区网站| 男女性色大片免费网站| 91精选国产大片| 国产91视频免费观看| 国产精品成| 亚洲精品国产乱码不卡| 狠狠色噜噜狠狠狠狠色综合久| 丁香婷婷在线视频| 人禽伦免费交视频网页播放| 综合网天天| 91成人精品视频| 国产亚洲欧美在线中文bt天堂| 美女裸体18禁网站| 欧美日韩动态图| 欧美专区在线观看| 97国产精品视频人人做人人爱| 污网站免费在线观看| 人妻中文字幕无码久久一区| 77777亚洲午夜久久多人| 91久久夜色精品国产网站| 色呦呦手机在线精品| 一本色道久久88| 狼友视频一区二区三区| 五月六月伊人狠狠丁香网| 欧美不卡在线视频| 国产第八页| 欧美日一级片| 女人18毛片一级毛片在线| 亚洲日韩国产精品无码专区| 东京热av无码电影一区二区| 欧美在线黄| 香蕉视频在线观看www| 国产精品亚洲天堂| 在线观看精品国产入口| 不卡午夜视频| 日韩欧美色综合| 亚洲综合日韩精品| 亚洲人成人伊人成综合网无码| 最新午夜男女福利片视频| 青青青国产视频| 成人在线亚洲| 亚洲国产日韩欧美在线| 久久综合结合久久狠狠狠97色| 97久久超碰极品视觉盛宴| 国禁国产you女视频网站| 中文国产成人久久精品小说| 欧美日韩综合网| 精品久久人人爽人人玩人人妻| 蜜桃视频一区| 精品国产一区91在线| 国产在线98福利播放视频免费| 永久免费av网站可以直接看的 | 国产va在线| 国产精品一线天| 亚洲一级毛片| 欧美色亚洲| 亚洲swag精品自拍一区| 国国产a国产片免费麻豆| 亚洲精品777| 一级毛片免费观看久| 精品撒尿视频一区二区三区| 欧美a在线视频| 欧美高清日韩| 国产福利大秀91| 国产成人高清精品免费软件| 国产精品黑色丝袜的老师|