專利名稱:一種組播終端可靠離開(kāi)組播組的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)電視(IPTV)技術(shù),尤其涉及一種組播終端可靠離開(kāi) 組播組的方法和系統(tǒng)。
背景技術(shù):
組播,也稱多播(Multicast),是在發(fā)送者和每一接收者之間實(shí)現(xiàn)點(diǎn) 對(duì)多點(diǎn)網(wǎng)絡(luò)連接。如果一個(gè)發(fā)送者同時(shí)給多個(gè)接收者傳輸相同的數(shù)據(jù),在 經(jīng)過(guò)路由器時(shí)只需復(fù)制一份的相同數(shù)據(jù)包,這樣它提高了數(shù)據(jù)傳送效率。 減少了骨干網(wǎng)絡(luò)出現(xiàn)擁塞的可能性。網(wǎng)絡(luò)電視(IPTV)的最基本業(yè)務(wù)是直播,而直播目前大都采用組播的 方式以減少對(duì)骨干網(wǎng)絡(luò)的壓力。有的運(yùn)營(yíng)商會(huì)給IPTV組播終端用戶設(shè)置記 憶頻道,當(dāng)用戶再次開(kāi)機(jī)時(shí)會(huì)進(jìn)入到記憶頻道,這點(diǎn)和模擬電視一樣。組播終端播放組播節(jié)目時(shí)要發(fā)送加入組播組的報(bào)文給組播終端所在的 子網(wǎng)內(nèi)的組播路由器。當(dāng)組播終端停止播放組播節(jié)目時(shí),除了只支持IGMP VI的組播終端外,支持IGMP V2及以上版本的組播終端都會(huì)發(fā)送離開(kāi)組播 組的報(bào)文到組播路由器。組播路由器會(huì)定時(shí)發(fā)送IGMP査詢報(bào)文,組播終端 收到查詢報(bào)文后,會(huì)在規(guī)定的時(shí)間范圍內(nèi)發(fā)送IGMP成員報(bào)告給組播路由 器,但如果組內(nèi)其它成員已經(jīng)發(fā)送了 IGMP成員報(bào)告,則組播終端就不用發(fā) 了,因?yàn)榻M播路由器不關(guān)心多少主機(jī)屬于該組,而只關(guān)心該組是否還至少 擁有一個(gè)主機(jī)。IGMP協(xié)議不象TCP協(xié)議,沒(méi)有重傳機(jī)制,因此它是不可靠的。當(dāng)網(wǎng)絡(luò) 發(fā)生擁塞時(shí),組播終端發(fā)送的離開(kāi)組播組報(bào)文可能會(huì)丟失。如果此時(shí)組播 終端斷電重啟進(jìn)入記憶頻道或者切換到其它的組播頻道時(shí)加入了其它的組 播組,而之前離開(kāi)組播組沒(méi)有成功,這時(shí)組播終端會(huì)同時(shí)收到多路組播流, 占用了大量帶寬,直到組播路由器發(fā)現(xiàn)組播終端已經(jīng)不在某個(gè)組播組而停 止轉(zhuǎn)發(fā)某路組播流,這時(shí)網(wǎng)絡(luò)擁塞情況才能有所緩解。但由于不同的組播 路由器設(shè)置不同,檢測(cè)到組播終端已經(jīng)不在組播組的時(shí)間也就不同, 一般 路由器設(shè)置的IGMP査詢超時(shí)時(shí)間為3分鐘,如果是這樣,組播終端在這3分鐘內(nèi)就會(huì)受到這路組播流的影響,以一個(gè)1.5Mbps的組播節(jié)目而言,同 時(shí)存在多路組播流占用帶寬就是1. 5Mbps的倍數(shù),而一般家庭的帶寬也就 是2-3M,由此可見(jiàn)沒(méi)有及時(shí)關(guān)閉的組播流對(duì)家庭網(wǎng)絡(luò)的影響是非常大的。
因此,對(duì)于組播終端來(lái)說(shuō)能可靠離開(kāi)組播組是保證機(jī)頂盒播放質(zhì)量的 重要因素。
現(xiàn)有的技術(shù)方案處理主機(jī)離開(kāi)組播組時(shí)通常采用下述的兩種方案之
1. 當(dāng)主機(jī)離開(kāi)某一個(gè)組播組時(shí),它將自行退出,組播路由器定時(shí)使用 "成員資格査詢"消息向IP子網(wǎng)中的所有主機(jī)的組地址査詢,如果某一
組播組在IP子網(wǎng)中已經(jīng)沒(méi)有任何成員,組播路由器在確認(rèn)這一事件后, 將不再在子網(wǎng)中轉(zhuǎn)發(fā)該組播組的數(shù)據(jù)。與此同時(shí),通過(guò)路由信息交換,從 特定的組播組分布樹(shù)中刪除相應(yīng)的組播路由器,這種方法使得組播路由器 獲悉IP子網(wǎng)中已經(jīng)沒(méi)有任何組播成員的事件延時(shí)了一段時(shí)間。這種方案 無(wú)論是在用戶組播終端的正常退出或者異常掉電時(shí)都將導(dǎo)致一定時(shí)間的延 遲。
2. 當(dāng)每一個(gè)主機(jī)離開(kāi)某一個(gè)組播組時(shí),主動(dòng)通知子網(wǎng)組播路由器,組 播路由器立即向IP子網(wǎng)中的所有組播組查詢,如果沒(méi)有響應(yīng),則停止組 播組的轉(zhuǎn)發(fā),這種方案可以實(shí)時(shí)停止組播。但在用戶組播終端異常掉電的 情況下,主機(jī)不能主動(dòng)通知,組播路由器將無(wú)法啟動(dòng)?xùn)嗽兞鞒?,因此,這 種方案無(wú)法解決用戶組播終端異常掉電引發(fā)的問(wèn)題。
現(xiàn)有專利對(duì)有效離開(kāi)組播組的解決方法主要有以下兩種
1. CN200510121004專利提出在組播終端側(cè)保存上一次加入的組播的 信息,在用戶下次開(kāi)機(jī)時(shí)發(fā)送離開(kāi)組播組的報(bào)文。這是一種解決辦法,但 這種解決版本有一個(gè)前提是組播終端要在非易失性存儲(chǔ)上保存上一次加入 組播組的信息,假如播放列表保存失敗怎么辦?另外,組播終端啟動(dòng)后根 據(jù)保存的組播地址發(fā)一個(gè)離開(kāi)組播組的報(bào)文,沒(méi)有考慮到網(wǎng)絡(luò)擁塞時(shí)離開(kāi) 組播組的報(bào)文丟失的情況,如果這個(gè)報(bào)文丟失了,網(wǎng)絡(luò)擁塞的情況還是不 能得到解決。
2. CN200610060903專利提出向組播數(shù)據(jù)復(fù)制設(shè)備發(fā)送通用離開(kāi)組播 組報(bào)文,離開(kāi)所有組播組,這個(gè)方法不錯(cuò),但是這個(gè)方法引入了一種非標(biāo) 準(zhǔn)的組播報(bào)文,此外還需要組播復(fù)制設(shè)備做修改以支持該組播報(bào)文。這是 一種私有方法,對(duì)于可以應(yīng)用在任何場(chǎng)所和任何網(wǎng)絡(luò)設(shè)備互通的組播終端來(lái)說(shuō),這種做法不具備通用性。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提出一種組播終端可靠離開(kāi)組播組 的方法和系統(tǒng),解決組播終端因離開(kāi)組播組的報(bào)文丟失或斷電時(shí)未及時(shí)發(fā) 出離開(kāi)組播組的數(shù)據(jù)報(bào)而導(dǎo)致組播終端切換頻道后或斷電后短時(shí)間內(nèi)重啟 時(shí)同時(shí)收到多路組播流的問(wèn)題。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
一種組播終端可靠離開(kāi)組播組的方法,包括以下處理步驟
1) 組播終端實(shí)時(shí)檢測(cè)接收到的組播數(shù)據(jù)報(bào);
2) 組播終端判斷步驟1)中的組播數(shù)據(jù)報(bào)是否為本端要接收的組播數(shù) 據(jù)報(bào);
3) 如果不是本端要接收的組播數(shù)據(jù)報(bào),則向組播路由器發(fā)送離開(kāi)組播 組的報(bào)文。
優(yōu)選的,所述步驟3)之后還包括以下處理步驟
4) 如果不是本端要求的組播源數(shù)據(jù)報(bào),確定各數(shù)據(jù)報(bào)的組播源,對(duì)應(yīng) 各組播源分別設(shè)置定時(shí)器,并啟動(dòng)定時(shí)器;
5) 當(dāng)在定時(shí)器定時(shí)時(shí)間之內(nèi)收到來(lái)自定時(shí)器對(duì)應(yīng)的組播源數(shù)據(jù)報(bào)時(shí), 本端不處理該數(shù)據(jù)報(bào);當(dāng)在定時(shí)器定時(shí)時(shí)間之外收到來(lái)自定時(shí)器對(duì)應(yīng)的組 播源數(shù)據(jù)報(bào)時(shí),則返回步驟3)進(jìn)行處理。
優(yōu)選的,所述步驟2)中具體為組播終端根據(jù)組播數(shù)據(jù)報(bào)的組播源 地址判斷是否為本端要接收的組播源數(shù)據(jù)報(bào)。
優(yōu)選的,所述組播終端中設(shè)置的多個(gè)定時(shí)器,分別對(duì)應(yīng)本端接收到的 非本端要接收的組播報(bào)文的組播地址。
一種組播終端可靠離開(kāi)組播組的系統(tǒng),包括
組播終端,用于實(shí)時(shí)檢測(cè)接收到的組播數(shù)據(jù)報(bào);判斷組播數(shù)據(jù)報(bào)是否 為本端求接收的組播源數(shù)據(jù)報(bào);向組播路由器發(fā)送離開(kāi)非本端要接收的組 播組的報(bào)文;
組播路由器,用于接收組播終端的報(bào)文請(qǐng)求,并停止向組播終端轉(zhuǎn)發(fā)非組播終端要接收的組播數(shù)據(jù)報(bào)。
優(yōu)選的,所述組播終端中設(shè)有多個(gè)定時(shí)器,分別對(duì)應(yīng)非本端要接收的 報(bào)文的組播源;組播終端還用于判斷在定時(shí)范圍內(nèi)收到對(duì)應(yīng)的組播源數(shù)據(jù)
報(bào)的情況。
優(yōu)選的,所述組播終端根據(jù)組播數(shù)據(jù)報(bào)的組播源地址判斷是否為本端 要接收的組播源數(shù)據(jù)報(bào)。
優(yōu)選的,所述定時(shí)器的定時(shí)值設(shè)置為30毫秒_60毫秒之間的一個(gè)值。
本發(fā)明克服現(xiàn)有技術(shù)的不足,在實(shí)時(shí)檢測(cè)組播數(shù)據(jù)報(bào)的基礎(chǔ)上,增加 了對(duì)組播數(shù)據(jù)報(bào)文的處理。本發(fā)明是一種對(duì)于組播終端不想接收的組播流 及時(shí)而有效地發(fā)送離開(kāi)組播組的數(shù)據(jù)報(bào)的方法和系統(tǒng),其基于標(biāo)準(zhǔn)的IGMP 協(xié)議處理機(jī)制,解決了組播終端因離開(kāi)組播組的數(shù)據(jù)報(bào)丟失或斷電時(shí)未及 時(shí)發(fā)出離開(kāi)組播組的數(shù)據(jù)報(bào)而導(dǎo)致組播終端切換頻道后或斷電后短時(shí)間內(nèi) 重啟時(shí)同時(shí)收到多路組播流的問(wèn)題,有效地節(jié)省網(wǎng)絡(luò)帶寬,保證組播終端 播放的質(zhì)量。
圖1為本發(fā)明組播終端可靠離開(kāi)組播組的流程示意圖2為本發(fā)明組播定時(shí)器超時(shí)后處理流程圖3為本發(fā)明組播終端可靠離開(kāi)組播組的優(yōu)選實(shí)施例流程圖。
具體實(shí)施例方式
下面結(jié)合附圖并通過(guò)具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。 如圖l所示為本發(fā)明組播終端可靠離開(kāi)組播組流程。組播終端啟動(dòng)后 實(shí)時(shí)檢測(cè)經(jīng)過(guò)網(wǎng)口到達(dá)網(wǎng)絡(luò)協(xié)議棧的組播數(shù)據(jù)報(bào),并對(duì)收到的組播數(shù)據(jù)報(bào) 進(jìn)行處理,如果發(fā)現(xiàn)組播數(shù)據(jù)報(bào)不是本端所要接收的(即組播終端沒(méi)有加 入收到的組播數(shù)據(jù)報(bào)所在的組播組,或稱為組播終端沒(méi)有進(jìn)程加入該組播 數(shù)據(jù)所在的組播組),則向組播路由器發(fā)送離開(kāi)該組播組的報(bào)文,否則組播 終端返回組播數(shù)據(jù)報(bào)的接收處理。
在組播數(shù)據(jù)報(bào)不是本端所要接收的情況下,還可以這樣處理對(duì)每個(gè) 組播地址設(shè)置的一個(gè)對(duì)應(yīng)的定時(shí)器。首次接收到非本端要接收的數(shù)據(jù)報(bào)時(shí),向組播路由器發(fā)送離開(kāi)該組播組的報(bào)文,且啟動(dòng)組播地址對(duì)應(yīng)的定時(shí)器。 當(dāng)對(duì)應(yīng)定時(shí)器超時(shí)后,若終端還能收到來(lái)自該定時(shí)器對(duì)應(yīng)組播組的組播報(bào) 文,則再次發(fā)送離開(kāi)該組播組的報(bào)文,并重新啟動(dòng)對(duì)應(yīng)組播組的定時(shí)器。 如果在定時(shí)器超時(shí)之前收到該定時(shí)器對(duì)應(yīng)組播組的報(bào)文,則不處理該組播 報(bào)文。
如圖2所示對(duì)于每個(gè)定時(shí)器還設(shè)有存在標(biāo)識(shí),當(dāng)定時(shí)超時(shí)處理完成后, 通過(guò)定時(shí)器處理函數(shù)將定時(shí)器的存在標(biāo)識(shí)清掉。需要重新啟動(dòng)定時(shí)器時(shí), 則通過(guò)函數(shù)設(shè)置定時(shí)器存在標(biāo)識(shí)。組播終端通過(guò)判斷是否存在組播組對(duì)應(yīng) 的定時(shí)器存在標(biāo)識(shí)判斷定時(shí)器是否超時(shí)。
本發(fā)明提出的組播端可靠離開(kāi)組播組的系統(tǒng),包括
組播端,用于實(shí)時(shí)檢測(cè)接收到的組播數(shù)據(jù)報(bào);判斷組播數(shù)據(jù)報(bào)是否為 本端要求的組播源數(shù)據(jù)報(bào);向組播路由器發(fā)送離開(kāi)非本端要求的組播組的 報(bào)文;
組播路由器,用于接收組播端的報(bào)文請(qǐng)求,并停止向組播端轉(zhuǎn)發(fā)非組 播端要求的組播數(shù)據(jù)報(bào)。
其中在組播端中設(shè)有多個(gè)定時(shí)器,分別對(duì)應(yīng)非本端要求的報(bào)文的組播 源;組播端還用于判斷在定時(shí)范圍內(nèi)收到對(duì)應(yīng)的組播源數(shù)據(jù)報(bào)的情況。
組播端根據(jù)組播數(shù)據(jù)報(bào)的組播源地址判斷是否為本端要求的組播源數(shù) 據(jù)報(bào)。
定時(shí)器的定時(shí)值設(shè)置為30ms —60ms之間的一個(gè)值。
本發(fā)明的基本原理是實(shí)時(shí)檢測(cè)網(wǎng)口收到的數(shù)據(jù)流基礎(chǔ)上,通過(guò)檢測(cè)經(jīng) 過(guò)組播終端網(wǎng)口的組播數(shù)據(jù)報(bào),可以有效地檢測(cè)到組播終端目前沒(méi)有加入 組播的組播流,并及時(shí)有效地告訴組播服務(wù)器,減少網(wǎng)絡(luò)上的組播流。下 面再通過(guò)一個(gè)具體實(shí)施例進(jìn)行說(shuō)明。
本實(shí)例對(duì)應(yīng)linux 2.4. 16版本的系統(tǒng),使用tcp/ip ipv4協(xié)議棧。
其方法流程如圖3所示,該方法包括以下步驟
步驟l:組播終端系統(tǒng)正常啟動(dòng);
步驟2: tcp/ip網(wǎng)絡(luò)協(xié)議棧udp層的udp—rcv函數(shù)實(shí)時(shí)的對(duì)網(wǎng)口收到 的udp數(shù)據(jù)包進(jìn)行處理。
步驟3:在udp_rcV函數(shù)中屬于udp包的組播數(shù)據(jù)報(bào)文進(jìn)行處理。如
果組播終端沒(méi)有加入收到的組播數(shù)據(jù)報(bào)所在的組播組,即組播終端沒(méi)有進(jìn)程加入該組播數(shù)據(jù)所在的組播組,執(zhí)行步驟4;否則繼續(xù)執(zhí)行步驟2;
步驟4:根據(jù)不同組播源地址構(gòu)造對(duì)應(yīng)的定時(shí)器,不同的組播源地址對(duì)應(yīng)不同的定時(shí)器。如收到組播地址為A的組播流,構(gòu)造對(duì)應(yīng)的定時(shí)器A,
定時(shí)器超時(shí)時(shí)間設(shè)置為30ms—60ms之間的一個(gè)值,優(yōu)選值為50ms。
如果是第一次收到來(lái)自A組播組的組播數(shù)據(jù)報(bào)文,馬上發(fā)送離開(kāi)A組播組的報(bào)文,并啟動(dòng)一個(gè)對(duì)應(yīng)的定時(shí)器A;如果不是第一次收到來(lái)自A組播組的組播數(shù)據(jù)報(bào),判斷該組播組A對(duì)應(yīng)的定時(shí)器A是否己經(jīng)超時(shí)運(yùn)行完畢;如果定時(shí)器A己經(jīng)超時(shí)處理完了,則再一次馬上發(fā)送離開(kāi)A組播組的報(bào)文,并重新啟動(dòng)新的對(duì)應(yīng)的定時(shí)器A,重新執(zhí)行步驟2。
以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
9
權(quán)利要求
1.一種組播終端可靠離開(kāi)組播組的方法,其特征在于,所述方法包括以下處理步驟1)組播終端實(shí)時(shí)檢測(cè)接收到的組播數(shù)據(jù)報(bào);2)組播終端判斷步驟1)中的組播數(shù)據(jù)報(bào)是否為本端要接收的組播數(shù)據(jù)報(bào);3)如果不是本端要接收的組播數(shù)據(jù)報(bào),則向組播路由器發(fā)送離開(kāi)組播組的報(bào)文。
2. 根據(jù)權(quán)利要求1所述的組播終端可靠離開(kāi)組播組的方法,其特征在 于,所述步驟3)之后還包括以下處理步驟4) 如果不是本端要接收的組播數(shù)據(jù)報(bào),確定各數(shù)據(jù)報(bào)的組播源,對(duì)應(yīng) 各組播源分別設(shè)置定時(shí)器,并啟動(dòng)定時(shí)器;5) 當(dāng)在定時(shí)器定時(shí)時(shí)間之內(nèi)收到來(lái)自定時(shí)器對(duì)應(yīng)的組播源數(shù)據(jù)報(bào)時(shí), 本端不處理該數(shù)據(jù)報(bào);當(dāng)在定時(shí)器定時(shí)時(shí)間之外收到來(lái)自定時(shí)器對(duì)應(yīng)的組 播源數(shù)據(jù)報(bào)時(shí),則返回步驟3)進(jìn)行處理。
3. 根據(jù)權(quán)利要求1或2所述的組播終端可靠離開(kāi)組播組的方法,其特 征在于,所述步驟2)中具體為組播終端根據(jù)組播數(shù)據(jù)報(bào)的組播源地址 判斷是否為本端要接收的組播源數(shù)據(jù)報(bào)。
4. 根據(jù)權(quán)利要求2所述的組播終端可靠離開(kāi)組播組的方法,其特征在 于,所述組播終端中設(shè)置的多個(gè)定時(shí)器,分別對(duì)應(yīng)本端接收到的非本端要 接收的組播報(bào)文的組播地址。
5. —種組播終端可靠離開(kāi)組播組的系統(tǒng),其特征在于,包括組播終端,用于實(shí)時(shí)檢測(cè)接收到的組播數(shù)據(jù)報(bào);判斷組播數(shù)據(jù)報(bào)是否 為本端求接收的組播源數(shù)據(jù)報(bào);向組播路由器發(fā)送離開(kāi)非本端要接收的組 播組的報(bào)文;組播路由器,用于接收組播終端的報(bào)文請(qǐng)求,并停止向組播終端轉(zhuǎn)發(fā) 非組播終端要接收的組播數(shù)據(jù)報(bào)。
6. 根據(jù)權(quán)利要求5所述的組播終端可靠離開(kāi)組播組的系統(tǒng),其特征在 于,所述組播終端中設(shè)有多個(gè)定時(shí)器,分別對(duì)應(yīng)非本端要接收的報(bào)文的組 播源;組播終端還用于判斷在定時(shí)范圍內(nèi)收到對(duì)應(yīng)的組播源數(shù)據(jù)報(bào)的情況。
7. 根據(jù)權(quán)利要求5或6所述的組播終端可靠離開(kāi)組播組的系統(tǒng),其特 征在于,所述組播終端根據(jù)組播數(shù)據(jù)報(bào)的組播源地址判斷是否為本端要接 收的組播源數(shù)據(jù)報(bào)。
8. 根據(jù)權(quán)利要求6所述的組播終端可靠離開(kāi)組播組的系統(tǒng),其特征在 于,所述定時(shí)器的定時(shí)值設(shè)置為30毫秒_60毫秒之間的一個(gè)值。
全文摘要
本發(fā)明公開(kāi)了一種組播終端可靠離開(kāi)組播組的方法,包括以下處理步驟1)組播終端實(shí)時(shí)檢測(cè)接收到的組播數(shù)據(jù)報(bào);2)組播終端判斷步驟1)中的組播數(shù)據(jù)報(bào)是否為本端要接收的組播數(shù)據(jù)報(bào);3)如果不是本端要接收的組播數(shù)據(jù)報(bào),則向組播路由器發(fā)送離開(kāi)組播組的報(bào)文。還公開(kāi)了一種組播端可靠離開(kāi)組播組的系統(tǒng),由組播端和組播路由器組成。采用本發(fā)明,解決了組播終端因離開(kāi)組播組的數(shù)據(jù)報(bào)丟失或斷電時(shí)未及時(shí)發(fā)出離開(kāi)組播組的數(shù)據(jù)報(bào)而導(dǎo)致組播終端切換頻道后或斷電后短時(shí)間內(nèi)重啟時(shí)同時(shí)收到多路組播流的問(wèn)題,有效地節(jié)省網(wǎng)絡(luò)帶寬,保證組播終端播放的質(zhì)量。
文檔編號(hào)H04L12/18GK101656614SQ20081014195
公開(kāi)日2010年2月24日 申請(qǐng)日期2008年8月20日 優(yōu)先權(quán)日2008年8月20日
發(fā)明者鵬 丁, 柴作朋, 鄭可馨, 陳鵬飛 申請(qǐng)人:中興通訊股份有限公司