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

一種面向SD-WAN的協議無感知快速源路由轉發方案

2020-07-17 07:35:50李維勇陳云芳
計算機工程 2020年7期

李維勇,吳 闋,張 偉,陳云芳

(1.南京信息職業技術學院 計算機與軟件學院,南京 210023; 2.南京郵電大學 計算機科學與技術學院,南京 210023)

0 概述

通信技術與云計算技術的發展推動了網絡應用向云端的遷移,然而不同網絡間的兼容需求導致互聯網作為網絡整體的更新速度十分緩慢,且傳統廣域網所承載的流量逐漸飽和甚至溢出。影響兼容性的一個主要因素是網絡的數據平面與控制平面都由底層硬件廠商控制并且緊密耦合,硬件廠商通常會隱藏各自管理接口的底層細節,導致網絡管理人員添加新的協議時會使其功能不靈活,網絡的可編程能力羸弱。軟件定義網絡(Software Defined Network,SDN)[1]通過OpenFlow[2]協議解耦控制平面和數據平面,極大地提高了網絡整體的運維管理、流量控制與可編程能力,因此逐漸成為下一代網絡的主流設計。軟件定義廣域網(Software Defined-Wide Area Network,SD-WAN)[3]通過引入SDN技術來管理廣域網,將網絡控制能力通過軟件方式進行“云化”,降低網絡開支,提升網絡互連能力。以Cisco為首的傳統網絡企業推動了開源SDN平臺的發展,2013年8月,Google首次將其數據中心之間流量通信的SDN解決方案B4[4]公布,成為了市場上SDN實際部署的成功案例。然而,由于廣域網的規模巨大、缺乏應用感知能力等特征,要將SDN技術部署在廣域網中仍是一項重大的挑戰。

在SDN實現技術中,OpenFlow是使用較為廣泛的協議,用于描述控制器和交換機之間的通信接口。然而支持OpenFlow的SDN交換機中的流表數量小,難以實現細粒度的流量控制和管理,在數據平面上只能通過計數器來記錄少量流信息,無法支持同一條流內不同數據包之間的信息共享。同時,由于OpenFlow在數據平面上使用了協議相關的抽象模型,其交換機的匹配字段在出廠時已被預先定義,造成交換機在數據平面上的靈活性和可編程能力不足的問題。

本文利用協議無感知轉發(Protocol-Oblivious Forwarding,POF)[5]技術來解決上述問題,POF是一種基于OpenFlow協議開發的擴展技術,它具有OpenFlow協議的基本特征,即集中控制器駐留在控制平面,并且基于流表來管理數據平面中交換機的轉發行為。然而不同的是,POF提出全新的OpenFlow匹配域字段和一組描述處理動作的通用指令集,在SDN交換機中實現與協議無關的快速轉發[6],節省交換機的內存并減少與控制器之間的通信,省去大量的控制器決策和下發消耗時間,降低網絡中的傳輸延遲。

1 相關工作

對于下一代廣域網的探索始于2004年,DSL論壇首次提出基于用戶端設備(Customer Premises Equipment,CPE)的廣域網管理協議[7],該協議通過一種自動配置服務器對CPE進行自動化的配置以及策略的下發。混合廣域網[8]技術通過檢測不同的CPE網絡對廣域網進行協同、負載均衡,此外允許一些高優先級的流量通過優化后的額外線路進行傳輸,降低企業網絡對專線的依賴。應用路由器[9]為CPE融入了應用感知功能,根據流量所屬應用的優先級分配線路,保證重要流量的穩定性和安全性,這些技術結合傳統的廣域網加速技術構成了SD-WAN的雛形。關于SD-WAN的研究主要包括多控制器部署問題、交換機動態遷移問題和服務質量(Quality of Service,QoS)保障問題等。文獻[10]最早提出控制器部署問題,在利用控制器部署時采用貪心算法,以平均時延和最大時延作為優化目標。文獻[11]提出一種運用控制器位置部署算法在網絡中選擇合理位置進行控制器部署,使控制器以最可靠的鏈路到達OpenFlow交換機的設計方案。針對QoS保障問題,文獻[12]針對期限驅動類型的流量,提出一種在不同WDM網絡架構中的靈活速率傳輸方案,且把期限屬性作為QoS保障問題的參數。文獻[13]提出的基于空間信息網絡的統一資源調配策略,提升了鏈路利用率與可靠性。

關于SD-WAN的新熱點研究是快速路由轉發問題[14],SDN集中式的網絡管控使得每一條轉發路徑的建立都需要控制器向路徑上的每個交換機逐一下發流表項,這將會導致建立路徑的時間增加。基于SDN的源路由被認為是一種解決此類問題的策略[15],源路由最大的特點是所需的網絡拓撲信息是由源主機提供的。在源路由中,主機根據多個不同的子網或內網地址,在數據包頭部添加相關的路由信息來為數據包規劃轉發路徑,從而實現網絡中的數據平面有選擇性地將數據包發往不同的目的地址。與傳統的路由協議相比,源路由大幅簡化了數據平面的復雜度。

目前源路由方案多數采用OpenFlow協議來實現對多標簽協議互換(Multi-Protocol Label Switching,MPLS)[16]和虛擬局域網(Virtual Local Area Network,VLAN)的支持。文獻[17]提出一種使用多個VLAN tag字段封裝路徑的SwitchReduce方案。文獻[18]提出采用多個MPLS Label字段封裝每一跳出口信息的方案。文獻[19]利用MPLS字段進行路徑信息的封裝,提出一種針對數據中心虛擬化系統環境的基于端口交換的源路由方案。由于VLAN或者MPLS協議首部長度為32 bit,而表達一條路徑信息需要將多層上述協議首部進行嵌套封裝,因此,使用現有的協議字段進行路徑信息封裝會造成很大的帶寬開銷。為了減少源路由首部的帶寬開銷,文獻[20]通過使用VLAN的VID字段封裝出口信息來減少帶寬開銷,但交換機的端口數量受限(不能超過8個)。文獻[21-22]提出使用以太網首部去封裝路徑信息來降低帶寬開銷的方案,但是,這種源路由首部的設計仍然不夠靈活并且可能導致網絡中數據包的兼容性問題。Princeton大學的研究團隊在文獻[23]中提出一種只執行源路由轉發的交換機架構來降低交換機的成本,然而基于該架構的拓撲發現策略中,所有主機都要探測全局的網絡拓撲,該策略會造成很多探測包冗余,嚴重影響網絡的性能。文獻[24]提出一種利用余數系統的轉發架構來介紹交換機上流狀態的存儲,但在扁平控制方式中,每個控制器只能控制局部網絡,造成了一定資源的浪費,且增加了網絡更新時控制器的整體負載。

針對以上問題和現狀,本文提出在SD-WAN中基于POF流指令集實現的、協議無關的快速源路由轉發方案,采用一種源路由的交換機算法在入口交換機中壓入整條轉發路徑,在實現轉發功能的同時避免了沿途交換機與控制器的頻繁交互,當數據包進入SDN環境時對其進行封裝,使網絡中的軟件交換機可以通過特殊字段識別流量并進行轉發,該方案具有節省帶寬和減少流表使用的高效數據包轉發特點。

2 協議無感知快速轉發的源路由方案

2.1 方案整體設計

針對高流量的廣域網環境,本文提出在SD-WAN中基于協議無感知快速轉發方案,進一步解耦網絡的控制平面和數據平面來實現與協議無關的轉發行為,利用POF的高可編程性和協議無關性特征重構源路由包頭字段,用于封裝完整的轉發路徑,并利用算法實現源路由數據包的處理,以降低流表項資源的開銷。

本文方案主要包括以下4個步驟:

步驟1數據包設計:在入口交換機上將流量的轉發路徑處理信息封裝在數據包首部,在后續路徑上的中間交換機中,只需要根據數據包首部存儲的處理信息進行轉發,避免或減少在流表中的匹配過程。

步驟2數據包處理算法設計:利用POF的可編程性,設計邊界交換機與核心交換機的處理算法,路徑上的中間交換機只需維護少量并且固定數量的流表項來轉發網絡中所有的流量,減少控制器和交換機之間的信令交互,降低流表項數量,從而進一步降低網絡中流表資源的開銷。

步驟3控制器網絡拓撲檢測:使用鏈路層發現協議(Link Layer Discovery Protocol,LLDP)[25]在SD-WAN環境下獲取控制器的拓撲信息,實現協議無感知轉發的全局拓撲檢測。

步驟4無感知轉發設計:基于流水線與組表相結合的協議架構,將多張串聯起來的流表共同組成一條流水線,不同的流表用于實現不同的網絡功能,流表定義的動作統一由POF的匹配域字段搜索關鍵字定位需要操作的數據來實現協議無關的快速轉發。

本文方案利用SD-WAN中入口邊界交換機只與控制器進行信息交互的特征,統一為后續核心交換機流表匹配新的元數據參數,不需要為不同的協議去重新向控制器請求新的流表項,從而減少轉發過程中的路由決策造成的延遲。

2.2 源路由數據包設計

由于POF的協議無關性,因此不需要在傳統協議中重用頭字段。包頭字段可以專門定制以實現有效的路由。在這種方法中,完整的轉發路徑會記錄在這個POF中間字段中,這種解決方案的思想與MPLS類似,即POF將相關的字段插入在以太網包頭和IP包頭之間,具體如圖1所示。

圖1 源路由數據包設計

封裝的包頭中包括生存時間(Time-to-Live,TTL)以及控制器檢查拓撲所決策出的完整轉發路徑上的轉發端口均是按到達順序依次排列的。TTL在進入POF網絡邊界時由控制器計算得出,數據分組每經過一個SDN交換機,交換芯片會根據TTL和偏移量獲得當前設備的轉發端口并將TTL的數值減去1,當離開POF邊界時,其值正常情況應當為0,用于檢測路徑的合法性。假如TTL的數值提前減至0,該數據分組會被丟棄,并觸發一個異步報文提交給上級控制器報告異常。

在插入新的字段后,修改以太網包頭的類型字段為“0x0908”來表明以太網幀包含一個基于POF的數據分組。

2.3 源路由數據包處理

當一個流的第一個數據分組到達一個入口邊界交換機時,它會根據偏移量和長度判斷該數據幀的以太網類型,假如匹配POF環回口頭部字段成功,其會觸發一個Packet-In消息發送到SDN控制器并修改以太網幀類型字段,否則為原有的“0x0800”。由于沒有流條目對應,當接收到Packet-In數據分組時,控制器為這條流計算路由路徑,并發送一個Flow-mod消息到入口邊界交換機,該交換機將指定的輸出端口編碼給路徑上的每個交換機使用。入口邊界交換機將輸出端口存儲在元數據中,并使用通用指令集將它們插入到流的每一個數據分組中。邊界交換機的處理算法如下:

算法1邊界交換機處理算法

輸入O:offset;L:length;P:packet ID

輸出output port ID

1.if O == 96b and L == 16b then

2.P.ether.type 0x0908

3.sendPacket2Controller(P)

4.else

5.P.ether.type 0x0800

6.end if

7.P.ttl MAX_VALUE

8.P.metadata.portBuffer initializeFromPacket(P)

9.return output ID(P)

當一個核心交換機接收到流交換機發來的POF數據分組時,它會利用一種預裝管道式的匹配規則來進行流表匹配并進行數據分組。由于完整的轉發路徑已經保存在數據分組的POF中間字段之中,交換機不再需要與SDN控制器進行交互,只需要從元數據中解封裝當前交換機節點的轉發端口即可。核心交換機的處理算法如下:

算法2核心交換機的處理算法

輸入P:packet ID

輸出output port ID

1.if P.ether.type == 0x0908 then

2.P.metadata.portBuffer wirteMetadataFromPacket(P.port)

3.if P.ttl > 1 then

4.deleteField(P.port)

5.P.ttl P.ttl-1

6.else

7.deleteField(P.POFHeader)

8.P.ether.type 0x0800

9.end if

10.return output(P.metadata.portBuffer)

11.else

12.ddField(P.POFHeader)

13.return output ID (P)

14.end if

從上面的處理流程可以看出,在基于POF的SD-WAN中通常只有入口邊界交換機需要與控制器進行信息交互,而且受益于通用指令集的網絡抽象,后續的所有核心交換機在轉發路徑沒有發生異常的情況下,只會根據新的元數據參數進行統一的通用關鍵字流表匹配,而不需要為不同的協議去重新向控制器請求新的流表項。這種做法大大減少了鏈路上的核心交換機發起的異步OpenFlow報文的情況,因此可以很大程度上減少轉發過程中的路由決策造成的延遲。

2.4 全局拓撲鏈路獲取

SDN控制器在初始化狀態下會觸發鏈路發現事件,由于LLDP協議中的目的MAC地址是一個組播地址,控制器會通過Packet-Out消息封裝這條數據報文并向所有端口轉發。交換機一旦接收到來自控制器的LLDP報文,就會向所有端口轉發該報文,當其他交換機接收到該消息時會觸發本地流表查找操作。由于交換機中不存在關于LLDP數據報文的流表,接收到這條報文的交換機又會通過Packet-In消息封裝這條報文并返回給控制器,而控制器會通過Packet-Out和Packet-In中的相同信息確定2臺交換機接收和發送的報文屬于同一事件,且會創建一條2臺交換機之間的鏈路記錄并保存于本地。這個過程在整個網絡中進行,控制器會通過這些信息獲得整個網絡的拓撲狀態,此時網絡達到收斂狀態,當一條流發送到SDN環境時,控制器就能通過本地保存的拓撲信息決策出最優的轉發路徑。

由于真實的環境中需要在現有的網絡環境下部署SD-WAN,因此這種方案具有對于傳統網絡設備和環境的兼容性要求。控制器除了發送封裝LLDP的Packet-Out消息,還會同時發送一條控制信令使接收到該報文的交換機向所有端口發出一條廣播包,假如到達一個非SDN環境的傳統交換機,它會穿過該設備繼續進行全端口廣播,當另一端與該傳統環境的交換機相連的SDN交換機接收到這個廣播包時,由于缺少處理廣播包的流表項,其同樣會觸發一個Packet-In消息提交給上級控制器,因此控制器可以確定2臺交換機的鏈路之間存在非SDN環境,假如控制器沒有收到,則會默認所有設備都運行在SDN環境下。

全局拓撲檢測還有一項工作是隨時更新SDN交換機鏈路狀態以及各種邏輯組網鏈路狀態[26]。企業的數據中心作為SD-WAN最主要的部署環境,通常具有云計算、虛擬化等需求,此時要求系統中的網絡資源整體虛擬化并通過資源池進行管理,不同的租戶會根據具體需求請求相關的設備、端口以及相應的帶寬。這種邏輯組網具有一定的彈性,與物理組網不同,不同的租戶之間的性能、安全等屬性需要彼此隔離,因此,需要SDN控制器在支持邏輯組網拓撲檢測的同時提供訪問控制列表、QoS等高級特性支持,同時實時保存各種邏輯組網的拓撲信息、策略信息以及網絡資源調度信息。

2.5 多級流表的無感知轉發

在SD-WAN中,POF將多張串聯起來的流表共同組成一條流水線,數據分組從被交換機接收到查詢到相應的接口轉發需要在多張流表之間跳轉來完成匹配。不同的流表用于實現不同的網絡功能,比如對于2層轉發,控制器首先會進行拓撲檢測并同步記錄各臺設備的MAC地址;對于3層轉發,控制器會根據開銷計算出最優的轉發策略下發給交換機流表;對于4層轉發,控制器不僅會匹配MAC地址與IP地址,另外還會根據TCP/UDP端口號進行匹配,并寫入相應的流表項中進行下發。

POF交換機采用了一系列通用密鑰組合和表查找指令來完成數據分組的解析和流的匹配。POF的匹配域字段搜索關鍵字是由偏移量和長度組成的二維元組。流表定義的動作(這些動作定義在POF指令集中,可以實現修改數據分組、更新POF計數器、跳轉到指定流表等功能)統一通過上述二維元組來定位需要操作的數據,這種方案可以極大地加快流表決策的過程,為提供與協議無關的快速轉發打下基礎。

當封裝了POF中間幀的數據分組上傳到POF控制器時,控制器會從Packet-In消息中抽取出需要的流表統計信息以及端口統計信息,并對特定的地址分配機制(Address Assignment Mechanism,AAM)數據包進行偵聽[27],構建相應的IP地址與端口的綁定表。此外,POF控制器通過主動探測發現的方式,確認封裝了POF的數據分組所對應的流的入口交換機的信息,并根據POF的協議無關快速轉發機制為匹配特征的流指定對應的流表項。

控制器端根據收集的數據和預處理分析提取的流特征進行IP地址與端口綁定之后,相關流的轉發操作會進入相對穩定的階段。此時,POF控制器會發送輪巡消息給與之直接相連的交換機來驗證流的匹配與轉發操作是否正常,而這種跟蹤機制不會改變數據平面的轉發行為。為了防止鏈路中同時存在多條輪巡相關的Packet-Out消息,POF控制器為輪巡消息引入一個隨機的抖動,這使得輪巡消息的頻率一致,以確保消息分時到達鏈路上與控制器直接鄰接的不同交換機。首先,在輪巡消息到達交換機端之后會觸發統計事件,收集上一個時間窗口的交換機統計信息。然后,根據這些數據信息分析驗證流的轉發事件以及交換機的狀態變化信息。最后,根據交換機的統計信息確定是否發送異常消息以及確定新的輪巡頻率,同時調整動態的端口狀態。這種不斷輪巡以及動態劃分端口的機制可以有效滿足SD-WAN中的邏輯組網需求以及QoS等高級特性,提高網絡的靈活性和可擴展性。

3 協議無感知快速轉發源路由系統的實現

3.1 系統模擬環境的搭建

本文選用Mininet[28]實驗平臺作為POF的實驗環境。該系統由虛擬的終端節點和支持OpenFlow的交換機以及控制器組成,并且提供了良好的遠程控制器支持。實驗平臺數據平面交換機是依賴于支持OpenFlow的Open vSwitch開源交換機[29],它在數據平面所對應的功能是為已經決策過的流進行后續的數據分組的核心轉發模塊調用和處理。在網絡控制平面使用OpenDaylight控制器,該控制器具有開放服務網關獨立(Open Service Gateway Initiative,OSGI)結構[30],這種結構能夠隔離眾多底層網絡功能,因此可以很大程度上增強控制平面的可擴展性。OpenDaylight控制器的另一重大特征是存在服務抽象層(Service Abstraction Layer,SAL)[31],使得控制器可以適配SD-WAN環境中可能出現的幾乎所有不同底層協議的設備,保證研究人員能夠專注于SD-WAN規模的網絡業務應用開發而無需關注并行的傳統網絡與SD-WAN的兼容問題,具體的系統實驗環境如表1所示。

表1 系統實驗環境

3.2 協議無感知轉發部署

3.2.1 POF控制器部署

基于OpenDaylight控制器的SD-WAN網絡是一個可以從邏輯上描述數據分組轉發甚至計算出延遲區間、流表項量級等信息的白盒系統。在OpenDaylight控制器中添加POF擴展,使控制器可以自由使用數據分組的元數據來臨時緩存轉發過程中所需的數據。帶有圖形界面的POF模塊提供接口完成手動配置轉發管道,配置文件也可以通過相同的接口加載到控制器中,同時,可以使用API為POF管理器開發其他應用程序,這使得SD-WAN網元可以保持相當多的軟件定義特性。圖2展示了POF控制器的框架。

圖2 POF控制器框架

在SD-WAN網絡環境中,網絡通常會由不同的運營商進行管理和運營,因此需要處理域間流量組成的流。但基于POF的域間操作的機制和實現還未得到解決,為了彌補丟失的性能,本文系統在POF控制器中還設計了一個域間模塊。該模塊通過JSON(JavaScript Object Notation)實現并幫助POF控制器交換域間信息。在該設計中,讓每臺控制器都將自己管理的自治系統(Autonomous System,AS)抽象成一臺大的交換機,并生成一張域轉發表來描述AS與其鄰居之間的連接。當拓撲發生變化時,域轉發表將廣播至鄰居域中的協同控制器。從所有鄰居域中的協同控制器收集到域轉發表后,每個POF控制器會構建一個全局虛擬拓撲并保存于本地。當域間流量到達時,其可以通過域轉發表數據庫計算出正確的下一個域并根據域內的拓撲信息再計算出最優路徑完成轉發。對于需要特定QoS的流量,控制器還可以通過與其他控制器協作,在多個域間緩存端到端的路由路徑。

在域間模塊之間捕獲的JSON數據分組,主要用于交換域間轉發表和發送端到端路徑的域間消息。在該協議的數據報文中有必選字段和可選字段,POF控制器可以根據必選的類型字段判斷域間數據分組需要更新的數據庫。通告域間轉發表的數據報文會有一個可選字段,內容是一個數組,該域內的每個出口交換機都是一個成員對象,收到這類報文的控制器可以根據這個數組知道鄰居域的全局拓撲信息。通告端對端路徑的數據報文則有一個匹配列表字段,成員對象是發送端和接收端的POF中間幀二維元組信息以及IP地址,當端到端的流到達該域時,控制器會優先匹配這條報文所映射的路由,這種狀態直至拓撲發生變化時,控制器收到新的域間轉發表才會發生增量更新。

3.2.2 POF交換機部署

為了使用POF來支持未來開發的新協議,需要在數據平面的POF交換機中預先安裝相關的POF流指令集。POF流指令集的類別如表2所示。

表2 POF流指令集的類別

編輯指令用于編輯數據分組。本文系統在以太包頭和IP包頭之間插入POF中間幀,當IPv4數據分組進入基于POF的SD-WAN環境的入口網關時,交換機可以通過ADD_FIELD為流添加POF中間幀來區分流量,特別的是,SD-WAN中的企業網內部通常是一個采用網絡地址轉換協議的局域網,局域網內的數據分組傳輸并不會通告到其他網絡中,因此即使某些值在其他網絡中代表別的含義也不會發生沖突。

轉發指令用于分組轉發。在一個網元中,數據分組的轉發過程可能會包含多個進程,用戶可以根據功能將它們分成若干個流表,例如3層解析流表、3層封裝流表等。

條目指令用于實現交換機對流條目進行操作,類似于EDITING指令集。對流條目進行操作可以幫助POF交換機實現許多需要學習網絡信息的協議規則,例如拓撲檢測、路由計算和維護鄰居關系。基于POF的SD-WAN轉發方案中,MAC地址與端口號的映射關系由一張單獨的流表儲存,它會在輸入端口處檢查流的MAC地址字段。如果映射表中不存在此MAC地址,用戶則可以通過ADD_TABLE_ENTRY方法來添加關于源的MAC地址和輸入端口,拓撲檢測和路由學習也可以采用類似操作來實現。

跳轉指令集幫助交換機改變數據分組的處理過程,流指令集以流的級別實現一些關于流全局狀態的操作。

4 實驗分析

4.1 單鏈路中的實驗分析

單鏈路結構指2臺終端之間只有一條鏈路而沒有冗余,這種結構通常出現在拓撲的末端,即接入層。因為企業組網通常只需要在匯聚層為匯總的流量部署主備鏈路而不用為每一臺終端設備都準備冗余。因此,接入層的終端之間互相通信的場景通常可以簡化為這種拓撲環境下的數據分組轉發。

使用Mininet自帶的圖形界面工具搭建的測試平臺由4臺基于Open vSwitch的軟件交換機組成,添加了支持POF的擴展并提高了轉發性能。由于需要實驗驗證的網絡規模屬于中小規模并且由個人電腦進行模擬,因此將Open vSwitch交換機在VMware虛擬機中運行。每臺POF交換機都配備了2個1GbE的虛擬端口并實現基于POF的高吞吐量數據分組正常轉發。

除了4臺交換機外,拓撲中還有1臺控制器負責控制層面決策,2臺終端(h1,h2)用來模擬SD-WAN中的流量。為了驗證POF的功能,使用h1對h2進行ping操作,當ICMP_Request流的第一個數據分組到達節點1時,入口交換機發現沒有要匹配的流條目。隨后,節點1會利用Packet-In消息封裝該分組并上傳到SD-WAN控制器。該控制器計算出唯一路徑(1,2,3,4)并通過Packet-Out指示節點1上的交換機將POF包頭插入到數據分組中以攜帶路徑信息。需要注意的是,這些操作發生在交換機上而非控制器端,控制器通過POF流指令集完成流表下發并指導交換機完成POF中間幀的插入。插入之后的報文格式如表3所示。

表3 單鏈路拓撲實驗中的POF封裝包

節點1會把類型值改為“0x0908”來表示該數據包是一個POF封裝的數據包。TTL和4個出向端口組成POF中間幀,其中TTL占8個比特用來顯示該數據包的TTL,在經過每個節點時會通過DEC_FIELD指令自減1,當它到達節點4時會降為1,同時交換機會把以太類型字段修改回原來的“0x8000”。因為實際的網絡中數據分組所需經過的交換機數是未知的,所以POF中間幀采用TLV可變長格式,逆序的保存了轉發路徑上的每一跳的出向端口,每經過一個節點交換機都會通過DEL_FIELD指令以及端口字段的標準offset和length來取出并刪除最后一個出向端口,并通過OUTPUT指令完成轉發。同時,由于實際網絡中通常存在傳統網絡與SD-WAN網絡并存的情況,因此上述過程可以在數據包到達節點4時還原為最初進入SD-WAN環境的格式,即使節點4到h2之間還存在一段傳統網絡,數據包也可以正常轉發而不會因為格式變化而被誤讀和丟棄。

圖3顯示了WireShark在節點1捕獲到的數據分組。其中第1個和第4個是在交換機的左側端口捕獲,其余2個則是在右側端口捕獲。可以看出,第1個數據分組是從左側端口進入的98 Byte的ICMP_Request數據包;第2個數據分組的長度變為104字節,這正好是一個TTL字段和4個出向端口字段的長度,此外,以太幀中的類型字段也變成了“unknown(0x0908)”,可見原始數據包已經在POF控制器的指導下被封裝成了適用于POF傳輸的數據分組;第3個數據分組是來自s2的回包,由h2發出并且長度為100 Byte即只剩下多出的TTL字段,這驗證了POF中間幀在傳輸過程中會完成自減;第4個數據分組是長度為98 Byte的ICMP_Reply數據包,驗證了封裝了POF的報文在從SD-WAN的環境內轉發完成之后變回了標準的原始格式。

圖3 POF功能抓包驗證

為了驗證基于POF的SD-WAN轉發方案與OpenFlow方案的性能差別,利用網絡測試工具iPerf來模擬網絡中的背景流量,接著進行連通性測試來記錄每次實驗ICMP請求到響應所產生的延遲,然后逐漸添加拓撲中的交換機數量并觀察延遲的變化。圖4(a)顯示了OpenFlow方案與POF方案的延遲結果對比,由此可見,OpenFlow方案隨著交換機數量的增多延遲顯著提高,而本文提出的基于POF的轉發方案可以維持一個常數級的延遲時間。這是因為基于POF的方案在數據分組到達入口交換機時就對它進行了封裝,后續的交換機不需要與控制器進行信息交互而只需從POF中間幀中取出相應的出向端口就可以正確的完成轉發。接著使用iPerf開始泛洪ICMP流量,用來模擬POF在真實環境中流量負荷逐漸增多的情況并持續10 s左右,觀察流表條目數的變化情況,結果如圖4(b)所示。由此可見,與OpenFlow方案相比,POF方案總的流表條目數大約減少了55%~67%,更重要的是隨著流表條目數的增加,本文提出的基于POF的轉發方案的優勢越來越明顯。這是因為入口交換機需要安裝基于每個流的流條目,而核心交換機可以共享流條目,且傳統的OpenFlow需要在轉發路徑的每一跳交換機上都安裝基于每個流的流條目才能使數據分組正確轉發。

4.2 多播POF的實驗分析

除了單鏈路的拓撲模型,廣域網中絕大多數的節點之間都存在一條以上的鏈路以實現負載均衡和災難恢復。多播是當今廣域網中廣泛使用的通信方案,常用來實現視頻會議、數據備份等服務且具有很高的傳輸效率。

使用POF源路由實現多播的核心問題在于如何在包頭中編碼整個多播樹,為了解決該問題,本文設計了基于POF多播的遞歸方法。在獲得多播樹后,首先尋找其主要路徑[32](指多播樹最短的分支(就跳數而言),主要路徑連接了源交換機與其中一臺多播目的交換機),假如樹存在多個最短的分支路徑就隨機選擇其中一個。然后,在主要路徑上再將分支節點[33](指從根向葉子節點路徑上有多條分支鏈路的交換機)視為源交換機并開始查找下一級的主要路徑,遞歸地重復這個過程直至所有目的交換機都與主要路徑相連。此時,將多播樹分割成若干個非重疊的分支并用其來實現基于POF的多播。為了實現POF中間幀的封裝,方案依舊采用表3的結構來編碼多播樹,不同的是設計一個MPort字段來替換表3中的Port字段,該字段由分支節點校驗位和組標簽2個子字段組成。其中,分支節點校驗位表示該交換機是否為分支節點,若是,則取1,否則取0。組標簽字段為每個活動的多播會話分配一個標簽,因此該字段可以用于在分支節點識別數據分組的多播操作,這會把數據分組水平分割到其他出向端口并在必要時在其上編碼新的POF包頭。當數據分組到達分支節點時,交換機會將數據分組復制為若干個副本并分別為其封裝新的POF包頭,當它們轉發到下一跳節點時,交換機就可以根據新的POF包頭對其進行正確的轉發。

方案設計了基于POF的組播功能并進行性能分析。同樣利用iPerf來模擬背景流量,利用iPerf在h1泛洪ICMP報文并逐漸增加泛洪規模進行壓力測試,觀察ICMP報文的延遲時間并比較2個方案的結果。

由于分支節點交換機會為數據分組封裝新的POF包頭,而非分支節點交換機遵循的轉發邏輯與上一節相同,多播實驗中同樣也只有入口交換機即節點1需要與控制器進行信息交互,因此多播實驗中的延遲和單鏈路拓撲中的單播場景是一致的,實驗結果如圖5(a)所示。由于該實驗中沒有增加交換機的數量,因此整個網絡對于每個流的流表條目數一般是恒定的。在h2、h3、h4、h5 4臺主機上記錄隨著流量負荷增長成功接收到的吞吐量所占百分比,即用接收吞吐量來代替流表條目數評估該方案的性能。利用iPerf在h1上生成100個多播會話并廣播到4臺目的主機上,每個目的地提供0.25 Mb/s的ICMP流量。對4臺主機上的接收吞吐量取平均值,實驗結果如圖5(b)所示。其中,基于POF的多播方案可以實現接近100%的接收吞吐量。這是因為POF方案中核心交換機可以共享流條目的特性,每臺交換機只存在少于1 000條的流條目數,而OpenFlow方案需要在轉發路徑上的每一跳上安裝基于每個流的流條目才能實現正確轉發。可以看到,直到每臺交換機分配超過2 200個流條目時,OpenFlow方案的接收吞吐量才能接近100%。實驗結果表明,對于流級別的流量管理,POF方案比傳統OpenFlow方案更有效地利用流條目,這一結論不僅適用于單播場景,而且也適用于多播場景。

圖5 OpenFlow方案與POF方案的多播實驗結果對比

5 結束語

本文從SDN技術在廣域網中的應用即SD-WAN的解決方案入手,提出一種將POF技術應用在SD-WAN環境下的源路由快速轉發方案。通過理論闡釋和實驗驗證2個方面證明該方案比原生OpenFlow方案具有更小的延遲以及更強的網絡性能,這對類似政企專業類延時敏感業務具有良好的應用價值。下一步的研究工作將完善POF包頭中間幀的擴展性設計,以應對更高級的應用需求,同時,基于POF的轉發方案對于某些惡意流量的識別和區分也同樣是值得繼續深入研究的重點。

主站蜘蛛池模板: 五月丁香伊人啪啪手机免费观看| 不卡色老大久久综合网| 成年片色大黄全免费网站久久| 国产欧美日韩资源在线观看| 国产玖玖视频| 在线欧美日韩国产| AV色爱天堂网| 欧美国产视频| 国产精品黄色片| 国产欧美日韩综合在线第一| 国产午夜精品一区二区三| 国产精品亚洲一区二区在线观看| 91免费国产在线观看尤物| 欧美a级在线| 亚洲国产成熟视频在线多多 | 看国产毛片| 日本高清有码人妻| 国产视频自拍一区| 视频一区亚洲| 午夜一级做a爰片久久毛片| 国产成人精彩在线视频50| 青草视频免费在线观看| 91成人在线观看视频| 精品国产免费观看一区| 国产精品嫩草影院av| 国产精品免费露脸视频| 激情五月婷婷综合网| 国产精品嫩草影院视频| 日韩国产黄色网站| 精品偷拍一区二区| 亚洲精品无码人妻无码| 国内精自视频品线一二区| 免费国产在线精品一区| 97国产一区二区精品久久呦| 人妻无码中文字幕一区二区三区| 99精品在线视频观看| 亚洲精品福利视频| 精品黑人一区二区三区| 亚洲中文字幕av无码区| 中文字幕久久亚洲一区| 亚洲午夜18| 九色91在线视频| 999国内精品久久免费视频| 欧美午夜视频在线| 国产在线观看一区精品| 欧美精品三级在线| 爱爱影院18禁免费| 国产专区综合另类日韩一区| 天天色综合4| 国产真实乱子伦精品视手机观看| 伊人成人在线视频| 日韩麻豆小视频| 欧美日韩成人在线观看| 久久毛片基地| 色偷偷一区| 伊在人亚洲香蕉精品播放| 人人91人人澡人人妻人人爽| 国产色网站| 日本人妻一区二区三区不卡影院 | 99伊人精品| 日韩色图区| 亚洲狼网站狼狼鲁亚洲下载| 亚洲成人高清无码| 自拍欧美亚洲| 欧美一级在线播放| 欧美国产日韩一区二区三区精品影视| 亚洲三级成人| 日韩av无码精品专区| 国产性爱网站| 激情视频综合网| 久久精品无码国产一区二区三区| 免费看黄片一区二区三区| 综合亚洲色图| 国产精品美女网站| a欧美在线| 92午夜福利影院一区二区三区| 免费毛片视频| 999福利激情视频| 一边摸一边做爽的视频17国产| 欧美专区日韩专区| 亚洲欧洲日韩综合| 国产91无码福利在线|