专利名称:提高转发表访问性能的方法和装置的制作方法
技术领域:
本发明涉及通信领域,尤其涉及一种提高转发表访问性能的方法和装置。
背景技术:
转发表通常用于指导网络处理器对接收的报文执行转发、变换或实施各种策略。 当转发表中的某一个或多个条目(也称Entry)在一段特定的时间长度内未被有效地访问过,则该条目需要被删除以腾出转发表的存储空间。将在一段特定的时间长度内未被有效地访问过称为“老化条件”,这段特定的时间长度称为“老化周期(Idle Time-out)”,在特定时间长度内未被有效地访问的条目被删除的行为称为“老化”。现有技术中,转化表中的条目包括建立时间戳(creative timestamp)字段、最新访问时间戳(last visit timestamp)字段和老化周期(Idle Time-out)字段,在条目被访问的时候,在最新访问时间戳字段中覆盖写入访问时间。在老化转发表时,对转发表中的条目进行遍历,根据条目中的最新访问时间戳、老化周期以及遍历到该条目的时间进行老化。如图1所示,以TCAM(ternary content addressable memory,三态内容寻址存储器)表为例,TCAM表中条目的固定格式为有效标识(valid bit)字段+建立时间戳 (creative timestamp)字段+最新访问时间戳(last visit timestamp)字段+老化周期 (Idle Time-out)字段+条目其他内容(rest of the entry)。在TCAM表中新建条目时, 将条目中的valid bit设置为1,表示该条目是有效的,在creative timestamp字段以及 last visit timestamp字段中均写入该条目的建立时间,并在Idle Time-out字段中写入该条目对应的老化周期。在TCAM表被网络处理器访问时,在last visit timestamp字段中更新被访问的条目的最新访问时间。网络处理器还会定时遍历TCAM表,在条目的有效标识为1时,用遍历至该条目的系统时间减去last visit timestamp字段的记载的最新访问时间,计算得到的差值与Idle Time-out字段中的老化周期比较,若差值大于老化周期则老化该条目,使得任意一个条目遵循其老化周期进行老化。具体的,图1中分别在系统时间为 010090,010095时遍历到条目1、条目2,那么条目1中差值20小于老化周期60,则不符合老化条件,而条目2中差值35大于老化周期10,符合老化条件,需要对条目2进行老化,可以通过将条目2中的有效标识设置为0以达到老化该条目的效果,这样可以腾出转发表的存储空间。在实现本发明实施例的过程中,发明人发现受存储器硬件容量限制,占用空间较大的转发表通常只能储存于动态随机存储器DRAM,而DRAM内存的物理特性决定其读取速度和效率远远高于写入速度和效率。在当前的存储器性能规格下,难以满足大容量、高性能的网络处理器转发表中条目被高频率访问时都必须回写该条目的last visit timestamp 字段的要求。
发明内容
本发明实施例提供一种提高转发表访问性能的方法和装置,用于解决当前的存储器性能规格下,难以满足大容量、高性能的网络处理器转发表中条目被高频率访问时都必须回写该条目的last visit timestamp字段的要求的问题。为达到上述目的,本发明实施例采用如下技术方案—种提高转发表访问性能的方法,所述转发表支持多个老化周期,所述转发表的条目包括激活字段和复位字段,所述激活字段的初始值为tx/(t/N)+a_l,其中、为该条目对应的老化周期,t为所述转发表支持的多个老化周期的最大公约数,l^N^ M/2,M为转发表被访问的频度,a为预先设置的阈值,所述阈值为任意值,所述复位字段的内容等于所述激活字段的初始值;该方法,包括以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容大于a,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段;受业务驱动访问转发表中的条目,如果该条目中激活字段的当前内容不等于所述复位字段的内容,将复位字段的内容覆盖写入所述激活字段。一种提高转发表访问性能的装置,所述转发表支持多个老化周期,包括存储单元,用于保存转发表,所述转发表的条目包括激活字段和复位字段,所述激活字段的初始值为tx/(t/N)+a_l,其中tx为该条目对应的老化周期,t为所述转发表支持的多个老化周期的最大公约数,l^N^ M/2,M为转发表被访问的频度,a为预先设置的阈值,所述阈值为任意值,所述复位字段的内容等于所述激活字段的初始值;第一覆盖写入单元,用于以t/N为周期遍历所述存储单元中的转发表,如果遍历到的条目中激活字段的当前内容大于a,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段;第二覆盖写入单元,用于受业务驱动访问所述存储单元中转发表的条目,如果该条目中激活字段的当前内容不等于所述复位字段的内容,将复位字段的内容覆盖写入所述激活字段。本发明实施例提供的提高转发表访问性能的方法和装置,在访问转发表中的条目时,访问的条目中激活字段的当前内容不等于激活字段的初始值时才会进行覆盖写入操作,而激活字段的当前内容不等于激活字段的初始值是由于以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容大于a,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段导致的。由于以t/N为周期遍历所述转发表,并且访问时需要进行写入覆盖操作依附于周期性遍历进行覆盖写入导致激活字段的当前内容发生变化的操作,由此可见,不管是访问时发生的覆盖写入操作之间的时间间隔还是遍历时发生的覆盖写入操作之间的时间间隔均大于等于遍历转发表的周期时长,大大降低了覆盖写入操作的使用频率,解决了现有技术中由于当前的存储器性能规格下,难以满足大容量、高性能的网络处理器转发表中条目被高频率访问时都必须回写该条目的last visit timestamp字段的要求的问题。
图1为现有技术中对支持多种老化周期的转发表的老化方法;图2为本发明实施例提供的提高转发表访问性能的方法流程图;图3为本发明又一实施例提供的提高转发表访问性能的方法流程图;图4为图3所示提高转发表访问性能的方法中步骤303的流程图5为图3所示提高转发表访问性能的方法中步骤304的流程图;图6为本发明实施例提供的提高转发表访问性能的方法应用在NAT设备上的示意图;图7为本发明实施例提供的提高转发表访问性能的装置的结构示意图一;图8为本发明实施例提供的提高转发表访问性能的装置的结构示意图二 ;图9为图8所示的提高转发表访问性能的装置中老化单元的结构示意图。
具体实施例方式为了解决现有技术中当前的存储器性能规格下,难以满足大容量、高性能的网络处理器转发表中条目被高频率访问时都必须回写该条目的last visit timestamp字段的要求的问题,本发明实施例提供一种老化转发表的方法和装置。如图2所示,本发明实施例提供的提高转发表访问性能的方法,所述转发表的条目包括激活字段和复位字段,所述激活字段的初始值为tx/(t/N)+a_l,其中tx为该条目对应的老化周期,t为所述转发表支持的多个老化周期的最大公约数,l^N^ M/2,M为转发表被访问的频度,a为预先设置的阈值,所述阈值为任意值,所述复位字段的内容等于所述激活字段的初始值;该方法,包括步骤201,以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容大于a,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段。在本实施例中,所述转发表可以是转发信息库FIB表、网络地址转换NAT表、介质访问控制MAC表或流表,所述转发表的存储结构可以线性表结构、哈希Hash表结构或TCAM表。值得说明的是,本实施例中的转发表并不限于某一种特定的形式和用途,转发表的存储结构也不限于某一种特定的存储结构。步骤202,受业务驱动访问转发表中的条目,如果该条目中激活字段的当前内容不等于所述复位字段的内容,将复位字段的内容覆盖写入所述激活字段。本发明实施例提供的提高转发表访问性能的方法,在访问转发表中的条目时,访问的条目中激活字段的当前内容不等于激活字段的初始值时才会进行覆盖写入操作,而激活字段的当前内容不等于激活字段的初始值是由于以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容大于a,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段导致的。由于以t/N为周期遍历所述转发表,并且访问时需要进行写入覆盖操作依附于周期性遍历进行覆盖写入导致激活字段的当前内容发生变化的操作,由此可见,不管是访问时发生的覆盖写入操作之间的时间间隔还是遍历时发生的覆盖写入操作之间的时间间隔均大于等于遍历转发表的周期时长,大大降低了覆盖写入操作的使用频率,解决了现有技术中由于当前的存储器性能规格下,难以满足大容量、高性能的网络处理器转发表中条目被高频率访问时都必须回写该条目的last visit timestamp字段的要求的问题。为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明又一实施例提供的提高转发表访问性能的方法进行详细说明。如图3所示,本发明实施例提供的提高转发表访问性能的方法,所述转发表的条目包括激活字段和复位字段,所述激活字段的初始值为tx/(t/N)+a_l,其中tx为该条目对应的老化周期,t为所述转发表支持的多个老化周期的最大公约数,l^N^ M/2,M为转发表被访问的频度,a为预先设置的阈值,所述阈值为任意值,所述复位字段的内容等于所述激活字段的初始值。 所述激活字段的内容用于表示该条目是否达到老化条件。所述激活字段的内容在该条目被以t/N为周期遍历到时都会发生变化,并且,在受业务驱动访问时也可能发生变化。具体的,在被以t/N为周期遍历到时,激活字段的当前内容会自减1覆盖写入,在所述激活字段的内容大于a时,说明该条目未达到老化条件,在所述激活字段的内容小于等于a时,说明该条目达到老化条件。在受业务驱动访问时,激活字段的内容不等于复位字段的内容时,将复位字段的内容覆盖写入。本实施例提供的老化转发表的方法,包括步骤301,网络处理器获取待建立条目以及该条目对应的老化周期tx并获取所述转发表支持的多个老化周期的最大公约数t。在本实施例中,对于待建立条目,其条目的内容来源包括但不限于静态配置、协议计算(如路由器协议)、自动学习(如MAC表学习)、第三方设备下发(如防火墙受更高级网络安全设备下发流表)。值得说明的是,转发表支持的多个老化周期是根据转发表属性预先设置的,待建立的条目老化周期tx的获取可以根据待建立条目的属性进行获取,具体的,此处以MAC表和NAT表为例进行说明。MAC表MAC表应用于作为以太交换机的网络处理器,网络运营商的一台大型以太交换机同时为家庭上网、企业专线、移动通讯承载服务,那么需要为家庭上网、企业专线、移动通讯承载分别绑定不同的虚拟交换接口(Virtual Switch Interface,VSI)。运营商一方面希望整个以太交换机使用一张大的、共享的MAC表为所有用户服务以提高转发表项利用率,又希望为家庭上网、企业专线、移动通信承载分别指定不同的MAC表项老化周期以体现服务优先级的差异。虽然这台以太交换机会服务于众多家庭、企业,但并不需要为每个家庭或企业分别指定MAC表项老化周期,例如不需要为家庭A设置1分钟,家庭B设置2分钟。 相反只需要将所有家庭用户设置为1分钟,普通企业用户设置为10分钟,高级企业用户设置为30分钟,所有移动通信承载设置为60分钟。那么,对于该MAC表来说,其对应的多个老化周期为{1分钟,10分钟,30分钟,60分钟}。在建立该MAC表的条目时,获取待建立条目后首先判断该条目对应的类型,是家庭用户、普通企业用户、高级企业用户还是移动通信承载,根据其对应的类型确定该待建立条目对应的老化周期。NAT表NAT表应用于作为NAT设备的网络处理器,在本实例中,该NAT设备的NAT 表同时服务于TCP会话和UDP会话,因此该NAT表是被TCP会话和UDP会话共享的,但TCP 会话本身具有面相连接的特征,而UDP会话则是面向无连接的。通常运营商希望为这两类会话指定不同的老化周期,例如TCP = 10分钟、UDP = 2分钟。那么,对于该NAT表来说, 其对应的多个老化周期为{10分钟,2分钟}。在建立该NAT表的条目时,获取待建立的条目后首先判断该条目对应的类型,是TCP会话还是UDP会话,根据其对应的类型确定该待建立条目对应的老化周期。
步骤302,网络处理器根据该条目对应的老化周期tx、转发表支持的多个老化周期的最大公约数t、预先设置的阈值a设置该条目中的激活字段的初始值和复位字段的内容,所述复位字段的内容等于所述激活字段的初始值,所述激活字段的初始值为tx/(t/ N)+a-l,其中1彡N彡Μ/2,M为转发表被访问的频度。值得说明的是,N的取值在大于1的情况下,越小越好。现以MAC表为例,在t0时刻建立了一个家庭用户的条目、一个普通企业用户的条目、一个高级企业用户的条目和一个移动通信承载的条目,在建立的时候,取N = 1,该MAC 表支持的多个有效周期的最大公约数为1分钟,如表1所示,为建立完成后的条目。表1 :MAC 表
权利要求
1.一种提高转发表访问性能的方法,所述转发表支持多个老化周期,其特征在于, 所述转发表的条目包括激活字段和复位字段,所述激活字段的初始值为tx/(t/N)+a_l, 其中tx为该条目对应的老化周期,t为所述转发表支持的多个老化周期的最大公约数, 1 < N < M/2,M为转发表被访问的频度,a为预先设置的阈值,所述阈值为任意值,所述复位字段的内容等于所述激活字段的初始值;该方法,包括以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容大于a,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段;受业务驱动访问转发表中的条目,如果该条目中激活字段的当前内容不等于所述复位字段的内容,将复位字段的内容覆盖写入所述激活字段。
2.根据权利要求1所述的方法,其特征在于,还包括获取待建立条目以及该条目对应的老化周期tx ;获取所述转发表支持的多个老化周期的最大公约数t ;根据该条目对应的老化周期tx、转发表支持的多个老化周期的最大公约数t、预先设置的阈值a设置该条目中的激活字段的初始值和复位字段的内容,所述复位字段的内容等于所述激活字段的初始值,所述激活字段的初始值为tx/(t/N)+a-l,其中1 < N彡M/2,M为转发表被访问的频度。
3.根据权利要求1或2所述的方法,其特征在于,还包括以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容小于等于a, 老化该条目。
4.根据权利要求3所述的方法,其特征在于,所述老化该条目,包括删除该条目;或者所述条目包括有效标识,将所述有效标识设置为无效值。
5.根据权利要求1或2所述的方法,其特征在于,还包括受业务驱动访问转发表中的条目,如果条目中的激活字段的当前内容等同于所述复位字段的内容,不进行写入操作。
6.一种提高转发表访问性能的装置,所述转发表支持多个老化周期,其特征在于,包括存储单元,用于保存转发表,所述转发表的条目包括激活字段和复位字段,所述激活字段的初始值为tx/ (t/N) +a-1,其中tx为该条目对应的老化周期,t为所述转发表支持的多个老化周期的最大公约数,l^N^ M/2,M为转发表被访问的频度,a为预先设置的阈值,所述阈值为任意值,所述复位字段的内容等于所述激活字段的初始值;第一覆盖写入单元,用于以t/N为周期遍历所述存储单元中的转发表,如果遍历到的条目中激活字段的当前内容大于a,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段;第二覆盖写入单元,用于受业务驱动访问所述存储单元中转发表的条目,如果该条目中激活字段的当前内容不等于所述复位字段的内容,将复位字段的内容覆盖写入所述激活字段。
7.根据权利要求6所述的装置,其特征在于,还包括第一获取单元,用于获取待建立条目以及该条目对应的老化周期tx ;第二获取单元,用于获取所述转发表支持的多个老化周期的最大公约数t ; 设置单元,用于根据所述第一获取单元获取的该条目对应的老化周期tx、所述第二获取单元获取的转发表支持的多个老化周期的最大公约数t、预先设置的阈值a设置该条目中的激活字段的初始值和复位字段的内容,所述复位字段的内容等于所述激活字段的初始值,所述激活字段的初始值为tx/(t/N)+a-l,其中1彡N彡M/2,M为转发表被访问的频度。
8.根据权利要求6或7所述的装置,其特征在于,还包括老化单元,用于以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容小于等于a,老化该条目。
9.根据权利要求8所述的装置,其特征在于,所述老化单元,包括 删除子单元,用于删除该条目;和/或设置子单元,所述条目包括有效标识,用于将所述有效标识设置为无效值。
10.根据权利要求6或7所述的装置,其特征在于,还包括保持单元,用于受业务驱动访问转发表中的条目,如果条目中的激活字段的当前内容等同于所述复位字段的内容,不进行写入操作。
全文摘要
本发明实施例公开一种提高转发表访问性能的方法和装置,涉及通信领域,以解决现有技术中难以满足网络处理器转发表中条目被高频率访问时必须回写该条目的最新访问时间戳字段的问题。本发明提供的技术方案包括以t/N为周期遍历所述转发表,如果遍历到的条目中激活字段的当前内容大于预先设置的阈值,将由激活字段的当前内容减1得到的差值覆盖写入所述激活字段;受业务驱动访问转发表中的条目,如果该条目中激活字段的当前内容不等于所述复位字段的内容,将复位字段的内容覆盖写入所述激活字段。
文档编号H04L29/12GK102232284SQ201180000549
公开日2011年11月2日 申请日期2011年5月6日 优先权日2011年5月6日
发明者佟兴, 尹高嵩 申请人:华为技术有限公司