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