CN101540730A - 地址查找方法、交换机和网络系统 - Google Patents

地址查找方法、交换机和网络系统 Download PDF

Info

Publication number
CN101540730A
CN101540730A CN200910135763A CN200910135763A CN101540730A CN 101540730 A CN101540730 A CN 101540730A CN 200910135763 A CN200910135763 A CN 200910135763A CN 200910135763 A CN200910135763 A CN 200910135763A CN 101540730 A CN101540730 A CN 101540730A
Authority
CN
China
Prior art keywords
address
node table
index node
local area
lan
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.)
Pending
Application number
CN200910135763A
Other languages
English (en)
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.)
Huawei Technologies 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 CN200910135763A priority Critical patent/CN101540730A/zh
Publication of CN101540730A publication Critical patent/CN101540730A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明的实施例公开了一种地址查找方法、交换机和网络系统。涉及数据转发领域;解决了地址查找效率低的问题。所述地址查找方法包括:获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID和媒体接入控制层MAC地址;根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;根据所述MAC地址查找所述地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;从所述地址集中获取与所述MAC地址相匹配的地址项。本发明提供的技术方案适用于数据转发,尤其适用于以太网二层的数据转发。

Description

地址查找方法、交换机和网络系统
技术领域
本发明涉及数据转发领域,尤其涉及一种二层网络上的地址查找方法、交换机和网络系统。
背景技术
在以太网的二层转发层面,交换机根据MAC(Media Access Control,媒体接入控制)地址转发待发送数据包,每一个待发送数据包都携带源MAC地址和目的MAC地址。在转发层面,交换机通过源MAC地址的学习生成MAC表,MAC表中的表项带有MAC地址对应的出接口信息。交换机转发待发送数据包时,通过待发送数据包携带的目的MAC地址和目的VLAN ID(Virtual Area NetworkIDentity,虚拟局域网标识)查询所述MAC表,获得出接口信息。
在查询MAC表的过程中,为提高查找效率和节省内存,大多采用hash算法,将VLAN ID和MAC地址作为关键字,根据VLAN ID和MAC地址生成哈希表,将哈希表的各索引值和MAC表的各MAC项建立对应关系。查询时,先对VLAN ID和目的MAC地址进行哈希运算生成索引值,再根据哈希表中该索引值与MAC项的对应关系,获取MAC表中对应的MAC项。
在实现上述通过哈希表查询MAC表的过程中,发明人发现现有技术中至少存在如下问题:
在使用VLAN ID和MAC地址作为关键字进行哈希运算时,由于VLAN ID和MAC地址的范围相当广泛,因此会产生不同的VLAN ID和MAC地址生成相同索引值的情况,也就是说,哈希表中的一个索引值对应MAC表中的多个MAC项,这时,就要对相同索引值的全部MAC项再进行一轮比对以得到目标MAC项。当同一索引值对应的MAC项数量较多时,查找所消耗的网络资源也较多,影响了查找MAC地址的效率,进而影响了数据转发效率。
发明内容
本发明的实施例提供了一种地址查找方法、交换机和网络系统,提高了查找MAC地址的效率。
本发明的实施例提供了一种地址查找方法,包括:
获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID,和媒体接入控制层MAC地址;
根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;
根据所述MAC地址查找所述地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;
从所述地址集中获取与所述MAC地址相匹配的地址项。
本发明的实施例还提供了一种交换机,包括:
初始信息获取模块,用于获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID,和媒体接入控制层MAC地址;
地址集索引节点表获取模块,用于根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;
地址集获取模块,用于根据所述MAC地址查找所述地址集索引节点表获取模块获取的地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;
地址项获取模块,用于从所述地址集获取模块获取的地址集中获取与所述MAC地址相匹配的地址项。
本发明的实施例还提供了一种网络系统,包括上述交换机。
本发明的实施例提供的地址查找方法、交换机和网络系统,使用二级索引的模式,在接收到待发送数据包时获取该待发送数据包的VLAN ID或VSI ID,和MAC地址,首先根据VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;根据MAC地址查询查询该地址集索引节点表,从该地址集索引节点表中获取相应的地址集,从所述地址集中获取与所述MAC地址相匹配的地址项,完成地址查找。细化了地址查找粒度,通过二级索引结构减少了地址集中地址项的数目,节约了查找占用的资源,提高了地址查找效率。
附图说明
图1为本发明实施例一提供的一种地址查找方法的流程图;
图2为本发明实施例二提供的一种地址查找方法的流程图;
图3为本发明实施例三提供的一种地址查找方法的流程图;
图4为本发明实施例四提供的一种地址查找方法的流程图;
图5为本发明的实施例提供的一种交换机的结构示意图;
图6为图5中局域网索引节点表查找模块502的结构示意图;
图7为图5中地址集获取模块503的结构示意图;
图8为图5中地址项获取模块504的结构示意图;
图9为本发明的又一实施例提供的一种交换机的结构示意图。
具体实施方式
本发明实施例一提供了一种地址查找方法,解决了MAC地址查找效率低的问题,使用该方法查找地址的流程如图1所示,包括:
步骤101、获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID,和目的媒体接入控制层MAC地址;
步骤102、根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表,所述地址集索引节点表中存储有至少一个地址集的地址;
步骤103、根据所述目的MAC地址查找所述地址集索引节点表,从所述地址集索引表中获取与该目的MAC地址对应的地址集;
步骤104、从所述地址集中获取与所述目的MAC地址相匹配的地址项。
本发明的实施例提供的地址查找方法,使用二级索引的模式,在接收到待发送数据包时获取该待发送数据包的VLAN ID或VSI ID,和目的MAC地址,首先根据VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与VLAN ID或VSI ID对应的地址集索引节点表;根据MAC地址查询该地址集索引节点表,从该地址集索引节点表中获取相应的地址集,从所述地址集中获取与所述MAC地址相匹配的地址项,完成地址查找。细化了地址查找粒度,通过二级索引结构减少了地址集中地址项的数目,节约了查找占用的资源,提高了地址查找效率。
为了便于理解本发明的实施例提供的地址查找方法,现对哈希函数进行介绍。
在数据结构的线性表和树中,数据记录在结构中的相对位置是随机的,为了便于查找,在数据记录的存储位置和它的内容关键字之间建立一个确定的对应关系,使每个关键字和结构中一个唯一的存储位置相对应,在查找数据记录时,将关键字根据所述确定的对应关系进行处理,根据处理结果即可获得需要查找的数据记录的存储位置。
哈希函数是一种确定上述对应关系的方法,通过哈希函数对关键字进行处理,得到的结果即为数据记录的存储位置。关键字与数据记录存储位置的对应关系存储在哈希表中,哈希表的每一个表项都对应着一个关键字。哈希函数有很多不同的构造方法,例如平方取中法,即以关键字平方后的中间几位作为存储地址;还可以通过除留余数法构造哈希函数,取关键字被某个不大于哈希表表长的数除后所得余数为存储地址。
现有技术中,在进行以太网二层待发送数据包转发时,将待发送数据包的目的MAC地址和VLAN ID作为关键字,构造哈希函数,根据待发送数据包的目的MAC地址和VLANID进行哈希运算,得到索引值,根据该索引值在哈希表中进行查找,根据哈希表中的索引值与MAC表中的MAC项的对应关系,获取与该索引值对应的MAC项。当有多个MAC项与同一索引值对应时,将这些MAC项作为一个集合,称作冲突域。冲突域中的各个MAC项以线性链表的形式存储,依次对比各个MAC项中的VLAN ID和MAC地址与该待发送数据包携带的VLAN ID和目的MAC地址是否相同,将对比结果相同的MAC项作为查询结果。
由于获取索引值的哈希运算以VLAN ID和MAC地址作为关键字,而无论对于VLAN ID还是MAC地址,取值范围都是相当大的,故会出现一个冲突域中包含的MAC项数量较多的情况,此时,需要对该冲突域中的MAC项逐个对比,运算量较大,查找效率低,直接影响数据转发效率。
上述查询MAC项的过程是通过软件程序实现的,也可以通过添加硬件实现,例如,通过硬件计算索引值,此时哈希运算是并行的CRC-16位运算,运算效率高;将冲突域中的各个MAC项以顺序表的形式存储,为每个冲突域配置一个硬件设备,并行比较同一冲突域内的多个MAC项。这样,查询效率可以得到显著提高,但需要大量硬件支持,提高了系统运营成本,且由于采取并行的CRC-16位运算,哈希表容量固定,对于主机较少的VLAN来说浪费了资源,对于主机较多的VLAN来说存储空间受到了限制,不利于网络扩容。
为了解决上述软件查询地址效率低,导致数据转发效率低以及硬件查询,导致系统成本提高的问题,本发明实施例二提供了一种地址查找方法。本发明的实施例中,可以将多个主机作为一个虚拟局域网进行管理,也可以将多个主机作为一个虚拟安全接口进行管理。如果使用虚拟局域网进行管理,则待发送数据包中携带有VLAN ID和MAC地址,如果使用虚拟安全接口进行管理,则待发送数据包中携带有VSI ID(Virtual Security Interface Identity,虚拟安全接口标识)和MAC地址。本发明实施例以使用虚拟局域网为例,对所述数据调度方法进行介绍。
使用本发明实施例提供的地址查找方法查找地址的流程如图2所示,包括:
步骤201、交换机接收待发送数据包;
本步骤中,交换机接收待转发的待发送数据包,该待发送数据包携带有接收端的目标MAC地址,以及接收端的VLAN ID。
步骤202、通过预置的VLAN ID处理规则对所述VLAN ID进行处理;
本步骤中,所述预置的VLAN ID处理规则为以VLAN ID为参数的哈希函数,交换机根据接收端的VLAN ID,通过哈希运算,生成局域网索引节点表索引值。
步骤203、查找局域网索引节点表,获取与所述处理结果对应的局域网索引节点表表项;
本发明实施例使用二级索引结构,第一级索引节点表为局域网索引节点表,第二级索引节点表为地址集索引节点表,第一级索引节点表下对应有多个第二级索引节点表,第二级索引节点表下对应有多个地址集。所述局域网索引节点为VLAN ID的哈希表,所述地址集索引节点表为MAC地址的哈希表。
本步骤中,根据步骤202生成的局域网索引节点表索引值查找所述局域网索引节点表,获取对应的局域网索引节点表表项,在该表项中存储有对应的地址集索引节点表的首地址和MAC地址的哈希函数指针,通过所述首地址和指针,可以找到对应的地址集索引节点表和MAC地址的哈希函数。
本领域技术人员显然知道,上述方法只是查找手段之一,还有其他方式可以实现上述查找过程,如在局域网索引节点表表项中存储指向地址集索引节点表的指针,或在局域网索引节点表表项中存储MAC地址哈希函数的首地址,本发明对查找手段不作限定。
步骤204、获取与该VLAN ID对应的地址集索引节点表;
本步骤中,根据步骤203获取的局域网索引节点表表项中存储的地址集索引节点表的首地址,获取与该VLAN ID对应的地址集索引节点表。
步骤205、根据MAC地址处理规则对所述目的MAC地址进行处理;
本步骤中,所述MAC地址处理规则即为MAC地址的哈希函数,根据步骤203获取的指向该MAC地址的哈希函数的指针获取所述哈希函数,并根据所述哈希函数对目的MAC地址进行运算,生成地址集索引节点表索引值。
步骤206、查找所述地址集索引节点表,获取与所述目的MAC地址对应的地址集索引节点表表项;
本步骤中,根据步骤205生成的地址集索引节点表索引值查找所述地址集索引节点表,获取对应的地址集索引节点表表项,在该表项中存储有指向与所述目的MAC地址对应的地址集的指针,通过该指针,可以查找到所述地址集。
本领域技术人员显然知道,上述方法只是查找手段之一,还有其他方式可以实现上述查找过程,如在地址集索引节点表表项中存储地址集的首地址,本发明对此不作限定。
步骤207、获取与所述目的MAC地址对应的地址集;
本步骤中,根据步骤206获取的指向与所述目的MAC地址对应的地址集的指针,获取所述地址集,所述地址集即为一个冲突域,该地址集中包含全部经过MAC地址的哈希函数运算后得到相同结果的地址项,本发明实施例中的地址项可以是MAC项。
所述地址集以顺序表的形式存储,多个地址集构成数据表。
步骤208、在所述地址集中查找目标地址项;
本步骤中,在所述地址集中,根据待发送数据包携带的目标MAC地址,查找目标地址项,具体为按顺序对比该地址集中各个地址项中的MAC地址与所述目标MAC地址是否相同,如果相同,则确认该地址项为目标地址项。
步骤209、获取接口信息,转发待发送数据包;
本步骤中,交换机根据步骤208的查找结果,获取目标地址项中存储的接口信息,将待发送数据包转发出去。
步骤210、更新目标地址项的老化标识;
数据表中的每一个地址项都带有1bi t位的老化标识,当该老化标识的值为1时,认为该地址项已老化;当该老化标识的值为0时,认为该地址项未老化。
在系统启动时,数据表中的全部地址项的值均为1,当地址项作为目标地址项被查找到时,更新该目标地址项的老化标识,将老化标识的值设为0。
本发明实施例提供的地址查找方法,使用二级索引的模式,在接收到待发送数据包时获取该待发送数据包的目的VLAN ID和目的MAC地址,首先根据VLANI D查找局域网索引节点表,获取对应的地址集索引节点表,再通过查询该地址集索引节点表获取地址集,从所述地址集中获取与所述目的MAC地址相匹配的地址项,完成地址查找。细化了地址查找粒度,通过二级索引结构减少了地址集中地址项的数目,节约了查找占用的资源,提高了地址查找效率。
在交换机工作的过程中,需要定期的对数据表进行更新,将新的地址项加入到数据表中,以确保命中率高(即经常被待发送数据包作为目标终端)的地址项保留在数据表中,而命中率过低的地址项删除,将数据表的容量维持在一定范围之内,提高查找效率。本发明实施例三提供了一种地址查找方法,能够达到上述目的,下面结合附图对该地址查找方法进行详细介绍。
如图3所示,本发明实施例中,需要根据待发送数据包的源VLAN ID和源MAC地址完成更新,首先需要根据源VLAN ID查找局域网索引节点表,再根据源MAC地址查找相应的地址集索引节点表,其中,步骤301至步骤308为查找过程,与本发明实施例二中的步骤201至步骤208无异,不再赘述。
步骤309、判断所述地址集中是否存在与所述源MAC地址匹配的地址项;
步骤310、如果存在与所述源MAC地址匹配的地址项,更新该地址项的老化标识;
根据步骤309的判断结果,如果存在与所述源MAC地址匹配的地址项,则更新该地址项的老化标识,具体为将所述地址项的老化标识置为0,说明其他主机与该源MAC地址对应的主机间仍有数据包在传输,该源MAC地址的命中率较高。
步骤311、如果不存在与所述源MAC地址匹配的地址项,向数据表中加入新的地址项;
交换机在以太网二层转发层面的另一个重要工作内容就是地址项的学习,即不断的将数据表中不包含但实际上与其他终端有数据交换的MAC地址加入到数据表中。
根据步骤309的判断结果,如果不存在与所述源MAC地址匹配的地址项,则在该地址集中根据所述源MAC地址添加新的地址项,表示该源MAC地址对应的主机开始与其他主机进行数据传输。
步骤312、定时扫描数据表中的表项;
本步骤中,按照网络维护人员对交换机的配置,定时启动对数据表的扫描,由于数据表为顺序表,故按顺序对数据表中的各地址项逐项扫描,检查各个地址项的老化标识值。
步骤313、根据所述步骤312的扫描结果删除已老化的表项,老化未老化的表项;
本步骤中,将老化标识值为1的地址项删除,该地址项所在的地址集中序号在该地址项之后的其后地址项均前移一位。
同时,将老化标识值为0的地址项老化,具体为将该地址项的老化标识值置为1。
数据表中的地址项被命中后,该地址项的老化标识会被置为0,这就保证了命中率高的地址项的老化标识在老化过程结束后又会马上被置为0,防止该项被删除。
命中率低的地址项不断被删除,就能够保证命中率高的地址项在数据表中的位置比较靠前,也提高了地址查找的效率。
需要说明的是,对于步骤312和步骤313所述的更新地址表过程与步骤309至步骤311所述的加入新地址项的过程,并无时序上的要求,这两个过程可以同时发生,也可以只发生任意一个,本发明对此不作限定。
本步骤中,交换机启动学习流程,在接收到待发送数据包后,根据该待发送数据包来源的VLAN ID和源MAC地址进行索引,对该待发送数据包来源的VLANID进行哈希运算,根据运算结果查找局域网索引节点表,获取地址集索引节点表;再对该待发送数据包的源MAC地址进行哈希运算,根据运算结果查找所述地址集索引节点表,获取地址集。在地址集中进行查找,如果包含该待发送数据包来源的VLAN ID和源MAC地址的地址项已存在,说明该MAC地址仍有数据发出,则更新该地址项的老化标识为0;如果包含该待发送数据包来源的VLAN ID和源MAC地址的地址项不存在,创建相应的地址项,将该地址项加入到所述地址集的末尾,且如果地址集已满,用新创建的地址项替代最近命中率最低的地址项。
步骤314、对一个VLAN下的全部地址项进行老化;
可选的,可以对一个VLAN下的全部MAC项进行批量老化。本发明实施例中的数据表为顺序表,各个地址集占用内存中的一段连续的地址空间,当需要对一个VLAN下的全部地址项进行老化时,实际上只需要对VLAN ID进行哈希运算,根据运算结果查询局域网索引节点表,获取地址集索引节点表,将所述地址集索引节点表中的每个表项对应的地址集进行整体老化。
本发明实施例提供的地址查找方法,使用二级索引的模式,在接收到待发送数据包时获取该待发送数据包的源VLAN ID和源MAC地址,首先根据VLAN ID查找局域网索引节点表,获取对应的地址集索引节点表,再通过查询该地址集索引节点表获取地址集,从所述地址集中获取与所述源MAC地址相匹配的地址项,完成地址查找;在所述地址集中不存在与所述源MAC地址相匹配的地址项时,根据所述源MAC地址在该地址集中加入新的地址项。及时更新数据表,确保数据表中存储的地址项绝大部分为高命中率的地址项,进一步提高了查找效率;同一VLAN内的地址项处在一个连续的内存区域中,便于基于VLAN的老化,操作简单,占用资源较少。
不同的VLAN中主机的数目是不同的,在建立数据表和索引表时,如果能考虑到实际情况,调整数据表和索引表的大小,将大大提高资源利用率,本发明实施例四提供了一种地址查找方法,能够实现上述目的,如图4所示,该地址查找方法包括:
步骤401、根据预置的局域网索引节点表容量建立局域网索引节点表;
本步骤中,交换机根据接收的待发送数据包携带的源VLAN ID,经过VLAN ID的哈希函数进行运算,建立局域网索引节点表;可以根据实际需要,即交换机连接的VLAN数目,调整所述局域网索引节点表的大小。
步骤402、为所述局域网索引节点表的每个局域网索引节点表表项建立对应的地址集索引节点表;
本步骤中,在所述局域网索引节点表的每一个表项下,根据该表项对应的VLAN中的MAC地址和MAC地址的哈希函数,建立一个二级索引节点表,即地址集索引节点表;该地址集索引节点表的大小可根据对应的VLAN中主机的数目进行调整设置。
步骤403、建立地址集;
本步骤中,在所述二级索引节点表的每一个表项下,根据该表项对应的至少一个MAC地址,建立地址集;每个MAC地址对应地址集中的一个地址项,地址项中存储有MAC地址和出接口信息。
所述地址集的大小也可以根据实际需要调整,地址集以顺序表的形式存储在数据表中,一个数据表中包含一个以上的地址集,且每个地址集在数据表中都占据一段连接的存储空间。
在完成上述步骤后,地址集、地址集索引节点表及局域网索引节点表都已建立完成,这时就可以根据所述地址集、地址集索引节点表及局域网索引节点表进行地址查找,本发明实施例中查找地址表的过程,与本发明实施例二中的步骤201至步骤210无异,不再赘述。
本发明实施例提供的地址查找方法,使用二级索引的模式,在接收到待发送数据包时获取该待发送数据包的目的VLAN ID和目的MAC地址,首先根据VLANID查找局域网索引节点表,获取对应的地址集索引节点表,再通过查询该地址集索引节点表获取地址集,从所述地址集中获取与所述目的MAC地址相匹配的地址项,完成地址查找。细化了地址查找粒度,通过二级索引结构减少了地址集中地址项的数目,节约了查找占用的资源,数据表以顺序表的形式存储MAC项,与链表形式相比,提高了地址查找效率。在创建索引表和数据区时,可以根据网络实际情况调整各级索引表及数据区中地址集的大小,使资源得到合理分配,系统灵活性强。
本发明的实施例还提供了一种交换机,该交换机的结构如图5所示,包括:
初始信息获取模块501,用于获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID,和媒体接入控制层MAC地址;
地址集索引节点表获取模块502,用于根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;
地址集获取模块503,用于根据所述MAC地址查找所述地址集索引节点表获取模块获取的地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;
地址项获取模块504,用于从所述地址集获取模块504获取的地址集中获取与所述MAC地址相匹配的地址项。
进一步地,上述地址集索引节点表获取模块502的结构如图6所示,包括:
映射单元5021,用于通过预置的VLAN ID或VSI ID映射规则对所述VLAN ID或VSI ID进行映射,得到映射结果;
查找单元5022,用于根据所述映射结果查找局域网索引节点表,所述局域网索引节点表中包含至少一个局域网索引节点表表项,每个索引节点表表项中存储有一个地址集索引节点表的地址;
局域网索引节点表表项获取单元5023,用于获取与所述映射结果对应的局域网索引节点表表项,所述局域网索引节点表表项中存储有对应的地址集索引节点表的地址;
地址集索引节点表地址获取单元5024,用于根据所述局域网索引节点表表项中存储的地址集索引节点表地址,获取与该VLAN ID对应的地址集索引节点表。
进一步地,上述地址集获取模块503的结构如图7所示,包括:
MAC地址映射规则获取单元5031,用于根据所述局域网索引节点表表项中存储的指向MAC地址处理规则的指针,获取所述MAC地址映射规则;
映射单元5032,用于根据所述MAC地址映射规则对所述MAC地址进行映射,根据映射结果查找所述地址集索引节点表,所述地址集索引节点表包含至少一个地址集索引节点表表项,每个地址集索引节点表表项中存储有指向一个地址集的指针;
地址集索引节点表表项获取单元5033,用于获取与所述MAC地址映射结果对应的地址集索引节点表表项;
地址集获取单元5034,用于根据所述地址集索引节点表表项存储的指向与所述MAC地址对应的地址集的指针获取所述地址集。
进一步地,上述地址项获取模块504的结构如图8所示,包括:
比较执行单元5041,用于比较所述地址集的各个地址项中存储的MAC地址与所述待发送数据包的MAC地址是否相同;
目标确定单元5042,用于获取存储的MAC地址与所述待发送数据包的MAC地址相同的地址项。
进一步地,上述交换机如图9所示,还包括:
局域网索引节点表建立模块505,用于在网络启动时,根据预置的局域网索引节点表容量建立局域网索引节点表,所述局域网索引节点表包含至少一个局域网索引节点表表项;
地址集索引节点表建立模块506,用于为所述局域网索引节点表的每个局域网索引节点表表项建立对应的地址集索引节点表,并根据网络情况设置所述地址集索引节点表的容量,所述地址集索引节点表包含至少一个地址集索引节点表表项;
地址集建立模块507,用于为所述地址集索引节点表的每个地址集索引节点表表项建立对应的地址集,并根据网络情况设置所述地址集的容量。
本发明的实施例还提供了一种网络系统,该网络系统包括至少一台上述交换机。
上述交换机和网络系统可以与本发明的实施例提供的一种地址查找方法相结合,具体流程参见本发明实施例二中的步骤201至步骤210。
本发明实施例提供的交换机和网络系统,可以与本发明的实施例提供的一种地址查找方法相结合,使用二级索引的模式,在接收到待发送数据包时获取该待发送数据包的VLAN ID或VSI ID,和MAC地址,首先根据VLAN ID或VSI ID查找局域网索引节点表,所述局域网索引节点表包括至少一个局域网索引节点表表项,所述局域网索引节点表表项中存储有地址集索引节点表的地址;获取与VLAN ID对应的地址集索引节点表,所述地址集索引表包括至少一个地址集索引节点表表项,所述地址集索引节点表表项中存储有指向地址集的指针;根据MAC地址查询查询该地址集索引节点表,获取相应的地址集,从所述地址集中获取与所述MAC地址相匹配的地址项,完成地址查找。细化了地址查找粒度,通过二级索引结构减少了地址集中地址项的数目,节约了查找占用的资源,提高了地址查找效率。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (13)

1、一种地址查找方法,其特征在于,包括:
获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID,和媒体接入控制层MAC地址;
根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;
根据所述MAC地址查找所述地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;
从所述地址集中获取与所述MAC地址相匹配的地址项。
2、根据权利要求1所述的地址查找方法,其特征在于,所述根据所述VLANID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表包括:
通过预置的VLAN ID或VSI ID映射规则对所述VLAN ID或VSI ID进行映射,得到映射结果;
根据所述映射结果查找局域网索引节点表,所述局域网索引节点表中包含至少一个局域网索引节点表表项,每个索引节点表表项中存储有一个地址集索引节点表的地址;
获取与所述映射结果对应的局域网索引节点表表项,所述局域网索引节点表表项中存储有对应的地址集索引节点表的地址;
根据所述局域网索引节点表表项中存储的地址集索引节点表地址,获取与该VLAN ID或VSI ID对应的地址集索引节点表。
3、根据权利要求1或2所述的地址查找方法,其特征在于,根据所述MAC地址查找所述地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集包括:
根据所述局域网索引节点表表项中存储的指向MAC地址处理规则的指针,获取所述MAC地址映射规则;
根据所述MAC地址映射规则对所述MAC地址进行映射,根据映射结果查找所述地址集索引节点表,所述地址集索引节点表包含至少一个地址集索引节点表表项,每个地址集索引节点表表项中存储有指向一个地址集的指针;
获取与所述MAC地址映射结果对应的地址集索引节点表表项;
根据所述地址集索引节点表表项存储的指向与所述MAC地址对应的地址集的指针获取所述地址集。
4、根据权利要求1所述的地址查找方法,其特征在于,所述地址集包含至少一个地址项,所述从所述地址集中获取与所述MAC地址相匹配的地址项为:
比较所述地址集的各个地址项中存储的MAC地址与所述待发送数据包的MAC地址是否相同;
获取存储的MAC地址与所述待发送数据包的MAC地址相同的地址项。
5、根据权利要求1所述的地址查找方法,其特征在于,还包括:
在网络启动时,根据预置的局域网索引节点表容量建立局域网索引节点表,所述局域网索引节点表包含至少一个局域网索引节点表表项;
为所述局域网索引节点表的每个局域网索引节点表表项建立对应的地址集索引节点表,并根据网络情况设置所述地址集索引节点表的容量,所述地址集索引节点表包含至少一个地址集索引节点表表项;
为所述地址集索引节点表的每个地址集索引节点表表项建立对应的地址集,并根据网络情况设置所述地址集的容量。
6、根据权利要求1所述的地址查找方法,其特征在于,还包括:
在网络发生变化时,更新地址集。
7、根据权利要求6所述的地址查找方法,其特征在于,所述在网络发生变化时,更新地址集包括:
如果所述地址集中存在与所述MAC地址相匹配的地址项,更新与所述MAC地址相匹配的地址项的老化标识;
如果所述地址集中不存在与所述MAC地址相匹配的地址项,在所述地址集中添加与所述MAC地址相匹配的地址项。
8、一种交换机,其特征在于,包括:
初始信息获取模块,用于获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID和媒体接入控制层MAC地址;
地址集索引节点表获取模块,用于根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;
地址集获取模块,用于根据所述MAC地址查找所述地址集索引节点表获取模块获取的地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;
地址项获取模块,用于从所述地址集获取模块获取的地址集中获取与所述MAC地址相匹配的地址项。
9、根据权利要求8所述的交换机,其特征在于,所述地址集索引节点表获取模块包括:
映射单元,用于通过预置的VLAN ID或VSI ID映射规则对所述VLAN ID或VSI ID进行映射,得到映射结果;
查找单元,用于根据所述映射结果查找局域网索引节点表,所述局域网索引节点表中包含至少一个局域网索引节点表表项,每个索引节点表表项中存储有一个地址集索引节点表的地址;
局域网索引节点表表项获取单元,用于获取与所述映射结果对应的局域网索引节点表表项,所述局域网索引节点表表项中存储有对应的地址集索引节点表的地址;
地址集索引节点表地址获取单元,用于根据所述局域网索引节点表表项中存储的地址集索引节点表地址,获取与该VLAN ID或VSI ID对应的地址集索引节点表。
10、根据权利要求8所述的交换机,其特征在于,所述地址集获取模块包括:
MAC地址映射规则获取单元,用于根据所述局域网索引节点表表项中存储的指向MAC地址处理规则的指针,获取所述MAC地址映射规则;
映射单元,用于根据所述MAC地址映射规则对所述MAC地址进行映射,根据映射结果查找所述地址集索引节点表,所述地址集索引节点表包含至少一个地址集索引节点表表项,每个地址集索引节点表表项中存储有指向一个地址集的指针;
地址集索引节点表表项获取单元,用于获取与所述MAC地址映射结果对应的地址集索引节点表表项;
地址集获取单元,用于根据所述地址集索引节点表表项存储的指向与所述MAC地址对应的地址集的指针获取所述地址集。
11、根据权利要求8所述的交换机,其特征在于,所述地址项获取模块包括:
比较执行单元,用于比较所述地址集的各个地址项中存储的MAC地址与所述待发送数据包的MAC地址是否相同;
目标确定单元,用于获取存储的MAC地址与所述待发送数据包的MAC地址相同的地址项。
12、根据权利要求8所述的交换机,其特征在于,还包括:
局域网索引节点表建立模块,用于在网络启动时,根据预置的局域网索引节点表容量建立局域网索引节点表,所述局域网索引节点表包含至少一个局域网索引节点表表项;
地址集索引节点表建立模块,用于为所述局域网索引节点表的每个局域网索引节点表表项建立对应的地址集索引节点表,并根据网络情况设置所述地址集索引节点表的容量,所述地址集索引节点表包含至少一个地址集索引节点表表项;
地址集建立模块,用于为所述地址集索引节点表的每个地址集索引节点表表项建立对应的地址集,并根据网络情况设置所述地址集的容量。
13、一种网络系统,其特征在于,包括权利要求8至权利要求12所述的交换机。
CN200910135763A 2009-04-28 2009-04-28 地址查找方法、交换机和网络系统 Pending CN101540730A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910135763A CN101540730A (zh) 2009-04-28 2009-04-28 地址查找方法、交换机和网络系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910135763A CN101540730A (zh) 2009-04-28 2009-04-28 地址查找方法、交换机和网络系统

Publications (1)

Publication Number Publication Date
CN101540730A true CN101540730A (zh) 2009-09-23

Family

ID=41123725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910135763A Pending CN101540730A (zh) 2009-04-28 2009-04-28 地址查找方法、交换机和网络系统

Country Status (1)

Country Link
CN (1) CN101540730A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883021A (zh) * 2010-05-14 2010-11-10 上海艾泰科技有限公司 交换网络中定位mac地址的方法
CN102104525A (zh) * 2011-03-16 2011-06-22 华为技术有限公司 媒体网关设备及转发数据帧的方法
CN102821052A (zh) * 2012-08-22 2012-12-12 迈普通信技术股份有限公司 虚拟专用局域网业务网络中查找转发信息的方法和装置
CN103391270A (zh) * 2012-05-07 2013-11-13 华为技术有限公司 一种数据处理的方法、设备及系统
CN103685081A (zh) * 2012-09-07 2014-03-26 深圳市腾讯计算机系统有限公司 转发以太网帧的方法及交换机
CN104135435A (zh) * 2013-04-30 2014-11-05 日立金属株式会社 网络中继装置
CN104158744A (zh) * 2014-07-09 2014-11-19 中国电子科技集团公司第三十二研究所 用于网络处理器的建表和查找方法
CN103391270B (zh) * 2012-05-07 2016-11-30 华为技术有限公司 一种数据处理的方法、设备及系统
CN108848202A (zh) * 2018-06-21 2018-11-20 Oppo(重庆)智能科技有限公司 电子装置、数据传输方法及相关产品
CN110399512A (zh) * 2019-07-25 2019-11-01 北京明略软件系统有限公司 一种图谱存储管理方法及装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883021B (zh) * 2010-05-14 2012-10-10 上海艾泰科技有限公司 交换网络中定位mac地址的方法
CN101883021A (zh) * 2010-05-14 2010-11-10 上海艾泰科技有限公司 交换网络中定位mac地址的方法
US9356833B2 (en) 2011-03-16 2016-05-31 Huawei Technologies Co., Ltd. Media gateway device and method for forwarding data frames
CN102104525A (zh) * 2011-03-16 2011-06-22 华为技术有限公司 媒体网关设备及转发数据帧的方法
CN102104525B (zh) * 2011-03-16 2013-04-24 华为技术有限公司 媒体网关设备及转发数据帧的方法
CN103391270B (zh) * 2012-05-07 2016-11-30 华为技术有限公司 一种数据处理的方法、设备及系统
WO2013166918A1 (zh) * 2012-05-07 2013-11-14 华为技术有限公司 一种数据处理的方法、设备及系统
CN103391270A (zh) * 2012-05-07 2013-11-13 华为技术有限公司 一种数据处理的方法、设备及系统
CN102821052A (zh) * 2012-08-22 2012-12-12 迈普通信技术股份有限公司 虚拟专用局域网业务网络中查找转发信息的方法和装置
CN102821052B (zh) * 2012-08-22 2015-06-03 迈普通信技术股份有限公司 虚拟专用局域网业务网络中查找转发信息的方法和装置
CN103685081A (zh) * 2012-09-07 2014-03-26 深圳市腾讯计算机系统有限公司 转发以太网帧的方法及交换机
CN103685081B (zh) * 2012-09-07 2017-11-28 深圳市腾讯计算机系统有限公司 转发以太网帧的方法及交换机
CN104135435B (zh) * 2013-04-30 2018-05-18 日立金属株式会社 网络中继装置
CN104135435A (zh) * 2013-04-30 2014-11-05 日立金属株式会社 网络中继装置
CN104158744B (zh) * 2014-07-09 2017-07-11 中国电子科技集团公司第三十二研究所 用于网络处理器的建表和查找方法
CN104158744A (zh) * 2014-07-09 2014-11-19 中国电子科技集团公司第三十二研究所 用于网络处理器的建表和查找方法
CN108848202A (zh) * 2018-06-21 2018-11-20 Oppo(重庆)智能科技有限公司 电子装置、数据传输方法及相关产品
CN108848202B (zh) * 2018-06-21 2021-05-04 Oppo(重庆)智能科技有限公司 电子装置、数据传输方法及相关产品
CN110399512A (zh) * 2019-07-25 2019-11-01 北京明略软件系统有限公司 一种图谱存储管理方法及装置

Similar Documents

Publication Publication Date Title
CN101540730A (zh) 地址查找方法、交换机和网络系统
CN102124703B (zh) 以太网网桥的交换表
US12032550B2 (en) Multi-tenant partitioning in a time-series database
US9871727B2 (en) Routing lookup method and device and method for constructing B-tree structure
US20070171911A1 (en) Routing system and method for managing rule entry thereof
US20130003549A1 (en) Resilient Hashing for Load Balancing of Traffic Flows
CN100490418C (zh) 一种基于虚拟局域网的数据交换方法及设备
RU2008152224A (ru) Способ конфигурирования точки доступа и управления точкой доступа и контроллер доступа
JP2016502370A (ja) フローテーブルをマッチングするための方法及び装置、並びにスイッチ
CN101594319A (zh) 表项查找方法和装置
CN105072030A (zh) 一种基于内容聚类的命名数据网络路由系统及其聚类查询方法
CN102857414A (zh) 一种转发表写入、报文转发方法及装置
US20160306741A1 (en) Data Migration Method and Apparatus, and Processor
CN101005461A (zh) 一种IPv6路由表查找、转发的方法
CN101753458A (zh) 一种nd邻居表项的处理方法及装置
CN100396015C (zh) 一种tcam路由表管理方法和系统
CN103441932A (zh) 一种主机路由表项生成方法及设备
CN104079478A (zh) 报文转发方法和装置
CN106789859B (zh) 报文匹配方法及装置
CN109921995A (zh) 一种配置地址表的方法、fpga和应用该fpga的网络设备
US9485179B2 (en) Apparatus and method for scalable and flexible table search in a network switch
US10810269B2 (en) Method and system for second-degree friend query
EP2736201B1 (en) Routing table management method and system
US8050681B2 (en) System and method for controlling connections between a wireless router and unlicensed mobile access capable mobile phones
CN101840417A (zh) 一种基于相关关系的物联网uid查询方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090923