摘 要 網(wǎng)絡設備的管理一向是重要的話題,而現(xiàn)今SDN網(wǎng)絡將控制層從網(wǎng)絡設備的數(shù)據(jù)層分離,集中由外部控制器進行管理,網(wǎng)絡設備只進行封包傳遞的動作,大幅簡化眾多設備的管理問題。本文進行傳統(tǒng)交換機與SDN交換機的性能測試與比較,在傳輸速率方面,傳統(tǒng)交換機能達到帶寬的9成,而SDN交換機在TCP傳輸只有25%,UDP是幾乎無法傳送的狀態(tài),而SDN交換機整體延遲時間約為傳統(tǒng)交換機的13.23倍。由于SDN交換機 CPU頻率不高,使得封包處理速度慢,以及封包被轉(zhuǎn)送到控制器,增加多余的延遲時間,加上封包發(fā)送速率過快,又或者封包過大需要分割,導致大量的封包被重送或丟失,這四種因素造成SDN交換機性能不及傳統(tǒng)交換機。
【關鍵詞】SDN 交換機 OpenFlow 架構(gòu) 性能
1 簡介
在現(xiàn)今企業(yè)的網(wǎng)絡中,云端運算已成為不可或缺的一部分,將分散的服務器集中管理,使實際上位于不同處的資源看似于放置在同一個地方。如此一來,不但擁有大量的資源,更可以提升系統(tǒng)容錯的能力,也就是資源虛擬化。研究人員發(fā)現(xiàn)虛擬化所帶來的好處后,也想將負責連接與傳送資源的網(wǎng)絡進行虛擬化,使其網(wǎng)絡的性能及管理方面能夠進一步的提升。但在實際中發(fā)現(xiàn),網(wǎng)絡與其它資源不同,就算將設備集中,也只是達到集中化的效果,在管理方面還是得對每一部設備進行各別的設定,并無法進一步達到虛擬化的效果。為了解決網(wǎng)絡虛擬化的問題,Nick McKeown帶領的研究團隊提出將網(wǎng)絡的控制層獨立出來集中管理,分散于各處的網(wǎng)絡設備就僅是負責數(shù)據(jù)傳遞的服務,也就是軟件定義網(wǎng)絡(Software-Defined Networking, SDN)[1] 的概念。如此一來,路徑的運算、環(huán)境的配置以及設備的維護都可以集中處理,達到網(wǎng)絡控制層虛擬化的目的。本篇文章會針對傳統(tǒng)交換機與 SDN 交換機的性能進行三個項目的測試:
(1)傳輸速率;
(2)OpenFlow控制封包產(chǎn)生率;
(3)延遲時間,來了解傳統(tǒng)交換機與 SDN 交換機兩者之間的差異。
2 SDN介紹
SDN是將網(wǎng)路設備中的控制層(control plane)從數(shù)據(jù)層(data plane, forwarding plane)分離,由外部控制器(controller) 集中管理控制層,僅剩下數(shù)據(jù)層的網(wǎng)絡設備就只需要負責處理封包傳遞的部分。在控制器中以軟件的形式執(zhí)行所定義的網(wǎng)絡行為,依照軟件所定義的行為不同,底層的網(wǎng)絡設備就會具有不同的行為,例如在控制器中定義收到封包后一律進行廣播的動作,這時底層的網(wǎng)絡設備就是一個集線器(hub);又或者是定義收到封包后進行包頭(header)的解析并傳送給指定的端口(port),此時底層的網(wǎng)絡設備就會變成是一個交換機(switch)。通過這種方式,SDN 可以快速且不需更換實體的網(wǎng)絡設備,便能夠部署各式各樣不同的網(wǎng)絡環(huán)境,更重要的是,集中且程序化的管理控制層,能夠省下大量的部署時間與進行維護人力資源,真正達到虛擬化的目的。
2.1 SDN架構(gòu)
在 SDN 發(fā)展的過程當中,有許多研究人員提出各式各樣SDN 架構(gòu)的方法,其中就以OpenFlow最為有名,以下將以OpenFlow為例介紹 SDN 網(wǎng)絡的架構(gòu),并針對交換機做為網(wǎng)絡設備進行討論及比較。
OpenFlow是由 Nick McKeown所帶領的研究團隊提出,目的是提供一個開放的通訊協(xié)議(protocol) 使得程序可以控制不同交換機上的流程表(flow table),達到 SDN 的效果,主要有三個部分:
(1)流程表:在交換機中寫入封包的流向,封包進入交換機后依照流程表所定義的流向來傳送封包。
(2)控制器:在流程表中沒定義其流向的封包會進入控制器,由控制器決定封包接下來的流向。
(3)OpenFlow通訊協(xié)議:通過SSL加密通道,讓交換機以及控制器進行溝通。
2.2 與傳統(tǒng)交換機架構(gòu)之比較
在現(xiàn)今的網(wǎng)絡環(huán)境中,交換機本身具有許多的功能,本篇文章中我們稱之為傳統(tǒng)交換機,在此與 SDN 交換機的架構(gòu)進行比較,如圖1所示。圖1的左半邊為傳統(tǒng)網(wǎng)絡的架構(gòu),右半邊為 SDN 網(wǎng)絡的架構(gòu)。從傳統(tǒng)網(wǎng)絡架構(gòu)中,可以看出交換機集所有功能于一身,從最底層的封包傳遞,中層的網(wǎng)絡管理,到最上層的應用程序都由一臺交換機一手包辦,其優(yōu)點是可以由硬件的設計來達成交換機的行為,提升交換機的處理速度;但缺點是相同的功能出現(xiàn)在多個交換機上,需要改變交換機的行為時,必須逐一對每臺交換機進行設定,更糟的情況是要變更的行為已經(jīng)寫入硬件時,必須直接更換整臺交換機來完成設定,此時將浪費許多的成本。
而 SDN 網(wǎng)絡架構(gòu)與傳統(tǒng)網(wǎng)絡不同,底層只負責封包傳遞,位于傳統(tǒng)網(wǎng)絡中層及上層的功能被移轉(zhuǎn)到控制器上,由控制器中的軟件進行控制,最大的優(yōu)點是可以快速且不需更換交換機,部署各式各樣不同的網(wǎng)絡環(huán)境,并省下大量的部署時間與進行維護人力資源,達到虛擬化的效果。
3 OpenFlow交換機介紹
OpenFlow交換機是一個可程序化的交換機,主要在交換機上運行ofprotocol與ofdatapath兩個程序以及記錄一張流程表。ofprotocol的功能是記錄封包進出交換機的信息,ofdatapath的功能是處理進入交換機的封包,流程表的功能則是記錄規(guī)則及處理動作。當封包從外部網(wǎng)絡進入到交換機時,會先由ofprotocol得知該封包是由哪個端口進入交換機中,并記錄在封包內(nèi),然后交由ofdatapath處理。
OpenFlow交換機主要是傳遞封包,僅能判斷控制與資料封包的類別以及執(zhí)行流程表上的定義的幾個簡單的動作,其余的部分會因為流程表上未定義而送往控制器去決定,達到控制層與數(shù)據(jù)層分離的效果。
4 實驗架構(gòu)與方法
本次實驗是利用三臺計算機以及一臺實體交換機,在100Mbps的網(wǎng)絡速度下,進行網(wǎng)絡性能的測試,架構(gòu)如圖2所示。其中三臺計算機的操作系統(tǒng)都是GNU Linux/Debian Wheezy ,linux_kernel版本為3.2.0-4 ,交換機使用TP-LINK TL-WR1043ND,在上面搭載OpenWRT的系統(tǒng),并使用 POX做為 SDN 網(wǎng)絡中的控制器。這臺交換機是以軟件實作流程表,因此在本實驗當中交換機的CPU常會出現(xiàn)高負載的情況。
本次實驗將測試三個項目:
(1)傳輸速率;
(2)OpenFlow控制封包產(chǎn)生率;
(3)延遲時間。
主要的測試是利用netperf這個程序進行,首先使用netperf預設參數(shù)在傳統(tǒng)交換機與 SDN 交換機下分別進行 TCP 與 UDP 大量數(shù)據(jù)的傳送來測試傳輸速率;然后再通過wireshark分析,探討OpenFlow控制封包的產(chǎn)生率;最后分析傳統(tǒng)交換機與 SDN 交換機發(fā)送封包從 client 端到 server端之間各段的延遲時間。
5 實驗結(jié)果
5.1 傳輸速率
表1是利用netperf預設參數(shù),進行傳統(tǒng)交換機與SDN 交換機的 TCP 與 UDP傳輸速率的比較。傳統(tǒng)交換機不論是在 TCP 或是 UDP 的傳輸上都有 9 成以上的速度;反觀SDN 交換機,受限于交換機CPU速度的影響,加上控制器與交換機溝通導致交換機 CPU 一直處于高負載,使得 TCP 傳輸速率只有 25.70Mbps,而 UDP 甚至因為大量的封包丟失,傳輸速率只有0.10Mbps。
5.2 OpenFlow控制封包產(chǎn)生率
表2調(diào)整不同信息大小,由wireshark觀察OpenFlow控制封包產(chǎn)生率。根據(jù)分析結(jié)果得知,信息大小小于 MTU(1480 bytes)時,控制封包產(chǎn)生率低;反之則高。在netperf產(chǎn)生的 5000 個數(shù)據(jù)封包中,信息大小為 1000 bytes時會多產(chǎn)生 0.22%的控制封包;而在信息大小為 2000 bytes 時則會多產(chǎn)生 45.48%的控制封包。
5.3 延遲時間
表3為 1 秒內(nèi)送出 500 個封包,傳統(tǒng)交換機的延遲時間與 SDN 交換機是否符合流程表規(guī)則的延遲時間,在 SDN 交換機測試的 500 個封包當中,前 4 個是不符合流程表規(guī)則的封包,會送往控制器處理,每個封包約需 9.9 ms;其它496 個封包有符合流程表的規(guī)則,會直接執(zhí)行流程表內(nèi)的動作將封包傳送到指令的位置,每個封包約需 1.52 ms。由表中可以看出,SDN交換機不符合流程表規(guī)則的封包延遲時間約為傳統(tǒng)交換機的 82.5 倍,符合流程表規(guī)則的封包延遲時間約為傳統(tǒng)交換機的 12.67 倍。
6 結(jié)論
本次實驗是傳統(tǒng)與 SDN 網(wǎng)絡的架構(gòu)進行網(wǎng)絡性能的測試。在傳輸速率方面,傳統(tǒng)交換機能使用到帶寬的9 成,而SDN 交換機在 TCP 傳輸只能用到 25% 的帶寬,UDP 是呈現(xiàn)無法使用的狀態(tài)。而在延遲時間方面,SDN 交換機整體延遲時間約為傳統(tǒng)交換機的 13.23 倍。單就 SDN 交換機本身的影響,在相同交換機以及控制器的條件下,由于交換機 CPU 頻率不高,加上這臺交換機是以軟件實現(xiàn)流程表,使得封包處理速度慢,又因為封包被轉(zhuǎn)送到控制器,增加多余的延遲時間,再加上封包發(fā)送速率過快,或者封包過大需要分割,導致大量的封包被重送或丟失。綜合以上幾點,SDN 交換機性能是低于傳統(tǒng)交換機。
參考文獻
[1]K.Greene,"Software-defined networking," Technology review - the 10 emerging technologies of 2009, March 2009.
[2]N.McKeown,T.Anderson,H.Balakrishnan, G.Parulkar,L.Peterson,J.Rexford, S.Shenker and J.Turner,“Open?ow: enabling innovation in campus networks”SIGCOMM Comput.Commun.Rev, 2008.
[3]OpenWrt,https://openwrt.org/.
[4]POX,http://www.noxrepo.org/pox/about-pox/.
[5]Netperf,http://www.netperf.org/netperf/.
[6]Wireshark,http://www.wireshark.org/.
[7]張景皓.“新一代網(wǎng)絡架構(gòu)SDN顛覆傳統(tǒng)網(wǎng)絡的控制模式”[J].iThome計算機報,2012.
作者簡介
周東(1982-),男,江蘇省宿遷市人?,F(xiàn)為南京廣播電視大學科長、工程師。研究方向為計算機網(wǎng)絡。
作者單位
南京廣播電視大學 江蘇省南京市 210002