欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)及其運(yùn)行方法與流程

文檔序號:12493613閱讀:222來源:國知局
一種云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)及其運(yùn)行方法與流程

本發(fā)明涉及一種云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)及其運(yùn)行方法,屬于云環(huán)境下網(wǎng)絡(luò)優(yōu)化領(lǐng)域。



背景技術(shù):

云計算(Cloud Computing)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)增加、使用和交付模式,它是并行處理、分布式計算、網(wǎng)格計算等技術(shù)基礎(chǔ)上逐步融合發(fā)展起來的網(wǎng)絡(luò)計算技術(shù)。最初,于2008年由谷歌正式提出。對云計算的定義說法多樣,美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)定義:云計算是一種為隨時隨地、方便、請求即相應(yīng)(on-demand)地訪問可配置計算的共享資源池(比如:網(wǎng)絡(luò)、服務(wù)、存儲、應(yīng)用)的一種計算模式,這種模式可以減少用戶在快速獲得和釋放資源時與服務(wù)提供者的交互和管理開銷。在云計算模式下,用戶終端設(shè)備將會變得非常簡單,因為用戶只需要發(fā)送請求便可以由云服務(wù)提供商提供“按需收費(fèi)”的計算資源、存儲空間和其他的應(yīng)用軟件等。云計算已經(jīng)廣泛應(yīng)用到各個領(lǐng)域,主要包含:云物聯(lián)、云安全、云存儲、移動通信等。但是傳統(tǒng)的云計算網(wǎng)路中仍然存在很多問題,例如,在云環(huán)境下,用戶需要配置不同的網(wǎng)絡(luò)層結(jié)構(gòu),如交換機(jī)、子網(wǎng)、訪問控制列表等,以供云應(yīng)用使用。這樣就需要一種具有高度自動化連接性能的服務(wù)級網(wǎng)絡(luò)作為云計算的一部分。

軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)是一種新型的軟件可編程網(wǎng)絡(luò)架構(gòu),其核心思想是基于控制和轉(zhuǎn)發(fā)相分離的思想。通過將控制層與數(shù)據(jù)層分離,在控制層向用戶提供編程接口,使得用戶能夠根據(jù)自身需要,通過編程來實現(xiàn)對網(wǎng)絡(luò)的動態(tài)監(jiān)測和管理。SDN首先由美國斯坦福大學(xué)Clean Slate研究組提出,其目的是提供一個開放的、用戶可自行進(jìn)行控制、管理和轉(zhuǎn)發(fā)數(shù)據(jù)的平臺。一方面,SDN將數(shù)據(jù)層從控制層中分離出來,這樣,控制層可以通過路由或者交換機(jī)將請求下發(fā)給數(shù)據(jù)層。一般,數(shù)據(jù)層中的交換機(jī)可以獲知所需推送的數(shù)據(jù)信息,并根據(jù)控制器發(fā)出的命令對數(shù)據(jù)進(jìn)行推送。另一方面,SDN提供了一個可編程接口,該接口使得云平臺根據(jù)云應(yīng)用配置底層網(wǎng)絡(luò),使云應(yīng)用與底層網(wǎng)絡(luò)進(jìn)行緊密銜接成為可能。在實際應(yīng)用中,SDN存在著很多協(xié)議標(biāo)準(zhǔn),例如OpenFlow。OpenFlow使得SDN的概念在軟硬件上得以實現(xiàn)。OpenFlow中最主要的部分是控制器和OpenFlow交換機(jī),而這兩者聯(lián)合起來共同可以共同完成報文的轉(zhuǎn)發(fā)。SDN將傳統(tǒng)網(wǎng)絡(luò)上的控制層和數(shù)據(jù)層分離開,網(wǎng)絡(luò)路由和交換機(jī)只需要根據(jù)控制層制定的規(guī)則轉(zhuǎn)發(fā)數(shù)據(jù),這樣的靈活調(diào)配網(wǎng)絡(luò)資源,使得SDN符合當(dāng)前云數(shù)據(jù)中心的需求。

軟件定義網(wǎng)絡(luò)SDN的整體架構(gòu)圖如圖1所示,主要包含三個主要層次:

1)應(yīng)用層,位于最上層,包含了各種不同的業(yè)務(wù)和網(wǎng)絡(luò)應(yīng)用。應(yīng)用層根據(jù)網(wǎng)絡(luò)不同的應(yīng)用需求,調(diào)用與控制層相接的應(yīng)用編程接口,實現(xiàn)不同功能的應(yīng)用程序。最常見的網(wǎng)絡(luò)服務(wù)包括路由、組播、安全、服務(wù)質(zhì)量等。

2)控制層,通過控制軟件實現(xiàn),擺脫了硬件設(shè)備對網(wǎng)絡(luò)控制功能的束縛,主要負(fù)責(zé)集中維護(hù)網(wǎng)絡(luò)拓?fù)浼熬W(wǎng)絡(luò)狀態(tài)信息,實現(xiàn)不同業(yè)務(wù)特性的適配。

3)基礎(chǔ)設(shè)施層,由網(wǎng)絡(luò)的底層轉(zhuǎn)發(fā)設(shè)備構(gòu)成,包含了特定的轉(zhuǎn)發(fā)平面抽象,在SDN中,網(wǎng)絡(luò)設(shè)備只負(fù)責(zé)單純的數(shù)據(jù)轉(zhuǎn)發(fā),降低了對網(wǎng)絡(luò)設(shè)備硬件的要求。

隨著移動互聯(lián)網(wǎng)和帶寬網(wǎng)絡(luò)技術(shù)的發(fā)展,為了能夠隨時隨地地實現(xiàn)對網(wǎng)絡(luò)的訪問,出現(xiàn)了組播技術(shù)。組播技術(shù)是一種一對多或者多對多的通信方式,是一種允許一個或多個發(fā)送者發(fā)送同一個數(shù)據(jù)包到多個接受者的網(wǎng)絡(luò)技術(shù),無論有多少個報文接收者,網(wǎng)絡(luò)中任何一條鏈路只傳送單一的報文。這樣,在有多個接受者的應(yīng)用中,組播技術(shù)一方面大大提高了數(shù)據(jù)傳送效率,有效地利用了帶寬,減少了主干網(wǎng)出現(xiàn)擁塞的可能性。另一方面,也避免了單播和廣播中可能出現(xiàn)的廣播風(fēng)暴問題。

基于SDN技術(shù)實現(xiàn)云環(huán)境下的移動組播技術(shù)整體架構(gòu)圖是在已有的云計算網(wǎng)絡(luò)基礎(chǔ)平臺上進(jìn)行設(shè)計與實現(xiàn)的,其總體架構(gòu)如圖2所示??偣卜炙膶?,最底層是云環(huán)境中的物理網(wǎng)絡(luò)平臺,上面是SDN基礎(chǔ)設(shè)施控制層(屬于SDN的控制層),第三層是業(yè)務(wù)控制層,也是組播組件所在的層次,主要負(fù)責(zé)提供業(yè)務(wù)的接入和監(jiān)聽,然后使用組播技術(shù)進(jìn)行業(yè)務(wù)處理等。最上面則是業(yè)務(wù)應(yīng)用層,用于展現(xiàn)給客戶端的。該總體架構(gòu)主要實現(xiàn)了一些基本的功能性需求:組成員管理功能、組播選路功能、業(yè)務(wù)功能及相關(guān)信息存儲功能。

1)組成員管理功能:為了實現(xiàn)組播功能,需要實現(xiàn)對當(dāng)前系統(tǒng)中存在的組播信息及各自的組成員信息進(jìn)行記錄,同時需要實時的對組播成員信息進(jìn)行添加和刪除等操作。這部分通常通過實現(xiàn)組成員管理協(xié)議而實現(xiàn)。

2)組播選路功能:就是依據(jù)當(dāng)前各組成員和組播源的位置信息,結(jié)合SDN的控制層對整個網(wǎng)絡(luò)拓?fù)湫畔⑦M(jìn)行組播轉(zhuǎn)發(fā)樹的構(gòu)建工作。在SDN平臺上,該信息最終將以流表的形式存儲在各個SDN交換機(jī)中。

3)業(yè)務(wù)功能:這是在SDN的組播技術(shù)基礎(chǔ)上進(jìn)行實習(xí)的,主要的業(yè)務(wù)有視頻直播等。對于選擇相同視頻信息的用戶,視頻數(shù)據(jù)在網(wǎng)絡(luò)中通過組播技術(shù)進(jìn)行傳輸。

4)數(shù)據(jù)存儲功能:主要是將當(dāng)前系統(tǒng)中的組成員信息、組播轉(zhuǎn)發(fā)樹及視頻節(jié)目信息保存到數(shù)據(jù)庫中,從而方便其他系統(tǒng)調(diào)用和展示。

在移動網(wǎng)絡(luò)技術(shù)迅速發(fā)展的今天,云計算技術(shù)在移動通信領(lǐng)域逐步得到應(yīng)用,移動云計算的概念也逐漸成為熱點(diǎn)。移動云計算是指移動終端通過移動網(wǎng)絡(luò),已按需、易擴(kuò)展的方式獲得基礎(chǔ)設(shè)施、平臺、及軟件資源或服務(wù)的交付使用模式。然而,在這樣的一個環(huán)境下,傳統(tǒng)的組播技術(shù)也暴露出了許多問題:所有的路由器必須支持組播協(xié)議,不利于推廣使用;組播組加入、退出和管理開銷大,此外在安全和擁塞控制等方面也存在問題。所以,為了解決問題,在新的互聯(lián)網(wǎng)架構(gòu)下實現(xiàn)組播技術(shù)顯得十分必要。而且雖然已經(jīng)有一些SDN網(wǎng)絡(luò)平臺組播功能的研究工作,但是仍然沒有在網(wǎng)絡(luò)控制層形成統(tǒng)一的標(biāo)準(zhǔn)。



技術(shù)實現(xiàn)要素:

針對傳統(tǒng)的組播技術(shù)在移動云環(huán)境下所暴露的不足,本發(fā)明提出了一種云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng);

本發(fā)明還提供了上述系統(tǒng)的運(yùn)行方法。

本發(fā)明的核心是利用SDN技術(shù)控制和轉(zhuǎn)發(fā)相分離的基本思想,通過將傳統(tǒng)的完全由路由器/交換機(jī)控制的報文轉(zhuǎn)發(fā)過程,轉(zhuǎn)化為由SDN的控制層和數(shù)據(jù)層來共同完成組播報文的轉(zhuǎn)發(fā),從而實現(xiàn)了基本的組播組成員關(guān)系的管理。使得在移動云計算環(huán)境下解決了組播技術(shù)所暴露的擴(kuò)展難度大、組播組的加入、退出和管理開銷大,以及安全和擁塞控制等方面所存在的弊端,彌補(bǔ)了組播技術(shù)的不足。也給網(wǎng)絡(luò)的管理帶來了極大的便利,盡可能的提高了網(wǎng)路的效率。

術(shù)語解釋:

1、組播組,一組端口,組播組都是組播報文或者數(shù)據(jù)幀(必須發(fā)送到組播組中的所有端口)發(fā)送的目標(biāo)地址。

2、Packet_in_event,是NOX控制器平臺內(nèi)部的一種封裝報文事件。NOX是SDN平臺的一種控制器,在NOX控制器內(nèi)部,每個功能實體以組件的形式獨(dú)立存在,組件的工作方式就是處理事件。而來自NOX控制器的祖逼組件中的組成員管理模塊對來自組播客戶端的MLD報文的監(jiān)聽和處理方式也是對事件的處理過程,即報文在NOX控制器中是以Packet_in_event的封裝形式由組件處理的。

3、MLD,Multicast Listener Discover的縮寫,組播偵聽發(fā)現(xiàn)協(xié)議,是組播技術(shù)中使用的一種網(wǎng)絡(luò)協(xié)議,MLD協(xié)議的作用主要是使得IPv6路由器能夠發(fā)現(xiàn)與之直連鏈路上的組播組成員以及相鄰組播路由器需要監(jiān)聽的組播地址。根據(jù)這些信息,路由器能夠確保組播數(shù)據(jù)報文能夠正確地發(fā)送給該組播組的接受者。MLD的消息格式主要包含以下字段:類型、編碼、校驗和、最大響應(yīng)延遲、保留字段、組播地址。其中類型字段指定了MLD協(xié)議具體包含三種類型報文:組播監(jiān)聽查詢報文、組播監(jiān)聽報告報文以及組播監(jiān)聽完成報文。

4、組播轉(zhuǎn)發(fā)樹,組播的首要目標(biāo)是將組播分組轉(zhuǎn)發(fā)到組播組的所有成員,為了防止出現(xiàn)傳輸環(huán)路,需要將分組的源地址考慮進(jìn)來,形成一個從源節(jié)點(diǎn)到所有目的節(jié)點(diǎn)的樹狀分組轉(zhuǎn)發(fā)通路,成這種轉(zhuǎn)發(fā)路徑為轉(zhuǎn)發(fā)樹。組播路由的實質(zhì)就是對每一個組播組和每一個源,建立一個最優(yōu)的組播轉(zhuǎn)發(fā)樹。

5、下一跳地址,下一跳即路由的下一個點(diǎn),如果路由器沒有直接連接到目的網(wǎng)絡(luò),它會提供下一個鄰近路由的地址用來傳遞數(shù)據(jù)到目的地,下一個路由的地址即為下一跳地址。

6、路由距離,也成為跳數(shù),在發(fā)送數(shù)據(jù)包時,每經(jīng)過一個路由器跳數(shù)就加1。這是計量路由路徑的一種方式,一般認(rèn)為通過的路由數(shù)目少即為“距離短”。

本發(fā)明的技術(shù)方案為:

一種云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng),包括依次連接的組成員管理模塊、組播路由模塊、流表管理模塊;

所述組成員管理模塊為整個組播組件的核心模塊,用于實現(xiàn)組成員管理,實現(xiàn)IPv6的MLD協(xié)議報文的交互;

所述組播路由模塊,用于實現(xiàn)組播路由算法,生成組播轉(zhuǎn)發(fā)樹;不同的組播路由算法建立組播轉(zhuǎn)發(fā)樹的方式不同,而在支持組播的SDN網(wǎng)絡(luò)控制系統(tǒng)中,采取的組播路由算法是,為每一個組播組的每一個源結(jié)點(diǎn)(即每個源交換機(jī))均建立基于源的轉(zhuǎn)發(fā)樹。組播轉(zhuǎn)發(fā)樹采用了孩子兄弟鏈表的結(jié)構(gòu)進(jìn)行存儲。

所述流表管理模塊,用于將組播轉(zhuǎn)發(fā)樹進(jìn)行轉(zhuǎn)化。在SDN網(wǎng)絡(luò)控制系統(tǒng)中,數(shù)據(jù)包的轉(zhuǎn)發(fā)是根據(jù)SDN交換機(jī)中的流表進(jìn)行匹配和轉(zhuǎn)發(fā)的。但是,組播路由模塊的最終輸出為多分支的組播轉(zhuǎn)發(fā)樹。則流表管理模塊需要實現(xiàn)將該組播轉(zhuǎn)發(fā)樹進(jìn)行轉(zhuǎn)化。這里采取后序遍歷方式來實現(xiàn),這樣保證了在轉(zhuǎn)化組播轉(zhuǎn)發(fā)樹的根節(jié)點(diǎn)時,其沿途的所有節(jié)點(diǎn)的流表均能得到轉(zhuǎn)化。

上述系統(tǒng)用于實現(xiàn)MLD協(xié)議報文的交互的方法,具體步驟包括:

(1)組播客戶端加入組播組;

(2)組成員管理模塊向組播客戶端定時發(fā)送組播監(jiān)聽查詢報文,組播客戶端如果能收到組播監(jiān)聽查詢報文,說明該組播客戶端已經(jīng)加入了組播組中,則在隨機(jī)的時延后發(fā)送組播監(jiān)聽報告報文以作響應(yīng),否則,說明該組播客戶端已經(jīng)離開該組播組,則組成員管理模塊不會收到響應(yīng);

(3)判斷監(jiān)聽是否完成,如果是,返回步驟(2),否則,進(jìn)入步驟(4);

(4)組播客戶端離開組播組。

根據(jù)本發(fā)明優(yōu)選的,所述步驟(1),具體步驟包括:

①當(dāng)組播客戶端加入組播組時,向所述組成員管理模塊發(fā)送組播監(jiān)聽報告報文,所述組播監(jiān)聽報告報文包括組播地址信息,所述組播地址信息包括目的網(wǎng)絡(luò)、下一跳地址及距離,所述目的網(wǎng)絡(luò)是指接收組播監(jiān)聽報告報文的網(wǎng)絡(luò)

②所述組成員管理模塊從Packet_in_event中解封裝出所述組播監(jiān)聽報告報文,并按照MLD協(xié)議規(guī)定,識別并解析所述組播監(jiān)聽報告報文;

③將所述組播監(jiān)聽報告報文中的組播地址信息添加到上傳組播監(jiān)聽報告報文的交換機(jī)的端口監(jiān)聽列表中,若該交換機(jī)的端口監(jiān)聽列表之前并沒有包含該組播地址信息,則添加;否則,直接更新端口監(jiān)聽列表中該組播地址信息的注冊信息。

根據(jù)本發(fā)明優(yōu)選的,所述步驟(4),具體步驟包括:

A、組播客戶端向組成員管理模塊發(fā)送組播監(jiān)聽完成報告;

B、組成員管理模塊從Packet_in_event中解封裝出該組播監(jiān)聽完成報告,按照MLD協(xié)議規(guī)定識別并解析該組播監(jiān)聽完成報告,

C、組成員管理模塊向該組播客戶端所在的網(wǎng)絡(luò)發(fā)送組播監(jiān)聽查詢報告,如果在一定時間內(nèi)收到了來自該組播客戶端所在的網(wǎng)絡(luò)的組播監(jiān)聽報告報文,則表明該組播客戶端所在的網(wǎng)絡(luò)中還有其他的組播客戶端監(jiān)聽該組播組,則更新該組播組的計時器;否則,將該組播地址信息的注冊信息從端口監(jiān)聽列表中刪除。

根據(jù)本發(fā)明優(yōu)選的,所述步驟C中,所述一定時間是指1s。

上述系統(tǒng)用于生成組播轉(zhuǎn)發(fā)樹的方法,即:通過函數(shù)build_my_tree()生成組播轉(zhuǎn)發(fā)樹,具體步驟包括:

(Ⅰ)以當(dāng)前節(jié)點(diǎn)為根節(jié)點(diǎn),所述節(jié)點(diǎn)為路由或交換機(jī),從根節(jié)點(diǎn)出發(fā),檢索與該節(jié)點(diǎn)鄰近的路由節(jié)點(diǎn)的地址信息;

(Ⅱ)發(fā)現(xiàn)新節(jié)點(diǎn)后,通過定義函數(shù)find_repeated_node()判斷該新節(jié)點(diǎn)是否為重復(fù)節(jié)點(diǎn),若不是重復(fù)節(jié)點(diǎn),則為組播轉(zhuǎn)發(fā)樹創(chuàng)建一個新節(jié)點(diǎn),填寫該節(jié)點(diǎn)的相關(guān)數(shù)據(jù)成員信息,所述相關(guān)數(shù)據(jù)成員信息包括節(jié)點(diǎn)的組播地址、路由距離、下一跳地址、標(biāo)志位變量is_in_group,所述標(biāo)志位變量is_in_group是指:當(dāng)標(biāo)志位變量is_in_group為1時,則標(biāo)識一個節(jié)點(diǎn)已經(jīng)得到了注冊,當(dāng)標(biāo)志位變量is_in_group為0時,則標(biāo)識一個節(jié)點(diǎn)未注冊;并通過定義函數(shù)is_conto_group()判斷該新節(jié)點(diǎn)是否為組播組內(nèi)的成員,是的話,進(jìn)入步驟(Ⅲ),否則,進(jìn)入步驟(Ⅳ);若是重復(fù)節(jié)點(diǎn),說明該節(jié)點(diǎn)的基本信息已設(shè)定,此時不需要再判斷是否為組播組中的成員。則需要比較新節(jié)點(diǎn)的路徑長度與當(dāng)前父節(jié)點(diǎn)長度值加1跳,新節(jié)點(diǎn)的路徑長度:是指該交換機(jī)的跳數(shù),訪問函數(shù)返回值的轉(zhuǎn)發(fā)樹可獲得;若需要比較新節(jié)點(diǎn)的路徑長度小于當(dāng)前父節(jié)點(diǎn)長度值加1跳,則修改當(dāng)前節(jié)點(diǎn)及其子樹的路徑信息,并做路徑的調(diào)整工作,包括調(diào)整節(jié)點(diǎn)的指針指向;否則,則不做處理;

(Ⅲ)將該節(jié)點(diǎn)的成員信息中的標(biāo)志變量is_in_group設(shè)為1;

(Ⅳ)將該節(jié)點(diǎn)的成員信息中的標(biāo)志變量is_in_group設(shè)為0;

(Ⅴ)判斷是否還有節(jié)點(diǎn)未做處理,若有,返回步驟(Ⅱ),否則,結(jié)束。

本發(fā)明的有益效果是:

1、本發(fā)明利用SDN技術(shù)實現(xiàn)云環(huán)境下的移動組播技術(shù),利用SDN的控制與數(shù)據(jù)轉(zhuǎn)發(fā)相分離的策略,以通過將傳統(tǒng)的完全由路由器/交換機(jī)控制的報文轉(zhuǎn)發(fā)過程,轉(zhuǎn)化為有SDN的控制層和數(shù)據(jù)轉(zhuǎn)發(fā)層來共同完成組播報文的轉(zhuǎn)發(fā)。將SDN技術(shù)與組播技術(shù)相結(jié)合,一方面實現(xiàn)組播成員的高效管理,另一方面選取高效的組播路由算法。從而,最終實現(xiàn)了在云計算網(wǎng)絡(luò)環(huán)境下很好地實現(xiàn)組播技術(shù)的最終目標(biāo)。

2、本發(fā)明利用SDN技術(shù)實現(xiàn)云環(huán)境下的移動組播技術(shù),其中組成員管理模塊在完成當(dāng)前系統(tǒng)存在的組播信息以及各自的組成員的信息的記錄時,利用了SDN的集中管理控制,實現(xiàn)對整個網(wǎng)路拓?fù)涞恼莆?。這樣可以很好地解決傳統(tǒng)的組播技術(shù)中對組成員管理的問題,提高了網(wǎng)絡(luò)的效率。

3、本發(fā)明利用SDN技術(shù)實現(xiàn)云環(huán)境下的移動組播技術(shù),其中組播路由模塊中,采用的組播路由算法是為每一個組播成員的每一個源均建立基于源的轉(zhuǎn)發(fā)樹。這種的轉(zhuǎn)發(fā)樹能夠保證組播源到每個組播組成員的路徑最短,從而最大的節(jié)省網(wǎng)絡(luò)的帶寬,減少了組播分組的傳輸延時。

附圖說明

圖1是軟件定義網(wǎng)絡(luò)SDN的整體架構(gòu)圖

圖2是本發(fā)明基于SDN技術(shù)實現(xiàn)云環(huán)境下的移動組播技術(shù)整體架構(gòu)圖;

圖3是本發(fā)明所述云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)的結(jié)構(gòu)框圖;

圖4是本發(fā)明實現(xiàn)MLD協(xié)議報文的交互的方法的流程示意圖。

具體實施方式

下面結(jié)合說明書附圖和實施例對本發(fā)明作進(jìn)一步限定,但不限于此。

實施例1

一種云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng),如圖3所示,包括依次連接的組成員管理模塊、組播路由模塊、流表管理模塊;組成員管理模塊為整個組播組件的核心模塊,用于實現(xiàn)組成員管理,實現(xiàn)IPv6的MLD協(xié)議報文的交互;組播路由模塊,用于實現(xiàn)組播路由算法,生成組播轉(zhuǎn)發(fā)樹;不同的組播路由算法建立組播轉(zhuǎn)發(fā)樹的方式不同,而在支持組播的SDN網(wǎng)絡(luò)控制系統(tǒng)中,采取的組播路由算法是,為每一個組播組的每一個源結(jié)點(diǎn)(即每個源交換機(jī))均建立基于源的轉(zhuǎn)發(fā)樹。組播轉(zhuǎn)發(fā)樹采用了孩子兄弟鏈表的結(jié)構(gòu)進(jìn)行存儲。流表管理模塊,用于將組播轉(zhuǎn)發(fā)樹進(jìn)行轉(zhuǎn)化。在SDN網(wǎng)絡(luò)控制系統(tǒng)中,數(shù)據(jù)包的轉(zhuǎn)發(fā)是根據(jù)SDN交換機(jī)中的流表進(jìn)行匹配和轉(zhuǎn)發(fā)的。但是,組播路由模塊的最終輸出為多分支的組播轉(zhuǎn)發(fā)樹。則流表管理模塊需要實現(xiàn)將該組播轉(zhuǎn)發(fā)樹進(jìn)行轉(zhuǎn)化。這里采取后序遍歷方式來實現(xiàn),這樣保證了在轉(zhuǎn)化組播轉(zhuǎn)發(fā)樹的根節(jié)點(diǎn)時,其沿途的所有節(jié)點(diǎn)的流表均能得到轉(zhuǎn)化。

實施例2

實施例1所述的云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)用于實現(xiàn)MLD協(xié)議報文的交互的方法,如圖4所示,具體步驟包括:

(1)組播客戶端加入組播組;具體包括:

①當(dāng)組播客戶端加入組播組時,向所述組成員管理模塊發(fā)送組播監(jiān)聽報告報文,所述組播監(jiān)聽報告報文包括組播地址信息,所述組播地址信息包括目的網(wǎng)絡(luò)、下一跳地址及距離,所述目的網(wǎng)絡(luò)是指接收組播監(jiān)聽報告報文的網(wǎng)絡(luò)

②所述組成員管理模塊從Packet_in_event中解封裝出所述組播監(jiān)聽報告報文,并按照MLD協(xié)議規(guī)定,識別并解析所述組播監(jiān)聽報告報文;

③將所述組播監(jiān)聽報告報文中的組播地址信息添加到上傳組播監(jiān)聽報告報文的交換機(jī)的端口監(jiān)聽列表中,若該交換機(jī)的端口監(jiān)聽列表之前并沒有包含該組播地址信息,則添加;否則,直接更新端口監(jiān)聽列表中該組播地址信息的注冊信息。

(2)組成員管理模塊向組播客戶端定時發(fā)送組播監(jiān)聽查詢報文,組播客戶端如果能收到組播監(jiān)聽查詢報文,說明該組播客戶端已經(jīng)加入了組播組中,則在隨機(jī)的時延后發(fā)送組播監(jiān)聽報告報文以作響應(yīng),否則,說明該組播客戶端已經(jīng)離開該組播組,則組成員管理模塊不會收到響應(yīng);

(3)判斷監(jiān)聽是否完成,如果是,返回步驟(2),否則,進(jìn)入步驟(4);

(4)組播客戶端離開組播組,具體步驟包括:

A、組播客戶端向組成員管理模塊發(fā)送組播監(jiān)聽完成報告;

B、組成員管理模塊從Packet_in_event中解封裝出該組播監(jiān)聽完成報告,按照MLD協(xié)議規(guī)定識別并解析該組播監(jiān)聽完成報告,

C、組成員管理模塊向該組播客戶端所在的網(wǎng)絡(luò)發(fā)送組播監(jiān)聽查詢報告,如果在1s內(nèi)收到了來自該組播客戶端所在的網(wǎng)絡(luò)的組播監(jiān)聽報告報文,則表明該組播客戶端所在的網(wǎng)絡(luò)中還有其他的組播客戶端監(jiān)聽該組播組,則更新該組播組的計時器;否則,將該組播地址信息的注冊信息從端口監(jiān)聽列表中刪除。

實施例3

實施例1所述的云環(huán)境下基于SDN技術(shù)實現(xiàn)移動組播的系統(tǒng)用于生成組播轉(zhuǎn)發(fā)樹的方法,即:通過函數(shù)build_my_tree()生成組播轉(zhuǎn)發(fā)樹,具體步驟包括:

(Ⅰ)以當(dāng)前節(jié)點(diǎn)為根節(jié)點(diǎn),所述節(jié)點(diǎn)為路由或交換機(jī),從根節(jié)點(diǎn)出發(fā),檢索與該節(jié)點(diǎn)鄰近的路由節(jié)點(diǎn)的地址信息;

(Ⅱ)發(fā)現(xiàn)新節(jié)點(diǎn)后,通過定義函數(shù)find_repeated_node()判斷該新節(jié)點(diǎn)是否為重復(fù)節(jié)點(diǎn),若不是重復(fù)節(jié)點(diǎn),則為組播轉(zhuǎn)發(fā)樹創(chuàng)建一個新節(jié)點(diǎn),填寫該節(jié)點(diǎn)的相關(guān)數(shù)據(jù)成員信息,所述相關(guān)數(shù)據(jù)成員信息包括節(jié)點(diǎn)的組播地址、路由距離、下一跳地址、標(biāo)志位變量is_in_group,所述標(biāo)志位變量is_in_group是指:當(dāng)標(biāo)志位變量is_in_group為1時,則標(biāo)識一個節(jié)點(diǎn)已經(jīng)得到了注冊,當(dāng)標(biāo)志位變量is_in_group為0時,則標(biāo)識一個節(jié)點(diǎn)未注冊;并通過定義函數(shù)is_conto_group()判斷該新節(jié)點(diǎn)是否為組播組內(nèi)的成員,是的話,進(jìn)入步驟(Ⅲ),否則,進(jìn)入步驟(Ⅳ);若是重復(fù)節(jié)點(diǎn),說明該節(jié)點(diǎn)的基本信息已設(shè)定,此時不需要再判斷是否為組播組中的成員。則需要比較新節(jié)點(diǎn)的路徑長度與當(dāng)前父節(jié)點(diǎn)長度值加1跳,新節(jié)點(diǎn)的路徑長度:是指該交換機(jī)的跳數(shù),訪問函數(shù)返回值的轉(zhuǎn)發(fā)樹可獲得;若需要比較新節(jié)點(diǎn)的路徑長度小于當(dāng)前父節(jié)點(diǎn)長度值加1跳,則修改當(dāng)前節(jié)點(diǎn)及其子樹的路徑信息,并做路徑的調(diào)整工作,包括調(diào)整節(jié)點(diǎn)的指針指向;否則,則不做處理;

(Ⅲ)將該節(jié)點(diǎn)的成員信息中的標(biāo)志變量is_in_group設(shè)為1;

(Ⅳ)將該節(jié)點(diǎn)的成員信息中的標(biāo)志變量is_in_group設(shè)為0;

(Ⅴ)判斷是否還有節(jié)點(diǎn)未做處理,若有,返回步驟(Ⅱ),否則,結(jié)束。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
军事| 新沂市| 永州市| 弋阳县| 浠水县| 喜德县| 静海县| 安庆市| 长沙县| 天长市| 乌海市| 宣恩县| 巴青县| 大厂| 拜泉县| 临桂县| 彰武县| 闻喜县| 张家川| 宁南县| 乌兰县| 林西县| 报价| 仁怀市| 宁德市| 高邮市| 南京市| 湖口县| 林芝县| 内丘县| 安岳县| 濮阳县| 静乐县| 张家川| 福海县| 洛宁县| 长兴县| 井研县| 乌鲁木齐县| 永川市| 弥勒县|