專利名稱:一種簡化的igmp組播代理實現(xiàn)方法
技術領域:
本發(fā)明涉及網(wǎng)絡技術中數(shù)字信息的傳輸,特別涉及一種簡化的IGMP組播代理實現(xiàn)方法。IGMP(互聯(lián)網(wǎng)組管理協(xié)議)協(xié)議運行于主機和與主機直接相連的組播路由器之間,是IP主機用來報告多址廣播組成員身份的協(xié)議。通過IGMP協(xié)議,一方面主機可以通過IGMP協(xié)議通知本地路由器希望加入并接收某個特定組播組的信息;另一方面,路由器通過IGMP協(xié)議周期性地查詢局域網(wǎng)內(nèi)某個已知組的成員是否處于活動狀態(tài)。IGMP協(xié)議的主要作用是解決網(wǎng)絡上廣播時占用帶寬的問題。在網(wǎng)絡中,當給所有客戶端發(fā)出廣播信息時,支持IGMP的交換機會將廣播信息不經(jīng)過濾地發(fā)給所有客戶端,但是這些信息只需要通過組播的方式傳輸給某一個部分的客戶端,能夠大量節(jié)約網(wǎng)絡帶寬、降低網(wǎng)絡負載。
組播是一種將報文發(fā)往多個接收者的通信方式,實現(xiàn)了IP網(wǎng)絡中點到多點的高效數(shù)據(jù)傳送,能夠大量節(jié)約網(wǎng)絡帶寬、降低網(wǎng)絡負載。在許多應用中,它比廣播更好,因為組播降低了不參與通信的主機的負擔。簡單的IGMP協(xié)議是多播的基本模塊。組播技術包括地址分配、組成員管理、組播報文轉發(fā)、路由建立、可靠性等方面。本發(fā)明涉及組成員管理,即在路由器和交換機中建立起直聯(lián)網(wǎng)段內(nèi)的組成員關系信息,具體地說,就是哪個接口下有哪個組播組的成員,每個成員觀看的頻道。
路由器主要是查詢器和控制組播流下發(fā)的功能。IGMP具有查詢器選舉機制。最低單播IP地址的IGMP路由器被選舉為查詢器。所有的IGMP路由器初始化自已為查詢器″Querier″,一旦收到同一網(wǎng)段上一個來自更低IP地址的查詢它就放棄自己作為查詢器的角色″Non-Querier″。查詢報文分為兩種,通常查詢(GeneralQuery)和指定組查詢(Group-specific Query);指定組查詢把要查詢的組地址寫在組地址域中。當成員收到查詢報文,將啟動一個值在(0~最大響應時間)的計時器。當記時器記時期間,如果又接到一個來自路由器的查詢,當且僅當該查詢的最大響應時間小于當前計時器的值時發(fā)生重置。路由器收到響應報文,將報告的組地址加入列表,并設定計時器(Group Membership Interval),重復的響應報文將重置改值,如果該值到期后,仍未收到響應報文,則認為該組失效。
DSLAM,即數(shù)字用戶線接入復接器,是實現(xiàn)IGMP組播代理(PROXY)的物理實體;IGMP組播代理(PROXY)則是DSLAM軟件功能的一部分。
IGMP PROXY(組播代理)協(xié)議需要完成以下功能(1)接收成員的IGMP請求,建立組成員關系;(2)接收成員的IGMP離開,通過特定組查詢確認用戶是否已經(jīng)離開該組,并修改組成員關系;(3)作為查詢器,定期對成員端口進行通用組查詢,維護組成員關系;(4)作為上層路由器的成員,需要某個組時要發(fā)送IGMP請求,請求加入該組,離開時發(fā)送IGMP離開,通知路由器從該組刪除自己,響應上層路由器的通用查詢,報告自己所加入的組播組。
現(xiàn)有的組播技術中,主機發(fā)送IGMP加入請求報文請求連接預定組播組后,首先需要進行鑒權,然后才開始申請建立頻道連接,申請頻道成功后才可以接收此組播數(shù)據(jù)流(如
圖1所示),這樣導致成員加入的時延比較長。
現(xiàn)有技術的缺點還包括1、要求交換網(wǎng)片可以支持L3功能,支持IGMP協(xié)議捕獲到主機CPU,而可以實現(xiàn)這些功能的芯片價格昂貴,并且軟件工作量偏大、對CPU的要求較高;2、要實現(xiàn)以上標準IGMP PROXY四大功能,軟件處理流程復雜;3、對于DSLAM(數(shù)字用戶線接入復接器)下的多成員多頻道,CPU要實時處理大量報文,占用大量的CPU資源,對CPU要求較高,同時難以保證處理的及時性,如果提高CPU性能會增加成本,如果不提高CPU性能則會降低對用戶請求的處理速度和并發(fā)用戶請求處理數(shù)目。
本發(fā)明的目的在于提供一種簡化的IGMP組播代理實現(xiàn)方法,可以克服現(xiàn)有技術中的缺陷。
本發(fā)明解決其技術問題所采用的技術方案是一種簡化的IGMP組播代理實現(xiàn)方法,包括步驟101,主機發(fā)送IGMP加入請求報文請求連接預定組播組;102,IGMP組播代理將該請求報文送到鑒權模塊進行鑒權,同時檢查該主機所申請的頻道是否已經(jīng)建立,如果還沒有建立,則將該請求報文轉發(fā)到組播路由器請求該頻道;103,如果鑒權失敗,IGMP組播代理向組播路由器發(fā)送離開報文。
步驟102中,如果所述主機所申請的頻道已經(jīng)建立,則路由器直接將該申請報文丟棄,不再轉發(fā)到組播路由器。
步驟103進一步包括IGMP組播代理收到來自主機的離開報文后,檢查主機所在頻道的在線成員數(shù),如果所述主機是該頻道最后一個成員,則將該離開報文轉發(fā)到組播路由器,請求刪除該組播流;否則IGMP組播代理刪除該主機用戶,并刷新該頻道在線成員信息。
作為本發(fā)明的一個改進,本發(fā)明方法進一步包括步驟IGMP組播代理增加頻道上報器,每隔一段上報間隔T,所述頻道上報器將所有在線的頻道上報給組播路由器。
其中,IGMP組播代理直接丟棄組播路由器發(fā)送過來的查詢報文。
IGMP組播代理啟動一個定時器,按在線頻道數(shù)計算出每個當前在線頻道的上報時間點,到達時間點時上報一個頻道,到達上報間隔T后再重新計算新的在線頻道上報時間點。
所述上報間隔T內(nèi)頻道的上報報文均勻分布在報告周期進行上報。
作為本發(fā)明的一個改進,所述上報間隔T小于組播路由器的查詢間隔。
所述鑒權模塊位于DSLAM(數(shù)字用戶線接入復接器)上、外部網(wǎng)管上或者SYSLOG(系統(tǒng)日志)設備上。
本發(fā)明技術方案帶來的有益效果是①主機用戶鑒權處理、向上層組播路由器申請組播流是并行處理的,提高主機用戶切換頻道的速度。②簡化了作為上層組播路由器成員的報告器功能部分,下行的查詢報文在硬件直接丟棄,不透傳到主機用戶,CPU不處理,減輕了軟件和用戶側的處理負擔,通過主動上報來維持路由器上的組成員關系。③采用了特殊算法,多個頻道的上報報文均勻分部在上報間隔T進行上報,降低了報文突發(fā)度和對組播路由器的沖擊。④本發(fā)明在保證IGMP PROXY功能實現(xiàn)的情況下,簡化了標準的IGMP PROXY處理流程,降低了軟件處理的復雜度,不再要求交換網(wǎng)片支持L3功能,即不需要交換網(wǎng)片將下行IGMP協(xié)議捕獲到主機CPU,降低了CPU的處理負荷,從而降低了硬件要求,簡化軟件處理流程。綜上所述,本發(fā)明在完全滿足IGMP PROXY協(xié)議處理要求的同時,使得軟件實現(xiàn)簡潔穩(wěn)定,對CPU性能要求低,硬件成本低。圖1是現(xiàn)有技術中組成員管理的典型系統(tǒng)工作模式圖;圖2是本發(fā)明中用戶加入組播組的處理流程圖;圖3是本發(fā)明中用戶離開組播組的處理流程圖;圖4是本發(fā)明方法中組成員管理的系統(tǒng)工作模式圖。下面結合具體實施例對本發(fā)明方法作進一步闡述。
圖2所示本發(fā)明的實施例中用戶加入組播組的處理流程圖。
首先,主機發(fā)送IGMP加入請求報文請求連接預定組播組用戶打開一個組播視頻后,計算機主機發(fā)送一個IGMP加入請求報文。
IGMP組播代理捕獲到該IGMP加入請求報文后,只送到軟件處理。為了避免大量DSLAM(數(shù)字用戶線接入復接器)下的大量用戶同時把各自的IGMP請求報文直接透傳到上層組播路由器,增加了組播路由器的負擔,IGMP組播代理不需要再把用戶的IGMP請求報文復制成兩份然后轉發(fā)其中的一份到上面的網(wǎng)絡上。
IGMP組播代理將該請求報文送到鑒權模塊進行鑒權,檢測該模塊是否合法,同時檢查該主機用戶所申請的頻道是否已經(jīng)建立。如果已經(jīng)建立,則將該申請報文直接丟棄,下發(fā)消息將該主機用戶加入到該組播流PVC(永久虛連接),使該用戶可以接收此組播數(shù)據(jù)流;如果還沒有建立,則將該請求報文轉發(fā)到組播路由器請求該頻道,創(chuàng)建組播PVC,請求組播路由器將該組播流送到DSLAM,并將主機用戶加入到新申請的組播PVC內(nèi)。其中,鑒權模塊可以位于DSLAM上,或外部網(wǎng)管上,或者SYSLOG設備上。
如果該用戶鑒權失敗(用戶不合法),再由IGMP組播代理向組播路由器發(fā)送離開報文,將該主機用戶從組播組中刪除即可。這樣,鑒權處理與向上層組播路由器申請組播流是并行處理的,而不是串行處理的方法,即用戶鑒權和申請組播流同時進行,有效減少了成員加入的時延。
圖3所示是本發(fā)明的實施例中,用戶離開組播組的處理流程圖。
DSLAM收到來自主機的離開報文后,檢查主機所在頻道的在線成員數(shù),如果所述主機是該頻道最后一個成員,則將該離開報文轉發(fā)到組播路由器,請求刪除該組播流;否則DSLAM刪除該主機用戶,并刷新該頻道在線成員信息。
本發(fā)明簡化了作為上層組播路由器成員的報告器功能部分,下行的查詢報文在硬件直接丟棄,不透傳到主機用戶,CPU不處理,減輕了軟件和用戶側的處理負擔,通過主動上報來維持路由器上的組成員關系,如圖4所示。即IGMP組播代理增加頻道上報器,每隔一段上報間隔T,頻道上報器將所有在線的頻道上報給組播路由器,防止上層組播路由器認為頻道老化而停止了組播節(jié)目的轉發(fā)。同時,為了減少上報組播路由器報文的突發(fā)度,將上報報文分散在主動上報間隔內(nèi),實現(xiàn)方法如下系統(tǒng)啟動一個定時器,按在線頻道數(shù)計算出每個當前在線頻道的上報時間點,到達時間點時上報一個頻道,到達上報間隔T時再重新計算新的在線頻道上報時間點。其中,上報間隔T要小于路由器的查詢間隔,這樣,頻道不至于老化,同時也不會上報過密,造成組播路由器的負荷過重。
權利要求
1.一種簡化的IGMP組播代理實現(xiàn)方法,其特征在于包括步驟101,主機發(fā)送IGMP加入請求報文請求連接預定組播組;102,IGMP組播代理將該請求報文送到鑒權模塊進行鑒權,同時檢查該主機所申請的頻道是否已經(jīng)建立,如果還沒有建立,則將該請求報文轉發(fā)到組播路由器請求該頻道;103,如果鑒權失敗,IGMP組播代理向組播路由器發(fā)送離開報文。
2.根據(jù)權利要求1所述的方法,其特征在于步驟102中,如果所述主機所申請的頻道已經(jīng)建立,則IGMP組播代理直接將該申請報文丟棄,不再轉發(fā)到組播路由器,只刷新該頻道在線成員信息。
3.根據(jù)權利要求1或2所述的方法,其特征在于步驟103進一步包括IGMP組播代理收到來自主機的離開報文后,檢查主機所在頻道的在線成員數(shù),如果所述主機是該頻道最后一個成員,則將該離開報文轉發(fā)到組播路由器,請求刪除該組播流;否則IGMP組播代理刪除該主機用戶,并刷新該頻道在線成員信息。
4.根據(jù)權利要求1所述的方法,其特征在于進一步包括步驟IGMP組播代理增加頻道上報器,每隔一段上報間隔T,所述頻道上報器將所有在線的頻道上報給組播路由器。
5.根據(jù)權利要求4所述的方法,其特征在于IGMP組播代理直接丟棄組播路由器發(fā)送過來的查詢報文。
6.根據(jù)權利要求4所述的方法,其特征在于IGMP組播代理啟動一個定時器,按在線頻道數(shù)計算出每個當前在線頻道的上報時間點,到達時間點時上報一個頻道,到達上報間隔T后再重新計算新的在線頻道上報時間點。
7.根據(jù)權利要求4、5或6所述的方法,其特征在于所述上報間隔T小于組播路由器的查詢間隔。
8.根據(jù)權利要求4、5或6所述的方法,其特征在于所述上報間隔T內(nèi)頻道的上報報文均勻分布在報告周期進行上報。
9.根據(jù)權利要求1所述的方法,其特征在于所述鑒權模塊位于IGMP組播代理上、外部網(wǎng)管上或者SYSLOG(系統(tǒng)日志)設備上。
全文摘要
本發(fā)明涉及網(wǎng)絡技術中數(shù)字信息的傳輸,特別涉及一種簡化的IGMP組播代理實現(xiàn)方法。一種簡化的IGMP組播代理實現(xiàn)方法,包括步驟主機發(fā)送IGMP加入請求報文請求連接預定組播組;IGMP組播代理將該請求報文送到鑒權模塊進行鑒權,同時檢查該主機所申請的頻道是否已經(jīng)建立,如果還沒有建立,則將該請求報文轉發(fā)到組播路由器請求該頻道;如果鑒權失敗,IGMP組播代理向組播路由器發(fā)送離開報文。本發(fā)明的有益效果是提高了主機用戶切換頻道的速度;簡化了作為上層組播路由器成員的報告器功能部分,減輕了軟件和用戶側的處理負擔,降低了硬件要求,簡化軟件處理流程。本發(fā)明在完全滿足IGMP PROXY協(xié)議處理要求的同時,使得軟件實現(xiàn)簡潔穩(wěn)定,對CPU性能要求低,硬件成本低。
文檔編號H04L9/32GK1859281SQ20051010065
公開日2006年11月8日 申請日期2005年10月20日 優(yōu)先權日2005年10月20日
發(fā)明者王興鵬, 羅勇 申請人:華為技術有限公司