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

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

Info

Publication number
CN102724106B
CN102724106B CN201110078367.1A CN201110078367A CN102724106B CN 102724106 B CN102724106 B CN 102724106B CN 201110078367 A CN201110078367 A CN 201110078367A CN 102724106 B CN102724106 B CN 102724106B
Authority
CN
China
Prior art keywords
mac address
iteration
index value
module
obtains
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110078367.1A
Other languages
English (en)
Other versions
CN102724106A (zh
Inventor
谭细金
马书雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Global Innovation Polymerization LLC
Gw Partnership Co ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201110078367.1A priority Critical patent/CN102724106B/zh
Priority to PCT/CN2012/073295 priority patent/WO2012130157A1/zh
Priority to EP12763949.0A priority patent/EP2685677A4/en
Publication of CN102724106A publication Critical patent/CN102724106A/zh
Priority to US14/041,154 priority patent/US9294399B2/en
Application granted granted Critical
Publication of CN102724106B publication Critical patent/CN102724106B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Abstract

本发明实施例提供一种媒体接入控制地址的学习方法、网络侧设备和系统,该媒体接入控制地址的学习方法包括:根据接收的报文的关键字段生成键值,并根据键值获得该键值对应的索引值;根据预设的迭代次数对索引值进行线性随机迭代;根据第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索引值对应的MAC地址;根据查找结果学习接收的报文的MAC地址。本发明实施例通过线性随机迭代方法完成媒体接入控制地址的随机分布,从而可以实现媒体接入控制地址空间的充分利用,并可以最大限度的解决媒体接入控制地址的冲突问题。

Description

媒体接入控制地址的学习方法、网络侧设备和系统
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种媒体接入控制地址的学习方法、网络侧设备和系统。
背景技术
媒体接入控制(Media Access Control;以下简称:MAC)地址是网络设备在生产出厂时带的地址,长度为48比特,用来标识网络设备;不同网络设备的MAC地址是不同的。
交换机学习MAC地址的过程具体可以为:用户从端口1发送源MAC地址(Source Address;以下简称:SA)为MAC B,目的MAC地址为(Destination Address;以下简称:DA)为MAC A,虚拟局域网(VirtualLocal Area Network;以下简称:VLAN)为1的报文,交换机学习该报文的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地址的冲突问题,并且无需改动硬件,实现方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明媒体接入控制地址的学习方法一个实施例的流程图;
图2为本发明媒体接入控制地址的学习方法另一个实施例的流程图;
图3为本发明网络侧设备一个实施例的结构示意图;
图4为本发明网络侧设备另一个实施例的结构示意图;
图5为本发明网络侧设备再一个实施例的结构示意图;
图6为本发明通信系统一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明媒体接入控制地址的学习方法一个实施例的流程图,如图1所示,该媒体接入控制地址的学习方法可以包括:
步骤101,根据接收的报文的关键字段生成键值,并根据该键值获得该键值对应的索引值。
具体地,根据接收的报文的关键字段生成键值可以为:网络侧设备提取接收的报文的MAC地址和VLAN,然后根据MAC地址和/或VLAN生成上述键值。但是本实施例并不仅限于此,网络侧设备也可根据其他字段生成键值,本实施例对键值的生成方式不作限定。
具体地,根据该键值获得该键值对应的索引值可以为:网络侧设备对该键值进行哈希运算,获得该键值对应的索引值;当然本实施例也并不仅限于此,网络侧设备也可以采用其他算法对键值进行运算,获得该键值对应的索引值,本实施例对此不作限定。
步骤102,根据预设的迭代次数对上述索引值进行线性随机迭代。
步骤103,根据第一次迭代获得的迭代索引值在MAC地址池中查找第一次迭代获得的迭代索引值对应的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=0x1122334455,VLAN=10的key,其CRC32的结果为0x1fe;此处由于实际系统的深度为2k,因此这里只取CRC32的结果的低11比特。即对步骤201中的key进行Hash运算,获得的Hash index值是0x1fe。
步骤203,根据预设的迭代次数,对上一步获得的Hash index值进行线性随机迭代,获得迭代索引值。
本实施例选用如下的线性随机迭代算法进行示例:
bucket=HashValue(上一步获得的Hash index值);                 (1)
Iter(n次){bucket=(5×bucket)+1+HashValue;HashValue>>=5};(2)
式(2)中,Iter(n次)表示进行n次迭代,n为预设的迭代次数;bucket表示每次迭代获得的迭代索引值;
其中,第一次迭代获得的迭代索引值为0x3f5;
需要说明的是,这里选取的线性随机迭代算法仅是一个示例,在实际实现时可以根据仿真和场景不同选取不同的线性随机迭代算法,本实施例对此不作限定。
步骤204,根据第一次迭代获得的迭代索引值在MAC地址池中查找与该第一次迭代获得的迭代索引值对应的MAC地址。就是到0x3f5这块MAC地址空间去找是否有与第一次迭代获得的迭代索引值对应的MAC地址,这块MAC地址空间一般存4个或8个MAC地址。
步骤205,根据查找结果,进行后续操作。
具体地,(1)如果在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)或特殊应用集成电路(ApplicationSpecific Integrated Circuit;以下简称:ASIC)交换系统中,由于该交换系统注重MAC地址的冲突解决率,因此可以将迭代次数设置得大一些;而在注重线速交换带宽的系统,如200G交换芯片中,可以将迭代次数设置得小一些,而设置迭代次数不需要改动硬件,只需通过软件进行相应配置即可;本发明实施例中采用的线性随机算法可以灵活配置,另外,本发明实施例提供的方法可以适用于因特网协议(Internet Protocol;以下简称:IP)地址学习等采用Hash算法进行地址查找的系统,并且本发明实施例提供的方法在硬件实现上也比较简单。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图3为本发明网络侧设备一个实施例的结构示意图,本实施例中的网络侧设备可以实现本发明图1所示实施例的流程图,如图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地址的冲突问题,并且无需改动硬件,实现方便。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种媒体接入控制地址的学习方法,其特征在于,包括:
根据接收的报文的关键字段生成键值,并根据所述键值获得所述键值对应的索引值;
根据预设的迭代次数对所述索引值进行线性随机迭代;
根据第一次迭代获得的迭代索引值在媒体接入控制(MAC)地址池中查找所述第一次迭代获得的迭代索引值对应的MAC地址;
如果在所述MAC地址池中没有查找到与所述第一次迭代获得的迭代索引值对应的MAC地址,则确定所述MAC地址池中是否还有空闲MAC地址空间,并继续进行迭代操作,如果迭代操作进行到预设的最大迭代次数,仍未在所述MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且确定所述MAC地址池中还有空闲MAC地址空间时,则在所述MAC地址池中第一个出现空闲MAC地址空间的位置学习所述接收的报文的MAC地址。
2.根据权利要求1所述的方法,其特征在于,还包括:
如果在所述MAC地址池中没有查找到与所述第一次迭代获得的迭代索引值对应的MAC地址,并且所述迭代操作进行到预设的最大迭代次数,仍未在所述MAC地址池中查找到与迭代获得的迭代索引值对应的MAC地址且所述MAC地址池中已无空闲MAC地址空间,则返回学习失败响应。
3.根据权利要求1所述的方法,其特征在于,还包括:
如果在所述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任意一项所述的网络侧设备和与所述网络侧设备连接的至少一个用户设备。
CN201110078367.1A 2011-03-30 2011-03-30 媒体接入控制地址的学习方法、网络侧设备和系统 Expired - Fee Related CN102724106B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201110078367.1A CN102724106B (zh) 2011-03-30 2011-03-30 媒体接入控制地址的学习方法、网络侧设备和系统
PCT/CN2012/073295 WO2012130157A1 (zh) 2011-03-30 2012-03-30 媒体接入控制地址的学习方法、网络侧设备和系统
EP12763949.0A EP2685677A4 (en) 2011-03-30 2012-03-30 METHOD, NETWORK-SIDED DEVICE AND SYSTEM FOR LEARNING MEDIA ACCESS CONTROL ADDRESSES
US14/041,154 US9294399B2 (en) 2011-03-30 2013-09-30 Method for learning media access control address, network device, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110078367.1A CN102724106B (zh) 2011-03-30 2011-03-30 媒体接入控制地址的学习方法、网络侧设备和系统

Publications (2)

Publication Number Publication Date
CN102724106A CN102724106A (zh) 2012-10-10
CN102724106B true CN102724106B (zh) 2015-03-11

Family

ID=46929476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110078367.1A Expired - Fee Related CN102724106B (zh) 2011-03-30 2011-03-30 媒体接入控制地址的学习方法、网络侧设备和系统

Country Status (4)

Country Link
US (1) US9294399B2 (zh)
EP (1) EP2685677A4 (zh)
CN (1) CN102724106B (zh)
WO (1) WO2012130157A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103001878B (zh) * 2012-11-26 2018-02-16 中兴通讯股份有限公司 Mac地址哈希冲突的确定方法及装置
CN110968612B (zh) 2018-09-30 2023-07-18 华为技术有限公司 键值对数据的收集方法和装置
CN112328593B (zh) * 2020-10-21 2023-01-31 烽火通信科技股份有限公司 一种对地址学习表进行批量配置的方法、设备及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1302645C (zh) * 2003-05-26 2007-02-28 华为技术有限公司 网络处理器系统端口捆绑中实现流量均担的方法
CN100531097C (zh) * 2007-02-16 2009-08-19 华为技术有限公司 一种桥接的方法及装置
GB2462493A (en) * 2008-08-13 2010-02-17 Gnodal Ltd Storing and retrieving data from a hash table which has a plurality of columns comprising determining if an entry is empty or not for each column

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852607A (en) * 1997-02-26 1998-12-22 Cisco Technology, Inc. Addressing mechanism for multiple look-up tables
IL125272A0 (en) * 1998-07-08 1999-03-12 Galileo Technology Ltd Vlan protocol
CN1114433C (zh) 2000-12-22 2003-07-16 张志祥 健脾胶囊及其制备方法
JP2002334114A (ja) * 2001-05-10 2002-11-22 Allied Tereshisu Kk テーブル管理方法及び装置
US7286528B1 (en) * 2001-12-12 2007-10-23 Marvell International Ltd. Multiple address databases in a switch without the need for extra memory
WO2004023732A1 (en) * 2002-09-06 2004-03-18 Infineon Technologies Ag Method and apparatus for storing a port identifier in a lan switch
JP4368251B2 (ja) * 2004-06-09 2009-11-18 富士通株式会社 フレーム転送処理方法及び装置
CN1980180A (zh) * 2005-11-24 2007-06-13 武汉烽火网络有限责任公司 线速率学习和查找二层转发表项的方法和系统
JP4983712B2 (ja) * 2008-04-21 2012-07-25 富士通株式会社 伝送情報転送装置及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1302645C (zh) * 2003-05-26 2007-02-28 华为技术有限公司 网络处理器系统端口捆绑中实现流量均担的方法
CN100531097C (zh) * 2007-02-16 2009-08-19 华为技术有限公司 一种桥接的方法及装置
GB2462493A (en) * 2008-08-13 2010-02-17 Gnodal Ltd Storing and retrieving data from a hash table which has a plurality of columns comprising determining if an entry is empty or not for each column

Also Published As

Publication number Publication date
US9294399B2 (en) 2016-03-22
EP2685677A4 (en) 2014-04-09
EP2685677A1 (en) 2014-01-15
US20140029621A1 (en) 2014-01-30
WO2012130157A1 (zh) 2012-10-04
CN102724106A (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
CN102273141B (zh) 减少计算机网络中的消息洪泛的传播
CN102880628B (zh) 哈希数据存储方法和装置
CN103931144B (zh) 一种在虚拟域中通信的方法、设备和系统
Yu et al. Proof of ownership in deduplicated cloud storage with mobile device efficiency
CN103326925B (zh) 一种消息推送方法及装置
CN107547346B (zh) 一种报文传输方法和装置
CN102724106B (zh) 媒体接入控制地址的学习方法、网络侧设备和系统
CN111083179B (zh) 物联网云平台、基于物联网云平台的设备交互方法及装置
CN101924699A (zh) 报文转发处理方法、系统和运营商边缘设备
CN108259348B (zh) 一种报文传输方法和装置
CN104468855A (zh) 地址解析协议arp报文的处理方法和装置
CN106878185B (zh) 一种报文ip地址匹配电路及方法
CN103457855A (zh) 无类域间路由表建立、以及报文转发的方法和装置
CN116915293A (zh) 基于有限域多址码本的构造方法及网络层多用户通信方法、设备
CN111147385A (zh) 一种软件定义数据中心网络数据平面转发方法及系统
CN103391246A (zh) 报文处理方法及装置
CN102647424B (zh) 一种数据传输方法及其装置
US11563715B2 (en) Pattern matching by a network device for domain names with wildcard characters
CN108990126A (zh) 报文转发方法和装置
CN114564882A (zh) 基于离散事件的边缘深度学习模拟器的构建与应用
Khaefi et al. An efficient DDS node discovery scheme for naval combat system
US20210250272A1 (en) Network communication method and apparatus
Miao Research on Accelerated Address Search Method for Intelligent Distribution Network Equipment Identification and Lookup
US11924102B2 (en) Minimizing deviation from average latency of table lookups
CN108737522A (zh) 一种消息的处理方法、装置和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180427

Address after: California, USA

Patentee after: Global innovation polymerization LLC

Address before: London, England

Patentee before: GW partnership Co.,Ltd.

Effective date of registration: 20180427

Address after: London, England

Patentee after: GW partnership Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150311

CF01 Termination of patent right due to non-payment of annual fee