表项下发方法、装置、数据转发设备及可读存储介质与流程

文档序号:18885106发布日期:2019-10-15 20:47阅读:206来源:国知局
表项下发方法、装置、数据转发设备及可读存储介质与流程
本申请涉及数据通信领域,具体而言,涉及一种表项下发方法、装置、数据转发设备及可读存储介质。
背景技术
:随着通信技术的不断发展,市场上对转发设备的转发能力的需求也越来越高,设备商使用专用硬件转发芯片实现数据快速查表转发已成为行业常态。由于硬件转发芯片成本高且芯片资源非常有限,而现实中业务相关的转发表项往往大于硬件转发芯片的表项容量,因此为了充分的利用硬件转发芯片快速查表转发这一特性,需要动态更新硬件转发芯片中的硬件表项。但是,若硬件转发芯片中的表项更新不及时,使得硬件转发芯片中当前安装的表项不能频繁地用于数据转发,还是得由处理器来完成数据转发的工作,那么硬件转发芯片的转发资源无法得以充分利用,进而导致硬件转发芯片资源的浪费。技术实现要素:本申请实施例的目的在于提供一种表项下发方法、装置、数据转发设备及可读存储介质,用以改善现有技术中硬件转发芯片中的表项不能频繁用于数据转发使得硬件转发芯片的转发资源无法得以充分利用,进而导致硬件转发芯片资源的浪费的问题。第一方面,本申请实施例提供了一种表项下发方法,所述方法包括:确定数据转发设备的硬件转发芯片中空闲表项资源的表项数量n;获取所述数据转发设备的处理器中按照活跃度高低排序的m条待下发表项中的前n条表项,其中,所述活跃度用于表征每条表项在所述硬件转发芯片中的命中情况,所述n和所述m均为大于或等于1的整数;将获取的所述n条表项下发至所述硬件转发芯片中。上述实现过程中,通过将处理器中活跃度较高的表项下发至硬件转发芯片中,使得下发至硬件转发芯片中的表项均为活跃度较高的表项,则这些表项可用于数据转发,从而使得硬件转发芯片的转发资源得以充分利用,提高了硬件转发芯片中表项的资源利用率,减少了硬件转发芯片资源的浪费以及减少了处理器的转发负载,且提高了数据转发的实效性。可选地,所述确定数据转发设备的硬件转发芯片中空闲表项资源的表项数量n之前,所述方法还包括:获取所述硬件转发芯片中用于检测表项活跃度的k条表项资源,k为大于等于1且小于等于m的整数;从所述处理器的m条待下发表项中选取k条目标表项下发至所述硬件转发芯片中;根据每条所述目标表项在所述硬件转发芯片中的命中情况确定所述每条所述目标表项的活跃度;从所述硬件转发芯片中删除所述k条目标表项,继续选取所述m条待下发表项中的剩余表项下发至所述硬件转发芯片中,直至获取所述m条待下发表项中每条表项的活跃度,并按照活跃度高低排序。在上述实现过程中,预先将处理器中的表项下发至硬件转发芯片中,通过表项在硬件转发芯片中的命中情况来确定其活跃度,由此可获得每条表项的活跃度,进而在下发表项至硬件转发芯片中时,可以将活跃度较高的表项先下发至硬件转发芯片中,从而提高了硬件转发芯片中的表项利用率,避免硬件转发芯片资源的浪费。可选地,所述命中情况包括命中频率,所述根据每条所述目标表项在所述硬件转发芯片中的命中情况确定所述每条所述目标表项的活跃度,包括:统计在预设时间段内每条所述目标表项在所述硬件转发芯片中的命中频率;根据所述命中频率确定每条所述目标表项的活跃度。在上述实现过程中,根据表项的命中频率来确定表项的活跃度,由此,在表项的命中频率较高时其活跃度也较高,从而在下发至硬件转发芯片中的表项均是命中频率较高的表项,进而可以提高硬件转发芯片中的表项利用率,避免了硬件转发芯片资源的浪费。可选地,所述命中情况包括每条所述目标表项的相邻两次之间的命中时间间隔,所述根据每条所述目标表项在所述硬件转发芯片中的命中情况确定所述每条所述目标表项的活跃度,包括:统计在预设时间段内每条所述目标表项在所述硬件转发芯片中的相邻两次之间的命中时间间隔;根据所述命中时间间隔确定每条所述目标表项的活跃度。在上述实现过程中,根据表项的相邻两次之间的命中时间间隔来确定表项的活跃度,由此,在表项的相邻两次之间的命中时间间隔较短时其活跃度也较高,从而在下发至硬件转发芯片中的表项均是命中时间间隔较短的表项,进而可以提高硬件转发芯片中的表项利用率,避免了硬件转发芯片资源的浪费。可选地,所述按照活跃度高低排序,包括:根据所述每条表项的活跃度确定所述每条表项的优先级;按照所述每条表项的优先级高低将所述m条待下发表项进行排序。在上述实现过程中,按照优先级对表项进行排序,使得在下发表项时可以直接选取排在前面的表项下发,而无需在表项下发时再比较各个表项之间的优先级,进而减少了数据处理量,使得表项可以及时下发至硬件转发芯片中。第二方面,本申请实施例提供了一种表项下发装置,所述装置包括:空闲资源确定模块,用于确定数据转发设备的硬件转发芯片中空闲表项资源的表项数量n;表项获取模块,用于获取所述数据转发设备的处理器中按照活跃度高低排序的m条待下发表项中的前n条表项,其中,所述活跃度用于表征每条表项在所述硬件转发芯片中的命中情况,所述n和所述m均为大于或等于1的整数;表项下发模块,用于将获取的所述n条表项下发至所述硬件转发芯片中。可选地,所述装置还包括:活跃度检测模块,用于:获取所述硬件转发芯片中用于检测表项活跃度的k条表项资源,k为大于等于1且小于等于m的整数;从所述处理器的m条待下发表项中选取k条目标表项下发至所述硬件转发芯片中;根据每条所述目标表项在所述硬件转发芯片中的命中情况确定所述每条所述目标表项的活跃度;从所述硬件转发芯片中删除所述k条目标表项,继续选取所述m条待下发表项中的剩余表项下发至所述硬件转发芯片中,直至获取所述m条待下发表项中每条表项的活跃度,并按照活跃度高低排序。可选地,所述命中情况包括命中频率,所述活跃度检测模块,还用于统计在预设时间段内每条所述目标表项在所述硬件转发芯片中的命中频率;根据所述命中频率确定每条所述目标表项的活跃度。可选地,所述命中情况包括每条所述目标表项的相邻两次之间的命中时间间隔,所述表项获取模块,具体用于统计在预设时间段内每条所述目标表项在所述硬件转发芯片中的相邻两次之间的命中时间间隔;根据所述命中时间间隔确定每条所述目标表项的活跃度。可选地,所述活跃度检测模块,还用于根据所述每条表项的活跃度确定所述每条表项的优先级;按照所述每条表项的优先级高低将所述m条待下发表项进行排序。第三方面,本申请实施例提供一种数据转发设备,包括硬件转发芯片、处理器以及存储器,所述存储器存储有计算机可读取指令,所述硬件转发芯片与所述处理器连接,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例提供的一种数据转发设备的结构框图;图2为本申请实施例提供的一种表项下发方法的流程图;图3为本申请实施例提供的一种表项下发装置的结构框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。图1为本申请实施例提供的一种数据转发设备的结构框图,该数据转发设备包括至少一个处理器110,例如cpu,至少一个通信接口120,至少一个存储器130、至少一个通信总线140和硬件转发芯片150。该数据转发设备可以为路由器、交换机等用于数据转发的设备,硬件转发芯片150可以为路由器或交换机中的用于数据转发的交换芯片等。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储装置。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,数据转发设备执行下述图2所示方法过程。现有技术中,为了充分利用硬件转发芯片150的表项资源,所以,通常处理器110会将处理器110中的表项下发至硬件转发芯片150中,而由于硬件转发芯片150的表项资源有限,且处理器110中的表项一般有上万条,从而处理器110只能根据硬件转发芯片150的空闲表项资源来下发对应的表项。所以,为了获得硬件转发芯片150的空闲表项资源,需要及时对硬件转发芯片150中的表项进行更新,即及时老化硬件转发芯片150中不活跃的表项,其中,老化是指对表项进行删除的过程,不活跃的表项是指表项在硬件转发芯片150中的命中率不高。所以,在老化硬件转发芯片150中不活跃的表项后,再重新从数据转发设备的处理器110中下发新的业务表项至硬件转发芯片150中。而表项老化的过程一般是一个比较慢长的过程,如果下发的新表项也是不活跃的表项,即这些表项在硬件转发芯片150中不能频繁地用于数据转发,那么硬件转发芯片150的转发资源无法得以充分利用,进而导致硬件转发芯片资源的浪费。所以,如果处理器110连续下发的表项均是不活跃的表项,那么这些表项均要通过老化机制缓慢释放出来,使真正活跃的表项迟迟得不到安装应用,进而浪费了硬件转发芯片资源,也降低了数据转发的实效性。现有技术中存在的上述缺陷,本申请人认为均是申请人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是申请人在本申请过程中对本申请做出的贡献。为解决上述技术问题,本申请实施例提供了如下的表项下发方法,下面结合附图进行详细介绍。请参照图2,图2为本申请实施例提供的一种表项下发方法的流程图,所述方法包括如下步骤:步骤s110:确定数据转发设备的硬件转发芯片中空闲表项资源的表项数量n。在数据转发设备中,处理器和硬件转发芯片均可以用于数据转发,但是为了减少处理器用于在数据转发上的资源消耗,使得处理器可以利用更多的资源来处理其他事情,其只需要预留小部分资源用于数据转发,所以,处理器需要将表项下发至硬件转发芯片中,由硬件转发芯片来执行数据转发工作。而硬件转发芯片中的表项资源有限,其只能存储处理器中的一部分表项,例如处理器中可以存储上百万条表项,而硬件转发芯片中只能存储上万条或更少的表项,所以,处理器在向硬件转发芯片中下发表项时,其并不是一次性将所有的表项均下发至硬件转发芯片中,而是根据硬件转发芯片的表项资源来下发的,即处理器是选取一部分表项下发至硬件转发芯片中,所以,处理器在下发表项至硬件转发芯片中前,还需获取硬件转发芯片中的空闲表项资源,以根据该空闲表项资源来下发对应数量的表项。硬件转发芯片中的空闲表项资源是指处理器还可下发至硬件转发芯片的表项数量。由于硬件转发芯片中的表项若是不活跃时,则可通过硬件转发芯片中的老化机制将不活跃的表项删除,由此释放该表项资源,释放出来的表项资源即为空闲表项资源,空闲表项资源对应的表项数量以n表示,n为大于或等于1的整数。如当前硬件转发芯片中可存储50条表项,其已经有20条表项,则剩余的空闲表项资源为30条。硬件转发芯片的空闲表项资源可以由硬件转发芯片主动定时向处理器发送,从而处理器可知晓其空闲表项资源中的表项数量,从而可下发对应的数量的表项,当然,处理器也可以主动定期检测硬件转发芯片的空闲表项资源,从而可获得需下发的表项的数量。由于处理器可根据硬件转发芯片中的空闲表项资源来选择对应下发的表项,如此可根据硬件转发芯片的实际表项需求来灵活选择对应数量的表项下发,避免了表项下发过多时导致硬件转发芯片无法全部接收的问题。步骤s120:获取所述数据转发设备的处理器中按照活跃度高低排序的m条待下发表项中的前n条表项。为了提高硬件转发芯片的表项资源的利用率,需确保处理器下发给硬件转发芯片的表项均是活跃度较高的,所以,还需获取处理器中m条待下发表项中每条表项的活跃度,该活跃度用于表征每条表项在硬件转发芯片中的命中情况,m为大于1的整数。其中,n与m的关系,若处理器中还剩余有少量的表项待下发,而此时硬件转发芯片中的空闲表项资源较多,这种情况下,n可能大于或等于m,当处理器中剩余的表项较多,硬件转发芯片中的空闲表项资源较少时,则n可能小于m。应理解,“活跃度用于表征每条表项在所述数据转发设备的硬件转发芯片中的命中情况”在本申请实施例中具有两层含义,一种情况是活跃度是由命中情况确定的(也就是说活跃度与命中情况具有一个映射关系);另一种情况是活跃度等于命中情况本身。其中,命中情况可以包括命中频率或者命中次数,表项的活跃度越高表征该表项在硬件转发芯片中的命中频率越高或者命中次数越多,也就是说,该表项在硬件转发芯片中被频繁用于数据转发,则表示其活跃度较高。例如,命中情况可以包括命中频率,在时间单位内表项使用次数越多表示使用频率越高,对应的活跃度越高;再例如,命中情况可以包括命中次数,表项使用次数越多对应的活跃度越高;可选的,命中情况也可以根据命中频率和命中次数共同决定的,例如,可以是根据二者的加权求和确定的,本申请实施例并不限于此。在上述获得每条表项的活跃度后,可以将处理器中的m条待下发表项按照活跃度从高到低依次排序,然后选择活跃度较高的n条表项下发至硬件转发芯片中,也就是说,下发至硬件转发芯片中的n条表项的活跃度是高于m条待下发表项中剩余表项的活跃度,但是有些情况下,排序过后的表项中的相邻两条表项的活跃度可能是相等的,所以,在这种情况下n条表项中某条表项的活跃度也可能等于剩余表项中某条表项的活跃度。可以理解地,在下发至硬件转发芯片中的n条表项的活跃度均较高,从而使得这n条表项在硬件转发芯片中可频繁用于数据转发,使得可以减少硬件资源的浪费,提高数据转发的实效性。步骤s130:将获取的所述n条表项下发至所述硬件转发芯片中。在上述获得m条待下发表项中活跃度较高的n条表项后,将这n条表项下发至硬件转发芯片中。其中,按照活跃度高低排序的m条待下发表项中的前n条表项可以理解为在处理器中的m条待下发表项的活跃度从高到低排列,然后选取活跃度靠前的n条表项来下发至硬件转发芯片中。也就是说,处理器下发至硬件转发芯片中的表项均是活跃度较高的表项,由此,使得在硬件转发芯片中的这些表项均可以用于进行数据转发,而无需处理器再额外分配较多的资源用于数据转发,由此可减少处理器资源的浪费。需要说明的是,数据转发设备在接收到数据后,先查找硬件转发芯片中的表项,查找该表项中是否有该数据对应的目的地址,若有,则直接按照表项将数据转发至目的地址,若硬件转发芯片中没有表项中有该数据对应的目的地址,则再查找处理器中的表项,通过处理器中的表项来将数据转发至目的地址,如此,可充分利用硬件转发芯片的转发资源,减少处理器的系统开销,提高了业务实效性。在上述实现过程中,通过将处理器中活跃度较高的表项下发至硬件转发芯片中,使得下发至硬件转发芯片中的表项均为活跃度较高的表项,则这些表项可用于数据转发,从而使得硬件转发芯片的转发资源得以充分利用,提高了硬件转发芯片中表项的资源利用率,减少了硬件转发芯片资源的浪费以及减少了处理器的转发负载,且提高了数据转发的实效性。作为一种示例,为了获取处理器中m条待下发表项中每条表项的活跃度,还可以从预先将这m条待下发表项下发至硬件转发芯片中,由此可测得每条表项的活跃度,具体的做法为:获取硬件转发芯片中用于检测表项活跃度的k条表项资源,k为大于等于1且小于等于m的整数,然后从处理器的m条待下发表项中选取k条目标表项下发至硬件转发芯片中,再根据每条目标表项在硬件转发芯片中的命中情况确定每条目标表项的活跃度,然后从硬件转发芯片中删除该k条目标表项,继续选取m条待下发表项中的剩余表项下发至硬件转发芯片中,直至获取m条待下发表项中每条表项的活跃度,并按照活跃度高低排序。可以理解地,硬件转发芯片中可以预留一部分表项资源用于检测处理器中的表项的活跃度,具体预留的表项资源可以根据实际需求进行设置,例如预留100条表项资源,即k等于100。然后可以从处理器中任意选取100条目标表项或者从m条待下发表项中依次选取100条目标表项下发至硬件转发芯片中,然后运行硬件转发芯片,统计这100条目标表项在预设时间段内的命中情况,根据其命中情况来确定每条目标表项的活跃度。应理解,活跃度可以由命中情况确定的,例如,某个命中次数对应于某个活跃度,也可以是等于命中情况,在活跃度等于命中情况时,在确定出命中情况时,活跃度即已确定。例如,对于某条目标表项其在预设时间段内在硬件命中情况为其在预设时间段内被使用5次用于数据转发,所以其活跃度可为5,或者不同的命中次数对应于不同的活跃度,比如命中5次,其对应的活跃度为2。在上述实现过程中,预先将处理器中的表项下发至硬件转发芯片中,通过表项在硬件转发芯片中的命中情况来确定其活跃度,由此可获得每条表项的活跃度,进而在下发表项至硬件转发芯片中时,可以将活跃度较高的表项先下发至硬件转发芯片中,从而提高了硬件转发芯片中的表项利用率,避免硬件转发芯片资源的浪费。作为一种示例,命中情况包括命中频率,所以获取表项的活跃度还可以为:统计在预设时间段内每条目标表项在硬件转发芯片中的命中频率,然后根据命中频率确定每条目标表项的活跃度。例如,在将k条目标表项下发至硬件转发芯片中后,在预设时间段为50s内统计每条目标表项的命中频率,其中,由于硬件转发芯片有一个特性,即若有数据流量命中了某条已安装的表项,则硬件转发芯片会为该表项打上命中标记。所以,可以如每隔10s对每条目标表项的命中标记进行判断,也就是说,目标表项每用于转发一次,则硬件转发芯片会为其打上命中标记,然后在每次命中标记判断后,若某条目标表项被打上命中标记,则对其进行记录,然后将该目标表项的命中标记删除,继续每隔10s对其进行命中标记判断,如此对每条目标表项均进行5次这样的命中标记判断,则可统计每条目标表项被打上了几次命中标记,由此可统计出每条目标表项在50s内的命中次数,如被命中标记3次,其命中次数也为3次,其命中频率为50s/3=16.67s/每次。上述过程中,在每次检测到表项打上命中标记后,对其进行记录,然后再将表项的命中标记删除,如此可使用处理器来清除命中标记而无需硬件转发芯片统一时间点清除所有标记,从而使得对活跃度计算的同时也不会影响硬件转发芯片中的表项的老化过程,使处理器中的表项的活跃度的快速计算得以实现。在每次统计出k条目标表项的活跃度后,从硬件转发芯片中删除该k条目标表项,然后从m条待下发表项中的剩余表项中继续选取表项下发至硬件转发芯片中,继续检测其剩余表项的活跃度,按照上述方式如此循环,从而完成m条待下发表项的活跃度的检测。需要说明的是,为了获得更加准确的命中频率,还可以在预设时间段内实时统计其命中标记,或者将命中标记判断的时间间隔缩短,其在实际应用中可根据实际需求灵活设定,在此可不做特别限定。可以理解地,上述“根据命中频率确定每条目标表项的活跃度”可以包括两种情况:命中频率可以直接等于活跃度,或者在不同数值区间的命中频率对应不同的活跃度,即命中频率与活跃度之间有某种映射关系,例如,上述目标表项的命中频率为16.67s/每次,则该目标表项的活跃度可以为16.67,或者预先设定有命中频率在16s/每次-17s/每次这数值区间对应的活跃度为2,也就是预先设定有不同的转发频率数值对应于不同的活跃度,对于不同活跃度不同的确定方式可以根据实际需求灵活设定。还需要说明的是,上述获得目标表项的活跃度时,为了减少数据处理量,还可以直接统计在预设时间段内每条目标表项的命中次数即可,而无需统计其命中频率,也就是说,可以定义命中次数等于活跃度,或者某个命中次数对应于某个活跃度。上述中关于命中频率与活跃度、命中次数与活跃度之间的关系可以根据实际需求灵活设定,对于不同的设定方式,活跃度的数值不同,但是在实际应用中均统一使用其中一种即可,当然,对于不同的设定方式,其表项的活跃度的数值越大并不表示其活跃度越高,在特定的设定方式中,如命中频率等于活跃度时,该种方式下,其表项的活跃度的数值越大表示其活跃度越低。例如,命中次数与活跃度的对应关系可以如下两种方式所示:方式一,命中次数等于活跃度:表项命中次数活跃度133244355.........该方式一中,其表项的活跃度的数值越小,表示该表项的活跃度越低,相反地,其活跃度的数值越大,表示该表项的活跃度越高,也就是说,命中次数的数值与活跃度成正比。方式二,命中次数与活跃度之间有某种映射关系:表项命中次数活跃度11-5126-102311-153.........该方式二中,其表项的活跃度的数值越小,表示该表项的活跃度越低,相反地,其活跃度的数值越大,表示该表项的活跃度越高,也就是说,命中次数的数值与活跃度成正比。其中,映射关系可以根据实际需求设定,本申请实施例不做特别限定。例如,命中频率与活跃度的对应关系可以如下两种方式所示:方式一,命中频率等于活跃度:该方式一中,其表项的活跃度的数值越小,表示该表项的活跃度越高,相反地,其活跃度的数值越大,表示该表项的活跃度越低,也就是说,命中频率的数值与活跃度成反比。方式二,命中频率与活跃度之间有某种映射关系:表项命中频率活跃度11-101211-202321-303.........该方式二中,其表项的活跃度的数值越小,表示该表项的活跃度越高,相反地,其活跃度的数值越大,表示该表项的活跃度越低,也就是说,命中频率的数值与活跃度成反比。其中,映射关系可以根据实际需求设定,本申请实施例不做特别限定。在上述实现过程中,根据表项的命中频率来确定表项的活跃度,由此,在表项的命中频率较高时其活跃度也较高,从而在下发至硬件转发芯片中的表项均是命中频率较高的表项,进而可以提高硬件转发芯片中的表项利用率,避免了硬件转发芯片资源的浪费。作为一种示例,命中情况还可以包括每条目标表项的相邻两次之间的命中时间间隔,所以上述获取每条目标表项的活跃度的过程还可以为:统计在预设时间段内每条目标表项在硬件转发芯片中的相邻两次之间的命中时间间隔,然后再根据命中时间间隔确定每条目标表项的活跃度。例如,预设时间段为50s,则统计50s内每条目标表项的命中时间间隔,如在50s,目标表项1用于转发了3次,其第一次与第二次之间的命中时间间隔为10s,第二次与第三次之间的命中时间间隔为5s,按照同样的方法可统计其他每条目标表项的相邻两次之间的命中时间间隔,然后可获得每条目标表项的最短的相邻两次之间的命中时间间隔。上述“根据目标表项的相邻两次之间的命中时间间隔确定每条目标表项的活跃度”可以包括两种情况:命中时间间隔等于活跃度,或者命中时间间隔与活跃度之间有某种映射关系。如上述目标表项的最短的相邻两次之间的命中时间间隔为5s,所以其活跃度可以为5,活跃度也可以是命中时间间隔对应的一个值,如命中时间间隔为5s,其对应的活跃度为2,也就是说,不同的命中时间间隔对应有不同的活跃度,其可以根据实际需求灵活设定。例如,命中时间间隔与活跃度的对应关系可以如下两种方式所示:方式一,命中时间间隔等于活跃度:表项命中时间间隔活跃度12s223s335s5.........该方式一中,其表项的活跃度的数值越小,表示该表项的活跃度越高,相反地,其活跃度的数值越大,表示该表项的活跃度越低,也就是说,命中时间间隔的数值与活跃度成反比。方式二,命中时间间隔与活跃度之间有某种映射关系:表项命中时间间隔活跃度11-3s124-6s237-9s3.........该方式二中,其表项的活跃度的数值越小,表示该表项的活跃度越高,相反地,其活跃度的数值越大,表示该表项的活跃度越低,也就是说,命中时间间隔的数值与活跃度成反比。需要说明的是,在实际应用中,命中时间间隔与活跃度之间的映射关系可以根据需求设定,不同的设定方式可以对应获得不同的活跃度。当然,在命中时间间隔等于活跃度时,不仅可以将最短的转发时间间隔作为活跃度,还可以获取目标表项的多个转发时间间隔的平均间隔值,然后将平均间隔值作为活跃度,在实际应用时,对于根据转发时间间隔来确定活跃度,还可以有多种变形,如根据最短转发时间间隔与平均间隔值二者的加权求和确定活跃度,本申请实施例并不限于此,对于其他方式不一一举例说明。另外,在确定活跃度时,还可以基于表项的命中频率以及命中时间间隔二者来共同确定活跃度,例如,可以将二者进行加权求和来确定,或者可以将二者进行平均获得平均值来确定,也就是说,本申请实施例中可以基于表项的命中频率、命中次数和相邻两次之间的命中时间间隔中的至少一种来确定活跃度,关于利用其中两种或其中三种数据来确定活跃度的具体地实现方式在此不做过多说明。在上述实现过程中,根据表项的相邻两次之间的命中时间间隔来确定表项的活跃度,由此,在表项的相邻两次之间的命中时间间隔较短时其活跃度也较高,从而在下发至硬件转发芯片中的表项均是命中时间间隔较短的表项,进而可以提高硬件转发芯片中的表项利用率,避免了硬件转发芯片资源的浪费。作为另外一种示例,按照上述方式获得处理器中每条表项的活跃度后,为了将处理器中的表项下发至硬件转发芯片中,还可以根据每条表项的活跃度确定每条表项的优先级,然后按照所述每条表项的优先级高低将所述m条待下发表项进行排序。例如,在确定优先级时,优先级可以等于活跃度,或者活跃度与优先级有某种对应关系,其两者的关系可如下两种方式所示:方式一,优先级等于活跃度:表项活跃度优先级122233355.........该方式一中,其表项的活跃度的数值越小,表示该表项的优先级越低,相反地,其活跃度的数值越大,表示该表项的优先级越高,也就是说,优先级与活跃度成正比。方式二,优先级与活跃度之间有某种映射关系:表项活跃度优先级11-5126-102311-153.........该方式二中,其表项的活跃度的数值越小,表示该表项的优先级越低,相反地,其活跃度的数值越大,表示该表项的优先级越高,也就是说,优先级与活跃度成正比。其中,映射关系可以根据实际需求设定,本申请实施例不做特别限定。在获得每条表项对应的优先级后,按照优先级高低对m条带下发表项进行排序,如上述举例中,优先级的数值越大,表示该表项的优先级越高,从而在排序时,可按照优先级的数值从大到小依次对表项进行排序。当然,上述仅仅只是举例,在其他情况下,优先级的数值越小,表示表项的优先级越高,从而在排序时,可按照优先级的数值从小到大依次对表项进行排序。所以,在下发表项至硬件转发芯片中时,可以将优先级较高的n条表项下发至硬件转发芯片中,所以,按照优先级顺序下发表项,使得每次下发至硬件转发芯片中的表项均是处理器中最活跃的表项。可以理解地,根据每条表项的优先级对m条待下发表项进行排序后,获得表项列表,该表项列表中第m-1条表项的优先级大于或等于第m条待下发表项的优先级,m为2到m的整数,在选择n条表项下发时,将表项列表中的表项从第1条表项至第n条表项下发至硬件转发芯片中。例如,处理器中有50条表项,然后将这50条表项按照优先级从高到低排序,获得排序后的表项列表,在选取表项下发至硬件转发芯片中时,则可直接选取第一条表项到第n条表项下发至硬件转发芯片中,如此,使得下发至硬件转发芯片中的表项均是活跃度较高的表项,从而使得硬件转发芯片的硬件转发资源得以充分利用。在上述实现过程中,按照优先级对表项进行排序,使得在下发表项时可以直接选取排在前面的表项下发,而无需在表项下发时再比较各个表项之间的优先级,进而减少了数据处理量,使得表项可以及时下发至硬件转发芯片中。请参照图3,图3为本申请实施例提供的一种表项下发装置200的结构框图,该装置200可以运行于数据转发设备上的模块、程序段或代码。应理解,该装置200与上述图2方法实施例对应,能够执行图2方法实施例涉及的各个步骤,该装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。可选地,所述装置200包括:空闲资源确定模块210,用于确定数据转发设备的硬件转发芯片中空闲表项资源的表项数量n;表项获取模块220,用于获取所述数据转发设备的处理器中按照活跃度高低排序的m条待下发表项中的前n条表项,其中,所述活跃度用于表征每条表项在所述硬件转发芯片中的命中情况,所述n和所述m均为大于或等于1的整数;表项下发模块230,用于将获取的所述n条表项下发至所述硬件转发芯片中。可选地,所述装置200还包括:活跃度检测模块,用于:获取所述硬件转发芯片中用于检测表项活跃度的k条表项资源,k为大于等于1且小于等于m的整数;从所述处理器的m条待下发表项中选取k条目标表项下发至所述硬件转发芯片中;根据每条所述目标表项在所述硬件转发芯片中的命中情况确定所述每条所述目标表项的活跃度;从所述硬件转发芯片中删除所述k条目标表项,继续选取所述m条待下发表项中的剩余表项下发至所述硬件转发芯片中,直至获取所述m条待下发表项中每条表项的活跃度,并按照活跃度高低排序。可选地,所述命中情况包括命中频率,所述表项获取模块220,具体用于统计在预设时间段内每条所述目标表项在所述硬件转发芯片中的命中频率;根据所述命中频率确定每条所述目标表项的活跃度。可选地,所述命中情况包括每条所述目标表项的相邻两次之间的命中时间间隔,所述表项获取模块220,具体用于统计在预设时间段内每条所述目标表项在所述硬件转发芯片中的相邻两次之间的命中时间间隔;根据所述命中时间间隔确定每条所述目标表项的活跃度。可选地,所述活跃度检测模块,还用于根据所述每条表项的活跃度确定所述每条表项的优先级;按照所述每条表项的优先级高低将所述m条待下发表项进行排序。本申请实施例提供一种可读存储介质,所述计算机程序被处理器执行时,执行如图2所示方法实施例中数据转发设备所执行的方法过程。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。综上所述,本申请实施例提供一种表项下发方法、装置、数据转发设备及可读存储介质,该方法通过将处理器中活跃度较高的表项下发至硬件转发芯片中,使得下发至硬件转发芯片中的表项均为活跃度较高的表项,则这些表项可用于数据转发,从而使得硬件转发芯片的转发资源得以充分利用,提高了硬件转发芯片中表项的资源利用率,减少了硬件转发芯片资源的浪费以及减少了处理器的转发负载,且提高了数据转发的实效性。在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1