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