规则老化的维护方法及设备 【技术领域】
本发明涉及通信技术领域,特别涉及规则老化的维护方法及设备。
背景技术
在通信技术领域,高速路由查询存储器(ternary content addressablememory,TCAM)是网络3层处理中常用的关键器件,可以实现送入关键词与提前设定的关键字词库的快速比较,并得到比较命中后的下一步操作信息。
比如在网络电话技术协议(Voice over Internet Protocol,VOIP)系统中,运营商骨干节点的串接设备收到报文后,先识别出VOIP首报文,而后将首报文中的网络协议(IP)地址储存进TCAM动态规则存储空间中,并在TCAM附属的同步动态随机存取存储器(Synchronous Dynamic Random AccessMemory,SDRAM)中存入相应的操作或操作参数,则后续的VOIP数据报文则可通过与TCAM动态规则存储空间中的规则即地址信息进行匹配,继而查找到对应的转发接口或后续处理操作的参数。
应用以上TCAM查找技术,不可避免的会遇到规则存储空间中的规则即地址信息老化的问题,现有的基于TCAM的设备对规则存储空间中规则老化的维护方法是:当接收到其它设备发送的结束(FIN)数据包,表明需要删除相应规则,则在规则存储空间中找到相应的规则进行删除。
在对现有技术进行实践和研究的过程中,本发明的发明人发现:
现有的采用接收FIN包来维护规则的老化时,会出现因未收到FIN包而导致对应规则永不删除的情况,这样造成有效资源的浪费;且基于TCAM的设备需要维护FIN包与相应规则的对应关系表,这样也会占用大量资源。可见现有技术中规则老化的维护方法会带来资源的消耗和规则垃圾碎片的堆积问题。
【发明内容】
本发明实施例提供规则老化的维护方法及设备,减少资源的消耗,降低规则垃圾碎片的堆积。
本发明实施例提供一种规则老化的维护方法,包括:
接收报文,所述报文中包括地址信息;
将所述报文中的地址信息与高速路由查询器TCAM规则存储空间中的规则进行匹配;
当所述高速路由查询器TCAM规则存储空间中的规则没有包含所述地址信息,且确定所述高速路由查询器TCAM规则存储空间已满时,用所述地址信息覆盖所述高速路由查询器TCAM规则空间中存储时间最长的规则。
本发明实施例提供一种高速路由查询器TCAM,包括:
报文接收单元,用于接收报文,所述报文中包括地址信息;
匹配单元,用于将所述报文接收单元接收的报文中的地址信息与高速路由查询器TCAM规则存储空间中的规则进行匹配;
第一覆盖单元,用于当所述匹配单元匹配的高速路由查询器TCAM规则存储空间中的规则没有包含所述地址信息,且确定所述高速路由查询器TCAM规则存储空间已满,用所述地址信息覆盖所述高速路由查询器TCAM规则空间中存储时间最长的规则。
可见,本实施例中,规则老化的维护方法是接收到新的报文后,将报文中的包括地址信息与TCAM规则存储空间中的规则进行匹配,如果规则存储空间中的规则没有包含该地址信息,且确定规则存储空间已满,则用该地址信息覆盖存储时间最长的规则,和现有技术中采用接收FIN包删除相应的规则对规则老化的维护相比,本发明实施例中,只要规则存储空间已满,就用新的规则来覆盖最老的规则,不会出现有些规则永不删除的情况,减少了有效资源的浪费和规则垃圾碎片的堆积,且维护过程比较简单,减少资源的消耗。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性地前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法实施例一提供的规则老化的维护方法的流程图;
图2是本发明方法实施例二提供的规则老化的维护方法的流程图;
图3是本发明方法实施例二提供的规则老化的维护方法中规则环的结构示意图;
图4是本发明设备实施例一提供的高速路由查询器TCAM的结构示意图;
图5是本发明设备实施例二提供的高速路由查询器TCAM的结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例一
一种规则老化的维护方法,本发明实施例的执行主体都是基于TCAM的设备进行的,该设备可以是现场可编程门阵列(FPGA)+TCAM架构,也可以是网络处理器(NP)+TCAM架构,还可以是中央处理器(CPU)+TCAM架构,方法流程如图1所示,包括:
步骤101、接收报文,所述报文中包括地址信息;
这里的地址信息可以包括IP地址、端口信息等,一般是在报文的首部携带有地址信息。
步骤102、将所述报文中的地址信息与高速路由查询器(下面文件中简称TCAM)规则存储空间中的规则进行匹配;当确定所述TCAM规则存储空间中的规则没有包括所述地址信息,且所述TCAM规则存储空间已满,则执行步骤103;
可以理解,在TCAM规则存储空间中的规则即为地址信息,两个通信设备在进行通信的过程中,在基于TCAM的设备的规则存储空间中会储存两个设备的地址信息。且每条规则在规则存储空间储存后,都对应有一个存放地址,这些规则可以是按照接收到新规则的先后顺序依次储存到存放地址中,在规则在存储的过程中,基于TCAM的设备也可以记录储存该规则的相应时间或刚开始在规则存储空间中储存规则时的存放地址等信息,比如:规则存储空间的大小为65535,则在存放地址n为0到65534中,可以储存65535条规则,在储存规则时,可以从n为0的存放地址开始储存,当接收到新的地址信息时,则会将新的规则储存到n为1的存放地址中,这样直到65535个规则存放地址中都储存有规则。
这里TCAM规则存储空间已满是指在规则存储空间的所有存放地址中都存放着规则。
步骤103、用所述地址信息覆盖所述TCAM规则空间中存储时间最长的规则。
这里,存储时间可以根据规则在储存时的相应时间和当前时间的差值得到,而存储时间最长的规则是所述差值最大对应的规则;存储时间最长的规则也可以根据在刚开始在该规则存放空间中储存规则时记录的存放地址而得到,还可以通过其他的方法得到,这并不构成对本发明的限制。
用所述地址信息进行覆盖时,具体是将该地址信息储存到存储时间最长的规则对应的存放地址中,同时,删除该存储时间最长的规则。
可以理解,当步骤102中匹配的所述TCAM规则存储空间中的规则包含所述地址信息,则执行步骤104;
步骤104、判断所述TCAM规则存储空间中包括的所述地址信息的存储时间是否满足预置的条件,如果是,且确定所述TCAM规则存储空间已满,则返回执行步骤103,并删除所述TCAM规则存储空间中原来储存的所述地址信息;如果不是,则不会对规则存储空间的规则存储进行修改;
可以理解,在另一个具体的实施例中,在步骤104中如果判断是,且确定所述TCAM规则存储空间已满,还可以直接更新所述高速路由查询器TCAM规则存储空间中,原来存储的所述地址信息的存储时间。
其中,如果匹配到规则存储空间中的规则包含新接收到报文中的地址信息,则进一步判断,当时储存该地址信息时的存储时间是否满足预置的条件,这里预置的条件包括:该地址信息的存储时间需要距离最长储存时间在预置时间范围内等,用户可以通过基于TCAM的设备,来调节预置时间范围的大小。
可以理解,在进行判断时具体可以先得到该地址信息的存储时间并和最长储存时间进行比较,再确定它们之间的差值是否在预置时间范围内。
可见,本实施例中,规则老化的维护方法是接收到新的报文后,将报文中的包括地址信息与TCAM规则存储空间中的规则进行匹配,如果规则存储空间中的规则没有包含该地址信息,且确定规则存储空间已满,则用该地址信息覆盖存储时间最长的规则,和现有技术中采用接收FIN包删除相应的规则,从而对规则老化的维护相比,本发明实施例中,只要规则存储空间已满,就用新的规则来覆盖最老的规则,不会出现有些规则永不删除的情况,减少了有效资源的浪费和规则垃圾碎片的堆积,且维护过程比较简单,减少资源的消耗;
另外,如果规则存储空间中的规则包含该地址信息,则进一步确定该地址信息存储的时间位置,如果存储的时间较久,且规则存储空间已满,则用该地址信息覆盖老的规则,并删除原来储存的该地址信息。
下面通过具体的实现方法来说明本发明实施例的规则老化的维护方法:
方法实施例二
一种规则老化的维护方法,本发明实施例的执行主体都是基于TCAM的设备进行的,该设备可以是FPGA+TCAM结构架构,也可以是NP+TCAM架构,还可以是CPU+TCAM架构,假设本实施例中规则存储空间大小为65535条规则,流程如图2所示,包括:
步骤201、在将规则储存入TCAM规则存储空间的存放地址的过程中,记录所述TCAM规则存储空间中存储时间最短的规则对应的存放地址为B;
本实施例中,在规则储存过程中,是按照时间先后顺序依次储存到所述规则存储空间的存放地址中的,如将规则i储存到存放地址I后,又接收到新的规则k,则将规则储存到存放地址I+1中,则存放地址B是不断更新的,只要有新的规则存入规则存储空间中,则B就会更新为该新规则对应的存放地址。
如果在储存规则时不是从存放地址0开始储存的,则当规则在储存到存放地址65534中后,下一个新规则,则储存到存放地址0中,这样本实施例中TCAM规则存储空间就为一个环,简称规则环。
步骤202、接收新的报文,所述报文中包括地址信息;
步骤203、将所述报文中的地址信息与TCAM规则存储空间中的规则进行匹配;当所述TCAM规则存储空间中的规则没有包括所述地址信息,且确定所述TCAM规则存储空间已满,则执行步骤204;当所述TCAM规则存储空间中的规则包含所述地址信息,则执行步骤205;
步骤204、用所述地址信息,覆盖自身记录的存储时间最短的规则对应存放地址的,前一个存放地址中的规则;并更新所述TCAM规则存储空间中存储时间最短的规则对应存放地址B;
可以理解,由于TCAM规则存储空间已满,则从存放地址0到65534中都存放着规则,又由于在规则储存过程中是按照时间先后顺序依次储存到存放地址中的,则存储时间最短的规则对应的前一个存放地址,即存放地址B的前一个存放地址即B+1中,存放着存储时间最长的规则,可见本步骤实质上是用地址信息覆盖储存时间最长的规则。
步骤205、判断所述TCAM规则存储空间中包括的所述地址信息对应的存放地址,是否在存储时间最短的规则对应的前N个存放地址中,如果是,且确定所述TCAM规则存储空间已满,则返回执行步骤204,并删除所述TCAM规则存储空间中原来存储的所述地址信息;如果不是,则不用对规则存储空间中的规则进行修改。
可以理解,本步骤中存储时间最短的规则即为存放地址B中存放的规则,而存储时间最短的规则对应的前N个存放地址即为存放地址B+N,由于这N个存放地址存放的规则都是存储时间较长的规则,在本实施例中将从存放地址B向前的N个存放地址的规则存储空间称为老化区。则本步骤实质上是判断地址信息是否储存在老化区内,如果是的话,就执行步骤204,进行覆盖,而为了避免规则存储空间中对重复存储规则,则将原来存储的该地址信息删除。
需要说明的是,用户可以通过基于TCAM的设备调节老化区的大小,设置N值,且在步骤205中的判断之前需要记录所述存储时间最短的规则对应的存放地址B向前的第N+1个存放地址A,即为与老化区临界的存放地址;由于老化区的大小是预置在设备中的,则在用地址信息覆盖存放地址B前一个存放地址中的规则之后,还需要更新与老化区临界的存放地址,即更新存储时间最短的规则对应的存放地址B,及所述存储时间最短的规则对应的存放地址B向前的第N+1个存放地址A,即将存放地址A更新为B+N+1。
参考图3所示,为本实施例中规则环的结构示意图,图中存储时间最短的规则对应的存放地址B=1000,规则环中两个虚线之间填充斜线的部分为老化区,图中显示N为49,则记录的存储时间最短的规则对应的存放地址B向前的第N+1个存放地址A=1050。可以理解,在接收到报文后,如果经过匹配得到报文中的地址信息没有包含在规则环中,且在65535个存放地址中都存放着规则时,则用该地址信息覆盖存放地址1001中存放的规则,并将存放地址B更新为1001,及将存放地址A更新为1051;如果经过匹配得到报文中的地址信息包含在老化区内的存放地址1032中,且在65535个存放地址中都存放着规则时,则用该地址信息覆盖存放地址1001中存放的规则,并将存放地址B更新为1001,及将存放地址A更新为1051,且需要删除存放地址1032中的规则;如果地址信息包含在规则环的老化区之外的区域,则对规则环存放的规则不进行修改。
可见,本实施例中,通过规则对应的存放地址的关系,来确定存储时间最长的规则的位置,即如果规则存储空间已满,则存储时间最长的规则和存储时间最短的规则的存放地址相邻,这种方法实现起来比较简单而直观。且减少了有效资源的浪费和规则垃圾碎片的堆积,且维护过程比较简单,减少资源的消耗。
设备实施例一
一种高速路由查询器TCAM,该设备可以是FPGA+TCAM架构,也可以是NP+TCAM架构,还可以是CPU+TCAM架构,结构示意图如图4所示,包括:
报文接收单元10,用于接收报文,所述报文中包括地址信息;
匹配单元11,用于将所述报文接收单元10接收的报文中的地址信息与高速路由查询器TCAM规则存储空间中的规则进行匹配;
第一覆盖单元12,用于当所述匹配单元11匹配的高速路由查询器TCAM规则存储空间中的规则没有包含所述地址信息,且确定所述高速路由查询器TCAM规则存储空间已满,用所述地址信息覆盖所述高速路由查询器TCAM规则空间中存储时间最长的规则。
存储时间可以根据规则在储存时的相应时间和当前时间的差值得到,而存储时间最长的规则是所述差值最大对应的规则;存储时间最长的规则也可以根据在刚开始在该规则存放空间中储存规则时记录的存放地址而得到,还可以通过其他的方法得到,这并不构成对本发明的限制。
可以理解,在其它的实施例中,一种高速路由查询器TCAM还包括:
时间判断单元13,用于当所述匹配单元11匹配的高速路由查询器TCAM规则存储空间中的规则包含所述地址信息,判断所述高速路由查询器TCAM规则存储空间中包括的所述地址信息的存储时间是否符合预置的条件,所述预置的条件包括所述地址信息的存储时间距离最长储存时间在预置时间范围内;
第二覆盖单元14,用于当所述时间判断单元13判断的结果为是,且确定所述高速路由查询器TCAM规则存储空间已满,则用所述地址信息覆盖所述高速路由查询器TCAM规则存储空间中存储时间最长的规则,并删除所述高速路由查询器TCAM规则存储空间中原来存储的所述地址信息;或更新所述高速路由查询器TCAM规则存储空间中,原来存储的所述地址信息的存储时间。
可以理解,在进行判断时具体可以先得到该地址信息的存储时间并和最长储存时间进行比较,再确定它们之间的差值是否在预置时间范围内。
可见,本实施例的高速路由查询器TCAM中报文接收单元10接收到新的报文后,匹配单元11将报文中的包括地址信息与TCAM规则存储空间中的规则进行匹配,如果规则存储空间中的规则没有包含该地址信息,且确定规则存储空间已满,则第一覆盖单元12用该地址信息覆盖存储时间最长的规则,和现有技术中采用接收FIN包删除相应的规则,从而对规则老化的维护相比,本发明实施例中,只要规则存储空间已满,就用新的规则来覆盖最老的规则,不会出现有些规则永不删除的情况,减少了有效资源的浪费和规则垃圾碎片的堆积,且维护过程比较简单,减少资源的消耗;
另外,如果规则存储空间中的规则包含该地址信息,则时间判断单元13进一步确定该地址信息存储的时间位置,如果存储的时间较久,且规则存储空间已满,则第二覆盖单元14用该地址信息覆盖老的规则,并删除原来储存的该地址信息。
设备实施例二
一种高速路由查询器TCAM,该设备可以是FPGA+TCAM架构,也可以是NP+TCAM架构,还可以是CPU+TCAM架构,本实施例中的高速路由查询器TCAM规则存储空间中的规则是按照时间先后顺序依次储存到所述规则存储空间的存放地址中的,结构示意图如图5所示,包括:
第一地址记录单元20,用于记录所述高速路由查询器TCAM规则存储空间中存储时间最短的规则对应的存放地址;
报文接收单元21,用于接收报文,所述报文中包括地址信息;
匹配单元22,用于将所述报文接收单元21接收的报文中的地址信息与高速路由查询器TCAM规则存储空间中的规则进行匹配;
第一覆盖单元23,用于当所述匹配单元22匹配的高速路由查询器TCAM规则存储空间中的规则没有包括所述地址信息,且确定所述高速路由查询器TCAM规则存储空间已满,用所述地址信息,覆盖所述第一地址记录单元20记录的存储时间最短的规则对应存放地址的,前一个存放地址中的规则;即用所述地址信息覆盖所述高速路由查询器TCAM规则空间中存储时间最长的规则;
第一更新单元24,用于在所述第一覆盖单元进23行覆盖后,更新所述第一地址记录单元20记录的高速路由查询器TCAM规则存储空间中存储时间最短的规则对应的存放地址。
可以理解,在其它具体的实施例中,高速路由查询器TCAM还包括:
地址判断单元25,用于当所述匹配单元22匹配的高速路由查询器TCAM规则存储空间中的规则包含所述地址信息,判断所述高速路由查询器TCAM规则存储空间中包括的所述地址信息对应的存放地址,是否在所述记录的存储时间最短的规则对应的前N个存放地址中;
第三覆盖单元26,用于当所述地址判断单元25判断为是时,且确定所述高速路由查询器TCAM规则存储空间已满,则用所述地址信息覆盖所述存储时间最短的规则对应的前一个存放地址中的规则,并删除所述高速路由查询器TCAM规则存储空间中原来存储的所述地址信息。
需要说明的是,本发明实施例的设备中还可以包括:第二地址记录单元27和第二更新单元28;所述第二地址记录单元27,用于记录所述存储时间最短的规则对应的存放地址前的第N+1个存放地址;所述第二更新单元28,用于当所述第三覆盖单元26用所述地址信息覆盖所述存储时间最短的规则对应的前一个存放地址中的规则,更新所述第二地址记录单元28记录的所述存储时间最短的规则对应的存放地址前的第N+1个存放地址。
可见,本实施例的高速路由查询器TCAM中,通过规则对应的存放地址的关系,来确定存储时间最长的规则的位置,即如果规则存储空间已满,则存储时间最长的规则和存储时间最短的规则的存放地址相邻,使得第一覆盖单元23和第三覆盖单元26在进行规则覆盖时,很容易找到需要覆盖的规则,实现起来比较简单而直观。且减少了有效资源的浪费和规则垃圾碎片的堆积,且维护过程比较简单,减少资源的消耗。
可见,本实施例中,规则老化的维护方法是接收到新的报文后,将报文中的包括地址信息与TCAM规则存储空间中的规则进行匹配,如果规则存储空间中的规则没有包含该地址信息,且确定规则存储空间已满,则用该地址信息覆盖存储时间最长的规则,和现有技术中采用接收FIN包删除相应的规则,从而对规则老化的维护相比,本发明实施例中,只要规则存储空间已满,就用新的规则来覆盖最老的规则,不会出现有些规则永不删除的情况,减少了有效资源的浪费和规则垃圾碎片的堆积,且维护过程比较简单,减少资源的消耗。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
以上对本发明实施例所提供的规则老化的维护方法及设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。