1.一種云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng),其特征在于,包括依次連接的組成員管理模塊、組播路由模塊、流表管理模塊;所述組成員管理模塊為整個組播組件的核心模塊,用于實現(xiàn)組成員管理,實現(xiàn)IPv6的MLD協(xié)議報文的交互;所述組播路由模塊,用于實現(xiàn)組播路由算法,生成組播轉(zhuǎn)發(fā)樹;所述流表管理模塊,用于將組播轉(zhuǎn)發(fā)樹進行轉(zhuǎn)化。
2.權(quán)利要求1所述的云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)用于實現(xiàn)MLD協(xié)議報文的交互的方法,其特征在于,具體步驟包括:
(1)組播客戶端加入組播組;
(2)組成員管理模塊向組播客戶端定時發(fā)送組播監(jiān)聽查詢報文,組播客戶端如果能收到組播監(jiān)聽查詢報文,說明該組播客戶端已經(jīng)加入了組播組中,則在隨機的時延后發(fā)送組播監(jiān)聽報告報文以作響應,否則,說明該組播客戶端已經(jīng)離開該組播組,則組成員管理模塊不會收到響應;
(3)判斷監(jiān)聽是否完成,如果是,返回步驟(2),否則,進入步驟(4);
(4)組播客戶端離開組播組。
3.根據(jù)權(quán)利要求2所述的云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)用于實現(xiàn)MLD協(xié)議報文的交互的方法,其特征在于,所述步驟(1),具體步驟包括:
①當組播客戶端加入組播組時,向所述組成員管理模塊發(fā)送組播監(jiān)聽報告報文,所述組播監(jiān)聽報告報文包括組播地址信息,所述組播地址信息包括目的網(wǎng)絡、下一跳地址及距離,所述目的網(wǎng)絡是指接收組播監(jiān)聽報告報文的網(wǎng)絡
②所述組成員管理模塊從Packet_in_event中解封裝出所述組播監(jiān)聽報告報文,并按照MLD協(xié)議規(guī)定,識別并解析所述組播監(jiān)聽報告報文;
③將所述組播監(jiān)聽報告報文中的組播地址信息添加到上傳組播監(jiān)聽報告報文的交換機的端口監(jiān)聽列表中,若該交換機的端口監(jiān)聽列表之前并沒有包含該組播地址信息,則添加;否則,直接更新端口監(jiān)聽列表中該組播地址信息的注冊信息。
4.根據(jù)權(quán)利要求2所述的云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)用于實現(xiàn)MLD協(xié)議報文的交互的方法,其特征在于,所述步驟(4),具體步驟包括:
A、組播客戶端向組成員管理模塊發(fā)送組播監(jiān)聽完成報告;
B、組成員管理模塊從Packet_in_event中解封裝出該組播監(jiān)聽完成報告,按照MLD協(xié)議規(guī)定識別并解析該組播監(jiān)聽完成報告,
C、組成員管理模塊向該組播客戶端所在的網(wǎng)絡發(fā)送組播監(jiān)聽查詢報告,如果在一定時間內(nèi)收到了來自該組播客戶端所在的網(wǎng)絡的組播監(jiān)聽報告報文,則表明該組播客戶端所在的網(wǎng)絡中還有其他的組播客戶端監(jiān)聽該組播組,則更新該組播組的計時器;否則,將該組播地址信息的注冊信息從端口監(jiān)聽列表中刪除。
5.根據(jù)權(quán)利要求4所述的云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)用于實現(xiàn)MLD協(xié)議報文的交互的方法,其特征在于,所述步驟C中,所述一定時間是指1s。
6.權(quán)利要求1所述的云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)用于生成組播轉(zhuǎn)發(fā)樹的方法,其特征在于,即:通過函數(shù)build_my_tree()生成組播轉(zhuǎn)發(fā)樹,具體步驟包括:
(Ⅰ)以當前節(jié)點為根節(jié)點,所述節(jié)點為路由或交換機,從根節(jié)點出發(fā),檢索與該節(jié)點鄰近的路由節(jié)點的地址信息;
(Ⅱ)發(fā)現(xiàn)新節(jié)點后,通過定義函數(shù)find_repeated_node()判斷該新節(jié)點是否為重復節(jié)點,若不是重復節(jié)點,則為組播轉(zhuǎn)發(fā)樹創(chuàng)建一個新節(jié)點,填寫該節(jié)點的相關(guān)數(shù)據(jù)成員信息,所述相關(guān)數(shù)據(jù)成員信息包括節(jié)點的組播地址、路由距離、下一跳地址、標志位變量is_in_group,所述標志位變量is_in_group是指:當標志位變量is_in_group為1時,則標識一個節(jié)點已經(jīng)得到了注冊,當標志位變量is_in_group為0時,則標識一個節(jié)點未注冊;并通過定義函數(shù)is_conto_group()判斷該新節(jié)點是否為組播組內(nèi)的成員,是的話,進入步驟(Ⅲ),否則,進入步驟(Ⅳ);若是重復節(jié)點,則需要比較新節(jié)點的路徑長度與當前父節(jié)點長度值加1跳,新節(jié)點的路徑長度:是指該交換機的跳數(shù),訪問函數(shù)返回值的轉(zhuǎn)發(fā)樹可獲得;若需要比較新節(jié)點的路徑長度小于當前父節(jié)點長度值加1跳,則修改當前節(jié)點及其子樹的路徑信息,并做路徑的調(diào)整工作,包括調(diào)整節(jié)點的指針指向;否則,則不做處理;
(Ⅲ)將該節(jié)點的成員信息中的標志變量is_in_group設為1;
(Ⅳ)將該節(jié)點的成員信息中的標志變量is_in_group設為0;
(Ⅴ)判斷是否還有節(jié)點未做處理,若有,返回步驟(Ⅱ),否則,結(jié)束。