媒体接入控制地址的学习方法、网络侧设备和系统的制作方法

文档序号:7624773阅读:97来源:国知局
专利名称:媒体接入控制地址的学习方法、网络侧设备和系统的制作方法
技术领域
本发明实施例涉及通信技术领域,尤其涉及ー种媒体接入控制地址的学习方法、网络侧设备和系统。
背景技术
媒体接入控制(Media Access Control ;以下简称MAC)地址是网络设备在生产出厂时带的地址,长度为48比特,用来标识网络设备;不同网络设备的MAC地址是不同的。交換机学习MAC地址的过程具体可以为用户从端ロ I发送源MAC地址(SourceAddress ;以下简称SA)为 MAC B,目的 MAC 地址为(Destination Address ;以下简称DA)为MAC A,虚拟局域网(Virtual Local Area Network ;以下简称VLAN)为I的报文,交换机学习该报文的SA,建立MAC地址转发表,该MAC地址转发表可以包括SA、VLAN和端ロ(Port)等信息;然后交換机可以根据该MAC地址转发表进行报文的单播转发。现有交換机的MAC地址转发表一般是存储在静态随机存取存储器(Static Random Access Memory;以下简称SRAM)或动态随机存取存储器(Dynamic Random Access Memory ;以下简称DRAM)里,基于容量和查找效率的考虑,MAC地址转发表一般采用哈希(Hash)算法来实现表项的存储和查找。Hash算法可以建立关键字集合到Hash索引之间的多对一映射,一个关键字集合只能有ー个Hash索引,但ー个Hash索引可以对应多个不同的关键字集合。当不同的关键字集合对应同一个Hash索引值时,就会导致Hash冲突。对于MAC地址转发表而言,当产生Hash冲突时,学习不到相应的MAC地址转发表,会导致转发失败,进而导致用户不能上网或网速很慢。

发明内容
本发明实施例提供ー种媒体接入控制地址的学习方法、网络侧设备和系统,以实现提高MAC地址空间的利用率,提高MAC地址的冲突解决率。本发明实施例提供ー种媒体接入控制地址的学习方法,包括根据接收的报文的关键字段生成键值,井根据所述键值获得所述键值对应的索引值;根据预设的迭代次数对所述索引值进行线性随机迭代;根据第一次迭代获得的迭代索引值在媒体接入控制(MAC)地址池中查找所述第一次迭代获得的迭代索引值对应的MAC地址;如果在所述MAC地址池中没有查找到与所述第一次迭代获得的迭代索引值对应的MAC地址,则确定所述MAC地址池中是否还有空闲MAC地址空间,并继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,仍未在所述MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且确定所述MAC地址池中还有空闲MAC地址空间时,则在所述MAC地址池中第一个出现空闲MAC地址空间的位置学习所述接收的报文的MAC地址。
本发明实施例还提供一种网络侧设备,包括生成模块,用于根据接收的报文的关键字段生成键值;获得模块,用于根据所述生成模块生成的键值获得所述键值对应的索引值;迭代模块,用于根据预设的迭代次数对所述获得模块获得的索引值进行线性随机迭代;查找模块,用于根据所述迭代模块第一次迭代获得的迭代索引值在媒体接入控制(MAC)地址池中查找所述第一次迭代获得的迭代索引值对应的MAC地址;确定模块,用于当所述查找模块在所述MAC地址池中没有查找到与所述第一次迭 代获得的迭代索引值对应的MAC地址时,确定所述MAC地址池中是否还有空闲MAC地址空间,并指示所述迭代模块继续进行迭代操作;学习模块,用于当所述迭代操作进行到预设的最大迭代次数,所述查找模块仍未在所述MAC地址池中查找到与所述迭代模块迭代获得的迭代索引值对应的MAC地址且所述确定模块确定所述MAC地址池中还有空闲MAC地址空间时,在所述MAC地址池中第一个出现空闲MAC地址空间的位置学习所述接收的报文的MAC地址。本发明实施例还提供ー种通信系统,包括上述网络侧设备和与上述网络侧设备连接的至少ー个用户设备。通过本发明实施例,网络侧设备根据接收的报文的关键字段生成键值,并获得该键值对应的索引值,然后根据预设的迭代次数对该索引值进行线性随机迭代,根据第一次迭代获得的迭代索引值在MAC地址池中查找所述第一次迭代获得的迭代索引值对应的MAC地址,并根据查找结果学习接收的报文的MAC地址;本发明实施例通过线性随机迭代方法完成MAC地址的随机分布,迭代深度灵活可控,从而可以实现MAC地址空间的充分利用,最大限度的解决MAC地址的冲突问题,并且无需改动硬件,实现方便。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作ー简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明媒体接入控制地址的学习方法一个实施例的流程图;图2为本发明媒体接入控制地址的学习方法另ー个实施例的流程图;图3为本发明网络侧设备ー个实施例的结构示意图;图4为本发明网络侧设备另一个实施例的结构示意图;图5为本发明网络侧设备再一个实施例的结构示意图;图6为本发明通信系统ー个实施例的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。图I为本发明媒体接入控制地址的学习方法一个实施例的流程图,如图I所示,该媒体接入控制地址的学习方法可以包括步骤101,根据接收的报文的关键字段生成键值,并根据该键值获得该键值对应的索引值。具体地,根据接收的报文的关键字段生成键值可以为网络侧设备提取接收的报文的MAC地址和VLAN,然后根据MAC地址和/或VLAN生成上述键值。但是本实施例并不仅限于此,网络侧设备也可根据其他字段生成键值,本实施例对键值的生成方式不作限定。具体地,根据该键值获得该键值对应的索引值可 以为网络侧设备对该键值进行哈希运算,获得该键值对应的索引值;当然本实施例也并不仅限于此,网络侧设备也可以采用其他算法对键值进行运算,获得该键值对应的索引值,本实施例对此不作限定。步骤102,根据预设的迭代次数对上述索引值进行线性随机迭代。步骤103,根据第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索弓I值对应的MAC地址。步骤104,如果在MAC地址池中没有查找到与第一次迭代获得的迭代索引值对应的MAC地址,则确定该MAC地址池中是否还有空闲MAC地址空间,并继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,仍未在该MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且确定该MAC地址池中还有空闲MAC地址空间时,则在该MAC地址池中第一个出现空闲MAC地址空间的位置学习上述接收的报文的MAC地址。进ー步地,如果在MAC地址池中没有查找到与第一次迭代获得的迭代索引值对应的MAC地址,并且迭代操作进行到预设的最大迭代次数,仍未在MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且该MAC地址池中已无空闲MAC地址空间时,则返回学习失败响应。进ー步地,如果在MAC地址池中查找到与第一次迭代获得的迭代索引值对应的MAC地址,则中止当前的迭代操作,并在该MAC地址对应的表项需要更新时,在学习上述MAC地址的位置更新该MAC地址对应的表项。本实施例中,该网络侧设备可以为交换机或路由器等,本实施例对此不作限定。上述实施例中,网络侧设备根据接收的报文的关键字段生成键值,并获得该键值对应的索引值,然后根据预设的迭代次数对该索引值进行线性随机迭代,根据第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索引值对应的MAC地址,并根据查找结果学习接收的报文的MAC地址;本实施例通过线性随机迭代方法完成MAC地址的随机分布,迭代深度灵活可控,从而可以实现MAC地址空间的充分利用,可以最大限度的解决MAC地址的冲突问题,并且无需改动硬件,实现方便。图2为本发明媒体接入控制地址的学习方法另ー个实施例的流程图,如图2所示,该媒体接入控制地址的学习方法可以包括步骤201,根据接收的报文的关键字段生成键值(key)。具体地,例如可以为key[47:0]= MAC, key[60:48] = VLAN。步骤202,对key进行Hash运算,获得哈希索引(Hash index)值。本实施例中,Hash函数一般为CRC32或CRC16,其中,CRC为循环冗余码校验(Cyclical Redundancy Check)的简称;举例来说,对于MAC = Oxl 122334455,VLAN= 10 的 key,其 CRC32 的结果为 Oxlfe ;此处由于实际系统的深度为2k,因此这里只取CRC32的结果的低11比持。即对步骤201中的key进行Hash运算,获得的Hash index值是Oxlfe。步骤203,根据预设的迭代次数,对上ー步获得的Hash index值进行线性随机迭代,获得迭代索引值。本实施例选用如下的线性随机迭代算法进行示例bucket = HashValue (上一步获得的 Hash index 值);(I)
Iter (η 次){bucket = (5Xbucket)+l+HashValue ;HashValue >>=5} ; (2)式⑵中,Iter (η次)表示进行η次迭代,η为预设的迭代次数;bucket表示姆次迭代获得的迭代索引值;其中,第一次迭代获得的迭代索引值为0x3f5 ;需要说明的是,这里选取的线性随机迭代算法仅是ー个示例,在实际实现时可以根据仿真和场景不同选取不同的线性随机迭代算法,本实施例对此不作限定。步骤204,根据第一次迭代获得的迭代索引值在MAC地址池中查找与该第一次迭代获得的迭代索引值对应的MAC地址。就是到0x3f5这块MAC地址空间去找是否有与第一次迭代获得的迭代索引值对应的MAC地址,这块MAC地址空间一般存4个或8个MAC地址。步骤205,根据查找结果,进行后续操作。具体地,(I)如果在MAC地址池中查找到与第一次迭代获得的迭代索引值对应的MAC地址,则中止当前的迭代操作,并在查找到的MAC地址对应的表项需要更新时,在学习该MAC地址的位置更新该MAC地址对应的表项;(2)如果在MAC地址池中没有查找到与第一次迭代获得的迭代索引值对应的MAC地址,则确定该MAC地址池中是否还有空闲MAC地址空间,并继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,仍未在该MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且确定该MAC地址池中还有空闲MAC地址空间时,则在该MAC地址池中第ー个出现空闲MAC地址空间的位置学习上述接收的报文的MAC地址;(3)如果在MAC地址池中没有查找到与第一次迭代获得的迭代索引值对应的MAC地址,则确定该MAC地址池中是否还有空闲MAC地址空间,并继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,仍未在MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且该MAC地址池中已无空闲MAC地址空间,则返回学习失败响应。步骤206,上述操作完成之后,对报文进行状态更新并进行后续处理。本发明实施例提供的媒体接入控制地址的学习方法,通过对MAC地址空间的随机分布来达到减少MAC地址冲突的目的,能够在性能和效率上灵活可配,适应场景广泛;可以应用在中小规模带宽的系统,如50G左右的网络处理器(Network Processor ;以下简称NP)或特殊应用集成电路(Application Specific Integrated Circuit ;以下简称ASIC)交换系统中,由于该交换系统注重MAC地址的冲突解决率,因此可以将迭代次数设置得大ー些;而在注重线速交换带宽的系统,如200G交换芯片中,可以将迭代次数设置得小一些,而设置迭代次数不需要改动硬件,只需通过软件进行相应配置即可;本发明实施例中采用的线性随机算法可以灵活配置,另外,本发明实施例提供的方法可以适用于因特网协议(Internet Protocol ;以下简称IP)地址学习等采用Hash算法进行地址查找的系统,并且本发明实施例提供的方法在硬件实现上也比较简单。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于ー计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图3为本发明网络侧设备ー个实施例的结构示意图,本实施例中的网络侧设备可以实现本发明图I所示实施例的流程图,如图3所示,该网络侧设备可以包括生成模块31,用于根据接收的报文的关键字段生成键 值;获得模块32,用于根据生成模块31生成的键值获得该键值对应的索引值;迭代模块33,用于根据预设的迭代次数对获得模块32获得的索引值进行线性随机迭代;查找模块34,用于根据迭代模块33第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索引值对应的MAC地址;确定模块35,用于当查找模块34在MAC地址池中没有查找到与第一次迭代获得的迭代索引值对应的MAC地址时,确定该MAC地址池中是否还有空闲MAC地址空间,并指示迭代模块33继续进行迭代操作;学习模块36,用于当迭代操作进行到预设的最大迭代次数,查找模块34仍未在MAC地址池中查找到与迭代模块33迭代获得的迭代索引值对应的MAC地址且确定模块35确定上述MAC地址池中还有空闲MAC地址空间时,在MAC地址池中第一个出现空闲MAC地址空间的位置学习接收的报文的MAC地址。本实施例中,该网络侧设备可以为交换机或路由器等,本实施例对此不作限定。上述实施例中,生成模块31根据接收的报文的关键字段生成键值,并由获得模块32获得该键值对应的索引值,然后迭代模块33根据预设的迭代次数对该索引值进行线性随机迭代,查找模块34根据迭代模块33第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索引值对应的MAC地址,最后学习模块36根据查找模块34的查找结果学习接收的报文的MAC地址;本实施例通过线性随机迭代方法完成MAC地址的随机分布,迭代深度灵活可控,从而可以实现MAC地址空间的充分利用,最大限度的解决MAC地址的冲突问题,并且无需改动硬件,实现方便。图4为本发明网络侧设备另一个实施例的结构示意图,与图3所示的网络侧设备相比,不同之处在于,图4所示的网络侧设备中,还可以包括响应模块37,用于当查找模块34在MAC地址池中没有查找到与第一次迭代获得的迭代索引值对应的MAC地址,并且迭代操作进行到预设的最大迭代次数,查找模块34仍未在MAC地址池中查找到与迭代模块33迭代获得的迭代索引值对应的MAC地址且确定模块35确定MAC地址池中已无空闲MAC地址空间时,返回学习失败响应。中止模块38,用于当查找模块34在所述MAC地址池中查找到与第一次迭代获得的迭代索引值对应的MAC地址时,中止当前的迭代操作;更新模块39,用于在上述MAC地址对应的表项需要更新时,在学习上述MAC地址的位置更新该MAC地址对应的表项。
本实施例中,生成模块31可以包括提取子模块311,用于提取接收的报文的MAC地址和VLAN ;键值生成子模块312,用于根据提取子模块311提取的MAC地址和/或VLAN生成上述键值。但是本实施例并不仅限于此,键值生成子模块312也可以根据提取子模块311提取的其他字段生成上述键值,本实施例对键值的生成方式不作限定。具体地,本实施例中,获得模块32可以对上述键值进行哈希运算,获得该键值对应的索引值;当然本实施例也并不仅限于此,获得模块32也可以采用其他算法对键值进行运算,获得该键值对应的索引值,本实施例对此不作限定。上述网络侧设备通过线性随机迭代方法完成MAC地址的随机分布,从而可以实现MAC地址空间的充分利用,并可以最大限度的解决MAC地址的冲突问题。
图5为本发明网络侧设备再一个实施例的结构示意图,如图5所示,该网络侧设备可以包括输入端ロ模块51、数据包解析模块52、哈希功能模块53、MAC地址池54,MAC管理模块55、线性随机迭代模块56、状态更新及下ー步处理模块57和输出模块58。其中,输入端ロ模块51,用于接收来自用户的报文,并对接收的报文进行相应的合法性检查。数据包解析模块52,用于对输入端ロ模块51接收到的报文进行解析,确定报文类型并提取报文的关键字段,例如MAC地址、VLAN、IP地址和端ロ等字段,井根据提取的关键字段生成键值,实现本发明图3所示实施例中生成模块31,以及图4所示实施例中提取子模块311和键值生成子模块312的功能。 哈希功能模块53,用于对数据包解析模块52生成的键值进行Hash运算,获得哈希索引值,实现本发明图3和图4所示实施例中获得模块32的功能;其中Hash函数可以采用CRC32或CRC16等,本实施例对此不作限定。MAC地址池54,用于保存MAC地址;MAC地址池54涉及桶深概念,桶深是指对应同ー哈希索引值所能存储的MAC地址的最大数目,桶深的选取需要考虑查找效率和冲突率因素。桶越深,MAC地址学习和查找时需要比较的次数相对较多,对整个系统转发性能会有影响;桶越浅,MAC地址学习时冲突的概率就会比较大,因此实际应用中桶深一般为8或4 ;线性随机迭代模块56,用于根据预先设定的迭代次数,对哈希功能模块53获得的哈希索引值通过线性随机算法进行迭代,获得迭代索引值;实现本发明图3和图4所示实施例中迭代模块33和学习模块36,以及图4所示实施例中响应模块37、中止模块38和更新模块39的功能。MAC管理模块55,用于根据线性随机迭代模块56每次获得的迭代索引值在MAC地址池54中查找该迭代索引值对应的MAC地址,并将查找结果返回线性随机迭代模块56 ;实现本发明图3和图4所示实施例中查找模块34和确定模块35的功能。具体地,如果MAC管理模块55在MAC地址池中查找到与线性随机迭代模块56第一次迭代获得的迭代索引值对应的MAC地址,则线性随机迭代模块56可以中止当前的迭代操作,并在查找到的MAC地址对应的表项需要更新时,在学习该MAC地址的位置更新该MAC地址对应的表项;或者,如果MAC管理模块55没有在MAC地址池中查找到与线性随机迭代模块56第一次迭代获得的迭代索引值对应的MAC地址,则确定该MAC地址池中是否还有空闲MAC地址空间,并指示线性随机迭代模块56继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,MAC管理模块55仍未在该MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且确定该MAC地址池中还有空闲MAC地址空间时,则线性随机迭代模块56在该MAC地址池中第一个出现空闲MAC地址空间的位置学习上述接收的报文的MAC地址;或者,如果MAC管理模块55没有在MAC地址池中查找到与线性随机迭代模块56第一次迭代获得的迭代索引值对应的MAC地址,则确定该MAC地址池中是否还有空闲MAC地址空间,并指示线性随机迭代模块56继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,MAC管理模块55仍未在MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且该MAC地址池中已无空闲MAC地址空间,则线性随机迭代模块56返回学习失败响应。状态更新及下ー步处理模块57,用于在线性随机迭代模块56的操作完成之后,对接收的报文进行状态更新并进行后续处理。
输出模块58,用于输出状态更新及下ー步处理模块57处理之后的报文。上述网络侧设备,通过对MAC地址空间的随机分布来达到减少MAC地址冲突的目的,硬件实现方式简单,能够在性能和效率上灵活可配,适应场景广泛;可以应用在中小规模带宽的系统,如50G左右的NP或ASIC交换系统中,由于该交换系统注重MAC地址的冲突解决率,因此可以将迭代次数设置得大ー些;而在注重线速交换带宽的系统,如200G交換芯片中,可以将迭代次数设置得小一些,而设置迭代次数不需要改动硬件,只需通过软件进行相应配置即可;本实施例中采用的线性随机算法可以灵活配置,另外,本实施例提供的网络侧设备可以适用于IP地址学习等采用Hash算法进行地址查找的系统。图6为本发明通信系统ー个实施例的结构示意图,如图6所示,该通信系统可以包括网络侧设备61和与该网络侧设备61连接的至少ー个用户设备62。本实施例中,用户设备62可以向网络侧设备61发送报文;网络侧设备61,用于接收用户设备62发送的报文,并可以根据接收的报文的关键字段生成键值,井根据该键值获得该键值对应的索引值;根据预设的迭代次数对该索引值进行线性随机迭代;根据第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索引值对应的MAC地址;如果在MAC地址池中没有查找到与第一次迭代获得的迭代索引值对应的MAC地址,则确定该MAC地址池中是否还有空闲MAC地址空间,并继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,仍未在MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且确定该MAC地址池中还有空闲MAC地址空间时,则在MAC地址池中第一个出现空闲MAC地址空间的位置学习接收的报文的MAC地址。具体地,该网络侧设备61可以通过本发明图3、图4或图5所示实施例提供的网络侧设备实现,该网络侧设备61可以为交換机或路由器等,本实施例对此不作限定。本实施例中,网络侧设备61与用户设备62之间的交互可以參考本发明方法实施例的描述,在此不再赘述。上述系统通过线性随机迭代方法完成MAC地址的随机分布,迭代深度灵活可控,从而可以实现MAC地址空间的充分利用,最大限度的解决MAC地址的冲突问题,并且无需改动硬件,实现方便。本领域技术人员可以理解附图只是ー个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的ー个或多个装置中。上述实施例的模块可以合并为ー个模块,也可以进ー步拆分成多个子模块。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管參照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.ー种媒体接入控制地址的学习方法,其特征在于,包括 根据接收的报文的关键字段生成键值,井根据所述键值获得所述键值对应的索引值; 根据预设的迭代次数对所述索引值进行线性随机迭代; 根据第一次迭代获得的迭代索引值在媒体接入控制(MAC)地址池中查找所述第一次迭代获得的迭代索引值对应的MAC地址; 如果在所述MAC地址池中没有查找到与所述第一次迭代获得的迭代索引值对应的MAC地址,则确定所述MAC地址池中是否还有空闲MAC地址空间,并继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,仍未在所述MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且确定所述MAC地址池中还有空闲MAC地址空间时,则在所述MAC地 址池中第一个出现空闲MAC地址空间的位置学习所述接收的报文的MAC地址。
2.根据权利要求I所述的方法,其特征在于,还包括 如果在所述MAC地址池中没有查找到与所述第一次迭代获得的迭代索引值对应的MAC地址,并且所述迭代操作进行到预设的最大迭代次数,仍未在所述MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且所述MAC地址池中已无空闲MAC地址空间,则返回学习失败响应。
3.根据权利要求I所述的方法,其特征在于,还包括 如果在所述MAC地址池中查找到与所述第一次迭代获得的迭代索引值对应的MAC地址,则中止当前的迭代操作,并在所述MAC地址对应的表项需要更新时,在学习所述MAC地址的位置更新所述MAC地址对应的表项。
4.根据权利要求1、2或3所述的方法,其特征在于,所述根据接收的报文的关键字段生成键值包括 提取接收的报文的MAC地址和虚拟局域网; 根据所述MAC地址和/或所述虚拟局域网生成所述键值。
5.根据权利要求1、2或3所述的方法,其特征在于,所述根据所述键值获得所述键值对应的索引值包括 对所述键值进行哈希运算,获得所述键值对应的索引值。
6.一种网络侧设备,其特征在于,包括 生成模块,用于根据接收的报文的关键字段生成键值; 获得模块,用于根据所述生成模块生成的键值获得所述键值对应的索引值; 迭代模块,用于根据预设的迭代次数对所述获得模块获得的索引值进行线性随机迭代; 查找模块,用于根据所述迭代模块第一次迭代获得的迭代索引值在媒体接入控制(MAC)地址池中查找所述第一次迭代获得的迭代索引值对应的MAC地址; 确定模块,用于当所述查找模块在所述MAC地址池中没有查找到与所述第一次迭代获得的迭代索引值对应的MAC地址时,确定所述MAC地址池中是否还有空闲MAC地址空间,并指示所述迭代模块继续进行迭代操作; 学习模块,用于当所述迭代操作进行到预设的最大迭代次数,所述查找模块仍未在所述MAC地址池中查找到与所述迭代模块迭代获得的迭代索引值对应的MAC地址且所述确定模块确定所述MAC地址池中还有空闲MAC地址空间时,在所述MAC地址池中第一个出现空闲MAC地址空间的位置学习所述接收的报文的MAC地址。
7.根据权利要求6所述的网络侧设备,其特征在于,还包括 响应模块,用于当所述查找模块在所述MAC地址池中没有查找到与所述第一次迭代获得的迭代索引值对应的MAC地址,并且所述迭代操作进行到预设的最大迭代次数,所述查找模块仍未在所述MAC地址池中查找到与所述迭代模块迭代获得的迭代索引值对应的MAC地址且所述确定模块确定所述MAC地址池中已无空闲MAC地址空间时,返回学习失败响应。
8.根据权利要求6所述的网络侧设备,其特征在于,还包括 中止模块,用于当所述查找模块在所述MAC地址池中查找到与所述第一次迭代获得的迭代索引值对应的MAC地址时,中止当前的迭代操作; 更新模块,用于在所述MAC地址对应的表项需要更新时,在学习所述MAC地址的位置更新所述MAC地址对应的表项。
9.根据权利要求6、7或8所述的网络侧设备,其特征在于,所述生成模块包括 提取子模块,用于提取接收的报文的MAC地址和虚拟局域网; 键值生成子模块,用于根据所述提取子模块提取的所述MAC地址和/或所述虚拟局域网生成所述键值。
10.根据权利要求6、7或8所述的网络侧设备,其特征在干, 所述获得模块,具体用于对所述键值进行哈希运算,获得所述键值对应的索引值。
11.ー种通信系统,其特征在于,包括如权利要求6-10任意一项所述的网络侧设备和与所述网络侧设备连接的至少ー个用户设备。
全文摘要
本发明实施例提供一种媒体接入控制地址的学习方法、网络侧设备和系统,该媒体接入控制地址的学习方法包括根据接收的报文的关键字段生成键值,并根据键值获得该键值对应的索引值;根据预设的迭代次数对索引值进行线性随机迭代;根据第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索引值对应的MAC地址;根据查找结果学习接收的报文的MAC地址。本发明实施例通过线性随机迭代方法完成媒体接入控制地址的随机分布,从而可以实现媒体接入控制地址空间的充分利用,并可以最大限度的解决媒体接入控制地址的冲突问题。
文档编号H04L29/12GK102724106SQ20111007836
公开日2012年10月10日 申请日期2011年3月30日 优先权日2011年3月30日
发明者谭细金, 马书雷 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1