張俊
中通服咨詢設計研究院有限公司
隨著網絡應用的不斷創新與增量部署,運營商網絡需要承載的數據流量及業務信息呈“爆炸式”增長。同時,醫療、公安及無人駕駛等垂直行業也對網絡性能不斷提出新的需求,這將給傳統IP網絡帶來巨大的壓力,如果仍采用“盡力而為”的傳輸方式,將難以滿足復雜性和動態性的需求。為此,運營商通常采用“過度配置”的方式來確保他們所期望的服務質量,這將導致大量網絡資源的浪費。并且,傳統IP網絡由交換機、路由器、防火墻以及各種類型的中間件組成,為了能夠在現網中提供相關QoS保障,需要在這些設備中添加繁多的協議支持,這將使得網絡復雜度越來越高,管理難度不斷上升,最終到達網絡性能瓶頸狀態。SDN通過解耦轉發平面與控制平面,為上層應用及網絡服務提供商抽象底層網絡基礎設施,提供開放的接口,使得網絡可編程,簡化了網絡的配置與管理,為復雜網絡的QoS保障機制提供了更多的可能性,SDN網絡架構如圖1所示。通過邏輯集中的控制平面,能夠獲取全網的拓撲和相關QoS參數信息,包括鏈路、主機以及交換機等狀態信息,網絡管理員通過REST API北向接口來制定路由策略,采用OpenFlow南向協議以更加細粒度的方式處理網絡流量,為應用流選擇最佳的路由路徑,以滿足應用在傳輸過程中的QoS約束需求。

圖1 SDN架構
為了保障應用服務質量并且提升端到端網絡性能,在傳輸數據流量前,需要在發送端和接收端之間為每種應用選擇一條最佳路由,這對于緊耦合的IP網絡架構而言,實現起來困難。
針對端到端網絡性能的差異化需求,學術界和產業界均探索出相關解決方案,以下將分析3種經典方案:IntServ(Integrated Services,綜合服務)、DiffServ(Differentiated Service,區分服務)以及MPLS (Multi-Protocol Label Switching, 多協議標簽交換)。
IntServ由 IETF(The Internet Engineering Task Force, 互聯網工程任務組)提出,用于在端到端流量傳輸過程中,基于每條流提供QoS保障。在發送數據流量前,應用提出特定QoS約束請求,網絡設備通過RSVP(Resource Reservation Protocol,資源預留協議)信令協議在網絡中申請特定網絡資源,如帶寬、時延等,只有在獲取到確認信息后,網絡設備才開始發送數據流量。雖然該機制能夠有效地滿足應用QoS約束需求,但是在傳輸鏈路中,網絡設備均需支持RSVP信令協議,存儲與服務相關的網絡狀態信息,導致網絡負載過高,難以管理,可擴展性較差,并且該機制不適用于較短生命周期的應用流。
為了應對IntServ擴展性差的問題,IETF又提出了DiffServ,該機制基于隊列優先級和帶寬分配創建一組不同的服務類型,如帶寬、時延和丟包率等。發送數據流量前,在網絡入口或邊界,檢查數據報內容,使用預先配置的應用類型進行分類,差分服務類由IP數據報報頭的DSCP(Differentiated Services Code Point,差分服務標記字段)來表示,通過這些字段選擇網絡中轉發的節點,路由器根據DSCP字段執行PHB(Per Hop Behavior,逐跳行為),PHB即轉發設備對報文的處理行為,每個PHB與一種轉發方式或QoS要求相對應,能夠劃分為類選擇器、加速轉發、確保轉發和盡力而為轉發四大類,從而提供一定程度上的QoS保障。然而,由于該機制以相同的方式處理相同類別的數據報,且采用逐跳的機制,導致無法適用于基于流的端到端QoS保障。
同樣的,MPLS也由IETF提出,該機制通過標簽技術減少復雜的路由表查找過程。邊界路由器基于FEC(Forwarding Equivalence Class,轉發等價類)在每個報頭添加一個標簽,數據報根據該標簽進行高速的轉發與路由,并且它能夠與IntServ和DiffServ結合使用。但是該機制部署比較復雜,管理困難,并且屬于靜態的,用于動態QoS保障的代價較大。
綜上所述,現有QoS保障機制由于建立在當前互聯網分布式架構之上,缺乏全網資源的動態監控,并且逐跳路由的方式無法動態地適應當前網絡飛速發展的需求,因此并不能夠真正意義上便捷有效地為服務提供商、企業或終端用戶提供端到端QoS保障。
SDN轉控分離、網絡開放可編程等特性,使得網絡管理員能夠簡單高效地在所部署的SDN架構中編寫動態的、定制化的程序,用于管理、配置并優化網絡資源。比如通過OpenFlow協議采集網絡性能參數,設計并實現了基于遺傳算法的QoS路由算法,能夠快速地找到滿足應用需求的可行路徑。OXP(Open eXchange,開放性可變長協議)協議針對多管理域場景,設計了一種高效且支持多模式的東西向接口協議。同樣的,WE-Bridge采用了完全分布式控制平面,解決了SDN 網絡中單一控制平面所面臨的瓶頸問題,為互聯網的QoS保障機制提供了一種新的解決思路。以下將分別從SDN架構對QoS的支持和OpenFlow協議對QoS的支持兩個方面進行闡述。
通過對SDN“3個平面、3個接口”架構的研究與分析,可以發現該架構在QoS保障中展現出以下幾項突出優勢:
(1)應用感知的流量工程:邏輯集中的控制平面,使得應用層能夠通過控制平面獲取數據平面實時的網絡資源信息,并且結合DPI(Deep Packet Inspection,深度包檢測)技術實現應用分類,網絡管理員能夠定義應用與QoS優先級隊列間的映射表,更好地適應動態的應用需求。
(2)網絡資源監控與端到端QoS支持:控制平面通過OpenFlow南向協議與數據平面進行交互,對域內網絡資源進行實時監控,如鏈路帶寬、鏈路傳輸時延等。
(3)網絡功能虛擬化:在SDN架構中,通過OpenFlow南向協議實現網絡切片,用以創建特殊的專用網絡,適應垂直行業的差異化需求。
(4)區分服務:在會話、用戶、設備、應用程序級別上,通過OpenFlow多域匹配的方式,能夠實現更加細粒度的網絡控制,并且允許網絡提供商提供不同代價的策略。
(5)多路徑路由:當發送/接收端之間存在多條物理鏈路時,根據OpenFlow多匹配域的特性,能夠實現多路徑路由,充分合理有效地使用網絡資源。
OpenFlow作為SDN網絡架構中南向接口的一種實現方式,由斯坦福大學提出,規范由ONF(Open Networking Foundation,開放網絡基金會)制定與維護。目前,OpenFlow已經從最初的1.0版本發展到了1.5版本,其中,OpenFlow1.3版本最為穩定,被廣泛采用。
1.0版本中包含一個可選項“enqueue”,數據流通過依附在端口上的隊列進行轉發,一個OF交換機根據端口情況,通過OF-CONFIG協議配置一個或多個隊列,包括Minrate、Maxrate和Experiment 三種參數,控制器通過南向協議查詢交換機的隊列信息。但是,該版本只允許單張流表,無法滿足應用的多樣化需求。為此,1.1版本采用多級流表的方式,增加對VLAN和MPLS標簽的匹配以及流量類型的支持。1.2版本中添加了最高速率隊列屬性。
1.3版本通過采用Meter表實現限速功能,結構如圖2所示。每條流表項都能夠在相關指令集中定義一個Meter表,用于限速的實現。一條流表只能綁定一條Meter項,一條Meter項能被多條流表綁定,每個Meter表可以包含一個或多個Meter Bands,用于定義Band類型與速率。
并且,Meter表能夠與“set_queue”隊列設置操作結合使用,以提供復雜的QoS支持,如DiffServ等。

圖2 Meter表
以下將分別從“多媒體流QoS約束路由”和“域間QoS路由”兩種應用場景進行分析,驗證基于SDN的QoS解決方案的可行性與有效性。
近年來,多媒體應用發展迅猛,如視頻會議、互動游戲和VoIP(Voice over Internet Protocol,網絡電話)等,并且這些應用對端到端網絡帶寬、時延等都有著嚴格的要求,因此需要采用更加復雜且高效的路由協議來滿足QoS需求。然而,由于現有互聯網路由協議無法獲取全局網絡視圖,以及現有QoS保障機制匱乏等局限性,在現網中高效地傳輸多媒體流將面臨各種挑戰。SDN憑借諸多優勢為“多媒體流QoS約束路由”提供了一種新的解決方案,采用SDN架構的網絡部署方式如圖3所示。首先,通過分流設備,數據流量能夠大致被分為兩種隊列,一種是帶有QoS約束的高優先級隊列(如視頻會議等),一種是采用“盡力而為”的低優先級隊列。

圖3 SDN部署方式
具體流程如下:
(1)SDN控制器采用OpenFlow協議獲取網絡拓撲及鏈路、節點信息,并且采集相關QoS參數信息。
(2)新的應用流到達交換機,由于沒有匹配的流表項,則將報頭通過packet-in消息上送至控制器。
(3)控制器查看報頭信息,區分應用類型。
(4)如果該應用流不帶有QoS約束需求,則考慮低優先級隊列,根據控制器中的默認路由算法(如迪杰斯特拉算法)進行路由計算,計算結果為<發送端-S2-S3-S5-接收端>,并采用OpenFlow協議下發流表。
(5)如果該應用流帶有QoS約束需求,仍采用迪杰斯特拉算法計算最短路徑,即<發送端-S2-S3-S5-接收端>,當遇到鏈路擁塞、處理時延過大等問題時,難以提供QoS保障。因此,對于帶有QoS約束需求的應用流,需考慮高優先級隊列,SDN控制器根據全網拓撲及鏈路狀態信息,通過路由模塊計算滿足需求的K條備選鏈路,最終選擇代價最小的鏈路,這類“約束最小代價路徑”問題是NP難度的,可采用LARAC算法進行求解,計算結果為<發送端-S2-S1-S4-S5-接收端>,并采用OpenFlow協議下發流表,該轉發鏈路雖然跳數更多,但是由于鏈路狀態更好,所以更加符合QoS的約束需求。
上述分析結果表明,SDN邏輯集中控制的方式能夠快速響應特定應用對網絡性能的定制化需求,并且通過優先級隊列的方式能夠有效地實現多媒體流的QoS約束路由。
傳統網絡針對跨域路由所提供的解決方案,大多是采用BGP(Border Gateway Protocol,邊界網關協議)。通過分布式部署模型雖然能在一定程度上滿足網絡的擴展性要求,但是“hop-by-hop”的路由決策機制以及基于目的地址前綴的單路徑通告方式,由于路由過程中缺乏協商,各域內的局部最優路由無法保證全局最優,從而造成用戶的體驗質量(Quality of Experience,QoE)下降。SDN網絡具有集中控制、多匹配域等優勢,能夠細粒度地實現路由策略的表達,并且,各管理域控制平面都能夠獲取到各自域內網絡節點信息及相關服務質量參數信息,這將為域間交互與協商帶來諸多便利。多管理域拓撲如圖4所示。

圖4 多管理域拓撲圖
該部署方案采用完全分布式的控制平面,能夠有效地應對網絡不斷擴展的趨勢。其中,轉發設備間不再互相共享網絡狀態信息,而是通過OpenFlow南向協議將本地狀態信息直接發送給控制平面,各域的控制平面通過與鄰域控制平面間信息的交互,并觸發協商,決策域內路由以及到下一管理域的域間路由,根據協商的結果,再通過南向接口對數據平面進行相應的配置。
路由信息傳遞與更新的具體流程如下:
(1)控制器C1、C2和C3均運行Speaker實例,并且發生HELLO報文,與相鄰Speaker實例間建立TCP連接。
(2)Speaker間交互OPEN報文,建立鄰居關系后,進入ESTABLISHED模式。
相鄰兩方在ESTABLISHED模式下交互UPDATE報文,完成路由信息的傳遞與更新。C1解析IP報頭信息。若目的IP地址在當前域,則根據域內拓撲及相關QoS參數信息,根據本文3.1中所述方案完成域內QoS約束路由。若目的IP地址非本域,則根據NLRI,結合應用需求及域內路由策略,選擇最佳下一管理域C2,觸發域間協商。域間協商與路由的具體流程如下:
(1)C2接收到C1的協商請求報文后,檢查是否與本域策略沖突,若沖突則直接拒絕;否則根據協商請求報文中的應用QoS需求,計算轉發路徑。倘若存在滿足需求的網絡資源,則回復ACCEPT報文及對應的代價信息,否則回復REJECT報文。
(2)倘若目的IP不在C2所管轄的域中,則C1重復以上步驟,與C3進行協商。
(3)最終,C1如果收到的報文為ACCEPT,代表協商成功,各控制器根據協商結果配置域內交換機。
(4)當控制器發現域內資源無法滿足之前協商的SLA(Service-Level Agreement,服務等級協議)約定或域內/間鏈路發送故障時,觸發協商通知,及時響應并重路由。
上述分析結果表明,將SDN架構運用于多管理域間的路由,首先能夠降低頻繁路由信息交互帶來的網絡負載;其次,能夠方便地實現管理域間關于應用QoS約束的請求與協商,以及靈活的SLA約定,為關鍵應用提供端到端服務質量保障。
垂直行業對于網絡性能的迫切需求,以及傳統QoS保障機制在實施與部署過程中所存在的諸多缺陷與弊端,使得傳統IP網絡面臨艱巨的挑戰。SDN的興起,打破了現網封閉式的網絡架構,簡化了網絡配置與管理,提高了網絡的靈活性,為QoS保障帶來了新的機遇。本文結合SDN架構思想以及南向協議標準OpenFlow,研究了基于SDN的QoS保障機制。對于“輕負載”的網絡環境,直接選擇滿足QoS約束的端到端路由路徑;對于“重負載”的網絡環境,通過隊列優先級機制來實現。并在此基礎上,對兩種應用場景進行了假設,分別從域內和域間兩個角度展開理論論證與分析,表明SDN在現網QoS機制的改進工作方面具備很好的應用價值。