鄭鴻愷,胡建華,宋廣佳
(浙江農(nóng)林大學(xué) 暨陽(yáng)學(xué)院,浙江 諸暨)
傳統(tǒng)網(wǎng)絡(luò)在演進(jìn)過(guò)程中受到了諸多的限制,最典型的是網(wǎng)絡(luò)設(shè)備的封閉性。主要表現(xiàn)在網(wǎng)絡(luò)設(shè)備運(yùn)行的操作系統(tǒng)與應(yīng)用(App)是相對(duì)固定的,從而導(dǎo)致所實(shí)現(xiàn)的功能也相對(duì)固定。雖然對(duì)外保留有少量接口,比如簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)接口,但這些很難滿足現(xiàn)代網(wǎng)絡(luò)需求,使得傳統(tǒng)網(wǎng)絡(luò)很難從宏觀上對(duì)網(wǎng)絡(luò)進(jìn)行靈活的調(diào)整與部署[1-2]。軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)的出現(xiàn)給網(wǎng)絡(luò)注入了新的活力,其提出的轉(zhuǎn)發(fā)與控制分離、控制器集中管控、全局調(diào)度等思想讓網(wǎng)絡(luò)設(shè)備不再封閉,而是提供靈活的轉(zhuǎn)發(fā)行為,具體實(shí)現(xiàn)何種功能可由控制器來(lái)指定,可提供豐富多樣的網(wǎng)絡(luò)功能[3-5]。但不可忽視的是SDN 技術(shù)進(jìn)一步將網(wǎng)絡(luò)進(jìn)行分層,將原有的網(wǎng)絡(luò)設(shè)備從單一整體拆分成多個(gè)層,而層間通信會(huì)給網(wǎng)絡(luò)帶來(lái)二外的通信開(kāi)銷,導(dǎo)致網(wǎng)絡(luò)性能下降。
本文通過(guò)理論分析與量化測(cè)量的方式將SDN 的Reactive 交換模式數(shù)據(jù)傳輸與以太網(wǎng)進(jìn)行了對(duì)比分析。對(duì)數(shù)據(jù)傳輸過(guò)程中涉及到的交換機(jī)轉(zhuǎn)發(fā)、ARP 協(xié)議與ICMP 協(xié)議的SDN 實(shí)現(xiàn)原理進(jìn)行了對(duì)比分析,并設(shè)計(jì)了多個(gè)實(shí)驗(yàn)場(chǎng)景,從延遲、帶寬、CPU 和內(nèi)存開(kāi)銷等角度將Reactive 轉(zhuǎn)發(fā)模式與以太網(wǎng)進(jìn)行了對(duì)比實(shí)驗(yàn),剖析了現(xiàn)代SDN技術(shù)相對(duì)傳統(tǒng)以太網(wǎng)技術(shù)的優(yōu)勢(shì)與不足。
網(wǎng)際層,也可以稱之為IP 層,其在網(wǎng)絡(luò)傳輸中的重要性不言而喻,它可以說(shuō)是整個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu)的腰部,起到承上啟下的作用,因此有IP over everything 和Everything over IP 這種說(shuō)法。一般來(lái)說(shuō),IP 協(xié)議負(fù)責(zé)將數(shù)據(jù)運(yùn)輸至目標(biāo)節(jié)點(diǎn),而具體由哪個(gè)應(yīng)用來(lái)接收或處理這些數(shù)據(jù),由UDP 或者TCP 協(xié)議來(lái)實(shí)現(xiàn)。當(dāng)然,IP 層不只有Internet Protocol 一種協(xié)議,還有ARP、ICMP、RARP 等協(xié)議與其配合,共同完成了數(shù)據(jù)傳輸?shù)墓δ堋DN的引入雖然給網(wǎng)絡(luò)演化帶來(lái)了更多可能性,但SDN的Reactive 模式導(dǎo)致協(xié)議性能下降的問(wèn)題始終困擾著產(chǎn)業(yè)界。
針對(duì)SDN 的Reactive 帶來(lái)的性能下降問(wèn)題,很多文獻(xiàn)都進(jìn)行了針對(duì)性的研究。文獻(xiàn)[6]認(rèn)為Reactive 模式導(dǎo)致控制器和交換機(jī)之間的流量大增,隨著網(wǎng)絡(luò)規(guī)模擴(kuò)大,控制器的負(fù)載也急劇增加。其提出SDN-TBM方案,將控制器與交換機(jī)之間的流量從對(duì)稱轉(zhuǎn)換為非對(duì)稱,即對(duì)于特定flow,只有起始節(jié)點(diǎn)與終點(diǎn)需要和控制器進(jìn)行交互,而路徑上的其他節(jié)點(diǎn)不會(huì)給控制器帶來(lái)負(fù)載。文獻(xiàn)[7]針對(duì)Reactive 交換模式導(dǎo)致的SDN 擴(kuò)展問(wèn)題,提出了一種量化評(píng)估模型,該模型可以計(jì)算出每增加一個(gè)流,需要在網(wǎng)絡(luò)中傳輸?shù)南?shù)以及每個(gè)交換機(jī)需要新增的規(guī)則數(shù),這為ISP 進(jìn)行組網(wǎng)和網(wǎng)絡(luò)升級(jí)提供了數(shù)據(jù)支持。
文獻(xiàn)[8]認(rèn)為,在Reactive 模式的SDN-WAN 中,隨著節(jié)點(diǎn)數(shù)的增加,控制流也會(huì)大幅增加,這會(huì)引起控制器負(fù)載增加,控制面與數(shù)據(jù)面通信開(kāi)銷和延遲增大。其提出SPRM方案,SPRM利用預(yù)計(jì)算與預(yù)安裝流表的方法來(lái)提前部署轉(zhuǎn)發(fā)路徑,同時(shí)預(yù)計(jì)算得到的多條路徑也為可能出現(xiàn)的鏈路失敗提供了冗余路徑。文獻(xiàn)[9]從原始的SDN報(bào)文參數(shù)基礎(chǔ)上抽象出流屬性,然后利用反應(yīng)值和反應(yīng)表形成一種新的SDN編程框架。利用該框架,可以大幅減少Reactive 模式下由網(wǎng)絡(luò)規(guī)模增大引起的海量路由請(qǐng)求,并縮短了新流的處理時(shí)延。在廣域網(wǎng)在容災(zāi)方面,SDN 的交換機(jī)恢復(fù)時(shí)間需求也要高于以太網(wǎng)交換機(jī),SDN 的時(shí)間成本是以太網(wǎng)的2 倍以上[10]。目前的研究表明,有必要將Reactive 模式與以太網(wǎng)在數(shù)據(jù)傳輸方面進(jìn)行量化比較。
實(shí)驗(yàn)環(huán)境設(shè)計(jì)如下:
虛擬機(jī)2 臺(tái),配置為CPU AMD Ryzen 3960x 主頻3.8GHz,內(nèi)存DDR4 4G,硬盤SSD 40G。操作系統(tǒng)Linux Ubuntu,版本18.04;網(wǎng)絡(luò)拓?fù)滠浖﨧ininet,版本2.3.0d5;SDN 控制器為Ryu,版本4.15;交換機(jī)軟件為Open vSwitch,版本2.9.2。
實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)錇榫€性,即若干交換機(jī)串聯(lián)結(jié)構(gòu),如圖1 所示。實(shí)驗(yàn)分為4 個(gè)場(chǎng)景進(jìn)行,每個(gè)場(chǎng)景中包括5次測(cè)試,測(cè)試中網(wǎng)絡(luò)交換機(jī)數(shù)量取值在1-9 之間。測(cè)試項(xiàng)目包括ARP 過(guò)程、ICMP 過(guò)程、TCP 數(shù)據(jù)傳輸和UDP數(shù)據(jù)傳輸。實(shí)驗(yàn)采集數(shù)據(jù)包括延遲、吞吐、CPU和內(nèi)存開(kāi)銷。
圖1 網(wǎng)絡(luò)拓?fù)?/p>
ARP 實(shí)驗(yàn)過(guò)程為主機(jī)h1 發(fā)出ARP Request 報(bào)文,該報(bào)文是一個(gè)廣播,然后接收主機(jī)h2 的ARP Reply 報(bào)文,然后計(jì)算ARP 時(shí)延,實(shí)驗(yàn)結(jié)果如圖2 所示。
圖2 地址解析延遲對(duì)比
在以太網(wǎng)中,主機(jī)h1 發(fā)出的ARP Request 報(bào)文,由于幀的目的地址是ffff-fff-fff,所以在以太網(wǎng)交換機(jī)上會(huì)產(chǎn)生廣播,該廣播會(huì)一直擴(kuò)散到h2 所在交換機(jī)。如果交換機(jī)數(shù)量為m,每交換機(jī)端口數(shù)為n,則廣播報(bào)文量為m*(n-1)。由于在廣播過(guò)程中所有交換機(jī)都會(huì)完成MAC地址學(xué)習(xí),所以h2 產(chǎn)生的ARP Reply 會(huì)以單播的形式到達(dá)h1。這一過(guò)程總報(bào)文量為:
在SDN 中,由于初始流表為空,所以當(dāng)h1 的ARP Request 到達(dá)第一個(gè)交換機(jī)的時(shí)候,交換機(jī)會(huì)產(chǎn)生packetin 報(bào)文到控制器,控制器會(huì)通過(guò)packetout 來(lái)指導(dǎo)交換機(jī)進(jìn)行廣播,并下發(fā)流表。當(dāng)廣播的ARP Request到達(dá)第二個(gè)交換機(jī)時(shí),會(huì)重復(fù)發(fā)生在第一個(gè)交換機(jī)上的事件。所以報(bào)文總量至少為:
所以ARP 過(guò)程在SDN 網(wǎng)絡(luò)中產(chǎn)生的報(bào)文是多于以太網(wǎng)的,增量至少為3 m,且通信延遲也遠(yuǎn)高于以太網(wǎng)交換機(jī),這在圖3 中能明確體現(xiàn)這一點(diǎn),并且隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)的增加,這種差距越發(fā)明顯。
圖3 ICMP 延遲對(duì)比
由于ICMP 報(bào)文是由IP 報(bào)文承載的,所以為了封裝IP 報(bào)文,主機(jī)必須要有目標(biāo)的MAC地址,也就是說(shuō)ARP過(guò)程完成之后才能進(jìn)行ICMP 報(bào)文傳送。所以ICMP 報(bào)文的時(shí)延要高于ARP 時(shí)延。隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)的增加,以太網(wǎng)時(shí)延呈線性增長(zhǎng),SDN 環(huán)境呈指數(shù)增長(zhǎng),如圖3 所示。
對(duì)于以太網(wǎng)來(lái)說(shuō)是一個(gè)單播過(guò)程,ICMP 產(chǎn)生的Echo Request 和Echo Reply就是兩個(gè)普通的幀,由于之前的ARP 過(guò)程讓交換機(jī)完成了MAC 地址學(xué)習(xí),所以這兩個(gè)報(bào)文都可以被正常轉(zhuǎn)發(fā),不會(huì)引起廣播。
對(duì)于SDN 網(wǎng)絡(luò)來(lái)說(shuō),由于ICMP 報(bào)文和ARP 是兩種完全不同的協(xié)議。所以ICMP 報(bào)文會(huì)在交換機(jī)上產(chǎn)生流表,所以每個(gè)Echo Request 報(bào)文都會(huì)觸發(fā)packetin 報(bào)文到控制器,控制器會(huì)產(chǎn)生packetout 報(bào)文,并且通過(guò)flow mod 報(bào)文下發(fā)流表。所以總報(bào)文量不少于:
本實(shí)驗(yàn)過(guò)程為h1 傳送20GB 數(shù)據(jù)給h2,然后測(cè)試網(wǎng)絡(luò)吞吐率。這里ARP 過(guò)程和IMCP 過(guò)程在初期會(huì)讓SDN交換機(jī)有略微影響,但隨著MAC 學(xué)習(xí)的完成和地址主機(jī)ARP 緩存的產(chǎn)生,這種影響會(huì)逐漸消失。對(duì)于以太網(wǎng)來(lái)說(shuō),只有初期的ARP 過(guò)程互讓TCP 有略微的延遲??傮w來(lái)說(shuō)以太網(wǎng)交換機(jī)的吞吐要高于SDN 交換機(jī),可見(jiàn)交換機(jī)和控制器的互動(dòng)過(guò)程是影響TCP 效率的,兩者的吞吐都隨著網(wǎng)絡(luò)交換機(jī)數(shù)量的增加而下降,詳見(jiàn)圖4。
圖4 TCP 吞吐對(duì)比
本實(shí)驗(yàn)中h1 同樣是傳送20GB 數(shù)據(jù)給h2,測(cè)試網(wǎng)絡(luò)吞吐率。從圖5 可知,在局域網(wǎng)這種丟包率低、可靠性高的網(wǎng)絡(luò)中,UDP 的傳輸效率是高于TCP 的。同樣,隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)的增加而下降,以太網(wǎng)環(huán)境吞吐率高于SDN環(huán)境。
圖5 UDP 吞吐對(duì)比
如圖6 所示,在內(nèi)存開(kāi)銷方面,以太網(wǎng)和SDN 極為接近,SDN 網(wǎng)絡(luò)的內(nèi)存開(kāi)銷略高于以太網(wǎng),但并不明顯,均值差距僅為0.076%。CPU開(kāi)銷方面SDN 網(wǎng)絡(luò)略高于以太網(wǎng),均值差距為0.58%。所以可見(jiàn),對(duì)于SDN和以太網(wǎng)來(lái)說(shuō),在利用硬件性能上,兩者幾乎相同。
圖6 CPU 和內(nèi)存開(kāi)銷對(duì)比
SDN 給網(wǎng)絡(luò)通信技術(shù)帶來(lái)了巨大的頸進(jìn)步,尤其是控制器集中管控、靈活多變的App 設(shè)計(jì),讓網(wǎng)絡(luò)設(shè)備不再封閉,網(wǎng)絡(luò)擴(kuò)展性增強(qiáng),功能豐富多樣。但SDN化未必總能帶來(lái)優(yōu)勢(shì)。量化分析與實(shí)驗(yàn)表明,由于SDN 控制面與數(shù)據(jù)面的分離,Reactive 模式下交換機(jī)等網(wǎng)絡(luò)設(shè)備的行為需要由控制器來(lái)指導(dǎo),轉(zhuǎn)發(fā)表需要依賴制器部署,因此其通信效率受到一定影響,在ARP 協(xié)議、ICMP 協(xié)議和數(shù)據(jù)傳輸方面表現(xiàn)尤為明顯,在硬件使用效率上也略低于以太網(wǎng)設(shè)備,有針對(duì)性的、系統(tǒng)性的優(yōu)化是推動(dòng)SDN進(jìn)一步發(fā)展的關(guān)鍵。