[发明专利]基于哈希表和TCAM表的MAC地址硬件学习方法及系统有效
申请号: | 201310055657.3 | 申请日: | 2013-02-21 |
公开(公告)号: | CN103117931A | 公开(公告)日: | 2013-05-22 |
发明(设计)人: | 周万涛;徐剑辉 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | H04L12/741 | 分类号: | H04L12/741;H04L29/12 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 哈希表 tcam mac 地址 硬件 学习方法 系统 | ||
技术领域
本发明涉及MAC(Media Access Control,媒体访问控制)地址学习领域,特别是涉及一种基于HASH(哈希)表和TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)表的MAC地址硬件学习方法及系统。
背景技术
随着经济全球化的发展,越来越多的企业分布范围日益扩大,迫切需要电信运营商提供链路连接,以便将企业各分支机构囊括进来,组成企业内部的专用网络。在这样的市场需求下,VPLS(Virtual Private Lan Service,虚拟专用局域网业务)技术应运而生,VPLS技术结合了以太网技术和MPLS(Multi-Protocol Label Switching,多协议标签交换)技术的优势,通过运营商提供的IP(Internet Protocol,网际协议)/MPLS网络连接地域上隔离的多个由以太网构成的LAN(Local Area Network,局域网),实现了对传统LAN功能的仿真,使它们像一个LAN那样工作。
VPLS通过查找对应VSI(Virtual Switch Instance,虚拟转发实例)的MAC地址转发表,来指导用户报文的转发,而MAC地址转发表是通过MAC地址学习功能创建的。因此,MAC地址学习功能是实现VPLS的关键因素。
MAC地址学习的2个触发条件是:
(1)某个VSI收到源MAC是未知单播地址时;
(2)某个VSI收到一个已知的源MAC地址,但是对应的转发表项需要更新,例如:接收VP(Virtual Port,VSI中的虚拟交换端口)发生了变化。
在MAC地址学习中地址冲突是不可避免的问题,原因是MAC地址有48bit,而VSI根据设备容量的不同取值一般大于10bit(即最少支持1k个VSI)。理论上如果要避免MAC地址冲突,则需要穷举所有MAC地址组合情况,至少需要2^58=256P(计算机存储单位,1Peta=1024T)个表项,显然不可能用硬件来缓存如此大数量级的表项。
目前解决MAC地址冲突的方法有以下三种:
(1)依赖主控CPU(Central Processing Unit,中央处理器)来协助解决地址冲突:一种MAC地址软件学习方法,即在主控CPU上通过实现“冲突链表”算法来解决地址冲突问题。由于主控CPU通常用来运行复杂的路由协议,本身负担已经较重,因此,非常浪费宝贵的主控CPU处理资源,而且与MAC地址硬件学习方法相比,该MAC地址软件学习方法的学习速率比较低。
(2)单哈希表缓存冲突方法:一种MAC地址硬件学习方法,使用一个哈希表来缓存MAC地址冲突,即通过扩大哈希表的容量,以降低冲突产生的概率,是一种最简单、最常见的缓存冲突方法。
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,以实现数据的压缩,并通过将原始数据打散和离散,以抑制映射后产生的数据冲突。常用的哈希算法有MD2(Message Digest Algorithm2,消息摘要算法第二版)、MD5(Message Digest Algorithm5,消息摘要算法第五版)、CRC(Cyclic Redundancy Check,循环冗余校验)32等。实际应用中常采用CRC32来作为哈希算法。以64K地址表为例,将VSI和源MAC用CRC32算法计算出32bit的哈希散列值,并将32bit结果的高、低16bit异或之后截取低16bit(2^16=64K)作为索引值,去索引RAM中的表项。如果两个MAC地址16bit离散值相同,则其中一个MAC地址无法被缓存;此时,只能期望两个MAC地址CRC32Hash值的bit17不同,并将表项容量由64k扩展128k,以此来进一步缓解冲突。
单哈希桶缓存冲突方法通过扩展离散值bit数的方法来降低冲突概率,每增加1bit离散值,需要将冲突表容量扩展一倍,因此对冲突表资源浪费很大。而且,由于这种办法完全依赖离散值进行表项的定位,不管如何扩容表项,始终无法缓存离散值完全相同的多个MAC地址。另外,当MAC地址样本发生变化时,并不能保证系统设计时所允许的冲突概率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310055657.3/2.html,转载请声明来源钻瓜专利网。