專利名稱:一種適于iptv流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字家庭網(wǎng)絡(luò)技術(shù)領(lǐng)域及流媒體技術(shù)領(lǐng)域,特別是涉 及一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng)。
背景技術(shù):
P2P系統(tǒng)構(gòu)建通常采用兩種結(jié)構(gòu),即樹型結(jié)構(gòu)和Gossip網(wǎng)狀結(jié)構(gòu)。 Gossip網(wǎng)狀結(jié)構(gòu)是通過使用Gossip算法建立主機(jī)的網(wǎng)狀結(jié)構(gòu),與相鄰 主機(jī)交換數(shù)據(jù)。但由于Gossip結(jié)構(gòu)是將數(shù)據(jù)通過多個(gè)路徑發(fā)送給一個(gè) 主機(jī),其最長(zhǎng)路徑的延遲決定了這種結(jié)構(gòu)會(huì)帶來較高的回放延遲;相 反,樹型結(jié)構(gòu)引入了較低的端到端的延遲,并更易于維護(hù)。樹型結(jié)構(gòu) 通過建立多棵樹來分發(fā)主機(jī)的數(shù)據(jù),現(xiàn)行的多數(shù)應(yīng)用層多播模式系統(tǒng) 均采用該結(jié)構(gòu)進(jìn)行數(shù)據(jù)分發(fā),如Narada,NICE協(xié)議以及P2Cast,P2VoD 等一些P2P視頻點(diǎn)播系統(tǒng)。
以往大多數(shù)基于應(yīng)用層的協(xié)議(如Narada, NICE, DT, Scribe,
ALMI等)均是假定路由器沒有多播功能,因此沒有考慮網(wǎng)絡(luò)層的IP
多播。全局IP多播是不可行的,但現(xiàn)在許多局域網(wǎng)都具備了多播功
能。這些局部可多播領(lǐng)域,或稱為"島",常常由不能多播的路由器
連接起來。因?yàn)镮P多播比ALM更有效,如果ALM能夠利用建立樹
型結(jié)構(gòu)的局部多播能力,將有利于IP多播應(yīng)用。
本發(fā)明采用有利于流媒體應(yīng)用層多播的局部IP多播方式,并融合
了應(yīng)用層多播協(xié)議和對(duì)等網(wǎng)絡(luò)技術(shù),具有高效能、高魯棒性、高實(shí)用
性、可部署性和可維護(hù)性,支持IP網(wǎng)絡(luò)上的實(shí)時(shí)電視和互動(dòng)電影?,F(xiàn)有的許多技術(shù)都需要設(shè)置專門的網(wǎng)絡(luò)節(jié)點(diǎn),如代理服務(wù)器或路由器, 且主機(jī)間的連接需要進(jìn)行手動(dòng)配置。支持本發(fā)明的主機(jī)群是充分自治 的,不需要設(shè)置專門的網(wǎng)絡(luò)節(jié)點(diǎn),降低了復(fù)雜性和管理成本,并可以 擴(kuò)展成為更大規(guī)模的對(duì)等網(wǎng)絡(luò)。同時(shí),本發(fā)明提供了簡(jiǎn)單的數(shù)據(jù)分發(fā) 傳輸方法,且易于實(shí)現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出了一種低延遲、易 于維護(hù)、利于IP多播應(yīng)用的系統(tǒng)。
為了實(shí)現(xiàn)發(fā)明目的,采用的技術(shù)方案如下。
一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng)(Scalable Island Multicast System,簡(jiǎn)稱SIM),其組成部分包括SIM服務(wù)器、 認(rèn)證與授權(quán)服務(wù)器、客戶端主機(jī)、STUN服務(wù)器以及IP多播路由器。
該系統(tǒng)的連接情況如下
在SIM中,島內(nèi)主機(jī)通過IP多播方式進(jìn)行通信傳輸,島間主機(jī) 則通過單播方式進(jìn)行通信傳輸。每臺(tái)待接入系統(tǒng)的主機(jī)首先將加入到 SIM的樹型結(jié)構(gòu)中,該結(jié)構(gòu)用于監(jiān)測(cè)和維護(hù)加入的主機(jī);
接著主機(jī)通過檢測(cè)加入到多播島,進(jìn)而完成整個(gè)接入過程。SIM 中的每個(gè)島只具備唯一的入口節(jié)點(diǎn),入口節(jié)點(diǎn)接收其他島發(fā)送過來的 數(shù)據(jù)包,再以多播的方式在島內(nèi)傳輸這些數(shù)據(jù)包。
所述SIM服務(wù)器,即媒體服務(wù)器,在SIM中作為樹型結(jié)構(gòu)中的 媒體源節(jié)點(diǎn)主機(jī),用于流媒體數(shù)據(jù)存儲(chǔ)與分發(fā)。
所述客戶端主機(jī),在SIM中作為樹型結(jié)構(gòu)的節(jié)點(diǎn)主機(jī),用于接 收、暫存或轉(zhuǎn)發(fā)流媒體數(shù)據(jù)。所述STUN服務(wù)器,提供主機(jī)網(wǎng)絡(luò)環(huán)境的判別服務(wù),用于判斷節(jié)
點(diǎn)主機(jī)是處于公網(wǎng)環(huán)境,還是處于NAT或防火墻的后面。
所述IP多播功能路由器,用于在島內(nèi)多播流媒體數(shù)據(jù),每個(gè)多
播島將維護(hù)一個(gè)IP多播功能路由器。
該系統(tǒng)是建立在應(yīng)用層基礎(chǔ)上,由所有節(jié)點(diǎn)主機(jī)構(gòu)成的單一樹型 結(jié)構(gòu),用于監(jiān)測(cè)新接入的主機(jī),并維護(hù)各節(jié)點(diǎn)主機(jī)間的關(guān)聯(lián);該關(guān)聯(lián) 是指節(jié)點(diǎn)主機(jī)間維持的父子關(guān)系,比如父子結(jié)點(diǎn)關(guān)系、祖先子孫結(jié)點(diǎn) 關(guān)系。
采用樹型構(gòu)建機(jī)制的P2P網(wǎng)絡(luò)一般都具有分布式特性,可使系統(tǒng) 更易擴(kuò)展,并且構(gòu)建算法更為簡(jiǎn)便。 本發(fā)明的技術(shù)特點(diǎn)主要體現(xiàn)如下
1、 采用有利于流媒體應(yīng)用層多播的局部IP多播方式,并基于樹 型結(jié)構(gòu)的可擴(kuò)展分布式系統(tǒng),SIM。
本發(fā)明的P2P系統(tǒng)采用樹型結(jié)構(gòu),端到端的延遲較低,并更易于 維護(hù)。樹型結(jié)構(gòu)通過建立多棵樹來分發(fā)主機(jī)的數(shù)據(jù)。同時(shí)通過建立具 有多播功能的路由器,實(shí)現(xiàn)網(wǎng)絡(luò)層的IP多播,從而建立了全局IP多 播。因?yàn)镮P多播比ALM更有效,如果ALM能夠利用建立樹型結(jié)構(gòu) 的局部多播能力,將有利于IP多播應(yīng)用。
2、 應(yīng)用層樹型結(jié)構(gòu)
本發(fā)明的樹型結(jié)構(gòu)建立在應(yīng)用層基礎(chǔ)上,由所有節(jié)點(diǎn)主機(jī)構(gòu)成的 單一樹型結(jié)構(gòu),用于監(jiān)測(cè)新接入的主機(jī),并維護(hù)各節(jié)點(diǎn)主機(jī)間的關(guān)聯(lián); 該關(guān)聯(lián)是指節(jié)點(diǎn)主機(jī)間維持的父子關(guān)系,比如父子結(jié)點(diǎn)關(guān)系、祖先子孫結(jié)點(diǎn)關(guān)系。
采用樹型構(gòu)建機(jī)制的P2P網(wǎng)絡(luò)一般都具有分布式特性,可使系統(tǒng) 更易擴(kuò)展,并且構(gòu)建算法更為簡(jiǎn)便。 3、具備良好的擴(kuò)展性
本發(fā)明可在SIM的現(xiàn)有基礎(chǔ)上增加CDN超級(jí)節(jié)點(diǎn),從而提高 P2P網(wǎng)絡(luò)穩(wěn)定性,保證服務(wù)質(zhì)量。
本發(fā)明可改進(jìn)為采用多個(gè)樹型結(jié)構(gòu)的網(wǎng)狀拓?fù)?,在兩層樹狀拓?fù)?結(jié)構(gòu)基礎(chǔ)上,每個(gè)節(jié)點(diǎn)可以從多個(gè)父節(jié)點(diǎn)中獲取流式數(shù)據(jù)。數(shù)據(jù)內(nèi)容 多源獲取,節(jié)點(diǎn)分布形成網(wǎng)狀結(jié)構(gòu)。
圖1為SIM拓?fù)浣Y(jié)構(gòu)圖2為樹型傳輸結(jié)構(gòu)邏輯示例圖3為節(jié)點(diǎn)主機(jī)與STUN服務(wù)器交互過程視圖4為節(jié)點(diǎn)主機(jī)與集合點(diǎn)主機(jī)交互過程視圖5為新主機(jī)為公網(wǎng)主機(jī)時(shí)與每個(gè)出棧主機(jī)的交互過程視圖6為新主機(jī)為受限主機(jī)時(shí)與每個(gè)出棧主機(jī)的交互過程視圖7為多播島內(nèi)傳輸路徑邏輯示例圖8為據(jù)分發(fā)邏輯示例圖9為死鎖情形邏輯示例圖IO為節(jié)點(diǎn)主機(jī)授權(quán)視圖11為節(jié)點(diǎn)主機(jī)認(rèn)證視圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn) 一 步的說明。
SIM網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖如圖1所示。在SIM中,島內(nèi)主機(jī)通過IP多播 方式進(jìn)行通信傳輸,島間主機(jī)則通過單播方式進(jìn)行通信傳輸。每臺(tái)待 接入系統(tǒng)的主機(jī)首先將加入到SIM的樹型結(jié)構(gòu)中,該結(jié)構(gòu)用于監(jiān)測(cè)和 維護(hù)加入的主機(jī);接著主機(jī)通過檢測(cè)加入到多播島,進(jìn)而完成整個(gè)接 入過程。SIM中的每個(gè)島只具備唯一的入口節(jié)點(diǎn),入口節(jié)點(diǎn)接收其他 島發(fā)送過來的數(shù)據(jù)包,再以多播的方式在島內(nèi)傳輸這些數(shù)據(jù)包。
如圖1所示,其中存在以下對(duì)象.-
(1) 多播島
多播島是由具有IP多播功能的局部網(wǎng)絡(luò)自組織成島狀結(jié)構(gòu),島內(nèi) 采用樹狀拓?fù)浣Y(jié)構(gòu)。同時(shí),島作為宏觀上的節(jié)點(diǎn),與其他島之間又構(gòu) 成樹型結(jié)構(gòu),島與島之間采用單播方式傳輸流媒體數(shù)據(jù)包,島內(nèi)采用 IP多播方式傳輸流媒體數(shù)據(jù)包。
每個(gè)島有唯一的入口主機(jī),負(fù)責(zé)接收島外主機(jī)發(fā)送來的流媒體數(shù) 據(jù)包,并在島內(nèi)多播該數(shù)據(jù)包。
每個(gè)島內(nèi)的路由器都有兩個(gè)唯一的D類IP多播地址, 一個(gè)用于多 播控制消息,另一個(gè)用于多播流媒體數(shù)據(jù)包。根據(jù)IP地址的不同,島 內(nèi)主機(jī)可分別組成控制多播組和數(shù)據(jù)多播組。兩個(gè)D類IP地址由集合 點(diǎn)主機(jī)維護(hù)。
(2) 節(jié)點(diǎn)主機(jī)
節(jié)點(diǎn)主機(jī)是對(duì)己經(jīng)加入到樹型結(jié)構(gòu)中的各臺(tái)主機(jī)的別稱。根據(jù)主機(jī)所處的網(wǎng)絡(luò)環(huán)境不同,節(jié)點(diǎn)主機(jī)可分為公網(wǎng)節(jié)點(diǎn)主機(jī)和 受限節(jié)點(diǎn)主機(jī)。公網(wǎng)主機(jī)是指處于公網(wǎng)環(huán)境的節(jié)點(diǎn)主機(jī),受限主機(jī)是 指處于NAT或防火墻后面的節(jié)點(diǎn)主機(jī)。
(3) 入口節(jié)點(diǎn)主機(jī)
每個(gè)多播島內(nèi)將維護(hù)一臺(tái)特殊的節(jié)點(diǎn)主機(jī),用于接收島外經(jīng)單播 發(fā)送過來的流媒體數(shù)據(jù)包,并通過島內(nèi)的多播路由器對(duì)該數(shù)據(jù)包進(jìn)行 多播。該主機(jī)稱為入口節(jié)點(diǎn)主機(jī)。
(4) NAT穿透
SIM通過使用STUN協(xié)議,即基于UDP協(xié)議傳輸?shù)腘AT簡(jiǎn)單穿透 技術(shù)(Simple Traversal of UDP through NAT)來檢測(cè)主機(jī)是否位于 NAT或者防火墻的后面,并能夠檢測(cè)兩臺(tái)或多臺(tái)受限主機(jī)是否位于同 一NAT或防火墻的后面。
具體檢測(cè)方法如下
a) 加入節(jié)點(diǎn)主機(jī)發(fā)出綁定請(qǐng)求(Binding R叫uests)到STUN服務(wù)器;
b) 服務(wù)器產(chǎn)生綁定反饋(BindingResponse),并把得到的映射地 址和端口返回到客戶端;
c) 客戶端通過比較映射后的地址是否和本機(jī)地址相同來判斷本 機(jī)是否處于公網(wǎng),若相同則說明該主機(jī)是公網(wǎng)主機(jī),若不同則說明該 主機(jī)為受限主機(jī)。
(5) 父節(jié)點(diǎn)主機(jī)
新主機(jī)加入到樹型結(jié)構(gòu)后將經(jīng)過數(shù)次迭代過程最終選擇一臺(tái)節(jié) 點(diǎn)主機(jī)作為流媒體數(shù)據(jù)的來源點(diǎn),由于迭代過程將造成新主機(jī)與該節(jié) 點(diǎn)主機(jī)間的關(guān)聯(lián)呈現(xiàn)為父子關(guān)系,因此該主機(jī)稱為父節(jié)點(diǎn)主機(jī)。(6) 集合點(diǎn)主機(jī)
一種特殊的節(jié)點(diǎn),用于維護(hù)根節(jié)點(diǎn)和加入到樹中的節(jié)點(diǎn)列表的地 址,其最大容量值,可以依據(jù)需要被設(shè)置。主要功能是響應(yīng)發(fā)起獲取 開始節(jié)點(diǎn)請(qǐng)求的節(jié)點(diǎn)。
(7) 授權(quán)服務(wù)器
一臺(tái)用于分發(fā)授權(quán)密鑰的服務(wù)器,維護(hù)一張所有不同節(jié)目頻段流 數(shù)據(jù)包與其授權(quán)密鑰的映射列表,并具有認(rèn)證證書識(shí)別功能。節(jié)點(diǎn)主 機(jī)可通過向其發(fā)送授權(quán)請(qǐng)求來獲取可解密流數(shù)據(jù)包的授權(quán)密鑰。
(8) 認(rèn)證服務(wù)器
一臺(tái)用于校驗(yàn)用戶身份的服務(wù)器,可用于分發(fā)認(rèn)證證書。待加入 系統(tǒng)的新節(jié)點(diǎn)主機(jī)都必須先通過此服務(wù)器進(jìn)行身份驗(yàn)證,以獲取認(rèn)證 證書等認(rèn)證信息。認(rèn)證服務(wù)器與授權(quán)服務(wù)器可部署在同一臺(tái)實(shí)體服務(wù) 器上,圖l所示的拓?fù)浣Y(jié)構(gòu)即是考慮將認(rèn)證與授權(quán)相結(jié)合部署在認(rèn)證 與授權(quán)服務(wù)器上。
(9) 多播組
一種支持IP多播的主機(jī)群。群中的每個(gè)流媒體會(huì)話都有兩個(gè)唯一 的D類IP多播地址。 一個(gè)用于多播控制消息,另一個(gè)用于多播流媒體 數(shù)據(jù)。根據(jù)IP地址,可分別稱為控制多播組和數(shù)據(jù)多播組。
C10)邊界節(jié)點(diǎn)主機(jī)
父節(jié)點(diǎn)不在島內(nèi)的節(jié)點(diǎn)主機(jī)叫做邊界節(jié)點(diǎn)主機(jī)。在SIM中,邊界 節(jié)點(diǎn)主機(jī)和入口節(jié)點(diǎn)主機(jī)均加入到控制組和數(shù)據(jù)組,而非邊界節(jié)點(diǎn)主 機(jī)只加入到數(shù)據(jù)組。圖2為樹型結(jié)構(gòu)邏輯視圖。如圖所示,樹型結(jié)構(gòu)中每個(gè)父節(jié)點(diǎn)均 可包含多個(gè)子節(jié)點(diǎn),但對(duì)于每個(gè)子節(jié)點(diǎn),其父節(jié)點(diǎn)數(shù)目唯一。
該結(jié)構(gòu)是建立在應(yīng)用層基礎(chǔ)上,由所有節(jié)點(diǎn)主機(jī)構(gòu)成的單一樹型 結(jié)構(gòu),用于監(jiān)測(cè)新接入的主機(jī),并維護(hù)各節(jié)點(diǎn)主機(jī)間的關(guān)聯(lián);該關(guān)聯(lián) 是指節(jié)點(diǎn)主機(jī)間維持的父子關(guān)系,比如父子結(jié)點(diǎn)關(guān)系、祖先子孫結(jié)點(diǎn) 關(guān)系。
采用樹型構(gòu)建機(jī)制的P2P網(wǎng)絡(luò)一般都具有分布式特性,可使系統(tǒng) 更易擴(kuò)展,并且構(gòu)建算法更為簡(jiǎn)便。
主機(jī)加入應(yīng)用層樹型結(jié)構(gòu)的過程如下
新主機(jī)加入樹型結(jié)構(gòu)的過程,可看作在樹型結(jié)構(gòu)中查找符合條件 的父節(jié)點(diǎn)主機(jī)的過程。
首先,新主機(jī)需要確定其是否為公網(wǎng)主機(jī)或受限主機(jī)。因此,新 主機(jī)與STUN服務(wù)器建立連接并獲取檢測(cè)結(jié)果。該過程如圖3所示,節(jié) 點(diǎn)主機(jī)首先向STUN服務(wù)器發(fā)送NAT檢測(cè)請(qǐng)求。然后,STUN服務(wù)器 將NAT路由器的公網(wǎng)IP地址以及NAT為允許傳入流量傳回內(nèi)網(wǎng)而開 通的端口封裝到NAT檢測(cè)反饋中,并發(fā)送給該節(jié)點(diǎn)主機(jī)。
同時(shí),新主機(jī)與媒體源節(jié)點(diǎn)建立連接,獲取流媒體數(shù)據(jù)。該連接 直到父節(jié)點(diǎn)被找到才得以終止。通過該連接能夠預(yù)先加入不同頻道的 媒體源服務(wù)器,減少加入過程的時(shí)間開銷。該機(jī)制適用于IPTV多頻 道瀏覽,由于節(jié)點(diǎn)可以預(yù)先加載很多頻道,從而能使轉(zhuǎn)換頻道的等待 時(shí)間最小化。
然后,該新主機(jī)與集合點(diǎn)主機(jī)建立連接,并隨機(jī)獲取系統(tǒng)中公網(wǎng) 主機(jī)的列表,過程如圖4所示,節(jié)點(diǎn)主機(jī)向集合點(diǎn)主機(jī)發(fā)送主機(jī)列表獲取請(qǐng)求。集合點(diǎn)主機(jī)收到該請(qǐng)求后,將隨機(jī)地從所有主機(jī)地址中選 擇k個(gè)主機(jī)并形成主機(jī)列表發(fā)送給該節(jié)點(diǎn)主機(jī)。
.圖6為新主機(jī)為受限主機(jī)時(shí)與每個(gè)出棧主機(jī)的交互過程視圖,獲
取該主機(jī)列表后,新主機(jī)逐個(gè)計(jì)算與列表中各個(gè)公網(wǎng)主機(jī)間的RTT 值,并根據(jù)該值按升序?qū)⑦@些主機(jī)地址存入堆桟Hp中。
接著,新主機(jī)將進(jìn)入以下迭代過程
(1) 主機(jī)從Hp中彈出k個(gè)具有最小RTT時(shí)間的主機(jī)地址,k是一個(gè) 系統(tǒng)參數(shù)。對(duì)于每一個(gè)出棧主機(jī),新主機(jī)將向該主機(jī)發(fā)送 NeighborQuery消息。
(2) 根據(jù)新主機(jī)的類型分兩種情況進(jìn)行
a) 若新主機(jī)是公網(wǎng)主機(jī),則接收到NeighborQuery消息的出棧主 機(jī)將返回其相鄰公網(wǎng)節(jié)點(diǎn)主機(jī)的地址,并通知其相鄰受限節(jié)點(diǎn) 主機(jī)與新主機(jī)建立連接。新主機(jī)能夠強(qiáng)行與這k個(gè)出棧主機(jī)的 所有相鄰節(jié)點(diǎn)主機(jī)進(jìn)行通信,并獲取到達(dá)這些主機(jī)的RTT值。 然后,新主機(jī)按照RTT升序排列所有獲取到的節(jié)點(diǎn)主機(jī)地址, 并存入Hp。該過程如圖5所示。
b) 若新主機(jī)是受限主機(jī),則接收到NdghborQuery消息的出棧主 機(jī)將返回其所有相鄰公網(wǎng)節(jié)點(diǎn)主機(jī)和受限鄰節(jié)點(diǎn)主機(jī)的IP地 址。新主機(jī)一方面獲取k個(gè)出棧主機(jī)的所有相鄰公網(wǎng)節(jié)點(diǎn)主機(jī) 地址,另一方面將與STUN服務(wù)器建立建接,并將之前獲取到 的k個(gè)出桟主機(jī)的所有相鄰受限節(jié)點(diǎn)主機(jī)地址發(fā)送到該服務(wù) 器,從而判斷這些受限節(jié)點(diǎn)主機(jī)是否與新主機(jī)處于同一NAT 或防火墻的后面;如果是的話,這些受限節(jié)點(diǎn)主機(jī)就能夠與新 主機(jī)進(jìn)行通信;進(jìn)而,k個(gè)出棧主機(jī)將再次通知它們的相鄰受限節(jié)點(diǎn)主機(jī),請(qǐng)求它們將各自的相鄰公網(wǎng)節(jié)點(diǎn)主機(jī)地址發(fā)送給 新主機(jī)。然后,新主機(jī)將根據(jù)所有獲取到的主機(jī)地址對(duì)這些主
機(jī)進(jìn)行連接,并獲取到達(dá)它們的RTT值。最后,新主機(jī)按照RTT 升序排列所有獲取到的節(jié)點(diǎn)主機(jī)地址,并存入Hp。
(3)以上工作完成后,新主機(jī)將從Hp中彈出k個(gè)具有最小RTT時(shí)間 的主機(jī)地址。
整個(gè)迭代將一直進(jìn)行直到找到最小RTT的增量要低于一個(gè)固定 的閾值,或迭代次數(shù)超過一個(gè)特定的值t才終止。
最后,新主機(jī)將從當(dāng)前m個(gè)最近的主機(jī)中選擇一臺(tái)目標(biāo)主機(jī)作為 父節(jié)點(diǎn),該目標(biāo)主機(jī)與其父節(jié)點(diǎn)之間擁有最高的前端帶寬,從而完成 整個(gè)加入過程。m值是一個(gè)可調(diào)節(jié)的系統(tǒng)參數(shù)。
主機(jī)加入應(yīng)用層樹型結(jié)構(gòu)時(shí)還需要注意以下幾種情況
(1) 考慮到一臺(tái)受限主機(jī)只能選擇公網(wǎng)主機(jī)或者和它處于同一個(gè) NAT或防火墻下的受限主機(jī)作為父節(jié)點(diǎn);若系統(tǒng)中的所有公網(wǎng)主機(jī)均 發(fā)生異常,則一臺(tái)新受限主機(jī)將無法獲得父節(jié)點(diǎn)主機(jī),即不能夠加入 樹型結(jié)構(gòu)。因此,為避免該現(xiàn)象,SIM將強(qiáng)行要求公網(wǎng)主機(jī)優(yōu)先選擇 受限主機(jī)作為其父節(jié)點(diǎn)。
(2) 公網(wǎng)主機(jī)與受限主機(jī)的連接只能由受限主機(jī)端發(fā)起。公網(wǎng)新 主機(jī)在加入期間需要保持其與受限主機(jī)間的連接,受限新主機(jī)在加入 期間也需要保持與公網(wǎng)主機(jī)間的連接。只有待成功加入樹型結(jié)構(gòu)后, 新主機(jī)才能丟棄這些連接。
(3) 新主機(jī)加入到樹型結(jié)構(gòu)后,若其父節(jié)點(diǎn)主機(jī)發(fā)生異?;騺G失 連接,則該主機(jī)需要重新査找新的父節(jié)點(diǎn)。查找新父親節(jié)點(diǎn)的過程類似于加入過程,新主機(jī)向其祖父節(jié)點(diǎn)發(fā)送NeighborQuery消息,并繼 而進(jìn)入以上迭代過程,最終查找出符合條件的新父節(jié)點(diǎn)。在査找新父 節(jié)點(diǎn)的過程中,節(jié)點(diǎn)會(huì)臨時(shí)從它的恢復(fù)節(jié)點(diǎn)中接收數(shù)據(jù)。
主機(jī)加入多播島的過程如下
一臺(tái)新主機(jī)加入到樹型結(jié)構(gòu)后,首先它將檢測(cè)當(dāng)前環(huán)境是否存在 多播島,檢測(cè)過程如下
(1) 如果島存在,該主機(jī)將會(huì)收到入口節(jié)點(diǎn)的KeepAlive消息。由 于入口節(jié)點(diǎn)主機(jī)會(huì)在島內(nèi)定期多播KeepAlive消息。進(jìn)而,主機(jī)檢測(cè) 它本身是否是邊界節(jié)點(diǎn);
(2) 新主機(jī)在數(shù)據(jù)組中多播Borderldentification消息,該消息包含
主機(jī)的信息。若該主機(jī)的父節(jié)點(diǎn)收到該消息,則該父節(jié)點(diǎn)將利用單播 反饋一個(gè)消息給新主機(jī)。如果新主機(jī)在一定時(shí)間里沒有收到反饋消 息,它就能斷定它的父節(jié)點(diǎn)不在同一個(gè)數(shù)據(jù)組里,即不在同一個(gè)島內(nèi), 則可確定自身是一個(gè)邊界節(jié)點(diǎn)。
(3)經(jīng)過以上判斷過程之后,根據(jù)結(jié)果新主機(jī)將做出以下操作
a) 如果是,它仍保留在控制組,并加入到數(shù)據(jù)組,同時(shí)停止接 收來自父節(jié)點(diǎn)的流數(shù)據(jù),它與父節(jié)點(diǎn)的連接只用于傳輸控制 消息;
b) 如果不是,則它就離開控制組并加入到數(shù)據(jù)組,并接收IP 多播的數(shù)據(jù)。如果主機(jī)后來變成一個(gè)入口節(jié)點(diǎn),那么它將恢 復(fù)連接并再次接收父節(jié)點(diǎn)發(fā)送的數(shù)據(jù)。
(4)如果主機(jī)沒有找到任何可加入的島,則它本身將形成一個(gè)島 (即控制組和數(shù)據(jù)組),并且成為島的入口節(jié)點(diǎn)主機(jī)。首先,每個(gè)主機(jī)將記錄它到媒體源節(jié)點(diǎn)主機(jī)的距離,該距離由它 的父節(jié)點(diǎn)到媒體源節(jié)點(diǎn)主機(jī)間的距離,以及它到父節(jié)點(diǎn)間的距離累加 而得;其中,各主機(jī)間距離均由兩點(diǎn)間的往返時(shí)間RTT值表示。
入口節(jié)點(diǎn)主機(jī)在控制組中定期多播KeepAlive消息,該消息包括
它到媒體源節(jié)點(diǎn)的距離。同時(shí),它在數(shù)據(jù)組中多播媒體流數(shù)據(jù)。入口
節(jié)點(diǎn)是從控制組中的邊界主機(jī)中選出的。
初始時(shí),島的入口節(jié)點(diǎn)主機(jī)是加入到該島的第一臺(tái)主機(jī)。而一臺(tái)
新邊界主機(jī)替代當(dāng)前入口節(jié)點(diǎn)主機(jī)的條件是
a) 通過KeepAlive消息檢測(cè)到當(dāng)前的入口節(jié)點(diǎn)主機(jī)離開或者失 效;
b) 存在一個(gè)非入口節(jié)點(diǎn)的邊界節(jié)點(diǎn)主機(jī),它到媒體源節(jié)點(diǎn)的距離 比當(dāng)前入口節(jié)點(diǎn)主機(jī)到源節(jié)點(diǎn)主機(jī)距離更短。
圖8為本發(fā)明的數(shù)據(jù)分發(fā)邏輯示例。在新主機(jī)加入島后,將開始
接收島內(nèi)的多播數(shù)據(jù),而島間的單播數(shù)據(jù)將由該島的入口節(jié)點(diǎn)予以fe
收。圖8中,不同的橢圓區(qū)域指出不同的島,節(jié)點(diǎn)l、節(jié)點(diǎn)2、節(jié)點(diǎn)3
和節(jié)點(diǎn)5同屬于一個(gè)島;節(jié)點(diǎn)4、節(jié)點(diǎn)7和節(jié)點(diǎn)11同屬于另一個(gè)島;節(jié)
點(diǎn)6、節(jié)點(diǎn)8、節(jié)點(diǎn)9和節(jié)點(diǎn)10同屬于最后一個(gè)島。同一島中的節(jié)點(diǎn)不
一定總是成群的,如節(jié)點(diǎn)8與節(jié)點(diǎn)6、 9、 IO不是成群的。圖中的實(shí)線
邊僅表示邏輯關(guān)聯(lián),而不代表數(shù)據(jù)傳輸。數(shù)據(jù)通過不同的島(發(fā)送至
圖4中虛線所示的范圍)單播發(fā)送,在島內(nèi)則是被多播發(fā)送。
在圖8的示例中,假定節(jié)點(diǎn)l想要發(fā)送數(shù)據(jù)包到樹中所有節(jié)點(diǎn),首 先,節(jié)點(diǎn)1通過IP多播發(fā)送數(shù)據(jù)包到同一島中的節(jié)點(diǎn)2、 3、 5,節(jié)點(diǎn)2、 3是對(duì)外節(jié)點(diǎn),對(duì)外節(jié)點(diǎn)通過單播發(fā)送將數(shù)據(jù)包到送到不同的島,節(jié)點(diǎn)4從節(jié)點(diǎn)2接收到數(shù)據(jù)包后,該數(shù)據(jù)包通過IP多播發(fā)送到節(jié)點(diǎn)7、 11; 同樣,節(jié)點(diǎn)6從節(jié)點(diǎn)3接收到數(shù)據(jù)包后,該數(shù)據(jù)包通過IP多播發(fā)送到節(jié)
點(diǎn)8、 9、 10。節(jié)點(diǎn)4、 6稱作入口節(jié)點(diǎn),是從其它島接收數(shù)據(jù)包的節(jié)點(diǎn)。
在SIM中多播島入口節(jié)點(diǎn)選擇與取消機(jī)制描述如下。
入口節(jié)點(diǎn)選擇是依據(jù)該節(jié)點(diǎn)在島內(nèi)是否擁有最小深度,或者到樹 根距離是否最小。如果有多個(gè)節(jié)點(diǎn)具有同樣的最小深度,則SIM將從 中隨機(jī)選出 一個(gè)作為入口節(jié)點(diǎn)。
如圖9所示的死鎖情形,若SIM僅從島內(nèi)隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為 入口節(jié)點(diǎn),而不考慮其是否擁有最小深度,或是否離樹根節(jié)點(diǎn)最近, 則將會(huì)導(dǎo)致死鎖。
由于擁有最小深度的節(jié)點(diǎn)是其所在島內(nèi)距離源節(jié)點(diǎn)最近的節(jié)點(diǎn), 該節(jié)點(diǎn)的任意一個(gè)祖父節(jié)點(diǎn)都不可能位于島內(nèi),因此就能夠避免以上 死鎖情形。
不再接收數(shù)據(jù)包時(shí),入口節(jié)點(diǎn)則被取消。入口節(jié)點(diǎn)由同一個(gè)島中 的潛在入口節(jié)點(diǎn)所監(jiān)控,當(dāng)入口節(jié)點(diǎn)在一段時(shí)間內(nèi)不再接收到消息 時(shí),監(jiān)控的節(jié)點(diǎn)認(rèn)為入口節(jié)點(diǎn)死亡,并通知該入口節(jié)點(diǎn)中止接收島外 數(shù)據(jù)包。
本發(fā)明中采用的糾錯(cuò)機(jī)制如下描述。 恢復(fù)鄰節(jié)點(diǎn)
在樹型結(jié)構(gòu)中査找新的父節(jié)點(diǎn)的過程中,主機(jī)將臨時(shí)恢復(fù)原則,
基于以下規(guī)則
a) 根節(jié)點(diǎn)沒有恢復(fù)節(jié)點(diǎn);
b) 恢復(fù)節(jié)點(diǎn)不在子樹當(dāng)中;c) 除了根節(jié)點(diǎn),其它恢復(fù)節(jié)點(diǎn)不在根路徑當(dāng)中;
d) 恢復(fù)節(jié)點(diǎn)不在同一島內(nèi)。
使用這些規(guī)則,有可能找到一個(gè)無關(guān)聯(lián)的恢復(fù)節(jié)點(diǎn)。恢復(fù)節(jié)點(diǎn)有 以下用法
a) 當(dāng)探測(cè)到丟包時(shí),節(jié)點(diǎn)可要求其恢復(fù)節(jié)點(diǎn)重傳丟失的數(shù)據(jù)包;
b) 當(dāng)節(jié)點(diǎn)的父節(jié)點(diǎn)離開時(shí),該節(jié)點(diǎn)臨時(shí)從它的恢復(fù)節(jié)點(diǎn)中接收 數(shù)據(jù),直到它查找到新的父節(jié)點(diǎn)。
本發(fā)明采用的授權(quán)機(jī)制描述如下。
流數(shù)據(jù)分發(fā)之前首先要經(jīng)過打包加密,然后再由媒體源分發(fā)到網(wǎng) 絡(luò)中的各個(gè)節(jié)點(diǎn)。當(dāng)終端節(jié)點(diǎn)用戶嘗試播放經(jīng)過打包加密的內(nèi)容時(shí), 播放器或終端設(shè)備會(huì)自動(dòng)獲取一個(gè)許可證,該許可證包含解密內(nèi)容所 需的密鑰。
密鑰分為兩部分,即公鑰與私鑰,公鑰用于加密流數(shù)據(jù)內(nèi)容,私 鑰則用于解密該內(nèi)容。媒體源加密流數(shù)據(jù)時(shí),將公鑰標(biāo)識(shí)和授權(quán)服務(wù) 器的地址封裝在加密內(nèi)容的頭部,并使用一對(duì)簽名密鑰對(duì)該頭部信息 進(jìn)行簽名,防止頭部信息被非法修改。當(dāng)用戶節(jié)點(diǎn)獲得該加密數(shù)據(jù)包 后,執(zhí)行播放時(shí)該節(jié)點(diǎn)的播放器或設(shè)備模塊將被觸發(fā)并發(fā)送授權(quán)請(qǐng)求 至授權(quán)服務(wù)器,索取用于解密的私鑰。
如圖10所示為授權(quán)過程,節(jié)點(diǎn)主機(jī)向授權(quán)服務(wù)器發(fā)送授權(quán)請(qǐng)求, 該請(qǐng)求包含了加密數(shù)據(jù)頭部的公鑰標(biāo)識(shí);授權(quán)服務(wù)器接收該請(qǐng)求后, 將與該公鑰相匹配的私鑰及授權(quán)結(jié)果信息封裝成授權(quán)反饋發(fā)送給該 節(jié)點(diǎn)主機(jī);若該公鑰未存在相對(duì)應(yīng)的私鑰,則表示該節(jié)點(diǎn)數(shù)據(jù)來源非 法,因此將僅在授權(quán)反饋中包含非法授權(quán)提示信息。授權(quán)服務(wù)器將在時(shí)間周期t內(nèi)產(chǎn)生一對(duì)公鑰和私鑰,t為可調(diào)節(jié)的 系統(tǒng)參數(shù);周期時(shí)間過后,已有的密鑰對(duì)將存儲(chǔ)到密鑰列表中。
加密內(nèi)容媒體源加密流數(shù)據(jù)時(shí),首先與授權(quán)服務(wù)器進(jìn)行通信,獲 取當(dāng)前所產(chǎn)生的密鑰對(duì)中的公鑰部分,然后將該公鑰與授權(quán)服務(wù)器地 址一并加入到加密內(nèi)容的頭部。
本發(fā)明采用的用戶認(rèn)證機(jī)制描述如下。
新節(jié)點(diǎn)主機(jī)在加入系統(tǒng)之前(即加入樹型結(jié)構(gòu)之前),必須與認(rèn) 證服務(wù)器建立連接進(jìn)行身份驗(yàn)證。認(rèn)證服務(wù)與授權(quán)服務(wù)可部署在同一 臺(tái)服務(wù)器主機(jī)上。
如圖ll所示為認(rèn)證過程,節(jié)點(diǎn)主機(jī)首先向認(rèn)證服務(wù)器發(fā)送認(rèn)證請(qǐng) 求,該請(qǐng)求包含用戶終端設(shè)備標(biāo)識(shí)信息。然后,認(rèn)證服務(wù)器通過校驗(yàn) 該請(qǐng)求包含的設(shè)備標(biāo)識(shí)信息是否為已注冊(cè)狀態(tài),并返回給該節(jié)點(diǎn)主機(jī) 一個(gè)認(rèn)證反饋,該反饋包含校驗(yàn)結(jié)果。若該節(jié)點(diǎn)己注冊(cè),則認(rèn)證服務(wù) 器將允許其訪問集合點(diǎn)服務(wù)器,并在認(rèn)證反饋中包含校驗(yàn)結(jié)果、集合 點(diǎn)主機(jī)的IP地址和端口;若該節(jié)點(diǎn)未通過驗(yàn)證,則認(rèn)證反饋只包含校 驗(yàn)結(jié)果。
權(quán)利要求
1、一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸?shù)南到y(tǒng),其特征在于組成部分包括SIM服務(wù)器、認(rèn)證與授權(quán)服務(wù)器、客戶端主機(jī)、STUN服務(wù)器以及IP多播路由器;該系統(tǒng)采用有利于流媒體應(yīng)用層多播的局部IP多播方式,并基于樹型結(jié)構(gòu)的可擴(kuò)展分布式系統(tǒng),其中島內(nèi)主機(jī)通過IP多播方式進(jìn)行通信傳輸,島間主機(jī)則通過單播方式進(jìn)行通信傳輸,又稱為可擴(kuò)展島式多播系統(tǒng);所述SIM服務(wù)器,即媒體服務(wù)器,在SIM中作為樹型結(jié)構(gòu)中的媒體源節(jié)點(diǎn)主機(jī),用于流媒體數(shù)據(jù)存儲(chǔ)與分發(fā);所述客戶端主機(jī),在SIM中作為樹型結(jié)構(gòu)的節(jié)點(diǎn)主機(jī),用于接收、暫存或轉(zhuǎn)發(fā)流媒體數(shù)據(jù);所述STUN服務(wù)器,提供主機(jī)網(wǎng)絡(luò)環(huán)境的判別服務(wù),用于判斷節(jié)點(diǎn)主機(jī)是處于公網(wǎng)環(huán)境,還是處于NAT或防火墻的后面;所述IP多播功能路由器,用于在島內(nèi)多播流媒體數(shù)據(jù),每個(gè)多播島將維護(hù)一個(gè)IP多播功能路由器。
2、 根據(jù)權(quán)利要求1所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng),其特征在于存在以下對(duì)象多播島,由具有IP多播功能的局部網(wǎng)絡(luò)自組織成島狀結(jié)構(gòu);節(jié)點(diǎn)主機(jī),對(duì)已經(jīng)加入到樹型結(jié)構(gòu)中的各臺(tái)主機(jī)的別稱;入口節(jié)點(diǎn)主機(jī),每個(gè)多播島內(nèi)將維護(hù)一臺(tái)特殊的節(jié)點(diǎn)主機(jī),用于接收島外經(jīng)單播發(fā)送過來的流媒體數(shù)據(jù)包,并通過島內(nèi)的多播路由器對(duì)該數(shù)據(jù)包進(jìn)行多播;NAT穿透,SIM通過使用STUN協(xié)議,即基于UDP協(xié)議傳輸?shù)腘AT 簡(jiǎn)單穿透技術(shù)來檢測(cè)主機(jī)是否位于NAT或者防火墻的后面,并能夠檢 測(cè)兩臺(tái)或多臺(tái)受限主機(jī)是否位于同一NAT或防火墻的后面;父節(jié)點(diǎn)主機(jī),新主機(jī)加入到樹型結(jié)構(gòu)后將經(jīng)過數(shù)次迭代過程最終 選擇一臺(tái)節(jié)點(diǎn)主機(jī)作為流媒體數(shù)據(jù)的來源點(diǎn);集合點(diǎn)主機(jī), 一種特殊的節(jié)點(diǎn),用于維護(hù)根節(jié)點(diǎn)和加入到樹中的 節(jié)點(diǎn)列表的地址,主要功能是響應(yīng)發(fā)起獲取開始節(jié)點(diǎn)請(qǐng)求的節(jié)點(diǎn);授權(quán)服務(wù)器, 一臺(tái)用于分發(fā)授權(quán)密鑰的服務(wù)器,維護(hù)一張所有不 同節(jié)目頻段流數(shù)據(jù)包與其授權(quán)密鑰的映射列表,并具有認(rèn)證證書識(shí)別 功能;節(jié)點(diǎn)主機(jī)可通過向其發(fā)送授權(quán)請(qǐng)求來獲取可解密流數(shù)據(jù)包的授 權(quán)密鑰;認(rèn)證服務(wù)器, 一臺(tái)用于校驗(yàn)用戶身份的服務(wù)器,可用于分發(fā)認(rèn)證 證書;待加入系統(tǒng)的新節(jié)點(diǎn)主機(jī)都必須先通過此服務(wù)器進(jìn)行身份驗(yàn) 證,以獲取認(rèn)證證書等認(rèn)證信息;多播組, 一種支持IP多播的主機(jī)群;邊界節(jié)點(diǎn)主機(jī),處于某多播島內(nèi)而父節(jié)點(diǎn)不在該島內(nèi)的節(jié)點(diǎn)主機(jī) 叫做邊界節(jié)點(diǎn)主機(jī);在SIM中,邊界節(jié)點(diǎn)主機(jī)和入口節(jié)點(diǎn)主機(jī)均加入 到控制組和數(shù)據(jù)組,而非邊界節(jié)點(diǎn)主機(jī)只加入到數(shù)據(jù)組。
3、 根據(jù)權(quán)利要求2所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島 式多播傳輸系統(tǒng),其特征在于所述的多播島,每個(gè)島內(nèi)的路由器都有 兩個(gè)唯一的D類IP多播地址, 一個(gè)用于多播控制消息,另一個(gè)用于 多播流媒體數(shù)據(jù)包;根據(jù)IP地址的不同,島內(nèi)主機(jī)可分別組成控制多播組和數(shù)據(jù)多播組,兩個(gè)D類IP地址由集合點(diǎn)主機(jī)維護(hù)。
4、 根據(jù)權(quán)利要求1或2所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng),其特征在于該系統(tǒng)采用應(yīng)用層樹型結(jié)構(gòu),該結(jié)構(gòu)建立在應(yīng)用層基礎(chǔ)上,由所有節(jié)點(diǎn)主機(jī)構(gòu)成的單一樹型結(jié)構(gòu),用于監(jiān)測(cè)新接入的主機(jī),并維護(hù)各節(jié)點(diǎn)主機(jī)間的關(guān)聯(lián);該關(guān)聯(lián)是指節(jié)點(diǎn)主機(jī)間 維持的父子關(guān)系;主機(jī)加入應(yīng)用層樹型結(jié)構(gòu)的過程如下,(1) 新主機(jī)需要確定其是否為公網(wǎng)主機(jī)或受限主機(jī);(2) 新主機(jī)向集合點(diǎn)主機(jī)發(fā)送主機(jī)列表獲取請(qǐng)求,并隨機(jī)獲取系 統(tǒng)中公網(wǎng)主機(jī)的列表;(3) 獲取該主機(jī)列表后,新主機(jī)逐個(gè)計(jì)算與列表中各個(gè)公網(wǎng)主機(jī) 間的RTT值,并根據(jù)該值按升序?qū)⑦@些主機(jī)地址存入堆棧Hp中;(4) 新主機(jī)將進(jìn)入迭代過程;(5) 新主機(jī)將從當(dāng)前m個(gè)最近的主機(jī)中選擇一臺(tái)目標(biāo)主機(jī)作為父 節(jié)點(diǎn);在主機(jī)加入應(yīng)用層樹型結(jié)構(gòu)的過程,其中新主機(jī)的迭代過程如下,(1) 主機(jī)從Hp中彈出k個(gè)具有最小RTT時(shí)間的主機(jī)地址,k是一個(gè) 系統(tǒng)參數(shù),對(duì)于每一個(gè)出棧主機(jī),新主機(jī)將向該主機(jī)發(fā)送 NeighborQuery消息;(2) 根據(jù)新主機(jī)的類型分兩種情況進(jìn)行;(3) 以上工作完成后,新主機(jī)將從Hp中彈出k個(gè)具有最小RTT時(shí)間 的主機(jī)地址;整個(gè)迭代將一直進(jìn)行直到找到最小RTT的增量要低于一個(gè)固定 的閾值,或迭代次數(shù)超過一個(gè)特定的值t才終止;新主機(jī)的迭代過程,根據(jù)新主機(jī)的類型分兩種情況進(jìn)行,其中, a)若新主機(jī)是公網(wǎng)主機(jī),則接收到NeighborQuery消息的出棧主 機(jī)將返回其相鄰公網(wǎng)節(jié)點(diǎn)主機(jī)的地址,并通知其相鄰受限節(jié)點(diǎn) 主機(jī)與新主機(jī)建立連接;新主機(jī)能夠強(qiáng)行與這k個(gè)出棧主機(jī)的所有相鄰節(jié)點(diǎn)主機(jī)進(jìn)行通信,并獲取到達(dá)這些主機(jī)的RTT值; 然后,新主機(jī)按照RTT升序排列所有獲取到的節(jié)點(diǎn)主機(jī)地址, 并存入Hp;b)若新主機(jī)是受限主機(jī),則接收到NeighborQuery消息的出棧主 機(jī)將返回其所有相鄰公網(wǎng)節(jié)點(diǎn)主機(jī)和受限鄰節(jié)點(diǎn)主機(jī)的IP地 址;新主機(jī)一方面獲取k個(gè)出棧主機(jī)的所有相鄰公網(wǎng)節(jié)點(diǎn)主機(jī) 地址,另一方面將與STUN服務(wù)器建立建接,并將之前獲取到 的k個(gè)出棧主機(jī)的所有相鄰受限節(jié)點(diǎn)主機(jī)地址發(fā)送到該服務(wù) 器,從而判斷這些受限節(jié)點(diǎn)主機(jī)是否與新主機(jī)處于同一NAT 或防火墻的后面;如果是的話,這些受限節(jié)點(diǎn)主機(jī)就能夠與新 主機(jī)進(jìn)行通信;進(jìn)而,k個(gè)出棧主機(jī)將再次通知它們的相鄰受 限節(jié)點(diǎn)主機(jī),請(qǐng)求它們將各自的相鄰公網(wǎng)節(jié)點(diǎn)主機(jī)地址發(fā)送給 新主機(jī);然后,新主機(jī)將根據(jù)所有獲取到的主機(jī)地址對(duì)這些主 機(jī)進(jìn)行連接,并獲取到達(dá)它們的RTT值;最后,新主機(jī)按照RTT 升序排列所有獲取到的節(jié)點(diǎn)主機(jī)地址,并存入Hp;主機(jī)加入應(yīng)用層樹型結(jié)構(gòu)的過程,需要注意以下幾種情況(1) 考慮到一臺(tái)受限主機(jī)只能選擇公網(wǎng)主機(jī)或者和它處于同一個(gè) NAT或防火墻下的受限主機(jī)作為父節(jié)點(diǎn);若系統(tǒng)中的所有公網(wǎng)主機(jī)均 發(fā)生異常,則一臺(tái)新受限主機(jī)將無法獲得父節(jié)點(diǎn)主機(jī),即不能夠加入 樹型結(jié)構(gòu);SIM將強(qiáng)行要求公網(wǎng)主機(jī)優(yōu)先選擇受限主機(jī)作為其父節(jié) 點(diǎn);(2) 公網(wǎng)主機(jī)與受限主機(jī)的連接只能由受限主機(jī)端發(fā)起,公網(wǎng)新 主機(jī)在加入期間需要保持其與受限主機(jī)間的連接,受限新主機(jī)在加入 期間也需要保持與公網(wǎng)主機(jī)間的連接;只有待成功加入樹型結(jié)構(gòu)后, 新主機(jī)才能丟棄這些連接;(3)新主機(jī)加入到樹型結(jié)構(gòu)后,若其父節(jié)點(diǎn)主機(jī)發(fā)生異常或丟失 連接,則該主機(jī)需要重新査找新的父節(jié)點(diǎn);査找新父親節(jié)點(diǎn)的過程類 似于加入過程,新主機(jī)向其祖父節(jié)點(diǎn)發(fā)送NeighborQuery消息,并繼 而進(jìn)入以上迭代過程,最終查找出符合條件的新父節(jié)點(diǎn);在査找新父 節(jié)點(diǎn)的過程中,節(jié)點(diǎn)會(huì)臨時(shí)從它的恢復(fù)節(jié)點(diǎn)中接收數(shù)據(jù)。
5、根據(jù)權(quán)利要求1或2所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng),其特征在于主機(jī)加入多播島的過程為, 一臺(tái)新主機(jī) 加入到樹型結(jié)構(gòu)后,首先它將檢測(cè)當(dāng)前環(huán)境是否存在多播島,每個(gè)主 機(jī)將記錄它到媒體源節(jié)點(diǎn)主機(jī)的距離,該距離由它的父節(jié)點(diǎn)到媒體源 節(jié)點(diǎn)主機(jī)間的距離,以及它到父節(jié)點(diǎn)間的距離累加而得;其中,各主 機(jī)間距離均由兩點(diǎn)間的往返時(shí)間RTT值表示; 主機(jī)加入多播島的檢測(cè)過程如下(1) 如果島存在,該主機(jī)將會(huì)收到入口節(jié)點(diǎn)的KeepAlive消息,由 于入口節(jié)點(diǎn)主機(jī)會(huì)在島內(nèi)定期多播KeepAlive消息,進(jìn)而,主機(jī)檢測(cè)它本身是否是邊界節(jié)點(diǎn);(2) 新主機(jī)在數(shù)據(jù)組中多播Borderldentification消息,該消息包含主機(jī)的信息;若該主機(jī)的父節(jié)點(diǎn)收到該消息,則該父節(jié)點(diǎn)將利用單播 反饋一個(gè)消息給新主機(jī);如果新主機(jī)在一定時(shí)間里沒有收到反饋消 息,它就能斷定它的父節(jié)點(diǎn)不在同一個(gè)數(shù)據(jù)組里,即不在同一個(gè)島內(nèi), 則可確定自身是一個(gè)邊界節(jié)點(diǎn);(3) 經(jīng)過以上判斷過程之后,根據(jù)結(jié)果新主機(jī)將做出相應(yīng)操作;(4) 如果主機(jī)沒有找到任何可加入的島,則它本身將形成一個(gè)島,即控制組和數(shù)據(jù)組,并且成為島的入口節(jié)點(diǎn)主機(jī); 判斷過程新主機(jī)做出的操作如下a)如果是,它仍保留在控制組,并加入到數(shù)據(jù)組,同時(shí)停止接收來自父節(jié)點(diǎn)的流數(shù)據(jù),它與父節(jié)點(diǎn)的連接只用于傳輸控制消息;b)如果不是,則它就離開控制組并加入到數(shù)據(jù)組,并接收IP多播的數(shù)據(jù);如果主機(jī)后來變成一個(gè)入口節(jié)點(diǎn),那么它將恢復(fù)連接并再次接收父節(jié)點(diǎn)發(fā)送的數(shù)據(jù); 在主機(jī)加入多播島的過程中, 一臺(tái)新邊界主機(jī)替代當(dāng)前入口節(jié)點(diǎn)主機(jī)的條件是,a) 通過KeepAlive消息檢測(cè)到當(dāng)前的入口節(jié)點(diǎn)主機(jī)離開或者失 效;b) 存在一個(gè)非入口節(jié)點(diǎn)的邊界節(jié)點(diǎn)主機(jī),它到媒體源節(jié)點(diǎn)的距離比當(dāng)前入口節(jié)點(diǎn)主機(jī)到源節(jié)點(diǎn)主機(jī)距離更短。
6、 根據(jù)權(quán)利要求1,2所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng),其特征在于其中數(shù)據(jù)分發(fā)機(jī)制為在新主機(jī)加入島 后,將開始接收島內(nèi)的多播數(shù)據(jù),而島間的單播數(shù)據(jù)將由該島的入口 節(jié)點(diǎn)予以接收;數(shù)據(jù)通過不同的島單播發(fā)送,在島內(nèi)則是被多播發(fā)送。
7、 根據(jù)權(quán)利要求項(xiàng)1所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島 式多播傳輸系統(tǒng),其特征在于,其中多播島入口節(jié)點(diǎn)選擇與取消機(jī)制 描述如下入口節(jié)點(diǎn)選擇是依據(jù)該節(jié)點(diǎn)在島內(nèi)是否擁有最小深度,或者到樹 根距離是否最?。蝗绻卸鄠€(gè)節(jié)點(diǎn)具有同樣的最小深度,貝USIM將從 中隨機(jī)選出 一個(gè)作為入口節(jié)點(diǎn);不再接收數(shù)據(jù)包時(shí),入口節(jié)點(diǎn)則被取消;入口節(jié)點(diǎn)由同一個(gè)島中 的潛在入口節(jié)點(diǎn)所監(jiān)控,當(dāng)入口節(jié)點(diǎn)在一段時(shí)間內(nèi)不再接收到消息時(shí),監(jiān)控的節(jié)點(diǎn)認(rèn)為入口節(jié)點(diǎn)死亡,并通知該入口節(jié)點(diǎn)中止接收島外 數(shù)據(jù)包。
8、 根據(jù)權(quán)利要求項(xiàng)1所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島 式多播傳輸系統(tǒng),其特征在于其中使用的糾錯(cuò)機(jī)制為,采用恢復(fù)鄰節(jié) 點(diǎn)的機(jī)制;在樹型結(jié)構(gòu)中査找新的父節(jié)點(diǎn)的過程中,主機(jī)將臨時(shí)恢復(fù)原則, 基于以下規(guī)則-a) 根節(jié)點(diǎn)沒有恢復(fù)節(jié)點(diǎn);b) 恢復(fù)節(jié)點(diǎn)不在子樹當(dāng)中;c) 除了根節(jié)點(diǎn),其它恢復(fù)節(jié)點(diǎn)不在根路徑當(dāng)中;d) 恢復(fù)節(jié)點(diǎn)不在同一島內(nèi);使用臨時(shí)恢復(fù)規(guī)則,有可能找到一個(gè)無關(guān)聯(lián)的恢復(fù)節(jié)點(diǎn),恢復(fù)節(jié) 點(diǎn)有以下用法a) 當(dāng)探測(cè)到丟包時(shí),節(jié)點(diǎn)可要求其恢復(fù)節(jié)點(diǎn)重傳丟失的數(shù)據(jù)包;b) 當(dāng)節(jié)點(diǎn)的父節(jié)點(diǎn)離開時(shí),該節(jié)點(diǎn)臨時(shí)從它的恢復(fù)節(jié)點(diǎn)中接收數(shù) 據(jù),直到它査找到新的父節(jié)點(diǎn)。
9、 根據(jù)權(quán)利要求項(xiàng)1所述的SIM,其中使用的授權(quán)機(jī)制如下, 節(jié)點(diǎn)主機(jī)向授權(quán)服務(wù)器發(fā)送授權(quán)請(qǐng)求,該請(qǐng)求包含了加密數(shù)據(jù)頭部的公鑰標(biāo)識(shí);授權(quán)服務(wù)器接收該請(qǐng)求后,將與該公鑰相匹配的私鑰 及授權(quán)結(jié)果信息封裝成授權(quán)反饋發(fā)送給該節(jié)點(diǎn)主機(jī);若該公鑰未存在 相對(duì)應(yīng)的私鑰,則表示該節(jié)點(diǎn)數(shù)據(jù)來源非法,因此將僅在授權(quán)反饋中 包含非法授權(quán)提示信息;其中密鑰分為兩部分,即公鑰與私鑰,公鑰 用于加密流數(shù)據(jù)內(nèi)容,私鑰則用于解密該內(nèi)容;媒體源加密流數(shù)據(jù)時(shí), 將公鑰標(biāo)識(shí)和授權(quán)服務(wù)器的地址封裝在加密內(nèi)容的頭部,并使用一對(duì)簽名密鑰對(duì)該頭部信息進(jìn)行簽名,防止頭部信息被非法修改;當(dāng)用戶 節(jié)點(diǎn)獲得該加密數(shù)據(jù)包后,執(zhí)行播放時(shí)該節(jié)點(diǎn)的播放器或設(shè)備模塊將 被觸發(fā)并發(fā)送授權(quán)請(qǐng)求至授權(quán)服務(wù)器,索取用于解密的私鑰;授權(quán)服 務(wù)器將在時(shí)間周期t內(nèi)產(chǎn)生一對(duì)公鑰和私鑰,t為可調(diào)節(jié)的系統(tǒng)參數(shù); 周期時(shí)間過后,已有的密鑰對(duì)將存儲(chǔ)到密鑰列表中。
10、根據(jù)權(quán)利要求項(xiàng)1所述的一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島 式多播傳輸系統(tǒng),其特征在于其中使用的用戶認(rèn)證機(jī)制描述如下節(jié)點(diǎn)主機(jī)首先向認(rèn)證服務(wù)器發(fā)送認(rèn)證請(qǐng)求,該請(qǐng)求包含用戶終端 設(shè)備標(biāo)識(shí)信息;然后,認(rèn)證服務(wù)器通過校驗(yàn)該請(qǐng)求包含的設(shè)備標(biāo)識(shí)信 息是否為已注冊(cè)狀態(tài),并返回給該節(jié)點(diǎn)主機(jī)一個(gè)認(rèn)證反饋,該反饋包 含校驗(yàn)結(jié)果;若該節(jié)點(diǎn)已注冊(cè),則認(rèn)證服務(wù)器將允許其訪問集合點(diǎn)服 務(wù)器,并在認(rèn)證反饋中包含校驗(yàn)結(jié)果、集合點(diǎn)主機(jī)的IP地址和端口; 若該節(jié)點(diǎn)未通過驗(yàn)證,則認(rèn)證反饋只包含校驗(yàn)結(jié)果。
全文摘要
本發(fā)明提供了一種適于IPTV流媒體業(yè)務(wù)可擴(kuò)展島式多播傳輸系統(tǒng)(Scalable Island Multicast System,簡(jiǎn)稱SIM),其組成部分包括SIM服務(wù)器、認(rèn)證與授權(quán)服務(wù)器、客戶端主機(jī)、STUN服務(wù)器以及IP多播路由器。該系統(tǒng)采用的樹型結(jié)構(gòu)具有較低的端到端的延遲,并更易于維護(hù)。本發(fā)明采用有利于流媒體應(yīng)用層多播的局部IP多播方式,并融合了應(yīng)用層多播協(xié)議和對(duì)等網(wǎng)絡(luò)技術(shù),具有高效能、高魯棒性、高實(shí)用性、可部署性和可維護(hù)性,支持IP網(wǎng)絡(luò)上的實(shí)時(shí)電視和互動(dòng)電影。同時(shí),提供了簡(jiǎn)單的數(shù)據(jù)分發(fā)傳輸方法,且易于實(shí)現(xiàn)。
文檔編號(hào)H04L29/08GK101436947SQ200810220080
公開日2009年5月20日 申請(qǐng)日期2008年12月17日 優(yōu)先權(quán)日2008年12月17日
發(fā)明者寧 劉, 卓 史, 夢(mèng) 葉, 羅笑南, 鄭勤梁, 星 金, 陳雙幸, 黃亮聰 申請(qǐng)人:中山大學(xué);香港科技大學(xué)