謝立軍,胡宇翔,汪斌強,蘭巨龍,程國振,王志明
(國家數字交換系統工程技術研究中心,河南鄭州450002)
研究與開發
網絡可編程技術研究
謝立軍,胡宇翔,汪斌強,蘭巨龍,程國振,王志明
(國家數字交換系統工程技術研究中心,河南鄭州450002)
網絡可編程技術通過在網絡設備提供開放的可編程接口,增強了網絡的靈活配置能力和資源整合能力。首先從網絡可編程技術的誕生背景入手,回顧了開放可編程思想、控制與轉發分離架構以及目前典型的軟件定義網絡(software defined networking,SDN)和網絡功能虛擬化(network function virtualization,NFV)架構。然后,詳細闡述了SDN架構下的協議無關性、流表實現、高級編程語言以及與NFV融合方面的研究成果。最后,總結了網絡可編程技術的研究趨勢。
網絡可編程;軟件定義網絡;網絡功能虛擬化;協議無關性;編程語言
隨著網絡規模不斷擴大,用戶數日益增多,網絡新技術、新應用日趨多樣,傳統互聯網的體系結構和設計理念日益暴露出嚴重不足[1]。首先,網絡服務多樣化要求打破傳統網絡盡力而為的服務模式,提高網絡的服務能力,以滿足用戶部署新型服務和協議的需求;其次,作為一個龐大的復雜系統,各種協議的決策邏輯共同控制網絡流量的機制,使網絡行為更加難以預測和控制;最后,網絡設備種類多樣且相互獨立和封閉,使得網絡管理員只能通過命令行接口(CLI)等方式,手動地將高層策略轉化為設備底層配置命令來實現網絡管控和運維,導致網絡更新緩慢、運行成本膨脹。研究人員發現,存在上述問題的根本原因在于網絡核心設備控制邏輯與數據轉發之間緊耦合以及核心設備之間的分布式控制。
學術界和產業界普遍認為,要彌補網絡日益凸顯的不足,應該重新設計網絡控制和管理結構,將控制邏輯與數據轉發相分離,采用集中控制的方式,降低網絡核心設備的復雜性,提高網絡控制和管理的靈活性,增強對網絡新技術、新協議的支持能力,從而提出了網絡可編程的思想。網絡可編程是對網絡整體功能和行為的高度抽象以及軟件編程的自定義,其核心思想是通過對網絡節點提供開放可編程接口,利用編程語言向網絡設備發送強大的編程指令,實現對網絡功能和行為的按需管控和新業務的快速部署。隨著國內外對網絡可編程思想認識的不斷加深,網絡可編程技術的不斷完善,該技術逐漸成為構建新型未來網絡的核心技術。2008年,SDN(software defined networking,軟件定義網絡)[2]思想隨著OpenFlow[3]的面世推廣開來,其借用了電話網絡的思想,將控制和轉發平面嚴格分離,簡化了網絡管理和新服務的部署。隨后,作為對可編程技術的進一步補充和應用,ETSI[4]在2012年提出了網絡功能虛擬化的思想,進一步推動了網絡可編程思想落地的進程。
隨著硬件/軟件、網絡操作系統、虛擬化等技術水平的不斷提高,網絡可編程技術逐漸成熟。整體來說,網絡可編程技術分為3個發展階段:早期開放可編程思想,將可編程功能的思想引入網絡設計;“控制與轉發分離”研究推進了網絡控制平面與轉發平面之間開放接口的進一步研究;對基于OpenFlow的SDN和NFV的研究不斷深入和推廣,提高了網絡可編程技術實際部署的可行性。下面對網絡可編程技術發展史進行詳細介紹。
2.1.1 基于開放信令的思想
從1995年開始,OPENSIG工作組專注于研究“開放、可擴展、可編程的ATM、Internet和移動網絡”,第一次真正將可編程思想加入網絡設計[5]。其主要思想是通過開放、可編程的網絡接口訪問網絡硬件,將通信硬件和控制軟件分離并且使開放可編程接口標準化。但是,由于垂直、整合的交換機和路由器等網絡設備具有封閉特性,導致“開放信令”思想在當時的技術條件下難以實現。不過,隨著軟硬件技術的不斷發展,后續的IEEE P1520、MSF(Multiservice Switching Forum)[6]、國際互聯網組織IETF發布的GSMP[7]、轉發件與控制件分離ForCES工作組以及NPF(Network Processing Forum)[8]都基于該思想進行研究。
2.1.2 基于動態代碼的主動網絡思想
同期,美國國防部高級研究計劃署(DARPA)在“未來網絡發展方向研討會”上提出了主動網絡(active network)[9]這一新的網絡體系架構,該架構首次提出“面向定制化服務可編程的網絡基礎設施”思想。隨著美國的GENI[10]、NSF FIND[11]和歐盟的FIRE[12]等項目不斷推進,主動網絡成為一系列新型網絡架構方案中的研究熱點。主動網絡產生了兩個主要模型:一是可編程路由/交換機模型[13,14],即網絡操作員利用“out-of-band”方式將程序代碼放置到網絡節點運行;二是封裝模型[15],即用戶利用“in-band”方式,將程序代碼通過數據分組的形式傳遞到網絡節點運行。盡管主動網絡的思想有效、可行,但是由于在當時缺乏大量的應用范例和工業部署需求,脫離硬件技術水平,難以廣泛使用。
上述兩種可編程思想對開放架構網絡研究具有一定的互補性,其共同目標都是實現面向科研人員和終端用戶的網絡開放可編程,研究重點都主要圍繞轉發平面的可編程,由于受到軟硬件技術的限制,僅僅能實現設備級的可編程。隨后,關于網絡開放可編程的研究工作,基本都采用了基于開放信令思想的控制平面(control plane)和轉發平面(data plane)分離的基本體系結構。下面對這些研究工作進行詳細介紹。
網絡規模的不斷擴大,對服務提供商提出了集中式控制和更高可靠性的需求,設備生產商將控制平面軟件從分組轉發硬件中分離,直接部署在整合的控制器硬件中。這種“控制與轉發分離”的設計為新型網絡創新帶來新的機遇和挑戰:控制平面和轉發平面之間的開放可編程接口的設計以及網絡在邏輯上的集中控制。圍繞這兩個方向比較典型的研究工作和項目包括DCAN(devolved control of ATM networks)[16]、ForCES[17]、4D(decision、dissemination、discovery、data)[18,19]和NETCONF[20]。
DCAN將大量網絡設備的控制、管理功能與轉發設備本身解耦,并委托給第三方執行,硬件設施只執行簡單的轉發操作。與之不同,ForCES將網絡設備的內部架構重新定義為兩個邏輯實體:轉發元件(FE)和控制元件(CE),FE使用底層硬件進行數據分組的處理,CE使用ForCES協議控制FE進行數據分組的處理。4D項目將網絡分為決策平面、數據平面、分發平面和發現平面。其中,決策平面具有全局的網絡視圖,利用分發平面和發現平面分別提供通信和信息服務,數據平面負責轉發分流。該4層架構解決了網絡邏輯決策平面和分布式的硬件設備結合過緊的問題,實現了路由選擇邏輯和管理網絡元素之間交互協議的嚴格分離,使網絡更加頑健、安全,并有利于異構網絡的管理。NETCONF協議為網絡設備提供了一個API(application prgramming interface,應用程序編程接口),利用該API可以發送和接收可擴展的配置數據[21]。
該階段的項目研究主要實現面向網絡管理者的可編程技術,研究重點為控制平面編程技術,實現了網絡級的視圖和控制。簡而言之,控制與轉發分離的架構簡化了網絡管理和配置操作,實現了網絡控制的集中化和頑健性,為網絡設備提供了開放可編程接口,提高了網絡可編程能力,為SDN的產生奠定了理論和實踐基礎。
2006年,在控制與轉發分離架構的基礎上,美國斯坦福大學的Clean Slate研究組針對企業網的安全管理需求,提出了面向企業網的管理架構SANE[22],首次實現了路由和接入在邏輯上的中央安全控制和更細粒度的流表轉發策略。次年,在對SANE進行功能擴展的基礎上提出了Ethane[23],實現了基于流表進行報文轉發的交換機。隨后,在這兩個項目研究成果的基礎上,Nick McKeown教授等人提出了OpenFlow,并大力推廣SDN的思想。
SDN技術的本質是網絡轉發功能的可編程性,通過將控制器作為可編程控制的切入點,網絡管理員通過網絡應用層軟件能夠動態、快速、按需地進行網絡配置。OpenFlow作為第一個具有現實意義的SDN協議和原型實現,具有良好的實現性,使SDN更加實用。基于OpenFlow的SDN可編程架構的關鍵組件包括OpenFlow交換機和控制器。其中,OpenFlow交換機負責數據轉發功能,由流表、安全信道和OpenFlow協議3部分組成。控制器中運行的網絡操作系統(network operating system,NOS)實現了網絡的集中式控制邏輯,為網絡應用程序提供了面向網絡設備的可編程接口。目前,支持OpenFlow協議的多種控制器軟件已經得到開發和推廣,第一個網絡控制器平臺NOX[24]已經演化出了多個版本[25]。隨著研究的進展,Maestro[26]、POX[27]、Beacon[28]、Floodlight[29]、Ryu[30]、SNAC[31]、Trema[32]、ONOS[33]、RouteFlow[34]、NOX-MT[35]、Onix[36]和OpenDaylight[37]等多個控制器軟件平臺實現了更加完善的功能。下面以典型的OpenDaylight控制器為例,介紹控制器的組成結構。
OpenDaylight控制器架構分為3層[37]:南向協議插件、SAL(service adaptation layer,服務適應層)和北向應用功能,如圖1所示。其中,南向協議插件作為控制器與網絡設備之間的接口,支持OpenFlow、BGP-LS、LISP等協議;SAL將南向協議插件功能轉換為高層應用/服務功能,高層應用功能為應用提供北向API。應用功能包括拓撲輸出、目錄管理和OpenFlow統計管理等。OpenDaylight控制器支持不同的南向協議插件以及不同的服務和應用集合,允許程序開發者和網絡研究人員更加專注于SDN的API,而不用考慮與網絡設備之間的通信協議。
作為目前新型網絡架構的研究熱點之一,SDN既繼承了前期控制與轉發分離思想,也實現了可實際部署的網絡可編程關鍵技術,對于網絡革新具有重要的意義。

圖1 OpenDaylight控制器架構
(1)統一了網絡設備功能
傳統的網絡設備依靠不同的分組頭字段進行流量控制,而基于OpenFlow協議的交換機則可以使用任意的分組頭匹配域定義轉發行為,實現了網絡設備匹配域與轉發行為的統一。同時,基于OpenFlow的SDN歸一化了規則配置技術,將粗粒度規則預配置改進為反應式的細粒度規則配置。
(2)提供了網絡操作系統視圖
不同于主動網絡中提出的節點操作系統,SDN中的網絡操作系統[28]在邏輯上將網絡分為3層[29]:轉發層、狀態管理層和邏輯控制層,能夠對網絡狀態進行全局抽象,為網絡管理者提供了網絡級的控制視圖。
(3)實現了分布式網絡狀態管理技術[30-32]
SDN控制平面與轉發平面分離的架構導致網絡狀態管理面臨挑戰。為了實現可擴展性、可靠性和高性能,需要同時運行多個邏輯上集中的控制器,確保其協同工作。
2012年,為了應對電信網絡部署的封閉性、私有性帶來的可操作性和管理成本挑戰,20多個全球最大的電信網絡服務商組成的ISG(industry specification group)與歐盟電信標準協會ETSI提出了NFV(network function virtualization,網絡功能虛擬化)[38,39]。NFV在本質上基于云技術,通過虛擬和整合傳統的專用網絡設備功能,利用控制平面技術動態編程網絡數據流路徑,支持數據流按需經過功能/服務集合,使網絡獲得更高的靈活性,加速新服務部署,同時降低管理和資金成本[40]。
與SDN觀點不同,NFV認為,路由器不應該僅僅是一個“簡單的、啞的”轉發設備,而應是一個連接多種智能模塊、更加整合、支持定制化處理功能的設備,并對未來網絡設備架構進行了描述[41]:未來的轉發平面架構應實現網絡與通用處理硬件之間的深度整合;新型網絡設備應允許第三方自由安裝轉發平面功能;應該同時支持傳統網絡任務和新型應用。但是,在硬件架構實現上還存在爭議[42]:一種觀點認為應該用標準化、大容量設備完全取代現有的專用硬件,另一種觀點認為應將專用硬件和通用線速卡混合使用。這兩種觀點都有各自的優勢和不足,硬件資源和性能之間的平衡是考慮的首要問題。由于其巨大的發展潛力,NFV自誕生之初便獲得了廣泛關注,尤其是產業界對其前景表示十分樂觀。
綜上所述,網絡可編程基于網絡抽象實現了集中的網絡控制、自動化網絡配置和定制化的網絡服務,提高了網絡的靈活性,使網絡更加易于管理和更新。表1總結了上述各個階段網絡可編程技術研究的特點,主要從可編程范圍、可編程粒度、實現復雜性、可編程面向對象等方面進行比較。
SDN通過控制平面與轉發平面分離,提供強大的可編程接口,賦予網絡可編程能力[65]。目前,有關SDN的可編程技術研究主要圍繞控制平面和轉發平面的可編程能力的提升。下面對這兩方面的研究工作進行詳細介紹。
作為SDN轉發平面的實現范例,OpenFlow交換機以流表作為基本的數據分組處理單元,以報文解析、關鍵字匹配、報文操作組成多級流表的流水線處理結構,通過實現每個處理單元的標準化達到整個轉發平面的完全可編程。但是目前交換機的設計和實現上存在的很多問題制約了轉發平面的可編程性,比如報文解析中的協議相關性、流表實現不靈活等問題。下面就目前針對轉發平面的這兩方面的相關研究進行介紹。
3.1.1 協議無關性
在傳統網絡的5層體系結構中,對于協議的處理是分層次的,即位于不同層的網絡設備只需解析本層數據分組頭部。然而,SDN為了實現數據分組的扁平化處理,其轉發平面通過配置匹配域對不同層次、多種協議進行選擇性解析,增加可編程性的同時也帶來了協議相關性問題。以OpenFlow交換機為例:首先,OpenFlow交換機的分組頭協議解析模塊目前只實現了基本的IPv4和IPv6協議解析和目的IP地址抽取功能,其靈活性非常有限,只能適用于IP地址查找操作,而無法實現非IP地址字段的分組頭提取。其次,OpenFlow交換機中流表關鍵字的提取受到預先定義的匹配域限制,如果用戶的新協議使用數據分組頭的其他域,OpenFlow交換機將無法對其進行匹配查找。雖然OpenFlow標準不斷擴充匹配字段,但是也進一步增加了OpenFlow交換機的硬件設計成本。研究人員針對該問題進行了大量的研究工作,具體情況如下。

表1 各階段網絡可編程技術對比
(1)CAFE
針對當前轉發平面中數據分組頭解析模塊的不靈活性,Lu等人[43]提出了可編程的數據分組轉發引擎CAFE。如圖2所示,CAFE的分組頭解析處理包括3部分。其中,PKtype Identifier模塊負責識別數據分組類型,只有被識別的數據分組才會進入下一個步驟,丟棄不能識別的分組。第二部分包含多種類型的header field verifier、lookup key extractor和checksum verifier模塊,根據識別的分組類型,從中選擇相應類型的模塊進行分組頭驗證和轉發表查詢。其中,header field verifier模塊過濾掉硬件不轉發的數據分組,checksum verifier驗證分組的校驗和。Lookup key extractor提取出查找關鍵字的分組頭域集合,lookup engine負責使用關鍵字查表。Arbiter模塊檢查前兩部分的處理結果——如果出現數據分組被過濾、校驗、錯誤以及轉發表匹配失敗等情況,數據分組會被直接丟棄。由于數據分組不僅與分組類型相關,還與流表項相關,因此第三部分header modifier模塊同時支持根據“類型”信息和“流”信息修改數據分組頭。

圖2 CAFE分組頭解析模塊結構
CAFE的優勢在于其分組頭解析模塊中加入了任意比特域提取器lookup key extractor,支持數據分組頭部任意比特域的自由組合,實現了用戶自定義的查找關鍵字提取和對新型協議的支持。然而,其復雜的關鍵字提取過程給分組頭解析帶來了性能方面的挑戰。
(2)PPL
Attig等人[44]設計了分組頭解析流水線和數據分組頭部高級解析語言PPL,以面向對象方法描述了分組頭解析算法。利用FPGA的并行處理能力,設計了定制化、可編程的虛擬處理架構,能夠在系統運行時動態地更新解析算法,滿足了特殊的分組頭解析算法需求,使分組處理性能大大提高。以類C++的風格定義了每個頭部的格式和處理規則,方便用戶對新協議分組頭解析的自定義處理。PPL在XilinVirtex-7FPGA上運行的線速處理能力達到了400 Gbit/s,在解析性能上優于CAFE。
(3)PLUG
如圖3所示,傳統ASICs電路針對每種協議提供專用的查找模塊,使得硬件內的功能定義比較困難,導致數據鏈路層和網絡層的新協議部署往往需要升級硬件設備。為了便于新協議的部署,Lorenzo等人[46]提出一個靈活的查表模塊——PLUG(pipelined lookup grid),使用SRAM解決靈活的多級流表的問題,使得新協議的部署不需要改變硬件,增加了網絡更新能力,如圖4所示。

圖3 傳統線速查找模塊

圖4 流水線查找網格
PLUG設計了可全局使用、協同工作的資源“基片”,通過不同“基片”的組合,構成支持不同協議的處理單元。同時,通過資源的全局規劃使用,PLUG避免多個處理單元之間存在存儲單元或通信端口的沖突,完成了IPv4、Ethernet和Seattle等基于數據流的編程模塊,并將它們映射到PLUG硬件。PLUG架構實現了可編程的查找模塊,支持修改轉發平面的協議;設計了一個基于數據流的編程模型,基于該模型的轉發表項可靈活支持現有或新型協議的部署。但是,PLUG中大量的資源“基片”對芯片容量要求太高,而且基于散列表的查找無法進行任意字段的匹配,只能支持Match-Action模式的傳統芯片功能。
(4)POF
針對OpenFlow協議中固定匹配字段的僵化,POF(protocol-oblivious forwarding)[47]基于偏移位和長度實現了用戶自定義字段域。POF由search key、metadata和instruction 3個模塊構成,其中search key和instruction提取由軟硬件結合實現,硬件實現機制實現了協議無關性。
3.1.2 實現靈活性
由于現有OpenFlow交換機和協議將流表匹配域限制在固定的2~4層分組頭信息,導致任何使用高層信息的流必須轉發到控制器來獲得處理指令,降低了網絡效率,增加了流處理時延。同時,多級流表交換機芯片只能完成48個流表,而且在芯片制造時,流表的寬度、深度和執行順序都要預先指定,這都降低了SDN可編程技術的靈活性。針對以上問題,研究人員對軟件平臺、硬件設計、流規則更新、網絡視圖、數據分組格式等方面進行了大量研究。
(1)軟件實現
基于Open vSwitch平臺的靈活可編程性,Mekky H等人[48]設計了一個應用感知的可擴展轉發平面,以軟件形式實現了多種應用層的流處理和決策功能(TCP分片、NAT、L7服務選擇、防火墻等)。通過使用2~4層以外的分組頭信息,將OpenFlow轉發抽象歸納為有狀態的動作,將大部分的流處理限制在轉發平面。該軟件架構如圖5所示。
由于標準OpenFlow交換機中的未匹配流必須發送到控制器進行處理,導致控制器負載很高。Mekky H在轉發平面增加了“app-table”,并將“miss-match”流表項的“to controller”指令改為“to app-table”,若在“app-table”中仍然匹配失敗,再將該流轉發到控制器,由控制器下發流表,圖5中步驟(6)~(8)表示此轉發過程。其中,“app-table”的表項利用軟件實現,由管理員預先編程,而且多個表項以流水線架構實現app action的任意組合,能夠執行復雜的網絡服務。這種方法通過將“app-table”預先下發到交換機中,允許交換機實現更多的流表匹配,加速流處理過程,降低了控制平面的處理負載和通信開銷。但是,在運行時刻動態增加轉發平面“app-table”時,需要一種動態加載機制來保證,而且“app-table”實現的功能有限。

圖5 基于OVS的應用感知SDN系統架構
(2)硬件實現
與軟件平臺相比,利用硬件平臺可以提高轉發效率,但是同時存在編程不靈活的問題。針對此問題,參考文獻[49]提出了一個新型的流水線結構——可重配置的匹配表(reconfigurable match table,RMT)模型,如圖6所示。該模型主要由分組頭解析器、邏輯塊、可配置輸出隊列組成。其中,分組頭解析器用于識別數據分組的協議類型,同時根據數據分組的協議類型進行數據分組解析,提取關鍵字段并將其組合成新的分組頭域header,之后將header和數據分組同時向后級邏輯塊輸出。邏輯塊是最基本的數據分組處理單元,支持靈活的用戶可配置的匹配域提取,利用匹配得到的動作字段來完成對數據分組的處理。RMT模型中,靈活可編程的分組頭解析器可以提取任意協議的匹配字段,而靈活可配置的邏輯塊可以匹配任意字段,實現靈活的數據分組處理。但是該模型對硬件的容量要求很高,目前只能實現不多的邏輯塊數量。
(3)流規則更新

圖6 RMT模型
由于大量的網絡功能要求根據當前流狀態改變流動作,導致基于流的規則更新過于頻繁,降低了網絡的可編程性。Masoud等人[50]提出了一個新的交換機抽象模型——FAST(flow-level state transition,流級別狀態轉換),將基于流或流集合的網絡任務表示為本地狀態機。FAST模型包含3個部分:抽象,允許操作者為不同的應用編程狀態機;FAST控制器,將狀態機翻譯為轉發平面API,并管理本地狀態機之間的交互;FAST轉發平面,基于商用交換機支持狀態機的流水線處理。FAST允許控制器預先編程狀態轉化,支持交換機基于本地信息動態地執行動作,并且易于部署商用交換機。針對各流表項之間存在的依賴關系導致表項更新速度緩慢而且開銷較大的問題,參考文獻[51]通過分析規則模式提出了CacheFlow算法,基于該算法獲得的關系圖表達轉發平面規則。采用一種新的分片技術打破大量規則之間較長的關系鏈,并將其轉換為新的規則組覆蓋大量的不常用規則,提高了常用規則的存儲空間。實驗數據證明,CacheFlow算法能有效地提高流表更新效率并減少更新開銷。
(4)網絡視圖
SDN為了支持全局視圖,控制器需要獲取每個流表項的計數器信息。而大部分計數器都部署在ASIC硬件中,其不靈活性和有限資源導致控制器難以獲得全局視圖。參考文獻[52]將ASIC與通用CPU連接,將傳統計數器替換為規則匹配記錄串,并轉發到CPU進行處理。利用CPU強大的處理能力,能更靈活地處理與計數器相關的信息,降低了ASIC存儲空間占用率和計算復雜性,使控制器易于獲取計數信息。
由于控制器對流的可視性與流表的操作性之間的耦合,會造成流視圖的缺失、冗余的流視圖以及流表規模急劇膨脹等問題。針對該問題,參考文獻[53]采用FlowInsight架構分離了流的可視性和可操作性。該架構包含FlowView和FlowOps兩個流水線結構表,數據分組依次由FlowView和FlowOps進行處理,如圖7所示。FlowView定義了控制器可見的流,其中每個流都包含匹配域、優先級、視圖域和計數器。視圖域根據預設的觸發條件向控制器發送相對應的流視圖,例如,see-on-first-packet要求每個流的第一個數據分組發送至控制器,trigger-on要求流量大于1 Mbit/s的流視圖發往控制器。FlowOps與現有流表工作方式相同,匹配數據分組并執行轉發操作。
(5)數據分組嵌入式可編程
針對目前轉發平面功能單一、難以擴展的問題,參考文獻[54]提出了一個快速增加網絡轉發平面功能的方法:終端用戶將TPP(tiny packet program,小數據分組程序)嵌入數據分組中,進行網絡狀態的主動查詢和操作。其中,TPP本質上是一個以太網數據分組,具有唯一可識別的頭部,包含程序指令、額外空間(用來分組存儲)和一個可選擇的封裝載荷(IP分組)。基于高速、一致、低耗的轉發平面接口,TPP為終端用戶提供了空前的網絡行為視圖,將網絡狀態和數據分組信息之間進行關聯,支持擁塞控制、測量、故障檢測和驗證等大量的網絡管理功能。
3.1.3 小結
綜上所述,由于SDN架構中將所有控制決策部署在控制器中,而轉發平面只執行簡單的轉發任務,導致轉發平面功能單一、可編程性不足。OpenFlow協議標準發展到現在的1.4版本,通過不斷增加流表項的匹配域長度實現轉發平面功能的擴展,導致交換機硬件性能難以滿足,成為轉發平面可編程技術發展的壁壘。目前,實現轉發平面可編程的主要技術包括協議無關性和流表實現的可編程,涵蓋了數據分組頭解析、關鍵字匹配查找、計數器、流表視圖等方面,增強了轉發平面的靈活性,減少了硬件性能帶來的限制。
SDN控制器作為邏輯集中控制節點,既是SDN應用的運行平臺,也是SDN應用的開發環境。由于目前SDN控制器通過在服務器上運行不同的控制軟件來實現,且各種控制軟件設計的邏輯不同,導致其與控制應用的編程接口呈現多樣化和復雜化的特征,阻礙了新型網絡應用和功能的開發。針對該問題,研究人員設計了多種控制平面高級編程語言。

圖7 Flow Insight架構
2011年,Foster N和Harrison R等[55]提出面向分布式網絡交換機的高層編程語言Frenetic,采用聲明式和模塊化設計準則,提供單層編程模型、無競爭語義和代價控制機制,基于函數響應編程(functional reactive programming,FRP)組合庫管理網絡報文轉發策略,為描述高層報文轉發策略提供了網絡流量聚合和分類功能,實現了模塊化推理和模塊重用。2012年,在Frenetic基礎上,Monsanto C和Foster N等人[56]提出新的NetCore編程語言來表達SDN的轉發策略,該語言提供了編譯算法以及新的運行環境。Christopher等人[57]提出新的模塊化應用抽象語言Pyretic,允許程序員利用高層抽象定義并以不同的方式組合網絡策略,并在抽象的網絡拓撲上運行程序。同時Pyretic程序能夠在運行系統上執行,實現了網絡配置的可編程化。Andreas等人[58]基于FRP模型提出了Nettle語言,采用了分層的設計,支持以事件流的方式獲取控制消息,能夠簡便地表達動態負載算法。針對大部分OpenFlow原型系統缺少可配置接口的問題,Voellmy A等[59]提出了一種新的SDN控制架構——Procera,基于FRP的策略語言,支持通配符規則、規則的預生成和自定義,進一步對語言抽象進行了優化。上述控制平面高級編程語言對比情況見表2。

表2 控制平面編程語言
SDN控制平面是可以部署任意網絡控制程序的開放可編程平臺,允許不同的參與者對轉發決策進行細粒度的控制。但是,由于SDN將網絡決策全部放置在控制平面,由于流表中的“action”僅支持數據分組的轉發、丟棄以及修改分組頭字段等,轉發平面只是一個“簡單的、啞巴的”交換設備,目前只能實現這些功能組合疊加,而無法真正實現深度分組檢測、防火墻、網絡地址轉換、Web緩存等4~7層的網絡功能[60]。為了增強SDN的網絡功能可編程,Qazi Z A等[62]提出了一個基于SDN的策略實施層SIMPLE,將中間件作為黑盒處理,通過策略的動態調整,自動化配置中間件功能,滿足了NFV的基本要求,但是該方法會導致中間件大量的上下文信息丟失,降低了安全性。
與SDN不同,NFV利用運行在虛擬化標準服務器上的軟件實現各種網絡中間件功能,實現了靈活的網絡功能可編程性,緩解了網絡所面臨嚴峻的成本、可靠性和復雜性等挑戰。針對中間件狀態面臨的描述、操作和控制挑戰,Gember A等[63]提出了一個軟件定義的中間件網絡框架,實現了中間件的狀態抽象描述、動態擴展和在線遷移,簡化了復雜、多樣的網絡功能管理。ClickOS[65]則提供了網絡功能虛擬化的實施方案,采用快速啟動和低時延的小型虛擬機(只有5 MB大小)方案,每個虛擬化可以承載一個中間件。但是,傳統基于硬件設備的網絡中間件具有靜態、固定的地址,網絡中的流量可以準確地引導至各個中間件進行處理;而NFV基于軟件的網絡功能具有動態、靈活的特性,其位置、地址根據需求而變,當高層策略要求流量經過多個網絡功能序列時,流量引導成為下一步需要解決的問題。
但是,若將兩者的優勢相互結合,則可以彌補對方的不足,產生1+1>2的效果。表3對SDN和NFV的優缺點進行了詳細的對比和分析。

表3 SDN和NFV分析
最近,ONF提出了“SDN+NFV”的思想,并發布了NFV與SDN融合方案[61],采用SDN控制與轉發分離以及集中控制的架構,為NFV提供了高效的網絡連接方式。通過SDN技術可以將網絡節點功能進一步拆分,使轉發功能和業務功能分離,其中業務功能采用NFV的大容量服務器實現,轉發功能采用OpenFlow交換機實現。該方案采用SDN思想構建可擴展、彈性的基礎設施,在SDN架構的應用層引入了NFV編排功能,構建了電信級的可編程網絡,實現了網絡資源利用率最大化、網絡配置管理簡單化、網絡升級更新快速化以及網絡功能開放可編程化。

圖8 OpenNF控制平面架構
另外,OpenNF[64]為網絡中間件流量的重分配提供了高效的協同控制,其控制平面架構如圖8所示。控制應用通過北向接口控制OpenNF控制器,同時監測網絡功能運行狀態,將流引導至所需的網絡功能進行處理,并為每個網絡功能實例提供所需的狀態。OpenNF控制器由網絡功能狀態管理器和流管理器構成,其中網絡功能狀態控制器通過南向接口控制虛擬化網絡功能,流管理器控制SDN交換機。當控制應用制定網絡策略后,形成一條“網絡功能+SDN交換機”的服務鏈。網絡功能狀態管理器將策略規定的網絡功能實例狀態信息下發至網絡功能,流管理器將流表下發至SDN交換機。SDN交換機接收流后,根據流表規則判斷流發送到網絡功能還是發送到下一個SDN交換機,網絡功能處理完后將流發送到下一個SDN交換機。直至網絡策略規定的所有網絡功能完成全部的流量處理。該架構在SDN控制器中增加了虛擬化網絡功能狀態管理的功能,并通過南向API連接虛擬化網絡功能,充分利用了SDN控制平面與轉發平面分離的優勢;另一方面,在轉發平面加入虛擬化網絡功能,提供了高級處理功能,實現了網絡功能的靈活部署和升級。
網絡可編程對網絡架構和協議的實現產生重大的革命性影響。當前,實現網絡可編程最具代表性的技術是SDN和NFV,學術界和工業界對SDN南向接口的協議、北向接口的高級編程語言和網絡操作系統都進行了大量的研究工作,但是網絡可編程技術仍然面臨很多困難和挑戰。
(1)靈活可編程的轉發平面抽象機制
SDN對網絡的可控性歸根到底取決于轉發平面提供的編程靈活性。目前以OpenFlow為代表的SDN轉發平面抽象機制僅以“Match-Action”方式對數據分組進行轉發,無法支持更靈活的轉發平面操作,比如基于邏輯運算的分組轉發機制、有狀態的分組計算等。如何進行更加合理、更加靈活的轉發平面抽象,是SDN值得研究的重要問題。
(2)控制邏輯一致性問題研究
控制邏輯集中和分布式狀態管理提高網絡的可編程性的同時,也帶來了控制邏輯一致性問題。在控制平面,為了解決大規模網絡中控制器單點性能瓶頸問題,采用多控制器管控的分布式控制機制,控制器之間同步全網絡視圖信息成為保證控制邏輯一致性的重要手段。在數據平面,交換機失效和流表項頻繁更新是分布式狀態管理需要解決的問題。
(3)高性能轉發平面技術與實現
對于轉發平面而言,不同高速硬件平臺具有不同優勢:如FPGA適合于簡單、高性能的轉發計算;TCAM支持高速查找;而多核處理器具有靈活性強、支持復雜轉發處理等特點。在SDN轉發設備中,為了更好地滿足不同網絡應用的性能需求,硬件平臺趨于異構化。如何利用異構芯片的性能實現高效靈活的數據轉發,既需要支持高效查找、快速更新、低存儲開銷的算法,也需要基于流表特征提升實現技術。
(4)大范圍部署問題
目前,雖然SDN已經在部分數據中心網絡中實踐部署,但是其只能實現簡單的分組轉發控制,無法實現更加復雜的網絡功能和應用。同樣,盡管NFV思想使網絡功能可編程的前景更加明朗,但其還處于理論探討階段,實際部署還需要研究探討。因此,在大范圍的網絡中實現完全的可編程還面臨很多嚴峻的挑戰。
(5)網絡可編程帶來的安全問題
網絡可編程技術支持網絡參與者(包括運營商、管理員、用戶)定制網絡應用的思想打破了網絡本身的完整性,會增加網絡安全危險,必須考慮如何控制用戶的權限和行為。
網絡可編程技術是實現網絡定制化服務、集中化管理、遞進式革新的關鍵技術之一,其內涵伴隨網絡技術的發展而不斷變換,并在未來網絡研究中占據了主要地位。作為目前網絡可編程技術的典型代表,SDN和NFV受到學術界和產業界的共同關注,學術界深入研究了SDN控制平面和轉發平面的可編程關鍵技術以及與NFV的融合技術,產業界也正在籌劃一場網絡運營商市場的變革。要想實現網絡可編程技術的廣泛應用和部署,不僅需要克服很多技術難題,包括控制邏輯一致性、可編程靈活性、網絡高級編程語言以及網絡安全管理等關鍵性問題,同時需要虛擬化、網絡操作系統、硬件開發等輔助性技術的支撐,更需要網絡運營商、設備生產商、服務提供商的全力協同合作。
[1]FEAMSTER N,REXFORD J,ZEGURA E.The road to SDN[J].Queue,2013,11(12):20-27.
[2]NUNES B A A,MENDONCA M,NGUYEN X N.A survey of software-defined networking:past,present and future of programmable networks[J].IEEE Communications Surveysamp;Tutorials,2014,16(3):1617-1634.
[3]OpenFlow switch specication version 1.3.0[EB/OL].[2015-02-28].http:/www.Open-network- ing.org.
[4]Network functions virtualisation:an introduction,benefits,enablers,challengesamp;call for action[EB/OL].[2015-03-22].http:/portal.etsi.org/NFV/NFV_White_Paper.pdf.
[5]CAMPBELL A T,KATZELA I,MIKI K,et al.Open signaling for ATM,internet and mobile networks[J].ACM SIGCOMM Computer Communication Review,1999,29(2):97-108.
[6]Multiservice switching forum[EB/OL].[2015-05-18].http:/www.msforum.org/.
[7]DORIA A,HELLSTRAND F,SUNDELL K,et al.General switch management protocol[S/OL].[2015-02-10].https:/tools.ietf.org/html/draft-worster-gsmp-00.
[8]Optical internetworking forum[EB/OL].[2015-05-14].http://www.oiforum.com/.
[9]TENNENHOUSE D L,SMITH J M,SINCOSKIE W D,et al.A survey of active network research[J].Communications Magazine IEEE,1997,35(1):80-86.
[10]Elliott C.GENI:opening up new classes of experiments in global networking[J].IEEE Internet Computing,2010,14(1):39-42.
[11]NSF future internet design[EB/OL].[2015-05-08].http:/www.nets-find.net/.
[12]GAVRAS A,KARILA A,FDIDA S,et al.Future internet research and experimentation:the FIRE initiative[J].ACM SIGCOMM Computer Communication Review,2007,37(3):89-92.
[13]BHATTACHARJEE S,CALVERT K L,ZEGURA E W.An Architecture for Active Networking[M].New York:Springer US,1997.
[14]SMITH J M,FARBER D J,GUNTER C A,et al.SwitchWare:accelerating network evolution(white paper)[R/OL].[2015-05-29].http:/repository.upenn.edu/cis_reports/211.
[15]WETHERALL D J,GUTTAG J V,TENNENHOUSE D L.ANTS:a toolkit for building and dynamically deploying network protocols[C]/The IEEE 1st Conference on Open Architectures and Network Programming,April 3-4,1998,San Francisco,CA,USA.New Jersey:IEEE Press,1998:117-129.
[16]Devolved control of ATM networks[EB/OL].[2015-05-20].http://www.cl.cam.ac.uk/research/srg/netos/old-projects/dcan/#pub.
[17]RFC 5810(Proposed Standard)[S/OL].[2014-10-30].http://wenku.baidu.com/link?Url=4kZCAq87BmnGJcjYDZnn751D2 qLjzrHj0kKy9VhLSjraFEu0OB9_RJQYB2Z-gm8jjcjJfhoe8EI4NT WrrjJb8_sCCBCjyuYKKqFgJ449pNi.
[18]REXFORD J,GREENBERG A,HJALMTYSSON G,et al.Network-wide decision making:toward a wafer-thin control plane[C]//The Third Workshop on Hot Topics in Networks,November 15-16,2004,San Diego,CA,USA.[S.l.:s.n.],2004:59-64.
[19]GREENBERG A,HJALMTYSSON G,MALTZ D A,et al.A clean slate 4d approach to network control and management[J].ACM SIGCOMM Computer Communicaiton Review,2005,35(5):41-54.
[20]RFC4741(proposed standard)[S/OL].[2015-04-30].http:/www.rfc-editor.org/rfc/rfc4741.txt.
[21]RFC1157[S/OL].[2015-05-30].http:/www.faqs.org/rfcs/rfc1157.html.
[22]CASADO M,GARFINKEL T,AKELLA A,et al.SANE:a protection architecture for enterprise networks[C]//The 15th Conference on USENIX Security Symposium,July 3-August 4,2006,Vancouver,B.C.,Canada.New York:ACM Press,2006:137-151.
[23]CASADO M,FREEDMAN MJ,PETTIT J,et al.Ethane:taking control of the enterprise[J].ACM SIGCOMM Computer Communication Review,2007,37(4):1-12.
[24]GUDE N,KOPONEN T,PETTIT J,et al.Nox:towards an operating system for networks[J].ACM SIGCOMM Computer Communication Review,2008,38(3):105-110.
[25]NOX[EB/OL].[2015-03-15].http:/noxrepo.org.
[26]The preliminary design and implementation of the maestro network control platform[EB/OL].[2008-01-30].https://www.researchgate.net/publication/241342434_The_Prelimina-ry_Design_and_Implementation_of_the_Maestro_Network_Control_Platform.
[27]POX[EB/OL].[2014-11-18].http:/www.noxrepo.org/pox/about-pox/.
[28]Beacon[EB/OL].[2015-01-10].http:/www.beaconcontroller.net.
[29]Floodlight[EB/OL].[2015-01-10].http:/floodlight.openflowhub.org.[30]Ryu[EB/OL].[2015-03-15].http:/osrg.github.com/ryu/.
[31]SNAC[EB/OL].[2015-02-18].http:/www.openflow.org/wp/snac.
[32]Trema[EB/OL].[2015-04-13].http:/trema.github.com/trema.
[33]BERDE P,GEROLA M,HART J,et al.ONOS:towards an open,distributed SDN OS[C]/The Third workshop on Hot Topics in Software Defined Networking,August 22,2014,Chicago,IL,USA.New York:ACM Press,2014:1-6.
[34]NASCIMENTO MR,ROTHENBERG C E,SALVADOR MR,et al.Virtual routers as a service:the RouteFlow approach leveraging software-defined networks[C]/The 6th International Conference on Future Internet Technologies,June 13-15,2010,New York,NY,USA.New York:ACM Press,2011:34-37.
[35]TOOTOONCHAINA,GORBUNOVS,GANJALIY,etal.On controller performance in software-defined networks[C]/The 9th USENIX Workshop on Hot Topics in Management of Internet,Cloud,and Enterprise Networks and Services,April 24,2012,Berkeley,CA,USA.New York:ACM Press,2012:10.
[36]KOPONEN T,CASADO M,GUDE N,et al.Onix:a distributed control platform for large-scale production networks[C]/The 9th USENIX Conference on Operating Systems Design and Implementation,October 4-6,2010,Vancouver.BC,Canada.New York:ACM Press,2010:351-364.
[37]MEDVED J,VARGA R,TKACIK A,et al.OpenDaylight:towards a model-driven SDN controller architecture[C]/The IEEE 15th International Symposium on a World of Wireless,Mobile and Multimedia Networks(WoWMoM),June 19,2014,Sydney,Australia.New Jersey:IEEE Press,2014:1-6.
[38]Network functions virtualisation infrastructure architecture;architecture of infrastructure network domain[EB/OL].[2015-05-10].http:/www.etsi.org/standards-search.
[39]Network functions virtualisation(NFV):network operator perspectives on industry progress[EB/OL].[2015-01-14].http://portal.etsi.org/NFV/NFV_White_Paper2.pdf.
[40]Network functions virtualisation infrastructure architecture;overview[EB/OL].[2014-12-01].http:/www.etsi.org/standardssearch.
[41]Network functions virtualisation(NFV);virtual network functions architecture[EB/OL].[2014-11-02].http:/www.etsi.org/standards-search.
[42]RISSO F,MANZALINI A,NEMIROVSKY M.Some controversial opinions on software-defined data plane services[C]//IEEE SDN for Future Networks and Services(SDN4FNS),October 3-4,2011,Trento,Italy.New Jersey:IEEE Press,2013:1-7.
[43]LU G,SHI Y,GUO C,et al.CAFE:a configurable packet forwarding engine for data center networks[C]/The 2nd ACM SIGCOMM Workshop on Programmable Routers for Extensible Services of Tomorrow(PRESTO),August 21,2009,Barcelona,Spain.New York:ACM Press,2009:25-30.
[44]ATTIG M,BREBNER G.400Gb/s programmable packet parsing on a single FPGA[C]//The Seventh ACM/IEEE Symposium on Architectures for Networking and Communications Systems(ANCS),October 3-4,2011,Brooklyn,NY,USA.New Jersey:IEEE Press,2011:12-23.
[45]LV G F,SUN Z G,LI T,et al.LabelCast:a general abstraction for the forwarding plane of SDN[J].Chinese Journal of Computers,2012,35(10):2037-2047.
[46]DE CARLI L,PAN Y,KUMER A,et al.PLUG:flexible lookup modules for rapid deployment of new protocols in high-speed routers[J].ACM SIGCOMM Computer Communication Review,2009,39(4):207-218.
[47]SONG H Y.Protocol oblivious forwarding:unleash the power of SDN through a future-proof forwarding plane[C]/ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking(HotSDN),August 12-16,2013,Hong Kong,China.New York:ACM Press,2013:127-132.
[48]MEKKY H,HAO F,MUKHERJEE S,et al.Application-aware data plane processing in SDN[C]//The Third Workshop on Hot Topics in Software Defined Networking,August 22,2014,Chicago,IL,USA.New York:ACM Press,2014:13-18.
[49]BOSSHART P,GIBB G,KiIM H S,et al.Forwarding metamorphosis:fast programmable match- action processing in hardware for SDN[C]//ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking(HotSDN),August 12-16,2013,Hong Kong,China.New York:ACM Press,2013:99-110.
[50]MOSHREF M,BHARGAVA A,GUPTA A,et al.Flow-level state transition as a new switch primitive for SDN[C]/The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014:377-378.
[51]KATTA N,ALIPOURFARD O,REXFORD J.Infinite CacheFlow in software-defined networks[C]//The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014.
[52]MOGUL J C,CONGDON P.Hey,you darned counters!:get off my ASIC[C]/The First Workshop on Hot Topics in Software Defined Networks,August 13-17,2012,Helsinki,Finland.New York:ACM Press,2012:25-30.
[53]JEYAKUMAR V,ALIZADEH M,GENG Y,et al.Millions of little minions:using packets for low latency network programming and visibility[C]/The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014:17-22.
[54]LI Y,YAO G,BI J.Flowinsight:decoupling visibility from operability in SDN data plane[C]/The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014:137-138.
[55]FOSTER N,HARRISON R,FREEDMAN MJ,et al.Frenetic:a network programming language[J].ACM Sigplan Notices,2011,46(9):279-291.
[56]NetCore[EB/OL].[2015-01-05].http:/www.jgn.nict.go.jp/jgn2ar chive/english/jgn2inde.Html.
[57]MONSANTO C,REICH J,FOSTER N,et al.Composing software defined networks[C]//The 10th USENIX Symposium on Networked Systems Design and Implementation,April 2-5,2013,Lombard,IL,USA.New York:ACM Press,2013:1-13.
[58]Nettle:functional reactive programming for OpenFlow networks[EB/OL].[2015-01-30].http://haskell.cs.yale.edu/wp-content/uploads/2011/03/NettlePADL2011.pdf.
[59]VOELLMY A,KIM H,FEAMSTER N.Procera:a language for high-level reactive network control[C]//The first Workshop on Hot Topics in Software Defined Networks,June 15,2012,Helsinki,Finland.New York:ACM Press,2012:43-48.
[60]Software-defined networking:the new norm for networks[EB/OL].[2015-04-25].https:/www.Opennetworking.org.
[61]OpenFlow-enabled SDN and network functions virtualization[EB/OL].[2014-10-09].https:/www.opennetworking.org/images/stories/downloads/sdn-resources/solution-briefs/sb-sdn-nvf-solution.pdf.
[62]QAZI Z A,TU C C,CHIANG L,et al.Simple-fying middlebox policy enforcement using SDN[C]//The ACM SIGCOMM 2013 Conference on SIGCOMM,August 12-16,2013,Hong Kong,China.New York:ACM Press,2013:27-38.
[63]GEMBER A,PRABHU P,GHADIYALI Z,et al.Toward software-defined middlebox networking[C]/The 11th ACM Workshop on Hot Topics in Networks,October 29,2012,Seattle,WA,USA.New York:ACM Press,2012:7-12.
[64]GEMBER A,VISWANATHAN R,PRAKASH C,et al.OpenNF:enabling innovation in network function control[C]//ACM Conference on Sigcomm,August 19,2014,Chicago,USA.New York:ACM Press,2014:163-174.
[65]MARTINS J,AHMED M,RAICIU C,et al.ClickOS and the art of network function virtualization[C]/The 11th USENIX Symposium on Networked Systems Design and Implementation(NSDI 14),April 2-4,2014,Seattle,WA,USA.New York:ACM Press,2014:459-473.
Research on network programmable technologies
XIE Lijun,HU Yuxiang,WANG Binqiang,LAN Julong,CHENG Guozhen,WANG Zhiming
National Digital Switching System Engineeringamp;Technological Ramp;D Center,Zhengzhou 450002,China
Network programmable technologies enforce the capacity of flexible configuration and resource composition by providing network devices with programmable interfaces.Starting with the discussion on the background in the naissance and developments of network programmable technologies,the initial programmable technologies,frameworks of control and data plane and typical software defined networking(SDN)and network function virtualization(NFV)were reviewed.The research on protocol irrelevance,implementation of flow tables,high-level programming languages and integration with NFV were elaborated.Moreover,the future works were summarized in the end.
network programmability,software defined networking,network function virtualization,protocol irrelevance,programming language
s:The National Basic Research Program of China(973 Program)(No.2012CB315901,No.2013CB329104),The National Natural Science Foundation of China(No.61372121,No.61309019),The National High Technology Research and Development Program of China(863 Program)(No.2013AA013505)
TP393
A
10.11959/j.issn.1000-0801.2016038
2015-06-29;
2015-12-17
國家重點基礎研究發展計劃(“973”計劃)基金資助項目(No.2012CB315901,No.2013CB329104);國家自然科學基金資助項目(No.61372121,No.61309019);國家高技術研究發展計劃(“863”計劃)基金資助項目(No.2013AA013505)

胡宇翔(1982-),男,博士,國家數字交換系統工程技術研究中心講師,主要研究方向為新型網絡體系結構。

汪斌強(1963-),男,博士,國家數字交換系統工程技術研究中心教授,主要研究方向為新型網絡體系結構。

蘭巨龍(1962-),男,博士,國家數字交換系統工程技術研究中心教授,主要研究方向為新型網絡體系結構。

程國振(1986-),男,博士,國家數字交換系統工程技術研究中心講師,主要研究方向為新型網絡體系結構。

謝立軍(1988-),男,國家數字交換系統工程技術研究中心博士生,主要研究方向為新型網絡體系結構。

王志明(1986-),男,國家數字交換系統工程技術研究中心博士生,主要研究方向為新型網絡體系結構。