著录项信息
专利名称 | 老化消息上报的控制方法和控制装置 |
申请号 | CN200810222640.1 | 申请日期 | 2008-09-19 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2009-01-28 | 公开/公告号 | CN101355570 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 杭州华三通信技术有限公司 | 申请人地址 | 浙江省杭州市滨江区长河路466号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 新华三技术有限公司 | 当前权利人 | 新华三技术有限公司 |
发明人 | 卢胜文 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 宋志强;麻海明 |
摘要
本发明公开了一种老化消息上报的控制方法,该方法包括:在需上报老化消息的会话表对应的老化时刻每次到达之前,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,如果是,则打开老化消息上报功能;当所述需上报老化消息的会话表完成老化消息上报后,关闭老化消息上报功能。本发明公开了一种老化消息上报的控制装置,使用本发明能够对不同的会话表是否上报老化消息进行差异控制。
1.一种老化消息上报的控制方法,其特征在于,该方法包括:
在需上报老化消息的会话表对应的老化时刻每次到达之前,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,如果是,则打开老化消息上报功能;
当所述需上报老化消息的会话表完成老化消息上报后,关闭老化消息上报功能。
2.如权利要求1所述的方法,其特征在于,该方法进一步包括:设置循环定时的软件定时器;同时启动会话表的老化定时器和所述软件定时器;每当所述软件定时器超时,获取当前时刻,执行所述判断操作。
3.如权利要求2所述的方法,其特征在于,该方法进一步包括:周期性的同时重启所述老化定时器和所述软件定时器。
4.如权利要求2所述的方法,其特征在于,所述当前时刻的获取方式为:当软件定时器超时,读取老化定时器所在硬件芯片的硬件时钟时间,根据读取的硬件时钟时间与启动时读取的硬件时钟时间获取所述当前时刻;
或者,预设时间累计变量,每当软件定时器超时,更新时间累计变量的值,将更新后时间累计变量的值作为所述当前时刻。
5.如权利要求1所述的方法,其特征在于,该方法进一步包括:在会话表老化消息上报功能打开期间,禁止无需上报老化消息的会话表老化。
6.如权利要求1所述的方法,其特征在于,该方法进一步包括:预先在允许的老化时间区间内调整无需上报老化消息的会话表的老化时间,令无需上报老化消息的会话表的老化时间与需上报老化消息的会话表的老化时间之间的最小公倍数最大。
7.如权利要求1或6所述的方法,其特征在于,该方法进一步包括:所述需上报老化消息的会话表为多个时,预先将多个需上报老化消息的会话表的老化时间设置为成倍数关系。
8.一种老化消息上报的控制装置,其特征在于,所述控制装置包括:
比较模块,用于在需上报老化消息的会话表对应的老化时刻每次到达之前,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,将判断结果发送给执行模块;
执行模块,用于接收所述判断结果,在所接收的判断结果显示为是时,打开老化消息上报功能;当所述需上报老化消息的会话表完成老化消息上报后,关闭老化消息上报功能。
9.如权利要求8所述的控制装置,其特征在于,所述比较模块包括控制器、软件定时器、当前时间捕捉器和比较器;
所述控制器,用于同时启动各会话表的老化定时器和所述软件定时器;
所述软件定时器,用于在计时到达定时时间时,通知所述当前时间捕捉器;
所述当前时间捕捉器,用于在接收到所述软件定时器的通知时,获取当前时刻,将获取的当前时刻发送给比较器;
所述比较器,用于在接收到来自所述当前时间捕捉器的当前时刻时,判断所接收的当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,将判断结果发送给所述执行模块。
10.如权利要求9所述的控制装置,其特征在于,所述控制器进一步用于,周期性的同时重启所述老化定时器和所述软件定时器。
11.如权利要求9所述的控制装置,其特征在于,所述当前时间捕捉器从老化定时器所在硬件芯片读取硬件时钟时间,根据读取的硬件时钟时间与启动时读取的硬件时钟时间,获取所述当前时刻;
或者,所述当前时间捕捉器维护时间累计变量的值,每当软件定时器超时,更新时间累计变量的值,将更新后时间累计变量的值作为所述当前时刻。
12.如权利要求8所述的控制装置,其特征在于,所述执行模块进一步用于,在会话表老化消息上报功能打开期间,禁止无需上报老化消息的会话表老化。
13.如权利要求8所述的控制装置,其特征在于,该控制装置进一步包括老化时间调整模块,用于预先在允许的老化时间区间内调整无需上报老化消息的会话表的老化时间,令无需上报老化消息的会话表的老化时间与需上报老化消息的会话表的老化时间的最小公倍数最大;
和/或,当所述需上报老化消息的会话表为多个时,预先将多个需上报老化消息的会话表的老化时间设置为成倍数关系。
老化消息上报的控制方法和控制装置\n技术领域\n[0001] 本发明涉及网络设备中老化消息处理技术,具体涉及一种老化消息上报的控制方法和老化消息上报的控制装置。\n背景技术\n[0002] 通常,高端的网络设备中用于处理报文转发的硬件芯片是网络处理器(NP)芯片或一些专用芯片,而目前很多报文转发是基于会话表工作的,例如网络地址转换(NAT)操作。因此,硬件芯片需要负责会话表的处理,包括会话表中表项的建立和删除。其中,表项的删除一般有主动删除和老化删除两种。老化删除是指一个表项如果在设定的老化时间内没有被查找,该表项就会被删除,该过程简称为老化。\n[0003] 不同会话表的老化时间是不同的。以在NP芯片中实现NAT应用为例,NAT的会话表主要有3种类型:传输控制协议(TCP)会话表、用户数据报协议(UDP)会话表、临时会话表。TCP是基于连接的,一般根据TCP的删除命令来主动删除TCP会话表项,只有在发生意外的情况下,例如TCP连接一方或双方出现故障,才会出现TCP会话不被主动删除的情况。\n这些异常的TCP连接及其相关表项在老化时间到来时被删除。可见,TCP会话表中需要老化的表项并不多,因此TCP会话表的老化时间设置得比较长,通常会在几十分钟到几小时或更长。UDP是非连接的,只能通过老化来删除会话表项,为了提高会话表的利用率,会设置比较短的老化时间,通常设置为几分钟甚至更短。至于要求快速老化的临时表项,也只能通过老化来删除会话表项,其老化时间只有几秒或十几秒。\n[0004] TCP会话表的老化时间长,容易受到攻击。最典型的攻击方式为拒绝服务攻击,这种攻击的原理是恶意用户占满整个会话表,由于TCP会话表老化时间长,因此占满会话表的表项长时间不能被老化,使得其他用户长时间得不到会话资源,导致会话的建立速度等于会话的老化速度,大大影响了会话的建立性能。目前,一种比较有效的防止拒绝服务攻击的方式是:网络设备的CPU启用用户会话限制,以控制某个用户的会话数目。但启用用户会话限制需要CPU对会话建立和删除情况进行统计,以便掌握各用户的会话数目。由于硬件芯片不能统计老化删除的会话数目,因此硬件芯片需要将TCP会话表的老化消息上报给CPU,以便CPU根据上报的老化消息进行统计操作。而UDP会话表和临时会话表的老化时间短,不容易遭到拒绝服务攻击,因此,UDP会话表和临时会话表的老化消息都不需要上送CPU。\n[0005] 目前,NP芯片已经能够提供打开和关闭老化消息上报功能,但是,与大部分硬件芯片相同,NP芯片不支持按表打开和关闭老化消息上报功能。所以,NP芯片在打开老化消息上报功能时,所有会话表在各自老化定时器计时到各自的老化时间时,都会向CPU上报老化消息,其中包括UDP会话表和临时会话表产生的大量老化消息。CPU不会漏掉每一条老化消息,因此CPU会处理所有上报的老化消息,这给本来速度就不高的CPU带来了巨大负担。\n而且,CPU处理完一条老化消息后,该老化消息对应的老化操作才算完成,因此老化速度受CPU处理能力限制,一旦会话表项满了,新建会话的速度会等于老化的速度,大大降低了新建会话性能。\n[0006] 可见,在现有技术中,由于缺乏对会话表上报老化消息的差异控制,因此CPU一旦启用用户会话限制,只能打开所有会话表的老化消息上报功能,不仅增加了CPU的处理负担,而且老化速度受CPU处理能力限制,还会降低新建会话性能。\n发明内容\n[0007] 有鉴于此,本发明提供了一种老化消息上报的控制方法,能够对不同的会话表是否上报老化消息进行差异控制。\n[0008] 该方法包括:在需上报老化消息的会话表对应的老化时刻每次到达之前,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,如果是,则打开老化消息上报功能;\n[0009] 当所述需上报老化消息的会话表完成老化消息上报后,关闭老化消息上报功能。\n[0010] 较佳地,该方法进一步包括:设置循环定时的软件定时器;同时启动会话表的老化定时器和所述软件定时器;每当所述软件定时器超时,获取当前时刻,执行所述判断操作。\n[0011] 较佳地,该方法进一步包括:周期性的同时重启所述老化定时器和所述软件定时器。\n[0012] 其中,所述当前时刻的获取方式为:当软件定时器超时,读取老化定时器所在硬件芯片的硬件时钟时间,根据读取的硬件时钟时间与启动时读取的硬件时钟时间获取所述当前时刻;\n[0013] 或者,预设时间累计变量,每当软件定时器超时,更新时间累计变量的值,将更新后时间累计变量的值作为所述当前时刻。\n[0014] 较佳地,该方法进一步包括:在会话表老化消息上报功能打开期间,禁止无需上报老化消息的会话表老化。\n[0015] 较佳地,该方法进一步包括:预先在允许的老化时间区间内调整无需上报老化消息的会话表的老化时间,令无需上报老化消息的会话表的老化时间与需上报老化消息的会话表的老化时间之间的最小公倍数最大。\n[0016] 较佳地,该方法进一步包括:所述需上报老化消息的会话表为多个时,预先将多个需上报老化消息的会话表的老化时间设置为成倍数关系\n[0017] 本发明还提供了一种老化消息上报的控制装置,能够对不同的会话表是否上报老化消息进行差异控制。\n[0018] 比较模块,用于在需上报老化消息的会话表对应的老化时刻每次到达之前,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,将判断结果发送给执行模块;\n[0019] 执行模块,用于接收所述判断结果,在所接收的判断结果显示为是时,打开老化消息上报功能;当所述需上报老化消息的会话表完成老化消息上报后,关闭老化消息上报功能。\n[0020] 其中,所述比较模块包括控制器、软件定时器、当前时间捕捉器和比较器;\n[0021] 所述控制器,用于同时启动各会话表的老化定时器和所述软件定时器;\n[0022] 所述软件定时器,用于在计时到达定时时间时,通知所述当前时间捕捉器;\n[0023] 所述当前时间捕捉器,用于在接收到所述软件定时器的通知时,获取当前时刻,将获取的当前时刻发送给比较器;\n[0024] 所述比较器,用于在接收到来自所述当前时间捕捉器的当前时刻时,判断所接收的当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,将判断结果发送给所述执行模块。\n[0025] 较佳地,所述控制器进一步用于,周期性的同时重启所述老化定时器和所述软件定时器。\n[0026] 其中,所述当前时间捕捉器从老化定时器所在硬件芯片读取硬件时钟时间,根据读取的硬件时钟时间与启动时读取的硬件时钟时间,获取所述当前时刻;\n[0027] 或者,所述当前时间捕捉器维护时间累计变量的值,每当软件定时器超时,更新时间累计变量的值,将更新后时间累计变量的值作为所述当前时刻。\n[0028] 较佳地,所述执行模块进一步用于,在会话表老化消息上报功能打开期间,禁止无需上报老化消息的会话表老化。\n[0029] 较佳地,该控制装置进一步包括老化时间调整模块,用于预先在允许的老化时间区间内调整无需上报老化消息的会话表的老化时间,令无需上报老化消息的会话表的老化时间与需上报老化消息的会话表的老化时间的最小公倍数最大;\n[0030] 和/或,当所述需上报老化消息的会话表为多个时,预先将多个需上报老化消息的会话表的老化时间设置为成倍数关系。\n[0031] 根据以上技术方案可见,使用本发明,通过控制老化消息上报的时机,实现对不同会话表是否上报老化消息的差异控制,只有在需上报老化消息的会话表对应的老化时刻到来之前且当前时刻距即将到来的老化时刻的时间差小于预设时间差,在比如老化时刻到来的前几秒,才打开老化消息上报功能,本次上报完成后关闭上报功能。这样,保证需上报老化消息的会话表能够成功上报老化消息,不需上报老化消息的会话表不上报或少上报老化消息。那么CPU所需处理的老化消息数量大大减少,从而减轻了CPU负担。由于所需处理的老化消息数量大大减少,还可以大大提高会话表的老化能力,使得会话建立的性能随之大大提高,可以提高数十倍,甚至上百倍。\n附图说明\n[0032] 图1为本发明实施例一中老化消息上报的控制流程图。\n[0033] 图2为采用本发明实施例方法进行老化消息上报控制的效果图示。\n[0034] 图3为本发明实施例二中老化消息上报的控制流程图。\n[0035] 图4为本发明实施例中老化消息上报的控制装置示意图。\n具体实施方式\n[0036] 本发明为一种老化消息上报的控制方案,其基本思想为:在需上报老化消息的会话表对应的老化时刻每次到达之前,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,如果是,则打开会话表老化消息上报功能;当需上报老化消息的会话表完成老化消息上报后,关闭会话表老化消息上报功能。\n[0037] 其中,预设时间差可以根据情况设置。例如,可以设置为2s。\n[0038] 使用本发明,通过控制老化消息上报的时机,实现对不同会话表是否上报老化消息的差异控制,只有在需上报老化消息的会话表对应的老化时刻到来的前几秒才打开老化消息上报功能,本次上报完成后关闭上报功能。这样,保证需上报老化消息的会话表能够成功上报老化消息,不需上报老化消息的会话表不上报或少上报老化消息。那么CPU所需处理的老化消息数量大大减少,从而减轻了CPU负担。由于所需处理的老化消息数量大大减少,还可以大大提高会话表的老化能力,使得会话建立的性能随之大大提高,可以提高数十倍,甚至上百倍。\n[0039] 较佳地,为了使得在老化消息上报功能打开时,保证无需同时上报老化消息的会话表不会同时老化并上报老化消息,本发明在允许的老化时间区间内调整无需同时上报老化消息的会话表的老化时间,令无需上报老化消息的会话表的老化时间与需上报老化消息的会话表的老化时间之间的最小公倍数最大,使得这两种会话表同时到达老化时间的机会最小。\n[0040] 其中,在允许的老化时间区间内是指一个可能的时间范围,例如对于UDP会话表来说,通常其老化时间为几分钟甚至更短,那么,其允许的老化时间区间就可以设置为例如\n60s~180s。老化时间是指两次老化操作的间隔时间。与前述老化时刻不同,老化时间为固定值,而老化时刻是老化时间的倍数,且随老化次数的增加逐渐增加。\n[0041] 举个例子,有2个会话表,其中会话表1需上报老化消息,其允许的老化时间区间为900s-1000s,会话表2无需上报老化消息,其允许的老化时间区间为10s-15s。当设置会话表1的老化时间为1000s,会话表2的老化时间为13s时,会话表1和会话表2的老化时间的最小公倍数为13000s,会话表1老化13次,才会出现一次会话表2的同时老化。如果将会话表2的老化时间设置为14,会话表1和会话表2的老化时间的最小公倍数为7000s,会话表1老化7次,就会出现一次会话表2的同时老化。\n[0042] 当需要上报老化消息的会话表为多个时,可以在各会话表的老化时刻到来之前打开老化消息上报功能。但是为了尽量减少老化消息上报功能开启的次数,可以将多个需上报老化消息的会话表的老化时间设置为成倍数关系,这样,当老化消息上报功能被开启后,一个或多个会话表同时上报老化消息。例如,会话表1的老化时间为300s,会话表2的老化时间为600s,那么,在300s时,会话表1老化,在600s时,会话表1和会话表2同时老化,如此循环。\n[0043] 本发明适用于硬件芯片需要向CPU上报老化消息,且需要按会话表进行区分控制的场合。例如NP芯片希望向CPU上报老化消息,但只希望上报多种会话表中的一种或其中几种。\n[0044] 下面举两个实施例,对本发明的老化消息上报控制过程进行详细描述。\n[0045] 图1示出了本发明实施例一中老化消息上报的控制流程图,如图1所示,该方法包括以下步骤:\n[0046] 步骤100:确定需上报老化消息的会话表。\n[0047] 以在NP芯片中实现NAT应用为例,NAT的会话表主要有3种类型:TCP会话表、UDP会话表和临时会话表。其中,TCP会话表需上报老化消息,UDP会话表和临时会话表无需上报老化消息。\n[0048] 步骤101:设置循环定时的软件定时器,该软件定时器的定时时间设置为需上报老化消息的会话表的老化时间的单位时间。例如,TCP会话表的老化时间是以秒为单位进行设置的,则软件定时器的定时时间可以设置为1秒。该软件定时器实际上是时间更新定时器,软件定时器的定时时间即为时间的更新频率。\n[0049] 在实际中,软件定时器的定时时间也可以设置为:比需上报老化消息的会话表的老化时间的单位时间精度更高的单位时间。例如,老化时间以秒为单位,则软件定时器的定时时间可以设置为0.1秒。\n[0050] 软件定时器的实时性要求高,不能受CPU忙闲影响过大,因此可以使用CPU中高优先级的时钟任务或时钟中断来完成。\n[0051] 步骤102:启动各会话表的老化定时器,同时启动软件定时器;关闭会话表的老化消息上报功能,打开各会话表的老化功能;读取当前硬件时钟时间并记录,将记录的硬件时钟时间作为启动时刻的硬件时钟时间。\n[0052] 本步骤中的多个动作是同时完成的。其中,老化定时器基于硬件的。硬件时钟是硬件芯片中的时钟,硬件芯片启动后,硬件时钟开始计时,所计时间为硬件芯片启动的累计时间。\n[0053] 步骤103:在软件定时器每次超时时,读取当前硬件时钟时间,通过比较当前读取的硬件时钟时间和启动时刻的硬件时钟时间,获取当前时刻。\n[0054] 步骤104:计算当前时刻与即将到来的老化时刻之间的时间差。\n[0055] 其中,即将到来的老化时刻可以根据需上报老化消息的会话表的老化时间得到。\n例如,老化时间为60s,则每次老化的老化时刻分别为60s、120s、180s,等等。\n[0056] 步骤105:在步骤104计算的时间差的绝对值小于或等于预设时间差时,将老化消息上报功能打开。如果预设时间差设置为2s,且老化时间为60s,则老化消息上报功能会分别在58s、118s、178s等等时刻被打开。\n[0057] 在老化消息上报功能打开这段时间,可能会有不需要上报老化消息的会话表到达老化时间,从而产生老化消息并上报。为了进一步有效的避免老化消息上报功能打开期间不需要上报老化消息的会话表上报老化消息,较佳地,本发明实施例在老化消息上报功能打开期间禁止无需上报老化消息的会话表老化,会话表暂时不老化对会话表的影响不大。\n对不同会话表是否老化进行差异控制是现有技术可以实现的。\n[0058] 较佳地,为了减少路由器工作量,在老化消息上报功能打开这段时间,软件定时器可以停止工作;如果软件定时器继续工作,则只定时不在超时时刻执行获取当前时刻及其后续操作。\n[0059] 步骤106:老化消息上报功能打开状态持续时间达到预设值后,认为当前需上报老化消息的会话表完成老化消息上报操作,将老化消息上报功能关闭。\n[0060] 其中,老化消息上报功能打开所需持续的时间根据正常老化上报所需时间来确定,例如可以为10秒。设置固定的老化消息上报功能打开状态持续时间在实现上比较简单。在实际中,也可以为硬件芯片增加功能,令硬件芯片在上报完老化消息后,通知CPU,使得CPU及时关闭老化消息上报功能。但这种方式的实现需要修改硬件芯片,实现不够简单。\n[0061] 至此,本流程结束。\n[0062] 如果在老化消息上报期间不关闭无需要上报老化消息的会话表,那么较佳地,将老化消息上报功能打开状态持续时间的预设值设置为小于老化频率最高的会话表的老化时间,从而尽量减少老化消息上报功能打开期间无需老化上报的会话表进行老化操作的可能性。\n[0063] 图2示出了采用本发明实施例方法进行老化消息上报控制的效果图示。如图2所示,受控的会话表包括TCP会话表和UDP会话表,其中,TCP会话表为需上报老化消息的会话表,UDP会话表为无需上报老化消息的会话表。如图2所示,在TCP会话表老化之前2s,打开老化上报功能,10s后,关闭老化上报功能。那么,只有TCP会话表的老化消息被上报了,UDP会话表的老化消息没有被上报。实践表明,只上送TCP会话表的老化消息到CPU,可以大大提高NAT会话表的老化能力,使得会话建立的性能大大提高,可以提高数十倍,甚至上百倍。\n[0064] 在实施例一中,当软件定时器超时时,通过读取硬件时钟时间获取当前时刻。而以下实施例二通过软件上的定时累计,获取当前时刻。\n[0065] 图3为本发明实施例二中老化消息上报的控制流程图,如图3所示,该流程包括以下步骤:\n[0066] 步骤300和步骤301与实施例一中的步骤100和101相同。\n[0067] 步骤302:启动各会话表的老化定时器,同时启动软件定时器;关闭会话表的老化消息上报功能,打开各会话表老化功能。与实施例一不同的是,本实施例增加了累计时间变量,用于记录启动后时间。本步骤中,将累计时间变量初始化,例如初始化为0。\n[0068] 步骤303:在软件定时器每次超时时,将累计时间变量的值加上软件定时器的定时时间长度,采用相加结果更新累计时间变量的值。\n[0069] 步骤304:将更新后累计时间变量的值作为当前时刻,计算当前时刻与即将到来的老化时刻之间的时间差。其中,即将到来的老化时刻仍然根据需上报老化消息的会话表的老化时间获得。\n[0070] 步骤305:在该时间差的绝对值小于或等于预设时间差时,将老化消息上报功能打开。\n[0071] 在老化消息上报功能打开期间,软件定时器继续工作,并在每次超时时更新累计时间变量的值,以保证当前时刻计算的准确性。为了减少路由器的工作量,在老化消息上报功能打开期间,可以不执行步骤304。\n[0072] 步骤306:老化消息上报功能打开状态持续时间达到预设值后,将老化消息上报功能关闭。\n[0073] 至此,本流程结束。\n[0074] 以上实施例一中,老化定时器和当前时刻的计算都是基于硬件的。而本实施例二中,老化定时器是基于硬件的,而当前时刻是基于CPU提供的软件定时器计算的,老化定时器和软件定时器属于两个独立的时钟源。运行时间较长后,根据老化定时器确定的老化时间,和根据软件定时器确定的当前时刻之间会出现偏差,一但老化时间到,还没有打开老化上报,会导致表项老化消息丢失。因此,需要定时校准老化定时器和软件定时器。校准的方式可以为:启动一段时间后,重新执行步骤102/302,使得老化定时器和软件定时器同时启动,从而实现了校准。多长时间校准一次可以根据两个定时器偏差情况来设置。当然,时钟校准步骤也可以应用于实施例一。采用时钟校准步骤,使得本发明实时的老化消息上报控制机制可靠运行。\n[0075] 在以上两个实施例的步骤104/304中,计算当前时刻与即将到来的老化时刻之间的时间差时,当前时刻采用当前相对于启动时刻的偏移时间。在实际中,如果多个需上报老化消息的会话表的老化时间设置为成倍数关系,则每两次老化消息上报开启时刻之间的时间均相等,那么,可以令软件定时器从0到最小老化时间之间循环计时,其中,最小老化时间为成倍数关系的多个老化时间中的最小者,软件定时器的计时值作为当前时刻,那么,当软件定时器的计时值与即将到来的老化时刻之间的时间差小于或等于预设时间差时,打开会话表老化消息上报功能。例如,成倍数关系的多个老化时间中的最小者为60s,预设时间差为2s,则软件定时器从0到60s循环计时,当每次计到58s时,开启老化消息上报功能。\n[0076] 为了实现上述老化消息上报的控制方法,本发明还提供了一种老化消息上报的控制装置。图4为本发明实施例中老化消息上报的控制装置的结构示意图。如图4所示,该控制装置包括比较模块41和执行模块42。其中,\n[0077] 比较模块41,用于在需上报老化消息的会话表对应的老化时刻每次到达之前,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,将判断结果发送给执行模块42。\n[0078] 执行模块42,用于接收判断结果,在所接收的判断结果显示为是时,打开老化消息上报功能;当需上报老化消息的会话表完成老化消息上报后,关闭老化消息上报功能。该执行模块42与硬件芯片相连,控制硬件芯片上报老化消息功能的开启和关闭。较佳地,该执行模块42在打开会话表老化消息上报功能期间,禁止无需上报老化消息的会话表老化,从而进一步减少不必要老化消息的上报。\n[0079] 较佳地,该控制装置进一步包括老化时间调整模块(在图4中未示出),用于预先在允许的老化时间区间内调整无需上报老化消息的会话表的老化时间,令无需上报老化消息的会话表的老化时间与需上报老化消息的会话表的老化时间的最小公倍数最大;和/或,当需上报老化消息的会话表为多个时,预先将多个需上报老化消息的会话表的老化时间设置为成倍数关系。该老化时间调整模块也需要与硬件芯片相连,调整硬件芯片上老化定时器的定时时间,即老化时间。\n[0080] 下面对比较模块41和执行模块42的结构和功能进行详细描述。\n[0081] 仍参见图4,比较模块41包括控制器411、软件定时器412、当前时间捕捉器413和比较器414;其中,\n[0082] 控制器411,用于同时启动硬件芯片上的各老化定时器和软件定时器412。为了保证长时间运行后老化定时器和软件定时器412还同步,控制器411进一步周期性的同时重启各老化定时器和软件定时器412。\n[0083] 软件定时器412,用于在其计时到达定时时间时,通知当前时间捕捉器413。该软件定时器412的定时时间长度为:需上报老化消息的会话表对应的老化时间的单位时间,或比所述老化时间精度更高的单位时间。通常可以设置为1s或0.1s。\n[0084] 当前时间捕捉器413,用于在软件定时器412超时并通知自身时,获取当前时刻,然后将获取的当前时刻发送给比较器414。该当前时间捕捉器413获取当前时刻方法主要包括如下两种:\n[0085] 其一,当前时间捕捉器413与硬件芯片相连,在软件定时器412超时时,从硬件芯片中获取硬件时钟时间,根据获取的硬件时钟时间与启动时获取的硬件时钟时间,计算当前时刻。\n[0086] 其二,当前时间捕捉器413维护时间累计变量的值,每当软件定时器412超时,更新时间累计变量的值,将更新后的时间累计变量的值作为当前时刻。所述更新为:将当前时间累计变量的值加上软件定时器412的定时时间。\n[0087] 比较器414,用于在接收到当前时间捕捉器413发来的当前时刻后,判断当前时刻与即将到来的老化时刻之间的时间差是否小于或等于预设时间差,将判断结果发送给执行模块42。\n[0088] 仍参见图4,执行模块42具体包括持续时间计时器422和执行器421;其中,[0089] 持续时间计时器422,在执行器421的控制下从初始值开始计时。\n[0090] 执行器421与硬件芯片相连,接收比较器414发来的判断结果,在所接收的判断结果显示为是时,打开硬件芯片的老化消息上报功能并启动持续时间计时器422;当启动持续时间计时器422计时到预设持续时间后,例如计时到10s,则关闭硬件芯片的老化消息上报功能。较佳地,预设持续时间小于需上报老化消息的会话表的老化时间。如果需上报老化消息的会话表为多个,则预设持续时间小于老化时间最小者的老化时间。\n[0091] 本发明实施例中的控制装置可以作为一个功能模块设置在网络设备的CPU中,或者作为单独的功能模块设置在CPU之外。\n[0092] 由以上所述可以看出,本发明所提供的老化消息上报的控制方案,能够对不同的会话表进行差异控制,保证需上报老化消息的会话表能够成功上报老化消息,不需上报老化消息的会话表不上报或少上报老化消息。\n[0093] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。\n凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2017-05-10
专利权人的姓名或者名称、地址的变更
专利权人由杭州华三通信技术有限公司变更为新华三技术有限公司
地址由310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更为310052 浙江省杭州市滨江区长河路466号
- 2011-08-10
- 2009-04-29
- 2009-01-28
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-08-29
|
2007-01-29
| | |
2
| |
2008-04-30
|
2007-12-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |