发明内容
本发明提供一种基于TCAM特征码的匹配冲突检查方法和设备,用以解决现有技术中TCAM特征码的匹配冲突检查的效率低,资源浪费严重的技术问题,该方法包括:
基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,所述左侧特征码中的关键词与所述右侧特征码中的关键词一一对应;
当待检测侧特征码不存在匹配冲突时,输出无匹配冲突结果,所述待检测侧特征码为所述左侧特征码或所述右侧特征码。
优选的,基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,具体为:
以所述预设分割线为坐标将所述多条所述TCAM特征码进行分割,以使分割后得到的所述左侧特征码的关键词与分割后得到的所述右侧特征码的关键词一一对应。
优选的,所述方法还包括:
当所述待检测侧特征码存在匹配冲突时,基于所述待检测侧对应的另一侧的特征码进行匹配冲突检查。
优选的,基于所述待检测侧对应的另一侧的特征码进行匹配冲突检查,具体为:
当所述另一侧的特征码存在匹配冲突,则输出匹配冲突结果;
当所述另一侧的特征码不存在匹配冲突,则输出无匹配冲突结果。
相应的,本发明还提出了一种基于TCAM特征码的匹配冲突检查设备,所述设备包括:
分割模块,用于基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,所述左侧特征码中的关键词与所述右侧特征码中的关键词一一对应;
输出模块,用于当待检测侧特征码不存在匹配冲突时,输出无匹配冲突结果,所述待检测侧特征码为所述左侧特征码或所述右侧特征码。
优选的,所述分割模块具体用于:
以所述预设分割线为坐标将所述多条所述TCAM特征码进行分割,以使分割后得到的所述左侧特征码的关键词与分割后得到的所述右侧特征码的关键词一一对应。
优选的,还包括:
检查模块,用于当所述待检测侧特征码存在匹配冲突时,基于所述待检测侧对应的另一侧的特征码进行匹配冲突检查。
优选的,所述检查模块,具体用于:
当所述另一侧的特征码存在匹配冲突,则输出匹配冲突结果;
当所述另一侧的特征码不存在匹配冲突,则输出无匹配冲突结果。
与现有技术相比,本发明具备以下有益效果:
本发明公开了一种基于TCAM特征码的匹配冲突检查方法和设备,该方法包括:基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,所述左侧特征码中的关键词与所述右侧特征码中的关键词一一对应;当待检测侧特征码不存在匹配冲突时,输出无匹配冲突结果,所述待检测侧特征码为所述左侧特征码或所述右侧特征码,从而通过检测待检测侧特征码是否存在匹配冲突,节省对另一侧的特征码的冲突检测,提高了TCAM特征码的匹配冲突检测的效率,减少了系统资源的损耗。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
TCAM(ternary content addressable memory)是一种三态内容寻址存储器,主要用于快速查找ACL、路由、特征码等表项。它是从CAM的基础上发展而来的。TCAM表内所有条目都可以并行访问,比如,如果你有100条特征码,TCAM能一次就能对比这100条特征码进行对比操作,过去如果有100条特征码的话,需要第一条ACL对比完后再对比第二条,然后第三条,直至N条,效率很明显没有TCAM高。但因TCAM仅返回优先匹配结果,故当有多条关键词可以同时匹配时,处在前面的更短的关键词总是会优先匹配,导致后面更长更精确的关键词始终无法匹配,成为了僵尸规则,即出现了特征码匹配冲突。TCAM特征码匹配冲突检查,就是检查出TCAM中每一条特征码,都没有覆盖掉后面的任一条特征码,导致后面的特征码成为僵尸规则的情况。然而,逐条比较的检查方法需要
次运算,其中n为特征码规则条目数,m为两两比较的运算次数。以10000条特征码规则条目,两两比较运算次数为32计算,则需要1600000000次运算,运算耗时明显,不利于规则的快速下发与及时生效。
因此,发明人提出了申请中的可以处理上述问题的一种基于TCAM特征码的匹配冲突检查方法和设备。
下面将结合附图具体描述本申请的各实施例。
请参阅图1,本申请实施例提供一种基于TCAM特征码的匹配冲突检查方法,应用于包括多条TCAM特征码的系统中,所述方法包括:
步骤S101:基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,所述左侧特征码中的关键词与所述右侧特征码中的关键词一一对应。
在本步骤中,如图1所示,TCAM特征码有多条,通过所述预设分割线对所述多条TCAM特征码进行分割处理,得到左侧特征码与右侧特征码,此时的左侧特征码中的关键词与右侧特征码的关键词一一对应,也就是说,左侧特征码与右侧特征码之间的位置相对关系稳定,左侧特征码的特定位置可以在右侧找到对应的特定位置。
为了获取左侧特征码与右侧特征码,在本方案的优选实施例中,基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,具体为:
以所述预设分割线为坐标将所述多条所述TCAM特征码进行分割,以使分割后得到的所述左侧特征码的关键词与分割后得到的所述右侧特征码的关键词一一对应。
具体的,如图1所示,以所述预设分割线为分割坐标,将所述TCAM特征码进行分割,分割后得到的左侧特征码与右侧特征码的关键词一一对应。
需要说明的是,在申请实施例中提到的通过预设分割线将TCAM分割为左侧特征码与右侧特征码仅为一种优选方案,本领域技术人员可以根据实际应用不同方式对所述TCAM特征码进行分割,这些都属于本申请的保护范围。
步骤S102:当待检测侧特征码不存在匹配冲突时,输出无匹配冲突结果,所述待检测侧特征码为所述左侧特征码或所述右侧特征码。
具体的,由于左侧特征码与右侧特征码一一对应,所以只需要检测其中一侧的特征码是否存在匹配冲突,即可知道所述TCAM特征码是否存在匹配冲突,将左侧特征码或右侧特征码作为待检测侧特征码,对待检测侧特征码进行冲突检测,若待检测侧特征码不存在匹配冲突,则说明TCAM特征码不存在匹配冲突,直接输出无匹配冲突结果,从而减少了检测另一侧的特征码的步骤,提高了检测效率,降低了系统的损耗。
为了确定所述TCAM特征表是否存在匹配冲突,在本申请的优选实施例中,所述方法还包括:
当所述待检测侧特征码存在匹配冲突时,基于所述待检测侧对应的另一侧的特征码进行匹配冲突检查。
在本方案中,当待检测侧特征码存在匹配冲突时,需要进一步通过所述待检测侧对应的另一侧的特征码进行进一步的匹配冲突检测,例如左侧特征码存在匹配冲突,则需要检测右侧特征码,以进一步确定TCAM特征码是否存在匹配冲突。
为了根据另一侧的特征码进行匹配冲突检查,在本申请的优选实施例中,基于所述待检测侧对应的另一侧的特征码进行匹配冲突检查,具体为:
当所述另一侧的特征码存在匹配冲突,则输出匹配冲突结果;
当所述另一侧的特征码不存在匹配冲突,则输出无匹配冲突结果。
具体的,当待检测侧的特征码存在匹配冲突时,需要进一步的确定TCAM特征码是否存在匹配冲突,具体步骤为判断所述另一侧的特征码存在匹配冲突时,则输出匹配冲突结果,当所述另一侧的特征码不存在匹配冲突,则输出无匹配冲突结果,也就是说,当所述左侧特征码与右侧特征码任一侧不存在匹配冲突,则该TCAM特征码就不存在匹配冲突。
本申请提供的一种基于TCAM特征码的匹配冲突检查方法,该方法包括:基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,所述左侧特征码中的关键词与所述右侧特征码中的关键词一一对应;当待检测侧特征码不存在匹配冲突时,输出无匹配冲突结果,所述待检测侧特征码为所述左侧特征码或所述右侧特征码,从而通过检测待检测侧特征码是否存在匹配冲突,节省对另一侧的特征码的冲突检测,提高了TCAM特征码的匹配冲突检测的效率,减少了系统资源的损耗。
请参阅图3,本申请另一实施例提供一种基于TCAM特征码的匹配冲突检查方法,应用于包括多条TCAM特征码的系统中,所述方法步骤如下:
第一步,基于预设分割线分割TCAM特征码。
通过所述预设分割线对所述多条TCAM特征码进行分割处理,得到左侧特征码与右侧特征码,此时的左侧特征码中的关键词与右侧特征码的关键词一一对应,也就是说,左侧特征码与右侧特征码之间的位置相对关系稳定,左侧特征码的特定位置可以在右侧找到对应的特定位置。
第二步,判断左侧特征码是否存在匹配冲突。
由于左侧特征码与右侧特征码一一对应,所以只需要检测其中一侧的特征码是否存在匹配冲突,即可知道所述TCAM特征码是否存在匹配冲突,在本申请实施例中,将左侧特征码作为待检测侧特征码,对待检测侧特征码进行冲突检测,若左侧特征码不存在匹配冲突,则说明TCAM特征码不存在匹配冲突,直接输出无匹配冲突结果,从而减少了检测右侧特征码的步骤,提高了检测效率,降低了系统的损耗,若左侧特征码存在匹配冲突,则执行第三步。
第三步,判断所述右侧特征码是否存在匹配冲突。
在本方案中,当待检测侧特征码存在匹配冲突时,需要进一步通过所述待检测侧对应的另一侧的特征码进行进一步的匹配冲突检测,由于左侧特征码存在匹配冲突,所以需要检测右侧特征码,所述右侧特征码存在匹配冲突时,则输出匹配冲突结果,当所述右侧特征码不存在匹配冲突,则输出无匹配冲突结果。
本申请提供的一种基于TCAM特征码的匹配冲突检查方法,该方法包括:基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,所述左侧特征码中的关键词与所述右侧特征码中的关键词一一对应;当待检测侧特征码不存在匹配冲突时,输出无匹配冲突结果,所述待检测侧特征码为所述左侧特征码或所述右侧特征码,从而通过检测待检测侧特征码是否存在匹配冲突,节省对另一侧的特征码的冲突检测,提高了TCAM特征码的匹配冲突检测的效率,减少了系统资源的损耗。
为了达到以上技术目的,本申请实施例还提出了一种基于TCAM特征码的匹配冲突检查设备,应用于包括多条TCAM特征码的系统中,如图4所示,所述设备包括:
分割模块401,用于基于预设分割线将多条所述TCAM特征码分割为左侧特征码与右侧特征码,所述左侧特征码中的关键词与所述右侧特征码中的关键词一一对应;
输出模块402,用于当待检测侧特征码不存在匹配冲突时,输出无匹配冲突结果,所述待检测侧特征码为所述左侧特征码或所述右侧特征码。
在具体的应用场景中,所述分割模块具体用于:
以所述预设分割线为坐标将所述多条所述TCAM特征进行分割,以使分割后得到的所述左侧特征码的关键词与分割后得到的所述右侧特征码的关键词一一对应。
在具体的应用场景中,还包括:
检查模块,用于当所述待检测侧特征码存在匹配冲突时,基于所述待检测侧对应的另一侧的特征码进行匹配冲突检查。
在具体的应用场景中,所述检查模块,具体用于:
当所述另一侧的特征码存在匹配冲突,则输出匹配冲突结果;
当所述另一侧的特征码不存在匹配冲突,则输出无匹配冲突结果。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解装置中的模块可以按照实施场景描述分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。