專利名稱:Cpu保護方法及其裝置的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及一種CPU保護方法及其裝置。
背景技術:
隨著CPU (Central Processing Unit,中央處理器)研發(fā)和生產技術的發(fā)展,CPU 的處理性能得到了很大的提高,但是隨著各類技術的進步,對CPU處理能力的要求也日益 提高。例如,在交換機設備中,大批量的協議報文數據常常使得CPU的處理性能大大降低, 大數據量協議報文的攻擊也常常使得CPU陷入癱瘓,進而引發(fā)各種協議報文處理的中斷。 而CPU是交換機的功能核心,承載著交換機的各個業(yè)務處理,CPU的處理性能,尤其是數據 處理速度決定著交換機的處理性能。 目前已經出現了一些基于CPU占用率閾值判決來保護CPU免受大數據量報文攻擊 的技術方案。其中,比較典型的方法是獲得CPU當前的占用率,并與固定設置的CPU占用 率閾值進行比較,如果CPU當前的占用率高于CPU占用率閾值,則降低CPU的收包速率。
但在實際運行中,這種方式不能適應CPU在不同收包速率情況下對CPU進行保護 的要求,例如,在發(fā)生ARP (Address Resolution Protocol)報文攻擊時,根據較高的CPU占 用率閾值進行判決,則不能很好地對CPU進行保護,CPU癱瘓的可能性仍然較大;而在CPU 收包速率較低時,根據較低的CPU占用率閾值進行判決,則不能使CPU資源被靈活有效地得 到利用,造成了資源的浪費,影響了業(yè)務處理效率。因此現有的基于CPU占用率閾值判決的 CPU保護方式已不能滿足人們的需要。
發(fā)明內容
本發(fā)明實施例提供一種CPU保護方法及其裝置,用以解決現有技術因采用固定 CPU占用率閾值對CPU保護進行判決所導致的CPU保護性和資源利用率不能兼顧的問題。
本發(fā)明實施例提供的技術方法包括
—種CPU保護方法,包括 通過統計單位時間內發(fā)送給CPU的報文數量,得到CPU收包速率; 根據CPU收包速率與CPU占用率閾值的反比關系,確定出在所述CPU收包速率情
況下使用的CPU占用率閾值; 根據確定出的CPU占用率閾值與CPU當前的占用率,判斷是否需要對CPU進行保 護,并當判決為是時,限制CPU收包速率。
—種CPU保護裝置,包括 報文統計單元,用于通過統計單位時間內發(fā)送給CPU的報文數量,得到CPU收包速
率; 閾值確定單元,用于根據CPU收包速率與CPU占用率閾值的反比關系,確定出在所
述CPU收包速率情況下使用的CPU占用率閾值; 保護處理單元,用于根據所述閾值確定單元確定出的CPU占用率閾值與CPU當前的占用率,判斷是否需要對CPU進行保護,并當判決為是時,限制CPU收包速率。
本發(fā)明的上述實施例,通過在CPU運行的過程中根據CPU當前收包速率,以及CPU 收包速率與CPU占用率閾值的反比關系自適應地選取用于判決是否采取CPU保護措施的 CPU占用率閾值,從而一方面,在CPU收包速率較高時采用較低的閾值進行判決,以達到保 護CPU免收報文攻擊的目的,另一方面,在CPU收包速率較低時采用較高的閾值進行判決, 以達到有效利用CPU資源的目的。
圖1為本發(fā)明實施例提供的CPU收包速率與CPU占用率閾值的反比關系曲線示意 圖; 圖2a為本發(fā)明實施例提供的基于自適應CPU占用率閾值選取的CPU保護流程示 意圖; 圖2b為圖2a中的CPU保護流程的示意圖; 圖3為本發(fā)明實施例提供的基于自適應CPU占用率閾值選取的取消對CPU保護的 流程示意圖; 圖4為本發(fā)明實施例提供的CPU保護裝置的結構示意圖。
具體實施例方式
針對現有基于CPU占用率閾值判決的CPU保護技術中,當CPU受攻擊而引起占 用率過高所造成的處理數據緩慢,并影響其他正常協議報文處理的情況,本發(fā)明實施例提 出一種基于自適應閾值選取和判決的CPU保護方法和實現該方法的裝置,通過自適應選取 CPU占用率閾值,并基于此閾值實現動態(tài)的CPU防攻擊保護,達到自適應保護CPU的目的。
下面結合附圖對本發(fā)明實施例進行詳細描述。 為了達到自適應選擇CPU占用率閾值的目的,本發(fā)明實施例將CPU收包速率(即 單位時間內向CPU發(fā)送的報文數量)與CPU占用率閾值擬合成一個反比關系,通過這一反 比關系曲線,網絡設備,如,交換機,可以依據報文上送到CPU的瞬時速率來自適應的選取 CPU占用率閾值。該反比關系函數公式如式(1)所示,其對應的函數曲線如圖1所示 <formula>formula see original document page 5</formula>
其中,x為CPU瞬時收包速率,單位為卯s ;y為CPU占用率閾值;、為該反比關系 函數的曲率,b是對反比關系的一種校正參數,其中、和k2優(yōu)選為正數。當然不排除、為 1以及^為0的情況。 式(1)所示的反比函數公式和圖1所示的函數曲線說明瞬時收包速率越大,相 應的CPU占用率閾值越小,CPU收包速率與CPU占用率閾值的對應關系是一種動態(tài)變化的 關系,CPU占用率閾值取決于當時的實際收包速率,這符合對CPU進行保護的要求。當CPU 當前受到報文攻擊時,其瞬時收包速率較高,相應地,CPU占用率也會提高,此時采用較低的 CPU占用率閾值作為是否對CPU采取保護措施的判決依據,可以有效地降低由于報文攻擊 導致CPU癱瘓的可能性;當CPU當前的瞬時收包率較低時,相應地,CPU占用率也會降低,此 時采用較高的CPU占用率閾值作為是否對CPU采取保護措施的判決依據,可以有效提高CPU資源利用率。 式(1)所示的反比函數公式,具體應用于特定類型的網絡設備,如,交換機,則需 要依據具體情況設置、和k2的值。 一般地,lq和k2的取值可根據CPU所在設備的特性和 CPU的性能要求進行設定。 依據上述CPU收包速率和CPU占用率閾值的反比關系,本發(fā)明實施例提供的CPU 保護流程,可如圖2a和圖3所示,其中,圖2a示出了對CPU采取保護措施的流程,圖3示出 了對已經采取保護措施的CPU取消保護措施的流程。 通常,對CPU的監(jiān)控可周期進行,在每個監(jiān)控周期可統計發(fā)送給CPU的報文的數 量。當監(jiān)控周期達到時,如圖2a所示,執(zhí)行以下步驟 步驟201、根據本監(jiān)控周期統計得到的上送CPU的報文數量(即向CPU發(fā)送的報文
的數量),計算出CPU的收包速率,將該CPU收包速率作為CPU當前的瞬時收包速率; 步驟202、通過CPU收包速率與CPU占用率閾值的反比關系函數(或反比關系曲
線),確定在CPU當前的瞬時收包速率的情況下應使用的CPU占用率閾值; 步驟203、將CPU當前的占用率與確定出的CPU占用率閾值進行比較,如果CPU當
前的占用率超過該閾值,則執(zhí)行步驟204 ;否則,執(zhí)行步驟205 ; 步驟204、啟動對CPU的保護流程,以保護CPU免受報文攻擊; 步驟205、不啟動對CPU的保護流程,按照常規(guī)方式對上送CPU的報文進行處理。
常規(guī)的報文處理流程可包括將報文送入相應的軟件隊列,將軟件隊列中的報文送到上層
協議棧。 上述流程的步驟204中,所啟動的CPU保護流程可如圖2b所示,包括以下步驟
步驟2041、對發(fā)送給CPU的報文進行分析統計,確定出這些報文的協議類型、各協 議類型報文的數量以及各協議報文來源的端口; 步驟2042、啟動ACL (Access Control List,訪問控制列表)功能,將其中的某個 或某些端口的端口標識從相應的協議列表中移除,從而達到阻止對應協議報文上送CPU的 目的。 較佳地,根據上一步的統計結果,將發(fā)包量大的端口從協議列表中移除,如,將發(fā) 包量最大的端口從協議列表中移除,或者針對特定協議類型的報文,將該協議類型報文來 源的端口從協議列表中刪除。因為這種報文很可能是攻擊CPU的報文,通過阻止這種報文 上送CPU,可達到保護CPU免受攻擊的目的。 步驟2043、發(fā)出告警,將統計出的攻擊報文的類型以及所來源的端口提示給用戶, 以便用戶查找攻擊原因。該步驟可選。該步驟可在步驟2042之前執(zhí)行,或者與2042并行 執(zhí)行。 當CPU的負載下降時,對采取了保護措施的CPU還可以取消保護措施,以便提高 CPU的資源利用率。取消CPU保護措施的流程可如圖3所示,當CPU監(jiān)控周期到達時,執(zhí)行 以下步驟 步驟301、根據本監(jiān)控周期統計得到的上送CPU的報文數量,計算出CPU的收包速 率,將該CPU收包速率作為CPU當前的瞬時收包速率; 步驟302、通過CPU收包速率與CPU占用率閾值的反比關系函數(或反比關系曲 線),確定出CPU當前的瞬時收包速率情況下應使用的CPU占用率閾值;
步驟303、將CPU當前的占用率與確定出的CPU占用率閾值進行比較,如果CPU當 前的占用率低于該閾值,則執(zhí)行步驟304 ;否則,執(zhí)行步驟305 ; 步驟304、通過將在CPU保護流程中從協議列表中移除的端口 (如端口標識)重新 移入到相應的協議列表,以取消對CPU的保護措施,恢復通過該端口上送CPU報文,從而提 高CPU的資源利用率; 步驟305、繼續(xù)保持CPU當前的保護狀態(tài)。 本發(fā)明的上述實施例中,在確定用于判斷是否啟動CPU保護流程的CPU占用率閾 值時,可根據圖1所示的曲線確定與CPU當前的收包速率對應的閾值作為判斷用的閾值, 還可以在該閾值的基礎上向上取得一上限值作為判斷用的閾值;在確定用于判斷是否取消 CPU保護流程的CPU占用率閾值時,可根據圖1所示的曲線確定與CPU當前的收包速率對 應的閾值作為判斷用的閾值,還可以在該閾值的基礎上向下取得一下限值作為判斷用的閾 值。 該上限閾值和下限閾值界定出一個閾值區(qū)間。當根據CPU占用率閾值對是否采取 CPU保護措施進行判決時,可將該上限閾值作為判決依據;當根據CPU占用率閾值對是否取 消CPU保護措施進行判決時,可將該下限閾值作為判決依據。例如
根據CPU當前的收包速率獲得對應的CPU占用率閾值為y,則根據閾值y確定出的 CPU占用率上限閾值為yl = y+Ayl(0《A yl),根據閾值y確定出的CPU占用率下限閾值 y2 = y-Ay2(0《Ay2);當根據CPU占用率閾值對是否采取CPU保護措施進行判決時,以 yl作為判決依據,將CPU當前的占用率與yl進行比較;當根據CPU占用率閾值對是否取消 CPU保護措施進行判決時,以y2作為判決依據,將CPU當前的占用率與y2進行比較。yl和 y2的取值可包括以下組合情況 yl = y, y2 = y ;即僅根據圖1所示曲線計算出的CPU占用率閾值進行判決; yl = y+Ayl(0 < Ayl), y2 = y ;
yl = y, y2 = y-Ay2(0 < Ay2);
yl = y+ A yl (0 < A yl) , y2 = y_ A y2 (0 < A y2)。 以上限值為yl =y+Ayl(0< A yl)、下限值為y2 = y_ A y2 (0 < A y2)為例,可 以看出,在CPU當前的占用率高于yl時,才啟動對CPU的保護,在CPU當前的占用率低于y2 時,才取消對CPU的保護,而當CPU的占用率介于yl和y2之間時,保持當前的狀態(tài),這樣可 以避免頻繁地啟動或取消對CPU的保護操作,從而減少系統開銷和保證系統的穩(wěn)定性。
本發(fā)明的上述流程,可通過由軟件編程方式實現的CPU保護裝置來實現。
如圖4所示,為本發(fā)明實施例提供的CPU保護裝置的結構示意圖,該裝置包括報 文統計單元401、閾值確定單元402、保護處理單元403,還可包括存儲單元404以及告警單 元405,其中: 存儲單元404中存儲有CPU收包速率與CPU占用率閾值之間的反比關系函數,該 函數可如式(1)所示; 報文統計單元401,用于通過統計單位時間內發(fā)送給CPU的報文數量,得到CPU收 包速率; 閾值確定單元402,用于用于根據存儲單元404存儲的CPU收包速率與CPU占用率 閾值的反比關系函數,確定出報文統計單元401統計得到該CPU收包速率的情況下使用的CPU占用率閾值; 保護處理單元403,用于根據閾值確定單元402確定出的CPU占用率閾值與CPU當 前的占用率,判斷是否需要對CPU進行保護,并當判決為是時,限制CPU收包速率;
告警單元405,用于在保護處理單元判斷出CPU當前的占用率高于CPU占用率閾值 時,發(fā)送告警提示,以提示用戶攻擊CPU的報文類型以及來源的端口 。 閾值確定單元402確定用于判斷是否保護CPU時使用的CPU占用率閾值可通過如 下方式實現 方式一 根據CPU收包速率與CPU占用率閾值的反比關系,確定與統計得到的CPU 當前的收包率對應的CPU占用率閾值,并將該閾值作為判決依據; 方式二 在根據CPU收包速率與CPU占用率閾值的反比關系,確定出與統計得到的 CPU當前的收包率對應的CPU占用率閾值之后,在該閾值基礎上向上確定一CPU占用率上限 閾值,并將其作為判決依據。 保護處理單元402可通過如下方式限制CPU收包速率統計發(fā)送給CPU的報文所 屬的協議類型、各協議類型報文的數量以及各協議類型報文來源的端口 ;根據統計得到的 報文所屬的協議類型或各協議類型報文的數量,選定一種或多種協議類型的報文;將選定 的協議類型報文來源的端口的端口標識從協議列表中移除,以阻止將來源于該端口的報文 發(fā)送給CPU。 在保護處理單元403限制CPU收包速率之后,報文統計單元401進一步通過統計 單位時間內發(fā)送給CPU的報文數量,得到CPU收包速率;閾值確定單元402進一步根據CPU 收包速率與CPU占用率閾值的反比關系,確定出與報文統計單元401統計得到的CPU收包 速率對應的CPU占用率閾值;保護處理單元403進一步根據閾值確定單元402確定出的CPU 占用率閾值與CPU當前的占用率,判斷是否需要取消對CPU的保護,并當判決為是時,取消 對CPU收包速率的限制。 閾值確定單元402確定用于判斷是否取消CPU保護時使用的CPU占用率閾值可通 過如下方式實現 方式一 根據CPU收包速率與CPU占用率閾值的反比關系,確定與統計得到的CPU 當前的收包率對應的CPU占用率閾值,并將該閾值作為判決依據; 方式二 在根據CPU收包速率與CPU占用率閾值的反比關系,確定出與統計得到的 CPU當前的收包率對應的CPU占用率閾值之后,在該閾值基礎上向上確定一CPU占用率上限 閾值,并將其作為判決依據。 保護處理單元403通過以下方式取消對CPU收包速率的限制將從協議列表中移
除的端口標識重新移入協議列表,以恢復將來源于該端口的報文發(fā)送給CPU。 本發(fā)明上述實施例提供的方法和裝置,可應用于交換機設備上,能夠為交換機設
備的正常數據處理提供類似于防火墻的功能。 綜上所述,本發(fā)明實施例提出了基于自適應閾值選取的CPU保護方案,給出了自 適應閾值選取的反比函數曲線,通過該曲線的確定可以完成CPU保護自動閾值的選取工 作,并結合ACL完成將具體端口從攻擊協議列表中移除的操作,這樣可以較大限度的不影 響其余端口收發(fā)此類型的協議報文,也不會影響該端口收發(fā)其他類型的協議報文,并且對 CPU提供了較大限度的保護,進而維護了設備的穩(wěn)定運行。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍 之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
一種CPU保護方法,其特征在于,包括通過統計單位時間內發(fā)送給CPU的報文數量,得到CPU收包速率;根據CPU收包速率與CPU占用率閾值的反比關系,確定出在所述CPU收包速率情況下使用的CPU占用率閾值;根據確定出的CPU占用率閾值與CPU當前的占用率,判斷是否需要對CPU進行保護,并當判決為是時,限制CPU收包速率。
2. 如權利要求1所述的方法,其特征在于,根據確定出的CPU占用率閾值與CPU當前的占用率,判斷是否需要對CPU進行保護,具體為將CPU當前的占用率與確定出的CPU占用率閾值進行比較,若CPU當前的占用率高于 所述CPU占用率閾值,則需要對CPU進行保護;否則,不需要對CPU進行保護。
3. 如權利要求1所述的方法,其特征在于,限制CPU收包速率,包括統計發(fā)送給CPU的報文所屬的協議類型、各協議類型報文的數量以及各協議類型報文 來源的端口;根據統計得到的報文所屬的協議類型或各協議類型報文的數量,選定一種或多種協議 類型的報文;將選定的協議類型報文來源的端口的端口標識從協議列表中移除。
4. 如權利要求1所述的方法,其特征在于,限制CPU收包速率之后,還包括 通過統計單位時間內發(fā)送給CPU的報文數量,得到CPU收包速率;根據CPU收包速率與CPU占用率閾值的反比關系,確定出在所述CPU收包速率情況下 使用的CPU占用率閾值;根據確定出的CPU占用率閾值與CPU當前的占用率,判斷是否需要取消對CPU的保護, 并當判決為是時,取消對CPU收包速率的限制。
5. 如權利要求4所述的方法,其特征在于,根據確定出的CPU占用率閾值與CPU當前的 占用率,判斷是否需要取消對CPU的保護,具體為將CPU當前的占用率與確定出的CPU占用率閾值進行比較,若CPU當前的占用率低于 所述CPU占用率閾值,則需要取消對CPU的保護;否則,不需要取消對CPU的保護。
6. 如權利要求4所述的方法,其特征在于,取消對CPU收包速率的限制,具體為將從 協議列表中移除的端口標識重新移入協議列表,以恢復將來源于該端口的報文發(fā)送給CPU。
7. 如權利要求4、5或6所述的方法,其特征在于,確定出的用于判斷是否需要對CPU進行保護的CPU占用率閾值為根據所述反比關系 確定出的與統計得到的CPU收包速率對應的CPU占用率閾值;確定出的用于判斷是否需要 取消對CPU的保護的CPU占用率閾值為在根據所述反比關系確定出的與統計得到的CPU收包速率對應的CPU占用率閾值或在該閾值的基礎上向下取得的CPU占用率下限閾值;或者,確定出的用于判斷是否需要對CPU進行保護的CPU占用率閾值為在根據所述反比關系確定出的與統計得到的CPU收包速率對應的CPU占用率閾值的基礎上向上取得的 CPU占用率上限閾值;確定出的用于判斷是否需要取消對CPU的保護的CPU占用率閾值為 根據所述反比關系確定出的與統計得到的CPU收包速率對應的CPU占用率閾值或在該閾值 基礎上向下取得的CPU占用率下限閾值。
8. 如權利要求1-6任一項所述的方法,其特征在于,CPU收包速率與CPU占用率閾值所成的反比關系,具體為y = k乂x+k2其中,x表示CPU收包速率;y表示CPU的占用率閾值;、表示曲率參數,b表示校正參 數,Vk2為正數。
9. 一種CPU保護裝置,其特征在于,包括報文統計單元,用于通過統計單位時間內發(fā)送給CPU的報文數量,得到CPU收包速率;閾值確定單元,用于根據CPU收包速率與CPU占用率閾值的反比關系,確定出在所述CPU收包速率情況下使用的CPU占用率閾值;保護處理單元,用于根據所述閾值確定單元確定出的CPU占用率閾值與CPU當前的占 用率,判斷是否需要對CPU進行保護,并當判決為是時,限制CPU收包速率。
10. 如權利要求9所述的裝置,其特征在于,所述保護處理單元限制CPU收包速率的過 程,包括統計發(fā)送給CPU的報文所屬的協議類型、各協議類型報文的數量以及各協議類型 報文來源的端口 ;根據統計得到的報文所屬的協議類型或各協議類型報文的數量,選定一 種或多種協議類型的報文;以及,將選定的協議類型報文來源的端口的端口標識從協議列 表中移除。
11. 如權利要求9或10所述的裝置,其特征在于,所述報文統計單元在所述保護處理單元限制CPU收包速率之后,進一步用于通過統 計單位時間內發(fā)送給CPU的報文數量,得到CPU收包速率;所述閾值確定單元在所述保護處理單元限制CPU收包速率之后,進一步用于根據CPU 收包速率與CPU占用率閾值的反比關系,確定出在所述CPU收包速率情況下使用的CPU占 用率閾值;所述保護處理單元在所述保護處理單元限制CPU收包速率之后,進一步用于根據確 定出的CPU占用率閾值與CPU當前的占用率,判斷是否需要取消對CPU的保護,并當判決為 是時,取消對CPU收包速率的限制。
全文摘要
本發(fā)明公開了一種CPU保護方法及其裝置,該方法包括通過統計單位時間內發(fā)送給CPU的報文數量,得到CPU收包速率;根據CPU收包速率與CPU占用率閾值的反比關系,確定出在所述CPU收包速率情況下使用的CPU占用率閾值;根據確定出的CPU占用率閾值與CPU當前的占用率,判斷是否需要對CPU進行保護,并當判決為是時,限制CPU收包速率。本發(fā)明通過自適應選取CPU占用率閾值,并基于此閾值實現動態(tài)的CPU防攻擊保護,達到自適應保護CPU的目的。
文檔編號H04L12/56GK101710897SQ20091022620
公開日2010年5月19日 申請日期2009年11月20日 優(yōu)先權日2009年11月20日
發(fā)明者康偉 申請人:中興通訊股份有限公司