您好,登錄后才能下訂單哦!
隨著互聯網的迅猛發展,諸如視頻直播、網絡教學等實時業務的廣泛應用,多個接收者需要同時從一個或多個源節點接收相同的流媒體數據,網絡傳輸的信息容量大大增加,占用大量的網絡帶寬。對這些應用需求,傳統的點播技術,不僅對源節點資源和網絡帶寬的消耗很大,同時用戶數量的擴展受到限制。比較而言,組播是一個很好的傳輸方案。由于傳統網絡中路由器需要預先配置,然后才可以動態支持組播訂閱者的加入、離開操作和組播樹的生成操作,并且傳統網絡中的路由器沒有針對用戶對帶寬的大需求來動態選擇傳輸路徑,很容易造成鏈路擁塞,不能夠為用戶提供較好的服務質量,難以在傳統網絡中大規模部署。
以 OpenFlow 技術為核心的軟件定義網絡(SDN)框架具有集中控制的功能,能夠自己感知網絡拓撲的變化,在細粒度的路徑選擇、接入控制、負載均衡方面有著天然的優勢,為 IPv6 組播功能的實現提供了好的解決方案。為了解決 SDN 網絡下的 IPv6 組播問題,提出了在 SDN 控制器中設計組成員管理、帶寬拓撲維護、組播樹的構建三個功能模塊,不再需要部署分布式的組播路由協議。
SDN 是來源于斯坦福大學的 Clean Slate 項目組,他們有一個宏偉的目標,就是要重造因特網,改變現有的僵化的網絡架構模式,以求建立一個可擴展的高性能的現代化網絡架構。2009年,SDN 概念入圍 Technology Review 年度十大前沿技術。 2012 年 4 月,ONF組織發布了 SDN 白皮書,提出了一種類似于操作系統的思想:把網絡中的所有網絡設備當成被管理的資源,控制器相當于一個操作系統,管理這些資源。這個控制器抽象網絡設備,對網絡設備進行維護,并把這些網絡設備信息提供給上層應用。上層應用通過統一的可編程的接口來對這些網絡設備進行配置和管理,實現相關的網絡應用功能,不用再去關心底層的網絡拓撲的變動。提出了 SDN三層模型(物理設備層、控制層、應用層)獲得了業界廣泛認同。
在 SDN 網絡的實踐方面,OFELIA、Internet2、FIRE和 GENI等科研組織在真實環境中部署了 SDN 網絡。華為、銳捷、思科、Pica8 等廠商積極投入人力、物力進行研究,研發出支持 OpenFlow 協議的 SDN 控制器或 SDN 交換機。在 SDN 網絡的企業部署方面,Google 把基于 OpenFlow 技術的 SDN 網絡大規模部署在數據中心,使網絡資源利用率得到了顯著提高并且降低了網絡運維的復雜度。
SDN的網路架構圖如下所示:應用層主要是完成用戶意圖的各種上層應用程序,對網絡資源的統一管理。控制層的核心功能是實現網絡內部交換路徑計算和邊界業務路由計算、流表控制和下發等功能。轉發層主要由交換機之間的鏈路構成基礎轉發網絡。轉發過程中所需要的轉發表項是控制器下發的流表,交換機依據流表轉發,本身不具有邏輯判斷功能。
(SDN網絡架構圖)
SDN 控制器對整個 SDN 網絡架構的性能有著決定性的作用。目前,已經有二十多種由不同語言、不同機構研發的控制器,特別是開源社區提供了很多的控制器,如Nox,RYU,Floodlight,OpendayLight,ONOS等。其中,ONOS控制器是第一款面向運營商的商業級別控制器。支持多種南向接口協議,抽象屏蔽了協議差異性,以高可靠性和高可用性著稱,更適合運營商場景。ONOS的設計高度層次化、模塊化、抽象化。ONOS的內核是由很多遵循同一架構設計的子系統組成的,核心層在設計上遵循“針對接口編程,不針對具體實現編程”的面向對象設計原則,將子系統提供的服務功能抽象成接口,呈現給頂層的應用和底層的協議插件。子系統的結構如下圖所示。
(ONOS控制器子系統結構)
App Component:應用程序通過AdminService和其他服務接口聚合消息,被Manager Component使用和操作。
Manager Component:對網絡的抽象,是協議無關的,對上提供統一的北向接口。主要包括Manager和Store,Store則負責數據的存儲,查詢,更新以及東西向同步等,所有來自Manager中與數據相關的操作都會通過Store來完成。Manager也會將Store中的事件拋出并實現ListenerService接口,其它應用通過ListenerService接口即可實現事件的監聽。
在ONOS控制器的適配層、核心層和應用層開發實現IPv6組播功能。包括適配層對交換機端口狀態的維護;核心層對訂閱者信息和訂閱者直連交換機信息的維護;應用層對組播路徑選擇的維護。架構實現圖如下圖所示。
(實現架構圖)
帶寬拓撲適配器組件實現對交換機及其端口狀態的維護,OpenFlowDeviceProvider類是ONOS控制器中已經存在的交換設備抽象類,但沒有提供獲取實時端口帶寬的方式。為了獲得實時的端口可用帶寬信息,在OpenFlowDeviceProvider類中設計了PortStatsCollector類。
組成員管理組件需要實現對組播訂閱者的維護和訂閱者端交換機信息的維護,并通知組播選路模塊給組播訂閱者選擇路徑。組成員管理組件的實現依賴設備管理子系統、數據包管理子系統、主機管理子系統,該組件由組播訂閱者信息維護和訂閱者端交換機維護兩部分組成。
組播選路組件,當有組播訂閱者加入組播組時,組播選路組件要依據當前的網絡拓撲和鏈路帶寬信息為組播訂閱者選擇傳輸路徑,并且要考慮組播訂閱者是新加入一個組播組還是加入一個已經存在的組播組,針對兩種這兩種情況有不同的選路算法。如果是新加入一個組播組,則組播流量是從組播發送端傳送給接收者的;如果是加入已經存在的組播組,則組播流量是從轉發組播流量的交換機多端口復制轉發過來的。
數據平面用Mininet模擬器模擬6臺交換機,Mininet在Mininet模擬器中通過xterm命令開啟三個主機是一個能夠創建包含虛擬主機、交換機、控制器和鏈路的網絡平臺仿真器,Mininet主機運行的是標準的Linux網絡軟件,Mininet的虛擬主機、交換機、鏈路和控制器是由軟件創建,使之看起來像一個完整的網絡。在Mininet模擬器中通過xterm命令開啟三個主機,給組播發送端配置的IPv6地址為fc00::1/64,兩個訂閱者配置的IPv6地址為fc00::2/64和fc00::3/4。三個主機分別運行各自的接收組播流量的程序,輸出接收組播流量的來源和接收時間。實驗結果如下圖,兩個訂閱者可以同一時刻能收到相同的數據。
作者:李丹
來源:宜信技術學院
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。