多路并行的MAC地址学习和地址查找的装置及方法制造方法及图纸

技术编号:13426144 阅读:27 留言:0更新日期:2016-07-29 14:08
本发明专利技术公开了一种多路并行的MAC地址学习和地址查找装置及方法。其装置包括:接收调度模块、多路并行的查找表模块、学习结果轮询模块、同步更新表缓存器、更新模块、老化删除模块和地址选择模块;接收调度模块按顺序为数据分组添加时间标识,然后将分组发往多路并行的查找表模块,该模块并行的进行地址学习和地址查找,学习结果轮询模块依次接收各路学习结果,并将学习结果发给同步更新表缓存器,更新模块读取同步更新表项,并同时更新多路地址表,当更新模块不更新地址表时,地址选择模块选择连接老化删除模块,老化删除模块将老化的地址表清除掉。本发明专利技术提高了交换机的交换容量和工作效率,适用于高速大容量交换网络。

【技术实现步骤摘要】
多路并行的MAC地址学习和地址查找的装置及方法
本专利技术属于通信
,特别涉及一种MAC地址学习和地址查找装置及方法,可应用于高速大容量以太网交换网络。
技术介绍
随着通信技术的日益发展和广泛应用,人们对数据传输速率的要求越来越高。交换机作为重要的网络设备,其性能直接影响着所在网络的网络速度。以太网技术简单易用,价格低廉,且带宽可不断提高,无论是作为一种业务还是作为一种网络结构,都得到了大规模的应用。以太网技术主要研究内容包括物理层和MAC子层。MAC地址的学习和查找功能是开发网桥、交换机等网络互连设备,延伸以太网传输范围的基础,在以太网接入中起到了至关重要的作用。另外,对于不同的以太网传输媒介,MAC子层不需要改动或者只需很小的改动。因此,开发以太网MAC子层的功能具有重要的意义。传统以太网MAC地址学习和查找的工作流程如下:(1)当交换机从某个以太网端口收到以太网数据帧时,先读取帧头中的源MAC地址,将源MAC地址和对应的端口存放在地址表中,这个过程叫做学习。通过学习,交换机就知道源MAC地址设备所对应的端口;(2)读取帧头中的目的MAC地址,并在地址表中查找相应的端口;(3)如果地址表中存在与目的MAC地址对应的端口,直接将数据帧转发至该端口;(4)如果地址表中找不到相应的端口,则把数据帧广播到所有端口上,当目的设备对源设备回应时,交换机就可以学习到目的MAC地址对应的端口,在下次传送数据时不再需要对所有端口进行广播。不断的循环上述四个步骤,对于全网的MAC地址信息都可以学习到。MAC地址-端口地址表中记录了端口和MAC地址的映射关系,地址表是交换机上电后自动建立的,保存在地址表存取器中,并且自动维护更新。地址表项是有生命期的,每个表项在建立后开始进行倒记时,每次发送数据都要刷新记时,对于长期不发送数据的主机,其MAC地址的表项在生命期结束时被删除,所以地址表记录的总是当前活动的主机的MAC地址。虽然传统MAC地址学习查找方法已被广泛应用于网络交换领域,但其也存在着以下不足:1)MAC地址在学习过程中,需要查找地址表确定此地址是否已经学习过,而传统交换机使用MAC地址先学习后查找的策略,这种串行的工作流程不但限制了MAC地址的查找速度,也限制了交换机的工作效率。2)随着10G、40G和100G以太网标准的推出,大容量高速率以太网交换技术成为研究热点,而传统以太网交换采用的单路MAC地址学习和MAC地址查找方式极大的限制了大容量高速以太网交换技术的发展。
技术实现思路
本专利技术目的在于针对上述已有技术的不足,提供一种多路并行的MAC地址学习和地址查找装置和方法,以增大交换容量,提高交换机的处理速度和交换效率。本专利技术在FPGA上并行处理多路数据分组,其实现装置包括:接收调度模块:用于接收并缓存数据分组,同时按照分组到达顺序,为每个分组打上时间标识,并轮询多路并行的查找表模块的工作状态,将数据分组发给空闲路的查找表模块;多路并行的查找表模块:用于根据MAC地址进行地址学习和地址查找,将学习结果发给学习结果轮询模块,并根据查找结果转发数据分组;学习结果轮询模块:用于轮询多路并行的查找表模块的学习结果,并将每一路查找表模块的学习结果按照同步更新表项格式依次写入同步更新表缓存器中;同步更新表缓存器:用于缓存同步更新表项,该同步更新表缓存器分别与学习结果轮询模块和更新模块连接;更新模块:用于根据同步更新表项内容同时更新多路并行的查找表模块的地址表,当同步更新表缓存器不为空时,读取同步更新表缓存器中的同步更新表项,从同步更新表项中获取要更新的表项地址和地址表,并同时查询多路并行的查找表模块正在读取的表项地址,判断这两个地址是否为同一地址:如果是同一地址,则在下一周期,重新提取多路并行的查找表模块正在读取的表项地址,再次判断更新地址与当前周期的查找地址是否一样,反之,则将地址表同时传入多路并行的查找表模块;老化删除模块:用于将长时间不用的地址表从多路并行的查找表模块中清除掉,以释放地址表存取器的空间;地址选择模块:用于控制老化删除模块和更新模块与多路并行的查找表模块的连接关系,即判断更新模块是否正在更新多路并行地址表:如果正在更新,则选择更新模块与多路并行的查找表模块连接,反之,选择老化删除模块与多路并行的查找表模块连接。根据上述装置,其特征在于多路并行的查找表模块,其每一路包括:MAC地址学习查找模块、MAC地址查找模块和地址表存取器。所述MAC地址学习查找模块:用于读取接收调度模块发来的源MAC地址和地址表存取器中存放的地址表,并根据源MAC地址进行地址学习,将学习结果发给学习结果轮询模块;所述MAC地址查找模块:用于读取接收调度模块发来的目的MAC地址和地址表存取器中存放的地址表,并根据目的MAC地址进行地址查找:如果在地址表中查到输出端口,则只向该端口转发数据分组,如果查不到输出端口,则向除源端口以外的所有端口广播数据分组;所述地址表存取器:用于存放地址表,每路查找表模块包含两块地址表存取器,一块地址表存取器分别与MAC地址学习查找模块和地址选择模块连接,另一块地址表存取器分别与MAC地址查找模块和地址选择模块连接。利用上述装置进行多路并行的MAC地址学习和地址查找方法,包括如下步骤:1)接收调度模块收到分组后,按顺序为每个分组打上时间标识,然后提取分组特征信息,并轮询多路并行的MAC地址学习查找模块和MAC地址查找模块的工作状态,将分组特征信息、时间标识和分组同时发给空闲路的MAC地址学习查找模块和MAC地址查找模块;2)空闲路的MAC地址学习查找模块提取分组的源MAC地址,并根据源MAC地址和输入端口值进行地址学习,执行步骤3a);同时MAC地址查找模块提取目的MAC地址,根据目的MAC地址进行查找,执行步骤3b);3)MAC地址学习和MAC地址查找并行执行:3a)根据源MAC地址得出对应的地址表存取器地址,由该地址表存取器地址读取地址表,从地址表中获取源MAC地址对应的端口值和表项有效标志位:如果表项有效,则执行步骤4),反之,执行步骤5);3b)根据目的MAC地址得出对应的地址表存取器地址,由该地址表存取器地址读取地址表项,从地址表项中获取目的MAC地址对应的端口值和表项有效标志位:如果表项有效,则根据查找结果向该端口转发数据分组,反之,则向除源端口以外的所有端口广播数据分组;4)比较输入端口值和表项获取的端口值,如果相等,即只需要同时刷新多路地址表的老化时间,则执行步骤5),反之,即说明学习表项空间已满,则丢弃数据分组并向网络管理中心告警;5)按照同步更新表项格式,将同步更新表项送入学习结果轮询模块,学习结果轮询模块依次轮询多路MAC地址学习查找模块送出的学习结果:当同步更新表缓存器存储状态不为满时,则将学习结果按照同步更新表项格式写入同步更新表缓存器;当同步更新表缓存器存储状态不为空时,更新模块读取同步更新表缓存器中的同步更新表项,从同步更新表项中提取出要更新的地址表存取器地址和地址表,执行步骤6);6)更新模块同时获取多路MAC地址学习查找模块和MAC地址查找模块正在读取的地址表存取器地址,判断要更新的地址表存取器地址是否与多路MAC地址学习和查找的地址表存取器地址为同一地址:如果本文档来自技高网
...

【技术保护点】
多路并行的MAC地址学习和地址查找装置,包括:接收调度模块(1):用于接收并缓存数据分组,同时按照分组到达顺序,为每个分组打上时间标识,并轮询多路并行的查找表模块(2)的工作状态,将数据分组发给空闲路的查找表模块(2);多路并行的查找表模块(2):用于根据MAC地址进行地址学习和地址查找,将学习结果发给学习结果轮询模块(3),并根据查找结果转发数据分组;学习结果轮询模块(3):用于轮询多路并行的查找表模块(2)的学习结果,并将每一路查找表模块的学习结果按照同步更新表项格式依次写入同步更新表缓存器(4)中;同步更新表缓存器(4):用于缓存同步更新表项,该同步更新表缓存器分别与学习结果轮询模块(3)和更新模块(5)连接;更新模块(5):用于根据同步更新表项内容同时更新多路并行的查找表模块(2)的地址表,当同步更新表缓存器不为空时,读取同步更新表缓存器(4)中的同步更新表项,从同步更新表项中获取要更新的表项地址和地址表,并同时查询多路并行的查找表模块(2)正在读取的表项地址,判断这两个地址是否为同一地址:如果是同一地址,则在下一周期,重新提取多路并行的查找表模块(2)正在读取的表项地址,再次判断更新地址与当前周期的查找地址是否一样,反之,则将地址表同时传入多路并行的查找表模块(2);老化删除模块(6):用于将长时间不用的地址表从多路并行的查找表模块(2)中清除掉,以释放地址表存取器(23)的空间;地址选择模块(7):用于控制老化删除模块(6)和更新模块(5)与多路并行的查找表模块(2)的连接关系,即判断更新模块(5)是否正在更新多路并行的地址表:如果正在更新,则选择更新模块(5)与多路并行的查找表模块(2)连接,反之,选择老化删除模块(6)与多路并行的查找表模块(2)连接。...

【技术特征摘要】
1.多路并行的MAC地址学习和地址查找装置,包括:接收调度模块(1):用于接收并缓存数据分组,同时按照分组到达顺序,为每个分组打上时间标识,并轮询多路并行的查找表模块(2)的工作状态,将数据分组发给空闲路的查找表模块(2);多路并行的查找表模块(2):用于根据MAC地址进行地址学习和地址查找,将学习结果发给学习结果轮询模块(3),并根据查找结果转发数据分组;学习结果轮询模块(3):用于轮询多路并行的查找表模块(2)的学习结果,并将每一路查找表模块的学习结果按照同步更新表项格式依次写入同步更新表缓存器(4)中;同步更新表缓存器(4):用于缓存同步更新表项,该同步更新表缓存器分别与学习结果轮询模块(3)和更新模块(5)连接;更新模块(5):用于根据同步更新表项内容同时更新多路并行的查找表模块(2)的地址表,当同步更新表缓存器不为空时,读取同步更新表缓存器(4)中的同步更新表项,从同步更新表项中获取要更新的表项地址和地址表,并同时查询多路并行的查找表模块(2)正在读取的表项地址,判断这两个地址是否为同一地址:如果是同一地址,则在下一周期,重新提取多路并行的查找表模块(2)正在读取的表项地址,再次判断更新地址与当前周期的查找地址是否一样,反之,则将地址表同时传入多路并行的查找表模块(2);老化删除模块(6):用于将长时间不用的地址表从多路并行的查找表模块(2)中清除掉,以释放地址表存取器(23)的空间;地址选择模块(7):用于控制老化删除模块(6)和更新模块(5)与多路并行的查找表模块(2)的连接关系,即判断更新模块(5)是否正在更新多路并行的地址表:如果正在更新,则选择更新模块(5)与多路并行的查找表模块(2)连接,反之,选择老化删除模块(6)与多路并行的查找表模块(2)连接。2.根据权利要求1所述的多路并行的MAC地址学习和地址查找装置,其特征在于多路并行的查找表模块(2),其每一路包括:MAC地址学习查找模块(21)、MAC地址查找模块(22)和地址表存取器(23);所述MAC地址学习查找模块(21):用于读取接收调度模块(1)发来的源MAC地址和地址表存取器(23)中存放的地址表,并根据源MAC地址进行地址学习,将学习结果发给学习结果轮询模块(3);所述MAC地址查找模块(22):用于读取接收调度模块(1)发来的目的MAC地址和地址表存取器(23)中存放的地址表,并根据目的MAC地址进行地址查找:如果在地址表中查到输出端口,则只向该端口转发数据分组,如果查不到输出端口,则向除源端口以外的所有端口广播数据分组;所述地址表存取器(23):用于存放地址表,每路查找表模块(2)包含两块地址表存取器,一块地址表存取器分别与MAC地址学习查找模块(21)和地址选择模块(7)连接,另一块地址表存取器分别与MAC地址查找模块(22)和地址选择模块(7)连接。3.一种多路并行的MAC地址学习和地址查找方法,包括如下步骤:1)接收调度模块(1)收到分组后,按顺序为每个分组打上时间标识,然后提取分组特征信息,并轮询多路并行的MAC地址学习查找模块(21)和MAC地址查找模块(22)的工作状态,将分组特征信息、时间标识和分组同时发给空闲路的MAC地址学习查找模块(21)和MAC地址查找模块(22);2)空闲路的MAC地址学习查找模块(21)提取分组的源MAC地址,并根据源MAC地址和输入端口值进行地址学习,执行步骤3a);同时MAC地址查找模块(22)提取目的MAC地址,根据目的MAC地址进行查找,执行步骤3b);3)MAC地址学习和MAC地址查找并行执行:3a)根据源MAC地址得出对应的地址表存取器地址,由该地址表存取器地址读取地址表,从地址表中获取源MAC地址对应的端口值和表项有效标志位:如果表项有效,则执行步骤4),反之,执行步骤5);3b)根据目...

【专利技术属性】
技术研发人员:邱智亮刘春锐潘伟涛许晶李兴旺
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1