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