CN1756164A - 数据包接收控制装置及方法 - Google Patents

数据包接收控制装置及方法 Download PDF

Info

Publication number
CN1756164A
CN1756164A CN 200510105744 CN200510105744A CN1756164A CN 1756164 A CN1756164 A CN 1756164A CN 200510105744 CN200510105744 CN 200510105744 CN 200510105744 A CN200510105744 A CN 200510105744A CN 1756164 A CN1756164 A CN 1756164A
Authority
CN
China
Prior art keywords
packet
reception
processor
filtering rule
load
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200510105744
Other languages
English (en)
Inventor
生驹达郎
玉井昌朗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1756164A publication Critical patent/CN1756164A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的数据包接收控制装置包括:负荷检测部分,用于检测处理器上的负荷并输出检测结果;以及接收控制部分,用于基于从该负荷检测部分输出的检测结果确定该处理器是否应接收一接收数据包,并输出确定结果。该处理器根据从该接收控制部分输出的确定结果,接收该接收数据包。

Description

数据包接收控制装置及方法
相关申请的交叉参考
本申请要求根据35U.S.C§119于2004年9月27日在日本递交的申请号为2004-279981的专利申请和2005年9月12日在日本递交的申请号为2005-264201的专利申请的优先权,其全部内容在此被合并作为参考。
背景技术
本发明涉及控制来自于网络的数据包的接收的技术。
将与诸如互联网的网络建立连接的功能增加到传统存在的设备上的趋势逐年增加。在此趋势下,在向传统的设备增加网络界面功能中出现了一些问题。
网络的典型示例为符合电气和电子工程师协会(IEEE)802.3的以太网。以太网是数据包传输/接收网络,在以太网中预测或保证即将到来的接收数据包是不可能的。
例如,在一种情况下,可以将某种设备连接到网络,并且可以在始发于或者送往该设备的多播(multicasting)或广播下产生大量的数据包。在另外的情况下,诸如端口扫描、服务攻击拒绝以及计算机病毒等用于威胁安全的通信会造成大量不可预测的数据包的到来。
在上述情况下,如果设备面临超过该设备能力的数量的接收数据包的到来,该设备的处理器容易陷入将其大部分处理能力投入到处理接收数据包的超负荷状态。结果,会阻碍该设备实现其原有的功能。
例如,在设备将完成要求诸如视听(AV)之类的实时能力的通信处理时,通常给通信处理设定比其它处理更高的优先权。因此,随着大量接收数据包的到来,该设备的处理器将其大多数能力投入到通信处理中。结果,举例来说,即使在诸如检测按钮被压下的此种处理级别下,也会出现延迟。
作为处理上述问题的技术,例如以下的技术是公知的。日本特开平专利公报No.9-116731(文献1)公开了具有***负荷检测功能的传真机。如果***负荷不超过预定的阈值,该传真机以最高速度进行数据传送,但是如果由于通信处理和记录处理的同时执行或任何其它原因而使***负荷变重,则降低数据传送速度。通过这种***负荷的分配,能够获得有效的数据传送。
日本特开平专利公报No.11-328068(文献2)公开了用于网络合并(network incorporation)的***。图23是文献2中描述的传统的用于网络合并的***的方框图。在此,多个应用程序94通过协议栈93连接到网络接口芯片(NIC)驱动器92上。
协议栈93提供与末端节点通信的功能,这些末端节点用NIC驱动器92进行通信。每个应用程序94包括用协议栈93提供较高通信功能的计算机程序。被NIC 91和打印机控制器95访问的存储器96具有操作减少标志保持器97。
当发现紧急处理开始时,图23中的***将操作减少标志保持器97中的标志位设置为ON.在操作减少标志保持器为ON期间,NIC驱动器92驱动NIC 91执行过滤,以便停止对在正常操作中接收的数据包中特定类型的数据包的接收。通过此种方式,使中央处理器(CPU)在紧急操作期间免于处理不必要的接收数据包。
然而,上述技术具有如下问题。文献1中公开的技术基于指令的发布能够停止或者指令发布的通知能够协同特定的指令发布源而延迟的前提。但是,在使用诸如以太网之类的数据包通信网的情况下,未必可以要求在接收数据包的***上产生增加的负荷的数据包产生源停止数据包的产生或者降低通信速度。首先,这样的数据包产生源可能没有使用该***的打算。
文献2中公开的技术意图在预先固定的紧急处理时间周期中减轻由接收数据包而引起的负荷。在其它的时间周期中不用这样的措施。在实际的多任务OS下操作的***中,甚至要求与紧急处理相对应的程序间歇地运行。因此,难于固定这样的紧急处理时间周期。
发明内容
本发明的目的是提供数据包接收控制装置和方法,其中能够改善因过大数量的接收数据包的到来而引起的接收数据包装置的超负荷状态,并且能够保持该装置除了数据包接收功能以外的功能。
本发明的数据包接收控制装置包括:负荷检测部分,用于检测处理器上的负荷并输出检测结果;以及接收控制部分,用于基于来自于该负荷检测部分的检测结果确定该处理器是否应接收接收数据包,并输出确定结果,其中该处理器根据来自于该接收控制部分的确定结果,接收该接收数据包。
根据上面描述的本发明,该处理器根据确定数据包是否应该被接收的结果来接收数据包。因此,由数据包的接收引起的处理器的超负荷状态能够被改善,从而该处理器被保证执行除数据包接收以外的处理。
优选地,上述数据包接收控制装置进一步包括接收数据包传送部分,用于接收数据包并根据指令将接收到的数据包输出给该处理器,其中该负荷检测部分检测与该负荷的程度相对应的值,作为处理负荷,该接收控制部分在其中存储根据该处理负荷被设置的一个或更多的过滤规则,指示该接收数据包传送部分丢弃与上述过滤规则中的任何一个相匹配的接收数据包,并输出与上述过滤规则中的任何一个都不匹配的接收数据包。
根据上面描述的本发明,过滤规则根据由该负荷检测部分检测的处理负荷而被设定。因此,响应于处理负荷中的变化的合适的过滤效果能够被用在接收数据包中。
优选地,该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设定,以便在该处理负荷较大时更多的接收数据包匹配该规则。
根据上面描述的本发明,更大的过滤效果能够随着处理负荷的增加而被提供。
优选地,该接收控制部分包括统计获得部分,用于将接收数据包分成多个类型,并为每个类型测量每单位时间的数据包接收频率,并且在其中存储规则,作为过滤规则,该规则被如此设定,以便按照每单位时间接收频率的递减顺序在多个类型中选择的类型的接收数据包匹配该规则。
根据上面描述的本发明,过滤效果能够通过根据接收数据包的统计特性缩小响应于处理器负荷的接收数据包的对象来提供。
优选地,该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设定,以便特定类型的接收数据包不匹配该规则。
根据上面描述的本发明,重要的接收数据包能够被从过滤对象中排除,即使这些数据包造成大的处理负荷。例如,设备操作不可缺少的数据包一定能被接收而不会失败。
优选地,该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设定,以便如果该处理负荷超过预定阈值,广播数据包和多播数据包匹配该规则。
按照上面描述的本发明,全部广播和多播接收数据包被指定为过滤对象。所以,大的过滤效果可以被期望。
优选地,该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设置,以便如果该处理负荷超过预定阈值,全部数据包匹配该规则。
根据上面描述的本发明,全部接收数据包被指定为过滤对象。所以,该处理器上的负荷可以被大大限制。
优选地,在该处理负荷减少时,该接收控制部分在该减少后预定的期间内不改变该过滤规则,并且在该预定的期间经过后,在其中存储对应该处理负荷被设定的规则,作为该过滤规则。
根据上面描述的本发明,用在超负荷的过滤规则可以在处理负荷的减少后被维持预定的期间。所以,对于处理负荷中的变化的过度敏感的响应可以被抑制。
优选地,上述数据包接收控制装置进一步包括丢弃计数部分,用于测量该接收控制部分每单位时间接收数据包的丢弃频率,其中,该处理负荷减少时,如果该丢弃频率等于或者大于预定阈值,该接收控制部分不改变该过滤规则,并且如果该丢弃频率变得小于该预定阈值,则在其中存储对应该处理负荷被设定的信息,作为该过滤规则信息。
根据本发明,只有在确认被丢弃的接收数据包的数目减少后,用在超负荷的过滤规则才被取消。所以,只要超负荷可能出现,用在超负荷的过滤规则就可被维持。
优选地,该负荷检测部分检测对应于该负荷的程度的值,作为处理负荷,并在该接收控制部分接收到相对于数据包的接收产生的事件信号时,如果该处理负荷不超过预定值,该接收控制部分输出通知该处理器该事件信号的接收的通知信号,以便该处理器接收该接收数据包,并且如果该处理负荷超过该预定值,停止该通知信号的输出。
根据上面描述的本发明,如果该处理负荷超过预定值,关于数据包接收的任何通知都被禁止。所以,该处理器被确保执行除数据包接收以外的处理。
优选地,该通知信号是用于该处理器的中断信号。
根据上面描述的本发明,任何由关于数据包接收的通知信号引起的中断被禁止。因此,该处理器解除用于接收数据包的中断处理。
优选地,该接收控制部分测量从该通知信号输出停止经过的时间,并且如果被测量的经过时间超过预定值,取消该通知信号的输出的停止。
根据上面描述的本发明,禁止通知该处理器的设定可以被维持预定的期间,其后正常的操作被自动恢复。
优选地,该接收控制部分测量每单位时间内该事件信号的产生频率,在该通知信号输出停止后,如果该产生频率变得小于预定值,取消该通知信号的输出的停止。
根据上面描述的本发明,仅在确认事件信号的数目减少后,该通知信号的输出的停止被取消。因此,只要超负荷可能出现,该通知信号的输出的停止就被维持,此后正常的操作被自动恢复。
优选地,该负荷检测部分检测对应于该负荷的值,作为处理负荷,并且该负荷检测部分包括:定时计数器,用于测量从起动经过的时间;监视部分,用于在被该处理器访问时,读取并输出该定时计数器的计数值,并重新起动该定时计数器;负荷计算部分,用于基于预定的计划值和该读取的计数值,计算该处理负荷,并输出结果处理负荷。
根据上面描述的本发明,该处理负荷根据该定时计数器的计数值和该计划值被计算。因此,该处理负荷可以被表示为与该处理器和程序的特性无关的数值。
优选地,该监视部分被该处理器在多任务操作***(OS)上周期性起动的任务访问。
根据上面描述的本发明,该负荷检测部分可检测由多任务OS上的任务引起的处理负荷。
优选地,该负荷检测部分检测对应于该负荷的程度的值,作为处理负荷,并且该负荷检测部分包括:定时计数器,用于测量从清除信号输入经过的时间,并且一旦被测量的时间达到预定时间,输出超时信号;监视部分,用于在被该处理器访问时,向该定时计数器输出该清除信号;负荷计算部分,用于基于该超时信号计算该处理负荷。
根据上面描述的本发明,由于在该处理器上的负荷大时,该超时信号被输出,则该处理负荷可以基于该超时信号被获得。
优选地,该负荷计算部分计算每单位时间对应于该超时信号的产生频率的值,作为该处理负荷。
根据上面描述的本发明,由于该处理负荷根据超时出现的频率被计算,则每单位时间的平均处理负荷可被获得。
优选地,该负荷计算部分计算对应于该超时信号的连续输出次数的值,作为该处理负荷。
根据上面描述的本发明,例如,短于该单位时间的时间内的最大处理负荷可被获得。
优选地,在该定时计数器变为超时时,较大的值被设定为该预定时间,并且在该定时计数器被清除时,较小的值被设定为该预定时间。
根据上面描述的本发明,处理负荷中的变化可以被减缓。
优选地,该监视部分被该处理器在多任务OS上周期性起动的任务访问。
优选地,上述数据包接收控制装置进一步包括接收数据包传送部分,用于接收数据包,并根据指令将接收到的数据包输出给该处理器,其中该负荷检测部分检测该处理器是否处于超负荷状态,并输出检测结果,该接收控制部分在其中存储一个或者更多的过滤规则,指示该接收数据包传送部分丢弃与该过滤规则中的任何一个相匹配的接收数据包,并输出与该过滤规则中的任何一个都不匹配的接收数据包,并且在该处理器处于超负荷状态时,在其中存储用在超负荷、允许比正常时期更多的数据包匹配的过滤规则,作为该过滤规则。
根据上面描述的本发明,该处理器的超负荷状态可以以简单的方式被检测,并且该过滤规则可以被迅速地切换到用在超负荷的过滤规则。
优选地,上述数据包接收控制装置进一步包括超负荷对策部分,其中该数据包传送部分通知该处理器数据包的输出,该超负荷对策部分确定每单位时间向该处理器通知的频率,当该负荷检测部分检测出该处理器处于超负荷状态时,如果该通知的频率等于或者大于预定值,则通知该接收控制部分该处理器处于超负荷状态,并且该接收控制部分在其中存储用在超负荷的过滤规则,作为该过滤规则。
根据上面描述的本发明,在处理器因数据包的接收而处于超负荷状态时,该过滤规则可被迅速地切换到用在超负荷的过滤规则上。
优选地,在该处理器从超负荷状态变为非超负荷状态时,该超负荷对策部分在预定的条件被满足后,通知该接收控制部分该处理器未处于超负荷状态,并且该接收控制部分在接收到该处理器未处于超负荷状态的通知时,在其中存储用在正常时期的过滤规则,作为该过滤规则。
根据上面描述的本发明,用在超负荷的过滤规则可被维持,直到预定的条件被满足,并且此后正常操作可被自动恢复。
优选地,该预定的条件为预定时间从该处理器不再处于超负荷状态的时间经过。
根据上面描述的本发明,用在超负荷的过滤规则可被保持,直到预定的时间经过,并且此后正常操作可被自动恢复。
优选地,上述数据包接收控制装置进一步包括丢弃计数部分,用于测量每单位时间该接收控制部分的接收数据包的丢弃频率,其中该预定的条件为该丢弃频率小于预定值。
根据上面描述的本发明,只有在确认接收数据包的丢弃频率小于预定值后,用在超负荷的设定被取消。因此,只要超负荷可能出现,用在超负荷的过滤规则就可被维持,并且此后正常操作可被自动恢复。
优选地,用在超负荷的该过滤规则被设定以允许全部数据包匹配。
根据上面描述的本发明,全部的接收数据包在超负荷时被丢弃。因此,该处理器上的负荷可被直接最小化。
优选地,该接收控制部分进一步包括统计获得部分,用于将接收数据包分成多个类型,并为每个类型测量每单位时间的数据包接收频率,并且用在超负荷的该过滤规则被设定,以便以每单位时间的接收频率递减的方式在该多个类型中被选择的类型的接收数据包匹配该规则。
根据上面描述的本发明,该过滤效果可通过根据该接收到的数据包的统计特性压缩造成该处理器上的负荷的接收数据包的对象而被获得。
优选地,用在超负荷的该过滤规则被设定,以便特定类型的接收数据包不匹配该规则。
根据上面描述的本发明,重要的接收数据包可从该过滤对象中被排除,即使这些数据包造成大的处理负荷。
优选地,该负荷检测部分检测该处理器是否处于超负荷状态,并输出检测结果,该接收控制部分确定每单位时间关于数据包接收而产生的事件信号的产生频率,并能输出通知该处理器该事件信号的接收的通知信号,如果该处理器处于超负荷状态且该事件信号的产生频率超过预定值,则该接收控制部分停止该通知信号的输出。
根据上面描述的本发明,该处理器的超负荷状态可以以简单的方式被检测,如果该事件信号的产生频率高,则关于数据包接收的该通知信号的输出被停止。因此,接收不到数据包的该处理器被确保执行除数据包接收以外的处理。
优选地,该通知信号是用于该处理器的中断信号。
优选地,该接收控制部分测量从该通知信号输出停止经过的时间,并在被测量的经过时间超过预定值时,取消该通知信号的输出的停止。
优选地,该接收控制部分测量每单位时间该事件信号的产生频率,在该通知信号输出停止后,当该频率小于预定值时,取消该通知信号的输出的停止。
优选地,上述数据包接收控制装置进一步包括监视定时器,用于当预定时间内没有来自于该处理器的访问被产生时,将初始化请求信号输出给该处理器,并且当该监视定时器输出该初始化请求信号之前的剩余时间比预定时间短时,该接收控制部分停止该通知信号的输出。
根据上面描述的本发明,关于数据包接收的该通知信号的输出在该监视定时器变为超时之前被停止。这可避免此种问题,该处理器因数据包的接收处理而无法访问该监视定时器,避免该监视定时器无法执行正常的监视操作。
优选地,该负荷检测部分包括:定时计数器,用于测量从清除信号的输入经过的时间,将表示被测量的时间达到预定时间的超时信号作为检测结果输出;以及监视部分,用于在被该处理器访问时,将该清除信号输出给该定时计数器。
根据上面描述的本发明,表示该处理器是否处于超负荷状态的信号可被作为来自于该负荷检测部分的检测结果而获得。
优选地,该定时计数器被构造为允许该预定的时间的改变。
根据上面描述的本发明,通过改变直到该超时信号的输出所经过的时间与访问该监视部分的周期的比值,超负荷状态的检测灵敏度可被调整。
优选地,该监视部分被该处理器中在多任务OS上周期性起动的任务访问。
优选地,该周期性起动的任务的进程优先级被设定为低于用于数据包通信协议的处理任务和用于实时通信应用的处理任务的进程优先级。
根据上面描述的本发明,该监视部分可检测该处理器是否处于因用于数据包通信协议的处理任务和用于实时通信应用的处理任务而造成的超负荷状态。
优选地,该周期性起动的任务的进程优先级被设定为低于用于实时控制应用的处理任务的进程优先级。
根据上面描述的本发明,该监视部分可检测该处理器是否处于因用于数据包通信协议的处理任务、用于实时通信应用的处理任务和用于实时控制应用的处理任务而造成的超负荷状态。
优选地,该周期性起动的任务的进程优先级被设定为高于用于无需实时操作的应用的处理任务的进程优先级。
根据上面描述的本发明,该监视部分可检测该处理器是否处于因除无需实时操作的应用的处理任务以外的任务造成的超负荷状态。
优选地,上述数据包接收控制装置进一步包括:接收数据包传送部分,用于接收数据包并根据指令将接收到的数据包存储在存储器中,以准备输出给该处理器;数据包解析部分,用于扫描曾存储在该存储器中的接收数据包上的扫描信息,并为每个类型确定表示接收数据包的接收频率的频率信息,其中该负荷检测部分检测该处理器是否处于超负荷状态,并输出检测结果,该接收控制部分包括:丢弃过滤表存储器,用于存储过滤规则;过滤规则设定部分,用于在从接收到表示该处理器处于超负荷状态的检测结果时将第一过滤规则组存储在该丢弃过滤表存储器中,该第一过滤规则组包括表示应被丢弃的数据包的预定类型的过滤规则;以及丢弃/通过确定部分,用于指示该接收数据包传送部分丢弃匹配该过滤规则中的任何一个的接收数据包,并通过该存储器将不匹配该过滤规则中的任何一个的接收数据包输出给该处理器,其中该过滤规则设定部分基于为曾存储在该存储器中的接收数据包确定的该频率信息,确定应被丢弃的数据包的类型,并将第二过滤规则组代替该第一过滤规则组存储在该丢弃过滤表存储器中,该第二过滤规则包括表示所确定的应被丢弃的数据包类型的过滤规则。
根据上面描述的本发明,应被丢弃的数据包的类型根据该存储器中的接收数据包的扫描结果来确定,并且用于丢弃此种数据包的第二过滤规则被设定。这使得在已知该处理器上的负荷时,可以接收除造成超负荷状态的数据包的类型以外的数据包。
优选地,该过滤规则设定部分基于该频率信息,将具有超过预定值的接收频率的数据包的类型,确定为应被丢弃的数据包的类型。
根据上面描述的本发明,通过丢弃对应于具有超过预定值的接收频率的数据包的类型的数据包,该处理器上的负荷可以被有效地降低。
优选地,该过滤规则设定部分不将数据包的给定类型确定为应被丢弃的数据包的类型。
根据上面描述的本发明,设定可以被执行,以便不丢弃该数据包接收控制装置不可缺少的传送/接收的数据包。
优选地,该接收控制部分进一步包括对话管理部分,用于保存表示被该处理器执行的通信应用所使用的数据包类型的信息,其中该过滤规则设定部分不将该对话管理部分保存的信息所表示的数据包的类型确定为应被丢弃的数据包的类型。
根据上面描述的本发明,被通信应用用于通信的数据包的类型可被从应被丢弃的数据包的类型中排除。
优选地,当该通信应用结束通信时,该对话管理部分输出表示被用于该通信应用的数据包类型的信息,并且该过滤规则设定部分将被用于该通信应用的数据包的类型确定为应被丢弃的数据包的类型。
根据上面描述的本发明,当该通信应用的通信被结束,并且不必接收的数据包被接收时,被接收的数据包可被丢弃。
优选地,该过滤规则设定部分改变该第二过滤规则组,以便如果在预定的时间内再接收到表示该处理器处于超负荷状态的检测结果,则更多类型的数据包被丢弃。
根据上面描述的本发明,当该处理器在该第二过滤规则被存储后再次变为超负荷状态时,比以前的情况更多类型的数据包被丢弃。因此,该处理器上的负荷能被减少。
优选地,如果在预定的时间内再接收到表示该处理器处于超负荷状态的检测结果,该过滤规则设定部分基于以前用过的频率信息,确定应被丢弃的数据包的类型。
根据上面描述的本发明,当在该第二过滤规则被存储后,处理器再变为超负荷状态时,该存储器中的接收数据包的再扫描可被省略。
优选地,该接收控制部分进一步包括用于存储阈值的学习结果存储器,当基于该频率信息确定应被丢弃的数据包的类型时,该过滤规则设定部分使用被存储在该学习结果存储器中的阈值,制定该第二过滤规则组,并且该学习结果存储器根据表示该处理器处于超负荷状态的检测结果的接收间隔,改变被存储的阈值。
根据上面描述的本发明,应被丢弃的数据包的类型可根据使用类型被适当地确定。
优选地,该过滤规则设定部分基于该频率信息,以该接收频率递减的顺序在接收数据包的类型中选择预定数目的类型,并将被选择的类型确定为应被丢弃的数据包的类型。
根据上面描述的本发明,通过以为接收频率较大的数据包的类型设置较高的用于丢弃的优先级的方式丢弃数据包,该处理器上的负荷可被有效地降低。
优选地,该接收控制部分进一步包括队列管理部分,用于保存被允许存储在该存储器内的接收数据包的数目,并且如果接收到表示该处理器处于超负荷状态的检测结果,该过滤规则设定部分增加被该队列管理部分保持的被允许存储在该存储器中的接收数据包的数目。
根据上面描述的本发明,由于被存储在该存储器中的接收数据包的数目增加,则应被丢弃的接收数据包类型的确定的正确性提高。
优选地,该接收数据包传送部分在该存储器中至少存储接收数据包的标题信息,并且该数据包解析部分扫描被存储在该存储器中的标题信息以确定该频率信息。
根据上面描述的本发明,应被丢弃的数据包的类型可基于过去接收到的数据包的标题信息被确定。
优选地,该过滤规则设定部分设定该第一过滤规则组,以便全部的数据包被丢弃。
优选地,该数据包是以太网MAC帧。
本发明的半导体集成电路包括:上述数据包接收控制装置;和用于根据该数据包接收控制装置的确定结果来接收数据包的处理器。
本发明的数据包接收控制方法是用于在存储器中存储接收数据包且然后将上述数据包输出给处理器的数据包接收控制方法。该方法包括:检测该处理器是否处于超负荷状态;如果接收到表示该处理器处于超负荷状态的检测结果,则存储包括表示应被丢弃的数据包的预定类型的过滤规则的第一过滤规则组;丢弃匹配该过滤规则中的任何一个的接收数据包,并通过该存储器将不匹配该过滤规则中的任何一个的接收数据包输出给该处理器;根据该第一过滤规则组扫描曾被存储在该存储器中的接收数据包上的信息,以为该接收数据包的每个类型获得表示接收频率的频率信息;基于该频率信息确定应被丢弃的数据包的类型,并且将包括表示被确定的应被丢弃的数据包类型的过滤规则的第二过滤规则组代替该第一过滤组存储。
优选地,确定应被丢弃数据包的类型的步骤基于该频率信息,确定具有超过预定值的接收频率的数据包的类型,作为应被丢弃的数据包的类型。
优选地,该确定应被丢弃的数据包的类型的步骤根据表示该处理器处于超负荷状态的检测结果的接收间隔,改变被用于确定的阈值。
优选地,上述数据包接收控制方法进一步包括如果接收到表示该处理器处于超负荷状态的检测结果,增加被允许存储在该存储器中的接收数据包的数目的步骤,其中该扫描接收数据包上的信息的步骤扫描被存储在该存储器中的接收数据包,以获得该频率信息。
优选地,该扫描接收数据包上的信息的步骤扫描曾被存储在该存储器中的接收数据包的标题信息,以获得该频率信息。
如上所述,根据本发明,接收数据包的装置的超负荷状态可被改善。因此,即使当大量数据包在短期内到来时,该装置也能实时地进行除数据包接收以外的处理。
附图说明
图1是本发明实施例1的数据包通信***的方框图。
图2是图1中数据包接收控制装置的方框图。
图3是由图1中的数据包通信***接收的数据包的格式的图。
图4是示出统计表的一个示例的图。
图5是示出丢弃过滤表的一个示例的图。
图6是本发明实施例2的数据包接收控制装置的方框图。
图7是本发明实施例3的数据包接收控制装置的方框图。
图8是示出对于多个任务的进程优先级的示例的图。
图9是本发明实施例4的数据包接收控制装置的方框图。
图10是本发明实施例5的数据包接收控制装置的方框图。
图11是本发明实施例6的数据包接收控制装置的方框图。
图12是示出图11的数据包接收控制装置中操作流的示例的流程图。
图13是示出包括第一过滤规则组的丢弃过滤规则的示例的图。
图14是示出对话管理表的示例的图。
图15是示出包括第二过滤规则组的丢弃过滤规则的示例的图。
图16是示出图11的数据包接收控制装置中操作流的另一示例的流程图。
图17是本发明实施例7的数据包接收控制装置的方框图。
图18是示出图17的数据包接收控制装置中操作流的一部分的流程图。
图19是示出图18所示操作流的后续的流程图。
图20是本发明实施例8的数据包接收控制装置的方框图。
图21是示出图20的数据包接收控制装置中的操作流的流程图。
图22是本发明实施例9的数据包接收控制装置的方框图。
图23是用于网络合并的传统***的方框图。
具体实施例
下面,将参照附图说明本发明的优选实施例。
(实施例1)
图1是本发明实施例1的数据包通信***的方框图。图1的数据包通信***包括存储器8和半导体集成电路10。半导体集成电路10包括通信部分2、处理器4和数据包接收控制装置100。例如,处理器4可以是CPU或数字信号处理器(DSP)。
通信部分2将数据包传送到网络或者从网络中接收数据包,并将接收到的数据包(接收数据包)输出给接收控制装置100。另外,通信部分2也根据需要通过总线6将数据包等传送给处理器4和存储器8或从处理器4和存储器8接收数据包。
数据包接收控制装置100通过总线6将从通信部分2接收到的数据包输出给存储器8。处理器4从存储器8读取数据包。数据包接收控制装置100根据处理器4的状态控制从通信部分2到处理器4的数据包的这种传送。
图2是示出图1中数据包接收控制装置的方框图。图2的数据包接收控制装置100包括负荷检测部分20、作为接收控制部分的接收数据包过滤器40和接收数据包传送部分60。
负荷检测部分20包括定时计数器22、监视部分24、预定值寄存器26和负荷计算部分28。接收数据包过滤器40包括:过滤规则设定部分42、统计获得部分44、标题分类部分46、丢弃过滤表存储器52、通过过滤表存储器54、丢弃/通过确定部分56和丢弃计数部分58。接收数据包传送部分60包括接收数据包缓冲器62。
处理器4执行访问监视部分24的任务,该任务在多任务OS上被周期性地起动。处理器4在预定值寄存器26中预先将代表该周期性地起动的任务的周期的数值设定为预定值,该数值以定时计数器22的计数终了的时间间隔为单位表示。
定时计数器22是根据时钟递增的计数器,并在起动时被清除为0。定时计数器22在计数值达到预定值寄存器26的数值的两倍时,停止计数。
当接收到来自于处理器4的访问时,监视部分24读取定时计数器22的计数值,向负荷计算部分28输出读取到的数值,然后重新起动定时计数器22。负荷计算部分28基于输入的计数值和从预定值寄存器26读取的预定值来检测处理负荷,并向过滤规则设定部分42输出检测到的处理负荷,该处理负荷为与处理器4上的负荷程度相对应的数值。
具体地说,负荷计算部分28从输入的计数值中减去预定值,并用预定值去除被减过的数值,以将结果数值作为处理负荷给出。如果输入的计数值不超过预定值则处理负荷为0。处理负荷是表示处理器4上的负荷的数值,如果处理器4中没有处理负荷或具有足够的处理能力,该数值将会为0,并且如果处理器4缺乏处理能力,则该数值将会为正值。
图3是说明图1的数据包通信***接收的数据包格式的图。图3的数据包是包括标题(MAC标题)和其它部分的以太网媒体访问控制(MAC)帧。标题包含目的地址、发送方地址和表示协议的数值。在下面的描述中,假设接收数据包指的是MAC帧。
接收数据包传送部分60从通信部分2接收数据包,至少将其一部分保存在接收数据包缓冲器62中,并从接收数据包过滤器40的丢弃/通过确定部分56接收指令。如果被指示为使数据包通过,则接收数据包传送部分60向处理器4进行发送数据包接收的通知INF,并将数据包输出给存储器8。如果被指示为丢弃数据包,则接收数据包传送部分60清除接收数据包缓冲器62而不输出接收数据包。另外,接收数据包传送部分60还至少取回接收数据包的标题,并将取回的部分输出给标题分类部分46。注意在通过数据包时,处理器4也可响应数据包接收的通知INF,直接从接收数据包缓冲器62中读取数据包。
标题分类部分46解析接收到的标题,取出目的地址和协议值,并向统计获得部分44和丢弃/通过确定部分56输出取出的值。
通过过滤表存储器54在其中存储通过过滤表。在该通过过滤表中,处理器4通过过滤规则设定部分42,按照所需数目设置无论何种情况都被通过的数据包的目的地址和协议值的组合,作为过滤规则。
丢弃过滤表存储器52在其中存储丢弃过滤表。在该丢弃过滤表中,过滤规则设定部分42按照所需数目设置当时应被丢弃的数据包的目的地址和协议值的组合,作为过滤规则。通常,设置这样的组合,以便特定范围内的数值适于希望通过的数据包,或者由逻辑反相数值为希望通过的数据包设定。在特殊情况下,可以在丢弃过滤表存储器52中设置全部目的地址与全部协议值匹配的特殊值,或者与特定类型的目的地址值匹配的特殊值。
丢弃/通过确定部分56首先将接收到的目的地址和协议值的组合与设定在通过过滤表存储器54中的每个组合相比较。如果确定存在作为比较结果的匹配,丢弃/通过确定部分56指示接收数据包传送部分60通过待确定的数据包。
如果确定不存在作为比较结果的匹配,丢弃/通过确定部分56将接收到的目的地址与协议值的组合与在丢弃过滤表存储器52中设置的每个组合比较。如果不存在匹配,则丢弃/通过确定部分56指示接收数据包传送部分60通过待确定的数据包。如果确定存在匹配,则丢弃/通过确定部分56指示接收数据包传送部分60丢弃待确定的数据包。
丢弃数目计数部分58对每单位时间内丢弃/通过确定部分56发出的丢弃数据包指令的次数计数,将每单位时间的结果丢弃数输出给过滤规则设定部分42。
统计获得部分44对由标题分类部分46给出的目的地址与协议值的组合进行分类,并为统计表的每个类别获得每单位时间的出现次数和出现比例。图4示出了此种统计表的一个例子。
过滤规则设定部分42根据从负荷计算部分28接收到的处理负荷,改变设置在丢弃过滤表存储器52中的数值。特别是,例如,如果处理负荷是+50%,过滤规则设定部分42参照统计表,以出现比例递减的顺序选择类别,直到超过处理负荷(50%)的数值,并在丢弃过滤表中设置与被选择的类别相对应的过滤规则。
图5是示出丢弃过滤表的一个例子的图。图5示出了过滤规则设定部分42在图4的统计表中选择通用的多播和非IP单播的情况。丢弃/通过确定部分56将不满足任何特定行中条件的任何数据包都看作是负逻辑,将满足特定行中条件的任何数据包都看作是在图5的丢弃过滤表中作为“匹配”的正逻辑,并且指示接收数据包传送部分60丢弃这样的数据包。
在处理负荷比以前的测量值减少的情况下,过滤规则设定部分42参照由丢弃计数部分58获得的每单位时间的丢弃次数。如果每单位时间的丢弃次数等于或者大于预定阈值,则过滤规则设定部分42不改变丢弃过滤表的设定,如果丢弃次数小于预定阈值,则更新丢弃过滤表。根据上面所描述的处理负荷,执行丢弃过滤表的更新。
如上所述,在图2的数据包接收控制装置100中,根据由负荷检测部分20检测出的处理负荷,设置丢弃过滤表的内容。因此,可以随处理负荷的变化动态地选择合适的过滤规则。
可以基于接收数据包的统计特性获得限制造成负荷的接收数据包的过滤规则。
在设备操作中重要的接收数据包能够被从过滤规则对象中排除出去,即使其处理负荷很大。
只有在处理负荷的减少和通过过滤丢弃的接收数据包的减少被确认后,才改变丢弃过滤规则的设定。因此,只要出现超负荷,就能够维持用于超负荷的过滤器的设定。
用于多任务OS的处理负荷可被表示为完全独立于处理器和程序的特性的数值。
在本实施例中,基于通过统计地测量接收到的数据包的类型而获得的统计表,以出现比例递减的顺序选择应被丢弃的数据包。可选地,可以在选择中采用任何其它顺序。关键是丢弃过滤表的内容应该被设置为适于随着处理负荷的增加而变多的接收数据包。通过这种设置,还可以获得数据包接收控制装置的原始效果。在选择时可以考虑数据包的重要程度和必要性。例如,可以按照重要性的递增顺序进行选择。
可以在丢弃过滤表中设定特别的情况,以在处理负荷超过预定值时被采用。例如,处理负荷超过80%,可以进行设置,以丢弃全部的多播数据包和广播数据包,并且如果处理负荷超过90%,丢弃全部接收数据包。通过此种设置,在处理器的处理变重时,能快速地从处理接收数据包的负荷中解放处理器。
在本实施例中,处理负荷减少时,参照来自于丢弃数目计数部分58的丢弃计数值。可选地,在处理负荷减少后,可以将丢弃过滤表的设定维持不变一段预定的时间。在这种情况下,可以防止对处理器的处理负荷中的变化的过度敏感响应。
(实施例2)
图6是本发明实施例2的数据包接收控制装置的方框图。图6的数据包接收控制装置200包括负荷检测部分220和作为接收控制部分的接收通知部分270。数据包接收控制装置200用于代替图1的数据包通信***中的数据包接收控制装置100。
负荷检测部分220包括定时计数器222、监视部分224和负荷计算部分228。接收通知部分270包括:上限值寄存器272、接收通知停止控制部分274和计数器276。
处理器4执行访问监视部分224的任务。该任务由处理器4在多任务OS上被周期性地起动。任务的周期被设置为比定时计数器222的超时(timeout)短的时间。超时被定义为从定时计数器222计数开始直到定时计数器不被清除地输出超时信号所流逝的时间。
一旦计数值达到预定值(超时值),对时钟计数的定时计数器222将超时信号输出给负荷计算部分228,并从初始值重新开始计数。该超时值是超时会比单位时间短的数值,也可以从处理器4设定。
监视部分224在接收到来自于处理器4的访问时,生成清除信号,并将该清除信号输出给定时计数器222。当定时计数器222在接收到清除信号时被清除,然后再从初始值重新开始时钟计数。
负荷计算部分228对每单位时间来自于定时计数器222的超时信号的产生次数进行计数,将测到的计数值作为处理负荷输出。处理负荷是表示处理器4上的负荷的值,如果处理器没有应被处理的负荷或者有足够的处理能力,处理负荷为0,并且如果处理器4的处理能力不足,处理负荷为正值。处理负荷随着处理器4的负荷变大而变大。最大处理负荷为通过用超时时间去除单位时间的值。负荷计算部分228也可以对测到的数值进行运算并将计算结果作为处理负荷输出。
通信部分2在从网络接收数据包时,产生与接收相关的事件信号EVR,将信号EVR输出给接收通知停止控制部分274和计数器276。通信部分2不仅在正常接收数据包时,而且还在接收到错误的数据包或其中有溢出时,产生事件信号EVR。事件信号EVR也可包括事件原因的通知。
计数器276对每单位时间内与接收相关的事件信号EVR的产生次数进行计数,将代表时间信号EVR的产生频率的计数值输出给接收通知停止控制部分274。
当接收到与接收相关的事件信号EVR时,只要处理器4不停止,接收通知停止控制部分274基本上用与接收相关的通知信号INTR通知处理器4此种处理。与接收相关的通知信号INTR是用于处理器4的中断信号。如果需要,接收通知控制部分274记录该通知的原因,以能够被处理器4确认。当接收到该通知时,处理器4起动中断处理程序,在该程序中解析通知的主要原因,并且如果需要,将接收数据包的数据从通信部分2传送到存储器8。
上限值寄存器272具有由处理器4设定的上限值。接收通过停止控制部分274将从负荷检测部分220输出的处理负荷与设定在上限值寄存器272上的上限值进行比较,如果处理负荷超过上限值,则用与接收相关的通知信号INTR停止向处理器4的通知。
当检测到从负荷检测部分220接收到的处理负荷将其状态从大于上限值变化到小于上限值时,如果计数器276的计数值等于或者小于预定阈值,接收通知停止控制部分274用与接收相关的通知信号INTR取消对处理器4的通知的停止,并且如果计数值超过阈值,则维持通知的停止。
如上所述,如果处理负荷超过上限值,图6的数据包接收控制装置200禁止由于与接收数据包有关的通知引起的中断的产生。这样,可以使处理器的能力避免不适当的中断处理和接收处理。特别是,能使处理器的能力避免与来自于通信部分2的接收错误相关的通知引起的负荷。
只要超负荷出现,都能维持用终端信号停止通知的设定,然后,一旦确认事件信号EVR的产生频率的降低,可以自动地恢复到通常的状态。
由于根据每单位时间内的超时出现频率计算处理负荷,可用在单位时间内平均的处理负荷进行稳定的确定。
仅在确认事件信号EVR的产生频率等于或者小于预定阈值后,本实施例中的接收通知停止控制部分274才取消停止对处理器4的通知的设定。可选地,可以在停止通知停止开始以后的预定时间取消设定。这样,可以自动恢复正常状态,而避免数据包接收控制装置的过度敏感响应。
本实施例中的负荷输出部分228测量每单位时间的超时次数。可选地,可以测量单位时间内超时信号连续产生的次数的最大值。这样,可以测量在最近的单位时间内的瞬间最大处理负荷,从而能够对单位时间内负荷最大的部分确定是否超负荷。
本实施例中的定时计数器222的超时值总是固定的。可选地,每次超时出现或每次计数器被清除时,可以改变超时值。通过在每次超时出现时增加超时值或者通过在每次清除计数器时减少超时值,负荷计算部分228可以将超时信号连续产生的次数用作即刻跟随处理负荷中的变量的数值。
在上述描述中,接收通知部分270产生对处理器4的与接收相关的通知信号INTR。可选地,通信部分2可以产生与接收相关的通知信号INTR,接收通知部分270可以指示通信部分2停止与接收相关的通知信号INTR的产生。
可以用图2的负荷检测部分20来代替图6的负荷检测部分220。同样地,在第一实施例中,可以用负荷检测部分220代替负荷检测部分20。
(实施例3)
图7是本发明实施例3的数据包接收控制装置的方框图。图7的数据包接收控制装置300包括负荷检测部分320、超负荷对策部分330、作为接收控制部分的接收数据包过滤器340和接收数据包传送部分360。数据包接收控制装置300用来代替图1的数据包通信***中的数据包接收控制装置100。
负荷检测部分320包括定时计数器322和监视部分324。超负荷对策部分330包括超负荷控制部分332、计数器334和丢弃计数部分336。接收数据包过滤器340包括过滤规则设定部分342、统计获得部分344、标题分类部分346、丢弃过滤表存储器352、通过过滤表存储器354和丢弃/通过确定部分356。
包括接收数据包缓冲器362的接收数据包传送部分360,除以下点之外,大致与图2的接收数据包传送部分60相同。即,接收数据包传送部分360通过与接收相关的通知信号INTR,通知处理器4与接收相关的时间的出现,该信号INTR是用于处理器4的中断信号。同时,接收数据包传送部分360在其中保存事件的类型,以允许处理器4访问该信息。
监视部分324在从处理器4接收访问时,产生清除信号,并将清除信号输出给定时计数器322。当接收清除信号时,对时钟计数的定时计数器322被清除,并从初始值重新开时时钟计数。
当计数值达到预定值时,定时计数器322将超时信号作为超负荷通知输出给超负荷控制部分332,并停止计数。该预定值可以由处理器4设定,也可以是固定值。
处理器4执行访问监视部分的任务。该任务由处理器4在多任务OS上周期性地起动。该任务起动的周期被设置为比定时计数器的超时短。通过调整该任务的周期与超时时间的比率,可以在任务的起动间隔中改变变量检测的精密度,从而改变超负荷检测的灵敏度。
统计获得部分344、标题分类部分346和丢弃/通过确定部分356基本上与统计获得部分44、标题分类部分46和丢弃/通过确定部分56相同,所以此处省略其说明。
丢弃过滤表存储器352在其中存储丢弃过滤表,通过过滤表存储器354在其中存储通过过滤表。
过滤规则设定部分342根据来自于处理器4和超负荷控制部分332的指令,设定通过过滤表存储部分354中的通过过滤表和丢弃过滤表存储器352中的丢弃过滤表的内容。这时设定的过滤表是用于正常时期的过滤表。
计数器334对每单位时间的接收***通知信号INTR的产生频率进行计数,并将结果计数值输出给超负荷控制部分332。
当从负荷检测部分320接收到超负荷通知时,超负荷控制部分332参照来自于计数器334的计数值。如果计数值等于或者大于预定阈值,超负荷控制部分332认为通知的超负荷产生关于由数据包接收引起的中断,并设置过滤规则,用于在丢弃过滤表中使用。换言之,超负荷控制部分332通过过滤表设定部分342,在丢弃过滤表中设置全部接收数据包匹配的特殊值。
丢弃计数部分336对每单位时间内丢弃/通过确定部分356丢弃数据包指令的发出进行计数,并将结果丢弃计数值输出给超负荷控制部分332。只要该丢弃计数值等于或者大于预定阈值,超负荷控制部分332认为处理器4仍然处于超负荷状态,并维持丢弃过滤表的内容的设定内容。如果丢弃过滤表的内容已被改变,则超负荷控制部分332使用丢弃数目计数部分336在改变后的计数值。
如果来自于丢弃计数部分336的丢弃计数值小于预定阈值,则超负荷控制部分332将原始设定值(用在正常时期的过滤规则)恢复为丢弃表的内容。原始设定值可以被保存在超负荷控制部分332或者接收数据包过滤器340中。
图8是示出用于多任务的程序优先级的例子的说明图。通过使用多任务OS,各种软件程序作为任务运行在处理器4中。为任务指定进程优先级,并且多任务OS以进程优先级递减的顺序起动为起动做好准备的任务。在图8中,为优先级高的任务分配较小数值。
访问监视部分324的任务在进程优先级上应该低于为处理负荷测量的对象的任务,但是应该在进程优先级上高于不是为处理负荷测量的对象的任务。
图8中的数据通信应用任务和非通信数据处理应用任务不需要实时操作。在图8中,这些任务在优先级上低于访问监视部分324的任务,并且不被看作为处理负荷测量的对象。从而,通过牺牲需要非实时性操作的任务的处理,可以进行其它任务的处理。这样,即使处理器的处理能力总体上被使用到最大限度,数据包接收控制装置300不会确定处理器处于超负荷状态。
如上所述,本实施例的数据包接收控制装置能够以简单的方式检测接收数据包引起的处理器上的超负荷的出现,迅速地将过滤规则信息切换到超负荷时用的过滤规则。在超负荷时,可以丢弃全部接收数据包,以直接最小化处理负荷。在设备操作中重要的接收数据包能被从应过滤的对象列表中排除出去,即使它们造成大处理负荷。
只有用过滤器确认数据包丢弃量低于预定阈值后,取消用在超负荷中的过滤器的设定。因此,只要超负荷出现,就可以维持用在超负荷时的过滤器的设定。
通过改变超时值和监视任务的起动周期,来改变超时时间与监视任务的起动周期的比值,以调整超负荷状态的灵敏度。
通过压缩多任务OS上所有任务中的数据包接收任务和实时应用任务的对象,负荷检测部分可检测处理器的超负荷状态。
在本实施例中,在超负荷时,在丢弃过滤表中设定全部数据包匹配的过滤规则。可选地,可以将接收数据包分类,并且可以设置只有接收频率大的数据包匹配的过滤规则。
在本实施例中,只有在确认每单位时间的数据包丢弃计数值减少后,超负荷控制部分332才恢复丢弃过滤表的原始设定。可选地,在固定的时间过去后,可以恢复丢弃过滤表的设定。
(实施例4)
图9是本发明实施例4的数据包接收控制装置400的方框图。图9的数据包接收控制装置400包括负荷检测部分320和作为接收控制部分的接收通知部分470。数据包接收控制部分400被用来代替图1的数据包通信***中的数据包接收控制装置100。接收通知部分470包括接收通知停止控制部分474和计数器476。负荷检测部分320基本上与实施例3中说明的相同,从而在此省略其说明。
计数器476对实施例2中说明的与接收相关的事件信号EVR每单位时间内产生的次数进行计数,并将计数值输出给通知停止控制部分474。
在接收到与接收相关的事件信号EVR时,只要处理器4未被停止,接收通知控制部分474基本上用与接收相关的通知信号INTR通知处理器此种接收。与接收相关的通知信号INTR是用于处理器4的中断信号。如果需要,接收通知停止控制部分474可记录该通知的原因,以实现被处理器4确认。在接收到通知时,处理器4起动中断处理程序,在该程序中解析通知的主要原因,并且如果需要,来自于通信部分2的接收数据包数据被传送到存储器8。
当从定时计数器322接收到超负荷通知时,接收停止控制部分474比较计数器476的计数值与预定的上限值。如果计数值等于或者大于预定的上限值,接收通知停止控制部分474停止用与接收相关的通知信号INTR对处理器4的通知。
此后,当来自于定时计数器322的超负荷通知停止时,接收通知停止控制部分474比较计数器476的计数值与预定的下限值。如果计数值小于预定的下限值,则接收通知停止控制部分474取消用与接收相关的通知信号INTR对处理器4的通知的停止。如果计数值等于或者大于下限值,接收通知停止控制部分474维持通知的停止。所用的下限值可以等于或者不同于在接收到超负荷通知时进行比较所用的上限值。
如上所述,本实施例的数据包接收控制装置400通过简单的方式检测超负荷状态并禁止由与接收数据包相关的通知引起的中断的产生。这样,处理器4的能力可以避免不适当的中断处理和接收处理。特别是,处理的能力能够避免由来自于通信部分的接收错误相关的通知引起的负荷。
在超负荷状态下,可以维持停止用与接收相关的通知信号INTR对处理器4的通知的设定,此后,一旦确认通知数目的减少,正常状态,即通知处理器4数据包接收的设定可以被自动恢复。
只有确定每单位时间内事件信号EVR的产生次数(计数器476的计数值)小于预定的阈值之后,本实施例中的接收通知停止控制部分474才取消通知停止的设定。可选地,可以在停止通知的状态开始之后,将该设定取消预定的时间。这样,可以自动地恢复正常状态,而避免对数据包接收控制装置的过度敏感响应
在本实施例中,接收通知部分470产生用于处理器4的与接收相关的通知信号INTR。可选地,通信部分2可以产生与接收相关的通知信号INTR,并且接收通知部分470会指示通信部分2以停止与接收相关的通知信号INTR的产生。
(实施例5)
图10是本发明实施例5的数据包接收控制装置500的方框图。图10的数据包接收控制装置500包括负荷检测部分320、作为接收控制部分的接收通知部分570、监视定时器(watchdog timer)582和定时值评价部分584。数据包接收控制装置500用来代替图1的数据包通信***中的数据包接收控制装置100。接收通知部分570包括接收通知停止控制部分574和计数器476。由于负荷检测部分320基本上与第3实施例中所说明的相同,从而此处省略其说明。
监视定时器582对时钟进行计数。一旦计数值达到预定值,监视定时器582为处理器4产生初始化信号INIT并停止计数。该预定值可以由处理器4设定或者可以是固定值。一旦接收到初始化信号INIT,处理器4就初始化该处理器本身以及***。在计数值达到预定值前如果有来自于处理器4的访问,则监视定时器582被清除,并从初始值开始对时钟计数。
在处理器4中,在多任务OS上周期性地起动访问监视定时器582的任务。该任务的周期被设定为比监视定时器582的超时短。该任务作为“监视监控任务”被示于图8中。该任务在进程优先级上高于其它任务,但是低于中断处理(不是被规定进程的任务)。
定时值评价部分584读取监视定时器582的计数值,评价在监视定时器582超时之前的剩余值是否等于或者小于预定阈值。如果剩余值等于或者小于阈值,定时值评价部分584指示接收通知停止控制部分574停止用作为中断信号的与接相关的通知信号INTR向处理器4的通知。在接收到该指令时,接收通知停止控制部分574停止用与接收相关的通知信号INTR向处理器的通知。
计数器476基本上与参照图9所进行的上述说明相同,并且可以通过基本上与实施例4相同的方式来取消用与接收相关的通知信号INTR的通知的停止。
可以省略定时值评价部分584,并且处理器4可以进行由定时值评价部分执行的处理。这样,当从接收通知停止控制部分574接收到与接收相关的通知信号INTR时,处理器4起动接收中断处理,从而执行与定时值评价部分584相同的处理。
如上所述,在本实施例的数据包接收控制装置500中,如果监视定时器的正常监视操作被由数据包接收引起的中断所阻碍,可以停止与数据包接收有关的与接收相关的通知信号INTR的产生。如果中断信号频繁地产生,处理器的处理能力会变得如此紧张以致于处理器甚至会无法执行清除监视定时器的任务,结果,监视定时器会产生初始化信号。通过如上所述停止通知信号,会避免此种事件的出现。
(实施例6)
图11是本发明实施例6的数据包接收控制装置600的方框图。图11的数据包接收控制装置600包括负荷检测部分620、接收控制部分640、接收数据包传送部分660和数据包解析部分670。数据包接收控制装置600用于代替图1的数据包通信***中的数据包接收控制装置100。
接收控制部分640包括过滤规则设定部分642、对话管理部分644、标题分类部分646、丢弃过滤表存储器652和丢弃/通过确定部分656。接收数据包传送部分660包括接收数据包缓冲器662。数据包解析部分670包括频率测量部分672和数据包扫描部分674。
负荷检测部分620检测处理器4上的负荷,并将检测结果输出到过滤规则设定部分642。只需检测处理器4是否处于超负荷状态的负荷检测部分620可以基本上分别与参照图2、图6和图7说明的负荷检测部分20、220和320相同。
接收数据包传送部分660从通信部分2接收数据包,将每个数据包的至少一部分保存在接收数据包缓冲器662中,并从接收控制部分640的丢弃/通过确定部分656接收指令。如果被指示通过数据包,接收数据包传送部分660将接收数据包输出到存储器8,以便将数据包存储在其中,以输出给处理器4。如果被指示丢弃数据包,接收数据包传送部分660清除接收数据包缓冲器而不输出接收数据包。另外,接收数据包传送部分660至少取出每个接收数据包的标题,并将标题输出给标题分类部分646。
存储器8以接收队列的方式在其中存储接收到的数据包。处理器4从存储器8的接收队列中读取接收数据包。
标题分类部分646解析接收到的标题,从标题中取出目的地址和协议值,并将取出的信息输出给丢弃/通过确定部分656。丢弃过滤表存储器652像图2的丢弃过滤表存储器52那样在其中存储丢弃过滤表。
丢弃/通过确定部分656将接收到的目的地址与协议值的组合与设置在丢弃过滤表存储器652中的组合比较。如果确定不存在与接收的组合匹配的组合,丢弃/通过确定部分656指示接收数据包传送部分660使待确定的数据包通过。如果确定存在匹配,丢弃/通过确定部分656指示接收数据包传送部分660丢弃待确定的接收数据包。
对话管理部分644以对话管理表的形式保存一组由处理器4执行的一个或多个通信应用所使用的数据包的类型以及通信应用的标识符。当通信应用结束时,对话管理部分644通过来自于对话管理表中的通信应用,检测用于通信的数据包类型。另外,当有通信应用的通信对话结束时,对话管理部分644从对话管理表中删除用于通信对话的数据包类型。对话时间管理部分644还通过响应来自于过滤规则设定部分642的指令,将通信应用使用的数据包的类型通知给过滤规则设定部分642。
当接收到表示处理器4处于超负荷状态的负荷检测部分620的输出时,过滤规则设定部分642在丢弃过滤表存储器652中存储预定的过滤规则。另外,根据从数据包解析部分670的频率测量部分672接收的频率信息和从对话管理部分644接收的通信应用所使用的数据包的类型,过滤规则设定部分642制定新的过滤规则,并将新的过滤规则存储在丢弃过滤表存储器652中。
当接收到来自于过滤规则设定部分642的指令时,频率测量部分672指示数据包扫描部分674取出存储在存储器8中的接收队列的接收数据包的目的地址与协议值的组。当从数据包扫描部分674接收到存储器8中接收队列内的全部接收数据包的目的地址与协议值的组时,频率测量部分672将接收到的组分类,以获得每个类型的接收数据包的接收频率,并将获得的接收频率作为频率信息输出给过滤规则设定部分642。
当接收到来自于频率计数部分622的指令时,数据包扫描部分674扫描并解析存储在存储器8中接收队列内的接收数据包的标题,取出目的地址和协议值,并将取出的信息输出给频率测量部分672。
图12是示出图11的数据包接收控制装置的操作流的流程图。参照图12说明图11的数据包接收控制装置的操作。
在步骤S10中,负荷检测部分620检测处理器4上的负荷,并将检测结果通知给接收控制部分640的过滤规则设定部分642。
在步骤S20中,过滤规则设定部分642确定处理器4是否处于超负荷状态。如果过滤规则设定部分642从负荷检测部分620接收到处理器4处于超负荷状态的通知,则处理就前进到步骤S30。否则,结束处理。
图13是示出包括第一过滤规则组的丢弃过滤表的例子的图。在步骤S30中,过滤规则设定部分642制定在超负荷时用的第一过滤规则组,并将所制定的过滤规则组作为第一过滤表组存储在丢弃过滤表存储器652中。在此例中,假设使用表示所有数据包都应该如图13所示那样被丢弃的过滤规则。
对丢弃/通过确定部分656的操作进行说明。丢弃/通过确定部分656将不满足特定行中的任意一个条件的数据包看作是负逻辑,将满足特定行的任意一个条件的数据包作为“匹配”而看作是丢弃过滤表中的正逻辑,并发出丢弃这样的数据包的指令。在图13所示的情况,丢弃/通过确定部分656将全部数据包看作是“匹配”,从而指示接收信息传送部分660丢弃全部的数据包。
在步骤S40中,过滤规则设定部分642指示频率测量部分672输出接收数据包的频率信息。频率测量部分672指示数据包扫描部分674为接收数据包输出目的地址与协议的组。数据包扫描部分674扫描存储器8中的接收队列,为存储在其中的全部数据包输出目的地址与协议的组。频率测量部分672将从数据包扫描部分674输出的组分类,并将结果作为频率信息输出给过滤规则设定部分642。例如,获得的频率信息与图4所示的相似。
步骤S50是确定应被丢弃的数据包的步骤,包括确丢弃的例外的步骤S52和确定丢弃的步骤S54。
图14是示出对话管理表的例子的图。在步骤S52中,过滤规则设定部分642指示对话管理部分644输出通信应用使用的数据包的类型。当接收到指示时,对话管理部分644输出例如图14所示的对话管理表。图14的对话管理表表明处理器4执行2个通信应用,通信应用A1(标识符1)和通信应用2(标识符2)分别使用IPv6单播数据包和IPv6单播数据包。
然后,过滤规则设定部分642从丢弃过滤规则的候选中除去预定的数据包的类型,以及从对话管理部分642中输出的数据包的类型。特别是,例如,作为预定的数据包的类型,从候选中除去UpnP(IPv4)多播数据包。另外,基于从对话管理部分644输出的对话管理表,从丢弃过滤规则的候选中除去IPv4单播数据包和IPv6单播数据包。
在步骤S54中,基于从频率测量部分672输出的频率信息,过滤规则设定部分642将具有超过预定值的接收频率的数据包的类型确定为应丢弃的数据包的类型,以制定丢弃过滤规则。例如,过滤规则设定部分642将阈值设定为10%,并将具有全部频率的10%或者以上的频率的数据包的类型确定为应丢弃的数据包的类型,以制定丢弃过滤规则,从而丢弃该类型的数据包。结果,丢弃过滤规则设定部分642确定丢弃UpnP(1Pv6)多播、非IP单播和通用的多播的数据包,并制定用于此种丢弃的第二过滤规则组。
在步骤S60中,过滤规则设定部分642将这样制定的第二过滤规则代替第一过滤规则,存储在丢弃过滤表存储器652中。
图15是示出包括第二过滤规则组的丢弃过滤表的例子的图。丢弃/通过确定部分656将不满足特定行的任何条件的数据包看作是负逻辑,将满足特定行的任何条件的数据包看作是作为“匹配”的正逻辑,并发出丢弃这样的数据包的指令。
接着,将说明在通信应用结束通信时执行的操作。一旦通信应用结束通信,处理器4向对话管理部分644通知通信的结束。在接收到来自于处理器4的通知时,对话管理部分644基于该通知,更新对话管理表,然后向过滤规则设定部分642通知对话管理表的更新。例如,在通信应用A2结束通信时,图14的对话管理表被更新为仅具有被通信应用A1使用的IPv4单播。
在接收到来自于对话管理部分644的通知时,过滤规则设定部分642就顺次执行图12的步骤S52、S54、S60。作为这些步骤的执行结果,除了通信应用A2结束通信前制定的丢弃过滤规则外,过滤规则设定部分642还将IPv6单播确定为应丢弃的数据包的类型,并设定过滤规则,以便丢弃这类型型的数据包。结果,在丢弃过滤表中存储设定为丢弃IPv6单播、UPnP(IPv6)多播、非IP单播和通用的多播的数据包的过滤规则。
这样,当通信应用结束通信时,数据包接收控制装置600设定丢弃过滤规则,以便丢弃通信使用的类型的数据包。
如上所述,在图11的数据包接收控制装置600中,一旦负荷检测部分620检测出处理器4的超负荷,首先设定表示应被丢弃的数据包的全部类型的第一过滤规则。然后,解析存储在接收队列中的接收数据包,以规定引起超负荷的数据包的类型,并设定代替第一过滤规则组的表明丢弃该类型的数据包的第二过滤规则组。这使得可以继续接收正常接收的数据包,而丢弃引起处理器超负荷的类型的数据包。
当通信应用结束通信时,数据包接收控制装置600设定表示在通信中使用的类型的数据包应该被丢弃的过滤规则。这使得可以丢弃随着通信的结束而不再需要接收的类型的数据包。
丢弃具有超过预定值的接收频率的类型的数据包。所以能够有效地减轻处理器4的负荷。
处理器4执行的通信应用所使用的数据包的类型能被从表示应被丢弃的数据包的过滤规则的候选中排除出去,即使它们引起大的处理负荷。
图16是示出图11的数据包接收控制装置的操作流的另一个例子的流程图。图16中的步骤S240、S250分别代替图11的步骤S40、S50而被执行。
在图16的步骤S242中,在被负荷监视部分620通知处理器处于超负荷状态时,过滤规则设定部分642确定是否已从最近的超负荷通知经过了预定的时间。如果经过了预定时间,处理前进到步骤S244。否则,处理前进到步骤S246。
在步骤S244中,过滤规则设定部分642不请求新的频率信息,而将上次从频率测量部分672接收到的频率信息作为频率信息。假设频率测量部分672上次输出例如图4所示的频率信息,过滤规则设定部分642再次使用图4中所示的频率信息。然后,处理前进到步骤S52。
在步骤S246中,过滤规则设定部分642指示频率测量部分672发送最新的频率信息。在接收到来自于过滤规则设定部分642的指令时,频率测量部分672指示数据包扫描部分674输出接收数据包的目的地址与协议的组。在接收到来自于频率测量部分672的指令时,数据包扫描部分674扫描存储在存储器8中接收队列的全部接收数据包,为各接收数据包顺次取出目的地址和协议的组,并将取出的信息输出给频率测量部分672。
频率测量部分672将从数据包扫描部分674接收的组分类,并将结果作为频率信息存储在其中。一旦为全部接收数据包获得频率信息,频率测量部分672将结果频率信息输出到过滤规则设定部分642。当接收到频率信息时,过滤规则设定部分642保存接收到的频率信息,还设定标志位,该标志位表示处理器4的超负荷在预定的时间内被再次检测出。处理前进到步骤S52。
步骤S252与参照图12的说明相同,所以此处省略其说明。步骤S254代替图12的步骤S54而被执行。
在步骤S255中,过滤规则设定部分642确定从上次的超负荷通知是否经过了预定的时间。即,确定标志位是否已被设定。如果标志位已被设定,处理前进到步骤S256。否则,处理前进到步骤S257。
在步骤S256中,过滤规则设定部分642基于频率信息而降低作为选择应被丢弃的数据包类型的参考的频率阈值,以便能够丢弃更多类型的数据包。例如,频率的阈值可以从10%降低到5%。
在步骤S257中,过滤规则设定部分642确定应被丢弃的数据包的任何类型。换言之,制定过滤规则,以便可以基于频率信息,丢弃具有超过预定值的频率的任何类型的数据包。假设在步骤S256中将阈值下降到5%,确定丢弃除了UPnP(IPv4)多播、UPnP(IPv6)多播和非IP单播数据包以外的数据包,并制定用于丢弃这些数据包的过滤规则。
如上所述,当在预定的时间内处理器再次处于超负荷状态时,过滤规则设定部分642降低频率的阈值,以制定用于丢弃更多类型的数据包的过滤规则。
这样,在图16所示的处理中,当处理器4的超负荷状态继续时,可以设定过滤表,以减轻处理器4的负荷。
(实施例7)
图17是本发明实施例7的数据包接收控制装置的方框图。数据包接收控制装置700与图11的数据包接收控制装置600的不同之处在于接收控制部分740被提供为代替接收控制部分640。接收控制部分740与图11中的接收控制部分640的不同之处在于过滤规则设定部分742被提供为代替过滤规则设定部分642,并且还包括学习结果存储器748。其它部分基本上与图11的信息接收控制装置相同,所以此处省略其详细说明。数据包接收控制装置700用来代替图1的数据包通信***中的数据包接收控制装置100。
学习结果存储部分748具有定时器,每当从过滤规则设定部分742中接收到超负荷状态检测的通知,该定时器输出定时值,然后清除定时值。
图18是示出图17的数据包接收控制装置的操作流的一部分的流程图,图19是示出图18的操作流的后续的流程图。图18和图19的全部流程图与图12的流程图的不同之处在于还分别提供步骤S22和S370,提供代替步骤S40、S50的步骤S240和S350。步骤S10、S30和S60基本上与参照图12的上述说明相同,所以此处省略其说明。
在图18的步骤S20中,如果负荷检测部分620通知处理器4处于超负荷状态,处理前进到步骤S372。否则,处理前进到步骤S22。
在步骤S372中,学习结果存储部分748确定从上次处理器4处于超负荷状态的通知经过的时间是否在预定的时间以内。特别是,学习结果存储器748将定时值与其中保存的阈值比较。如果定时值小于阈值,则学习结果存储器748在步骤S374中降低阈值。如果定时值等于或者大于阈值,则学习结果存储器748在步骤S375中不改变阈值。换言之,如果在预定的时间内再次检测出超负荷状态,则调整阈值,以便丢弃更多的数据包。
在步骤S22中,学习结果存储器748基于来自过滤规则设定部分742的通知,确定处理器4的非超负荷状态是否持续固定的时间。如果非超负荷状态持续固定的时间,则处理前进到步骤S378。否则,结束处理。在步骤S378中,学习结果存储器748增加阈值。换言之,如果非超负荷状态已持续固定的时间,则减少应被丢弃的数据包类型的数目。在步骤S376中,学习结果存储器748用新的阈值更新存储在其中的阈值。
图19的步骤S240基本上与参照图16的说明相同。注意,在步骤S22的确定时用的固定时间必须短于步骤S24中确定所用的预定时间。通过以这种方式设定,可以再使用以前获得的频率信息来改变应该被丢弃的数据包的范围。
在步骤S351中,过滤规则设定部分742从学习结果存储器748接收阈值。如参照图18的说明那样,该阈值是学习结果存储器748基于超负荷状态检测的间隔通过学习获得的值。例如,学习结果存储器748输出10%的值作为阈值。
步骤S352和S354大致上与图12的步骤S352和S354相同,除了过滤规则设定部分742使用从学习结果存储器748接收的阈值,而非当前阈值,所以此处省略器说明。
如上所述,过滤规则设定部分742基于由学习结果存储部分748更新的阈值来设定丢弃过滤表。所以,根据处理器4的负荷程度和用户的使用条件,可以丢弃数据包的适当部分。
(实施例8)
图20是示出本发明实施例8的数据包接收控制装置的方框图。图20的信息接收控制装置800与图11的数据包接收控制装置600的不同之处在于提供接收控制部分840和接收数据包传送部分860,代替接收控制部分640和接收数据包传送部分660,并且还提供队列管理部分882。接收控制部分840与图11的接收控制部分640的不同之处在于还提供代替过滤规则设定部分642的过滤规则设定部分842。其它部分基本上与图11的数据包接收控制装置相同,所以此处省略器详细的说明。数据包接收控制装置800被用来代替图1的数据包通信***中的数据包接收控制装置100。
队列管理部分882以队列管理表的方式存储被允许存储在存储器8的接收队列中的接收数据包的数目以及实际存储在存储器8中的接收数据包的数目。接收数据包传送部分860包括接收数据包缓冲器862。在将接收数据包传送到存储器8的接收队列时,接收数据包传送部分860更新记录在队列管理表中接收队列内的接收数据包的数目。在从接收队列中取出接收数据包时,处理器4还更新记录在队列管理表中接收队列内的接收数据包的数目。
图21是示出图20的数据包接收控制装置的操作流的流程图。在图21的流程图中,将步骤S472和S474加入到图12的流程图。其它步骤基本上与参照图12的说明相同,所以此处省略其详细的说明。
在步骤S472中,当从负荷检测部分620中接收到处理器处于超负荷状态的通知时,由队列管理部分882保持的过滤规则设定部分842增加被允许存储在存储器8的接收队列中的接收数据包的数目。
在步骤S474中,基于被允许存储在接收队列内的接收数据包的数目和实际存储在接收队列内的接收数据包的数目,队列管理部分882参照队列管理表确定接收队列是否充满接收数据包。
如果接收队列充满接收数据包,队列管理部分882将该事实通知给过滤设定部分842,以便丢弃接收数据包。然后,处理前进到步骤S30。
如果接收队列未充满接收数据包,队列管理部分882允许接收数据包存储在存储器8的接收队列内,并更新记录在队列管理表中的接收队列内的接收数据包的数目。然后,处理前进到步骤S474。
如上所述,由于通过执行步骤S472和S474的处理,接收队列内的接收数据包的数目增加,所以数据包解析部分670可以输出更正确的频率信息。结果,过滤规则设定部分842能更加正确地确定应丢弃的数据包的类型。
(实施例9)
图22是本发明实施例9的数据包接收控制装置的方框图。图22的数据包接收控制装置900与图11的数据包接收控制装置600的不同之处在于提供代替接收数据包传送部分660和数据包解析部分670的接收数据包传送部分960和数据包解析部分970。数据包解析部分970与图11的数据包解析部分670的不同之处在于提供代替数据包扫描部分674的数据包扫描部分974。其它部分基本上与图11的数据包接收控制装置相同,所以此处省略其详细的说明。数据包接收控制装置900被用来代替图1的数据包通信***中的数据包接收控制装置100。在存储器8中除了接收队列外,还存储有标题信息表。
当从通信部分2接收到接收数据包时,接收数据包传送部分960根据接收控制部分640的指令,将该接收数据包传送到存储器8的接收队列中。接收数据包传送部分960还复制接收数据包的标题信息,并以标题信息表的形式将所复制的标题信息存储在存储器8内。例如,标题信息表可以具有队列结构,在该队列中,可以从开头顺次参照存储的标题信息。标题信息表包括曾存储在存储器8中的接收数据包(不仅仅是当前存储在存储器8中的接收数据包)的标题信息。
在接收到来自于频率测量部分672的指令时,接收数据包解析部分970的数据包扫描部分974顺次扫描存储器8内标题信息表中的标题信息,并将其中存储的全部目的地址和协议的组输出到频率测量部分672。频率测量部分672将来自于数据包扫描部分的全部组分类,并将结果频率信息输出到过滤规则设定部分642。
如上所述,由于数据包解析部分970从保存在标题信息表内的标题信息中获得频率信息,则每个数据包所需的存储信息的容量可以较小。这样,可以基于比从接收队列的接收数据包中获得频率信息时更多的接收数据包来获得频率信息。因此,过滤规则设定部分642可以更加正确地确定应丢弃的数据包的类型。
在以上的实施例中,数据包解析部分670通过例如处理器4执行的程序来实现。可选地,通过由其它的处理器执行的程序也可以实现数据包解析部分670。
过滤规则设定部分可以基于从频率测量部分672输出的频率信息,以接收频率递减的顺序,从接收数据包的类型中选择预定数目的类型,并将所选择的类型作为应被丢弃的数据包的类型。
在以上的实施例中,接收数据包过滤器仅参照MAC帧的目的地址和协议。可选地,也可以为了过滤而参照接收数据包的其它部分。例如,可以为了过滤而参照高层中的IP标题、TCP/UDP标题等,以通过更精细的方式进行应被丢弃的接收数据包的选择。
如此处所用,单位时间应该是固定长度的预定时间,也可以任何长度的时间。
上述各实施例只是本发明的例子,并且本发明的数据包接收控制装置的结构限于这些实施例。
本发明的数据包接收控制装置也可以被用作数据包过滤装置、半导体集成电路和网络处理器的一部分。
如上所述,本发明的数据包接收控制装置可以适当地检测由数据包的接收引起的处理器等的负荷,并且如果超负荷出现,适当地移除负荷。因此,本发明的数据包接收控制装置可应用于被连接到网络上并在进行通信处理时进行实时处理的此种设备上。
虽然本发明在优选实施例中被描述,但是熟悉本领域的人员应该理解,可以通过多种方式而被修改,并且可以假设除了以上被特殊设置和描述的实施例以外的许多实施例。因此,附加的权利要求欲覆盖落入本发明的真正精神和范围内的所有改变。

Claims (58)

1.一种数据包接收控制装置,包括:
负荷检测部分,用于检测处理器上的负荷并输出检测结果;和
接收控制部分,用于基于来自于该负荷检测部分的检测结果,确定该处理器是否应接收接收数据包,并输出确定结果,
其中该处理器根据来自于该接收控制部分的确定结果,接收该接收数据包。
2.如权利要求1所述的装置,进一步包括接收数据包传送部分,用于接收数据包并根据指令将接收到的数据包输出给该处理器,
其中该负荷检测部分检测与该负荷的程度相对应的值,作为处理负荷,并且
该接收控制部分在其中存储根据该处理负荷被设置的一个或更多的过滤规则,指示该接收数据包传送部分丢弃与上述过滤规则中的任何一个相匹配的接收数据包,并输出与过滤规则中的任何一个都不匹配的接收数据包。
3.如权利要求2所述的装置,其中该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设定,以便在该处理负荷较大时更多的接收数据包匹配该规则。
4.如权利要求2所述的装置,其中该接收控制部分包括统计获得部分,用于将接收数据包分成多个类型,并为每个类型测量每单位时间的数据包接收频率,并且在其中存储规则,作为该过滤规则,该规则被如此设定,以便按照每单位时间接收频率的递减顺序在多个类型中选择的类型的接收数据包匹配该规则。
5.如权利要求2所述的装置,其中该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设定,以便特定类型的接收数据包不匹配该规则。
6.如权利要求2所述的装置,其中该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设定,以便如果该处理负荷超过预定阈值,广播数据包和多播数据包匹配该规则。
7.如权利要求2所述的装置,其中该接收控制部分在其中存储规则,作为该过滤规则,该规则被如此设置,以便如果该处理负荷超过预定阈值,全部数据包匹配该规则。
8.如权利要求2所述的装置,其中在该处理负荷减少时,该接收控制部分在该减少后预定的期间内不改变该过滤规则,并且在该预定的期间经过后,在其中存储对应该处理负荷被设定的规则,作为该过滤规则。
9.如权利要求2所述的装置,进一步包括丢弃计数部分,用于测量该接收控制部分每单位时间接收数据包的丢弃频率,
其中,当该处理负荷减少时,如果该丢弃频率等于或者大于预定阈值,该接收控制部分不改变该过滤规则,并且如果该丢弃频率变得小于该预定阈值,则在其中存储对应该处理负荷被设定的信息,作为该过滤规则信息。
10.如权利要求1所述的装置,其中该负荷检测部分检测对应于该负荷的程度的值,作为处理负荷,并且
在该接收控制部分接收到关于数据包的接收产生的事件信号时,如果该处理负荷不超过预定值,该接收控制部分输出通知该处理器该事件信号的接收的通知信号,以便该处理器接收该接收数据包,并且如果该处理负荷超过该预定值,停止该通知信号的输出。
11.如权利要求10所述的装置,其中该通知信号是用于该处理器的中断信号。
12.如权利要求10所述的装置,其中该接收控制部分测量从该通知信号输出停止经过的时间,并且如果被测量的经过时间超过预定值,取消该通知信号输出的停止。
13.如权利要求10所述的装置,其中该接收控制部分测量每单位时间内该事件信号的产生频率,在该通知信号输出停止后,如果该产生频率变得小于预定值,取消该通知信号的输出的停止。
14.如权利要求1所述的装置,其中该负荷检测部分检测对应于该负荷的值,作为处理负荷,并且
该负荷检测部分包括:
定时计数器,用于测量从起动经过的时间;
监视部分,用于在被该处理器访问时,读取并输出该定时计数器的计数值,并重新起动该定时计数器;
负荷计算部分,用于基于预定的计划值和该读取的计数值,计算该处理负荷,并输出结果处理负荷。
15.如权利要求14所述的装置,其中该监视部分被该处理器在多任务操作***(OS)上周期性起动的任务访问。
16.如权利要求1所述的装置,其中该负荷检测部分检测对应于该负荷的程度的值,作为处理负荷,并且
该负荷检测部分包括:
定时计数器,用于测量从清除信号输入经过的时间,并且一旦被测量的时间达到预定时间,输出超时信号;
监视部分,用于在从该处理器被访问时,向该定时计数器输出该清除信号;
负荷计算部分,用于基于该超时信号计算该处理负荷。
17.如权利要求16所述的装置,其中该负荷计算部分计算每单位时间对应于该超时信号的产生频率的值,作为该处理负荷。
18.如权利要求16所述的装置,其中该负荷计算部分计算对应于该超时信号的连续输出次数的值,作为该处理负荷。
19.如权利要求18所述的装置,其中在该定时计数器变为超时时,较大的值被设定为该预定时间,并且在该定时计数器被清除时,较小的值被设定为该预定时间。
20.如权利要求16所述的装置,其中该监视部分被该处理器在多任务OS上周期性起动的任务访问。
21.如权利要求1所述的装置,进一步包括接收数据包传送部分,用于接收数据包,并根据指令将接收到的数据包输出给该处理器,
其中该负荷检测部分检测该处理器是否处于超负荷状态,并输出检测结果,并且
该接收控制部分在其中存储一个或者更多的过滤规则,指示该接收数据包传送部分丢弃与该过滤规则中的任何一个相匹配的接收数据包,输出与该过滤规则中的任何一个都不匹配的接收数据包,并且在该处理器处于超负荷状态时,在其中存储用在超负荷、允许比正常时期更多的数据包匹配的过滤规则,作为该过滤规则。
22.如权利要求21所述的装置,进一步包括超负荷对策部分,
其中该数据包传送部分通知该处理器数据包的输出,
该超负荷对策部分确定每单位时间向该处理器通知的频率,当该负荷检测部分检测出该处理器处于超负荷状态时,如果该通知的频率等于或者大于预定值,则通知该接收控制部分该处理器处于超负荷状态,并且
该接收控制部分在其中存储用在超负荷的过滤规则,作为该过滤规则。
23.如权利要求22所述的装置,其中,在该处理器从超负荷状态变为非超负荷状态时,该超负荷对策部分在预定的条件被满足后,通知该接收控制部分该处理器未处于超负荷状态,并且
当接收到该处理器未处于超负荷状态的通知时,该接收控制部分在其中存储用在正常时期的过滤规则,作为该过滤规则。
24.如权利要求23所述的装置,其中该预定的条件为预定时间从该处理器不再处于超负荷状态的时间经过。
25.如权利要求23所述的装置,进一步包括丢弃计数部分,用于测量每单位时间该接收控制部分的接收数据包的丢弃频率,
其中该预定的条件为该丢弃频率小于预定值。
26.如权利要求21所述的装置,其中用在超负荷的该过滤规则被设定以允许全部数据包匹配。
27.如权利要求21所述的装置,进一步包括统计获得部分,用于将接收数据包分成多个类型,并为每个类型测量每单位时间的数据包接收频率,并且
用在超负荷的该过滤规则被设定,以便以每单位时间的接收频率递减的方式在该多个类型中被选择的类型的接收数据包匹配该规则。
28.如权利要求21所述的装置,其中用在超负荷的该过滤规则被设定,以便特定类型的接收数据包不匹配该规则。
29.如权利要求1所述的装置,其中该负荷检测部分检测该处理器是否处于超负荷状态,并输出检测结果,并且
该接收控制部分确定每单位时间关于数据包接收而产生的事件信号的产生频率,并能输出通知该处理器该事件信号的接收的通知信号,如果该处理器处于超负荷状态且该事件信号的产生频率超过预定值,则该接收控制部分停止该通知信号的输出。
30.如权利要求29所述的装置,其中该通知信号是用于该处理器的中断信号。
31.如权利要求29所述的装置,其中该接收控制部分测量从该通知信号输出停止经过的时间,并在被测量的经过时间超过预定值时,取消该通知信号的输出的停止。
32.如权利要求29所述的装置,其中该接收控制部分测量每单位时间该事件信号的产生频率,在该通知信号输出停止后,当该频率变得小于预定值时,取消该通知信号的输出的停止。
33.如权利要求29所述的装置,进一步包括监视定时器,用于当预定时间内没有来自于该处理器的访问被产生时,将初始化请求信号输出给该处理器,并且
当该监视定时器输出该初始化请求信号之前的剩余时间比预定时间短时,该接收控制部分停止该通知信号的输出。
34.如权利要求1所述的装置,其中该负荷检测部分包括:
定时计数器,用于测量从清除信号的输入经过的时间,将表示被测量的时间达到预定时间的超时信号作为检测结果输出;和
监视部分,用于在被该处理器访问时,将该清除信号输出给该定时计数器。
35.如权利要求34所述的装置,其中该定时计数器被构造为允许该预定时间的改变。
36.如权利要求34所述的装置,其中该监视部分被该处理器中在多任务OS上周期性起动的任务访问。
37.如权利要求36所述的装置,其中该周期性起动的任务的进程优先级被设定为低于用于数据包通信协议的处理任务和用于实时通信应用的处理任务的进程优先级。
38.如权利要求37所述的装置,其中该周期性起动的任务的进程优先级被设定为低于用于实时控制应用的处理任务的进程优先级。
39.如权利要求37所述的装置,其中该周期性起动的任务的进程优先级被设定为高于用于需要非实时操作的应用的处理任务的进程优先级。
40.如权利要求1所述的装置,进一步包括:
接收数据包传送部分,用于接收数据包并根据指令将接收到的数据包存储在存储器中,以准备输出给该处理器;和
数据包解析部分,用于扫描曾被存储在该存储器中的接收数据包上的扫描信息,并为每个类型确定表示接收数据包的接收频率的频率信息,
其中该负荷检测部分检测该处理器是否处于超负荷状态,并输出检测结果,
该接收控制部分包括:
丢弃过滤表存储器,用于存储过滤规则;
过滤规则设定部分,用于在从接收到表示该处理器处于超负荷状态的检测结果时将第一过滤规则组存储在该丢弃过滤表存储器中,该第一过滤规则组包括表示应被丢弃的数据包的预定类型的过滤规则;和
丢弃/通过确定部分,用于指示该接收数据包传送部分丢弃匹配该过滤规则中的任何一个的接收数据包,并通过该存储器将不匹配该过滤规则中的任何一个的接收数据包输出给该处理器,
其中该过滤规则设定部分基于为曾被存储在该存储器中的接收数据包确定的该频率信息,确定应被丢弃的数据包的类型,并将第二过滤规则组代替该第一过滤规则组存储在该丢弃过滤表存储器中,该第二过滤规则包括表示所确定的应被丢弃的数据包类型的过滤规则。
41.如权利要求40所述的装置,其中该过滤规则设定部分基于该频率信息,将具有超过预定值的接收频率的数据包的类型,确定为应被丢弃的数据包的类型。
42.如权利要求40所述的装置,其中该过滤规则设定部分不将数据包的给定类型确定为应被丢弃的数据包的类型。
43.如权利要求40所述的装置,其中该接收控制部分进一步包括对话管理部分,用于保存表示被该处理器执行的通信应用所使用的数据包类型的信息,
其中该过滤规则设定部分不将该对话管理部分保存的信息所表示的数据包的类型确定为应被丢弃的数据包的类型。
44.如权利要求43所述的装置,其中,当该通信应用结束通信时,该对话管理部分输出表示被用于该通信应用的数据包类型的信息,并且
该过滤规则设定部分将被用于该通信应用的数据包的类型确定为应被丢弃的数据包的类型。
45.如权利要求40所述的装置,其中该过滤规则设定部分改变该第二过滤规则组,以便如果在预定的时间内再接收到表示该处理器处于超负荷状态的检测结果,更多类型的数据包被丢弃。
46.如权利要求40所述的装置,其中如果在预定的时间内再接收到表示该处理器处于超负荷状态的检测结果,该过滤规则设定部分基于以前用过的频率信息,确定应被丢弃的数据包的类型。
47.如权利要求40所述的装置,其中该接收控制部分进一步包括用于存储阈值的学习结果存储器,
当基于该频率信息确定应被丢弃的数据包的类型时,该过滤规则设定部分用被存储在该学习结果存储器中的阈值,制定该第二过滤规则组,并且
该学习结果存储器根据表示该处理器处于超负荷状态的检测结果的接收间隔,改变被存储的阈值。
48.如权利要求40所述的装置,其中该过滤规则设定部分基于该频率信息,以该接收频率递减的顺序在接收数据包的类型中选择预定数目的类型,并将被选择的类型确定为应被丢弃的数据包的类型。
49.如权利要求40所述的装置,其中该接收控制部分进一步包括队列管理部分,用于保存被允许存储在该存储器内的接收数据包的数目,并且
如果接收到表示该处理器处于超负荷状态的检测结果,该过滤规则设定部分增加被该队列管理部分保持的被允许存储在该存储器中的接收数据包的数目。
50.如权利要求40所述的装置,其中该接收数据包传送部分在该存储器中至少存储接收数据包的标题信息,并且
该数据包解析部分扫描被存储在该存储器中的标题信息以确定该频率信息。
51.如权利要求40所述的装置,其中该过滤规则设定部分设定该第一过滤规则组,以便全部的数据包被丢弃。
52.如权利要求1所述的装置,其中该数据包是以太网MAC帧。
53.一种半导体集成电路,包括:
权利要求1所述的数据包接收控制装置;和
用于根据该数据包接收控制装置的确定结果来接收数据包的处理器。
54.一种数据包接收控制方法,用于在存储器中存储接收数据包且然后将上述数据包输出给处理器,该方法包括以下步骤:
检测该处理器是否处于超负荷状态;
如果接收到表示该处理器处于超负荷状态的检测结果,则存储包括表示应被丢弃的数据包的预定类型的过滤规则的第一过滤规则组;
丢弃匹配该过滤规则中的任何一个的接收数据包,并通过该存储器将不匹配该过滤规则中的任何一个的接收数据包输出给该处理器;
根据该第一过滤规则组扫描曾被存储在该存储器中的接收数据包上的信息,以为该接收数据包的每个类型获得表示接收频率的频率信息;
基于该频率信息确定应被丢弃的数据包的类型;并且
将包括表示被确定的应被丢弃的数据包类型的过滤规则的第二过滤规则组代替该第一过滤组存储。
55.如权利要求54所述的方法,其中该确定应被丢弃数据包的类型的步骤基于该频率信息,确定具有超过预定值的接收频率的数据包的类型,作为应被丢弃的数据包的类型。
56.如权利要求54所述的方法,其中该确定应被丢弃的数据包的类型的步骤根据表示该处理器处于超负荷状态的检测结果的接收间隔,改变被用于确定的阈值。
57.如权利要求54所述的方法,进一步包括如果接收到表示该处理器处于超负荷状态的检测结果,增加被允许存储在该存储器中的接收数据包的数目的步骤,
其中该扫描接收数据包上的信息的步骤扫描被存储在该存储器中的接收数据包,以获得该频率信息。
58.如权利要求54所述的方法,其中该扫描接收数据包上的信息的步骤扫描曾被存储在该存储器中的接收数据包的标题信息,以获得该频率信息。
CN 200510105744 2004-09-27 2005-09-27 数据包接收控制装置及方法 Pending CN1756164A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004279981 2004-09-27
JP2004279981 2004-09-27
JP2005264201 2005-09-12

Publications (1)

Publication Number Publication Date
CN1756164A true CN1756164A (zh) 2006-04-05

Family

ID=36689138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510105744 Pending CN1756164A (zh) 2004-09-27 2005-09-27 数据包接收控制装置及方法

Country Status (1)

Country Link
CN (1) CN1756164A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714943B (zh) * 2008-10-06 2012-09-05 阿拉克斯拉网络株式会社 包中继装置
CN103636252A (zh) * 2012-06-12 2014-03-12 华为技术有限公司 数据包的处理方法和***及设备
CN104408110A (zh) * 2014-11-24 2015-03-11 北京奇虎科技有限公司 数据请求的方法、装置及***
CN104917693A (zh) * 2014-03-13 2015-09-16 领特德国公司 具处理器件之间流量控制的装置、单芯片***与方法
CN105493164A (zh) * 2013-08-22 2016-04-13 大陆-特韦斯贸易合伙股份公司及两合公司 基于接收信号强度在车对x网络中的接收数据缩减
CN110784608A (zh) * 2018-07-24 2020-02-11 柯尼卡美能达株式会社 图像形成装置以及病毒检查方法
CN111556261A (zh) * 2019-02-11 2020-08-18 三星电子株式会社 用于累加信号的传感器

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714943B (zh) * 2008-10-06 2012-09-05 阿拉克斯拉网络株式会社 包中继装置
CN103636252A (zh) * 2012-06-12 2014-03-12 华为技术有限公司 数据包的处理方法和***及设备
CN103636252B (zh) * 2012-06-12 2018-07-03 华为技术有限公司 数据包的处理方法和***及设备
CN105493164A (zh) * 2013-08-22 2016-04-13 大陆-特韦斯贸易合伙股份公司及两合公司 基于接收信号强度在车对x网络中的接收数据缩减
US9882791B2 (en) 2013-08-22 2018-01-30 Continental Teves Ag & Co. Ohg Reducing received data in a V2X network based on received signal strength
CN105493164B (zh) * 2013-08-22 2018-03-27 大陆-特韦斯贸易合伙股份公司及两合公司 基于接收信号强度在车对x网络中的接收数据缩减
CN104917693A (zh) * 2014-03-13 2015-09-16 领特德国公司 具处理器件之间流量控制的装置、单芯片***与方法
CN113285887A (zh) * 2014-03-13 2021-08-20 麦利尔亚洲新加坡私人有限公司 具处理器件之间流量控制的装置、单芯片***与方法
CN104408110A (zh) * 2014-11-24 2015-03-11 北京奇虎科技有限公司 数据请求的方法、装置及***
CN104408110B (zh) * 2014-11-24 2018-11-09 北京奇安信科技有限公司 数据请求的方法、装置及***
CN110784608A (zh) * 2018-07-24 2020-02-11 柯尼卡美能达株式会社 图像形成装置以及病毒检查方法
CN111556261A (zh) * 2019-02-11 2020-08-18 三星电子株式会社 用于累加信号的传感器

Similar Documents

Publication Publication Date Title
CN1252618C (zh) 故障预测***和方法及设备、打印机和管理服务器
CN1324451C (zh) 设备管理***和方法、打印机管理***和终端、网络打印机
CN1756164A (zh) 数据包接收控制装置及方法
CN1679004A (zh) 高速缓存设备、高速缓存数据管理方法和计算机程序
CN1120425C (zh) 存储器控制器和存储器控制方法
CN1204810A (zh) 遥控方法、服务器及记录介质
CN1282096C (zh) 网络通信装置、通信装置、以及数据发送接收处理方法
CN1968251A (zh) 数据通信装置
CN1531282A (zh) 分组中继装置
CN1894921A (zh) 发送台、接收台、通信方法、通信程序和记录了通信程序的计算机可读记录介质
CN1612122A (zh) 服务供给设备、服务供给程序、记录介质和服务供给方法
CN1450765A (zh) 服务器负载平衡***、装置以及内容管理装置
CN1539221A (zh) 传送装置和传送方法
CN1756196A (zh) 设置管理***和设置管理程序
CN1930486A (zh) 定位***
CN1638321A (zh) 发送设备和方法、接收设备和方法、存储介质以及程序
CN101068300A (zh) 图像形成装置及应用程序执行方法
CN101060491A (zh) 移动终端,控制设备,归属代理和分组通信方法
CN1525707A (zh) 通讯***,移动终端和传送设备
CN1890624A (zh) 电子装置及其控制方法、主机装置及其控制方法
CN1862522A (zh) 数据核对装置及核对方法
CN101061457A (zh) 输出***,输出数据管理装置,网络设备,输出数据管理程序,输出程序和输出方法
CN1414734A (zh) 频带保证***、中继装置及网络管理服务器
CN1871812A (zh) 用于传送通信网络管理信息的方法和***
CN1805374A (zh) 信息处理***、服务器装置及客户终端装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060405