一種組播數(shù)據(jù)傳輸方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種組播數(shù)據(jù)傳輸方法和設(shè)備。
【背景技術(shù)】
[0002] OpenFlow作為新型網(wǎng)絡(luò)交換模型,是SDN (Software Defined Network,軟件定義 網(wǎng)絡(luò))架構(gòu)中定義的一個控制器與轉(zhuǎn)發(fā)層之間的通信接口標(biāo)準(zhǔn),其基本思想具體為:分離控 制平面和數(shù)據(jù)平面,二者之間使用標(biāo)準(zhǔn)協(xié)議通信,且數(shù)據(jù)平面采用基于流的方式進行轉(zhuǎn)發(fā)。 如圖1所示,為OpenFlow網(wǎng)絡(luò)的組網(wǎng)示意圖,在OpenFlow網(wǎng)絡(luò)中,具體包括OpenFlow網(wǎng)絡(luò) 設(shè)備(如 OpenFlow 交換機)、OpenFlow 控制器(OpenFlow Controller)以及 OpenFlow 通道 等。
[0003] 其中,OpenFlow通道位于OpenFlow網(wǎng)絡(luò)設(shè)備和OpenFlow控制器之間,通過預(yù)先配 置的安全通道(基于SSL (Secure Sockets Layer,安全套接層))進行安全通信。OpenFlow 控制器為OpenFlow網(wǎng)絡(luò)的控制中心,其可能運行實驗程序或第三方開發(fā)軟件,并用于對流 表進行操作,根據(jù)用戶配置或者動態(tài)運行協(xié)議生成流表,并將流表發(fā)送到OpenFlow網(wǎng)絡(luò)設(shè) 備。OpenFlow網(wǎng)絡(luò)設(shè)備用于接收OpenFlow控制器下發(fā)的流表,并根據(jù)流表指導(dǎo)報文處理; 其中,流表中包含一系列用于匹配報文的流表項,對于進入OpenFlow網(wǎng)絡(luò)設(shè)備的報文需要 進行流表項的匹配;如果匹配成功則進行相應(yīng)動作處理,如轉(zhuǎn)發(fā)到多個端口或者丟棄;如 果匹配不成功則通過OpenFlow通道轉(zhuǎn)發(fā)到OpenFlow控制器,由OpenFlow控制器進行處 理;另一方面,OpenFlow網(wǎng)絡(luò)設(shè)備主動向OpenFlow控制器上報自身的狀態(tài)和事件,如端口 UP (正常)/DOWN (故障)。
[0004] 例如,OpenFlow控制器在OpenFlow網(wǎng)絡(luò)設(shè)備上創(chuàng)建流表項如下:[目的 IP5. 6. 7. 8,轉(zhuǎn)發(fā)至portl];基于此流表項,OpenFlow網(wǎng)絡(luò)設(shè)備在收到目的IP地址為 5. 6. 7. 8的數(shù)據(jù)流量時,能夠匹配到上述流表項,并將數(shù)據(jù)流量轉(zhuǎn)發(fā)至portl。
[0005] 現(xiàn)有技術(shù)中,對于組播數(shù)據(jù),OpenFlow控制器會在OpenFlow網(wǎng)絡(luò)設(shè)備上創(chuàng)建流 表項,該流表項中存在組播源設(shè)備相關(guān)信息以及接收者設(shè)備相關(guān)信息,在沒有接收者設(shè) 備相關(guān)信息的情況下,OpenFlow控制器不會在OpenFlow網(wǎng)絡(luò)設(shè)備上下發(fā)流表項,此時, OpenFlow網(wǎng)絡(luò)設(shè)備在收到組播數(shù)據(jù)時,無法匹配到對應(yīng)的流表項,OpenFlow網(wǎng)絡(luò)設(shè)備需要 通過OpenFlow通道將收到的組播數(shù)據(jù)均轉(zhuǎn)發(fā)到OpenFlow控制器,所有組播數(shù)據(jù)均轉(zhuǎn)發(fā)到 OpenFlow控制器進行處理,對OpenFlow控制器造成較大的沖擊,降低了 OpenFlow控制器的 處理性能。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明實施例提供一種組播數(shù)據(jù)傳輸方法和設(shè)備,以避免將所有的組播數(shù)據(jù)均轉(zhuǎn) 發(fā)到OpenFlow控制器進行處理,提高OpenFlow控制器的處理性能。
[0007] 為了達到上述目的,本發(fā)明實施例提供一種組播數(shù)據(jù)傳輸方法,應(yīng)用于包括 OpenFlow控制器、OpenFlow網(wǎng)絡(luò)設(shè)備、組播源設(shè)備以及接收者設(shè)備的網(wǎng)絡(luò)中,所述方法包 括:所述OpenFlow控制器接收第一 OpenFlow網(wǎng)絡(luò)設(shè)備上送的組播數(shù)據(jù),并從所述組播數(shù)據(jù) 中解析出組播目的地址,其中,所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備從與其對應(yīng)的組播源設(shè)備接收 所述組播數(shù)據(jù);在所述OpenFlow控制器上沒有維護所述組播目的地址對應(yīng)的組播表項時, 所述OpenFlow控制器創(chuàng)建所述組播目的地址對應(yīng)的組播表項;所述OpenFlow控制器向所 述第一 OpenFlow網(wǎng)絡(luò)設(shè)備發(fā)送攜帶所述組播目的地址的第一流表項,且所述第一流表項 用于指示所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備丟棄收到的目的IP地址為所述組播目的地址的組播 數(shù)據(jù)。
[0008] 所述OpenFlow控制器接收第一 OpenFlow網(wǎng)絡(luò)設(shè)備上送的組播數(shù)據(jù)之前,所述方 法還包括:所述OpenFlow控制器向所述組播源設(shè)備對應(yīng)的第一 OpenFlow網(wǎng)絡(luò)設(shè)備發(fā)送第 二流表項;其中,所述第一流表項的優(yōu)先級高于所述第二流表項的優(yōu)先級,且所述第二流表 項用于指示所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備將目的IP地址為組播地址的組播數(shù)據(jù)發(fā)送給所述 OpenFlow控制器。
[0009] 所述OpenFlow控制器創(chuàng)建所述組播目的地址對應(yīng)的組播表項的過程,具體包括: OpenFlow控制器將所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備收到所述組播數(shù)據(jù)的端口作為第一入端 口,并利用所述組播目的地址、第一 OpenFlow網(wǎng)絡(luò)設(shè)備和第一入端口創(chuàng)建所述組播目的地 址對應(yīng)的組播表項;其中,所述組播表項中記錄的內(nèi)容包括所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備、 組播目的地址、第一入端口。
[0010] 所述方法進一步包括:所述OpenFlow控制器為所述組播表項啟動第一老化定 時器;在所述第一老化定時器超時之前的預(yù)設(shè)時間時,所述OpenFlow控制器向所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備發(fā)送攜帶所述組播目的地址的第三流表項;其中,所述第三流表項的優(yōu) 先級高于所述第一流表項的優(yōu)先級,且所述第三流表項用于指示所述第一 OpenFlow網(wǎng)絡(luò) 設(shè)備將收到的目的IP地址為所述組播目的地址的組播數(shù)據(jù)發(fā)送給所述OpenFlow控制器; 在所述第一老化定時器超時之前,如果所述OpenFlow控制器收到目的IP地址為所述組播 目的地址的組播數(shù)據(jù),所述OpenFlow控制器刷新所述組播數(shù)據(jù)對應(yīng)的組播表項的第一老 化定時器的老化時間,并指示所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備清除所述第三流表項;在所述第 一老化定時器超時時,所述OpenFlow控制器刪除所述第一老化定時器對應(yīng)的所述組播表 項。
[0011] 所述方法進一步包括:所述OpenFlow控制器向所述接收者設(shè)備對應(yīng)的第二 OpenFlow網(wǎng)絡(luò)設(shè)備發(fā)送第四流表項以及第五流表項;其中,所述第四流表項用于指示所述 第二OpenFlow網(wǎng)絡(luò)設(shè)備向所述接收者設(shè)備發(fā)送Internet組管理協(xié)議IGMP通用查詢報文, 所述第五流表項用于指示所述第二OpenFlow網(wǎng)絡(luò)設(shè)備將來自所述接收者設(shè)備的IGMP加入 報文發(fā)送給所述OpenFlow控制器;所述OpenFlow控制器接收來自所述第二OpenFlow網(wǎng) 絡(luò)設(shè)備的IGMP加入報文,從所述IGMP加入報文中解析出所述接收者設(shè)備請求加入的組播 目的地址,并將所述第二OpenFlow網(wǎng)絡(luò)設(shè)備收到所述IGMP加入報文的端口作為第二入端 口,并利用所述組播目的地址、第二OpenFlow網(wǎng)絡(luò)設(shè)備和第二入端口創(chuàng)建所述組播目的地 址對應(yīng)的組播加入表項;其中,所述組播加入表項中記錄的內(nèi)容包括所述第二OpenFlow網(wǎng) 絡(luò)設(shè)備、組播目的地址、第二入端口。
[0012] 所述方法進一步包括:所述OpenFlow控制器為所述組播加入表項啟動第二老化 定時器,且所述OpenFlow控制器為所述第四流表項啟動周期發(fā)送定時器;在所述周期發(fā)送 定時器超時時,所述OpenFlow控制器重新向所述第二OpenFlow網(wǎng)絡(luò)設(shè)備發(fā)送第四流表項, 并重新啟動所述周期發(fā)送定時器;在所述第二老化定時器超時之前,如果所述OpenFlow控 制器收到用于請求加入所述組播目的地址的IGMP加入報文,則所述OpenFlow控制器刷新 所述IGMP加入報文對應(yīng)的組播加入表項的第二老化定時器的老化時間;在所述第二老化 定時器超時時,所述OpenFlow控制器刪除所述第二老化定時器對應(yīng)的所述組播加入表項。
[0013] 所述方法進一步包括:所述OpenFlow控制器根據(jù)所述組播表項和組播加入表項, 獲得所述組播源設(shè)備發(fā)送組播數(shù)據(jù)到所述接收者設(shè)備的轉(zhuǎn)發(fā)路徑,確定所述轉(zhuǎn)發(fā)路徑中各 OpenFlow網(wǎng)絡(luò)設(shè)備,向所述轉(zhuǎn)發(fā)路徑中的各OpenFlow網(wǎng)絡(luò)設(shè)備下發(fā)對應(yīng)的流表項,以指導(dǎo) 各OpenFlow網(wǎng)絡(luò)設(shè)備基于相應(yīng)的流表項對所述組播數(shù)據(jù)進行轉(zhuǎn)發(fā)。
[0014] 所述OpenFlow控制器獲得所述組播源設(shè)備發(fā)送組播數(shù)據(jù)到所述接收者設(shè)備的轉(zhuǎn) 發(fā)路徑,具體包括:所述OpenFlow控制器利用所述組播表項和組播加入表項生成組播轉(zhuǎn) 發(fā)表項,所述組播轉(zhuǎn)發(fā)表項包括組播目的地址、第一 OpenFlow網(wǎng)絡(luò)設(shè)備、第一入端口、第二 OpenFlow網(wǎng)絡(luò)設(shè)備、第二入端口、所述第一 OpenFlow網(wǎng)絡(luò)設(shè)備與第二OpenFlow網(wǎng)絡(luò)設(shè)備之 間經(jīng)過的各OpenFlow網(wǎng)絡(luò)設(shè)備以及端口;所述OpenFlow控制器利用所述組播轉(zhuǎn)發(fā)表項獲 得所述組播源設(shè)備發(fā)送組播數(shù)據(jù)到所述接收者設(shè)備的轉(zhuǎn)發(fā)路徑。
[0015] 本發(fā)明實施例提供一種OpenFlow控制器,應(yīng)用于包括所述OpenFlow控制器、 OpenFlow網(wǎng)絡(luò)設(shè)備、組播源設(shè)備以及接收者設(shè)備的網(wǎng)絡(luò)中,其特征在于,所述OpenFlow控 制器具體包括:接收模塊,用于接收