崔釗婧
(中國(guó)空間技術(shù)研究院北京衛(wèi)星信息工程研究所,北京100086)
由于SDN將網(wǎng)絡(luò)管理從硬件轉(zhuǎn)移到軟件,使得用戶不再需要更新硬件設(shè)備便可以通過軟件的方式更改網(wǎng)絡(luò)功能,而這分離并解耦了網(wǎng)絡(luò)的控制平面與轉(zhuǎn)發(fā)平面,降低了網(wǎng)絡(luò)管理的開銷。因此,SDN的發(fā)展將給網(wǎng)絡(luò)產(chǎn)業(yè)帶來巨大的調(diào)整,成為廠商最近幾年來的研究熱點(diǎn),故SDN的大規(guī)模應(yīng)用只是時(shí)間問題[1]。
對(duì)于目前得到廣泛應(yīng)用的以太網(wǎng),由于其成本低,速度快,拓?fù)浜?jiǎn)單已成為共識(shí),它的應(yīng)用已經(jīng)延伸到各行各業(yè):各個(gè)公司企業(yè)網(wǎng)、互聯(lián)網(wǎng)、船舶、工業(yè)生產(chǎn)控制等。但由于傳統(tǒng)以太網(wǎng)遵循IEEE802.3標(biāo)準(zhǔn),針對(duì)某些特定領(lǐng)域,仍然存在一些缺陷,需要克服實(shí)時(shí)性、確定性、可靠性的缺點(diǎn)。
但由于傳統(tǒng)以太網(wǎng)本身協(xié)議的缺陷,如果應(yīng)用到安全關(guān)鍵系統(tǒng)中,必須克服:確定性、實(shí)時(shí)性、可靠性的缺點(diǎn)。針對(duì)這些缺點(diǎn),時(shí)間觸發(fā)以太網(wǎng)應(yīng)運(yùn)而生,解決了傳統(tǒng)以太網(wǎng)可靠性低、實(shí)時(shí)性弱問題[2]。
時(shí)間觸發(fā)以太網(wǎng)被來自?shī)W地利的業(yè)內(nèi)權(quán)威TTTech公司如下定義:
有保障的通信=以太網(wǎng)+被控制的速率+時(shí)間觸發(fā)+時(shí)間同步+通信類別[3]
國(guó)際上對(duì)于TTE的技術(shù)研究已經(jīng)發(fā)展的十分成熟,并且廣泛應(yīng)用與各個(gè)領(lǐng)域,譬如航空航天、消費(fèi)電子及汽車工業(yè)[4]。
而國(guó)內(nèi)對(duì)于SDN架構(gòu)下的的研究尚處于開始階段,各大核心期刊對(duì)于TTE的研究中很少有關(guān)于TTE的相關(guān)論文,不過顯而易見的是,由于TTE的高可靠性以及高帶寬的優(yōu)越性,TTE取代傳統(tǒng)的以太網(wǎng)網(wǎng)絡(luò)只是時(shí)間的問題。
文中將在SDN的架構(gòu)下,借鑒TTE的時(shí)間同步機(jī)制,給出一種以太網(wǎng)同步解決方案。
在傳統(tǒng)以太網(wǎng)基礎(chǔ)上,TTE通過建立和維護(hù)與本地時(shí)鐘同步的全局時(shí)間,實(shí)現(xiàn)了時(shí)間觸發(fā)控制,實(shí)現(xiàn)冗余管控、容錯(cuò)機(jī)制,也全面兼容以太網(wǎng)現(xiàn)有標(biāo)準(zhǔn)[3]。其協(xié)議體系架構(gòu)主要包括以下標(biāo)準(zhǔn):以太網(wǎng)802.3協(xié)議、主要完成時(shí)間同步機(jī)制的就是TT同步協(xié)議、IP協(xié)議、TCP/UDP協(xié)議[5]。
TTE的網(wǎng)絡(luò)構(gòu)件根據(jù)網(wǎng)絡(luò)功能分為以下3種角色:集中控制器(CM)、同步控制器(SM)和同步客戶(SC),主要由時(shí)間觸發(fā)以太網(wǎng)交換機(jī)及其終端構(gòu)成[6]。
TT同步協(xié)議主要是通過建立全網(wǎng)統(tǒng)一的時(shí)間調(diào)度表,將終端與交換機(jī)實(shí)現(xiàn)同步。如圖1所示,同步流程為:
首先,PCF由同步控制器產(chǎn)生,向集中控制器發(fā)送。協(xié)議控制幀往往是在同步控制器本地時(shí)鐘等待一個(gè)時(shí)間定值之后,才發(fā)送給集中控制器。其中,協(xié)議控制幀攜帶了相關(guān)的參數(shù)(如發(fā)送時(shí)間),而這些參數(shù)與每個(gè)同步控制器本地時(shí)鐘有關(guān)。在PCF幀傳輸過程中,它也會(huì)記錄一些鏈路延遲數(shù)據(jù),比如傳播延遲、動(dòng)態(tài)發(fā)送/接受延遲。
其次,各個(gè)同步控制器發(fā)送完各自的PCF幀之后,集中控制器將提取各個(gè)PCF幀攜帶的數(shù)據(jù),通過先運(yùn)行時(shí)序保持算法,再運(yùn)行集中算法得到一個(gè)統(tǒng)一的新的PCF幀,然后同步發(fā)回給各個(gè)同步客戶與同步控制器。集中控制器就像一個(gè)仲裁機(jī)構(gòu)一樣,根據(jù)同步控制器發(fā)來的PCF幀,經(jīng)過時(shí)序保持算法和集中算法,計(jì)算出一個(gè)大家都認(rèn)同的時(shí)鐘,然后就把這個(gè)信息返回給同步控制器及同步客戶,同步控制器和同步客戶經(jīng)過一定的處理后,就知道按什么樣的標(biāo)準(zhǔn)同步了。直到這時(shí)才實(shí)現(xiàn)了全域同步[7]。
圖1 TT同步流程
2012年,ONF的SDN白皮書發(fā)布了SDN標(biāo)準(zhǔn)體系結(jié)構(gòu)的定義。SDN通過控制器維護(hù)全網(wǎng)試圖。通過SDN控制器,企業(yè)可以獲得獨(dú)立于運(yùn)營(yíng)商外的整個(gè)網(wǎng)絡(luò)的控制權(quán),而傳統(tǒng)企業(yè)網(wǎng)絡(luò)只能獲得對(duì)一個(gè)邏輯節(jié)點(diǎn)的控制,在很大程度上簡(jiǎn)化了網(wǎng)絡(luò)運(yùn)行的設(shè)計(jì)。SDN還優(yōu)化了網(wǎng)絡(luò)設(shè)備本身,因?yàn)樗麄儍H從SDN控制器接受指令,不再需要理解和處理成百上千的協(xié)議[8]。
OpenFlow的核心理念是用于實(shí)現(xiàn)控制器與交換機(jī)之間的通信過程,定義看相關(guān)通信術(shù)語;定義了控制器與交換機(jī)之間的通信過程的消息類型及格式;以及控制器如何控制交換機(jī)與交換機(jī)如何反饋控制器[9-10]。
OpenFlow的核心思想是實(shí)現(xiàn)控制器和交換機(jī)之間的通信,進(jìn)行其間涉及的通信相關(guān)術(shù)語的定義;定義控制器和交換機(jī)之間的通信格式消息類型;以及控制器如何控制交換機(jī),交換機(jī)如何反饋控制器。
SDN控制器利用LLDP協(xié)議實(shí)現(xiàn)鏈路發(fā)現(xiàn)協(xié)議的功能。LLDP協(xié)談是一種鏈路發(fā)現(xiàn)協(xié)議,可以通過將本端設(shè)備的主要功能、管理地址、設(shè)備標(biāo)識(shí)符、接口標(biāo)識(shí)號(hào)等標(biāo)志位組成不同的TLV,即數(shù)據(jù)包的類型、長(zhǎng)度和值,封裝在LLDPDU,鏈路層發(fā)現(xiàn)協(xié)議數(shù)據(jù)單元中,發(fā)布給自己直連的網(wǎng)絡(luò)節(jié)點(diǎn),這些網(wǎng)絡(luò)節(jié)點(diǎn)將這些信息以標(biāo)準(zhǔn)的管理信息庫(kù)的形式保存起來,為網(wǎng)絡(luò)管理系統(tǒng)提供查詢及判斷鏈路通信狀況的數(shù)據(jù)庫(kù)[11]。
由于SDN網(wǎng)絡(luò)中使用的交換機(jī)是OpenFlow交換機(jī),所以當(dāng)借鑒時(shí)間同步以太網(wǎng)的同步機(jī)制,重新設(shè)計(jì)一種新的解決方案的時(shí)候,需要考慮TTE網(wǎng)絡(luò)特有的幾個(gè)問題:
1)時(shí)間同步流程及同步拓?fù)洌和娇刂破鳎⊿ynchronization Master)、集中控制器(Compression Master)和同步客戶(Synchronization Client)的工作流程和同步連接拓?fù)洹?/p>
2)協(xié)議控制幀(Protocol Control Frame,PCF)的定義:包括其格式與字段定義
3)單同步域全局時(shí)鐘同步協(xié)議:協(xié)議總體流程設(shè)計(jì)、子算法設(shè)計(jì)、協(xié)議實(shí)現(xiàn)[12]。
SDN的網(wǎng)絡(luò)基本結(jié)構(gòu)是由網(wǎng)絡(luò)控制器和底層交換機(jī)組成。而在TT同步協(xié)議中,網(wǎng)絡(luò)設(shè)備依據(jù)系統(tǒng)具體需求被指定為SM,CM和SC??紤]到這兩種網(wǎng)絡(luò)結(jié)構(gòu),我們可以在SDN架構(gòu)中,將控制器指定為SM,而把交換機(jī)指定為CM。那些既沒有被指定為SM,又沒有被指定為CM的終端,就是SC。那么,時(shí)間同步流程即可以表示為:控制器向OpenFlow交換機(jī)發(fā)送PCF幀,之后接收通過OpenFlow交換機(jī)發(fā)送的新PCF幀;控制器接收到PCF幀后,通過北向接口運(yùn)行時(shí)間同步應(yīng)用,并向OpenFlow交換機(jī)發(fā)送新產(chǎn)生的PCF幀。交換機(jī)網(wǎng)絡(luò)拓?fù)涫疽鈭D如圖2所示。
圖2 網(wǎng)絡(luò)拓?fù)涫疽鈭D
由圖可見,Openflow交換機(jī)分SM,SC,CM 3種角色??刂破髫?fù)責(zé)下發(fā)流表控制PCF幀的轉(zhuǎn)發(fā)。所有openflow交換機(jī)采用OpenvSwitch,控制器采用SDN任一控制器即可。
時(shí)間同步流程主要實(shí)現(xiàn)了時(shí)間同步算法。底層實(shí)驗(yàn)環(huán)境通過OpenFlow協(xié)議和控制器建立連接,由OpenFlow交換機(jī)及其連接的主機(jī)構(gòu)成。交互流程(如圖3所示)。
圖3 控制器與交換機(jī)同步流程示意圖
在交換機(jī)在與控制器進(jìn)行握手,建立通信的過程中,控制器向交換機(jī)下發(fā)上述流表項(xiàng),要求從交換機(jī)本地發(fā)出的PCF幀都被轉(zhuǎn)發(fā)到控制器。
交換機(jī)本地運(yùn)行PCF收發(fā)模塊,周期性地向外發(fā)送PCF時(shí)間同步幀。當(dāng)PCF幀匹配到相應(yīng)的流表項(xiàng)時(shí),它被轉(zhuǎn)發(fā)到控制器。
控制器在某一時(shí)間窗口內(nèi),收到多個(gè)交換機(jī)發(fā)送過來的PCF幀,然后開始執(zhí)行TTEthernet協(xié)議規(guī)定的時(shí)間同步算法,包括時(shí)序保持算法,集中算法,再進(jìn)行本地時(shí)鐘校正,最后將用于時(shí)鐘校正的PCF幀通過Packet-Out包發(fā)出去,Packet-Out中定義的Action為將該P(yáng)CF幀發(fā)送到交換機(jī)本地網(wǎng)絡(luò)棧。
最后,OpenFlow交換機(jī)接收到時(shí)鐘校正的PCF幀后,進(jìn)行本地時(shí)鐘校正。
一種特殊的控制幀在TTE的時(shí)間同步機(jī)制中扮演著非常重要的角色,而這就是協(xié)議控制幀(Protocol Control Frame,PCF)。在普通以太網(wǎng)中,PCF幀的Type字段值是0x891d。根據(jù)PCF幀中攜帶的信息,算法得以進(jìn)行[13]。
下面給出了PCF幀的結(jié)構(gòu),由匹配字段、優(yōu)先級(jí)、計(jì)數(shù)器、操作以及超時(shí)5部分組成[14]。PCF幀的內(nèi)容填充在正常以太網(wǎng)幀的Payload字段。
表1 流表結(jié)構(gòu)
其中,匹配字段是流表標(biāo)識(shí)符,用于輸入到交換機(jī)匹配的數(shù)據(jù)包;優(yōu)先級(jí)用于規(guī)定每張流表中流表?xiàng)l目匹配的順序;計(jì)數(shù)器用來統(tǒng)計(jì)當(dāng)前流表?xiàng)l目中已匹配的數(shù)據(jù)包的數(shù)量。操作主要負(fù)責(zé)數(shù)據(jù)包的轉(zhuǎn)發(fā)行為。超時(shí)字段表示用于指示最大匹配數(shù)據(jù)包數(shù)目或者流的有效時(shí)間[15]。
文中基于OpenFlow流表的定義方式并且結(jié)合時(shí)間觸發(fā)以太網(wǎng)的性能特點(diǎn),將設(shè)計(jì)的一種轉(zhuǎn)發(fā)規(guī)則的匹配域內(nèi)容。假定控制器已經(jīng)通過鏈路發(fā)現(xiàn)協(xié)議(LLDP)獲取了整個(gè)以太網(wǎng)的拓?fù)湫畔ⅰ?/p>
控制器在接收到交換機(jī)的Feature Message后,根據(jù)預(yù)先制定的交換機(jī)角色(CM,SC or CM),分別下發(fā)不同的流表。
1)SM與SC交換機(jī)流表
流表項(xiàng)1如圖4所示。SM與SC交換機(jī)在接收到PCF后,根據(jù)流表項(xiàng)1匹配得到的PCF將被轉(zhuǎn)發(fā)出去,轉(zhuǎn)發(fā)端口為向CM轉(zhuǎn)發(fā)數(shù)據(jù)包的端口。SM或SC向CM轉(zhuǎn)發(fā)的端口信息可以通過生成樹協(xié)議計(jì)算得到。以太網(wǎng)類型0x891d表明匹配的以太網(wǎng)幀是PCF。
圖4 SM與SC交換機(jī)流表流表項(xiàng)1
流表項(xiàng)2如圖5所示。根據(jù)流表項(xiàng)2,SC或SM發(fā)現(xiàn)PCF是來自于CM時(shí),就會(huì)將該P(yáng)CF幀發(fā)送到預(yù)留端口LOCAL。本地時(shí)間同步模塊會(huì)根據(jù)PCF中的內(nèi)容同步本地時(shí)間。同時(shí),也要將該P(yáng)CF幀發(fā)送到所有輸出端口,保證其他SC或SM也能收到該P(yáng)CF幀。
圖5 SM與SC交換機(jī)流表流表項(xiàng)2
2)CM交換機(jī)的流表項(xiàng)
當(dāng)CM交換機(jī)發(fā)現(xiàn)PCF幀是發(fā)送給自己時(shí),也會(huì)將PCF幀發(fā)送到本地預(yù)留端口LOCAL。本地進(jìn)程將進(jìn)行時(shí)序保持算法與集中算法,用以計(jì)算同步時(shí)間。(如圖6所示)
當(dāng)CM交換機(jī)發(fā)現(xiàn)PCF幀是自己發(fā)出去的時(shí)間同步幀時(shí),必須將該幀從所有其他端口發(fā)送出去,保證所有SM和SC能夠收到該P(yáng)CF幀。
圖6 CM交換機(jī)流表流表項(xiàng)1
網(wǎng)絡(luò)時(shí)間時(shí)延檢測(cè)應(yīng)用由交換機(jī)提供,我們可以得到每個(gè)交換機(jī)的LLDP數(shù)據(jù)的時(shí)間戳,在所有的時(shí)延被檢測(cè)到之后,數(shù)據(jù)將被儲(chǔ)存[16]。在得到LLDP時(shí)延以后,交換機(jī)與控制器之間的往返時(shí)延也應(yīng)該被得到,它們的差值將被重新計(jì)算用于得到新的PCF幀并返回。其中時(shí)序保持算法、同步集中算法、以及全局時(shí)鐘同步協(xié)議中涉及的計(jì)算流程均與TTE原有流程保持不變,通過TTE協(xié)議中提供的計(jì)算公式,重新計(jì)算得到了PCF幀中數(shù)據(jù),發(fā)送回OpenFlow交換機(jī)。
隨著時(shí)間觸發(fā)以太網(wǎng)技術(shù)的成熟應(yīng)用,以及近年來SDN網(wǎng)絡(luò)架構(gòu)的快速發(fā)展,本文對(duì)這兩項(xiàng)技術(shù)進(jìn)行深入理解與研究。在TTE原有的協(xié)議基礎(chǔ)上,結(jié)合SDN網(wǎng)絡(luò)架構(gòu),設(shè)計(jì)并提出了一種SDN架構(gòu)下的控制器的時(shí)間同步配置策略及其相關(guān)流表項(xiàng),為以后在SDN基礎(chǔ)上開展實(shí)時(shí)性研究提供了一種選擇,也為時(shí)間觸發(fā)以太網(wǎng)結(jié)合SDN網(wǎng)絡(luò)架構(gòu)的開發(fā)應(yīng)用提供有力的理論支撐。
[1]楊仕平,桑楠,熊光澤.基于Ethernet技術(shù)的安全關(guān)鍵實(shí)時(shí)網(wǎng)絡(luò)[J].軟件學(xué)報(bào),2005(1):121-134.
[2]劉建生,武富春,常超偉.工業(yè)以太網(wǎng)實(shí)時(shí)調(diào)度技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦開發(fā)與應(yīng)用,2011(3):18-21.
[3]王相周,陳華嬋.IEEE1588精確時(shí)間協(xié)議的研究與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(8):1846-1849.
[4]王智.工業(yè)實(shí)時(shí)通訊網(wǎng)絡(luò)(現(xiàn)場(chǎng)總線)的基礎(chǔ)理論研究與現(xiàn)狀(下)[J].信息與控制,2002(3):241-249.
[5]劉魯源,萬仁君,李斌.基于TTCAN協(xié)議的網(wǎng)絡(luò)控制系統(tǒng)靜態(tài)調(diào)度算法的研究[J].控制與決策.2004(7):813-816.
[6]許洪華,劉科.確定性工業(yè)以太網(wǎng)Ethernet Powerlink[J].冶金自動(dòng)化,2004(4):23-25.
[7]劉晚春,李峭,何鋒,等.時(shí)間觸發(fā)以太網(wǎng)同步及調(diào)度機(jī)制的研究[J].航空計(jì)算技術(shù),2011,41(4):122-127.
[8]王智,王天然,Ye-qiong SONG,孫優(yōu)賢.工業(yè)實(shí)時(shí)通訊網(wǎng)絡(luò)(現(xiàn)場(chǎng)總線)的基礎(chǔ)理論研究與現(xiàn)狀(上)[J].信息與控制,2002(2):146-163.
[9]王志平,熊光澤.一種基于Ethernet的硬實(shí)時(shí)通信協(xié)議[J].計(jì)算機(jī)研究與發(fā)展,2000(10):1252-1258.
[10]左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)[J].軟件學(xué)報(bào),2013(24):1078-1097.
[11]李艷,郝志安,李寧,等.基于mininet的SDN架構(gòu)仿真研究[J].計(jì)算機(jī)與網(wǎng)絡(luò),2014(5):57-59.
[12]張彤,劉勇博,夏晶晶.軟件定義網(wǎng)絡(luò)架構(gòu)及其關(guān)鍵技術(shù)[J].鄭州牧業(yè)工程高等??茖W(xué)校學(xué)報(bào),2015(1):37-40.
[13]傅帥.軟件定義網(wǎng)絡(luò)在云計(jì)算領(lǐng)域的實(shí)施部署[J].信息通信技術(shù),2015(2):41-46.
[14]蘇遠(yuǎn)超.軟件定義云網(wǎng)絡(luò)產(chǎn)品白皮書[J].電信技術(shù),2016(9):33-37.
[15]劉裴,李傳毅,甘慶華.軟件定義網(wǎng)絡(luò)的模型研究綜述[J].科技展望,2015(11):33-37.
[16]盧湛昌.軟件定義網(wǎng)絡(luò)安全技術(shù)研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2016(12):10-11.