地址查找方法、交换机和网络系统的制作方法

文档序号:7707302阅读:97来源:国知局
专利名称:地址查找方法、交换机和网络系统的制作方法
技术领域
本发明涉及数据转发领域,尤其涉及一种二层网络上的地址查找方法、交 换机和网络系统。
背景技术
在以太网的二层转发层面,交换机根据MAC ( Media Access Control, j泉体 接入控制)地址转发待发送数据包,每一个待发送数据包都携带源MAC地址和 目的MAC地址。在转发层面,交换机通过源MAC地址的学习生成MAC表,MAC表 中的表项带有MAC地址对应的出接口信息。交换机转发待发送数据包时,通过 待发送数据包携带的目的MAC地址和目的VLAN ID (Virtual Area Network IDentity,虛拟局域网标识)查询所述MAC表,获得出接口信息。
在查询MAC表的过程中,为提高查找效率和节省内存,大多釆用hash算法, 将VLAN ID和MAC地址作为关键字,根据VLAN ID和MAC地址生成哈希表,将 哈希表的各索引值和MAC表的各MAC项建立对应关系。查询时,先对VLAN ID 和目的MAC地址进行哈希运算生成索引值,再根据哈希表中该索引值与MAC项 的对应关系,获取MAC表中对应的MAC项。
在实现上述通过哈希表查询MAC表的过程中,发明人发现现有技术中至少 存在如下问题
在使用VL緒ID和MAC地址作为关键字进行哈希运算时,由于VLAN ID和 MAC地址的范围相当广泛,因此会产生不同的VLAN ID和MAC地址生成相同索引 值的情况,也就是说,哈希表中的一个索引值对应MAC表中的多个MAC项,这 时,就要对相同索引值的全部MAC项再进行一轮比对以得到目标MAC项。当同一索引值对应的MAC项数量较多时,查找所消耗的网络资源也较多,影响了查 找MAC地址的效率,进而影响了数据转发效率。

发明内容
本发明的实施例提供了一种地址查找方法、交换机和网络系统,提高了查 找MAC地址的效率。
本发明的实施例提供了一种地址查找方法,包括
获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID, 和i某体接入控制层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地址相匹配的地i址项。
本发明的实施例还提供了 一种网络系统,包括上述交换机。 本发明的实施例提供的地址查找方法、交换机和网络系统,使用二级索引
的模式,在接收到待发送数据包时获取该待发送数据包的VLAN ID或VSI ID, 和MAC地址,首先根据VL緒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、根据所述VL緒ID或VSI ID查找局域网索引节点表,从所述局 域网索引节点表中获取与所述VLAN ID或VS1 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地址和VLAN ID进行哈希运算,得到索引值,根据该索引值在哈希表中 进行查找,根据哈希表中的索引值与MAC表中的MAC项的对应关系,获取与该 索引值对应的MAC项。当有多个MAC项与同一索引值对应时,将这些MAC项作 为一个集合,称作冲突域。冲突域中的各个MAC项以线性链表的形式存储,依 次对比各个MAC项中的VLAN ID和MAC地址与该4寺发送凄t据包携带的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地址进4亍处理;
本步骤中,所述MAC地址处理规则即为MAC地址的p合希函数,才艮据步骤203 获取的指向该MAC地址的哈希函数的指针获取所述哈希函数,并根据所述哈希 函数对目的MAC地址进行运算,生成地址集索引节点表索引值。
步骤206、查找所述地址集索引节点表,获耳又与所述目的MAC地址对应的地 址集索引节点表表项;
本步骤中,根据步骤205生成的地址集索引节点表索引值查找所述地址集 索引节点表,获取对应的地址集索引节点表表项,在该表项中存储有指向与所 述目的MAC地址对应的地址集的指针,通过该指针,可以查找到所述地址集。
本领域技术人员显然知道,上述方法只是查找手段之一,还有其他方式可 以实现上述查找过程,如在地址集索引节点表表项中存储地址集的首地址,本 发明对此不作限定。步骤207、获耳又与所述目的MAC地址对应的地址集;
本步骤中,才艮据步骤2 06获取的指向与所述目的MAC地址对应的地址集的 指针,获取所述地址集,所述地址集即为一个沖突域,该地址集中包含全部经 过MAC地址的哈希函数运算后得到相同结果的地址项,本发明实施例中的地址 项可以是MAC项。
所述地址集以顺序表的形式存储,多个地址集构成数据表。
步骤2 0 8 、在所述地址集中查找目标地址项;
本步骤中,在所述地址集中,根据待发送数据包携带的目标MAC地址,查 找目标地址项,具体为按顺序对比该地址集中各个地址项中的MAC地址与所述 目标MAC地址是否相同,如果相同,则确认该地址项为目标地址项。
步骤209、获取接口信息,转发待发送数据包;
本步骤中,交换机根据步骤208的查找结果,获取目标地址项中存储的接 口信息,将待发送数据包转发出去。
步骤210、更新目标地址项的老化标识;
数据表中的每一个地址项都带有lbit位的老化标识,当该老化标识的值为 1时,认为该地址项已老化;当该老化标识的值为0时,认为该地址项未老化。
在系统启动时,数据表中的全部地址项的值均为1,当地址项作为目标地址 项一皮查找到时,更新该目标地址项的老化标识,将老化标识的值-没为0。
本发明实施例提供的地址查找方法,使用二级索引的模式,在接收到待发 送数据包时获取该待发送数据包的目的VLAN ID和目的MAC地址,首先根据VLAN ID查找局域网索引节点表,获取对应的地址集索引节点表,再通过查询该地址 集索引节点表获取地址集,从所述地址集中获取与所述目的MAC地址相匹配的 地址项,完成地址查找。细化了地址查找粒度,通过二级索引结构减少了地址集中地址项的数目,节约了查找占用的资源,提高了地址查找效率。
在交换机工作的过程中,需要定期的对数据表进行更新,将新的地址项加 入到数据表中,以确保命中率高(即经常被待发送数据包作为目标终端)的地 址项保留在数据表中,而命中率过低的地址项删除,将数据表的容量维持在一 定范围之内,提高查找效率。本发明实施例三提供了一种地址查找方法,能够 达到上述目的,下面结合附图对该地址查找方法进行详细介绍。
如图3所示,本发明实施例中,需要根据待发送数据包的源VLAN ID和源 MAC地址完成更新,首先需要根据源VLAN ID查找局域网索引节点表,再根据 源MAC地址查找相应的地址集索引节点表,其中,步骤301至步骤308为查找 过程,与本发明实施例二中的步骤201至步骤208无异,不再赘述。
步骤309、判断所述地址集中是否存在与所述源MAC地址匹配的地址项; 步骤310、如果存在与所述源MAC地址匹配的地址项,更新该地址项的老化 标识;
根据步骤309的判断结果,如果存在与所述源MAC地址匹配的地址项,则 更新该地址项的老化标识,具体为将所述地址项的老化标识置为0,说明其他主 机与该源MAC地址对应的主机间仍有lt据包在传输,该源MAC地址的命中率较高。
步骤311、如果不存在与所述源MAC地址匹配的地址项,向数据表中加入新 的地址项;
交换机在以太网二层转发层面的另 一个重要工作内容就是地址项的学习, 即不断的将数据表中不包含但实际上与其他终端有数据交换的MAC地址加入到 数据表中。
根据步骤309的判断结果,如果不存在与所述源MAC地址匹配的地址项,则在该地址集中根据所述源MAC地址添加新的地址项,表示该源MAC地址对应 的主机开始与其他主机进行数据传输。 步骤312、定时扫描数据表中的表项;
本步骤中,按照网络维护人员对交换机的配置,定时启动对数据表的扫描, 由于数据表为顺序表,故按顺序对数据表中的各地址项逐项扫描,检查各个地 址项的老化标识值。
步骤313、根据所述步骤312的扫描结果删除已老化的表项,老化未老化的 表项;
本步骤中,将老化标识值为1的地址项删除,该地址项所在的地址集中序 号在该地址项之后的其后地址项均前移 一位。
同时,将老化标识值为Q的地址项老化,具体为将该地址项的老化标识值 置为1。
数据表中的地址项被命中后,该地址项的老化标识会被置为0,这就保证了 命中率高的地址项的老化标识在老化过程结束后又会马上被置为0,防止该项被删除。
命中率低的地址项不断被删除,就能够保证命中率高的地址项在数据表中 的位置比较靠前,也提高了地址查找的效率。
需要说明的是,对于步骤312和步骤313所述的更新地址表过程与步骤309 至步骤311所述的加入新地址项的过程,并无时序上的要求,这两个过程可以 同时发生,也可以只发生任意一个,本发明对此不作限定。
本步骤中,交换机启动学习流程,在接收到待发送数据包后,根据该待发 送数据包来源的VL緒ID和源MAC地址进行索引,对该待发送数据包来源的VLAN ID进行哈希运算,根据运算结果查找局域网索引节点表,获取地址集索引节点表;再对该待发送数据包的源MAC地址进行哈希运算,根据运算结果查找所述
地址集索引节点表,获取地址集。在地址集中进行查找,如果包含该待发送数
据包来源的VLAN ID和源MAC地址的地址项巳存在,说明该MAC地址仍有数据 发出,则更新该地址项的老化标识为0;如果包含该待发送数据包来源的VLAN ID 和源MAC地址的地址项不存在,创建相应的地址项,将该地址项加入到所述地 址集的末尾,且如果地址集已满,用新创建的地址项替代最近命中率最低的地 址项。
步骤314、对一个VLAN下的全部地址项进行老化;
可选的,可以对一个VLAN下的全部MAC项进4亍批量老化。本发明实施例中 的数据表为顺序表,各个地址集占用内存中的一段连续的地址空间,当需要对 一个VLAN下的全部地址项进行老化时,实际上只需要对VLAN ID进行哈希运算, 根据运算结果查询局域网索引节点表,获取地址集索引节点表,将所述地址集 索引节点表中的每个表项对应的地址集进行整体老化。
本发明实施例提供的地址查找方法,使用二级索引的模式,在接收到待发 送数据包时获取该待发送数据包的源VLAN ID和源MAC地址,首先根据VLAN ID 查找局域网索引节点表,获取对应的地址集索引节点表,再通过查询该地址集 索引节点表获取地址集,从所述地址集中获取与所述源MAC地址相匹配的地址 项,完成地址查找;在所述地址集中不存在与所述源MAC地址相匹配的地址项 时,才艮据所述源MAC地址在该地址集中加入新的地址项。及时更新凄t据表,确 保数据表中存储的地址项绝大部分为高命中率的地址项,进一步提高了查找效 率;同一 VLAN内的地址项处在一个连续的内存区域中,^更于基于VLAN的老化, 操作简单,占用资源较少。
不同的VLAN中主机的数目是不同的,在建立数据表和索引表时,如果能考虑到实际情况,调整数据表和索引表的大小,将大大提高资源利用率,本发明 实施例四提供了一种地址查找方法,能够实现上述目的,如图4所示,该地址
查找方法包纟舌
步骤401、根据预置的局域网索引节点表容量建立局域网索引节点表;
本步骤中,交换机根据接收的待发送数据包携带的源VLAN ID,经过VLAN ID 的哈希函数进行运算,建立局域网索引节点表;可以根据实际需要,即交换机 连接的VLAN数目,调整所述局域网索引节点表的大小。
步骤402、为所述局域网索引节点表的每个局域网索引节点表表项建立对应 的地址集索引节点表;
本步骤中,在所述局域网索引节点表的每一个表项下,根据该表项对应的 VLAN中的MAC地址和MAC地址的哈希函数,建立一个二级索引节点表,即地址 集索引节点表;该地址集索引节点表的大小可根据对应的VLAN中主机的数目进 行调整设置。
步骤403、建立地址集;
本步骤中,在所述二级索引节点表的每一个表项下,根据该表项对应的至 少一个MAC地址,建立地址集;每个MAC地址对应i也址集中的一个地址项,地 址项中存储有MAC地址和出接口信息。
所述地址集的大小也可以根据实际需要调整,地址集以顺序表的形式存储 在数据表中, 一个数据表中包含一个以上的地址集,且每个地址集在数据表中 都占据一段连接的存储空间。
在完成上述步骤后,地址集、地址集索引节点表及局域网索引节点表都已 建立完成,这时就可以根据所述地址集、地址集索引节点表及局域网索引节点 表进行地址查找,本发明实施例中查找地址表的过程,与本发明实施例二中的步骤201至步骤210无异,不再赘述。
本发明实施例提供的地址查找方法,使用二级索引的模式,在接收到待发
送数据包时获取该待发送数据包的目的VLAN ID和目的MAC地址,首先根据VLAN ID查找局域网索引节点表,获取对应的地址集索引节点表,再通过查询该地址 集索引节点表获取地址集,从所述地址集中获取与所述目的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
19或VSI ID进行映射,得到映射结果;
查找单元5022,用于根据所述映射结果查找局域网索引节点表,所述局域 网索引节点表中包含至少一个局域网索引节点表表项,每个索引节点表表项中 存储有一个地址集索引节点表的地址;
局域网索引节点表表项获取单元5023,用于获取与所述映射结果对应的局 域网索引节点表表项,所述局域网索引节点表表项中存储有对应的地址集索引 节点表的地址;
地址集索引节点表地址获取单元5024,用于根据所述局域网索引节点表表 项中存储的地址集索引节点表地址,获取与该VLAN ID对应的地址集索引节点表。
进一步地,上述地址集荻取模块503的结构如图7所示,包括 MAC地址映射规则获取单元5031 ,用于根据所述局域网索引节点表表项中 存储的指向MAC地址处理规则的指针,获取所述MAC地址映射规则;
根据映射结果查找所述地址集索引节点表,所述地址集索引节点表包含至少一 个地址集索引节点表表项,每个地址集索引节点表表项中存储有指向一个地址 集的指针;
地址集索引节点表表项获取单元5033,用于获取与所述MAC地址映射结果 对应的地址集索引节点表表项;
地址集获取单元5034,用于根据所述地址集索引节点表表项存储的指向与 所述MAC地址对应的地址集的指针获耳又所述地址集。
进一步地,上述地址项获取模块504的结构如图8所示,包括
比较执行单元5041,用于比较所述地址集的各个地址项中存储的MAC地址与所述待发送数据包的MAC地址是否相同;
目标确定单元5042,用于获取存储的MAC地址与所述4寺发送lt据包的MAC
地址相同的:t也址项。
进一步地,上述交换机如图9所示,还包括
局域网索引节点表建立模块505,用于在网络启动时,根据预置的局域网索 引节点表容量建立局域网索引节点表,所述局域网索引节点表包含至少一个局 域网索引节点表表项;
地址集索引节点表建立模块506,用于为所述局域网索引节点表的每个局域 网索引节点表表项建立对应的地址集索引节点表,并根据网络情况设置所述地 址集索引节点表的容量,所述地址集索引节点表包含至少一个地址集索引节点
表表项;
地址集建立模块507,用于为所述地址集索引节点表的每个地址集索引节点 表表项建立对应的地址集,并根据网络情况设置所述地址集的容量。
本发明的实施例还提供了 一种网络系统,该网络系统包括至少 一 台上述交换机。
上述交换机和网络系统可以与本发明的实施例提供的一种地址查找方法相 结合,具体流程参见本发明实施例二中的步骤201至步骤210。
本发明实施例提供的交换机和网络系统,可以与本发明的实施例提供的一 种地址查找方法相结合,使用二级索引的模式,在接收到待发送数据包时获取 该待发送数据包的VLAN ID或VSI ID,和MAC地址,首先冲艮据VLAN ID或VSI ID 查找局域网索引节点表,所述局域网索引节点表包括至少 一个局域网索引节点 表表项,所述局域网索引节点表表项中存储有地址集索引节点表的地址;获取 与VLAN ID对应的地址集索引节点表,所述地址集索引表包括至少一个地址集
21索引节点表表项,所述地址集索引节点表表项中存储有指向地址集的指针;根
据MAC地址查询查询该地址集索引节点表,获取相应的地址集,从所述地址集 中获取与所述MAC地址相匹配的地址项,完成地址查找。细化了地址查找粒度, 通过二级索引结构减少了地址集中地址项的数目,节约了查找占用的资源,提 高了地址查找效率。
是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可 读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块 中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品 销售或使用时,也可以存储在一个计算机可读取存储介质中。 上述提到的存储介质可以是只读存储器,磁盘或光盘等。 以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 所述以权利要求的保护范围为准。
权利要求
1、一种地址查找方法,其特征在于,包括获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID,和媒体接入控制层MAC地址;根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;根据所述MAC地址查找所述地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;从所述地址集中获取与所述MAC地址相匹配的地址项。
2、 根据权利要求1所述的地址查找方法,其特征在于,所述根据所述VLAN ID或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地址对应的地址集 的指针获取所述地址集。
4、 根据权利要求1所述的地址查找方法,其特征在于,所述地址集包含至 少 一个地址项,所述从所述地址集中获取与所述MAC地址相匹配的地址项为地址是否相同;获取存储的MAC地址与所述待发送数据包的MAC地址相同的地址项。
5、 根据权利要求1所述的地址查找方法,其特征在于,还包括在网络启动时,根据预置的局域网索引节点表容量建立局域网索引节点 表,所述局域网索引节点表包含至少一个局域网索引节点表表项;为所述局域网索引节点表的每个局域网索引节点表表项建立对应的地址集 索引节点表,并根据网络情况设置所述地址集索引节点表的容量,所述地址集 索引节点表包含至少一个地址集索引节点表表项;为所述地址集索引节点表的每个地址集索引节点表表项建立对应的地址 集,并根据网络情况设置所述地址集的容量。
6、 根据权利要求1所述的地址查找方法,其特征在于,还包括 在网络发生变化时,更新地址集。
7、 根据权利要求6所述的地址查找方法,其特征在于,所述在网络发生变 化时,更新地址集包括如果所述地址集中存在与所述MAC地址相匹配的地址项,更新与所述MAC 地址相匹配的地址项的老化标识;如果所述地址集中不存在与所述MAC地址相匹配的地址项,在所述地址集 中添加与所述MAC地址相匹配的地址项。
8、 一种交换机,其特征在于,包括初始信息获取模块,用于获取待发送数据包的虚拟局域网标识VLAN ID或 虛拟安全接口标识VSI ID和纟某体接入控制层MAC地址;地址集索引节点表获取模块,用于根据所述VUN ID或VSI ID查找局域网 索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的 地址集索引节点表;地址集获取模块,用于根据所述MAC地址查找所述地址集索引节点表获取 模块获取的地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址 对应的地址集;地址项获取模块,用于从所述地址集获取模块获取的地址集中获取与所述 MAC地址相匹配的地址项。
9、 根据权利要求8所述的交换机,其特征在于,所述地址集索引节点表获 取模块包括映射单元,用于通过预置的VL緒ID或VSI ID映射力见则对所述VLAN ID或 VSI ID进行映射,得到映射结果;查找单元,用于根据所述映射结果查找局域网索引节点表,所述局域网索 引节点表中包含至少 一个局域网索引节点表表项,每个索引节点表表项中存储有一个地址集索引节点表的地址;局域网索引节点表表项获取单元,用于获取与所述映射结果对应的局域网 索引节点表表项,所述局域网索引节点表表项中存储有对应的地址集索引节点 表的地址;地址集索引节点表地址获取单元,用于根据所述局域网索引节点表表项中 存储的地址集索引节点表地址,获取与该VLAN ID或VSI ID对应的地址集索引 节点表。
10、 根据权利要求8所述的交换机,其特征在于,所述地址集获取模块包括MAC地址映射规则获取单元,用于根据所述局域网索引节点表表项中存储的 指向MAC地址处理规则的指针,获取所述MAC地址映射规则;据映射结果查找所述地址集索引节点表,所述地址集索引节点表包含至少一个 地址集索引节点表表项,每个地址集索引节点表表项中存储有指向一个地址集 的指针;地址集索引节点表表项获取单元,用于获取与所述MAC地址映射结果对应 的地址集索引节点表表项;地址集获取单元,用于根据所述地址集索引节点表表项存储的指向与所述 MAC地址对应的地址集的指针获:f又所述地址集。
11、 根据权利要求8所述的交换机,其特征在于,所述地址项获取模块包括..比较执行单元,用于比较所述地址集的各个地址项中存储的MAC地址与所 述待发送数据包的MAC地址是否相同;目标确定单元,用于获取存储的MAC地址与所述待发送数据包的MAC地址 相同的地址项。
12、 根据权利要求8所述的交换机,其特征在于,还包括 局域网索引节点表建立模块,用于在网络启动时,根据预置的局域网索引节点表容量建立局域网索引节点表,所述局域网索引节点表包含至少一个局域 网索引节点表表项;地址集索引节点表建立模块,用于为所述局域网索引节点表的每个局域网 索引节点表表项建立对应的地址集索引节点表,并根据网络情况设置所述地址 集索引节点表的容量,所述地址集索引节点表包含至少一个地址集索引节点表 表项;地址集建立模块,用于为所述地址集索引节点表的每个地址集索引节点表 表项建立对应的地址集,并根据网络情况设置所述地址集的容量。
13、 一种网络系统,其特征在于,包括权利要求8至权利要求12所述的交 换机。
全文摘要
本发明的实施例公开了一种地址查找方法、交换机和网络系统。涉及数据转发领域;解决了地址查找效率低的问题。所述地址查找方法包括获取待发送数据包的虚拟局域网标识VLAN ID或虚拟安全接口标识VSI ID和媒体接入控制层MAC地址;根据所述VLAN ID或VSI ID查找局域网索引节点表,从所述局域网索引节点表中获取与所述VLAN ID或VSI ID对应的地址集索引节点表;根据所述MAC地址查找所述地址集索引节点表,从所述地址集索引节点表中获取与该MAC地址对应的地址集;从所述地址集中获取与所述MAC地址相匹配的地址项。本发明提供的技术方案适用于数据转发,尤其适用于以太网二层的数据转发。
文档编号H04L29/12GK101540730SQ20091013576
公开日2009年9月23日 申请日期2009年4月28日 优先权日2009年4月28日
发明者方 邱 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1