Cpu保护方法及其装置的制作方法

文档序号:7719285阅读:143来源:国知局
专利名称:Cpu保护方法及其装置的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种CPU保护方法及其装置。
背景技术
随着CPU (Central Processing Unit,中央处理器)研发和生产技术的发展,CPU 的处理性能得到了很大的提高,但是随着各类技术的进步,对CPU处理能力的要求也日益 提高。例如,在交换机设备中,大批量的协议报文数据常常使得CPU的处理性能大大降低, 大数据量协议报文的攻击也常常使得CPU陷入瘫痪,进而引发各种协议报文处理的中断。 而CPU是交换机的功能核心,承载着交换机的各个业务处理,CPU的处理性能,尤其是数据 处理速度决定着交换机的处理性能。 目前已经出现了一些基于CPU占用率阈值判决来保护CPU免受大数据量报文攻击 的技术方案。其中,比较典型的方法是获得CPU当前的占用率,并与固定设置的CPU占用 率阈值进行比较,如果CPU当前的占用率高于CPU占用率阈值,则降低CPU的收包速率。
但在实际运行中,这种方式不能适应CPU在不同收包速率情况下对CPU进行保护 的要求,例如,在发生ARP (Address Resolution Protocol)报文攻击时,根据较高的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收包速率情况下使用的CPU占用率阈值; 保护处理单元,用于根据所述阈值确定单元确定出的CPU占用率阈值与CPU当前的占用率,判断是否需要对CPU进行保护,并当判决为是时,限制CPU收包速率。
本发明的上述实施例,通过在CPU运行的过程中根据CPU当前收包速率,以及CPU 收包速率与CPU占用率阈值的反比关系自适应地选取用于判决是否采取CPU保护措施的 CPU占用率阈值,从而一方面,在CPU收包速率较高时采用较低的阈值进行判决,以达到保 护CPU免收报文攻击的目的,另一方面,在CPU收包速率较低时采用较高的阈值进行判决, 以达到有效利用CPU资源的目的。


图1为本发明实施例提供的CPU收包速率与CPU占用率阈值的反比关系曲线示意 图; 图2a为本发明实施例提供的基于自适应CPU占用率阈值选取的CPU保护流程示 意图; 图2b为图2a中的CPU保护流程的示意图; 图3为本发明实施例提供的基于自适应CPU占用率阈值选取的取消对CPU保护的 流程示意图; 图4为本发明实施例提供的CPU保护装置的结构示意图。
具体实施例方式
针对现有基于CPU占用率阈值判决的CPU保护技术中,当CPU受攻击而引起占 用率过高所造成的处理数据缓慢,并影响其他正常协议报文处理的情况,本发明实施例提 出一种基于自适应阈值选取和判决的CPU保护方法和实现该方法的装置,通过自适应选取 CPU占用率阈值,并基于此阈值实现动态的CPU防攻击保护,达到自适应保护CPU的目的。
下面结合附图对本发明实施例进行详细描述。 为了达到自适应选择CPU占用率阈值的目的,本发明实施例将CPU收包速率(即 单位时间内向CPU发送的报文数量)与CPU占用率阈值拟合成一个反比关系,通过这一反 比关系曲线,网络设备,如,交换机,可以依据报文上送到CPU的瞬时速率来自适应的选取 CPU占用率阈值。该反比关系函数公式如式(1)所示,其对应的函数曲线如图1所示 <formula>formula see original document page 5</formula>
其中,x为CPU瞬时收包速率,单位为卯s ;y为CPU占用率阈值;、为该反比关系 函数的曲率,b是对反比关系的一种校正参数,其中、和k2优选为正数。当然不排除、为 1以及^为0的情况。 式(1)所示的反比函数公式和图1所示的函数曲线说明瞬时收包速率越大,相 应的CPU占用率阈值越小,CPU收包速率与CPU占用率阈值的对应关系是一种动态变化的 关系,CPU占用率阈值取决于当时的实际收包速率,这符合对CPU进行保护的要求。当CPU 当前受到报文攻击时,其瞬时收包速率较高,相应地,CPU占用率也会提高,此时采用较低的 CPU占用率阈值作为是否对CPU采取保护措施的判决依据,可以有效地降低由于报文攻击 导致CPU瘫痪的可能性;当CPU当前的瞬时收包率较低时,相应地,CPU占用率也会降低,此 时采用较高的CPU占用率阈值作为是否对CPU采取保护措施的判决依据,可以有效提高CPU资源利用率。 式(1)所示的反比函数公式,具体应用于特定类型的网络设备,如,交换机,则需 要依据具体情况设置、和k2的值。 一般地,lq和k2的取值可根据CPU所在设备的特性和 CPU的性能要求进行设定。 依据上述CPU收包速率和CPU占用率阈值的反比关系,本发明实施例提供的CPU 保护流程,可如图2a和图3所示,其中,图2a示出了对CPU采取保护措施的流程,图3示出 了对已经采取保护措施的CPU取消保护措施的流程。 通常,对CPU的监控可周期进行,在每个监控周期可统计发送给CPU的报文的数 量。当监控周期达到时,如图2a所示,执行以下步骤 步骤201、根据本监控周期统计得到的上送CPU的报文数量(即向CPU发送的报文
的数量),计算出CPU的收包速率,将该CPU收包速率作为CPU当前的瞬时收包速率; 步骤202、通过CPU收包速率与CPU占用率阈值的反比关系函数(或反比关系曲
线),确定在CPU当前的瞬时收包速率的情况下应使用的CPU占用率阈值; 步骤203、将CPU当前的占用率与确定出的CPU占用率阈值进行比较,如果CPU当
前的占用率超过该阈值,则执行步骤204 ;否则,执行步骤205 ; 步骤204、启动对CPU的保护流程,以保护CPU免受报文攻击; 步骤205、不启动对CPU的保护流程,按照常规方式对上送CPU的报文进行处理。
常规的报文处理流程可包括将报文送入相应的软件队列,将软件队列中的报文送到上层
协议栈。 上述流程的步骤204中,所启动的CPU保护流程可如图2b所示,包括以下步骤
步骤2041、对发送给CPU的报文进行分析统计,确定出这些报文的协议类型、各协 议类型报文的数量以及各协议报文来源的端口; 步骤2042、启动ACL (Access Control List,访问控制列表)功能,将其中的某个 或某些端口的端口标识从相应的协议列表中移除,从而达到阻止对应协议报文上送CPU的 目的。 较佳地,根据上一步的统计结果,将发包量大的端口从协议列表中移除,如,将发 包量最大的端口从协议列表中移除,或者针对特定协议类型的报文,将该协议类型报文来 源的端口从协议列表中删除。因为这种报文很可能是攻击CPU的报文,通过阻止这种报文 上送CPU,可达到保护CPU免受攻击的目的。 步骤2043、发出告警,将统计出的攻击报文的类型以及所来源的端口提示给用户, 以便用户查找攻击原因。该步骤可选。该步骤可在步骤2042之前执行,或者与2042并行 执行。 当CPU的负载下降时,对采取了保护措施的CPU还可以取消保护措施,以便提高 CPU的资源利用率。取消CPU保护措施的流程可如图3所示,当CPU监控周期到达时,执行 以下步骤 步骤301、根据本监控周期统计得到的上送CPU的报文数量,计算出CPU的收包速 率,将该CPU收包速率作为CPU当前的瞬时收包速率; 步骤302、通过CPU收包速率与CPU占用率阈值的反比关系函数(或反比关系曲 线),确定出CPU当前的瞬时收包速率情况下应使用的CPU占用率阈值;
步骤303、将CPU当前的占用率与确定出的CPU占用率阈值进行比较,如果CPU当 前的占用率低于该阈值,则执行步骤304 ;否则,执行步骤305 ; 步骤304、通过将在CPU保护流程中从协议列表中移除的端口 (如端口标识)重新 移入到相应的协议列表,以取消对CPU的保护措施,恢复通过该端口上送CPU报文,从而提 高CPU的资源利用率; 步骤305、继续保持CPU当前的保护状态。 本发明的上述实施例中,在确定用于判断是否启动CPU保护流程的CPU占用率阈 值时,可根据图1所示的曲线确定与CPU当前的收包速率对应的阈值作为判断用的阈值, 还可以在该阈值的基础上向上取得一上限值作为判断用的阈值;在确定用于判断是否取消 CPU保护流程的CPU占用率阈值时,可根据图1所示的曲线确定与CPU当前的收包速率对 应的阈值作为判断用的阈值,还可以在该阈值的基础上向下取得一下限值作为判断用的阈 值。 该上限阈值和下限阈值界定出一个阈值区间。当根据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之间时,保持当前的状态,这样可 以避免频繁地启动或取消对CPU的保护操作,从而减少系统开销和保证系统的稳定性。
本发明的上述流程,可通过由软件编程方式实现的CPU保护装置来实现。
如图4所示,为本发明实施例提供的CPU保护装置的结构示意图,该装置包括报 文统计单元401、阈值确定单元402、保护处理单元403,还可包括存储单元404以及告警单 元405,其中: 存储单元404中存储有CPU收包速率与CPU占用率阈值之间的反比关系函数,该 函数可如式(1)所示; 报文统计单元401,用于通过统计单位时间内发送给CPU的报文数量,得到CPU收 包速率; 阈值确定单元402,用于用于根据存储单元404存储的CPU收包速率与CPU占用率 阈值的反比关系函数,确定出报文统计单元401统计得到该CPU收包速率的情况下使用的CPU占用率阈值; 保护处理单元403,用于根据阈值确定单元402确定出的CPU占用率阈值与CPU当 前的占用率,判断是否需要对CPU进行保护,并当判决为是时,限制CPU收包速率;
告警单元405,用于在保护处理单元判断出CPU当前的占用率高于CPU占用率阈值 时,发送告警提示,以提示用户攻击CPU的报文类型以及来源的端口 。 阈值确定单元402确定用于判断是否保护CPU时使用的CPU占用率阈值可通过如 下方式实现 方式一 根据CPU收包速率与CPU占用率阈值的反比关系,确定与统计得到的CPU 当前的收包率对应的CPU占用率阈值,并将该阈值作为判决依据; 方式二 在根据CPU收包速率与CPU占用率阈值的反比关系,确定出与统计得到的 CPU当前的收包率对应的CPU占用率阈值之后,在该阈值基础上向上确定一CPU占用率上限 阈值,并将其作为判决依据。 保护处理单元402可通过如下方式限制CPU收包速率统计发送给CPU的报文所 属的协议类型、各协议类型报文的数量以及各协议类型报文来源的端口 ;根据统计得到的 报文所属的协议类型或各协议类型报文的数量,选定一种或多种协议类型的报文;将选定 的协议类型报文来源的端口的端口标识从协议列表中移除,以阻止将来源于该端口的报文 发送给CPU。 在保护处理单元403限制CPU收包速率之后,报文统计单元401进一步通过统计 单位时间内发送给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收包速率的限制将从协议列表中移
除的端口标识重新移入协议列表,以恢复将来源于该端口的报文发送给CPU。 本发明上述实施例提供的方法和装置,可应用于交换机设备上,能够为交换机设
备的正常数据处理提供类似于防火墙的功能。 综上所述,本发明实施例提出了基于自适应阈值选取的CPU保护方案,给出了自 适应阈值选取的反比函数曲线,通过该曲线的确定可以完成CPU保护自动阈值的选取工 作,并结合ACL完成将具体端口从攻击协议列表中移除的操作,这样可以较大限度的不影 响其余端口收发此类型的协议报文,也不会影响该端口收发其他类型的协议报文,并且对 CPU提供了较大限度的保护,进而维护了设备的稳定运行。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种CPU保护方法,其特征在于,包括通过统计单位时间内发送给CPU的报文数量,得到CPU收包速率;根据CPU收包速率与CPU占用率阈值的反比关系,确定出在所述CPU收包速率情况下使用的CPU占用率阈值;根据确定出的CPU占用率阈值与CPU当前的占用率,判断是否需要对CPU进行保护,并当判决为是时,限制CPU收包速率。
2. 如权利要求1所述的方法,其特征在于,根据确定出的CPU占用率阈值与CPU当前的占用率,判断是否需要对CPU进行保护,具体为将CPU当前的占用率与确定出的CPU占用率阈值进行比较,若CPU当前的占用率高于 所述CPU占用率阈值,则需要对CPU进行保护;否则,不需要对CPU进行保护。
3. 如权利要求1所述的方法,其特征在于,限制CPU收包速率,包括统计发送给CPU的报文所属的协议类型、各协议类型报文的数量以及各协议类型报文 来源的端口;根据统计得到的报文所属的协议类型或各协议类型报文的数量,选定一种或多种协议 类型的报文;将选定的协议类型报文来源的端口的端口标识从协议列表中移除。
4. 如权利要求1所述的方法,其特征在于,限制CPU收包速率之后,还包括 通过统计单位时间内发送给CPU的报文数量,得到CPU收包速率;根据CPU收包速率与CPU占用率阈值的反比关系,确定出在所述CPU收包速率情况下 使用的CPU占用率阈值;根据确定出的CPU占用率阈值与CPU当前的占用率,判断是否需要取消对CPU的保护, 并当判决为是时,取消对CPU收包速率的限制。
5. 如权利要求4所述的方法,其特征在于,根据确定出的CPU占用率阈值与CPU当前的 占用率,判断是否需要取消对CPU的保护,具体为将CPU当前的占用率与确定出的CPU占用率阈值进行比较,若CPU当前的占用率低于 所述CPU占用率阈值,则需要取消对CPU的保护;否则,不需要取消对CPU的保护。
6. 如权利要求4所述的方法,其特征在于,取消对CPU收包速率的限制,具体为将从 协议列表中移除的端口标识重新移入协议列表,以恢复将来源于该端口的报文发送给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保护装置,其特征在于,包括报文统计单元,用于通过统计单位时间内发送给CPU的报文数量,得到CPU收包速率;阈值确定单元,用于根据CPU收包速率与CPU占用率阈值的反比关系,确定出在所述CPU收包速率情况下使用的CPU占用率阈值;保护处理单元,用于根据所述阈值确定单元确定出的CPU占用率阈值与CPU当前的占 用率,判断是否需要对CPU进行保护,并当判决为是时,限制CPU收包速率。
10. 如权利要求9所述的装置,其特征在于,所述保护处理单元限制CPU收包速率的过 程,包括统计发送给CPU的报文所属的协议类型、各协议类型报文的数量以及各协议类型 报文来源的端口 ;根据统计得到的报文所属的协议类型或各协议类型报文的数量,选定一 种或多种协议类型的报文;以及,将选定的协议类型报文来源的端口的端口标识从协议列 表中移除。
11. 如权利要求9或10所述的装置,其特征在于,所述报文统计单元在所述保护处理单元限制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的目的。
文档编号H04L12/56GK101710897SQ20091022620
公开日2010年5月19日 申请日期2009年11月20日 优先权日2009年11月20日
发明者康伟 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1