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