分布式交換路由器系統的cpu報文流量控制方法
2023-04-25 05:21:56 3
專利名稱:分布式交換路由器系統的cpu報文流量控制方法
技術領域:
本發明屬於現代IP通信網絡中的分布式交換路由器系統技術領域,尤其涉及具有多個業務板卡的機架式交換路由設備中CPU報文的流量控制方法。
系統運行中,大量的協議報文需要由各個業務板交給主控板,由主控板完成協議處理。我們把這樣的報文稱為「CPU報文」,其意義是這些報文不由轉發晶片處理,需要由CPU分析。無論業務板還是主控板,CPU資源都是有限的,必須被合理地分配到各個任務中。如果大量的CPU報文處理佔據了幾乎全部的CPU資源將使其他任務得不到調度,會造成系統運行不正常,甚至崩潰。這種情況經常發生在網絡受到攻擊、網絡設備發生錯誤或者網絡狀態未穩定的時候。CPU報文流量控制的任務就是在出現上述狀況時將送到CPU報文的數目控制在CPU可以處理的水平,並且保證仍有一定的CPU資源能被其他的任務使用。CPU報文流量控制對提高分布式交換路由器系統的可靠性和健壯性有非常重要的意義。
本發明的技術方案如下分布式交換路由器系統的CPU報文流量控制方法,通過實時統計當前系統各種類型CPU報文在單位時間內的數目對各種類型CPU報文的流量進行監測,並根據各種CPU的報文控制流量門限值判斷是否需要採取報文控制手段,減少CPU報文的流量。
所述的分布式交換路由器系統的CPU報文流量控制方法,報文控制的流量門限值可以根據當前CPU的利用率做自適應調整,CPU佔用率高時,報文控制流量門限低,保證系統不崩潰;CPU空閒時,報文控制流量門限高,保證有良好的CPU報文處理性能。
所述的分布式交換路由器系統的CPU報文流量控制方法,當前系統各種類型CPU報文在單位時間內的數目可以通過一個CPU報文流量統計模塊統計獲得,該CPU報文流量統計模塊對每種類型的報文建立一個計數器,每收到一個報文計數器值加一;同時系統中有一個定時器,以設定的時間Δt為周期對所有報文計數器清空,如此,則每個報文計數器的當前值則為當前該類型CPU報文的流量。報文控制的流量門限值的計算由所述CPU報文流量統計模塊的定時器觸發,每間隔Δt時間計算一次。計算公式如下Ct(i)=Cmin(i)+a(i)*(1-P%)*Cmax(i)式中各參數含義如下Ct(i)-i類型CPU報文在t時刻的流量門限值;Cmin(i)-i類型CPU報文最小報文處理流量;Cmax(i)-i類型CPU報文最大報文處理流量;P%-t時刻CPU佔用率;a(i)-i類型CPU報文的流量門限調整係數。
對於參數Cmin(i),Cmax(i),a(i),在不同的設備上是不一樣的,這些參數是一個試驗值,可以通過做試驗來確定一個合適的值。同時這幾個值也可以通過命令行來修改。總之,調整到一個使用者認為合適的值就可以。
所述的分布式交換路由器系統的CPU報文流量控制方法,主控板上的報文控制方法是首先對CPU報文分類,在所述CPU報文流量監測給出某類CPU報文流量超過該類型CPU報文控制的流量門限值的信號後,丟棄後續接收到的該類CPU報文,直到該類CPU報文的計數被刷新後,流量重新開始統計為止。業務板上的CPU報文控制方法是,通過設置分組處理器的報文過濾規則捕獲協議處理需要的協議報文;在所述CPU報文流量監測給出某類CPU報文流量超過該類型CPU報文控制的流量門限值的信號後,則關閉硬體對這種報文的捕獲;當該類CPU報文的計數被刷新後,流量重新開始統計,被關閉的過濾規則自動重新打開,相應類型的CPU報文再次開始被捕獲。
本發明包括兩個部分CPU報文流量監測和CPU報文控制。CPU報文流量監測的功能是實時統計當前系統各種類型的CPU報文單位時間內的數目,也即「報文流量」,並根據系統對報文的處理能力判斷是否需要採取報文控制手段。
CPU報文控制分為主控板CPU報文控制和業務板CPU報文控制。由於主控板和業務板所分擔的任務不同,主控板上通常沒有分組處理器,沒有業務埠。主控板的CPU報文都是由業務板從板間控制信道傳遞而來。因此主控板和業務板在流量控制的方法上有所不同。主控板上首先對CPU報文分類,在CPU報文流量監測給出某類CPU報文超量信號後,丟棄後續接收到的該類報文。業務板上CPU報文獲得的主要途徑是通過分組處理器根據所設置的過濾規則捕獲的。因此業務板上的CPU報文控制主要通過設置硬體過濾規則來達到目的。
CPU報文流量控制的一個要點是必須對各類CPU報文能精確地做到捕獲與不捕獲,當禁止某類報文時,這類報文不會通過別的規則被捕獲。要求對所有CPU報文特徵做詳細地分析,包括報文的目的MAC地址,源MAC地址,乙太網類型,目的IP位址,源IP位址,應用層協議等。分析的目的在於排除報文過濾規則之間的相關性,做到既能一個不漏的捕獲應該捕獲的報文,也能在實施控制時不讓報文被其他的過濾規則所捕獲。換言之,每一條報文過濾規則只能捕獲一種類型的報文,當規則被刪除後,這種類型的報文不能被其它規則捕獲。
本發明的優點和積極效果本發明的CPU報文流量的監測和控制方法,在CPU報文流量超過CPU處理能力時採取一定的措施減少CPU報文的流量,從而降低對CPU資源的佔用率,防止主控板和業務板的CPU資源在受到大量CPU報文的衝擊下被耗盡,使系統不至於因此而崩潰。
當前系統各種類型CPU報文在單位時間內的數目通過一個CPU報文流量統計模塊統計獲得,該CPU報文流量統計模塊對每種類型的報文建立一個計數器,每收到一個報文計數器值加一;同時系統中有一個定時器,以1秒為周期對所有報文計數器清空,如此,則每個報文計數器的當前值則為當前該類型CPU報文的流量。
報文控制的流量門限值的計算由CPU報文流量統計模塊的定時器觸發,每秒計算一次。計算公式如下Ct(i)=Cmin(i)+a(i)*(1-P%)*Cmax(i)Ct(i)-i類型CPU報文在t時刻的流量門限值;Cmin(i)-i類型CPU報文最小報文處理流量;Cmax(i)-i類型CPU報文最大報文處理流量;P%-t時刻CPU佔用率;a(i)-i類型CPU報文的流量門限調整係數。
業務板CPU報文控制流程如下1.設置分組處理器的報文過濾規則以捕獲協議處理需要的協議報文。分組處理器根據所設置的CPU報文過濾規則捕獲報文。
2.分析CPU報文,識別其類型。根據類型進入不同的CPU報文隊列。
3.CPU報文流量統計模塊對報文進行統計,計算出流量,並與當前允許該類報文控制的流量門限值進行比較。
4.如果報文流量未超過門限,則報文進入隊列,然後經過主控板與業務板之間的控制信道發往主控板。
5.如果報文流量超過門限則啟動報文控制,該報文被丟棄,同時該類報文的硬體過濾規則被關閉,停止捕獲報文。
6.CPU報文流控定時器按照固定間隔時間開啟所有被關閉的硬體過濾規則,業務板又開始捕獲這類報文。
主控板CPU報文控制流程如下1.主控板從控制信道獲取從業務板發來的CPU報文。
2.分析CPU報文,識別其類型,根據類型進入不同的報文隊列,CPU報文流量統計模塊計算當前的流量。
3.如果報文流量未超過流量門限,則報文被CPU處理,報文流量計數增加。
4.如果報文流量超過流量門限,報文被丟棄,並且在報文流量計數被刷新之前所有的該類型報文都將被丟棄。
5.CPU報文流控定時器刷新所有的報文流量計數器,重新開始流量統計。
權利要求
1.分布式交換路由器系統的CPU報文流量控制方法,其特徵在於,通過實時統計當前系統各種類型CPU報文在單位時間內的數目對各種類型CPU報文的流量進行監測,並根據各種CPU的報文控制流量門限值判斷是否需要採取報文控制手段,減少CPU報文的流量。
2.如權利要求1所述的分布式交換路由器系統的CPU報文流量控制方法,其特徵在於,所述報文控制的流量門限值根據當前CPU的利用率做自適應調整,CPU佔用率高時,報文控制流量門限低;CPU空閒時,報文控制流量門限高。
3.如權利要求1所述的分布式交換路由器系統的CPU報文流量控制方法,其特徵在於,所述當前系統各種類型CPU報文在單位時間內的數目是通過一個CPU報文流量統計模塊統計獲得的,該CPU報文流量統計模塊對每種類型的報文建立一個計數器,每收到一個報文計數器值加一;同時系統中有一個定時器,以設定的時間Δt為周期對所有報文計數器清空,如此,則每個報文計數器的當前值則為當前該類型CPU報文的流量。
4.如權利要求3所述的分布式交換路由器系統的CPU報文流量控制方法,其特徵在於,所述報文控制的流量門限值的計算由所述CPU報文流量統計模塊的定時器觸發,每間隔Δt時間計算一次,計算公式如下Ct(i)=Cmin(i)+a(i)*(1-P%)*Cmax(i)Ct(i)-i類型CPU報文在t時刻的流量門限值;Cmin(i)-i類型CPU報文最小報文處理流量;Cmax(i)-i類型CPU報文最大報文處理流量;P%-t時刻CPU佔用率;a(i)-i類型CPU報文的流量門限調整係數。
5.如權利要求1-4中任一項權利要求所述的分布式交換路由器系統的CPU報文流量控制方法,其特徵在於,主控板上的報文控制方法是首先對CPU報文分類,在所述CPU報文流量監測給出某類CPU報文流量超過該類型CPU報文控制的流量門限值的信號後,丟棄後續接收到的該類CPU報文,直到該類CPU報文的計數被刷新後,流量重新開始統計為止;業務板上的CPU報文控制方法是,通過設置分組處理器的報文過濾規則捕獲協議處理需要的協議報文;在所述CPU報文流量監測給出某類CPU報文流量超過該類型CPU報文控制的流量門限值的信號後,則關閉硬體對這種報文的捕獲;當該類CPU報文的計數被刷新後,流量重新開始統計,被關閉的過濾規則自動重新打開,相應類型的CPU報文再次開始被捕獲。
全文摘要
本發明提供了分布式交換路由器系統的CPU報文流量控制方法,通過實時統計當前系統各種類型CPU報文在單位時間內的數目對各種類型CPU報文的流量進行監測,並根據各種CPU的報文控制流量門限值判斷是否需要採取報文控制手段,減少CPU報文的流量。採用本發明的技術方案,在CPU報文流量超過CPU處理能力時採取一定的措施減少CPU報文的流量,從而降低對CPU資源的佔用率,防止主控板和業務板的CPU資源在受到大量CPU報文的衝擊下被耗盡,使系統不至於因此而崩潰。
文檔編號H04L12/56GK1477823SQ0315039
公開日2004年2月25日 申請日期2003年7月31日 優先權日2003年7月31日
發明者李德爾, 沈忱, 夏迎春, 王東 申請人:北京港灣網絡有限公司