鄭鴻愷,胡建華,宋廣佳
(浙江農林大學 暨陽學院,浙江 諸暨)
傳統網絡在演進過程中受到了諸多的限制,最典型的是網絡設備的封閉性。主要表現在網絡設備運行的操作系統與應用(App)是相對固定的,從而導致所實現的功能也相對固定。雖然對外保留有少量接口,比如簡單網絡管理協議(Simple Network Management Protocol,SNMP)接口,但這些很難滿足現代網絡需求,使得傳統網絡很難從宏觀上對網絡進行靈活的調整與部署[1-2]。軟件定義網絡(Software Defined Network,SDN)的出現給網絡注入了新的活力,其提出的轉發與控制分離、控制器集中管控、全局調度等思想讓網絡設備不再封閉,而是提供靈活的轉發行為,具體實現何種功能可由控制器來指定,可提供豐富多樣的網絡功能[3-5]。但不可忽視的是SDN 技術進一步將網絡進行分層,將原有的網絡設備從單一整體拆分成多個層,而層間通信會給網絡帶來二外的通信開銷,導致網絡性能下降。
本文通過理論分析與量化測量的方式將SDN 的Reactive 交換模式數據傳輸與以太網進行了對比分析。對數據傳輸過程中涉及到的交換機轉發、ARP 協議與ICMP 協議的SDN 實現原理進行了對比分析,并設計了多個實驗場景,從延遲、帶寬、CPU 和內存開銷等角度將Reactive 轉發模式與以太網進行了對比實驗,剖析了現代SDN技術相對傳統以太網技術的優勢與不足。
網際層,也可以稱之為IP 層,其在網絡傳輸中的重要性不言而喻,它可以說是整個網絡體系結構的腰部,起到承上啟下的作用,因此有IP over everything 和Everything over IP 這種說法。一般來說,IP 協議負責將數據運輸至目標節點,而具體由哪個應用來接收或處理這些數據,由UDP 或者TCP 協議來實現。當然,IP 層不只有Internet Protocol 一種協議,還有ARP、ICMP、RARP 等協議與其配合,共同完成了數據傳輸的功能。SDN的引入雖然給網絡演化帶來了更多可能性,但SDN的Reactive 模式導致協議性能下降的問題始終困擾著產業界。
針對SDN 的Reactive 帶來的性能下降問題,很多文獻都進行了針對性的研究。文獻[6]認為Reactive 模式導致控制器和交換機之間的流量大增,隨著網絡規模擴大,控制器的負載也急劇增加。其提出SDN-TBM方案,將控制器與交換機之間的流量從對稱轉換為非對稱,即對于特定flow,只有起始節點與終點需要和控制器進行交互,而路徑上的其他節點不會給控制器帶來負載。文獻[7]針對Reactive 交換模式導致的SDN 擴展問題,提出了一種量化評估模型,該模型可以計算出每增加一個流,需要在網絡中傳輸的消息數以及每個交換機需要新增的規則數,這為ISP 進行組網和網絡升級提供了數據支持。
文獻[8]認為,在Reactive 模式的SDN-WAN 中,隨著節點數的增加,控制流也會大幅增加,這會引起控制器負載增加,控制面與數據面通信開銷和延遲增大。其提出SPRM方案,SPRM利用預計算與預安裝流表的方法來提前部署轉發路徑,同時預計算得到的多條路徑也為可能出現的鏈路失敗提供了冗余路徑。文獻[9]從原始的SDN報文參數基礎上抽象出流屬性,然后利用反應值和反應表形成一種新的SDN編程框架。利用該框架,可以大幅減少Reactive 模式下由網絡規模增大引起的海量路由請求,并縮短了新流的處理時延。在廣域網在容災方面,SDN 的交換機恢復時間需求也要高于以太網交換機,SDN 的時間成本是以太網的2 倍以上[10]。目前的研究表明,有必要將Reactive 模式與以太網在數據傳輸方面進行量化比較。
實驗環境設計如下:
虛擬機2 臺,配置為CPU AMD Ryzen 3960x 主頻3.8GHz,內存DDR4 4G,硬盤SSD 40G。操作系統Linux Ubuntu,版本18.04;網絡拓撲軟件Mininet,版本2.3.0d5;SDN 控制器為Ryu,版本4.15;交換機軟件為Open vSwitch,版本2.9.2。
實驗網絡拓撲為線性,即若干交換機串聯結構,如圖1 所示。實驗分為4 個場景進行,每個場景中包括5次測試,測試中網絡交換機數量取值在1-9 之間。測試項目包括ARP 過程、ICMP 過程、TCP 數據傳輸和UDP數據傳輸。實驗采集數據包括延遲、吞吐、CPU和內存開銷。

圖1 網絡拓撲
ARP 實驗過程為主機h1 發出ARP Request 報文,該報文是一個廣播,然后接收主機h2 的ARP Reply 報文,然后計算ARP 時延,實驗結果如圖2 所示。

圖2 地址解析延遲對比
在以太網中,主機h1 發出的ARP Request 報文,由于幀的目的地址是ffff-fff-fff,所以在以太網交換機上會產生廣播,該廣播會一直擴散到h2 所在交換機。如果交換機數量為m,每交換機端口數為n,則廣播報文量為m*(n-1)。由于在廣播過程中所有交換機都會完成MAC地址學習,所以h2 產生的ARP Reply 會以單播的形式到達h1。這一過程總報文量為:
在SDN 中,由于初始流表為空,所以當h1 的ARP Request 到達第一個交換機的時候,交換機會產生packetin 報文到控制器,控制器會通過packetout 來指導交換機進行廣播,并下發流表。當廣播的ARP Request到達第二個交換機時,會重復發生在第一個交換機上的事件。所以報文總量至少為:
所以ARP 過程在SDN 網絡中產生的報文是多于以太網的,增量至少為3 m,且通信延遲也遠高于以太網交換機,這在圖3 中能明確體現這一點,并且隨著網絡節點數的增加,這種差距越發明顯。

圖3 ICMP 延遲對比
由于ICMP 報文是由IP 報文承載的,所以為了封裝IP 報文,主機必須要有目標的MAC地址,也就是說ARP過程完成之后才能進行ICMP 報文傳送。所以ICMP 報文的時延要高于ARP 時延。隨著網絡節點數的增加,以太網時延呈線性增長,SDN 環境呈指數增長,如圖3 所示。
對于以太網來說是一個單播過程,ICMP 產生的Echo Request 和Echo Reply就是兩個普通的幀,由于之前的ARP 過程讓交換機完成了MAC 地址學習,所以這兩個報文都可以被正常轉發,不會引起廣播。
對于SDN 網絡來說,由于ICMP 報文和ARP 是兩種完全不同的協議。所以ICMP 報文會在交換機上產生流表,所以每個Echo Request 報文都會觸發packetin 報文到控制器,控制器會產生packetout 報文,并且通過flow mod 報文下發流表。所以總報文量不少于:
本實驗過程為h1 傳送20GB 數據給h2,然后測試網絡吞吐率。這里ARP 過程和IMCP 過程在初期會讓SDN交換機有略微影響,但隨著MAC 學習的完成和地址主機ARP 緩存的產生,這種影響會逐漸消失。對于以太網來說,只有初期的ARP 過程互讓TCP 有略微的延遲。總體來說以太網交換機的吞吐要高于SDN 交換機,可見交換機和控制器的互動過程是影響TCP 效率的,兩者的吞吐都隨著網絡交換機數量的增加而下降,詳見圖4。

圖4 TCP 吞吐對比
本實驗中h1 同樣是傳送20GB 數據給h2,測試網絡吞吐率。從圖5 可知,在局域網這種丟包率低、可靠性高的網絡中,UDP 的傳輸效率是高于TCP 的。同樣,隨著網絡節點數的增加而下降,以太網環境吞吐率高于SDN環境。

圖5 UDP 吞吐對比
如圖6 所示,在內存開銷方面,以太網和SDN 極為接近,SDN 網絡的內存開銷略高于以太網,但并不明顯,均值差距僅為0.076%。CPU開銷方面SDN 網絡略高于以太網,均值差距為0.58%。所以可見,對于SDN和以太網來說,在利用硬件性能上,兩者幾乎相同。

圖6 CPU 和內存開銷對比
SDN 給網絡通信技術帶來了巨大的頸進步,尤其是控制器集中管控、靈活多變的App 設計,讓網絡設備不再封閉,網絡擴展性增強,功能豐富多樣。但SDN化未必總能帶來優勢。量化分析與實驗表明,由于SDN 控制面與數據面的分離,Reactive 模式下交換機等網絡設備的行為需要由控制器來指導,轉發表需要依賴制器部署,因此其通信效率受到一定影響,在ARP 協議、ICMP 協議和數據傳輸方面表現尤為明顯,在硬件使用效率上也略低于以太網設備,有針對性的、系統性的優化是推動SDN進一步發展的關鍵。