本站小編為你精心準備了基于NetMagic的網絡拓撲論文參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1SDN原理介紹
軟件定義網絡由于能支持新型網絡協議和新型網絡體系結構,而得到廣泛發展[3]。在學術界,美國GENI、Internet2[4]、歐洲OFELIA和日本的JGN2plus[5]先后開展了對SDN的研究和部署,IETF(internetengineeringtaskforce),ITU(internationaltelecommuni-cationunion),ETS(Ieuropeantelecommunicationsstan-dardsinstitute)等標準組織也開始關注SDN,討論SDN在各自領域可能的發展場景和架構應用。圖1為軟件定義網絡原理圖。圖中,網絡控制平面與數據轉發平面相分離。網絡控制邏輯和狀態被轉移到一個集中控制器上,因此,網絡控制平面(SDN控制器)能以一個全局網絡的視野去管理和控制網絡。數據轉發平面(SDN交換機)只專注于報文的轉發。SDN控制器通過配置SDN交換機中的規則表來控制交換機的行為,和SDN交換機之間通過特定的通信協議傳遞消息。也就是說,SDN控制器相當于人的大腦,SDN交換機類似于人的手腳和肌肉,整個思想活動全由SDN控制器控制,SDN交換機根據SDN控制器下發的特定指令執行相應的動作行為,其行為完全是傻瓜式的狀態。本文所提算法就是采用上述思想。通過SDN控制器來定義SDN交換機的存儲和行為。在網絡拓撲發現過程中,只需對NetMagic平臺內部的FPGA編程,將其配置成SDN交換機即可(如何通過FPGA編程將硬件配置成SDN交換機在此不詳細講述)。
2網絡拓撲發現算法設計
網絡拓撲發現算法中的探測過程采用主動探測,發現過程工作在數據鏈路層和網絡層之上。主動探測是指探測節點為獲取拓撲信息主動向網絡中發送路徑探測包,并通過收集到的返回信息,分析網絡的拓撲結構,最終形成網絡拓撲。對于小規模局域網來說,一般是數據鏈路層的拓撲發現。其主要利用ARP(addressresolutionprotocol)協議。本課題組采用自主開發的一套NMAC(NetMagicaccessandcontrolprotocol)協議,將探測信息封裝在以太網幀中,而后在軟硬件之間進行通信。本文以SDN思想的控制和轉發分離架構的設計理念為基礎來設計算法。以圖2所示的實驗環境為例,對算法進行描述。本實驗共有3臺PC機和4臺NetMagic網絡實驗平臺。1臺PC機充當SDN控制器,主要功能為向NetMagic下發拓撲探測報文、處理生成的響應報文和生成網絡拓撲結構。另外2臺PC機作為連接在網絡中的終端設備,目的在于模擬網絡中的真實環境,其是否接入網絡環境,不影響整個實驗過程。通過硬件邏輯設計,將4臺NetMagic配置成SDN交換機,其對控制器下發的拓撲探測報文進行處理,每個交換機的功能和行為完全相同。網絡運行時,SDN交換機以報文轉發為基礎,內部并不含CPU,不運行任何操作系統。對于網絡拓撲發現的應用,還需要一臺外部主機對NetMagic的FPGA進行編程配置。外部主機利用自主開發的NMAC協議,通過以太網報文的形式傳到NetMagicFPGA的管理配置接口,然后由NetMagicFPGA對這些命令和配置報文進行解析,改變NetMagic的轉發行為。網絡拓撲發現算法的具體流程如下:1)網絡拓撲發現開始。SDN控制器首先向1號交換機發出跳數為0的拓撲探測報文,1號交換機收到跳數為0的探測報文后,生成響應報文并返回至控制器。2)根據返回報文,SDN控制器配置目的Mac地址表,并將其發送給1號交換機。3)SDN控制器發送一個跳數為1的拓撲探測報文,1號交換機發現報文的跳數為1,將該報文跳數減1并附上自己本機ID號和輸出端口號后廣播。4)交換機2號、3號收到跳數為0的報文,生成響應報文并返回至控制器。SDN控制器收到2號、3號交換機的返回報文,將配置目的Mac地址表發送至2號、3號交換機。5)SDN控制器發送一個跳數為2的拓撲探測報文,1號交換機判斷報文跳數為2,對報文跳數減1后直接進行廣播轉發;2號、3號交換機收到跳數為1的報文,其發現報文跳數為1,將報文跳數減1并附上自己本機ID號及輸出端口號后廣播。6)交換機4號收到跳數為0的報文,將響應報文返回至SDN控制器。SDN控制器收到4號交換機的返回報文后,將配置目的Mac地址表發送至4號交換機。7)SDN控制器再發送一個跳數為3的拓撲探測報文。各交換機重復上述工作,最后控制器發現沒有返回的響應報文,整個網絡拓撲發現過程結束。下面對本算法作如下幾點說明:1)廣播是指向連接交換機的所有活躍端口發送報文(接收到此報文的輸入端口除外,活躍端口指的是已經連通且能夠通信的端口)。2)根據算法設計,需要定義2類報文,并將NMAC命令進行以太網報文封裝。報文定義和封裝格式如下。定義1拓撲探測報文是目的Mac地址全為1,Type類型為0x09,協議號為253的NMAC報文。探測報文在以太網報文中的封裝格式見圖3。定義2響應報文是攜帶本機ID號,Type類型為0x10,port為收到跳數為0的輸入端口號,Flag為SDN交換機是否連接其它設備標識的NMAC報文。響應報文在以太網報文中的封裝格式見圖4。在圖3和圖4中,加顏色部分為NMAC報文,規定NMAC協議號為253,從圖中可以看出每個字段的位寬。
3仿真分析
Jade(Javaagentdevelopmentframework)是一種人工智能,其agent可以用來模擬交換機之間的邏輯關系。為論證本拓撲發現算法的邏輯可行性和有效性,利用Java語言構造了不同的拓撲關系進行仿真測試。
3.1仿真方案設計仿真方案如下。1)交換機的功能有:記錄探測報文從“父節點”(上一個節點)進來的端口號(一般為1號端口);當接收到跳數為0的探測報文時,發出響應報文。2)初始化。初始化交換機的的層數為一個充分大的值(如256)。若收到的探測報文中的Req_Seq/Ack_Seq域的值小于自己當前的層數,則更新交換機的層數,并記錄報文進入的端口號,該端口將作為自己通往“父節點”的端口。3)響應機制。①當交換機收到的探測報文跳數大于1時,將跳數減1,然后向所有活躍端口(除了收到報文的端口)轉發報文。②當交換機收到的探測報文跳數等于1時,構造新的探測報文,將本交換機的ID號和Port端口號添加到新的探測報文當中,并將跳數減1,然后向所有活躍端口(除了收到報文的端口)轉發出報文。③當交換機收到的探測報文跳數等于0時,分為3種情況:情況一Req_Seq/Ack_Seq中的值大于自己當前層數,則層數加1,丟棄報文;否則跳轉到情況二。情況二構造響應報文。將收到的報文添加Dest_ID號和Dest_Port端口號,并將自己的ID號和收到報文的端口號分別寫入Src_ID和Src_Port中,然后將響應報文轉發給“父節點”。情況三當收到的報文為響應報文,直接向“父節點”轉發,直到返回給控制器。
3.2仿真結果與分析為了驗證了所提算法的邏輯可行性和有效性,本文進行了2組測試實驗,即算法在簡單拓撲結構和復雜拓撲結構下的運行情況。簡單的網絡拓撲結構圖如圖5所示。通過Java語言編寫算法程序,從各個節點收集拓撲信息,歸類整理,再調用畫圖軟件繪出拓撲結構圖。從圖5可以看出,算法仿真得到的拓撲結構圖和本文真實的實驗環境完全相同。圖6是圖5的仿真結果過程圖。虛擬機軟件VMware平臺上有個sniffer可以進行全局抓包,能夠看到控制器與各個交換機之間的報文交換過程。從圖中可以看出,報文交換過程完全與本文算法預期的報文發送過程一樣。該仿真結果驗證了所提算法的邏輯可行性和有效性。圖7~9是3種復雜情況下的拓撲結構圖。從3個拓撲結構中都可以得到本機ID號、本機連父的端口號、父ID號和父連本機的端口號這些關鍵的拓撲信息,通過這些信息可以獲得全網交換機和控制主機的拓撲圖。進一步驗證了所提算法的邏輯可行性和有效性。
4結語
本文以SDN思想的控制和轉發分離架構的設計理念為基礎,提出了一種新型的基于netmagic的網絡拓撲發現算法。先對算法進行了描述,定義了探測和響應報文在以太網幀中的封裝格式,并通過軟件對算法進行仿真實驗,驗證了所提算法的邏輯可行性和有效性。實驗結果表明:該算法通過本機ID號、本機連父的端口號、父ID號和父連本機的端口號關鍵四元組拓撲信息,可以主動探測獲得全網交換機和控制器主機之間的拓撲結構視圖。
作者:廖飛龍永新鐘海單位:湖南工業大學計算機與通信學院