朱向陽,陳 兵
(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)
軟件定義網(wǎng)絡(luò)中可擴(kuò)展的流表項(xiàng)處理機(jī)制
朱向陽,陳 兵
(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)
數(shù)據(jù)中心內(nèi)部的流量特性和OpenFlow交換機(jī)流表的超時(shí)機(jī)制及其容量的限制為軟件定義網(wǎng)絡(luò)(SDN)的應(yīng)用帶來了可擴(kuò)展性難題,即由于老鼠流頻繁調(diào)用控制器以及流表超時(shí)機(jī)制帶來的重復(fù)路由請求,導(dǎo)致控制器平面和OpenFlow信道成為SDN架構(gòu)的性能瓶頸而無法根據(jù)業(yè)務(wù)的需求提供有QoS保證的服務(wù)。針對此問題從兩個(gè)角度提出了改進(jìn)措施。為交換機(jī)配置以目的地址為導(dǎo)向的高優(yōu)先級的通配符流表項(xiàng),使得大部分老鼠流能夠被轉(zhuǎn)發(fā)平面直接處理而不需要詢問控制器;在控制器和轉(zhuǎn)發(fā)平面之間增加一個(gè)動態(tài)索引哈希緩存層,當(dāng)流表項(xiàng)因超時(shí)或者流表空間耗盡被流表丟棄時(shí)將其緩存在緩存層中,此時(shí)收到重復(fù)的路由請求時(shí)能夠避免重復(fù)計(jì)算。實(shí)驗(yàn)結(jié)果表明,提出的通配符流表項(xiàng)能夠有效降低網(wǎng)絡(luò)的延遲和流表項(xiàng)裝載數(shù)量,而基于動態(tài)索引哈希的緩存層有著較高的命中率和查找速度。
軟件定義網(wǎng)絡(luò);老鼠流;流表超時(shí);通配符流表項(xiàng);動態(tài)索引哈希
隨著互聯(lián)網(wǎng)規(guī)模和復(fù)雜性的日益增長以及應(yīng)用范圍的不斷擴(kuò)大,傳統(tǒng)網(wǎng)絡(luò)架構(gòu)正在發(fā)生巨大的變化。數(shù)據(jù)中心網(wǎng)絡(luò)承載著諸如Web服務(wù)、網(wǎng)絡(luò)游戲、電子商務(wù)及社交網(wǎng)絡(luò)等眾多應(yīng)用,這些應(yīng)用在數(shù)據(jù)中心網(wǎng)絡(luò)中產(chǎn)生了大量的流量。最新研究表明,在數(shù)據(jù)中心網(wǎng)絡(luò)中,90%的業(yè)務(wù)流小于100 Mb(稱為老鼠流),而其余10%的業(yè)務(wù)流(稱為大象流)傳輸了超過99%的網(wǎng)絡(luò)流量[1]。為了在數(shù)據(jù)中心網(wǎng)絡(luò)中使得控制更加靈活、智能,需要采用更加細(xì)粒度的解決方案。
在傳統(tǒng)網(wǎng)絡(luò)中,諸多復(fù)雜的網(wǎng)絡(luò)功能分散于各個(gè)網(wǎng)絡(luò)設(shè)備上,全局網(wǎng)絡(luò)視圖的缺乏使得難以提供基于網(wǎng)絡(luò)資源和業(yè)務(wù)流特征的細(xì)粒度服務(wù),而網(wǎng)絡(luò)結(jié)構(gòu)的僵化使得難以對傳統(tǒng)網(wǎng)絡(luò)架構(gòu)進(jìn)行改進(jìn)以提供靈活可區(qū)分服務(wù)?;谏鲜鰡栴},軟件定義網(wǎng)絡(luò)(SDN)日益興起并迅速吸引了學(xué)術(shù)界和工業(yè)界的注意。如圖1所示,SDN將控制平面與轉(zhuǎn)發(fā)平面分離,網(wǎng)絡(luò)層和控制層之間通過OpenFlow協(xié)議[2]提供的安全信道交換信息,控制層通過REST API提供的北向接口向應(yīng)用層提供服務(wù)。SDN控制器負(fù)責(zé)執(zhí)行網(wǎng)絡(luò)決策任務(wù),如負(fù)載均衡、接入控制、流量工程和路由計(jì)算,網(wǎng)絡(luò)設(shè)備在控制器的指導(dǎo)下進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。網(wǎng)絡(luò)管理者能夠通過編寫應(yīng)用程序來配置、管理和優(yōu)化底層的網(wǎng)絡(luò)資源,從而實(shí)現(xiàn)靈活可控的網(wǎng)絡(luò)以及提供高質(zhì)量、細(xì)粒度和可訂制的服務(wù)。
圖1 SDN網(wǎng)絡(luò)架構(gòu)
OpenFlow交換機(jī)中維護(hù)著一張流表,數(shù)據(jù)包通過匹配流表中的流表項(xiàng)執(zhí)行相應(yīng)操作,如廣播、轉(zhuǎn)發(fā)或丟棄。流表空間是有限的(大約1 K到4 K),例如支持OpenFlow協(xié)議的HP 5406zl僅僅能支持1 500個(gè)流表項(xiàng)[3],因?yàn)榱鞅硎怯煞浅0嘿F的支持并發(fā)查找和通配符的TCAM制作而成,其容量遠(yuǎn)遠(yuǎn)無法滿足網(wǎng)絡(luò)中業(yè)務(wù)量的需求。假設(shè)網(wǎng)絡(luò)中有N臺主機(jī),那么所需要的總流表項(xiàng)數(shù)量大約為:F*H*N(N-1)/2。其中,F表示主機(jī)對之間平均的業(yè)務(wù)流數(shù)量;H表示主機(jī)對間的平均跳數(shù)。顯然總的流表項(xiàng)數(shù)目和N2成正比,要遠(yuǎn)遠(yuǎn)大于流表空間的容量。為此,OpenFlow協(xié)議中規(guī)定了兩種流表項(xiàng)超時(shí)機(jī)制,空閑超時(shí)表示如果一個(gè)流表項(xiàng)在規(guī)定的時(shí)間內(nèi)未獲得匹配則被刪除,硬超時(shí)意味著無論該流表項(xiàng)被匹配多少次,在一定的時(shí)間以后都會被丟棄。
數(shù)據(jù)中心業(yè)務(wù)流的特點(diǎn)和流表的特性會帶來可擴(kuò)展性問題:
(1)數(shù)據(jù)中心中存在大量的老鼠流,這些老鼠流會頻繁地調(diào)用控制器計(jì)算最優(yōu)路徑,從而導(dǎo)致SDN控制平面的性能下降以及延遲的增加,大量的路由計(jì)算請求還會造成OpenFlow安全信道的阻塞;
(2)由于流表超時(shí)機(jī)制,已經(jīng)被計(jì)算過的流表項(xiàng)可能會被重復(fù)提交到控制平面,同時(shí)大象流在數(shù)據(jù)傳輸過程中可能會被老鼠流擠占流表項(xiàng)空間而導(dǎo)致傳輸中斷。
由于在數(shù)據(jù)中心網(wǎng)絡(luò)中存在大量的老鼠流,為每個(gè)老鼠流在OpenFlow交換機(jī)中分別制定一個(gè)確切的轉(zhuǎn)發(fā)規(guī)則的代價(jià)過于昂貴,因此文中在識別出老鼠流的基礎(chǔ)上,在交換機(jī)中為老鼠流建立一個(gè)以目的IP地址為導(dǎo)向的通配符流表項(xiàng),在減少路由計(jì)算請求的同時(shí)降低流表空間的占用。此外如上文所述,流表空間的大小相對于網(wǎng)絡(luò)中流的數(shù)量可以說微乎其微,因此流表的超時(shí)是無法避免的。在流表超時(shí)發(fā)生時(shí),為了緩解流表項(xiàng)重復(fù)計(jì)算帶來的開銷,提出在控制器和交換機(jī)中間增加一個(gè)動態(tài)索引哈希流表項(xiàng)緩存器,當(dāng)流表項(xiàng)因超時(shí)被移除時(shí)并不是簡單地將其丟棄,而是先把它存入緩存器中。通過為老鼠流建立通配符流表項(xiàng)及使用緩存器,能夠有效地解決上述可擴(kuò)展性問題。
SDN是由美國斯坦福大學(xué)CleanSlate研究組提出的一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其核心技術(shù)OpenFlow通過將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,為核心網(wǎng)絡(luò)及應(yīng)用的創(chuàng)新提供了良好的平臺。OpenFlow協(xié)議是SDN事實(shí)上的標(biāo)準(zhǔn)和實(shí)現(xiàn)方式,它允許研究人員使用軟件搭建起媲美物理硬件的實(shí)驗(yàn)環(huán)境,控制平面和轉(zhuǎn)發(fā)平面之間正是通過OpenFlow協(xié)議實(shí)現(xiàn)的安全信道來進(jìn)行通信。每個(gè)OpenFlow交換機(jī)中都維護(hù)一張流表,流表中的每個(gè)表項(xiàng)代表一個(gè)轉(zhuǎn)發(fā)規(guī)則,業(yè)務(wù)流通過和流表項(xiàng)的字段進(jìn)行哈希查找和匹配以決定具體的轉(zhuǎn)發(fā)規(guī)則,如果在流表中不存在相應(yīng)的流表項(xiàng),則該業(yè)務(wù)流將被交換機(jī)提交至控制器發(fā)起一次路由計(jì)算請求。
當(dāng)前的多路徑路由技術(shù)如ECMP[4]隨機(jī)地將流量分配到等價(jià)路徑上,這種未考慮路徑特征和流量特征的隨機(jī)分配會導(dǎo)致某些鏈路的擁堵。對大象流和老鼠流分別進(jìn)行處理,首先需要區(qū)分出老鼠流。研究表明,對老鼠流的檢測可在邊界交換機(jī)中(如Hedera[5])或終端設(shè)備中(如Mahout[6])進(jìn)行。首先設(shè)定一個(gè)數(shù)據(jù)傳輸量的閾值,如果約定時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量少于該閾值則被標(biāo)記為老鼠流。例如Hedera使用等價(jià)多路徑傳輸(ECMP)來處理老鼠流,其規(guī)定當(dāng)OpenFlow交換機(jī)處理數(shù)據(jù)量超過100MB時(shí)則識別為大象流。
Martin等[7]使用遺傳算法來歸納大象流的特征向量并使用這些向量獲取連續(xù)的高命中流,這種方法宣稱能夠獲得接近最佳的命中率,但是其缺點(diǎn)是訓(xùn)練過程需要大量的流特征數(shù)據(jù),以獲得最佳的性能。DIFANE[8]通過使用一種稱為“權(quán)威交換機(jī)”的專用交換機(jī)來降低控制器平面的負(fù)載,這種控制器負(fù)責(zé)緩存部分流表并試圖在轉(zhuǎn)發(fā)平面處理所有的數(shù)據(jù)包,其缺點(diǎn)是控制器需要將部分控制功能下放到轉(zhuǎn)發(fā)平面,這不僅增加了OpenFlow交換機(jī)的復(fù)雜性,也違背了SDN控制轉(zhuǎn)發(fā)分離的思想。T.Pan等[9]提出了一種基于流長度和流緩存移除次數(shù)統(tǒng)計(jì)的流緩存替換規(guī)則來識別出大象流并提高緩存命中率,其采用自適應(yīng)的最少命中數(shù)驅(qū)逐(ALFE)緩存替換策略為大象流賦予了更高的優(yōu)先級。
針對TCAM造成的流表空間受限問題,學(xué)術(shù)界提出了各種改進(jìn)方案。V.C.Ravikumar等[10]提出了一個(gè)多級別管道流表架構(gòu),通過前綴壓縮和分割來降低TCAM單元能量的消耗,這種方式無法應(yīng)對網(wǎng)絡(luò)中的突發(fā)流量。W.Wu等[11]提出了一種劃分路由表的算法,并且把整個(gè)路由匹配過程分為兩個(gè)階段(索引TCAM和子TCAM)以提高流表查找速度,降低能量消耗。F.Zane等[12]提出將TCAM分為基于位選擇的兩個(gè)層次,其中第一層是第二層分區(qū)的索引。缺點(diǎn)是使路由表更新變得復(fù)雜,無法應(yīng)對超大規(guī)模的流量。
3.1 大象流檢測
如上文所述,數(shù)據(jù)中心大量老鼠流會頻繁調(diào)用控制器,從而導(dǎo)致控制器性能降低和網(wǎng)絡(luò)時(shí)延的增加。于是提出為老鼠流制訂專用的通配符流表項(xiàng),使大多數(shù)老鼠流由轉(zhuǎn)發(fā)平面直接處理,在提高控制器工作效率的同時(shí),降低流表空間的占用和OpenFlow安全信道發(fā)生阻塞的風(fēng)險(xiǎn)。
大象流的檢測有多種方法:
(1)計(jì)數(shù)檢測在交換機(jī)的端口統(tǒng)計(jì)每個(gè)匯入流量的信息,然后將這些信息報(bào)告給控制器,如Helios[13]就使用這種機(jī)制。但是這種方法無法擴(kuò)展到大規(guī)模網(wǎng)絡(luò)中,因?yàn)槠洳粌H消耗交換機(jī)控制器之間的帶寬,而且會增加交換機(jī)和控制器的負(fù)擔(dān)。
(2)標(biāo)記檢測是通過打標(biāo)記的方法來識別大象流,其因?yàn)樵砗蛯?shí)現(xiàn)簡單而被廣泛應(yīng)用于網(wǎng)絡(luò)研究中,但缺點(diǎn)是需要根據(jù)研究內(nèi)容修改應(yīng)用程序而無法在數(shù)據(jù)中心網(wǎng)絡(luò)中部署。標(biāo)記算法還可以根據(jù)TCP端口號等標(biāo)記來對流量進(jìn)行分類,這種方案較適合企業(yè)應(yīng)用場景,但因?yàn)閿?shù)據(jù)中心流量巨大且難以訓(xùn)練分類算法,仍然無法應(yīng)用于數(shù)據(jù)中心網(wǎng)絡(luò)。
(3)終端檢測是通過在網(wǎng)絡(luò)通信模塊上新增一個(gè)墊片層,用于監(jiān)控主機(jī)的TCP套接字緩沖區(qū),當(dāng)緩沖區(qū)的字節(jié)數(shù)在規(guī)定時(shí)間內(nèi)超過了預(yù)定的閾值后,就會將對應(yīng)的流標(biāo)記為大象流。該方法有很多優(yōu)點(diǎn),終端可以根據(jù)用戶的行為判斷流量的類型,其檢測開銷很小,適合于數(shù)據(jù)中心這樣復(fù)雜的網(wǎng)絡(luò)環(huán)境,因此文中采用終端檢測方法檢測大象流。
3.2 老鼠流聚合
由于數(shù)據(jù)中心存在大量的老鼠流,為每個(gè)老鼠流分別制定轉(zhuǎn)發(fā)規(guī)則及建立流表項(xiàng)會帶來極大的控制器計(jì)算資源和流表空間資源的開銷。文中利用OpenFlow協(xié)議增加老鼠流聚合模塊,為相同目的IP地址的老鼠流建立通配符流表項(xiàng),OpenFlow 1.1提出結(jié)合組表、流表及動作表能夠支持多路徑路由。多路徑路由的實(shí)現(xiàn)是為流表項(xiàng)增加一個(gè)指針以表明其對應(yīng)的組表項(xiàng),并且為組表項(xiàng)增加一個(gè)字段指向其對應(yīng)的動作表,動作表中每個(gè)表項(xiàng)都包含三個(gè)字段:路徑、權(quán)重和動作。通配符流表項(xiàng)通過目的地址字段來匹配老鼠流,因此交換機(jī)流入的所有老鼠流都會匹配到某個(gè)流表項(xiàng)中,并執(zhí)行對應(yīng)組表項(xiàng)所指定的操作,如圖2所示。
圖2 通配符流表項(xiàng)聚合
假設(shè)某交換機(jī)中有兩個(gè)老鼠流表項(xiàng),流表項(xiàng)1為:in_port=1,actoins=output:2,hard_timeout=15,idle_timeout=25,ip_src=192.168.80.1,ip_dst=172.16.0.1,vlan_id=100,priority=100,ip_tos_bits=0。流表項(xiàng)2為:in_port=3,actions=output:4,hard_timeout =15,idle_timeout=25,ip_src=192.168.81.1,ip_dst=172.16.0.1,vlan_id=101,priority=200,ip_tos_bits=0。此時(shí)可以為它們建立一個(gè)通配符流表項(xiàng):inport=*,dst_ip=172.16.0.1,actions=output:5,idle_timeout=100,ip_src=*,ip_tos_bits=1,priority=10,vlan_id=*??梢钥吹酵ㄅ浞鞅眄?xiàng)擁有較高的優(yōu)先級,且其超時(shí)時(shí)間更長。原本屬于老鼠流1和老鼠流2的流表項(xiàng)在硬超時(shí)時(shí)間內(nèi)未獲得匹配后,將被流量統(tǒng)計(jì)管理器從流表中刪除,從而降低流表空間的占用。
3.3 流表項(xiàng)緩存機(jī)制
針對流表空間有限帶來的可擴(kuò)展性問題,提出在轉(zhuǎn)發(fā)平面和控制器之間增加一個(gè)流表項(xiàng)緩存層。每個(gè)交換機(jī)對應(yīng)一個(gè)緩存器,多個(gè)緩存器共同構(gòu)成緩存層。為了充分利用緩存空間,每個(gè)緩存器大小根據(jù)流表項(xiàng)數(shù)量進(jìn)行動態(tài)分配,當(dāng)流表中的流表項(xiàng)因?yàn)槿狈Υ鎯臻g或者超時(shí)而被刪除時(shí),該流表項(xiàng)會被存儲在相應(yīng)的緩存器中,而每當(dāng)緩存器收到一個(gè)流表存儲請求,就申請一個(gè)緩存單元用于存儲該流表項(xiàng)。此時(shí)當(dāng)OpenFlow交換機(jī)收到PACKET_IN路由請求數(shù)據(jù)包時(shí),首先會在緩存器中進(jìn)行匹配,如果存在對應(yīng)流表項(xiàng),則由控制器將該流表項(xiàng)裝載到交換機(jī)中,否則將發(fā)起一次路由計(jì)算請求。
在各個(gè)緩存器中,老鼠流和大象流被分配獨(dú)立的緩存單元,雖然整個(gè)緩存器的存儲空間有限,但是可以根據(jù)需求進(jìn)行動態(tài)分配。為了快速查找緩存中的流表項(xiàng),使用動態(tài)指數(shù)哈希將流映射到緩存單元,并且建立一張映射目錄,目錄中直接保存緩存單元的地址。流的m位二進(jìn)制哈希指數(shù)是動態(tài)的,而m的大小取決于用于該類型的流的緩存單元的數(shù)量,每個(gè)存儲單元都有一個(gè)m位二進(jìn)制標(biāo)記,該存儲單元中存儲的流就是擁有相同標(biāo)記的流。安全哈希算法(SHA)用來產(chǎn)生隨機(jī)k位哈希指數(shù),從而能夠保證緩存器中存儲的均衡性。如圖3所示,流表項(xiàng)的緩存過程如下:
(1)使用SHA對流的包頭特征進(jìn)行計(jì)算得到哈希值,SHA的優(yōu)點(diǎn)是能夠隨機(jī)地將流映射到160位二進(jìn)制存儲空間中。此時(shí),哈希值的前n位(n是當(dāng)前緩存器的最大深度,2n是其存儲容量)被提出來并加上以為標(biāo)志前綴,其中“0”表示老鼠流,“1”表示大象流。
(2)根據(jù)得到的n+1位二進(jìn)制索引,查詢目錄獲得緩存器單元地址。
(3)查找對應(yīng)緩存單元地址,如果未命中則發(fā)起一次路由計(jì)算請求并將最優(yōu)路徑對應(yīng)的流表項(xiàng)存入該緩存單元中。如果緩存單元已滿,則將緩存器中存儲單元的個(gè)數(shù)翻倍。
圖3 基于動態(tài)索引哈希的流緩存機(jī)制
緩存空間的大小相比并發(fā)業(yè)務(wù)流的數(shù)量較小,因此需要應(yīng)用緩存替換策略。為了公平對待老鼠流和大象流,規(guī)定大象流僅能替換大象流,而老鼠流也僅能替換老鼠流。采用本地最近最久未使用(LRU)替換策略,當(dāng)緩存未命中或緩存單元滿的時(shí)候最近最長時(shí)間未被命中過的流表項(xiàng)將被移除。
首先實(shí)現(xiàn)系統(tǒng)原型,然后從不同的方面來考察文中方案的性能。為了搭建仿真環(huán)境,使用Mininet 2.2.0[14]網(wǎng)絡(luò)仿真工具搭建實(shí)驗(yàn)網(wǎng)絡(luò),利用開源控制器Floodlight 3.5構(gòu)建控制器平面[15],使用支持多層虛擬交換的OpenVSwitch 2.3.1作為轉(zhuǎn)發(fā)設(shè)備,而緩存層被作為控制器模塊來實(shí)現(xiàn)。實(shí)驗(yàn)網(wǎng)絡(luò)如圖4所示。
圖4 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?/p>
4.1 通配符流表項(xiàng)對延遲的影響
測試了安裝通配符流表項(xiàng)對主機(jī)間傳輸時(shí)延和單位時(shí)間內(nèi)流表項(xiàng)數(shù)量的影響,如圖5所示。在通配符流表項(xiàng)建立之前(0~15 s),相距跳數(shù)為10的主機(jī)對的平均時(shí)延大約為850 ms,而當(dāng)在對應(yīng)路徑上安裝優(yōu)先級較高的通配符流表項(xiàng)后,時(shí)延很快降低至10 ms??梢钥闯觯?dāng)通配符流表項(xiàng)被建立以后,大量的老鼠流被交換機(jī)直接轉(zhuǎn)發(fā)而不經(jīng)過控制器平面,在降低控制器負(fù)載的同時(shí),大大提高了數(shù)據(jù)的傳輸效率。單位時(shí)間內(nèi)的流表項(xiàng)數(shù)也表現(xiàn)出了類似的特性,在前15 s內(nèi),隨著流量的增加流表項(xiàng)數(shù)量也急劇增加,而當(dāng)通配符流表項(xiàng)建立以后,流表項(xiàng)數(shù)目隨著時(shí)間平滑下降。
圖5 通配符流表項(xiàng)對時(shí)延的影響
4.2 緩存命中率對比
將文中提出的流緩存策略與基于OpenFlow通配符感知的線性搜索表結(jié)合先進(jìn)先出(FIFO)及隨機(jī)替換策略的方式進(jìn)行對比。FIFO將最先到達(dá)的流表項(xiàng)刪除,而隨機(jī)替換策略是隨機(jī)選擇一個(gè)流表項(xiàng)并丟棄。為了模擬數(shù)據(jù)中心的流量環(huán)境,使用Mausezahn生成含有10%大象流和90%老鼠流的流量模式。LRU、基于通配符線性搜索表的FIFO和隨機(jī)丟棄三種方式的對比結(jié)果如圖6所示。
顯然LRU的性能要好于FIFO和隨機(jī)替換算法,并且盡管老鼠流數(shù)量巨大,但在文中提出的流緩存方案中,老鼠流和大象流使用獨(dú)立的緩存器,老鼠流不會擠占大象流的緩存空間,因此并未對大象流造成明顯的影響。
圖6 緩存命中率對比
4.3 緩存查找速度對比
將文中提出的動態(tài)索引哈希和基于OpenFlow通配符感知的線性搜索表進(jìn)行對比,如圖7所示。動態(tài)索引哈希的查找速度相比于線性搜索有了較大提升,且單位時(shí)間內(nèi)查找的次數(shù)越多,查找速度的差距越明顯。從理論上來說,基于通配符的線性搜索表對于大象流和老鼠流的查找速度并非是相同的,原因在于其采用的是步進(jìn)查找的方式,而老鼠流表項(xiàng)的數(shù)量要多于大象流表項(xiàng)的數(shù)量。可以看出,無論在命中率還是查找速度上,文中提出的緩存策略都具有明顯優(yōu)勢,而且使老鼠流對大象流的負(fù)面影響降到最低。
圖7 緩存查找速度對比
針對SDN應(yīng)用于數(shù)據(jù)中心網(wǎng)絡(luò)中遇到的可擴(kuò)展性問題,從兩個(gè)方面提出了改進(jìn)措施。為了解決數(shù)據(jù)中心內(nèi)部存在大量老鼠流導(dǎo)致的控制器性能下降的問題,提出區(qū)分老鼠流,并為其建立以目的地址為導(dǎo)向的通配符流表項(xiàng),大大降低了傳輸時(shí)延和流表項(xiàng)數(shù)量;針對流表空間有限性和流表超時(shí)帶來的路由重復(fù)請求問題,在控制器平面和轉(zhuǎn)發(fā)平面之間增加了基于動態(tài)索引哈希的緩存層,給出了詳細(xì)的實(shí)現(xiàn)過程。實(shí)驗(yàn)結(jié)果表明其有較高的命中率和查找速度。
[1] Benson T,Akella A,Maltz D A.Network traffic characteristics of data centers in the wild[C]//ACM SIGCOMM conference on internet measurement 2010.Melbourne,Australia:ACM,2010:114-115.
[2] Mckeown N,Anderson T,Balakrishnan H,et al.OpenFlow:enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2):69-74.
[3] Curtis A R,Mogul J C,Tourrilhes J,et al.DevoFlow:scaling flow management for high-performance networks[J].ACM SIGCOMM Computer Communication Review,2011,41(4):254-265.
[4] Chandra R,Bahl P,Bahl P.MultiNet:connecting to multiple IEEE 802.11 networks using a single wireless card[C]//Twenty-third annualjoint conference of the IEEE computer and communications societies.[s.l.]:IEEE,2004:882-893.
[5] Al-Fares M,Radhakrishnan S,Raghavan B,et al.Hedera:dynamic flow scheduling for data center networks[C]//USENIX symposium on networked systems design and implementation.San Jose,Ca,USA:USENIX,2010:19.
[6] Curtis A R,Kim W,Yalagandula P.Mahout:low-overhead datacenter traffic management using end-host-based elephant detection[C]//INFOCOM.[s.l.]:IEEE,2011:1629-1637.
[7] Zadnik M,Canini M.Evolution of cache replacement policies to track heavy-hitter flows[M]//International conference on passive and active measurement.[s.l.]:IEEE,2011:1-2.
[8] Yu M,Rexford J,Freedman M J,et al.Scalable flow-based networking with DIFANE[J].ACM SIGCOMM Computer Communication Review,2010,40(4):351-362.
[9] Pan T,Guo X,Zhang C,et al.ALFE:a replacement policy to cache elephant flows in the presence of mice flooding[C]//IEEE international conference on communications.[s.l.]:IEEE,2012:2961-2965.
[10] Ravikumar V C, Mahapatra R N. TCAM architecture for IP lookup using prefix properties[J].IEEE Micro,2004,24(2):60-69.
[11] Wu W,Ji D,Lan Y,et al.Power-aware TCAMs for routing table lookup[C]//Green computing and communications.[s.l.]:IEEE,2010:425-429.
[12] Zane F,Narlikar G,Basu A.Coolcams:power-efficient TCAMs for forwarding engines[C]//Joint conference of the IEEE computer and communications.[s.l.]:IEEE,2003:42-52.
[13] Farrington N,Porter G,Radhakrishnan S.Helios:a hybird electrical/potical switch architecture for modular data centers[J].ACM SIGCOMM Computer Communication Review,2011,41(4):339-350.
[14] Oliveira R L S D,Schweitzer C M,Shinoda A A,et al.Using mininet for emulation and prototyping software-defined networks[C]//IEEE Colombian conference on communications and computing.[s.l.]:IEEE,2014:1-6.
[15] Chiu H W,Wang S Y.Boosting the OpenFlow control-plane message exchange performance of OpenvSwitch[C]//IEEE international conference on communications.[s.l.]:IEEE,2015.
Scalable Flow Table Entries Processing Mechanism in Software-defined Networks
ZHU Xiang-yang,CHEN Bing
(College of Computer Science and Technology,Nanjing University of Aeronautics and Astronautics,Nanjing 211106,China)
The timeout mechanism and capacity limitation of flow table in OpenFlow switches,together with the traffic characteristics in data centers,have brought scalability problems in the application of Software-Defined Network (SDN).Due to the frequent and repeatable routing request invocations by mice flows and flow table timeouts,the SDN control plane and OpenFlow secure channel will become the performance bottleneck of whole SDN architecture,and thus cannot provide QoS guaranteed services according to network resources and business requests.Two improvement measures are put forward from two aspects.The switches are configured with destination address oriented wildcard flow table entries for mice flows,making that most of mice flows are handled by forwarding plane directly without asking control plane.A dynamic-index hash cache layer is added between the control plane and the forwarding plane,and flow table entries will be put into the cache layer when they are evicted from flow table because of timeout or other reasons,which can avoid repeatable routing calculations.Experimental results show that wildcard flow table entries can effectively reduce the network delay and the number of flow table entries,and the cache strategy proposed has higher hit rate and looking up speed.
SDN;mice flow;flow table timeout;wildcard flow table entry;dynamic-index hash
2016-02-29
2016-06-16
時(shí)間:2016-11-22
江蘇省科技項(xiàng)目(未來網(wǎng)絡(luò)前瞻性研究項(xiàng)目)(BY2013095-2-10)
朱向陽(1987-),男,碩士研究生,研究方向?yàn)闊o線網(wǎng)絡(luò)、SDN網(wǎng)絡(luò);陳 兵,教授,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、無線通信、信息安全。
http://www.cnki.net/kcms/detail/61.1450.TP.20161122.1228.042.html
TP311
A
1673-629X(2016)12-0012-05
10.3969/j.issn.1673-629X.2016.12.003