国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于狀態(tài)機的SDN控制器中交換機狀態(tài)管理方法

2018-11-01 05:19許延偉黃志林徐曄劉永紅
電腦知識與技術(shù) 2018年18期
關(guān)鍵詞:軟件定義網(wǎng)絡(luò)狀態(tài)機

許延偉 黃志林 徐曄 劉永紅

摘要:作為SDN網(wǎng)絡(luò)的核心,SDN控制器的魯棒性是影響SDN網(wǎng)絡(luò)的關(guān)鍵因素之一。由于SDN網(wǎng)絡(luò)中管理通道的不可靠性所帶來的交換機連接狀態(tài)的變化是影響SDN控制器工作穩(wěn)定性的主要原因。該文通過引入多個交換機的新型狀態(tài),并基于狀態(tài)機(FSM)對交換機狀態(tài)之間的變化進行精細化管理,使得其可以應(yīng)對交換機的短暫性掉線等情形,從而可以大大提高SDN控制器的魯棒性。

關(guān)鍵詞: 軟件定義網(wǎng)絡(luò);OpenFlow;SDN控制器;交換機狀態(tài);狀態(tài)機

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)18-0035-03

A FSM-Based Switch State Management for SDN Controllers

XU Yan-wei1 , HUANG Zhi-lin2, XU Ye2, LIU Yong-hong2

(1.Shanghai B-Star Technology Co.,Ltd,Shanghai 200335,China;2.Shanghai Engineering Research Center for Broadband Networks & Applications, Shanghai 200336,China)

Abstract:As the core of the SDN network, the robustness of the SDN controller is one of the key factors affecting the SDN network. The change of the connection state of the switch caused by the unreliability of the management channel in the SDN network is the main reason that affects the stability of the SDN controller. This paper introduces several new states for switches, and adopts a finite state machine (FSM) to fine-tune the changes of states for switches, making it able to deal with the situations such as temporary disconnection of switches, which can greatly improve the robustness of SDN controllers.

Key words:SDN; openflow; sdn controller; switch states; finite state machine

1 引言

軟件定義網(wǎng)絡(luò)(Software Defined Networking, SDN)是由美國斯坦福大學Clean slate研究小組為改進傳統(tǒng)網(wǎng)絡(luò)提出的一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu)。它的設(shè)計理念是將網(wǎng)絡(luò)的控制平面與數(shù)據(jù)轉(zhuǎn)發(fā)平面進行分離,支持集中化的網(wǎng)絡(luò)狀態(tài)控制,實現(xiàn)底層網(wǎng)絡(luò)設(shè)施對上層應(yīng)用的透明。[1-2]。SDN把傳統(tǒng)網(wǎng)絡(luò)設(shè)備緊密耦合的網(wǎng)絡(luò)架構(gòu)分拆為應(yīng)用、控制、數(shù)據(jù)轉(zhuǎn)發(fā)3層分離的體系架構(gòu)。SDN具有靈活的編程能力,使得網(wǎng)絡(luò)的自動化管理和控制能力獲得空前的提升,能夠有效地解決當前網(wǎng)絡(luò)所面臨的資源規(guī)模擴展受限,組網(wǎng)靈活性差,難以快速滿足業(yè)務(wù)需求等問題。SDN網(wǎng)絡(luò)中集中式的控制平面被稱為SDN控制器,是一個運行于獨立服務(wù)器上的軟件系統(tǒng),邏輯上處于數(shù)據(jù)轉(zhuǎn)發(fā)平面和上層網(wǎng)絡(luò)應(yīng)用的中間,是整個SDN網(wǎng)絡(luò)的核心。圖1顯示了SDN網(wǎng)絡(luò)的典型系統(tǒng)架構(gòu),其中SDN控制器(Controller)是整個網(wǎng)絡(luò)的核心,它通過南向接口(OpenFlow[3]協(xié)議)獲取底層網(wǎng)絡(luò)設(shè)備信息,進行統(tǒng)一部署、集中管理以及靈活控制,從而解決了分散網(wǎng)絡(luò)設(shè)備的管理控制問題。同時,控制器提供了可編程擴展的北向接口,按不同需求設(shè)計的功能應(yīng)用軟件可以直接運行在控制器上,利用控制器對全局網(wǎng)絡(luò)設(shè)備進行統(tǒng)一管理。

在SDN發(fā)展史中,OpenFlow概念是先于SDN出現(xiàn)的。在SDN網(wǎng)絡(luò)體系架構(gòu)中,控制面和數(shù)據(jù)轉(zhuǎn)發(fā)面之間是通過標準的接口進行通信的,即南向接口,OpenFlow就是SDN南向接口中被最為廣泛使用的一種。控制器通過這個接口對下層的網(wǎng)絡(luò)設(shè)備進行配置和管理,并接收來自網(wǎng)絡(luò)設(shè)備的事件報告,并向網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)包。利用OpenFlow協(xié)議,控制器可以編輯如添加、更新、刪除交換機流表中的記錄。

SDN控制器通過TCP連接和其管理的每一個交換機之間進行通信,這個TCP連接又被稱為是管理通道。由于在網(wǎng)絡(luò)運行時需要一直保持SDN控制器和交換機之間的通信,管理通道的穩(wěn)定性就會極大地影響SDN網(wǎng)絡(luò)工作的穩(wěn)定性。在實際的SDN網(wǎng)絡(luò)應(yīng)用場景中,例如數(shù)據(jù)中心,SDN管理通道一般是使用的原因的管理網(wǎng)絡(luò),相較于業(yè)務(wù)網(wǎng)絡(luò),管理網(wǎng)絡(luò)的穩(wěn)定性會大大地降低。SDN網(wǎng)絡(luò)中交換機正常工作時可能會受到兩個因素的影響導致暫時的不可用:一是TCP連接會受到網(wǎng)絡(luò)的影響而暫時關(guān)閉,二是SDN控制器和交換機之間的心跳包會出現(xiàn)丟包導致控制器認為交換機進入不可達狀態(tài)。然而,當SDN控制器在交換機中下發(fā)網(wǎng)絡(luò)通信規(guī)則以后,即使管理通道暫時失效,交換機仍然可以按照已經(jīng)下發(fā)的通信規(guī)則進行數(shù)據(jù)包的轉(zhuǎn)發(fā)。因此,如何應(yīng)對管理通道的非穩(wěn)定性,提供SDN控制器在此種情況的健壯性就成為本領(lǐng)域技術(shù)人員亟待解決的問題。

通常來說,當SDN控制器和交換機建立好OpenFlow會話以后,交換機的正常工作狀態(tài)會被設(shè)為“已連接狀態(tài)”[4],此狀態(tài)下控制器和交換機之間可以進行正常的OpenFlow消息交互。當交換機的TCP長連接斷開或心跳?;畛瑫r以后,交換機即被馬上轉(zhuǎn)為“離線狀態(tài)”。一個交換機轉(zhuǎn)為離線狀態(tài)以后,網(wǎng)絡(luò)拓撲會隨之發(fā)生變化,交換機對象所附屬資源也會被控制器回收。主流的開源控制器如OpenDayLight[5]和ONOS[6]等也是采用的類似的交換機狀態(tài)管理機制,從而在管理通道不穩(wěn)定時容易導致前述的控制器的穩(wěn)定性。針對上述問題,本文定義了SDN控制器中交換機的多種狀態(tài)(包括初始化、新連接建立、版本協(xié)商成功、正常工作、不可達、連接斷開、掉電、正在下線和已下線共9種交換機狀態(tài))和相應(yīng)的交換機狀態(tài)遷移圖,并定義了多個關(guān)鍵的反映交換機工作狀態(tài)改變的事件,可以應(yīng)對交換機管理通道的不確定性,提高SDN控制器中交換機管理的精確性,較強控制器的可靠性和健壯性,降低了對SDN網(wǎng)絡(luò)中管理通道可靠性的要求,為SDN網(wǎng)絡(luò)在實際環(huán)境中的應(yīng)用提供了保障。

2 SDN控制器中的交換機狀態(tài)

為了能精細化地對交換機的狀態(tài)進行管理,以準確地反映其在不同的狀況下是否可以和控制器進行通信、是否可以轉(zhuǎn)發(fā)數(shù)據(jù)包等特性,本文使用下述的9種狀態(tài)表示交換機處于不同工作情況下:

(1) SW_STATE_INIT

初始狀態(tài),為一個交換機對象創(chuàng)建后的最初狀態(tài),交換機的Socket連接尚沒有建立。在此狀態(tài)下控制器會為每一個交換機對象分配資源,包括內(nèi)存資源、消息緩沖區(qū)等。

(2) SW_STATE_NEW_ACCEPT

此狀態(tài)表示控制器和交換機的TCP連接已成功建立,交換機的IP地址、MAC、TCP通訊端口等信息被保存到交換機對象中,此后該交換機可與SDN控制器進行正常的TCP通信。

(3) SW_STATE_CONNECTED

根據(jù)OpenFlow協(xié)議[7],SDN控制器和SDN交換機成功建立TCP連接之后會進行OpenFlow協(xié)議的版本協(xié)商。若他們雙方OpenFlow協(xié)議版本協(xié)商達成一致,交換機進入SW_STATE_CONNECTED狀態(tài),雙方后續(xù)可以基于商定的版本進行OpenFlow消息的交互。

(4) SW_STATE_STABLE

該狀態(tài)為交換機的正常工作狀態(tài),即可以正常的進行OpenFlow消息的通信。當交換機和控制器建立好OpenFlow消息通道之后,控制器收到交換機的發(fā)送的正確的OFPT_BARRIER_REPLY消息,雙方可以進入正常的通信工作狀態(tài)。在此狀態(tài)下,SDN控制器可以發(fā)送消息、下發(fā)流表等。該狀態(tài)對應(yīng)于文獻[4-6]中的“已連接狀態(tài)”。

(5) SW_STATE_UNREACHABLE

交換機不可達狀態(tài)。當交換機在正常工作狀態(tài)下出現(xiàn)消息發(fā)送失敗或者心跳交互超時(echo重發(fā)完后仍未回應(yīng))時,SDN控制器認為此交換機進入不可達狀態(tài)。在此狀態(tài)下除了心跳包之外不再向交換機發(fā)送任何消息,只到收到交換機任何消息后狀態(tài)才會改變。交換機進入不可達狀態(tài)的原因包括很多種,例如管道通道的掉線和不穩(wěn)定等。在不可達狀態(tài)下,控制器會持續(xù)性地對該交換機進行探測以判斷其不可達的原因。如果沒有檢測到該交換機的斷電事件,則交換機有可能會一直保持在不可達狀態(tài)下。交換機在不可達狀態(tài)下仍然有可能正常的進行數(shù)據(jù)包的轉(zhuǎn)發(fā)處理,只是無法進行OpenFlow消息的收發(fā)。

(6) SW_STATE_DISCONNECTED

交換機斷開連接狀態(tài)。當控制器明確收到交換機TCP連接斷開消息后進入此狀態(tài)。在該狀態(tài)下,交換機若沒有斷電則仍然可以正常進行數(shù)據(jù)包的轉(zhuǎn)發(fā)處理。因此,和不可達狀態(tài)一樣,控制器會判斷交換機是否已經(jīng)斷電還是只是管理通道的關(guān)閉。

(7) SW_STATE_POWER_OFF

交換機掉電狀態(tài)。交換機進入掉電狀態(tài)之前會首先經(jīng)歷斷開連接狀態(tài)或不可達狀態(tài),SDN控制器會通過掉電檢測判斷此交換機是否已關(guān)閉電源。掉電檢測的主要方法是判斷該交換機的相鄰交換機是否全部上報端口掉電事件:若相鄰交換機全部上報一次和其相連接的端口的OFPPS_LINK_DOWN事件,則該交換機掉電檢測成功。

(8) SW_STATE_CLOSING

交換機正在下線狀態(tài),表示交換機正在進行內(nèi)存清理等工作。在不可達狀態(tài)和斷開連接狀態(tài)下掉電檢測成功以后,交換機會被設(shè)置為正在下線狀態(tài)。

(9) SW_STATE_CLOSED

交換機已關(guān)閉狀態(tài),表示交換機內(nèi)存清理等工作已完成,SDN控制器只會保存一些最基本的信息表示該交換機曾經(jīng)連接過。

相比較于其他的SDN控制器,上述9個交換機狀態(tài)的最大特色是不可達狀態(tài)和斷開連接狀態(tài)。設(shè)置這兩個狀態(tài)的原因是,控制器和交換機雖然因為管理通道失效而失去正常的TCP通信,但是仍然可以正常的進行數(shù)據(jù)包的轉(zhuǎn)發(fā)。當管理通道不可靠的時候,交換機會頻繁出現(xiàn)TCP連接關(guān)閉和心跳包丟失現(xiàn)象,若像通常方式那樣每次都把交換機設(shè)置為關(guān)閉,則會使得網(wǎng)絡(luò)拓撲產(chǎn)生很大的不穩(wěn)定現(xiàn)象,從而影響到通信的穩(wěn)定性。例如,我們在文獻[9]中提出了基于標簽的SDN網(wǎng)絡(luò)交換方案,會在網(wǎng)絡(luò)初始化時為每一對交換機之間計算通信路徑并下發(fā)流表作為SDN網(wǎng)絡(luò)交換的關(guān)鍵基礎(chǔ)性流表。其中非接入交換機的只負責基于已下發(fā)流表的數(shù)據(jù)交換,則即使其管理通道不穩(wěn)定而出現(xiàn)頻繁的掉線現(xiàn)象,也不應(yīng)該把其從網(wǎng)絡(luò)拓撲中刪除而調(diào)整基礎(chǔ)性轉(zhuǎn)發(fā)流表。需要指出的是,若一個交換機進入這兩個狀態(tài),控制器應(yīng)該把這樣的事件通知給相關(guān)的網(wǎng)絡(luò)應(yīng)用使得其可以根據(jù)自己的情況做出處理。例如,若一個關(guān)鍵通信路徑經(jīng)過管理通道不可靠的交換機,則應(yīng)該對其通信路徑進行調(diào)整。

3 交換機狀態(tài)的轉(zhuǎn)移

本文使用如圖2所示的狀態(tài)機實現(xiàn)交換機在各狀態(tài)之間的轉(zhuǎn)移過程和相應(yīng)的觸發(fā)條件。其中的核心是圍繞不可達狀態(tài)和連接斷開狀態(tài)相關(guān)的轉(zhuǎn)移過程和轉(zhuǎn)移條件。當交換機在正常工作狀態(tài)下,控制器和交換機之間會有OpenFlow消息的交互和持續(xù)性的心跳包發(fā)送與接收動作。若檢測到顯性的TCP連接斷開事件,則交換機會進入連接斷開狀態(tài);若消息發(fā)送失敗或心跳交互失常,則交換機進入不可達狀態(tài)。

交換機進入不可達狀態(tài)后,控制器會通過兩種類型的檢測以決定對其后續(xù)狀態(tài)的處理。第一種是上一節(jié)所述的掉電檢測,檢測成功以后則會進入掉電狀態(tài)而進入關(guān)閉通道。第二種是心跳包發(fā)送檢測,若一定時間間隔之后可以成功發(fā)送心跳包并收到回復,則交換機會恢復到正常工作狀態(tài)。若上述兩種檢測都沒有成功,則交換機會停留在不可達狀態(tài)。

交換機進入不可達狀態(tài)后,控制器會通過掉電檢測以判斷是維持在連接斷開狀態(tài)還是轉(zhuǎn)入掉電狀態(tài)。在這兩個狀態(tài)下,交換機也可能會重新嘗試連接控制器,若控制器檢測到一個新建立連接的交換機的IP和MAC地址和現(xiàn)有的某個處于這兩個狀態(tài)的交換機相同,則會認為交換機是重新連接上線,從而進入隨后的版本協(xié)商等過程。

4 交換機狀態(tài)改變事件

對應(yīng)于上述狀態(tài)遷移圖,本文定義了下述一些關(guān)鍵性的事件以便控制器通知上層網(wǎng)絡(luò)應(yīng)用。

(1)EVENT_TYPE_SWITCH_CONNECT:交換機連接進來事件。

(2)EVENT_TYPE_SWITCH_QUIT:在交換機上線過程中協(xié)商版本失敗或者是檢測到交換機掉電事件。

(3)EVENT_TYPE_SWITCH_ENTER_STABLE:交換機收到OFPT_BARRIER_REPLY消息后進入正常工作狀態(tài)。

(4)EVENT_TYPE_SWITCH_ENTER_UNREACH:控制器發(fā)送消息給交換機失敗或心跳交互超時(echo重發(fā)完后仍未回應(yīng))導致交換機進入不可達狀態(tài)。

(5)EVENT_TYPE_SWITCH_EXIT_UNREACH:SDN控制器收到交換機消息后連接恢復正常,從不可達狀態(tài)中退出。

(6)EVENT_TYPE_SWITCH_DISCONNECT:交換機斷開連接。

(7)EVENT_TYPE_SWITCH_POWER_OFF:交換機發(fā)生掉電。

(8)EVENT_TYPE_SWITCH_RECONNECT:交換機重新連接進來,從連接斷開狀態(tài)或不可達狀態(tài)進入新連接狀態(tài),但由于交換機沒有發(fā)生掉電,故可以把交換機對象重用。

上述事件由控制器產(chǎn)生,并會根據(jù)具體原因產(chǎn)生不同的事件的屬性。上層網(wǎng)絡(luò)應(yīng)用可以監(jiān)控不同的事件,以便根據(jù)不同的實際和具體原因做出相應(yīng)的處理。例如,若某個交換機的連接一直不穩(wěn)定,就可以在網(wǎng)絡(luò)拓撲圖上做出相應(yīng)的標記。

5 總結(jié)

本文定義了SDN控制器中交換機的多種狀態(tài)(包括初始化、新連接建立、版本協(xié)商成功、正常工作、不可達、連接斷開、掉電、正在下線和已下線共9種交換機狀態(tài))和相應(yīng)的交換機狀態(tài)遷移圖,并定義了多個關(guān)鍵的反映交換機工作狀態(tài)改變的事件,可以應(yīng)對交換機管理通道的不確定性,提高SDN控制器中交換機管理的精確性,較強控制器的可靠性和健壯性,降低了對SDN網(wǎng)絡(luò)中管理通道可靠性的要求,為SDN網(wǎng)絡(luò)在實際環(huán)境中的應(yīng)用提供了保障。

參考文獻:

[1] 張王琨,戚光遠,孫嘉駿.無線軟件定義網(wǎng)絡(luò)研究前景展望[J].軟件工程師, 2014(4):32-35.

[2] Fundation, O.N., Software-defined networking: The new norm for networks. ONF White Paper, 2012.

[3] McKeown, N., et al., OpenFlow: enabling innovation in campus networks. ACM SIGCOMM Computer Communication Review, 2008. 38(2):69-74.

[4] 桂興亮. 基于OpenFlow的SDN控制器研究與設(shè)計[D].江蘇科技大學,2016.

[5] Open Day Light[EB/OL]. http://www.opendaylight.org/.

[6] Open Network Operating System(ONOS)[EB/OL]. http://onosproject.org/.

[7] B. Heller, “OpenFlow Switch Speci?cation, Version 1.5.0,” https://www.opennetworking.org/ images/stories/downloads/sdn-resources/onfspeci?cations/open?ow/open?ow-switch-v1.5.0.noipr.pdf.

[8] LU Xiaoyuan, Xu Yanwei: SFabric: A Scalable SDN Based Large Layer 2 Data Center Network Fabric, Proceedings of IWQoS, 2015.

[9] LU Xiaoyuan, Xu Yanwei: SFabric: A Scalable SDN Based Large Layer 2 Data Center Network Fabric, Cluster Computing, 2018.

猜你喜歡
軟件定義網(wǎng)絡(luò)狀態(tài)機
基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
中國聯(lián)通SDN的思考和應(yīng)用實例
業(yè)務(wù)功能鏈技術(shù)及其應(yīng)用探析
針對大規(guī)模軟件定義網(wǎng)絡(luò)的子域劃分及控制器部署方法
一種新的SDN架構(gòu)下端到端網(wǎng)絡(luò)主動測量機制
基于狀態(tài)機比對的狀態(tài)機推斷方案
雙口RAM讀寫正確性自動測試的有限狀態(tài)機控制器設(shè)計方法
FPGA設(shè)計中狀態(tài)機安全性研究
基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計
基于VHDL的一個簡單Mealy狀態(tài)機
汨罗市| 道孚县| 乌拉特中旗| 凤翔县| 雷波县| 筠连县| 衡山县| 乌拉特前旗| 湾仔区| 东山县| 同心县| 五莲县| 博客| 镇平县| 张家口市| 蒙山县| 潞西市| 大埔区| 伊金霍洛旗| 武汉市| 三台县| 紫阳县| 马关县| 清新县| 习水县| 龙门县| 鱼台县| 九龙县| 南安市| 屏边| 晴隆县| 夏津县| 七台河市| 酒泉市| 泰和县| 宜君县| 鄂托克前旗| 咸阳市| 鄂伦春自治旗| 兴山县| 平远县|