MAC地址哈希冲突的确定方法及装置制造方法及图纸

技术编号:8492060 阅读:832 留言:0更新日期:2013-03-28 23:14
本发明专利技术提供了一种媒体访问控制(MAC)地址哈希冲突的确定方法及装置,其中,该方法包括:对键值做N次哈希,得到N个哈希值,N为大于2的整数;分别使用M个哈希值一一对应查找M个哈希表,得到M个哈希表项,所述M小于所述N;使用所述N个哈希值中除所述M个哈希值之外的(N-M)个哈希值与所述M个哈希表项中的哈希值进行遍历比较,查找和/或学习存在哈希冲突的MAC地址。本发明专利技术实施例通过对键值做多次哈希,有效地减少了哈希冲突的概率,从而大大减少了对TCAM空间的占用。

【技术实现步骤摘要】
MAC地址哈希冲突的确定方法及装置
本专利技术涉及计算机
,尤其涉及一种媒体访问控制(MAC)地址哈希冲突的确定方法及装置。
技术介绍
哈希表(Hashtable,也叫散列表)通过把关键码值映射到表中一个位置来访问记录。这个映射函数叫做哈希函数,存放记录的数组叫做哈希表。对不同的关键字可能得到同一散列地址,即Key1≠Key2,而f(Key1)=f(Key2),这种现象称哈希冲突。哈希表查找方法的优点是查找快速,存储空间利用率高。缺点是查找时间不固定,冲突越多查找时间越长。MAC(MediaAccessControl,媒体访问控制)地址是用来识别局域网节点的标识,全球唯一。MAC地址为48位,用12个十六进制数表示,其中,前24位由IEEE(InstituteofElectricalandElectronicsEngineers,美国电气和电子工程师协会)分配,用于识别网络设备厂商,构成OUI(OrganizationalUniqueIdentifier,组织唯一识别符),后24位由网络设备厂商自行指定。在以太网中,二层转发需要对MAC+VSID(VirtualSwitchingInstanceDoman,虚拟交换实例域)进行转发查找和学习查找,由于MAC地址有48位,VSID一般16位,MAC+VSID共64位,在实际中不可能为每个地址都分配一个表项,因此一般通过哈希表实现。图1是现有技术中一种MAC查找流程图,首先查找哈希表,如果出现哈希冲突,继续查找冲突解决表;图2是现有技术中另一种MAC查找流程图,首先查找冲突解决表,如果未匹配,继续查找哈希表。两者不同在于哈希表和冲突解决表查找的先后顺序。一个成功的哈希表方案应该是尽可能少地去查找冲突解决表,减少对冲突解决表所在存储器的占用,冲突解决表一般放在TCAM(TernaryContentAddressableMemory,三态内容寻址存储器)中。现有技术中,只要出现哈希冲突,就将表项写入哈希冲突解决表,哈希冲突越大,对TCAM资源占用越多,增加TCAM容量又会受到TCAM功耗大和成本高的制约。
技术实现思路
本专利技术实施例提供了一种MAC地址哈希冲突的确定方法及装置,以减少哈希冲突概率,进而大大减少对TCAM空间的占用。本专利技术实施例提供了一种媒体访问控制(MAC)地址哈希冲突的确定方法,该方法包括:对键值做N次哈希,得到N个哈希值,N为大于2的整数;分别使用M个哈希值一一对应查找M个哈希表,得到M个哈希表项,所述M小于所述N;使用所述N个哈希值中除所述M个哈希值之外的(N-M)个哈希值与所述M个哈希表项中的哈希值进行遍历比较,查找和/或学习存在哈希冲突的MAC地址。优选地,所述查找存在哈希冲突的MAC地址包括:如果遍历完后存在相等的条目,则计算MAC表地址,查找对应的MAC表,用所述MAC表中的键值字段与所述键值进行比较,若二者相等,则确定查找到存在哈希冲突的MAC地址。优选地,所述用所述MAC表中的键值字段与所述键值进行比较之后,还包括:若二者不相等,则确定不存在哈希冲突的MAC地址。优选地,所述学习存在哈希冲突的MAC地址包括:如果遍历完后存在相等的条目,则确定存在哈希冲突,将该键值学习到冲突解决表中;如果遍历完后不存在相等的条目,则计算所述M个哈希表项中的空闲条目数,若所述M个哈希表项中的空闲条目数均为零,则将该键值学习到所述冲突解决表中;若所述M个哈希表项中的空闲条目数不都为零,则查找空闲条目数不为零的哈希表项对应的哈希冲突表中是否存在哈希值等于所述(N-M)个哈希值中任一哈希值的条目,如果存在,则将该键值学习到所述冲突解决表中,如果不存在,则判断该哈希冲突表中冲突表项是否已满,如果已满,则将该键值学习到所述冲突解决表中。优选地,所述判断该哈希冲突表中冲突表项是否已满之后,还包括:如果未满,则将所述(N-M)个哈希值写入所述哈希冲突表中,计算MAC表地址,将该键值学习到所述MAC表中。本专利技术实施例还提供了一种媒体访问控制(MAC)地址哈希冲突的确定装置,应用于网络处理器中,该装置包括:哈希模块,用于对键值做N次哈希,得到N个哈希值,N为大于2的整数;查找模块,用于分别使用M个哈希值一一对应查找M个哈希表,得到M个哈希表项,所述M小于所述N;处理模块,用于使用所述N个哈希值中除所述M个哈希值之外的(N-M)个哈希值与所述M个哈希表项中的哈希值进行遍历比较,查找和/或学习存在哈希冲突的MAC地址。优选地,所述处理模块,具体用于:如果遍历完后存在相等的条目,则计算MAC表地址,查找对应的MAC表,用所述MAC表中的键值字段与所述键值进行比较,若二者相等,则确定查找到存在哈希冲突的MAC地址。优选地,所述处理模块,还用于:若二者不相等,则确定不存在哈希冲突的MAC地址。优选地,所述处理模块,具体用于:如果遍历完后存在相等的条目,则确定存在哈希冲突,将该键值学习到冲突解决表中;如果遍历完后不存在相等的条目,则计算所述M个哈希表项中的空闲条目数,若所述M个哈希表项中的空闲条目数均为零,则将该键值学习到所述冲突解决表中;若所述M个哈希表项中的空闲条目数不都为零,则查找空闲条目数不为零的哈希表项对应的哈希冲突表中是否存在哈希值等于所述(N-M)个哈希值中任一哈希值的条目,如果存在,则将该键值学习到所述冲突解决表中,如果不存在,则判断该哈希冲突表中冲突表项是否已满,如果已满,则将该键值学习到所述冲突解决表中。优选地,所述处理模块,还用于:如果未满,则将所述(N-M)个哈希值写入所述哈希冲突表中,计算MAC表地址,将该键值学习到所述MAC表中。本专利技术实施例通过对键值做多次哈希,有效减少哈希冲突的概率,从而大大减少对TCAM空间的占用。附图说明图1是现有技术中的一种MAC查找流程图;图2是现有技术中的另一种MAC查找流程图;图3是本专利技术所使用的双哈希查找表实施例的示意图;图4是本专利技术实施例双哈希查找时表项之间关系示意图;图5是本专利技术实施例双哈希查找过程的流程图;图6是本专利技术实施例MAC学习时的哈希冲突示意图;图7是本专利技术实施例MAC学习中哈希冲突表示意图;图8是本专利技术实施例MAC学习过程的流程图;图9是本专利技术实施例MAC地址哈希冲突的确定装置的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本专利技术实施例中的哈希冲突主要存在于以下两种情况:1)MAC查找时,查找键值尚未学习到表项中,但和已经学习进表项的键值产生了哈希冲突,查找到同一个MAC表表项,这时,需要用查找键值与表结果中Compare字段做比较,判断是否是该查找键值对应的表项;2)MAC学习时的哈希冲突。针对上述两种哈希冲突,本专利技术实施例提供了一种媒体访问控制(MAC)地址哈希冲突的确定方法,该方法包括:对键值做N次哈希,得到N个哈希值,N为大于2的整数;分别使用M个哈希值一一对应查找M个哈希表,得到M个哈希表项,所述M小于所述N;使用所述N个哈希值中除所述M个哈希值之外的(N-M)个哈希值与所述M个哈希表项中的哈希值进行遍历比较,查找和/或学习存在本文档来自技高网
...
MAC地址哈希冲突的确定方法及装置

【技术保护点】
一种媒体访问控制(MAC)地址哈希冲突的确定方法,其特征在于,该方法包括:对键值做N次哈希,得到N个哈希值,N为大于2的整数;分别使用M个哈希值一一对应查找M个哈希表,得到M个哈希表项,所述M小于所述N;使用所述N个哈希值中除所述M个哈希值之外的(N?M)个哈希值与所述M个哈希表项中的哈希值进行遍历比较,查找和/或学习存在哈希冲突的MAC地址。

【技术特征摘要】
1.一种媒体访问控制MAC地址哈希冲突的确定方法,其特征在于,该方法包括:对键值做N次哈希,得到N个哈希值,N为大于2的整数;分别使用M个哈希值一一对应查找M个哈希表,得到M个哈希表项,所述M小于所述N;使用所述N个哈希值中除所述M个哈希值之外的N-M个哈希值与所述M个哈希表项中的哈希值进行遍历比较,查找和学习存在哈希冲突的MAC地址;其中,M为N-1的整数;所述学习存在哈希冲突的MAC地址包括:如果遍历完后存在相等的条目,则确定存在哈希冲突,将该键值学习到冲突解决表中;如果遍历完后不存在相等的条目,则计算所述M个哈希表项中的空闲条目数,若所述M个哈希表项中的空闲条目数均为零,则将该键值学习到所述冲突解决表中;若所述M个哈希表项中的空闲条目数不都为零,则查找空闲条目数不为零的哈希表项对应的哈希冲突表中是否存在哈希值等于所述N-M个哈希值中任一哈希值的条目,如果存在,则将该键值学习到所述冲突解决表中,如果不存在,则判断该哈希冲突表中冲突表项是否已满,如果已满,则将该键值学习到所述冲突解决表中。2.根据权利要求1所述的方法,其特征在于:所述查找存在哈希冲突的MAC地址包括:如果遍历完后存在相等的条目,则计算MAC表地址,查找对应的MAC表,用所述MAC表中的键值字段与所述键值进行比较,若二者相等,则确定查找到存在哈希冲突的MAC地址。3.根据权利要求2所述的方法,其特征在于:所述用所述MAC表中的键值字段与所述键值进行比较之后,还包括:若二者不相等,则确定不存在哈希冲突的MAC地址。4.根据权利要求1所述的方法,其特征在于:所述判断该哈希冲突表中冲突表项是否已满之后,还包括:如果未满,则将所述N-M个哈希值写入所述哈希冲突表中,计算MAC表地址,将该键值学习...

【专利技术属性】
技术研发人员:谢密
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利