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

?

基于VPP的虛擬路由器數(shù)據(jù)平面加速方法①

2017-10-20 03:09張宇巍楊燕寧
關(guān)鍵詞:網(wǎng)卡內(nèi)核報(bào)文

張宇巍,曾 一,楊燕寧

(重慶大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,重慶 400000)

基于VPP的虛擬路由器數(shù)據(jù)平面加速方法①

張宇巍,曾 一,楊燕寧

(重慶大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,重慶 400000)

本文提出了一種使用VPP對(duì)虛擬路由器數(shù)據(jù)平面加速的方法,此方法將數(shù)據(jù)平面與控制平面分開,然后將數(shù)據(jù)平面的轉(zhuǎn)發(fā)工作轉(zhuǎn)移到Linux用戶空間下的VPP上面,并通過監(jiān)聽控制平面信息,實(shí)現(xiàn)數(shù)據(jù)平面路由表的更新.通過此種方法,可消除虛擬路由器在報(bào)文轉(zhuǎn)發(fā)速率上的瓶頸,使得使用標(biāo)準(zhǔn)x86平臺(tái)服務(wù)器替代專用網(wǎng)絡(luò)設(shè)備成為可能,從一定程度上促進(jìn)了網(wǎng)絡(luò)功能虛擬化的發(fā)展,使得網(wǎng)絡(luò)資源更加具有彈性,易于管理.

虛擬路由器; 網(wǎng)絡(luò)功能虛擬化; 計(jì)算機(jī)網(wǎng)絡(luò); VPP

1 引言

在過去的十幾年里,互聯(lián)網(wǎng)已經(jīng)成為整個(gè)社會(huì)的基本支柱之一,伴隨著數(shù)據(jù)中心與日俱增的數(shù)據(jù)流量,傳統(tǒng)互聯(lián)網(wǎng)架構(gòu)已經(jīng)難以滿足各大互聯(lián)網(wǎng)公司數(shù)據(jù)中心的基本需求,所以業(yè)界對(duì)互聯(lián)網(wǎng)架構(gòu)進(jìn)行了更深入的研究,但互聯(lián)網(wǎng)在應(yīng)對(duì)安全性、移動(dòng)性和服務(wù)質(zhì)量等方面的挑戰(zhàn)時(shí),采用修補(bǔ)解決的方式阻礙了創(chuàng)新型網(wǎng)絡(luò)架構(gòu)的部署和評(píng)估,無法有效解決互聯(lián)網(wǎng)本身固有的問題[1].目前的趨勢(shì)指出,一個(gè)靈活的,創(chuàng)新的網(wǎng)絡(luò)架構(gòu)才是符合現(xiàn)實(shí)需求的[2].對(duì)此,各種新型的網(wǎng)絡(luò)結(jié)構(gòu)及對(duì)現(xiàn)有網(wǎng)絡(luò)的改進(jìn)方法被提了出來,其中軟件定義網(wǎng)絡(luò) (Software define network)及網(wǎng)絡(luò)功能虛擬化(Network function virtualization)無疑是最熱門的話題之一.SDN將傳統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)劃分為數(shù)據(jù)平面和控制平面,其中,數(shù)據(jù)平面是負(fù)責(zé)網(wǎng)絡(luò)內(nèi)容的轉(zhuǎn)發(fā)即網(wǎng)絡(luò)中的主要流量,報(bào)文內(nèi)容可能是視頻流,即時(shí)通信信息等,控制平面轉(zhuǎn)發(fā)的內(nèi)容則是路由信息等網(wǎng)絡(luò)控制報(bào)文,例如BGP,RIP等路由協(xié)議報(bào)文,目的是為設(shè)備維護(hù)和更新路由表.SDN網(wǎng)絡(luò)中的路由器只負(fù)責(zé)數(shù)據(jù)流量的轉(zhuǎn)發(fā),將控制平面交給中央控制器負(fù)責(zé),中央控制器通過下發(fā)流表的方式對(duì)路由器進(jìn)行控制.傳統(tǒng)的網(wǎng)絡(luò)設(shè)備不僅價(jià)格昂貴,而且封閉性較強(qiáng),用戶只能以各大網(wǎng)絡(luò)設(shè)備商允許的方式對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行配置和使用,這無疑不利于互聯(lián)網(wǎng)的發(fā)展,NFV技術(shù)顛覆了傳統(tǒng)電信網(wǎng)絡(luò)封閉專用的思想,同時(shí)引入了資源彈性管理的思想,將各種網(wǎng)絡(luò)功能通過軟件定義的方式,結(jié)合虛擬化的思想,運(yùn)行于通用服務(wù)器之上.相較于專用網(wǎng)絡(luò)設(shè)備,通用服務(wù)器有著價(jià)格相對(duì)低廉,開放性較強(qiáng)及可靈活定制的優(yōu)點(diǎn).

路由功能是整個(gè)互聯(lián)網(wǎng)的基礎(chǔ)骨架結(jié)構(gòu),所以,隨著NFV的發(fā)展,路由功能的虛擬化越來越被重視起來.各種虛擬路由器被發(fā)布出來,例如Quagga,RouterOS等.同時(shí),伴隨著虛擬化技術(shù)的發(fā)展,使得多臺(tái)虛擬路由器可以同時(shí)運(yùn)行在一臺(tái)主機(jī)之上,每一臺(tái)虛擬路由器邏輯上都是獨(dú)立的,可以滿足不同的應(yīng)用需求[3].將不同路由器運(yùn)行于同一個(gè)物理平臺(tái)上可以使每個(gè)虛擬路由器運(yùn)行于不同的網(wǎng)絡(luò)環(huán)境中,有效的節(jié)省了硬件資源[4-6].而有關(guān)路由器虛擬化的設(shè)計(jì)與研發(fā),路由器廠商和科研機(jī)構(gòu)已經(jīng)著手對(duì)支持異構(gòu)網(wǎng)絡(luò)和服務(wù)且運(yùn)行在同一共享底層平臺(tái)的虛擬路由器進(jìn)行深入的研究[7-9].虛擬路由器相較于傳統(tǒng)路由器最大的問題在于網(wǎng)絡(luò)接口收發(fā)包速度的差距和路由選擇速度的差距.本文將針對(duì)減小網(wǎng)絡(luò)接口收發(fā)包速度的差距這一方面,提出一種改進(jìn)方法.Quagga作為一款虛擬路由器,支持RIP,OSPF,BGP 等大部分主流路由協(xié)議,故本文選擇Quagga為研究對(duì)象并進(jìn)行改進(jìn).

2 虛擬路由器存在的問題及VPP數(shù)據(jù)平面加速工具技術(shù)分析

2.1 虛擬路由器

虛擬路由器將傳統(tǒng)路由器路由的功能通過軟件的方式實(shí)現(xiàn),減少了對(duì)專用封閉設(shè)備的依賴,提高了設(shè)備的可定制性.Linux系統(tǒng)本身通過路由表的形式提供了路由的功能,但是Linux系統(tǒng)只能通過手動(dòng)加入或修改靜態(tài)路由的方式更新路由表.故此,以Quagga為代表的虛擬路由器通過維護(hù)Linux路由表,并用軟件實(shí)現(xiàn)各種動(dòng)態(tài)路由算法的方式,實(shí)現(xiàn)了虛擬路由器動(dòng)態(tài)路由的功能.

相較于傳統(tǒng)路由器,虛擬路由器存在以下問題:1)傳統(tǒng)路由器通過專有硬件加速的方式實(shí)現(xiàn)高速的路由選擇,虛擬路由器只能以較慢的速度通過軟件方式進(jìn)行路由選擇.2)虛擬路由器通過中斷的方式進(jìn)行數(shù)據(jù)報(bào)文的收發(fā),每次需要陷入Linux內(nèi)核態(tài)并進(jìn)行memory copy,導(dǎo)致極大的 I/O 延遲.本文將針對(duì)第二點(diǎn),對(duì)虛擬路由器Quagga進(jìn)行優(yōu)化,使用戶態(tài)空間收發(fā)包的形式對(duì)數(shù)據(jù)平面進(jìn)行加速.

2.2 數(shù)據(jù)平面加速工具

隨著高速網(wǎng)卡技術(shù)的發(fā)展,10G,20G乃至100G的網(wǎng)卡紛紛進(jìn)入市場(chǎng)并被各大數(shù)據(jù)中心使用,針對(duì)高速網(wǎng)卡,傳統(tǒng)的內(nèi)核態(tài)中斷方式處理數(shù)據(jù)包的方式難以滿足高速網(wǎng)卡的要求,針對(duì)這個(gè)需求,多種用戶態(tài)處理數(shù)據(jù)包的工具被開發(fā)出來,其中比較有代表性的就是 Intel公司推出的 DPDK(Data plan development kit).DPDK通過將中斷改為輪訓(xùn)的處理方式,將需要內(nèi)核態(tài)處理的部分轉(zhuǎn)移到用戶態(tài)空間,減少了I/O中斷時(shí)上下文保存和恢復(fù)以及memory copy的時(shí)間,大大提升了數(shù)據(jù)報(bào)文處理速率.同時(shí)DPDK還運(yùn)用Linux提供的hugepage技術(shù),Hugepage使用有別于傳統(tǒng)頁表的2MB大小的頁表,使用此種技術(shù),將會(huì)極大的增加了cache的命中率,從而對(duì)報(bào)文處理的速率進(jìn)行提升.DPDK主要基于鏈路層進(jìn)行快速收發(fā)包的工作,Cisco利用DPDK高速收發(fā)包的能力,開發(fā)出一款數(shù)據(jù)平面的報(bào)文處理工具 VPP(Vector packet process),實(shí)現(xiàn)了IP層路由的功能,從而使得運(yùn)行VPP的服務(wù)器具有高速收發(fā)數(shù)據(jù)報(bào)文并根據(jù)路由表進(jìn)行轉(zhuǎn)發(fā)的能力.VPP采用Graph Node的形式進(jìn)行報(bào)文處理,每一個(gè)Node作為一個(gè)邏輯單元而存在,可完成相對(duì)獨(dú)立的任務(wù),例如VLAN標(biāo)簽的處理,MPLS標(biāo)簽處理等.VPP將所接收到的報(bào)文按組的形式組織起來形成向量,每個(gè)向量有固定數(shù)量的報(bào)文組成,以向量為單位通過每個(gè)Node,通過這種方式,使得每個(gè)節(jié)點(diǎn)同時(shí)處理一定數(shù)量的報(bào)文,可以較明顯的提高Cache和內(nèi)存的命中率,減少了頁表換出換入的操作,從而提高了整體性能.VPP通過Graph Node的形式,提供給了開發(fā)者較強(qiáng)的可定制性,開發(fā)者可以向VPP加入自己制定的Node,并將其和其它Node進(jìn)行串聯(lián),從而對(duì)特定環(huán)境下的網(wǎng)絡(luò)報(bào)文進(jìn)行處理.VPP平臺(tái)可以用于構(gòu)建任何類型的數(shù)據(jù)包處理應(yīng)用,比如負(fù)載均衡、防火墻、IDS、主機(jī)棧.也可以是一個(gè)組合,比如給負(fù)載均衡添加一個(gè)vSwitch.本文選擇VPP作為數(shù)據(jù)平面的加速工具來對(duì)虛擬路由器進(jìn)行優(yōu)化.

3 虛擬路由器架構(gòu)設(shè)計(jì)

3.1 傳統(tǒng)虛擬路由器架構(gòu)

Quagga作為傳統(tǒng)虛擬路由器的代表,整體架構(gòu)如圖1所示.VTYSH作為與用戶的交互模塊,提供了以命令行的形式配置路由器的途徑.VTYSH仿照大多數(shù)商業(yè)路由器的通用模式(例如Cisco和Huawei的商用路由器)進(jìn)行配置.OSPF,BGP,RIP 作為動(dòng)態(tài)路由協(xié)議由Quagga進(jìn)行實(shí)現(xiàn),并可以通過配置文件的形式?jīng)Q定啟用哪一個(gè)動(dòng)態(tài)路由協(xié)議.Zebra作為Quagga的管理模塊,負(fù)責(zé)Quagga的配置管理的生成和更新路由表的操作,Zebra通過Netlink的方式與內(nèi)核進(jìn)行通信以達(dá)到修改內(nèi)核路由表的目的.

圖1 Quagga 架構(gòu)圖

將Quagga數(shù)據(jù)平面轉(zhuǎn)移到VPP上有兩個(gè)問題需要解決

當(dāng)虛擬路由器啟動(dòng)后,Quagga將啟動(dòng)用戶所配置的路由協(xié)議,通過與其他路由器的通信建立初始路由表,并在運(yùn)行中持續(xù)更新路由表.

Netlink是Linux提供的用戶空間與內(nèi)核進(jìn)行通信的方式之一,Netlink 是基于 socket的通信機(jī)制,由于socket本身的雙共性、突發(fā)性、不阻塞特點(diǎn),因此能夠很好的滿足內(nèi)核與用戶空間小量數(shù)據(jù)的及時(shí)交互,因此在Linux 2.6內(nèi)核中廣泛使用.

3.2 基于VPP加速數(shù)據(jù)平面的虛擬路由器架構(gòu)設(shè)計(jì)

Quagga的數(shù)據(jù)平面運(yùn)行于內(nèi)核空間下,用戶空間向內(nèi)核空間轉(zhuǎn)換過程中的環(huán)境保存和memory copy過程限制了報(bào)文轉(zhuǎn)發(fā)過程的速度,成為了Quagga轉(zhuǎn)發(fā)速率的瓶頸,所以,將數(shù)據(jù)平面轉(zhuǎn)移到用戶空間下成為加速Q(mào)uagga轉(zhuǎn)發(fā)速率的最有效方法.

經(jīng)過分析,有兩種方式可以作為轉(zhuǎn)移Quagga數(shù)據(jù)平面到VPP的選擇:1)將Quagga中操作Linux路由表的部分用VPP提供的操作自身路由表的API替換.2)不修改 Quagga 代碼,通過增加 VPP 插件的方式,同步VPP與Linux路由表.

通過比較,方法1)相較于方法2),由于直接操作VPP 路由表,會(huì)有一定的性能優(yōu)勢(shì),但是,需要較大程度的修改Quagga源代碼,對(duì)程序有較大的侵入性,往往不利于開源軟件的發(fā)布.所以我們選擇侵入性較小的通過增加VPP插件來同步路由表的方式.

(1)如何通過Quagga同步VPP自身所維護(hù)的路由表.

(2)VPP綁定的網(wǎng)卡需要運(yùn)行特定的驅(qū)動(dòng)而不是Linux提供的驅(qū)動(dòng),所以無法被Quagga識(shí)別.

下面部分將針對(duì)上述兩個(gè)問題進(jìn)行解決.

針對(duì)第一個(gè)問題,VPP為了減少陷入內(nèi)核態(tài)所需要的開銷完全運(yùn)行于用戶空間下,所以需要自身維護(hù)一張路由表,該路由表與Linux內(nèi)核所維護(hù)的路由表結(jié)構(gòu)相似.如前文所述,Zebra通過Netlink方式與Linux內(nèi)核進(jìn)行通信,同時(shí)Netlink支持多播組的形式,所以選擇將Zebra改為通過Netlink多播的方式與Linux通信,然后將VPP加入到該多播組中.以此方式,可以使VPP獲取到Quagga對(duì)內(nèi)核路由表的每一次更新,然后VPP可以根據(jù)每次收到的Netlink消息更新自身的路由表,以達(dá)到同步VPP路由表和Linux路由表的目的.

針對(duì)第二個(gè)問題,VPP基于DPDK運(yùn)行,所以需要將所使用的網(wǎng)卡綁定DPDK所提供的驅(qū)動(dòng)igb_uio,該驅(qū)動(dòng)運(yùn)行于用戶空間下.但是由于該網(wǎng)卡未綁定Linux所提供的驅(qū)動(dòng),所以無法被Linux系統(tǒng)所識(shí)別,導(dǎo)致不能被Quagga配置和管理.當(dāng)接收到的報(bào)文轉(zhuǎn)發(fā)所需要的路由條目已存在與VPP路由表中,將不會(huì)存在這個(gè)問題,VPP將根據(jù)路由條目對(duì)該報(bào)文直接進(jìn)行轉(zhuǎn)發(fā).當(dāng)VPP路由表中不存在與接收到的報(bào)文目的IP地址相符的路由條目,則需要VPP將該報(bào)文傳遞給Quagga通過動(dòng)態(tài)路由協(xié)議獲取所需要的路由信息.為解決這個(gè)問題,本文選擇使用Linux TAP虛擬網(wǎng)卡技術(shù)來解決這個(gè)問題.Tap驅(qū)動(dòng)程序的數(shù)據(jù)接收和發(fā)送并不直接和真實(shí)網(wǎng)卡打交道,他在Linux內(nèi)核中添加了一個(gè)TUN/TAP虛擬網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)程序和一個(gè)與之相關(guān)連的字符設(shè)備/dev/net/tun,字符設(shè)備tun作為用戶空間和內(nèi)核空間交換數(shù)據(jù)的接口.當(dāng)內(nèi)核將數(shù)據(jù)包發(fā)送到虛擬網(wǎng)絡(luò)設(shè)備時(shí),數(shù)據(jù)包被保存在設(shè)備相關(guān)的一個(gè)隊(duì)列中,直到用戶空間程序通過打開的字符設(shè)備tun的描述符讀取時(shí),它才會(huì)被拷貝到用戶空間的緩沖區(qū)中,其效果就相當(dāng)于,數(shù)據(jù)包直接發(fā)送到了用戶空間.運(yùn)用此種技術(shù),在內(nèi)核中創(chuàng)建一個(gè)虛擬網(wǎng)卡作為VPP綁定網(wǎng)卡的一個(gè)映射,所有針對(duì)虛擬網(wǎng)卡的配置和操作將映射到VPP綁定的物理網(wǎng)卡上面.以此種方式,可以使Quagga對(duì)物理網(wǎng)卡進(jìn)行控制.

根據(jù)以上兩個(gè)方式設(shè)計(jì)出的路由器架構(gòu)如圖2.圖中VPP Plugin作為增加的節(jié)點(diǎn),用于處理接收到的報(bào)文的路由工作.Physical NICs 和 Virtual Device 為一一對(duì)應(yīng)的關(guān)系,將由VPP管理的物理網(wǎng)卡映射到內(nèi)核中進(jìn)行操作.

圖2 基于 VPP 優(yōu)化的 Quagga 架構(gòu)圖

VPP Plugin作為一個(gè)新增加的VPP節(jié)點(diǎn)完成以下工作:VPP將所有接收到的報(bào)文進(jìn)行預(yù)處理,將物理層和數(shù)據(jù)鏈路程頭部和尾部去掉,然后將報(bào)文傳遞到新增加的節(jié)點(diǎn),新增節(jié)點(diǎn)工作流程如下:

1)根據(jù)報(bào)文目的ip地址在VPP路由表中進(jìn)行查找,若存在則 2),否則 3).

2)VPP根據(jù)路由表進(jìn)行路由轉(zhuǎn)發(fā).

3)將報(bào)文上傳給創(chuàng)建的虛擬設(shè)備,并由該設(shè)備傳遞給Quagga進(jìn)行路由.

4)Quagga根據(jù)運(yùn)行的動(dòng)態(tài)路由協(xié)議與鄰居進(jìn)行交互并獲取所允許的路由信息,然后通過Netlink協(xié)議更新到Linux路由表中.

5)新增節(jié)點(diǎn)通過監(jiān)控Netlink多播協(xié)議,將更新到Linux路由表中的內(nèi)容同步到VPP路由表中,然后1).

工作流程圖如圖3所示至此,虛擬路由器的數(shù)據(jù)平面已經(jīng)轉(zhuǎn)移到了用戶空間下的VPP上,而控制平面則保留在Quagga上面.

圖3 VPP 插件工作流程圖

4 實(shí)驗(yàn)與分析

為了模擬真實(shí)情況下的虛擬路由器性能數(shù)據(jù),本文設(shè)計(jì)如下的拓?fù)浣Y(jié)構(gòu)進(jìn)行實(shí)驗(yàn):兩臺(tái)標(biāo)準(zhǔn)x86服務(wù)器作為實(shí)驗(yàn)環(huán)境,每臺(tái)服務(wù)器上有一個(gè)兩口的intel10G網(wǎng)卡,將兩臺(tái)服務(wù)器各自的一個(gè)網(wǎng)口通過光纖與另一個(gè)服務(wù)器網(wǎng)口相連,組成一個(gè)線性拓?fù)浣Y(jié)構(gòu).兩臺(tái)機(jī)器的另一個(gè)接口分別于Traffic Generator相連.本實(shí)驗(yàn)選擇IXIA設(shè)備作為Traffic Generator來進(jìn)行試驗(yàn),IXIA是專業(yè)的網(wǎng)絡(luò)測(cè)試設(shè)備,可根據(jù)配置產(chǎn)生高速動(dòng)態(tài)變化的網(wǎng)絡(luò)報(bào)文.本實(shí)驗(yàn)選擇BGP作為動(dòng)態(tài)路由協(xié)議進(jìn)行測(cè)試.BGP協(xié)議是基于TCP協(xié)議的動(dòng)態(tài)路由協(xié)議,作為自制系統(tǒng)間的動(dòng)態(tài)路由協(xié)議而廣泛應(yīng)用于大型網(wǎng)絡(luò)中.為了進(jìn)行精確測(cè)試,本實(shí)驗(yàn)選擇對(duì)單core下的性能進(jìn)行分析.

實(shí)驗(yàn)步驟如下,啟動(dòng)兩臺(tái)服務(wù)器的Quagga服務(wù),分別通過shell腳本自動(dòng)注入100條左右的路由信息,通過配置,使兩臺(tái)服務(wù)器作為BGP協(xié)議中Neighbor關(guān)系相連并交換路由信息.不同長(zhǎng)度的報(bào)文長(zhǎng)度將對(duì)性能產(chǎn)生較大的影響,所以選擇 64 bit至 1513 bit的不同長(zhǎng)度的報(bào)文進(jìn)行測(cè)試.從IXIA端口向一臺(tái)服務(wù)器的端口發(fā)送目的地址動(dòng)態(tài)變化的報(bào)文,在另一端的IXIA端口觀察手包速率,得出以下實(shí)驗(yàn)結(jié)果,如表1.

針對(duì)以上結(jié)果進(jìn)行分析,可以得出,在 64 bit至256 bit情況下,相較于傳統(tǒng)虛擬路由器,轉(zhuǎn)發(fā)性能有了極大的 提升.在 256 bit以上的情況,單 core 的轉(zhuǎn)發(fā)能力基本可以達(dá)到線性速度.本實(shí)驗(yàn)只針對(duì)單core性能進(jìn)行測(cè)試,通過結(jié)果可以推斷出,當(dāng)增加core的數(shù)量時(shí),虛擬路由器將可以在任何報(bào)文長(zhǎng)度條件下,達(dá)到線性速度.由此可以得出,通過將虛擬路由器的數(shù)據(jù)平面轉(zhuǎn)移到用戶空間下,可以較大的提升路由器性能.此外,通過對(duì)內(nèi)核態(tài)下虛擬路由器的性能進(jìn)行分析,可以得到,傳統(tǒng)的數(shù)據(jù)平面轉(zhuǎn)發(fā)方式已經(jīng)難以滿足高速網(wǎng)卡的需求.

1Gao XM,Zhang XZ,Lu ZX,et al.面向虛擬路由器的轉(zhuǎn)發(fā)平面改進(jìn)機(jī)制.Proc.of Chinese Control Conference,2013,(23):0–1.

2Mckeown N,Anderson T,Balakrishnan H,et al.OpenFlow:Enabling innovation in campus networks.ACM SIGCOMM Computer Communication Review,2008,38(2):69–74.[doi:10.1145/1355734]

3Keller E,Green E.Virtualizing the data plane through source code merging.Proc.of the ACM Workshop on Programmable Routers for Extensible Services of Tomorrow.Seattle,WA,USA.2008.9–14.

4Gupta M,Singh S.Greening of the internet.Proc.the 2003 Conference on Applications,Technologies,Architectures,and Protocols for Computer Communications.Karlsruhe,Germany.2003.19–26.

5Lyons AM,Neilson DT,Salamon TR.Energy efficient strategies for high design telecom application.Princeton:Princeton University,2008.

6Fu J,Rexford J.Efficient IP-address lookup with a shared forwarding table for multiple virtual routers.Proc.of the 2008 ACM CoNEXT Conference.Madrid,Spain.2008.

7Cisco.Multi-topology routing.http://www.cisco.com/c/en/us/td/docs/ios/12_2sr/12_2srb/feature/guide/srmtrdoc.html.[2006-08-18]

8Turner JS,Crowley P,Dehart J,et al.Supercharging planetlab:A high performance,multi-application,overlay network platform.Proc.the 2007 Conference on Applications,Technologies,Architectures,and Protocols for Computer Communications.Kyoto,Japan,2007.

9Feamster N,Gao LX,Rexford J.How to lease the internet in your spare time.ACM SIGCOMM Computer Communication Review,2007,37(1):61–64.[doi:10.1145/1198255]

Method to Accelerate Virtual Router Data Plan Based on VPP

ZHANG Yu-Wei,ZENG Yi,YANG Yan-Ning

(Computer Science and Teconology,Chongqing University,Chongqing 40000,China)

This paper proposes a method to accelerate the virtual router’s data plan by VPP.This method separates the virtual router into control plan and data plan,then moves the data plane’s transform work to the VPP running in Linux userspace and alters the VPP’s route table by listening to the control plan info.In this way,it could eliminate the bottleneck of the traditional virtual route’s rate of transform packets which make it possible to replace the network device with standard x86 platform server.It can promote the network function virtualization in some way and make the network resource more flexible and easier to be managed.

virtual router; network function virtualization; computer network; VPP

Framesize CoresInput (Mp/sec)Input (Mb/sec)Perf (Mp/sec)Perf (Mb/sec)Quagga+Kernel Dataplane 64 64 1 14.882 952.383 0.745 47.887 Quagga+Kernel Dataplane 128 128 1 8.446 1081.081 0.747 90.108 Quagga+Kernel Dataplane 256 256 l 4.529 1159.422 0.703 181.641 Quagga+Kernel Dataplane 512 512 1 2.349 1203.007 0.703 348.346 Quagga+Kernel Dataplane 1024 1024 1 1.197 1226.503 0.728 759.506 Quagga+Kernel Dataplane 1512 1512 1 0.816 1233.681 0.713 1021.186 Quagga+VPP 64 64 1 14.882 952.385 5.852 374.871 Quagga+VPP 128 128 1 8.446 1081.081 5.803 743.091 Quagga+VPP 256 256 1 4.528 1159.403 4.582 1159.403 Quagga+VPP 512 512 1 2.349 1203.007 2.349 1202.993 Quagga+VPP 1024 1024 1 1.197 1226.053 1.197 1226.891 Quagga+VPP 1512 1512 1 0.816 1233.681 0.815 1233.699

5 總結(jié)與展望

張宇巍,曾一,楊燕寧.基于VPP的虛擬路由器數(shù)據(jù)平面加速方法.計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(10):276–280.http://www.c-s-a.org.cn/1003-3254/6058.html

2017-02-11; 采用時(shí)間:2017-03-20

本文提出了一種針對(duì)虛擬路由器數(shù)據(jù)平面加速的方法,通過此種方法將虛擬路由器的數(shù)據(jù)平面轉(zhuǎn)移到具有高速數(shù)據(jù)處理能力的用戶空間數(shù)據(jù)高速轉(zhuǎn)發(fā)工具上,使得通用標(biāo)準(zhǔn)設(shè)備替代高速網(wǎng)絡(luò)設(shè)備成為了可能.以目前的虛擬路由器替代商業(yè)專用路由器還存在一些問題,本文只是在收發(fā)和將報(bào)文交給CPU處理的環(huán)節(jié)進(jìn)行了加速,但對(duì)于整個(gè)路由器的核心功能路由選擇卻沒有進(jìn)行優(yōu)化.物理路由器通常選擇使用專有硬件輔助的形式加速路由選擇的過程,而虛擬路由器單純使用軟件進(jìn)行路由效率上有比較大的差距,可以對(duì)這一方面進(jìn)行深入研究,利用多核CPU的優(yōu)勢(shì)改進(jìn)路由選擇算法.

猜你喜歡
網(wǎng)卡內(nèi)核報(bào)文
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
多內(nèi)核操作系統(tǒng)綜述①
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
活化非遺文化 承啟設(shè)計(jì)內(nèi)核
低軌星座短報(bào)文通信中的擴(kuò)頻信號(hào)二維快捕優(yōu)化與實(shí)現(xiàn)
聯(lián)網(wǎng)全靠它 認(rèn)識(shí)筆記本的無線網(wǎng)卡
淺析反駁類報(bào)文要點(diǎn)
微軟發(fā)布新Edge瀏覽器預(yù)覽版下載換裝Chrome內(nèi)核
Server 2016網(wǎng)卡組合模式
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
紫云| 长海县| 平原县| 万载县| 长治市| 拉萨市| 黑山县| 梓潼县| 延寿县| 邛崃市| 临西县| 诏安县| 汝南县| 台北市| 新河县| 葫芦岛市| 枣庄市| 蓬莱市| 三门县| 五河县| 阿坝县| 宣恩县| 铜陵市| 福清市| 澎湖县| 吉隆县| 青海省| 新邵县| 文化| 沈丘县| 峨山| 桦南县| 盐津县| 辽阳县| 佛山市| 黎平县| 壶关县| 含山县| 武夷山市| 清远市| 宁陵县|