CN108632148A - 基于预读取方式的学习mac地址的装置及方法 - Google Patents
基于预读取方式的学习mac地址的装置及方法 Download PDFInfo
- Publication number
- CN108632148A CN108632148A CN201810315099.2A CN201810315099A CN108632148A CN 108632148 A CN108632148 A CN 108632148A CN 201810315099 A CN201810315099 A CN 201810315099A CN 108632148 A CN108632148 A CN 108632148A
- Authority
- CN
- China
- Prior art keywords
- module
- learning
- address
- frame
- learning frame
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000001514 detection method Methods 0.000 claims abstract description 61
- 238000009432 framing Methods 0.000 claims abstract description 56
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 239000000284 extract Substances 0.000 claims description 12
- 230000032683 aging Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002431 foraging effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
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/742—Route cache; Operation thereof
-
- 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
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
一种基于预读取方式的学习介质访问控制层MAC地址的装置及方法,其装置包括地址提取模块、学习模块、组帧模块、轮询模块、学习帧缓存模块、预读取模块、冲突检测模块、更新模块、时间模块。方法包括:提取二层以太网数据帧中的介质访问控制层MAC地址的源地址,根据该源地址读取地址表中的表项信息,然后根据该表项信息以及入端口信息组成学习帧;对学习帧进行冲突检测,从没有发生冲突或冲突已经结束的学习帧帧中提取表项信息更新地址表。本发明通过在对学习帧进行冲突检测的同时预先读取新的学习帧的方式,高了介质访问控制层MAC地址的学习速率。
Description
技术领域
本发明属于通信技术领域,更进一步涉及通信网络技术领域中的一种基于预读取方式的学习介质访问控制层MAC(Media Access Control)地址的装置及方法。本发明可用于在通信网络系统中的大容量交换设备中的二层以太网数据帧,通过学习介质访问控制层MAC地址对应的端口信息,从而决定二层以太网数据帧的输出端口,同时不断更新查找表信息并保证查找表信息更新无冲突。
背景技术
随着科技日新月异发展,人们对大容量交换设备的交换容量需求越来越大,也对大容量交换设备的数据传输速率要求越来越高。目前网络节点对数据的处理性能是制约网络吞吐率的关键。作为通信网络节点的关键网络设备,大容量交换设备性能直接影响网络的整体性能,进而影响用户的通信体验。
学习二层以太网数据帧介质访问控制层MAC地址技术广泛应用于二层以太网交换机中,主要负责提取接收到的二层以太网数据帧中的介质访问控制层MAC地址的源地址,然后学习该源地址和入端口信息,用来更新地址表信息,学习二层以太网数据帧介质访问控制层MAC地址的速率直接影响二层以太网交换机的整体性能,进而影响用户的通信体验。
杭州华三通信技术有限公司在其申请的专利文献“一种媒体访问控制MAC地址表项学习方法和装置”(申请号:200910174222.4公开号:CN 101651627A)中公开了一种介质访问控制层MAC地址表项学习方法和装置。该发明的装置包括收发模块、记录模块、查找模块、存储模块、判断模块、添加模块、老化模块,其中,收发模块用于接收单播报文以及向CPU发送老化地址消息;记录模块用于记录接收到的单播报文的介质访问控制层MAC地址的源地址和入端口信息;查找模块用于查找转发数据库FDB(Forward Database)表中是否存在单播报文的介质访问控制层MAC地址的源地址;存储模块用于存储转发数据库FDB表;判断模块用于判断转发数据库FDB表中介质访问控制层MAC地址的源地址对应的出端口信息和单播报文的出端口信息是否一致;添加模块用于将单播报文的介质访问控制层MAC地址的源地址和入端口信息添加到转发数据库FDB表中;老化模块用于对转发数据库FDB表中存储的介质访问控制层MAC地址表项进行老化。该发明的装置存在的不足之处在于:添加模块直接与查找模块相连,当查找模块突发提供大量数据给添加模块时,添加模块无法发快速处理而导致数据容易丢失。该方法的具体步骤是:第一,当接收到单播报文时,记录模块记录单播报文的介质访问控制层MAC地址的源地址和入端口信息。第二,查找模块查找转发数据库FDB表中是否存在该源地址,若是则继续查找转发数据库FDB表中该单播报文的介质访问控制层MAC地址的目的地址,并将查找结果上报,否则进行下一步。第三,添加模块将源地址和入端口信息添加到转发数据库FDB表中。该发明的方法存在的不足之处是:当转发数据库FDB表中已存在当前单播报文的介质访问控制层MAC地址的源地址时,会直接跳过对于该源地址的学习过程,导致当该源地址对应的转发数据库FDB表项老化后,新接收到的以该源地址为目的地址的单播报文无法确定输出端口,从而使该单播报文被广播,影响其它报文的发送。
西安电子科技大学在其申请的专利文献“多路并行的MAC地址学习和地址查找装置及方法”(申请号:201610146421.4公开号:CN 105812264A)中公开了一种介质访问控制层MAC地址表项学习方法和装置。该发明的装置包括接收调度模块、多路并行的查找表模块、学习结果轮询模块、同步更新表缓存器、更新模块、老化删除模块和地址选择模块,其中,接收调度模块用于对接收到的数据分组添加时间标识;查找表模块用于并行的地址学习和地址查找;学习结果轮询模块用于轮询接收各路学习结果;同步更新表缓存器用于缓存学习结果;更新模块用于更新多路地址表;地址选择模块用于当更新模块不更新地址表时,选择连接老化删除模块;老化删除模块用于将老化的地址表清除掉。该发明的装置存在的不足之处在于:更新模块和老化删除模块通过地址选择模块共用一条通路连接多路地址表,由于更新模块使用该条通路的优先级高于老化删除模块,当有大量表项需要更新时更新模块长期占用该通路,导致老化删除模块无法及时清除老化的地址表项,最终导致路地址表的存储空间被浪费。该方法的具体步骤是:第一,当接收到数据分组后,接收调度模块按顺序为数据分组添加时间标识,然后将分组发往多路并行的查找表模块。第二,查找表模块进行地址学习和地址查找,然后学习结果轮询模块依次接收各路学习结果,并将学习结果发给同步更新表缓存器。第三、更新模块读取同步更新表缓存器中的表项地址和地址表,并同时查询多路并行的查找表模块正在读取的表项地址,判断这两个表项地址是否为同一地址:如果两个表项地址相同,则在下一周期,重新提取多路并行的查找表模块正在读取的表项地址,再次判断两个表项地址是否相同,反之更新多路地址表,当更新模块不更新地址表时,老化删除模块开始工作。该发明的方法存在的不足之处是:更新模块每次需要先从同步更新表缓存器读取一个表项地址和地址表,然后与查找表模块正在读取的表项地址进行判断来决定是否更新多路地址表,这导致至少需要两个时钟周期来读取同步更新表缓存器中的一个表项信息,当接收数据分组的速率较高时,由于更新模块无法及时读取同步更新表缓存器中的表项信息,导致同步更新表缓存器存储的表项信息溢出,最终导致表项信息丢失。
发明内容
本发明的目的是针对上述现有技术的不足,提出一种基于预读取方式的学习介质访问控制层MAC地址的装置及方法。本发明可以提高学习介质访问控制层MAC地址的速率,有助于提高大容量交换设备的交换容量。
实现本发明目的的具体思路是:首先地址提取模块提取接收到的二层以太网数据帧中的介质访问控制层MAC地址的源地址,并将该源地址发送给学习模块,学习模块对源地址进行查表,得到一组与源地址对应的信息,并将该信息发送给组帧模块,组帧模块将接收到的信息组成学习帧,然后将学习帧发送给轮询模块,轮询模块轮询多路组帧模块提供的学习帧,并将学习帧发送给学习帧缓存模块,预读取模块从学习帧缓存模块读取学习帧,并将学习帧发送给冲突检测模块,冲突检测模块对接收到的学习帧进行冲突检测,当没有发生冲突时,冲突检测模块将学习帧发送给更新模块,更新模块提取接收到的学习帧中的有效信息,然后更新多路地址表,完成介质访问控制层MAC地址的学习。
实现本发明目的的装置包括地址提取模块、学习模块、组帧模块、轮询模块、学习帧缓存模块、预读取模块、冲突检测模块、更新模块、时间模块;所述地址提取模块与学习模块相连;学习模块与地址提取模块、组帧模块相连;组帧模块与学习模块、轮询模块、时间模块相连;轮询模块与组帧模块、学习帧缓存模块相连;学习帧缓存模块与轮询模块、预读取模块相连;预读取模块与学习帧缓存模块、冲突检测模块相连;冲突检测模块与预读取模块、更新模块相连;更新模块与冲突检测模块相连;时间模块与组帧模块相连;其中:
所述地址提取模块,用于从接收的每一帧二层以太网数据帧中,提取介质访问控制层MAC地址的源地址,将所提取的源地址发送给学习模块;
所述学习模块,用于对源地址进行哈希计算,得到源地址的哈希值,将源地址的哈希值输入到学习模块内的地址表中,从地址表中查找与源地址的哈希值对应的一组表项信息,将源地址、源地址对应的哈希值、哈希值对应的表项信息一并发送给组帧模块;
所述组帧模块,用于从学习模块接收到的表项信息中,提取固定的一段时间标识,判断从时间模块接收的时间信息减去时间标识后得到的结果是否大于100秒,若是,则将时间模块提供的时间信息、学习模块提供的源地址以及源地址的哈希值组成学习帧发送到轮询模块,否则,继续判断表项信息中的介质访问控制层MAC地址是否与学习模块提供的源地址相同,若是,则将时间模块提供的时间信息、学习模块提供的源地址以及源地址的哈希值组成学习帧发送到轮询模块,否则,向网络管理中心上报学习冲突;
所述轮询模块,用于在学习帧缓存模块为非满状态时,轮询模块按照交换设备端口序号,从低到高循环轮询各端口序号对应的组帧模块,并将轮询得到的学习帧发送到学习帧缓存模块;
所述学习帧缓存模块,用于缓存学习帧;
所述预读取模块,用于当自身内有空闲寄存器时,持续的从学习帧缓存模块读取学习帧;
所述冲突检测模块,用于判断从预读取模块接收到学习帧中的表项地址与各端口序号对应的地址表正在被访问的地址是否相同,若是,则出现访问地址表的读写地址相同的读写冲突,等待读写冲突结束,否则,冲突检测模块在完成冲突检测的同时,从预读取模块读取一帧新的学习帧,用于下一周期对其进行冲突检测,并将已完冲突检测的学习帧发往更新模块;
所述更新模块,用于从冲突检测模块接收到的学习帧中提取表项地址和表项信息,然后更新各端口序号对应的地址表在提取到的表项地址处的表项信息;
所述时间模块,用于向组帧模块提供当前时间信息。
本发明的方法是使用基于预读取方式的学习介质访问控制层MAC的装置,在对学习帧进行冲突检测的同时读取新的学习帧,包括步骤如下:
(1)提取二层以太网帧中介质访问控制层MAC地址的源地址:
地址提取模块从接收的每一帧二层以太网数据帧中,提取介质访问控制层MAC地址的源地址,将所提取的源地址发送给学习模块;
(2)计算源地址的哈希值:
学习模块对源地址进行哈希计算,得到源地址的哈希值;
(3)获得哈希值对应的表项信息:
(3a)将源地址的哈希值输入到学习模块内的地址表中,从地址表中查找与源地址的哈希值对应的一组表项信息;
(3b)将源地址、源地址对应的哈希值、哈希值对应的表项信息一并发送给组帧模块;
(4)输出学习帧:
(4a)组帧模块从学习模块接收到的表项信息中,提取时间标识;
(4b)判断从时间模块接收的时间信息减去时间标识后得到的结果是否大于100秒,若是,则执行步骤(4d),否则,执行步骤(4c);
(4c)判断表项信息中的介质访问控制层MAC地址是否与学习模块提供的源地址相同,若是,则执行步骤(4d),否则,向网络管理中心上报学习冲突后执行步骤(9);
(4d)将时间模块提供的时间信息、学习模块提供的源地址以及源地址对应的哈希值,组成学习帧发送到轮询模块后执行步骤(5);
(5)轮询多路组帧模块:
在学习帧缓存模块为非满状态时,轮询模块按照交换设备端口序号,从低到高循环轮询各端口序号对应的组帧模块,并将轮询得到的学习帧发送到学习帧缓存模块;
(6)预读取学习帧:
当预读取模块内有空闲寄存器时,预读取模块持续的从学习帧缓存模块读取学习帧;
(7)检测冲突:
(7a)冲突检测模块判断从预读取模块接收到学习帧中的表项地址与各端口序号对应的地址表正在被访问的地址是否相同,若是,则执行步骤(7b),否则,执行步骤(7c);
(7b)出现访问地址表的读写地址相同的读写冲突,等待读写冲突结束;
(7c)冲突检测模块在完成冲突检测的同时,从预读取模块读取一帧新的学习帧,用于下一周期对其进行冲突检测,并将已完冲突检测的学习帧发往更新模块;
(8)更新表项信息:
(8a)更新模块从冲突检测模块接收到的学习帧中提取表项地址和表项信息;
(8b)更新各端口序号对应的学习模块内的地址表在提取到的表项地址处的表项信息;
(9)完成介质访问控制层MAC地址学习。
本发明与现有技术相比具有如下优点:
第一,由于本发明的装置在轮询模块与预读取模块之间加入了学习帧缓存模块,用于存储学习帧,使得当接收到大量突发的学习帧时,可以将接收到的学习帧存储到学习帧缓存模块,再对学习帧进行读取并处理,克服了现有技术中当大量突发的学习帧传输到更新模块时,由于更新模块无法发快速处理而导致数据容易丢失的缺点,使得本发明提高了处理突发高速数据流的能力。
第二,由于本发明的装置新增了与组帧模块直接相连的时间模块,并取消了老化模块,使得组帧模块可以具有判断接收到的表项信息是否有效的功能,因此更新模块可以单独占用与地址表相连的通路,对地址表进行更新,克服了现有技术中老化删除模块需要与更新模块共用一条通路连接多路地址表,当有大量表项需要更新时更新模块长期占用该通路,导致老化删除模块无法及时清除无效的地址表项,导致地址表的存储空间被浪费的问题,使得本发明具有提高地址表的存储空间利用率的优点。
第三,由于本发明的方法学习每一帧二层以太网数据帧的介质访问控制层MAC地址的源地址,然后用学习得到的结果去更新地址表,克服了现有技术中当接收到的二层以太网数据帧的介质访问控制层MAC地址的源地址已存在地址表时,会直接跳过对于该源地址的学习,导致当该源地址对应的表项老化后,新接收到的以该源地址为目的地址的二层以太网数据帧无法确定输出端口,从而使该太网数据帧被广播,降低了交换设备对其它数据帧转发的效率的问题,使得本发明提高了数据帧的转发效率。
第四,由于本发明的方法,在对学习帧进行冲突检测的同时读取新的学习帧,因此当前冲突检测完成后,可以立刻对新的学习帧进行冲突检测,克服了现有技术中,只有在对当前学习帧进行冲突检测完成后,才能在下一周期才读取新的学习帧,导致地址表更新速率低的缺点,使得本发明具有提高地址表更新速率的优点,可以应用于更高速率交换系统中。
附图说明
图1为本发明装置的方框图;
图2为本发明方法的流程图;
图3为本发明方法中循环轮询各端口序号对应的组帧模块的流程图。
具体实施方式
下面结合附图对本发明做进一步的描述。
参照附图1,本发明的装置包括地址提取模块、学习模块、组帧模块、轮询模块、学习帧缓存模块、预读取模块、冲突检测模块、更新模块、时间模块。所述地址提取模块与学习模块相连。学习模块与地址提取模块、组帧模块相连。组帧模块与学习模块、轮询模块、时间模块相连。轮询模块与组帧模块、学习帧缓存模块相连。学习帧缓存模块与轮询模块、预读取模块相连。预读取模块与学习帧缓存模块、冲突检测模块相连。冲突检测模块与预读取模块、更新模块相连。更新模块与冲突检测模块相连。时间模块与组帧模块相连。其中,
所述地址提取模块,用于从接收的每一帧二层以太网数据帧中,提取介质访问控制层MAC地址的源地址,将所提取的源地址发送给学习模块。
所述学习模块,用于对源地址进行哈希计算,得到源地址的哈希值,将源的哈希值输入到地址表中,得到一组与此哈希值对应的表项信息,将源地址、源地址对应的哈希值、哈希值对应的表项信息一并发送给组帧模块。
所述组帧模块,用于从学习模块接收到的表项信息中,提取固定的一段时间标识,判断从时间模块接收的时间信息减去时间标识后得到的结果是否大于100秒,若是,则将时间模块提供的时间信息、学习模块提供的源地址以及源地址的哈希值组成学习帧发送到轮询模块,否则,继续判断表项信息中的介质访问控制层MAC地址是否与学习模块提供的源地址相同,若是,则将时间模块提供的时间信息、学习模块提供的源地址以及源地址的哈希值组成学习帧发送到轮询模块,否则,向网络管理中心上报学习冲突。
所述轮询模块,用于在学习帧缓存模块为非满状态时,轮询模块按照交换设备端口序号,从低到高循环轮询各端口序号对应的组帧模块,并将轮询得到的学习帧发送到学习帧缓存模块。
所述学习帧缓存模块,用于缓存学习帧。
所述预读取模块,用于当自身内有空闲寄存器时,持续的从学习帧缓存模块读取学习帧。
所述冲突检测模块,用于判断从预读取模块接收到学习帧中的表项地址与各端口序号对应的地址表正在被访问的地址是否相同,若是,则出现访问地址表的读写地址相同的读写冲突,等待读写冲突结束,否则,冲突检测模块在完成冲突检测的同时,从预读取模块读取一帧新的学习帧,用于下一周期对其进行冲突检测,并将已完冲突检测的学习帧发往更新模块。
所述更新模块,用于从冲突检测模块接收到的学习帧中提取表项地址和表项信息,然后更新各端口序号对应的地址表在提取到的表项地址处的表项信息。
所述时间模块,用于向组帧模块提供当前时间信息。
下面参照附图2,对本发明的实现方法做进一步的描述。
步骤1,提取二层以太网帧中介质访问控制层MAC地址的源地址。
地址提取模块从接收的每一帧二层以太网数据帧中,提取介质访问控制层MAC地址的源地址,将所提取的源地址发送给学习模块。
步骤2,计算源地址的哈希值。
学习模块对源地址进行哈希计算,得到源地址的哈希值。
步骤3,获得哈希值对应的表项信息。
学习模块将源地址的哈希值输入到地址表中,得到一组与此哈希值对应的表项信息,将源地址、源地址对应的哈希值、哈希值对应的表项信息一并发送给组帧模块;表项信息包括介质访问控制层MAC地址、端口号、时间标识。
步骤4,输出学习帧。
第1步,组帧模块从学习模块接收到的表项信息中,提取固定的一段时间标识。
第2步,判断从时间模块接收的时间信息减去时间标识后得到的结果是否大于100秒,若是,则表项信息无效,执行第4步,否则,执行第3步。
第3步,判断表项信息中的介质访问控制层MAC地址是否与学习模块提供的源地址相同,若是,则执行第4步,否则,向网络管理中心上报学习冲突后执行步骤9。
第4步,将时间模块提供的时间信息、学习模块提供的源地址以及源地址的哈希值组成学习帧发送到轮询模块后执行步骤5;学习帧包括表项地址、介质访问控制层MAC地址、端口号、时间信息。
步骤5,轮询多路组帧模块。
在学习缓存模块为非满状态时,轮询模块按照交换设备端口序号,从低到高循环轮询各端口序号对应的组帧模块,并将轮询得到的学习帧发送到学习帧缓存模块。
下面参照附图3,对本步骤做进一步详细描述。
第1步,轮询模块从端口序号0处的组帧模块开始轮询。
第2步,判断学习帧缓存模块为满状态,若是,则执行第6步,否则,执行第3步。
第3步,判断当前轮询的端口序号是否为最高端口序号,若是,则执行第4步,否则,执行第5步。
第4步,从当前端口序号对应的组帧模块接收学习帧,执行第1步。
第5步,从当前端口序号对应的组帧模块接收学习帧,然后将端口序号加1,执行第2步。
第6步,轮询模块跳回初始状态,结束轮询。
步骤6,预读取学习帧。
当预读取模块内有空闲寄存器时,预读取模块持续的从学习帧缓存模块读取学习帧。
步骤7,检测冲突。
第1步,冲突检测模块判断从预读取模块接收到学习帧中的表项地址与各端口序号对应的地址表正在被访问的地址是否相同,若是,则执行第2步,否则,执行第3步。
第2步,出现访问地址表的读写地址相同的读写冲突,等待读写冲突结束。
第3步,冲突检测模块在完成冲突检测的同时,从预读取模块读取一帧新的学习帧,用于下一周期对其进行冲突检测,并将已完冲突检测的学习帧发往更新模块。
步骤8,更新表项信息。
更新模块从冲突检测模块接收到的学习帧中提取表项地址和表项信息。
更新各端口序号对应的地址表在提取到的表项地址处的表项信息。
步骤9,完成介质访问控制层MAC地址学习。
Claims (7)
1.一种基于预读取方式的学习介质访问控制层MAC地址的装置,其特征在于,包括地址提取模块、学习模块、组帧模块、轮询模块、学习帧缓存模块、预读取模块、冲突检测模块、更新模块、时间模块;所述地址提取模块与学习模块相连;学习模块与地址提取模块、组帧模块相连;组帧模块与学习模块、轮询模块、时间模块相连;轮询模块与组帧模块、学习帧缓存模块相连;学习帧缓存模块与轮询模块、预读取模块相连;预读取模块与学习帧缓存模块、冲突检测模块相连;冲突检测模块与预读取模块、更新模块相连;更新模块与冲突检测模块相连;时间模块与组帧模块相连;其中:
所述地址提取模块,用于从接收的每一帧二层以太网数据帧中,提取介质访问控制层MAC地址的源地址,将所提取的源地址发送给学习模块;
所述学习模块,用于对源地址进行哈希计算,得到源地址的哈希值,将源地址的哈希值输入到学习模块内的地址表中,从地址表中查找与源地址的哈希值对应的一组表项信息,将源地址、源地址对应的哈希值、哈希值对应的表项信息一并发送给组帧模块;
所述组帧模块,用于从学习模块接收到的表项信息中,提取固定的一段时间标识,判断从时间模块接收的时间信息减去时间标识后得到的结果是否大于100秒,若是,则将时间模块提供的时间信息、学习模块提供的源地址以及源地址的哈希值组成学习帧发送到轮询模块,否则,继续判断表项信息中的介质访问控制层MAC地址是否与学习模块提供的源地址相同,若是,则将时间模块提供的时间信息、学习模块提供的源地址以及源地址的哈希值组成学习帧发送到轮询模块,否则,向网络管理中心上报学习冲突;
所述轮询模块,用于在学习帧缓存模块为非满状态时,轮询模块按照交换设备端口序号,从低到高循环轮询各端口序号对应的组帧模块,并将轮询得到的学习帧发送到学习帧缓存模块;
所述学习帧缓存模块,用于缓存学习帧;
所述预读取模块,用于当自身内有空闲寄存器时,持续的从学习帧缓存模块读取学习帧;
所述冲突检测模块,用于判断从预读取模块接收到学习帧中的表项地址与各端口序号对应的地址表正在被访问的地址是否相同,若是,则出现访问地址表的读写地址相同的读写冲突,等待读写冲突结束,否则,冲突检测模块在完成冲突检测的同时,从预读取模块读取一帧新的学习帧,用于下一周期对其进行冲突检测,并将已完冲突检测的学习帧发往更新模块;
所述更新模块,用于从冲突检测模块接收到的学习帧中提取表项地址和表项信息,然后更新各端口序号对应的地址表在提取到的表项地址处的表项信息;
所述时间模块,用于向组帧模块提供当前时间信息。
2.一种基于预读取方式的学习介质访问控制层MAC地址的方法,其特征在于,使用本发明的装置,在对学习帧进行冲突检测的同时读取新的学习帧,所述学习帧是由二层以太网帧中介质访问控制层MAC地址的源地址及输入的端口信息组成,具体步骤包括如下:
(1)提取二层以太网帧中介质访问控制层MAC地址的源地址:
地址提取模块从接收的每一帧二层以太网数据帧中,提取介质访问控制层MAC地址的源地址,将所提取的源地址发送给学习模块;
(2)计算源地址的哈希值:
学习模块对源地址进行哈希计算,得到源地址的哈希值;
(3)获得哈希值对应的表项信息:
(3a)将源地址的哈希值输入到学习模块内的地址表中,从地址表中查找与源地址的哈希值对应的一组表项信息;
(3b)将源地址、源地址对应的哈希值、哈希值对应的表项信息一并发送给组帧模块;
(4)输出学习帧:
(4a)组帧模块从学习模块接收到的表项信息中,提取时间标识;
(4b)判断从时间模块接收的时间信息减去时间标识后得到的结果是否大于100秒,若是,则执行步骤(4d),否则,执行步骤(4c);
(4c)判断表项信息中的介质访问控制层MAC地址是否与学习模块提供的源地址相同,若是,则执行步骤(4d),否则,向网络管理中心上报学习冲突后执行步骤(9);
(4d)将时间模块提供的时间信息、学习模块提供的源地址以及源地址对应的哈希值,组成学习帧发送到轮询模块后执行步骤(5);
(5)轮询多路组帧模块:
在学习帧缓存模块为非满状态时,轮询模块按照交换设备端口序号,从低到高循环轮询各端口序号对应的组帧模块,并将轮询得到的学习帧发送到学习帧缓存模块;
(6)预读取学习帧:
当预读取模块内有空闲寄存器时,预读取模块持续的从学习帧缓存模块读取学习帧;
(7)检测冲突:
(7a)冲突检测模块判断从预读取模块接收到学习帧中的表项地址与各端口序号对应的地址表正在被访问的地址是否相同,若是,则执行步骤(7b),否则,执行步骤(7c);
(7b)出现访问地址表的读写地址相同的读写冲突,等待读写冲突结束;
(7c)冲突检测模块在完成冲突检测的同时,从预读取模块读取一帧新的学习帧,用于下一周期对其进行冲突检测,并将已完冲突检测的学习帧发往更新模块;
(8)更新表项信息:
(8a)更新模块从冲突检测模块接收到的学习帧中提取表项地址和表项信息;
(8b)更新各端口序号对应的学习模块内的地址表在提取到的表项地址处的表项信息;
(9)完成介质访问控制层MAC地址学习。
3.根据权利要求2所述的基于预读取方式的学习介质访问控制层MAC地址的方法,其特征在于,步骤(3)中所述的表项信息包括介质访问控制层MAC地址、端口号、时间标识。
4.根据权利要求2所述的基于预读取方式的学习介质访问控制层MAC地址的方法,其特征在于,步骤(4a)中所述的时间标识是指,表项信息中一组表明该表项信息是何时被学习到的12位2进制数据。
5.根据权利要求2所述的一种基于预读取方式的学习介质访问控制层MAC地址的方法,其特征在于,步骤(4d)中所述的时间信息是指,时间模块向组帧模块提供的一组表示本发明装置已经工作了多长时间的12位2进制数据,其与时间标识的12位2进制数据之间的关系是,组帧模块将时间信息写入到学习帧中,更新模块提取学习帧中的时间信息,并将其作为时间标识更新到表项信息中。
6.根据权利要求2所述的基于预读取方式的学习介质访问控制层MAC地址的方法,其特征在于,步骤(4d)中所述的学习帧包括表项地址、介质访问控制层MAC地址、端口号、时间信息。
7.根据权利要求2所述的一种基于预读取方式的学习介质访问控制层MAC地址的方法,其特征在于,步骤(5)中所述的从低到高循环轮询各端口序号对应的组帧模块是指:
在学习帧缓存模块为非满状态时,轮询模块按照交换设备端口序号,从低到高依次轮询各端口序号对应的组帧模块;
当轮询模块轮询完最高端口序号处的组帧模块后,重新从端口序号1处的组帧模块开始,继续按照交换设备端口序号,从低到高依次轮询各端口序号对应的组帧模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711470624 | 2017-12-29 | ||
CN201711470624X | 2017-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108632148A true CN108632148A (zh) | 2018-10-09 |
CN108632148B CN108632148B (zh) | 2020-06-16 |
Family
ID=63705054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810315099.2A Active CN108632148B (zh) | 2017-12-29 | 2018-04-10 | 基于预读取方式的学习mac地址的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108632148B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111199411A (zh) * | 2018-11-19 | 2020-05-26 | 商派软件有限公司 | 广告投放方法及装置 |
CN114584531A (zh) * | 2022-03-17 | 2022-06-03 | 南京南瑞继保电气有限公司 | 多电平换流器系统子模块控制器自动学习地址的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232444A (zh) * | 2008-01-22 | 2008-07-30 | 杭州华三通信技术有限公司 | 哈希冲突解决方法、装置及具有该装置的交换设备 |
CN103117931A (zh) * | 2013-02-21 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
CN103731355A (zh) * | 2013-12-31 | 2014-04-16 | 迈普通信技术股份有限公司 | 避免mac地址学习时哈希冲突的方法及系统 |
CN105812264A (zh) * | 2016-03-15 | 2016-07-27 | 西安电子科技大学 | 多路并行的mac地址学习和地址查找的装置及方法 |
US20170228251A1 (en) * | 2014-09-29 | 2017-08-10 | Hangzhou H3C Technologies Co., Ltd. | Learning A MAC Address in VXLAN |
JP2017191977A (ja) * | 2016-04-12 | 2017-10-19 | 富士通株式会社 | フレーム処理装置およびフレーム処理方法 |
-
2018
- 2018-04-10 CN CN201810315099.2A patent/CN108632148B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232444A (zh) * | 2008-01-22 | 2008-07-30 | 杭州华三通信技术有限公司 | 哈希冲突解决方法、装置及具有该装置的交换设备 |
CN103117931A (zh) * | 2013-02-21 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
CN103731355A (zh) * | 2013-12-31 | 2014-04-16 | 迈普通信技术股份有限公司 | 避免mac地址学习时哈希冲突的方法及系统 |
US20170228251A1 (en) * | 2014-09-29 | 2017-08-10 | Hangzhou H3C Technologies Co., Ltd. | Learning A MAC Address in VXLAN |
CN105812264A (zh) * | 2016-03-15 | 2016-07-27 | 西安电子科技大学 | 多路并行的mac地址学习和地址查找的装置及方法 |
JP2017191977A (ja) * | 2016-04-12 | 2017-10-19 | 富士通株式会社 | フレーム処理装置およびフレーム処理方法 |
Non-Patent Citations (2)
Title |
---|
I. KAKALOU ; G.I. PAPADIMITRIOU ; P. NICOPOLITIDIS ; P.G. SARIGI: "A Reinforcement learning-based cognitive MAC protocol", 《2015 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC)》 * |
蒋友,罗惠琼: "二层交换机中MAC地址的学习、查找和老化方法", 《软件导刊》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111199411A (zh) * | 2018-11-19 | 2020-05-26 | 商派软件有限公司 | 广告投放方法及装置 |
CN111199411B (zh) * | 2018-11-19 | 2021-01-29 | 商派软件有限公司 | 广告投放方法及装置 |
CN114584531A (zh) * | 2022-03-17 | 2022-06-03 | 南京南瑞继保电气有限公司 | 多电平换流器系统子模块控制器自动学习地址的方法 |
CN114584531B (zh) * | 2022-03-17 | 2023-11-17 | 南京南瑞继保电气有限公司 | 多电平换流器系统子模块控制器自动学习地址的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108632148B (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110808910B (zh) | 一种支持QoS的OpenFlow流表节能存储架构及其方法 | |
US7606236B2 (en) | Forwarding information base lookup method | |
JP3645734B2 (ja) | ネットワーク中継装置及びネットワーク中継方法 | |
EP2019360B1 (en) | Data processing apparatus and data transfer method | |
CN100550847C (zh) | 一种解决Hash冲突的方法及装置 | |
US20080240106A1 (en) | Method and apparatus for MAC address learning | |
CN105812264B (zh) | 多路并行的mac地址学习和地址查找的装置及方法 | |
EP3657744B1 (en) | Message processing | |
CN108632148B (zh) | 基于预读取方式的学习mac地址的装置及方法 | |
US11695710B2 (en) | Buffer management method and apparatus | |
CN109981464B (zh) | 一种在fpga中实现的tcam电路结构及其匹配方法 | |
JPWO2014098114A1 (ja) | パケット処理装置、フローエントリの配置方法及びプログラム | |
WO2008119242A1 (fr) | Méthode de recherche dans un arbre multi-bit de type trie | |
WO2008003267A1 (fr) | Système de transmission de paquets en rafales basé sur un réseau à commutation optique de rafales, et procédé correspondant | |
CN107070797B (zh) | 一种报文转发的方法及系统 | |
US8503442B2 (en) | Transmission information transfer apparatus and method thereof | |
WO2011097859A1 (zh) | 一种实现灵活qinq的方法及装置 | |
CN114640641B (zh) | 一种流量感知的OpenFlow流表弹性节能查找方法 | |
CN101764758A (zh) | 用于连接以太网与光突发交换网络的边缘节点及实现方法 | |
CN117938783B (zh) | 一种交换芯片的分区路由共享方法和装置 | |
CN100349440C (zh) | 以太网数据通过弹性分组环传输的方法 | |
JP2011234063A (ja) | 中継装置、及び、転送方法 | |
JP2008085886A (ja) | パケット処理装置、パケット処理方法及びパケット処理プログラム | |
CN113301670B (zh) | 发送和转发无线广播包的方法、装置、系统及存储介质 | |
CN116094998A (zh) | 一种基于ovs的邻居表项的vxlan报文的转发方法及装置 |
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 |