一種增強(qiáng)IGMP Snooping組播學(xué)習(xí)限制的方法
【專利摘要】本發(fā)明公開了一種增強(qiáng)IGMP?Snooping組播學(xué)習(xí)限制的方法,本發(fā)明通過刪除一條該端口已學(xué)的組播組,同時(shí)增加一種端口學(xué)習(xí)的組播組數(shù)超過上限后的處理方式——替換,從而實(shí)現(xiàn)端口在學(xué)習(xí)組播組超過上限后仍可以繼續(xù)學(xué)習(xí)新的組播組的目的。
【專利說明】—種增強(qiáng)IGMP Snooping組播學(xué)習(xí)限制的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)通訊【技術(shù)領(lǐng)域】,尤其涉及一種增強(qiáng)IGMP SnoopingdnternetGroup Management Protocol Snooping互聯(lián)網(wǎng)組管理協(xié)議窺探)組播學(xué)習(xí)限制的方法。
【背景技術(shù)】
[0002]IGMP Snooping是運(yùn)行在二層設(shè)備上的組播約束機(jī)制,用于管理和控制組播組。在接入層設(shè)備上組播表規(guī)格有限,為了防止部分端口學(xué)習(xí)了大量組播組后,導(dǎo)致其他端口無法繼續(xù)學(xué)習(xí)組播組的問題,需要對端口允許學(xué)習(xí)組播組的數(shù)量進(jìn)行限制。但是當(dāng)限制之后就可能會(huì)出現(xiàn)端口超過學(xué)習(xí)限制,無法繼續(xù)學(xué)習(xí)的問題,出現(xiàn)這種情況,一般會(huì)將Import(報(bào)告)報(bào)文Drop (丟棄)。例如:某個(gè)端口可學(xué)習(xí)組播組上限為50條,當(dāng)只支持IGMP vl版本主機(jī)(IGMP vl版本主機(jī)可以加入組播組,沒有離開信息)時(shí),頻繁切換視頻節(jié)目,可能會(huì)導(dǎo)致組播組數(shù)達(dá)到端口學(xué)習(xí)上限,因而無法繼續(xù)點(diǎn)播新的視頻節(jié)目。由于IGMP vl版本的組播組離開時(shí)不會(huì)發(fā)送Leave (離開)報(bào)文,只能等到組播老化定時(shí)器超時(shí)刪除表項(xiàng)之后才能繼續(xù)點(diǎn)播,若老化時(shí)間配置得比較長,主機(jī)就會(huì)在長時(shí)間內(nèi)無法點(diǎn)播視頻。
【發(fā)明內(nèi)容】
[0003]本發(fā)明主要針對上述問題,解決端口在學(xué)習(xí)組播組超過上限后無法繼續(xù)學(xué)習(xí)的問題,并解決IGMP vl版本主機(jī)在離開時(shí)不會(huì)發(fā)Leave報(bào)文的問題。本發(fā)明通過刪除一條該端口已學(xué)的組播組,同時(shí)增加一種端口學(xué)習(xí)的組播組數(shù)超過上限后的處理方式(以下稱為Action) —R印lace (替換),從而實(shí)現(xiàn)端口在學(xué)習(xí)組播組超過上限后仍可以繼續(xù)學(xué)習(xí)新的組播組的目的。
[0004]為了解決上述技術(shù)問題,本發(fā)明采用了以下技術(shù)方案:
一種增強(qiáng)IGMP Snooping組播學(xué)習(xí)限制的方法,當(dāng)端口學(xué)習(xí)的組播組數(shù)超過上限后,端口收到報(bào)告報(bào)文或特定組查詢報(bào)文時(shí),可選擇丟棄報(bào)文或者替換報(bào)文兩種處理方式;
當(dāng)端口收到報(bào)告報(bào)文時(shí),處理流程包括如下步驟:
A.判斷報(bào)告報(bào)文中組播組表項(xiàng)是否已經(jīng)存在,若已經(jīng)存在,則只更新老化定時(shí)器,然后執(zhí)行步驟G ;若不存在,則執(zhí)行步驟B ;
B.判斷端口學(xué)習(xí)的組播組是否超過上限,若沒有超過,則學(xué)習(xí)該組播組,然后執(zhí)行步驟G ;若超過上限,則執(zhí)行步驟C ;
C.判斷端口的處理方式是否為替換,若不是,則丟棄報(bào)文;若為替換,則執(zhí)行步驟D;
D.查找組播表,判斷是否有端口的組播表項(xiàng),若沒有,則丟棄報(bào)文;若有,則刪除一條該組播組,然后執(zhí)行步驟E ;
E.查找組播表,判斷步驟D中刪除的組播組是否還有其他端口成員,若有,則執(zhí)行步驟G ;若沒有,則設(shè)備代替主機(jī)向路由端口發(fā)送離開報(bào)文,所述離開報(bào)文的組為步驟D中刪除的組播組,然后執(zhí)行步驟F ;
F.學(xué)習(xí)步驟A中收到報(bào)告報(bào)文的組播組,然后執(zhí)行步驟G; G.判斷步驟A中收到報(bào)告報(bào)文是否為IGMPvl版本,若不是,從路由端口轉(zhuǎn)發(fā)該報(bào)告報(bào)文;若是,則設(shè)備代替,將源MAC改為設(shè)備自己,版本號(hào)改為V2,主機(jī)向路由端口發(fā)送該組播組的IGMPv2版本的報(bào)告報(bào)文;
當(dāng)設(shè)備收到特定組查詢報(bào)文時(shí),處理流程包括如下步驟:
51.判斷查詢的組播組是否存在,若不存在,則丟棄報(bào)文,退出收報(bào)處理流程;若存在,則執(zhí)行步驟S2 ;
52.判斷組播組是否為IGMPvl,若是,則執(zhí)行步驟S3;若不是,則執(zhí)行S4;
53.判斷學(xué)到該組播組的端口的處理方式是否為替換,若是,則設(shè)備代理路由器,將源MAC改為設(shè)備自己,向主機(jī)發(fā)送通用查詢報(bào)文;若不是,則執(zhí)行S4 ;
54.則向主機(jī)轉(zhuǎn)發(fā)此特定組查詢報(bào)文。
[0005]采用上述方法后,本發(fā)明具有以下有益效果:
1.使用本發(fā)明后,使得設(shè)備學(xué)習(xí)的組播組超過上限,可以通過替換一條舊的組播組的方式來學(xué)習(xí)新的組播組,解決了原本無法學(xué)習(xí)新組播組的問題。
[0006]2.1GMP協(xié)議標(biāo)準(zhǔn)中,IGMP vl主機(jī)離開時(shí)不會(huì)發(fā)Leave報(bào)文,使用本發(fā)明后,可以讓設(shè)備代理IGMP vl主機(jī)發(fā)送Leave報(bào)文,加快了 IGMP vl組播組的老化;當(dāng)然這需要在接收到IGMP vl的Iteport報(bào)文時(shí),設(shè)備將報(bào)文替換成IGMP v2的Iteport報(bào)文并轉(zhuǎn)給路由器;在收到特定組查詢報(bào)文時(shí),若查詢的特定組為IGMP vl (學(xué)習(xí)組播組時(shí)需要記錄版本信息)的組播組,且Action為Replace模式下,需要設(shè)備代理路由器發(fā)通用查詢報(bào)文給對應(yīng)組播組。
[0007]在結(jié)合附圖閱讀本發(fā)明的實(shí)施方式的詳細(xì)描述后,本發(fā)明的特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。
[0008]【專利附圖】
【附圖說明】
[0009]圖1是本發(fā)明的端口收到報(bào)告報(bào)文時(shí)的處理流程圖;
圖2是本發(fā)明的設(shè)備收到特定組查詢報(bào)文時(shí)的處理流程圖。
[0010]
【具體實(shí)施方式】
[0011]下面以一個(gè)實(shí)施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明,但應(yīng)當(dāng)說明,本發(fā)明的保護(hù)范圍不僅僅限于此。
[0012]如圖1所示,當(dāng)端口收到Report報(bào)文時(shí),處理流程包括如下步驟:
A.判斷R印ort報(bào)文中組播組表項(xiàng)是否已經(jīng)存在,若已經(jīng)存在,則只更新老化定時(shí)器,然后執(zhí)行步驟G ;若不存在,則執(zhí)行步驟B ;
B.判斷端口學(xué)習(xí)的組播組是否超過上限,若沒有超過,則學(xué)習(xí)該組播組,然后執(zhí)行步驟G ;若超過上限,則執(zhí)行步驟C ;
C.判斷端口的Action是否為R印lace,若不是,則丟棄報(bào)文;若為R印lace,則執(zhí)行步驟D;
D.查找組播表,判斷是否有端口的組播表項(xiàng),若沒有,則丟棄報(bào)文;若有,則刪除一條該組播組,然后執(zhí)行步驟E。
[0013]E.查找組播表,判斷步驟D中刪除的組播組是否還有其他端口成員,若有,則執(zhí)行步驟G ;若沒有,則設(shè)備代替主機(jī)向路由端口發(fā)送Leave報(bào)文,Leave的組為步驟D中刪除的組播組,然后執(zhí)行步驟F。
[0014]F.學(xué)習(xí)步驟A中收到R印ort報(bào)文的組播組,然后執(zhí)行步驟G。
[0015]G.判斷步驟A中收到R印ort報(bào)文是否是IGMP vl版本,若不是,從路由端口轉(zhuǎn)發(fā)該R印ort報(bào)文;若是,則設(shè)備代替,將源MAC改為設(shè)備自己,版本號(hào)改為V2,主機(jī)向路由端口發(fā)送該組播組的IGMP v2的R印ort報(bào)文。
[0016]如圖2所示,當(dāng)設(shè)備收到特定組查詢報(bào)文處理流程改進(jìn)如下:
51.判斷查詢的組播組是否存在,若不存在,則丟棄報(bào)文,退出收報(bào)處理流程;若存在,則執(zhí)行步驟S2;
52.判斷組播組是否為IGMPvl版本,若是,則執(zhí)行步驟S3;若不是,則執(zhí)行步驟S4;
53.判斷學(xué)到該組播組的端口的Action是否為R印lace,若是,則設(shè)備代理路由器,將源MAC改為設(shè)備自己,向主機(jī)發(fā)送通用查詢報(bào)文;若不是,則執(zhí)行步驟S4;
54.則向主機(jī)轉(zhuǎn)發(fā)此特定組查詢報(bào)文。
[0017]雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域的技術(shù)人員可以在所附權(quán)利要求的范圍之內(nèi)作出各種變形或修改,只要不超過本發(fā)明的權(quán)利要求所描述的保護(hù)范圍,都應(yīng)當(dāng)在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種增強(qiáng)IGMP Snooping組播學(xué)習(xí)限制的方法,其特征在于:當(dāng)端口學(xué)習(xí)的組播組數(shù)超過上限后,端口收到報(bào)告報(bào)文或特定組查詢報(bào)文時(shí),可選擇丟棄報(bào)文或者替換報(bào)文兩種處理方式; 當(dāng)端口收到報(bào)告報(bào)文時(shí),處理流程包括如下步驟: A.判斷報(bào)告報(bào)文中組播組表項(xiàng)是否已經(jīng)存在,若已經(jīng)存在,則只更新老化定時(shí)器,然后執(zhí)行步驟G ;若不存在,則執(zhí)行步驟B ; B.判斷端口學(xué)習(xí)的組播組是否超過上限,若沒有超過,則學(xué)習(xí)該組播組,然后執(zhí)行步驟G ;若超過上限,則執(zhí)行步驟C ; C.判斷端口的處理方式是否為替換,若不是,則丟棄報(bào)文;若為替換,則執(zhí)行步驟D; D.查找組播表,判斷是否有端口的組播表項(xiàng),若沒有,則丟棄報(bào)文;若有,則刪除一條該組播組,然后執(zhí)行步驟E ; E.查找組播表,判斷步驟D中刪除的組播組是否還有其他端口成員,若有,則執(zhí)行步驟G ;若沒有,則設(shè)備代替主機(jī)向路由端口發(fā)送離開報(bào)文,所述離開報(bào)文的組為步驟D中刪除的組播組,然后執(zhí)行步驟F ; F.學(xué)習(xí)步驟A中收到報(bào)告報(bào)文的組播組,然后執(zhí)行步驟G; G.判斷步驟A中收到報(bào)告報(bào)文是否為IGMPVl版本版本,若不是,從路由端口轉(zhuǎn)發(fā)該報(bào)告報(bào)文;若是,則設(shè)備代替,將源MAC改為設(shè)備自己,版本號(hào)改為V2,主機(jī)向路由端口發(fā)送該組播組的IGMP v2版本的報(bào)告報(bào)文; 當(dāng)設(shè)備收到特定組查詢報(bào)文時(shí),處理流程包括如下步驟: S1.判斷查詢的組播組是否存在,若不存在,則丟棄報(bào)文,退出收報(bào)處理流程;若存在,則執(zhí)行步驟S2 ; S2.判斷組播組是否為IGMPVl版本,若是,則執(zhí)行步驟S3;若不是,則執(zhí)行S4; S3.判斷學(xué)到該組播組的端口的處理方式是否為替換,若是,則設(shè)備代理路由器,將源MAC改為設(shè)備自己,向主機(jī)發(fā)送通用查詢報(bào)文;若不是,則執(zhí)行S4 ; S4.則向主機(jī)轉(zhuǎn)發(fā)此特定組查詢報(bào)文。
【文檔編號(hào)】H04L12/761GK103618614SQ201310569399
【公開日】2014年3月5日 申請日期:2013年11月13日 優(yōu)先權(quán)日:2013年11月13日
【發(fā)明者】柳亮 申請人:深圳市新格林耐特通信技術(shù)有限公司