CN113904987A - 一种mac地址路由管理控制器、系统及控制方法 - Google Patents
一种mac地址路由管理控制器、系统及控制方法 Download PDFInfo
- Publication number
- CN113904987A CN113904987A CN202111277184.2A CN202111277184A CN113904987A CN 113904987 A CN113904987 A CN 113904987A CN 202111277184 A CN202111277184 A CN 202111277184A CN 113904987 A CN113904987 A CN 113904987A
- Authority
- CN
- China
- Prior art keywords
- mac address
- source mac
- module
- routing table
- state
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种MAC地址路由管理控制器、系统及控制方法,多个交换端口接收到数据帧后并解析源MAC地址,并存储其地址及对应的端口号;依次读取地址进行哈希计算;根据哈希计算结果等进行地址学习及老化并将学习结果写入路由表。多个交换端口接收到数据帧后并解析目的MAC地址传递给目的MAC哈希模块实现哈希计算;目的MAC地址查找模块对多个计算结果进行轮询,当轮询到某个目的MAC哈希计算完成后,根据对应的哈希计算结果同时对路由表的两个双口RAM进行读访问,访问完成后,锁存路由表返回的数据,继续轮询目的MAC哈希模块计算结果;每个端口对应一个路由解析控制模块,对目的MAC地址查找模块锁存的路由表数据进行解析比较,得到该目的MAC对应的路由结果。
Description
技术领域
本发明属于以太网通信领域,涉及一种MAC地址路由管理控制器、系统及控制方法。
背景技术
在以太网通信领域,通过MAC地址进行报文路由管理是以太网进行交换控制的重要途径。路由管理包含MAC地址学习建立路由表和查找MAC表获取路由信息两个步骤。
渐进式MAC地址学习(中国专利CN105376154B)所述的MAC地址学习需要处理器参与,通过软件实现MAC表的构建、存储及维护;一种MAC地址学习的方法,装置和系统(中国专利CN102143068B)介绍了上层软件通过解析ARP报文完成MAC地址的学习的方法;MAC地址学习方法和边缘设备(中国专利CN102291320B)适应用于数据中心二层虚拟互连网络中的边缘设备,通过ARP报文进行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地址学习模块,用于根据源MAC地址哈希计算结果,从左侧对路由表模块进行读写访问,将源MAC地址、该源MAC地址对应的端口号、该源MAC地址写入路由表的时刻写入路由表模块,完成源MAC地址学习;
路由表模块,包含双口RAM1和双口RAM2,双口RAM1和双口RAM2中存储的数据包含有效标识、源MAC地址、该源MAC地址对应的端口号和该源MAC地址写入路由表的时刻;
目的MAC哈希模块,用于实现目的MAC地址哈希计算,每个交换端口对应一个目的MAC哈希计算模块;
目的MAC地址查找模块,用于实现目的MAC地址的查找,对多个目的MAC哈希模块输入的计算完成信号进行轮询,当轮询到某个目的MAC哈希模块的计算完成信号有效时,根据对应的哈希计算结果,从右侧对路由表进行读操作,将读出的数据进行锁存后,继续轮询操作;
路由解析控制模块,用于实现路由解析,对目的MAC地址查找模块锁存的路由表数据进行解析和比较,得到对应目的MAC的输出端口,每个交换端口对应一个路由解析控制模块。
本发明提出的一种MAC地址路由管理控制器的控制方法,包括以下步骤:
步骤1,若干交换端口接收数据帧后,解析出目的MAC地址,对目的MAC地址并行执行哈希计算,根据哈希计算结果进行路由表查找,得到对应目的MAC的路由结果;
步骤2,若干交换端口接收数据帧后,解析出源MAC地址,对源MAC地址及其对应的端口号存储;对存储的源MAC地址依次读出进行哈希计算,并根据哈希计算结果进行地址学习,并将学习结果存入路由表。
优选地,所述步骤1的具体方法如下:
步骤1-1、每个交换端口对应一个目的MAC哈希计算模块,交换端口接收到数据帧后,解析出目的MAC地址传递给对应的目的MAC哈希模块,目的MAC哈希模块对目的MAC地址进行哈希计算;
步骤1-2、将步骤1-1得到的哈希计算结果和计算完成信号传递给目的MAC地址查找模块,目的MAC地址查找模块轮询多个目的MAC哈希模块输入的计算完成信号,当轮询到某个目的MAC哈希模块的计算完成信号有效时,根据对应的哈希计算结果,对路由表模块进行读操作,将读出的数据进行锁存传递给路由解析控制模块,继续轮询操作;
步骤1-3、路由解析控制模块根据目的MAC地址查找模块锁存的路由表读出的数据,进行解析和比较,得到对应目的MAC的路由结果,每个交换端口对应一个路由解析控制模块。
优选地,所述步骤2的具体方法如下:
步骤2-1、多个交换端口接收到数据帧后,解析出源MAC地址并传递给源MAC地址存储模块,源MAC地址存储模块对多个交换端口的源MAC地址及其对应的端口号进行存储;
步骤2-2、从步骤2-1依次读出源MAC地址及其对应的端口,将源MAC地址传递给源MAC地址哈希模块,实现源MAC地址的哈希计算;将该源MAC地址对应的端口号和源MAC地址传递给源MAC地址学习模块;
步骤2-3、将步骤2-2得到的源MAC地址的哈希计算结果、计算完成信号以及源MAC地址传递给源MAC地址学习模块,源MAC地址学习模块根据计算完成信号锁存当前时刻,启动学习状态机,并以源MAC地址的哈希计算结果为地址读取路由表,对读数据进行解析,得到有效标识、源MAC地址、源MAC地址对应的端口号和该源MAC地址写入路由表时刻;以步骤2-2传递的源MAC地址的哈希计算结果为地址对路由表进行写操作,将有效标识、步骤2-2传递的源MAC地址、步骤2-2传递的源MAC地址对应的端口号和锁存的当前时刻写入路由表模块,完成路由表的学习过程。
优选地,锁存的当前时刻与解析得到的源MAC地址写入路由表时刻的差值小于预先设定的老化时间,则不满足老化条件;锁存的当前时刻与解析得到的源MAC地址写入路由表时刻的差值大于等于预先设定的老化时间,则满足老化条件。
优选地,源MAC地址学习模块内部的源MAC地址学习状态机包括空闲状态、读路由表RAM1状态、判断路由表RAM1数据状态、写路由表RAM1状态和源MAC地址学习完成状态;
状态机在空闲状态检测源MAC地址哈希模块传递的源MAC地哈希计算完成信号,跳转到读路由表RAM1状态;读路由表RAM1状态对路由表双口RAM1进行读操作,读地址为源MAC地址哈希模块传递的源MAC地哈希计算结果,等待访问完成,跳转到判断路由表RAM1数据状态;
在判断路由表RAM1数据状态判断路由表RAM1读出的数据:
标识无效、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址相同、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且满足老化条件,跳转到写路由表RAM1状态;
在写路由表RAM1状态对路由表双口RAM1进行写操作,写地址为源MAC地址哈希模块传递的源MAC地哈希计算结果,等待写完成,跳转到源MAC地址学习完成状态,在源MAC地址学习完成状态产生学习完成信号,跳转到空闲状态。
优选地,源MAC地址学习模块内部的源MAC地址学习状态机还包括读路由表RAM2状态、判断路由表RAM2状态和写路由表RAM2状态;
在判断路由表RAM1数据状态判断路由表RAM1读出的数据:
标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且不满足老化条件,跳转到读路由表RAM2状态;
在读路由表RAM2状态对路由表双口RAM2进行读操作,读地址为源MAC地址哈希模块传递的源MAC地哈希计算结果,等待访问完成,跳转到判断路由表RAM2状态;
在判断路由表RAM2状态判断路由表RAM2读出的数据:
标识无效、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址相同、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且满足老化条件,跳转到写路由表RAM2状态;在写路由表RAM2状态对路由表双口RAM2进行写操作,写地址为源MAC地址哈希模块传递的源MAC地哈希计算结果,等待写完成,跳转到源MAC地址学习完成状态,在源MAC地址学习完成状态产生学习完成信号,跳转到空闲状态。
优选地,源MAC地址学习模块内部的源MAC地址学习状态机还包括源MAC地址学习失败状态;
在判断路由表RAM2状态判断路由表RAM2读出的数据:
标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且不满足老化条件,跳转到源MAC地址学习失败状态;在源MAC地址学习失败状态产生MAC地址学习失败信号,跳转到源MAC地址学习完成状态;在源MAC地址学习完成状态产生学习完成信号,跳转到空闲状态。
本发明提出的一种MAC地址路由管理控制系统,包括:
路由表查找模块,所述路由表查找模块用于在若干交换端口接收数据帧后,解析出目的MAC地址,对目的MAC地址并行执行哈希计算,根据哈希计算结果进行路由表查找,得到对应目的MAC的路由结果;
路由表学习模块,所述路由表查找模块用于在若干交换端口接收数据帧后,解析出源MAC地址,对源MAC地址及其对应的端口号存储;对存储的源MAC地址依次读出进行哈希计算,并根据哈希计算结果进行地址学习,并将学习结果存入路由表。
与现有技术相比,本发明具有以下有益效果:
本发明提出的一种MAC地址路由管理控制器及其控制方法,以太网通信二层交换技术的应用需求,交换端口接收数据帧的源MAC地址实时存储,保证所有MAC地址都能被学习,提高可靠性;本发明中的路由表构建采用两个双口RAM实现,学习过程通过左侧对路由表进行读写访问,查找过程通过右侧对路由表右侧进行读访问,有效减少访问冲突,提高可靠性和查表效率;本发明中查找过程同时访问路由表两个双口RAM的相同地址,锁存路由数据后,独立解析并行执行,提高查表效率。
进一步地,MAC地址路由管理控制系统采用源MAC地址存储模块、源MAC地址哈希模块、目的MAC哈希模块、源MAC地址学习模块、目的MAC地址查找模块、路由表模块和路由解析控制模块,采用模块化思想使各个模块之间相互独立,便于实现对各个模块的统一管理。交换效率高。
进一步地,本发明采用被动方式实现路由表MAC地址老化,即仅在MAC地址学习时,才判断是否需要老化。与传统的根据预先设定的老化时间,定期刷新路由表的主动老化方式相比,减少老化时间配置不合理对交换效率的影响。
本发明提出的一种MAC地址路由管理控制系统,采用模块化思想来实现路由表学习及路由表查找,使各个模块之间相互独立,便于实现对各个模块的统一管理。
附图说明
图1为本发明的MAC地址路由管理控制器结构框图;
图2为本发明的中源MAC地址学习状态机结构框图。
其中:1-源MAC地址存储模块;2-源MAC地址哈希模块;3-目的MAC哈希模块;4-源MAC地址学习模块;5-目的MAC地址查找模块;6-路由表模块;7-路由解析控制模块;8-空闲状态;9-读路由表RAM1状态;10-判断路由表RAM1数据状态;11-写路由表RAM1状态;12-读路由表RAM2状态;13-判断路由表RAM2状态;14-写路由表RAM2状态;15-源MAC地址学习失败状态;16-源MAC地址学习完成状态。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图对本发明做进一步详细描述:
MAC地址路由是以太网通信领域二层交换的重要技术,路由查找效率是影响交换性能的关键指标。本发明提出一种MAC地址路由管理控制器、系统及控制方法,用于实现MAC地址学习及老化、路由表构建、MAC地址查找。
如图1所示,为本发明提出的一种MAC地址路由管理控制器的结构框图,包括以下7个模块:源MAC地址存储模块1、源MAC地址哈希模块2、目的MAC哈希模块3、源MAC地址学习模块4、目的MAC地址查找模块5、路由表模块6和路由解析控制模块7。所述源MAC地址存储模块1的输入端口与多个交换端口相连,用于接收源MAC地址,所述源MAC地址存储模块1的输出端口与源MAC地址哈希模块2的输入端口相连;所述源MAC地址学习模块4的输入端口分别与源MAC地址哈希模块2的输出端口和路由表模块6的输出端口相连;所述源MAC地址学习模块4的输出端口分别与源MAC地址存储模块1的输入端口和路由表模块6的输入端口相连;
所述目的MAC哈希模块3的输入端口与多个交换端口相连,用于传递目的MAC地址;所述目的MAC地址查找模块5的输入端口与目的MAC哈希模块3的输出端口相连,用于将哈希计算结果和计算完成信号传递给目的MAC地址查找模块5;所述目的MAC地址查找模块5的输入端口与路由表模块6的输出端口相连;所述目的MAC地址查找模块5的输出端口分别与路由表模块6的输入端口和路由解析控制模块7的输入端口相连,路由解析控制模块7的输出端口传递对应目的MAC的输出端口,每个交换端口对应一个路由数据解析。
其中:
源MAC地址存储模块1,用于对多个交换端口接收到数据帧的源MAC地址及其对应的端口号进行存储,并依次读出后对源MAC地址进行哈希计算;
源MAC地址哈希模块2,用于实现源MAC地址的哈希计算;
源MAC地址学习模块4,用于根据源MAC地址哈希计算结果,从左侧对路由表模块6进行读写访问,将源MAC地址、该源MAC地址对应的端口号、该源MAC地址写入路由表的时刻写入路由表模块6,完成源MAC地址学习;
路由表模块6,包含双口RAM1和双口RAM2,双口RAM1和双口RAM2中存储的数据包含有效标识、源MAC地址、该源MAC地址对应的端口号和该源MAC地址写入路由表的时刻;
目的MAC哈希模块3,用于实现目的MAC地址哈希计算,每个交换端口对应一个目的MAC哈希计算模块,多个模块并行执行;
目的MAC地址查找模块5,用于实现目的MAC地址的查找,对多个目的MAC哈希模块3输入的计算完成信号进行轮询,当轮询到某个目的MAC哈希模块3的计算完成信号有效时,根据对应的哈希计算结果,从右侧对路由表进行读操作,将读出的数据进行锁存后,继续轮询操作;
路由解析控制模块7,用于实现路由解析,对目的MAC地址查找模块锁存的路由表数据进行解析和比较,得到对应目的MAC的输出端口,每个交换端口对应一个路由解析控制模块7,多个模块并行执行。
具体的,源MAC地址存储模块1,对多个交换端口接收到数据帧的源MAC地址进行实时存储,保证所有源MAC地址都能被学习到;同时,对该MAC地址对应输入端口的端口号进行存储,使MAC地址与端口号建立联系,依次读出源MAC地址进行学习。
源MAC地址哈希模块2,对48位MAC地址进行哈希计算,以哈希计算结果为地址,对路由表进行访问。哈希计算包括源MAC地址的哈希计算和目的MAC地址的哈希计算。为提高目的MAC查找效率,多个交换端口目的MAC地址的哈希计算并行执行。
路由表模块6,包含双口RAM1和双口RAM2,用于存储不同MAC地址的各项路由信息,包含有效标识、源MAC地址、该源MAC地址对应的端口号、该源MAC地址写入路由表的时刻。源MAC地址的学习过程通过左端对路由表的双口RAM1进行读写访问。目的MAC地址的查找过程通过右端对路由表的双口RAM2进行读访问。
源MAC地址学习模块4,源MAC地址哈希完成后,锁存当前时刻,并以哈希计算结果为地址,读取路由表双口RAM1,对读出的数据进行判断:
如果标识无效,表明路由表该地址未使用,将有效标识、MAC地址、端口号、存储时间写入路由表双口RAM1对应的地址中,学习过程结束。
如果标识有效,表明路由表双口RAM1地址已使用,判断路由表中读出的MAC地址与学习的MAC地址是否相同、是否满足老化条件;如果MAC地址相同,或者MAC地址不同且满足老化条件,那么更新路由表双口RAM1对应地址的内容,学习过程结束;如果MAC地址不同且不满足老化条件,以哈希计算结果为地址,读取路由表双口RAM2,对读出的数据进行判断,判断方法同上。如果从路由表的两个RAM中读出的MAC地址与学习的MAC地址都不同,且都不满足老化条件,学习过程失败,返回冲突标识。MAC地址是否老化的判断条件为,如果当前时刻与路由表中读出的存储时刻之差大于配置的老化时间,则老化条件满足,可以存入新的MAC地址;否则,老化条件不满足,不能存入新的MAC地址。
目的MAC地址查找模块5,对多个目的MAC哈希计算完成标识进行轮询,当轮询到某一个目的MAC哈希计算完成,以计算结果为地址,同时读取路由表双口RAM1和双口RAM2,并对读出的数据进行锁存,轮询下一个端口。
路由解析控制控制模块7,多个模块并行执行,对目的MAC地址查找模块5锁存的路由信息进行解析,得到该目的MAC对应的路由结果。
本发明提出的一种MAC地址路由管理控制方法,包括路由表学习过程和路由表查找过程;
路由表学习过程:若干交换端口接收数据帧后,解析出源MAC地址,对源MAC地址及其对应的端口号存储;对存储的源MAC地址依次读出进行哈希计算,并根据哈希计算结果进行地址学习,并将学习结果存入路由表。
路由表查找过程:若干交换端口接收数据帧后,解析出目的MAC地址,对目的MAC地址并行执行哈希计算,根据哈希计算结果进行路由表查找,得到对应目的MAC的路由结果;
本发明提出的一种MAC地址路由管理控制方法,具体包括路由表学习过程和路由表查找过程:
路由表学习过程的操作步骤如下:
S1、多个交换端口接收到数据帧后,解析出源MAC地址并传递给源MAC地址存储模块1,源MAC地址存储模块1对多个交换端口的源MAC地址及其对应的端口号进行存储;
S2、从S1依次读出源MAC地址及其对应的端口号,得到的源MAC地址传递给源MAC地址哈希模块2,实现源MAC地址的哈希计算;将该源MAC地址对应的端口号和源MAC地址传递给源MAC地址学习模块4;
S3、将S2得到的源MAC地址的哈希计算结果、计算完成信号以及源MAC地址传递给源MAC地址学习模块4,源MAC地址学习模块4根据计算完成信号锁存当前时刻,启动学习状态机,并以源MAC地址的哈希计算结果为地址读取路由表,对读数据进行解析,得到有效标识、源MAC地址、源MAC地址对应的端口号和该源MAC地址写入路由表时刻;以S2传递的源MAC地址的哈希计算结果为地址对路由表进行写操作,将有效标识、S2传递的源MAC地址、S2传递的源MAC地址对应的端口号和锁存的当前时刻写入路由表模块6,完成路由表的学习过程。
其中,判断有效标识,判断S2传递的源MAC地址与解析出的源MAC地址是否相同,判断当前时刻与解析出的源MAC地址写入路由表的时刻的差值,根据判断结果,最终以S2传递的源MAC地址哈希计算结果为地址对路由表进行写操作。
锁存的当前时刻与解析得到的源MAC地址写入路由表时刻的差值小于预先设定的老化时间,则不满足老化条件;锁存的当前时刻与解析得到的源MAC地址写入路由表时刻的差值大于等于预先设定的老化时间,则满足老化条件。
路由表查找过程的操作步骤如下:
步骤一、每个交换端口对应一个目的MAC哈希计算模块3,交换端口接收到数据帧后,解析出目的MAC地址传递给对应的目的MAC哈希模块3,对目的MAC地址进行哈希计算,多个模块并行执行;
步骤二、将步骤一得到的哈希计算结果和计算完成信号传递给目的MAC地址查找模块5,目的MAC地址查找模块5轮询多个目的MAC哈希模块3输入的计算完成信号,当轮询到某个目的MAC哈希模块3的计算完成信号有效时,根据对应的哈希计算结果,对路由表模块6进行读操作,将读出的数据进行锁存后,继续轮询操作;
步骤三、路由解析控制模块7根据目的MAC地址查找模块6锁存的路由表读出的数据进行解析和比较,得到对应目的MAC的输出端口,每个交换端口对应一个路由解析控制模块7,多个模块并行执行。
具体的:交换端口接收到数据帧后,解析出源MAC地址传递源MAC地址存储模块1,对多个端口的源MAC地址及其对应的端口号进行存储;在源MAC地址存储模块1内部检测到存储非空且学习过程空闲,读出源MAC地址及其对应的端口号,将源MAC地址传递给源MAC地址哈希模块2和源MAC地址学习模块4,将源MAC地址对应的端口号传递给源MAC地址学习模块4;源MAC地址哈希模块2进行源MAC地址的哈希计算,将计算完成信号和计算结果传递给源MAC地址学习模块4;源MAC地址学习模块4检测到哈希计算结果有效,启动内部状态机,对路由表模块6进行读访问;路由表模块6返回读数据给源MAC地址学习模块4;源MAC地址学习模块4对数据进行解析,判断路由表模块6中RAM1表项的更新及RAM2表项的读取,完成学习过程,并返回学习完成信号给源MAC地址存储模块1。
交换端口接收到数据帧后,解析出目的MAC地址传递给目的MAC哈希模块3,对目的MAC地址进行哈希计算,每个交换端口对应一个目的MAC哈希模块3,多个模块并行执行,将哈希计算结果和计算完成信号传递给目的MAC地址查找模块5;在目的MAC地址查找模块5内部轮询多个目的哈希计算模块3的哈希计算完成信号,当轮询到某个目的MAC哈希模块3的计算完成信号有效时,根据对应的哈希计算结果,同时对路由表模块6的RAM1和RAM2进行读操作;路由表模块6返回读数据给目的MAC地址查找模块5;目的MAC地址查找模块5继续轮询其他端口,并对路由表模块6返回的数据进行锁存传递路由解析控制模块7;路由解析控制模块7对目的MAC地址查找模块5锁存的路由表数据进行解析和比较,得到对应目的MAC的输出端口,每个交换端口对应一个路由数据解析,多个模块并行执行。
源MAC地址学习模块4,内部的源MAC地址学习状态机如图2所示,源MAC地址学习模块4内部的源MAC地址学习状态机包括空闲状态8,读路由表RAM1状态9,判断路由表RAM1数据状态10,写路由表RAM1状态11,读路由表RAM2状态12,判断路由表RAM2状态13,写路由表RAM2状态14,源MAC地址学习失败状态15和源MAC地址学习完成状态16。
上电后,状态机在空闲状态8检测源MAC地址哈希计算和计算完成信号,跳转到读路由表RAM1状态9;读路由表RAM1状态9产生访问路由表双口RAM1的读使能和读地址,等待访问完成,跳转到判断路由表RAM1数据状态10;
在判断路由表RAM1数据状态10判断路由表返回的数据:
当标识无效、或者标识有效且路由表中读出的MAC地址与学习的源MAC地址相同、或者标识有效且路由表中读出的MAC地址与学习的源MAC地址不同且满足老化条件,跳转到写路由表RAM1状态11;
当标识有效且路由表中读出的MAC地址与学习的源MAC地址不同且不满足老化条件,跳转到读路由表RAM2状态12。
源MAC地址学习模块4内部的源MAC地址学习状态机还包括源MAC地址学习完成状态16,在写路由表RAM1状态11产生访问路由表双口RAM1的写使能和写数据,等待写完成,跳转到源MAC地址学习完成状态16,在源MAC地址学习完成状态16产生学习完成信号,跳转到空闲状态8。
源MAC地址学习模块4内部的源MAC地址学习状态机还包括判断路由表RAM2状态13和写路由表RAM2状态14;
在读路由表RAM2状态12产生访问路由表双口RAM2的读使能,等待访问完成,跳转到判断路由表RAM2状态13;
在判断路由表RAM2状态13判断路由表返回的数据:
标识无效、或者标识有效且路由表中读出的MAC地址与学习的源MAC地址相同、或者标识有效且路由表中读出的MAC地址与学习的源MAC地址不同且满足老化条件,跳转到写路由表RAM2状态14;在写路由表RAM2状态14产生访问路由表双口RAM2的写使能和写数据,等待写完成,跳转到源MAC地址学习完成状态16,在源MAC地址学习完成状态16产生学习完成信号,跳转到空闲状态8。
源MAC地址学习模块4内部的源MAC地址学习状态机还包括源MAC地址学习失败状态15;
在判断路由表RAM2状态13判断路由表返回的数据:
标识有效且路由表中读出的MAC地址与学习的源MAC地址不同且不满足老化条件,跳转到源MAC地址学习失败状态15;在源MAC地址学习失败状态15产生MAC地址学习失败信号,跳转到源MAC地址学习完成状态16;在源MAC地址学习完成状态16产生学习完成信号,跳转到空闲状态8。
具体的:上电后,状态机处于空闲状态8,检测到源MAC地址哈希计算完成信号有效,跳转到读路由表RAM1状态9;在读路由表RAM1状态9状态产生访问路由表双口RAM1的读使能和读地址,等待访问完成,跳转到判断路由表RAM1数据状态10;在判断路由表RAM1数据状态10判断路由表返回的数据,如果标识有效且路由表中读出的MAC地址与学习的源MAC地址不同且不满足老化条件,跳转到读路由表RAM2状态12,否则跳转到写路由表RAM1状态11;
在写路由表RAM1状态11产生访问路由表双口RAM1的写使能和写数据,等待写完成,跳转到源MAC地址学习完成状态16,产生学习完成信号,跳转到空闲状态8。
在读路由表RAM2状态12产生访问路由表双口RAM2的读使能,等待访问完成,跳转到判断路由表RAM2状态13;在判断路由表RAM2状态13判断路由表返回的数据,如果标识有效且路由表中读出的MAC地址与学习的源MAC地址不同且不满足老化条件,跳转到源MAC地址学习失败状态15,否则,跳转到写路由表RAM2状态14;在写路由表RAM2状态14产生访问路由表双口RAM2的写使能和写数据,等待写完成,跳转到源MAC地址学习完成状态16,产生学习完成信号,跳转到空闲状态8。
在源MAC地址学习失败状态15产生MAC地址学习失败信号,跳转到源MAC地址学习完成状态16,在源MAC地址学习完成状态16产生学习完成信号,跳转到空闲状态8。
本发明提出的一种MAC地址路由管理控制系统,包括:
路由表查找模块,所述路由表查找模块用于在若干交换端口接收数据帧后,解析出目的MAC地址,对目的MAC地址并行执行哈希计算,根据哈希计算结果进行路由表查找,得到对应目的MAC的路由结果;
路由表学习模块,所述路由表查找模块用于在若干交换端口接收数据帧后,解析出源MAC地址,对源MAC地址及其对应的端口号存储;对存储的源MAC地址依次读出进行哈希计算,并根据哈希计算结果进行地址学习,并将学习结果存入路由表。
根据上述方案,用Verilog HDL语言对该实现方法进行描述,仿真验证后,在Xilinx公司的FPGA器件上进行了原型验证和测试。测试结果表明本发明能够实现不同MAC地址路由及管理,具有很好的可实施性。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (10)
1.一种MAC地址路由管理控制器,其特征在于,包括源MAC地址存储模块(1)、源MAC地址哈希模块(2)、目的MAC哈希模块(3)、源MAC地址学习模块(4)、目的MAC地址查找模块(5)、路由表模块(6)和路由解析控制模块(7);
所述源MAC地址存储模块(1)的输入端口与多个交换端口相连,用于接收源MAC地址,所述源MAC地址存储模块(1)的输出端口与源MAC地址哈希模块(2)的输入端口相连;所述源MAC地址学习模块(4)的输入端口分别与源MAC地址哈希模块(2)的输出端口和路由表模块(6)的输出端口相连;所述源MAC地址学习模块(4)的输出端口分别与源MAC地址存储模块(1)的输入端口和路由表模块(6)的输入端口相连;
所述目的MAC哈希模块(3)的输入端口与多个交换端口相连,用于传递目的MAC地址;所述目的MAC地址查找模块(5)的输入端口与目的MAC哈希模块(3)的输出端口相连,用于将哈希计算结果和计算完成信号传递给目的MAC地址查找模块(5);所述目的MAC地址查找模块(5)的输入端口与路由表模块(6)的输出端口相连;所述目的MAC地址查找模块(5)的输出端口分别与路由表模块(6)的输入端口和路由解析控制模块(7)的输入端口相连,路由解析控制模块(7)的输出端口传递对应目的MAC的输出端口,每个交换端口对应一个路由数据解析。
2.根据权利要求1所述的MAC地址路由管理控制器,其特征在于,所述源MAC地址存储模块(1),用于对多个交换端口接收到数据帧的源MAC地址及其对应的端口号进行存储,并依次读出后对源MAC地址进行哈希计算;
源MAC地址哈希模块(2),用于实现源MAC地址的哈希计算;
源MAC地址学习模块(4),用于根据源MAC地址哈希计算结果,从左侧对路由表模块(6)进行读写访问,将源MAC地址、该源MAC地址对应的端口号、该源MAC地址写入路由表的时刻写入路由表模块(6),完成源MAC地址学习;
路由表模块(6),包含双口RAM1和双口RAM2,双口RAM1和双口RAM2中存储的数据包含有效标识、源MAC地址、该源MAC地址对应的端口号和该源MAC地址写入路由表的时刻;
目的MAC哈希模块(3),用于实现目的MAC地址哈希计算,每个交换端口对应一个目的MAC哈希计算模块(3);
目的MAC地址查找模块(5),用于实现目的MAC地址的查找,对多个目的MAC哈希模块(3)输入的计算完成信号进行轮询,当轮询到某个目的MAC哈希模块(3)的计算完成信号有效时,根据对应的哈希计算结果,从右侧对路由表进行读操作,将读出的数据进行锁存后,继续轮询操作;
路由解析控制模块(7),用于实现路由解析,对目的MAC地址查找模块锁存的路由表数据进行解析和比较,得到对应目的MAC的输出端口,每个交换端口对应一个路由解析控制模块(7)。
3.采用权利要求1或2所述的MAC地址路由管理控制器的控制方法,其特征在于,包括以下步骤:
步骤1,若干交换端口接收数据帧后,解析出目的MAC地址,对目的MAC地址并行执行哈希计算,根据哈希计算结果进行路由表查找,得到对应目的MAC的路由结果;
步骤2,若干交换端口接收数据帧后,解析出源MAC地址,对源MAC地址及其对应的端口号存储;对存储的源MAC地址依次读出进行哈希计算,并根据哈希计算结果进行地址学习,并将学习结果存入路由表。
4.根据权利要求3所述的控制方法,其特征在于,所述步骤1的具体方法如下:
步骤1-1、每个交换端口对应一个目的MAC哈希计算模块(3),交换端口接收到数据帧后,解析出目的MAC地址传递给对应的目的MAC哈希模块(3),目的MAC哈希模块(3)对目的MAC地址进行哈希计算;
步骤1-2、将步骤1-1得到的哈希计算结果和计算完成信号传递给目的MAC地址查找模块(5),目的MAC地址查找模块(5)轮询多个目的MAC哈希模块(3)输入的计算完成信号,当轮询到某个目的MAC哈希模块(3)的计算完成信号有效时,根据对应的哈希计算结果,对路由表模块(6)进行读操作,将读出的数据进行锁存传递给路由解析控制模块,继续轮询操作;
步骤1-3、路由解析控制模块(7)根据目的MAC地址查找模块(6)锁存的路由表读出的数据,进行解析和比较,得到对应目的MAC的路由结果,每个交换端口对应一个路由解析控制模块(7)。
5.根据权利要求3所述的控制方法,其特征在于,所述步骤2的具体方法如下:
步骤2-1、多个交换端口接收到数据帧后,解析出源MAC地址并传递给源MAC地址存储模块(1),源MAC地址存储模块(1)对多个交换端口的源MAC地址及其对应的端口号进行存储;
步骤2-2、从步骤2-1依次读出源MAC地址及其对应的端口,将源MAC地址传递给源MAC地址哈希模块(2),实现源MAC地址的哈希计算;将该源MAC地址对应的端口号和源MAC地址传递给源MAC地址学习模块(4);
步骤2-3、将步骤2-2得到的源MAC地址的哈希计算结果、计算完成信号以及源MAC地址传递给源MAC地址学习模块(4),源MAC地址学习模块(4)根据计算完成信号锁存当前时刻,启动学习状态机,并以源MAC地址的哈希计算结果为地址读取路由表,对读数据进行解析,得到有效标识、源MAC地址、源MAC地址对应的端口号和该源MAC地址写入路由表时刻;以步骤2-2传递的源MAC地址的哈希计算结果为地址对路由表进行写操作,将有效标识、步骤2-2传递的源MAC地址、步骤2-2传递的源MAC地址对应的端口号和锁存的当前时刻写入路由表模块(6),完成路由表的学习过程。
6.根据权利要求5所述的控制方法,其特征在于,锁存的当前时刻与解析得到的源MAC地址写入路由表时刻的差值小于预先设定的老化时间,则不满足老化条件;锁存的当前时刻与解析得到的源MAC地址写入路由表时刻的差值大于等于预先设定的老化时间,则满足老化条件。
7.根据权利要求5所述的控制方法,其特征在于,源MAC地址学习模块(4)内部的源MAC地址学习状态机包括空闲状态(8)、读路由表RAM1状态(9)、判断路由表RAM1数据状态(10)、写路由表RAM1状态(11)和源MAC地址学习完成状态(16);
状态机在空闲状态(8)检测源MAC地址哈希模块(2)传递的源MAC地哈希计算完成信号,跳转到读路由表RAM1状态(9);读路由表RAM1状态(9)对路由表双口RAM1进行读操作,读地址为源MAC地址哈希模块(2)传递的源MAC地哈希计算结果,等待访问完成,跳转到判断路由表RAM1数据状态(10);
在判断路由表RAM1数据状态(10)判断路由表RAM1读出的数据:
标识无效、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址相同、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且满足老化条件,跳转到写路由表RAM1状态(11);
在写路由表RAM1状态(11)对路由表双口RAM1进行写操作,写地址为源MAC地址哈希模块(2)传递的源MAC地哈希计算结果,等待写完成,跳转到源MAC地址学习完成状态(16),在源MAC地址学习完成状态(16)产生学习完成信号,跳转到空闲状态(8)。
8.根据权利要求7所述的控制方法,其特征在于,源MAC地址学习模块(4)内部的源MAC地址学习状态机还包括读路由表RAM2状态(12)、判断路由表RAM2状态(13)和写路由表RAM2状态(14);
在判断路由表RAM1数据状态(10)判断路由表RAM1读出的数据:
标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且不满足老化条件,跳转到读路由表RAM2状态(12);
在读路由表RAM2状态(12)对路由表双口RAM2进行读操作,读地址为源MAC地址哈希模块(2)传递的源MAC地哈希计算结果,等待访问完成,跳转到判断路由表RAM2状态(13);
在判断路由表RAM2状态(13)判断路由表RAM2读出的数据:
标识无效、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址相同、或者标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且满足老化条件,跳转到写路由表RAM2状态(14);在写路由表RAM2状态(14)对路由表双口RAM2进行写操作,写地址为源MAC地址哈希模块(2)传递的源MAC地哈希计算结果,等待写完成,跳转到源MAC地址学习完成状态(16),在源MAC地址学习完成状态(16)产生学习完成信号,跳转到空闲状态(8)。
9.根据权利要求8所述的控制方法,其特征在于,源MAC地址学习模块(4)内部的源MAC地址学习状态机还包括源MAC地址学习失败状态(15);
在判断路由表RAM2状态(13)判断路由表RAM2读出的数据:
标识有效且路由表中读出的MAC地址与从步骤2-1读出的源MAC地址不同且不满足老化条件,跳转到源MAC地址学习失败状态(15);在源MAC地址学习失败状态(15)产生MAC地址学习失败信号,跳转到源MAC地址学习完成状态(16);在源MAC地址学习完成状态(16)产生学习完成信号,跳转到空闲状态(8)。
10.一种MAC地址路由管理控制系统,其特征在于,包括:
路由表查找模块,所述路由表查找模块用于在若干交换端口接收数据帧后,解析出目的MAC地址,对目的MAC地址并行执行哈希计算,根据哈希计算结果进行路由表查找,得到对应目的MAC的路由结果;
路由表学习模块,所述路由表查找模块用于在若干交换端口接收数据帧后,解析出源MAC地址,对源MAC地址及其对应的端口号存储;对存储的源MAC地址依次读出进行哈希计算,并根据哈希计算结果进行地址学习,并将学习结果存入路由表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277184.2A CN113904987B (zh) | 2021-10-29 | 2021-10-29 | 一种mac地址路由管理控制器、系统及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277184.2A CN113904987B (zh) | 2021-10-29 | 2021-10-29 | 一种mac地址路由管理控制器、系统及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113904987A true CN113904987A (zh) | 2022-01-07 |
CN113904987B CN113904987B (zh) | 2022-11-15 |
Family
ID=79027134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111277184.2A Active CN113904987B (zh) | 2021-10-29 | 2021-10-29 | 一种mac地址路由管理控制器、系统及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113904987B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785396A (zh) * | 2022-03-09 | 2022-07-22 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060274739A1 (en) * | 2005-06-02 | 2006-12-07 | Chia-Hsin Chen | Method and apparatus for managing medium access control (MAC) address |
CN101232444A (zh) * | 2008-01-22 | 2008-07-30 | 杭州华三通信技术有限公司 | 哈希冲突解决方法、装置及具有该装置的交换设备 |
US7408930B2 (en) * | 2003-02-07 | 2008-08-05 | Fujitsu Limited | Address learning to enable high speed routing table lookups |
CN103491004A (zh) * | 2013-09-02 | 2014-01-01 | 奥维通信股份有限公司 | 一种基于mias系统的以太网交换方法 |
CN103731355A (zh) * | 2013-12-31 | 2014-04-16 | 迈普通信技术股份有限公司 | 避免mac地址学习时哈希冲突的方法及系统 |
WO2014127605A1 (zh) * | 2013-02-21 | 2014-08-28 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
WO2018036457A1 (zh) * | 2016-08-23 | 2018-03-01 | 中兴通讯股份有限公司 | 一种哈希冲突的处理方法、装置及交换设备和存储介质 |
CN112491722A (zh) * | 2020-12-04 | 2021-03-12 | 锐捷网络股份有限公司 | 一种地址表维护方法、装置、设备 |
-
2021
- 2021-10-29 CN CN202111277184.2A patent/CN113904987B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7408930B2 (en) * | 2003-02-07 | 2008-08-05 | Fujitsu Limited | Address learning to enable high speed routing table lookups |
US20060274739A1 (en) * | 2005-06-02 | 2006-12-07 | Chia-Hsin Chen | Method and apparatus for managing medium access control (MAC) address |
CN101232444A (zh) * | 2008-01-22 | 2008-07-30 | 杭州华三通信技术有限公司 | 哈希冲突解决方法、装置及具有该装置的交换设备 |
WO2014127605A1 (zh) * | 2013-02-21 | 2014-08-28 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
CN103491004A (zh) * | 2013-09-02 | 2014-01-01 | 奥维通信股份有限公司 | 一种基于mias系统的以太网交换方法 |
CN103731355A (zh) * | 2013-12-31 | 2014-04-16 | 迈普通信技术股份有限公司 | 避免mac地址学习时哈希冲突的方法及系统 |
WO2018036457A1 (zh) * | 2016-08-23 | 2018-03-01 | 中兴通讯股份有限公司 | 一种哈希冲突的处理方法、装置及交换设备和存储介质 |
CN107770076A (zh) * | 2016-08-23 | 2018-03-06 | 中兴通讯股份有限公司 | 一种哈希冲突的处理方法、装置及交换设备 |
CN112491722A (zh) * | 2020-12-04 | 2021-03-12 | 锐捷网络股份有限公司 | 一种地址表维护方法、装置、设备 |
Non-Patent Citations (1)
Title |
---|
于翔等: "基于FPGA的MAC层地址表设计与仿真", 《计算机工程与设计》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785396A (zh) * | 2022-03-09 | 2022-07-22 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
CN114785396B (zh) * | 2022-03-09 | 2024-04-12 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113904987B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9077563B2 (en) | Switch for identifying extended group information of ports | |
CN110401568B (zh) | 一种网络拓扑发现方法及设备 | |
CN113904987B (zh) | 一种mac地址路由管理控制器、系统及控制方法 | |
CN101809943B (zh) | 用于虚拟端口通信的方法和系统 | |
CN110138596A (zh) | 一种基于切换网络拓扑方式的区块链共识方法 | |
CN102420765B (zh) | 一种确定交换机与终端之间的物理链路的方法以及装置 | |
CN101977167A (zh) | 无线传感器网络接入Modbus总线的网关通信协议转换方法 | |
CN101232444A (zh) | 哈希冲突解决方法、装置及具有该装置的交换设备 | |
CN110120923B (zh) | 一种基于Hash-Trie的流规则冲突检测方法 | |
US20240267342A1 (en) | Node matching method and apparatus, device, and medium | |
CN104281488B (zh) | 服务器引擎的实现方法和系统 | |
CN103517375A (zh) | 一种对多种移动设备识别、通信的方法及装置 | |
CN115426312B (zh) | 一种大规模多模态网络中标识管理及优化转发方法和装置 | |
CN103001878A (zh) | Mac地址哈希冲突的确定方法及装置 | |
JPH06224930A (ja) | Atmセル分解/組立てシステム | |
CN109618020A (zh) | 一种分片报文的网络地址转换方法及装置 | |
CN106790444A (zh) | 网络数据交互方法和装置 | |
CN104243536A (zh) | 一种高速列车控制网络半实物仿真系统 | |
CN113259264A (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN107566098B (zh) | 软件定义网络应用测试序列的生成方法与生成系统 | |
CN102904803B (zh) | 一种报文传输方法和设备 | |
CN108632148B (zh) | 基于预读取方式的学习mac地址的装置及方法 | |
CN106612213B (zh) | 设备测试方法及装置 | |
CN115379318B (zh) | 一种benes网络路由投机求解方法和装置 | |
CN105049377B (zh) | 基于Crossbar架构的AFDX交换机数据总线结构及数据交换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |