專利名稱:區(qū)分多業(yè)務的抗ip組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法
技術領域:
本發(fā)明涉及IP組播在有線和無線等IP通信系統(tǒng)中的實現(xiàn),尤其涉及防止大流量組播數(shù)據(jù)流沖擊通訊系統(tǒng)的方法。
背景技術:
IP組播技術有效地解決了單點發(fā)送多點接收的問題,實現(xiàn)了IP網(wǎng)絡中點到多點的高效數(shù)據(jù)傳送,能夠大量節(jié)約網(wǎng)絡帶寬、降低網(wǎng)絡負載。作為一種與單播和廣播并列的通信方式,組播的意義不僅在于此。更重要的是,可以利用網(wǎng)絡的組播特性方便地提供一些新的增值業(yè)務,包括在線直播、網(wǎng)絡電視、遠程教育、遠程醫(yī)療、網(wǎng)絡電臺、實時視頻會議等互聯(lián)網(wǎng)的信息服務領域。由于IP組播的上述特性使其在有線網(wǎng)絡和無線有線領域都有巨大的應用前景。
目前IP通信系統(tǒng)中路由實現(xiàn)分為兩種模式一,協(xié)議與轉發(fā)串行處理;二,協(xié)議與轉發(fā)并行處理。為實現(xiàn)快速轉發(fā),普遍采用轉發(fā)與協(xié)議并行處理的設計模式。無論是并行處理模式還是串行處理模式,都要求協(xié)議處理和轉發(fā)要由不同的進程處理。協(xié)議處理的復雜度和對Cpu的資源占用率要遠遠高于轉發(fā)處理。
由于PIM-SM的數(shù)據(jù)流驅動特征,會造成對Cpu的沖擊,導致系統(tǒng)性能受到影響,其原因如下對于采用協(xié)議和轉發(fā)串行處理模式的IP通信設備,當發(fā)生組播流驅動時,數(shù)據(jù)報文被全部上交給組播協(xié)議處理。如果此時的組播數(shù)據(jù)流很大時,Cpu需要根據(jù)組播協(xié)議對每一個數(shù)據(jù)報文進行相應處理,會占用大量的cpu資源,導致系統(tǒng)整體性能直線下降。
對于采用協(xié)議和轉發(fā)并行處理的IP通訊設備,又分為兩種架構一是集中式架構;二是分布式架構。二者的轉發(fā)都獨立于協(xié)議,轉發(fā)運行在專用的網(wǎng)絡處理器上。在集中式架構中,協(xié)議處理器和轉發(fā)處理器共用同一內存區(qū)域;在分布式架構中,協(xié)議處理器和轉發(fā)處理器有各自的內存區(qū)域,存在著板間通信。對于集中式的并行處理模式,組播流驅動對系統(tǒng)帶來的影響與串行處理模式相近,但對于分布式的并行處理模式,在此基礎上,組播流驅動還會導致對板間通信的沖擊,如果處理的不恰當,對系統(tǒng)的影響會更大。
因此,如果采用簡單的不區(qū)分組播數(shù)據(jù)流的組播數(shù)據(jù)流上送Cpu的流量控制方法,會產(chǎn)生不同的組播業(yè)務流同時發(fā)生流驅動時,大流量的組播數(shù)據(jù)流淹沒小流量的組播數(shù)據(jù)流,從而導致組播轉發(fā)斷流。
限流是一種防止IP通訊設備過載運行的方法,但必然會由于限流而損失部分數(shù)據(jù)報文。IP組播協(xié)議是一種同應用緊密相關的路由協(xié)議,不同的組播業(yè)務流可能對轉發(fā)服務質量的要求是不同的,因此需要對不同服務質量的組播數(shù)據(jù)報文,采用不同的限流策略,這樣才能將由于限流帶來的負面降低到最低。
發(fā)明內容
本發(fā)明要解決的技術問題是提供一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,能夠區(qū)分不同的組播業(yè)務流采有相應策略,避免大流量多業(yè)務IP組播數(shù)據(jù)流對IP通訊設備的負載沖擊。
為了解決上述技術問題,本發(fā)明提供了一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(a1)鍵值為key的組播數(shù)據(jù)報文packet(key)到達轉發(fā)層,沒有找到匹配的組播路由條目,將組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器;(a2)協(xié)議層根據(jù)收到的組播數(shù)據(jù)報文驅動協(xié)議狀態(tài)機以生成組播路由轉發(fā)條目M(key);同時,轉發(fā)層在配置的組播限流策略中檢索該情況下與key對應的限流策略,生成臨時轉發(fā)路由條目T_M(key),利用該條目對后續(xù)的組播數(shù)據(jù)報文packet(key)進行限流;(a3)如果協(xié)議層能夠生成key值的正常轉發(fā)條目M(key),將該條目同步到轉發(fā)層,轉發(fā)層用M(key)更新T_M(key),進入正常轉發(fā);否則,轉發(fā)層根據(jù)T_M(key)附帶的限流策略,繼續(xù)限流,并決定何時結束限流。
進一步地,上述方法還可具有以下特點所述步驟(a2)中生成的臨時轉發(fā)路由條目T_M(key)的轉發(fā)標志為N,后續(xù)的組播數(shù)據(jù)報文packet(key)將被丟棄。
為了解決上述技術問題,本發(fā)明又提供了一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(b1)協(xié)議層根據(jù)協(xié)議狀態(tài)機生成組播路由條目M(key),如果該條目中置有上送標志Upsend,執(zhí)行下一步;否則,將M(key)同步到轉發(fā)層,生成或更新轉發(fā)路由表,進入正常路由轉發(fā)流程,組播流控結束;(b2)協(xié)議層在配置的組播限流策略中檢索該情況下與key對應的限流策略,應用于M(key),使其成為帶有限流策略的P_M(key),然后將其同步到轉發(fā)層;(b3)轉發(fā)層收到組播數(shù)據(jù)報文packet(key)時,找到匹配的組播路由條目,如果滿足轉發(fā)條件,首先轉發(fā)packet(key),并根據(jù)組播數(shù)據(jù)報文P_M(key)的限流策略實現(xiàn)對其上送協(xié)議處理器的限流。
進一步地,上述方法還可具有以下特點所述步驟(b3)后還包括步驟(b4)如果根據(jù)P_M(key)的限流策略需要將組播數(shù)據(jù)報文packet(key)上送到協(xié)議處理器,則在上送后,返回執(zhí)行步驟(b1)。
進一步地,上述方法還可具有以下特點所述步驟(b2)中,是通過將檢索到的限流策略應用于上送標志Upsend得到具有策略的上送標志Upsend’,得到相應的P_M(key)。
為了解決上述技術問題,本發(fā)明還提供了一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(c1)鍵值為key的組播數(shù)據(jù)報文packet(key)到達轉發(fā)層,匹配到相應的組播轉發(fā)條目,且滿足組播協(xié)議的Assert狀態(tài)機要求;
(c2)在轉發(fā)層直接使用預先設置的斷言機制限流策略,判斷策略是否要求packet(key)上送到組播協(xié)議處理器,如要求上送,上送數(shù)據(jù)報文packet(key),然后協(xié)議層按照協(xié)議狀態(tài)機形成新的組播路由條目,同步到轉發(fā)層;如不要求上送,則屏蔽組播數(shù)據(jù)報文packet(key)。
進一步地,上述方法還可具有以下特點所述預先設置的斷言機制限流策略是不區(qū)分鍵值的固定限流方式,或者是根據(jù)key值檢索到的相應的限流策略。
為了解決上述技術問題,本發(fā)明又提供了一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(d1)鍵值為key的組播數(shù)據(jù)報文packet(key)到達轉發(fā)層,轉發(fā)層判斷其是否能夠匹配到相應的轉發(fā)路由,如果能,執(zhí)行下一步,否則,執(zhí)行步驟(d8);(d2)判斷是否滿足轉發(fā)條件,如滿足,轉發(fā)層首先進入正常轉發(fā)流程轉發(fā)該packet(key),然后執(zhí)行下一步,否則執(zhí)行步驟(d6);(d3)判斷協(xié)議是否要求將組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器,如果是,轉發(fā)層將packet(key)上送協(xié)議層,執(zhí)行下一步,否則,不進行限流,結束;(d4)協(xié)議層接收到轉發(fā)層上送的組播數(shù)據(jù)報文packet(key),驅動協(xié)議狀態(tài)機生成新的組播路由條目M(key),如果M(key)置有上送標志Upsend,執(zhí)行下一步;否則,將M(key)同步到轉發(fā)層,轉發(fā)層根據(jù)新的組播路由條目M(key)對收到的組播數(shù)據(jù)報文packet(key)進行轉發(fā),結束;(d5)協(xié)議層檢索該情況下與key對應的限流策略并應用到M(key),得到帶有限流策略的P_M(key)并將其同步到轉發(fā)層,轉發(fā)層根據(jù)P_M(key)的限流策略實現(xiàn)對組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器的限流,結束;(d6)判斷是否滿足組播協(xié)議的斷言機制狀態(tài)機要求,如果滿足,執(zhí)行下一步;如果不滿足,丟棄組播數(shù)據(jù)報文packet(key),結束;(d7)在轉發(fā)層使用預先設置的斷言機制限流策略,如果策略要求packet(key)上送協(xié)議處理器,則上送數(shù)據(jù)報文packet(key),協(xié)議層按照協(xié)議狀態(tài)機形成新的組播路由條目同步到轉發(fā)層,轉發(fā)層再根據(jù)該條目進行轉發(fā)和上送,結束;如果策略不要求上送,則屏蔽該組播數(shù)據(jù)報文packet(key),結束;(d8)將組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器,協(xié)議層驅動協(xié)議狀態(tài)機以生成新的組播路由轉發(fā)條目;同時轉發(fā)層檢索該情況下與key對應的限流策略,生成臨時轉發(fā)路由條目T_M(key),根據(jù)該條目對后續(xù)的組播數(shù)據(jù)報文packet(key)進行限流;(d9)如果生成了新的組播路由轉發(fā)條目,同步到轉發(fā)層,轉發(fā)層用該條目更新T_M(key),進入正常轉發(fā)流程,結束;如果不能生成M(key),轉發(fā)層根據(jù)T_M(key)附帶的限流策略繼續(xù)限流,并根據(jù)策略決定何時限流結束。
進一步地,上述方法還可具有以下特點所述步驟(d5)中,如果根據(jù)P_M(key)的限流策略需要將組播數(shù)據(jù)報文packet(key)上送到協(xié)議處理器,則在上送后,返回執(zhí)行步驟(d4)。
進一步地,上述方法還可具有以下特點還包括以下對組播限流策略的配置方法(e1)通過人為設定或者通過預先定義的策略算法獲得不同的限流需求,在組播協(xié)議層配置以限流類型typet和鍵值key為索引的組播限流策略表;(e2)協(xié)議層將形成的組播限流策略同步到轉發(fā)層;(e3)轉發(fā)層根據(jù)鍵值key和限流類型type為索引形成組播限流策略表L(type,key)。
進一步地,上述方法還可具有以下特點所述步驟(d7)和(d8)中,協(xié)議層生成新的組播路由條目時,如果該新條目置有上送標志Upsend,協(xié)議層也檢索該情況下與key對應的限流策略并應用到M(key),得到帶有限流策略的P_M(key),再將其同步到轉發(fā)層。
由上可知,本發(fā)明通過引入基于策略的組播限流處理方法,能夠區(qū)分不同的組播業(yè)務流和根據(jù)不同的導致組播業(yè)務流沖擊協(xié)議Cpu的原因,分別采取與之相適應的限流方法。與傳統(tǒng)的PIM_SM組播實現(xiàn)相比具有以下優(yōu)點A,防止了因為組播流驅動原因導致的整個IP通訊設備系統(tǒng)過載;B,降低了組播協(xié)議處理對組播轉發(fā)的影響,提高了組播轉發(fā)的效率;C,基于策略的區(qū)分組播業(yè)務流類型的限流方法,即防止了小流量組播流因為限流被屏蔽形成斷流的,也提供了能夠根據(jù)不同的業(yè)務流的特性和需求提供不同的限流策略,增加了系統(tǒng)的靈活性。
圖1是本發(fā)明實施例組播路由系統(tǒng)的示意圖。
圖2是本發(fā)明實施例限流的整體處理方法的示意圖。
圖3是本發(fā)明實施例沒有組播轉發(fā)條目時,第一組播限流子模塊的處理流程圖。
圖4是本發(fā)明實施例有相應組播路由條目,但有協(xié)議需要正常組播數(shù)據(jù)報文上送協(xié)議Cpu時,第二組播限流子模塊的處理流程圖。
圖5是本發(fā)明實施例有相應組播路由條目,且組播協(xié)議Assert狀態(tài)機要求組播數(shù)據(jù)報文上送協(xié)議Cpu時,第三組播限流子模塊的處理流程圖。
圖6是本發(fā)明實施例組播限流策略配置過程的示意圖。
具體實施例方式
下面結合附圖對本發(fā)明對基于策略的區(qū)分多業(yè)務IP組播數(shù)據(jù)流的抗組播數(shù)據(jù)流沖擊IP通訊設備的方法進行具體的說明。
如圖1所示,傳統(tǒng)的組播路由系統(tǒng)包括組播轉發(fā)層和組播協(xié)議層,組播轉發(fā)層中有組播路由表,可接收組播協(xié)議報文和組播數(shù)據(jù)報文,按組播路由進行轉發(fā),需要時須上送到組播協(xié)議層處理。組播協(xié)議層可處理組播數(shù)據(jù)報文形成新的組播路由表并同步到轉發(fā)層。為實現(xiàn)對組播數(shù)據(jù)報文上送協(xié)議Cpu的限流,本實施例在系統(tǒng)中嵌入了組播限流模塊,由嵌入在組播協(xié)議層的協(xié)議部分和嵌入在組播轉發(fā)層的轉發(fā)部分組成。組播限流模塊在組播轉發(fā)層的作用主要是觸發(fā)并執(zhí)行通過限流策略作用后形成的具有限流上送協(xié)議Cpu作用的組播路由轉發(fā)。組播限流模塊在組播協(xié)議層的作用是根據(jù)一定的限流策略,形成能夠區(qū)分多業(yè)務基于限流策略的IP組播轉發(fā)路由表。
組播數(shù)據(jù)是以源地址和組地址為鍵值進行路由轉發(fā)的,同時,區(qū)分不同的組播業(yè)務流也是通過源地址和組地址,即通過鍵值來區(qū)分組播業(yè)務流類型,本實施例通過key來檢索和查找策略,從而使得需要限流的各種情況下,限流策略能夠區(qū)分不同的業(yè)務流而應用。限流策略是由組播限流模塊中的組播限流策略控制模塊來決定,具體的限流策略根據(jù)不同的網(wǎng)絡環(huán)境和不同的需求定義和設置。
引起組播數(shù)據(jù)報文上送協(xié)議Cpu的原因是不同的,導致了限流處理的不同。本實施例針對采用PIM-SM協(xié)議的IP組播中可能存在的三種組播數(shù)據(jù)報文上送協(xié)議Cpu的原因,分別調用不同的限流子模塊進行處理。如圖2所示,本實施例限流的整體處理方法包括以下步驟步驟110,一個轉發(fā)key值為(S,G)的組播數(shù)據(jù)報文到達組播轉發(fā)層;步驟120,組播路由轉發(fā)系統(tǒng)首先判斷根據(jù)該組播數(shù)據(jù)報文的轉發(fā)key值是否能夠匹配到相應的轉發(fā)路由,如果匹配不到,說明此時還沒有形成用于該key的組播轉發(fā)項,需要通過組播流驅動方式,使得組播協(xié)議層能夠形成合適的組播轉發(fā)路由條目,在這種情況下,執(zhí)行步驟130;如果能夠匹配到相應的轉發(fā)路由,執(zhí)行步驟140;步驟130,為實現(xiàn)組播數(shù)據(jù)報文上送協(xié)議Cpu的限流,調用第一組播限流子模塊處理(第一種需限流的情況)后,結束;步驟140,繼續(xù)判斷是否滿足轉發(fā)條件,如Rpf(逆向路徑轉發(fā))檢查,如果滿足,執(zhí)行步驟150,否則執(zhí)行步驟170;步驟150,轉發(fā)組播數(shù)據(jù)報文,并判斷該轉發(fā)條目本身是否需要在轉發(fā)數(shù)據(jù)報文的同時依然上送協(xié)議Cpu,如果需要上送,執(zhí)行下一步,否則無需限流,結束;步驟160,調用第二組播限流子模塊處理(第二種需限流的情況)后,結束;步驟170,如果匹配到轉發(fā)條目,則判斷是否滿足Assert(斷言機制)狀態(tài)機要求(指Rpf檢查不通過且出接口收到數(shù)據(jù)報文),如果滿足,則需將該組播數(shù)據(jù)報文上送協(xié)議Cpu,執(zhí)行下一步;否則,執(zhí)行步驟190;步驟180,調用第三組播限流子模塊處理(第三種需限流的情況)后,結束;步驟190,丟棄組播數(shù)據(jù)報文,結束。
在以上三種情況下,為實現(xiàn)組播限流的策略化,組播限流模塊的幾個子模塊都需調用組播限流策略控制模塊。
下面分別說明在引起組播數(shù)據(jù)流沖擊Cpu的三種不同情況下,各個組播限流子模塊的處理方法。
第一種情況,即因沒有組播路由條目導致的組播數(shù)據(jù)報文上送協(xié)議Cpu的限流方法。
由于該組播傳送數(shù)據(jù)包不能匹配任何組播轉發(fā)路由條目,則需要將該組播數(shù)據(jù)報文交給組播協(xié)議進行處理,用于驅動PIM-SM的Register過程。從路由協(xié)議層面看,此時組播路由表的形成不是通過組播協(xié)議報文驅動形成的,而是由組播協(xié)議通過處理組播數(shù)據(jù)報文形成。在此情況下,如果滿足上述條件的組播數(shù)據(jù)報文流量很大時,會造成對組播協(xié)議所在Cpu的沖擊。為解決該問題,第一組播限流子模塊按圖3中以下步驟進行處理,即圖2中的步驟130可以進一步分為以下步驟步驟210,將到達轉發(fā)層的組播數(shù)據(jù)報文packet(key)上送協(xié)議Cpu;然后,轉發(fā)層和協(xié)議層將同時進行處理步驟220a,轉發(fā)層調用組播限流策略控制模塊,檢索存在的組播限流策略L(type,key),生成一個與key值關聯(lián)的,入接口為Null且轉發(fā)標志為N的臨時轉發(fā)路由條目T_M(key),后續(xù)相關的組播數(shù)據(jù)報文packet(key)被丟棄,不再上送協(xié)議Cpu,實現(xiàn)限流;同時,步驟220b,協(xié)議層根據(jù)收到的組播數(shù)據(jù)報文驅動協(xié)議狀態(tài)機,以生成組播路由轉發(fā)條目M(key);步驟230,如果能夠生成key值的正常轉發(fā)條目M(key),執(zhí)行步驟240,否則執(zhí)行步驟250;步驟240,將該條目同步到轉發(fā)層,轉發(fā)層用新生成的M(key)路由條目更新T_M(key),進入正常的組播路由轉發(fā),處理結束;步驟250,沒有生成新的M(key)路由條目時,轉發(fā)層根據(jù)T_M(key)附帶的限流策略,繼續(xù)限流,并根據(jù)策略決定何時刪除T_M(key)(如延時時間T后),結束限流。
可見,通過在組播轉發(fā)時引入了臨時組播路由表,通過該路由表的策略操作,可區(qū)分業(yè)務流,屏蔽大流量組播數(shù)據(jù)報文的組播協(xié)議進程上送,降低對組播協(xié)議所在Cpu的沖擊。
第二種情況,即有相應組播路由條目,但有協(xié)議需要正常組播數(shù)據(jù)報文上送協(xié)議Cpu導致的組播數(shù)據(jù)報文上送協(xié)議Cpu的限流方法。
當組播傳送數(shù)據(jù)報文能夠匹配到組播轉發(fā)路由條目時,組播數(shù)據(jù)報文依一定規(guī)則轉發(fā)。但如果協(xié)議要求此時的組播數(shù)據(jù)報文同時也要交由組播協(xié)議處理,比如在發(fā)生Spt和Rpt間的相互切換等情況下。如果此時滿足條件的組播數(shù)據(jù)報文的流量很大,也會造成對組播協(xié)議所在Cpu的沖擊。這種情況下,由第二組播限流子模塊通過以下步驟實現(xiàn)區(qū)分不同的組播業(yè)務流的限流處理,如圖4所示步驟310,組播協(xié)議層根據(jù)協(xié)議狀態(tài)機生成組播路由條目M(key);步驟320,如果該組播路由條目需要通知轉發(fā)層上送key鍵值的組播數(shù)據(jù)報文,即路由條目M(key)中置有Upsend標志,轉發(fā)層看到此標志時應上送對應鍵值為key的組播數(shù)據(jù)報文,執(zhí)行步驟340,否則,執(zhí)行下一步;步驟330,將M(key)同步給組播轉發(fā)層,用M(key)生成或更新轉發(fā)路由表,進入正常路由轉發(fā)流程,鍵值為key的組播數(shù)據(jù)流不再上送組播協(xié)議Cpu,結束組播流控;步驟340,調用組播限流策略控制模塊,根據(jù)key值,查詢與之匹配的限流策略F;步驟350,將限流策略F應用于上送標志Upsend,得到具有策略的上送標志Upsend’,即Upsend’=F(Upsend),相應地,此時的M(key)已經(jīng)成為了帶有限流策略的P_M(key);步驟360,同步P_M(key)到組播轉發(fā)層,組播轉發(fā)層接收到P_M(key)條目后,形成組播路由轉發(fā)條目;步驟370,當轉發(fā)層收到轉發(fā)鍵值為key的組播數(shù)據(jù)報文packet(key)時,匹配到P_M(key)路由轉發(fā)條目;步驟380,在轉發(fā)packet(key)時,根據(jù)P_M(key)的限流策略決定是否同時需要上送協(xié)議Cpu,以及上送后是否啟動即時限流,如果需要上送,執(zhí)行下一步,否則,執(zhí)行步驟400;步驟390,鍵值為Key的組播數(shù)據(jù)報文被上送到組播協(xié)議Cpu,返回步驟310,重復上述流程,只是生成的M(key)的內容和運用的策略有所不同;步驟400,策略性地屏蔽鍵值為key的組播數(shù)據(jù)報文上送協(xié)議Cpu。
可以看出,本實施例在傳統(tǒng)的UpSend上送機制基礎上,引入了區(qū)分業(yè)務流的上送限流策略,協(xié)議的UpSend標志用于維持正常的狀態(tài)機,而協(xié)議同步到轉發(fā)層的Upsend’是基于某種策略F的Upsend的函數(shù),即Upsend’=F(Upsend),轉發(fā)通過應用已經(jīng)具有某種限流策略的UpSend’實現(xiàn)此種情況下,防止組播數(shù)據(jù)流對組播協(xié)議所在Cpu的沖擊的功能。
需要說明的是,本實施例中,對于第一種情況下(步驟220b)或者后面的第三種情況下(步驟530)或者其它情況下在協(xié)議層產(chǎn)生的路由條目,如果滿足第二種限流策略,即M(key)帶有了upsend標志,則當它產(chǎn)生時,也為它賦予了第二種限流策略,此時M(key)就變成了P_M(key)。P_M(key)再同步到轉發(fā)層作為轉發(fā)表。
第三種情況,即匹配到相應的組播轉發(fā)條目,且滿足組播協(xié)議的Assert狀態(tài)機要求所導致的組播數(shù)據(jù)報文上送協(xié)議Cpu處理的限流方法。
當組播轉發(fā)收到的組播數(shù)據(jù)報文,雖然匹配到組播路由條目,但由于收到組播數(shù)據(jù)報文的接口不是該路由條目的入接口,而是該組播路由條目的出接口,Rpf檢查未通過,即滿足組播協(xié)議的Assert狀態(tài)機要求。對于這種組播數(shù)據(jù)報文,要交給組播協(xié)議用于觸發(fā)組播Assert狀態(tài)機,并不用于轉發(fā),也可能會產(chǎn)生組播數(shù)據(jù)報文對組播協(xié)議Cpu的沖擊。為解決該問題,第三組播限流子模塊按圖5中以下步驟進行處理,即圖2中的步驟180可以進一步分為以下步驟步驟510,在轉發(fā)層直接使用預先定義和設置的Assert限流策略,該策略可以是固定限流,不區(qū)分key,也可根據(jù)需要實現(xiàn)根據(jù)key值檢索限流策略表獲取相應的限流策略;步驟520,判斷策略是否要求packet(key)上送到組播協(xié)議Cpu,如果是,上送packet(key),執(zhí)行下一步,否則執(zhí)行步驟540;步驟530,組播協(xié)議層收到packet(key),按照正常的協(xié)議狀態(tài)機形成新的組播路由條目M’(key),并將M’(key)同步到組播轉發(fā)層,轉發(fā)層根據(jù)該條目進行轉發(fā)和上送,結束;步驟540,屏蔽packet(key),結束。
具體地,所述預先定義和設置的Assert限流策略可以是引入能夠區(qū)分Assert情況的限流標志,通過基于一定的策略,設置和清除該標志,限制用于觸發(fā)Assert狀態(tài)機的組播數(shù)據(jù)報文對組播協(xié)議所在Cpu的沖擊。
圖6示出了組播限流策略配置方法,包括以下步驟步驟610,在組播協(xié)議層配置組播限流策略表(type,key);這可以通過人為配置來設定,也可以通過預先定義的策略算法獲得不同的限流需求,對于不同業(yè)務流可以采用不同的限流粒度;步驟620,協(xié)議層將形成的組播限流策略同步到轉發(fā)層;步驟630,轉發(fā)層根據(jù)key和限流類型為索引形成組播限流策略表L(type,key)。
針對三種不同情況,本實施例通過兩種方式將限流策略應用到組播轉發(fā)層一種是通過協(xié)議層將限流策略直接應用于準備同步到轉發(fā)的相關組播路有條目,使得組播轉發(fā)層的用于轉發(fā)的路由條目就已經(jīng)是具有限流策略的條目,第二組播限流子模塊可實現(xiàn)該功能;另一種是組播協(xié)議將限流策略直接同步到轉發(fā),在轉發(fā)層形成組播限流策略表L(type,key),由第一、第三組播限流子模塊調用該策略表進行限流。
可見,本實施例在組播數(shù)據(jù)報文packet(key)到達轉發(fā)層時,根據(jù)當前組播轉發(fā)表的情況(參見圖2)確定限流類型(type)和限流模塊。對于第一種類型(對應于第一種情況)和第三種類型(對應于第三種情況),根據(jù)鍵值key,檢索組播限流策略表得到已有的限流策略L(type,key),將檢索到的限流策略作用于組播轉發(fā)和報文上送。對于第二種類型(對應于第二種情況),協(xié)議層形成具有區(qū)分業(yè)務類型(key)、具有限流策略(L)的新的組播轉發(fā)表P_M(key)并同步到轉發(fā)層,然后轉發(fā)層直接根據(jù)key值,利用已經(jīng)形成的P_M(key)轉發(fā)和上送,并可根據(jù)策略修改P_M(key)。因此,這三種限流類型的處理為流驅動導致的對協(xié)議Cpu沖擊的各種情況分別找到了對應的處理方法,但是其共同點在于能夠區(qū)分不同的組播業(yè)務流而采用相應的限流策略。
需強調的是,對于不同的使用需求和網(wǎng)絡環(huán)境,上述三種情況下采用的限流處理方法完全可以分別單獨使用,或者同時采用其中的任意二種。另外,雖然上述實施例針對的是采用稀疏模式獨立組播協(xié)議(PIM-SM)的IP組播,但在不改變協(xié)議本身的前提下,本發(fā)明也能夠應用于各種路由處理模式的IP協(xié)議和通訊設備(包括有線和無線設備)上。
綜上所述,與現(xiàn)有技術相比較,本發(fā)明引入了基于策略的組播限流處理方法,能夠區(qū)分不同的組播業(yè)務流和根據(jù)不同的導致組播業(yè)務流沖擊協(xié)議Cpu的原因,分別采取與之相適應的限流方法。與傳統(tǒng)的PIM_SM組播實現(xiàn)相比具有以下優(yōu)點A,防止了因為組播流驅動原因導致的整個IP通訊設備系統(tǒng)過載;B,降低了組播協(xié)議處理對組播轉發(fā)的影響,提高了組播轉發(fā)的效率;C,基于策略的區(qū)分組播業(yè)務流類型的限流方法,即防止了小流量組播流因為限流被屏蔽形成斷流的,也能夠根據(jù)不同的業(yè)務流的特性和需求提供不同的限流策略,增加了系統(tǒng)的靈活性。
權利要求
1.一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(a1)鍵值為key的組播數(shù)據(jù)報文packet(key)到達轉發(fā)層,沒有找到匹配的組播路由條目,將組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器;(a2)協(xié)議層根據(jù)收到的組播數(shù)據(jù)報文驅動協(xié)議狀態(tài)機以生成組播路由轉發(fā)條目M(key);同時,轉發(fā)層在配置的組播限流策略中檢索該情況下與key對應的限流策略,生成臨時轉發(fā)路由條目T_M(key),利用該條目對后續(xù)的組播數(shù)據(jù)報文packet(key)進行限流;(a3)如果協(xié)議層能夠生成key值的正常轉發(fā)條目M(key),將該條目同步到轉發(fā)層,轉發(fā)層用M(key)更新T_M(key),進入正常轉發(fā);否則,轉發(fā)層根據(jù)T_M(key)附帶的限流策略,繼續(xù)限流,并決定何時結束限流。
2.如權利要求1所述的方法,其特征在于,所述步驟(a2)中生成的臨時轉發(fā)路由條目T_M(key)的轉發(fā)標志為N,后續(xù)的組播數(shù)據(jù)報文packet(key)將被丟棄。
3.一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(b1)協(xié)議層根據(jù)協(xié)議狀態(tài)機生成組播路由條目M(key),如果該條目中置有上送標志Upsend,執(zhí)行下一步;否則,將M(key)同步到轉發(fā)層,生成或更新轉發(fā)路由表,進入正常路由轉發(fā)流程,組播流控結束;(b2)協(xié)議層在配置的組播限流策略中檢索該情況下與key對應的限流策略,應用于M(key),使其成為帶有限流策略的P_M(key),然后將其同步到轉發(fā)層;(b3)轉發(fā)層收到組播數(shù)據(jù)報文packet(key)時,找到匹配的組播路由條目,如果滿足轉發(fā)條件,首先轉發(fā)packet(key),并根據(jù)組播數(shù)據(jù)報文P_M(key)的限流策略實現(xiàn)對其上送協(xié)議處理器的限流。
4.如權利要求3所述的方法,其特征在于,所述步驟(b3)后還包括步驟(b4)如果根據(jù)P_M(key)的限流策略需要將組播數(shù)據(jù)報文packet(key)上送到協(xié)議處理器,則在上送后,返回執(zhí)行步驟(b1)。
5.如權利要求3所述的方法,其特征在于,所述步驟(b2)中,是通過將檢索到的限流策略應用于上送標志Upsend得到具有策略的上送標志Upsend’,得到相應的P_M(key)。
6.一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(c1)鍵值為key的組播數(shù)據(jù)報文packet(key)到達轉發(fā)層,匹配到相應的組播轉發(fā)條目,且滿足組播協(xié)議的Assert狀態(tài)機要求;(c2)在轉發(fā)層直接使用預先設置的斷言機制限流策略,判斷策略是否要求packet(key)上送到組播協(xié)議處理器,如要求上送,上送數(shù)據(jù)報文packet(key),然后協(xié)議層按照協(xié)議狀態(tài)機形成新的組播路由條目,同步到轉發(fā)層;如不要求上送,則屏蔽組播數(shù)據(jù)報文packet(key)。
7.如權利要求6所述的方法,其特征在于,所述預先設置的斷言機制限流策略是不區(qū)分鍵值的固定限流方式,或者是根據(jù)key值檢索到的相應的限流策略。
8.一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,包括以下步驟(d1)鍵值為key的組播數(shù)據(jù)報文packet(key)到達轉發(fā)層,轉發(fā)層判斷其是否能夠匹配到相應的轉發(fā)路由,如果能,執(zhí)行下一步,否則,執(zhí)行步驟(d8);(d2)判斷是否滿足轉發(fā)條件,如滿足,轉發(fā)層首先進入正常轉發(fā)流程轉發(fā)該packet(key),然后執(zhí)行下一步,否則執(zhí)行步驟(d6);(d3)判斷協(xié)議是否要求將組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器,如果是,轉發(fā)層將packet(key)上送協(xié)議層,執(zhí)行下一步,否則,不進行限流,結束;(d4)協(xié)議層接收到轉發(fā)層上送的組播數(shù)據(jù)報文packet(key),驅動協(xié)議狀態(tài)機生成新的組播路由條目M(key),如果M(key)置有上送標志Upsend,執(zhí)行下一步;否則,將M(key)同步到轉發(fā)層,轉發(fā)層根據(jù)新的組播路由條目M(key)對收到的組播數(shù)據(jù)報文packet(key)進行轉發(fā),結束;(d5)協(xié)議層檢索該情況下與key對應的限流策略并應用到M(key),得到帶有限流策略的P_M(key)并將其同步到轉發(fā)層,轉發(fā)層根據(jù)P_M(key)的限流策略實現(xiàn)對組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器的限流,結束;(d6)判斷是否滿足組播協(xié)議的斷言機制狀態(tài)機要求,如果滿足,執(zhí)行下一步;如果不滿足,丟棄組播數(shù)據(jù)報文packet(key),結束;(d7)在轉發(fā)層使用預先設置的斷言機制限流策略,如果策略要求packet(key)上送協(xié)議處理器,則上送數(shù)據(jù)報文packet(key),協(xié)議層按照協(xié)議狀態(tài)機形成新的組播路由條目同步到轉發(fā)層,轉發(fā)層再根據(jù)該條目進行轉發(fā)和上送,結束;如果策略不要求上送,則屏蔽該組播數(shù)據(jù)報文packet(key),結束;(d8)將組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器,協(xié)議層驅動協(xié)議狀態(tài)機以生成新的組播路由轉發(fā)條目;同時轉發(fā)層檢索該情況下與key對應的限流策略,生成臨時轉發(fā)路由條目T_M(key),根據(jù)該條目對后續(xù)的組播數(shù)據(jù)報文packet(key)進行限流;(d9)如果生成了新的組播路由轉發(fā)條目,同步到轉發(fā)層,轉發(fā)層用該條目更新T_M(key),進入正常轉發(fā)流程,結束;如果不能生成M(key),轉發(fā)層根據(jù)T_M(key)附帶的限流策略繼續(xù)限流,并根據(jù)策略決定何時限流結束。
9.如權利要求8所述的方法,其特征在于,所述步驟(d5)中,如果根據(jù)P_M(key)的限流策略需要將組播數(shù)據(jù)報文packet(key)上送到協(xié)議處理器,則在上送后,返回執(zhí)行步驟(d4)。
10.如權利要求8所述的方法,其特征在于,還包括以下對組播限流策略的配置方法(e1)通過人為設定或者通過預先定義的策略算法獲得不同的限流需求,在組播協(xié)議層配置以限流類型typet和鍵值key為索引的組播限流策略表;(e2)協(xié)議層將形成的組播限流策略同步到轉發(fā)層;(e3)轉發(fā)層根據(jù)鍵值key和限流類型type為索引形成組播限流策略表L(type,key)。
11.如權利要求8所述的方法,其特征在于,所述步驟(d7)和(d8)中,協(xié)議層生成新的組播路由條目時,如果該新條目置有上送標志Upsend,協(xié)議層也檢索該情況下與key對應的限流策略并應用到M(key),得到帶有限流策略的P_M(key),再將其同步到轉發(fā)層。
全文摘要
本發(fā)明公開一種區(qū)分多業(yè)務的抗IP組播數(shù)據(jù)流沖擊通信系統(tǒng)的方法,在鍵值為key的組播數(shù)據(jù)報文packet(key)到達轉發(fā)層時,如果沒有匹配的組播路由條目,或者匹配到相應的組播轉發(fā)條目且滿足組播協(xié)議的Assert狀態(tài)機要求,根據(jù)key檢索已有的限流策略L(type,key),將檢索到的限流策略作用于組播轉發(fā)和報文上送。如果找到了匹配的組播路由條目且協(xié)議要求將組播數(shù)據(jù)報文packet(key)上送協(xié)議處理器,則形成具有區(qū)分業(yè)務類型(key)具有限流策略的新的組播轉發(fā)表P_M(key),然后利用P_M(key)轉發(fā)和上送,并可根據(jù)策略修改P_M(key)。上述三種限流類型可以分別使用。本發(fā)明方法能夠區(qū)分不同的組播業(yè)務流采有相應策略,避免大流量多業(yè)務IP組播數(shù)據(jù)流對IP通訊設備的負載沖擊。
文檔編號H04L29/06GK1798098SQ20041010340
公開日2006年7月5日 申請日期2004年12月29日 優(yōu)先權日2004年12月29日
發(fā)明者黃進宏, 馮志堅, 都珂 申請人:中興通訊股份有限公司