CN1567870A - 基于端口的mac地址数量统计方法及其装置 - Google Patents
基于端口的mac地址数量统计方法及其装置 Download PDFInfo
- Publication number
- CN1567870A CN1567870A CN 03145602 CN03145602A CN1567870A CN 1567870 A CN1567870 A CN 1567870A CN 03145602 CN03145602 CN 03145602 CN 03145602 A CN03145602 A CN 03145602A CN 1567870 A CN1567870 A CN 1567870A
- Authority
- CN
- China
- Prior art keywords
- mac address
- port
- place
- new
- clock cycle
- 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
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明涉及一种基于端口的MAC地址数量统计方法。该方法针对各种类型可导致端口的MAC地址数量发生变化的情况分别进行监测,并根据发生的导致端口的MAC地址数量发生变化的情况的类型对端口的MAC地址数量进行调整。本发明通过由硬件实时完成网络接入设备端口学习到的MAC地址数量的统计,从而大大加快统计速度,提高了以太网交换机的性能,且利用硬件电路实现本发明可以节省大量硬件资源,优化了设计,降低成本。同时,本发明不仅可以准确实时统计出网络接入设备端口学习到的MAC地址数量值,实时保证端口的安全,还可以保证对相应端口学习到的MAC地址数量的统计不会影响以太网交换机的其它功能,即利用本发明统计学习到的MAC地址的同时不影响交换机的正常工作。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于端口的MAC地址数量统计方法及其装置。
背景技术
在通信网络的应用过程中,为避免一些非法用户对网络资源进行非授权访问,发送欺骗性的数据干扰网络功能等情况的发生,需要提供相应的网络安全技术,而在各种安全技术方案中,基于网络接入设备端口等物理安全技术尤其重要,如果网络接入设备没有应用相应的物理安全,其他所有的安全策略都将无法发挥相应的作用,所以物理安全是以太网交换机等网络接入设备安全的重点。目前,以太网交换机都提供了多种网络安全机制,其中基于端口的地址安全技术应用最为广泛。
基于端口的安全技术是以太网交换机对通过某个端口的数据包进行相应的控制,对不符合安全要求的数据包作丢弃处理。通常当源MAC地址没有被学习到MAC地址表时,对应该MAC地址的用户将收不到数据包,同时,该用户向外发送的数据包也将被作丢弃处理。
目前,一些以太网交换机端口安全策略中,采用了一种通过设置允许端口学习的单播MAC地址数量对接入用户进行相应的网络访问控制的网络访问控制技术,即通过控制以太网交换机端口允许接入用户的数量保证网络的安全性能。具体包括以下两种方法:
1、首先在以太网交换机中设置一张软MAC地址表,以便于对各个端口学习MAC地址的数量进行统计;然后禁止芯片自动学习MAC地址,并将未知MAC地址的数据包发送至CPU进行处理,最后由CPU遍历软MAC地址表统计各个端口对应的学习到的MAC地址数量;
统计出各个端口学习到的MAC地址数量后,再判断端口学习到的MAC地址数量是否达到设定该端允许学习的MAC地址数量阈值,如果达到所述阈值,则禁止芯片自动学习MAC地址,这样,从该端口上来的源MAC地址便不再添加到MAC地址表中,限制了接入用户的数量,为网络安全提供了保证;如果没有达到阈值,则允许学习的MAC地址,并将新学习到的MAC地址由软件分别添加到软MAC地址表和硬MAC地址表,以保证软硬MAC地址表一致。
该方法中对端口学习到的MAC地址数量的统计需要通过建立一张软MAC地址表实现,软MAC地址表的建立占用了有限的网络接入设备(即以太网交换机)资源;且当学习新的MAC地址时,需要根据端口MAC数量是否达到阈值,决定是否将其添加到软硬MAC地址表中,浪费了网络的带宽资源;另外,该方法中没有实现动态实时统计端口的MAC地址数量,从而使得该方法的应用效果将受到一定程度的影响。同时,该方法中关闭端口的自学习功能以统计端口的MAC地址数量,将影响以太网交换机的正常工作;
2、首先通过配置相应端口为锁定状态实现针对该端口已经学习到的MAC地址数量的统计,即当使能端口学习MAC地址数量限制时,端口配置为锁定状态,且MAC地址不老化,这样就能保证软件可以维持端口对应MAC地址数的计数器的值不变,再由软件来遍历硬MAC地址表,统计出端口对应的MAC地址数量;
然后同软件根据实际端口学习到的MAC地址数量跟该端口允许学习到的MAC地址数量阈值进行比较,如果未达到阈值,由软件配置该端口不锁定,该端口上来的源MAC地址可以学习到硬MAC地址表中;如果达到阈值,则将该端口锁定,不允许向硬MAC地址表中添加从该端口上来的MAC地址,即丢弃由该端口进入未知源MAC地址的数据包。
该方法中通过软件配置端口锁定,使硬件不学习MAC地址表,当使能端口的MAC地址数量限制时,进行端口MAC地址数的统计需要软件遍历硬MAC地址表,所需时间较长,且占用了一定量网络带宽资源。同时,利用该方法完成端口的MAC地址数量限制功能,软、硬件需要多次交互,影响了以太网交换机的正常工作。另外,该方法与第一种方法同样未实现动态实时统计端口学习到的MAC地址数量,即无法实时体现端口的MAC地址学习数量限制功能。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种基于端口的MAC地址数量统计方法及其装置,以克服现有技术所存在的问题,并可以实时准确地统计网络接入设备端口学习到的MAC地址数量,方便了进一步需要实现网络访问控制方案。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种基于端口的MAC地址数量统计方法,包括:
a、确定各种类型导致端口的MAC地址数量发生变化的情况;
b、实时对各种类型导致端口的MAC地址数量发生变化的情况进行监测;
c、根据发生的导致端口的MAC地址数量发生变化的情况的类型对端口的MAC地址数量进行调整。
所述的步骤a包括:
a1、确定端口学习新的MAC地址;
a2、确定老化端口已经学习到的MAC地址;
a3、确定软件对端口的MAC地址进行添加或删除维护。
所述的步骤a1包括:
确定端口学习新的MAC地址,并添加至MAC地址表的空表项中;
确定端口学习新的MAC地址,并覆盖MAC地址表的已经保存着MAC地址的表项。
所述的步骤a3包括:
确定软件向端口添加新的MAC地址,且添加至MAC地址表的空表项中;
确定软件向端口添加新的MAC地址,且覆盖MAC地址表的已经保存着MAC地址的表项。
所述的步骤b为:
采用一级流水分别对各种类型导致端口的MAC地址数量发生变化的情况进行监测。
所述的步骤b包括:
设定一级流水的时钟周期数,并为各时钟周期定义时钟周期序号;
确定监测各种类型导致端口的MAC地址数量发生变化的情况的时钟周期的时钟周期序号;
当一级流水的时钟周期运行到相应序号的时钟周期时,监测该时钟周期序号对应的相应类型导致端口的MAC地址数量发生变化的情况是否发生。
所述的步骤c包括:
在相应的时钟周期序号对应的时钟周期,如果确定因端口学习新的MAC地址需要覆盖MAC地址表的已经保存着MAC地址的表项,则寄存被覆盖的MAC地址所在的端口,将被覆盖的MAC地址所在的端口的MAC地址数量减1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定端口学习新的MAC地址,并添加至MAC地址表的空表项中,或者是覆盖了MAC地址表中已经存在的MAC地址,则寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定老化已经学习到的MAC地址,则寄存老化的MAC地址所在的端口,将该端口的MAC地址数量减1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定因软件向端口添加新的MAC地址需要覆盖MAC地址表的已经保存着MAC地址的表项,或者确定软件删除MAC地址表中的MAC地址,则寄存被覆盖的MAC地址所在的端口或被删除的MAC地址所在的端口,将被覆盖的MAC地址所在的端口或被删除的MAC地址所在的端口的MAC地址数量减1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定软件向端口添加新的MAC地址,且添加至MAC地址表的空表项中,则寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1,否则,不作处理。
所述的步骤b为:
采用状态机实时对各种类型导致端口的MAC地址数量发生变化的情况进行监测。
所述的步骤b包括:
根据各种类型导致端口的MAC地址数量发生变化的情况建立四种状态的状态机,且四个状态分别为:
初始状态:为状态机的初始状态;
学习状态:学习新的MAC地址的状态;
老化状态:老化MAC地址的状态;
软件维护状态:软件对MAC地址进行添加或删除操作的状态;
当发生导致端口的MAC地址数量发生变化的情况时,状态机由初始状态转入相应的状态。
所述的步骤c包括:
当转入学习状态时,确定端口学习新的MAC地址,当将新的MAC地址添加至MAC地址表的空表项中时,寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1;当新的MAC地址覆盖MAC地址表的已经保存着MAC地址的表项时,则分别寄存新的MAC地址所在的端口和被覆盖的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,将被覆盖的MAC地址所在的端口的MAC地址数量减1;
当转入老化状态时,确定老化已经学习到的MAC地址,则寄存老化的MAC地址所在的端口,将该端口的MAC地址数量减1;
当转入软件维护状态时,如果确定软件向端口添加新的MAC地址,且添加至MAC地址表的空表项中,则寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1;如果确定软件向端口添加新的MAC地址,且覆盖MAC地址表的已经保存着MAC地址的表项,则分别寄存新的MAC地址所在的端口和被覆盖的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,将被覆盖的MAC地址所在的端口的MAC地址数量减1;如果确定软件删除端口上已经学习到的MAC地址,则寄存该MAC地址所在的端口,并该端口的MAC地址数量减1。
本发明还提供了一种基于端口的MAC地址数量统计装置,包括:
端口选择电路:引入各端口计数值信号的及端口选择信号,进行选择处理后输出给端口MAC地址选择计数电路;
端口选择计数电路:接收端口选择电路输出相应端口的端口计数值信号,根据引入的端口计数方式信号进行相应端口的MAC地址数量统计,并输出统计结果。
所述的端口选择电路:为一个引入各端口计数值信号及端口选择信号的端口信号选择器,端口信号选择器根据引入的信号确定相应端口的端口计数值信号,并输出至端口计数选择器;
所述的端口MAC地址计数电路进一步包括:
一个接收端口选择电路输出的端口计数值信号的端口计数选择器,根据端口计数选择器引入的端口计数方式信号对所述的端口计数值信号进行处理,并输出给端口计数值寄存器;
译码器:引入端口选择信号,经译码处理后输出给每个端口计数值寄存器的二选一选择器,作为选择信号;
端口计数值寄存器:每一个端口对应一个端口计数值寄存器,分别引入端口计数选择器输出的相应端口的端口计数值,并根据译码器输出的信号确定将端口计数选择器输出的端口计数值存入相应端口对应的端口计数值寄存器中。
由上述技术方案可以看出,本发明通过由硬件实时完成网络接入设备端口学习到的MAC地址数量的统计,从而大大加快统计速度,提高了以太网交换机的性能,且利用硬件电路实现本发明可以节省大量硬件资源,优化了设计,降低成本。因此,本发明解决了软件完成学习到的MAC地址数量统计时需要处理过程繁琐的问题,简化了对网络接入设备端口学习到的MAC地址数量进行统计时的处理过程。同时,本发明不仅可以准确实时统计出网络接入设备端口学习到的MAC地址数量值,实时保证端口的安全,还可以保证对相应端口学习到的MAC地址数量的统计不会影响以太网交换机的其他功能,即利用本发明统计学习到的MAC地址的同时不影响交换机的正常工作。
附图说明
图1为采用流水的方法统计端口MAC地址数量的示意图;
图2为图1的时序图;
图3为采用状态机的方法统计端口MAC地址数量的示意图;
图4为所述的基于端口的MAC地址数量统计装置结构示意图。
具体实施方式
本发明所述的基于端口的MAC地址数量统计方法的实质是:首先,确定各种类型导致端口的MAC地址数量发生变化的情况;然后,实时对各种类型导致端口的MAC地址数量发生变化的情况进行监测;最后,根据发生的导致端口的MAC地址数量发生变化的情况,及所述情况的类型对端口的MAC地址数量进行调整。
为实现本发明首先需要确定可导致端口的MAC地址数量发生变化的情况,基于现有的通信设备应用的相关通信技术可以知道,目前,可导致端口的MAC地址数量发生变化包括以下几种情况:
(1)端口学习新的MAC地址时,将导致端口的MAC地址数量发生变化,这种变化又进一步包括两种情况:
一种情况是端口学习新的MAC地址时,MAC地址表中存在空表项,此时,将新的MAC地址添加至MAC地址表的空表项中;
另一种情况是端口学习新的MAC地址时,MAC地址表中不存在空表项,此时,需要以新的MAC地址覆盖MAC地址表中已经保存着MAC地址的表项。
(2)老化端口已经学习到的MAC地址时,将导致端口的MAC地址数量发生变化;
通常在MAC地址表中除静态配置的表项外,自动学习到的MAC地址均有空闲存在时间的限制,即如果某一MAC地址在设定的时间内一直未接收或发送报文,则需要通过老化MAC地址软件将其老化掉,以保证网络中报文的正常收发,并节省MAC地址表中的空间;
(3)软件对端口的MAC地址进行添加或删除维护时,将导致端口的MAC地址数量发生变化,具体包括:
软件向端口添加新的MAC地址时,MAC地址表中有空表项,则将新的MAC地址添加至MAC地址表的空表项中;
软件向端口添加新的MAC地址时,MAC地址表中没有空表项,则以新的MAC地址覆盖MAC地址表的已经保存着MAC地址的表项;
根据需要通过软件将MAC地址表中相应的MAC地址删除。
确定了通信网络中可导致端口的MAC地址发生变化的各种情况后,为实现本发明,则需要在各种可导致端口的MAC地址发生变化的情况发生时,对端口的MAC地址数量进行实时统计处理,以满足网络通信***中限制学习MAC地址数量的需求。
下面将就如何对端口的MAC地址数量进行实时统计作进一步说明,对端口的MAC地址数量进行实时统计可以采用一级流水的方式实现,也可以采用状态机实现,其中:
所述的采用一级流水实现对端口MAC地址数量进行实时统计如图1和图2所示,具体包括:
步骤11:设定一级流水处理需要的时钟周期数,通常根据时钟周期及需要的一级流水的处理时间确定一级流水处理需要的时钟周期;
例如,假设时钟频率为100MHz,确定一级流水处理包括14个时钟周期,并对应时钟周期计数器计数值cnt为0-13,即对应的时钟周期序号为0-13;
步骤12:确定监测各种类型可导致端口的MAC地址数量发生变化的情况的时钟周期的时钟周期序号;
假设如图2所示,确定在时刻T(T为自然数,且为根据需要设定),即时钟周期序号为4的时刻,此时时钟周期计数器的计数值为4,对学习新的MAC地址的情况进行监测并处理;
确定在时刻T+U(U为自然数,根据需要设置)时,即时钟周期序号为7,时钟周期计数器的计数值为7时,对根据需要对MAC地址表中的MAC地址进行老化的情况进行监测并处理;
确定在时刻T+J(J为自然数,根据需要设置)时,即时钟周期序号为10,时钟周期计数器的计数值为10时,对软件维护MAC地址表的情况进行监测处理;
一级流水中上述时刻T、T+1、T+U、T+J、T+J+1都少于一级流水的总的时钟周期数,且T、J、U的具体数值可以根据实际情况确定,其中时刻T、T+1、T+U、T+J、T+J+1分别是指在一级流水中某个时钟周期序号,即某个时钟周期计数值,例如一级流水有20个时钟周期,T可以等于3,表示一级流水的第3个时钟周期,如图2所示,所采用的时钟频率为100MHz,一级流水包括14个时钟周期,并选择T为4,T+U为7,T+J为10;
步骤13:当一级流水的时钟周期运行到相应时钟周期序号的时钟周期时,监测该时钟周期序号对应的相应类型导致端口的MAC地址数量发生变化的情况是否发生,并执行步骤14进行相应的处理;
例如,当一级流水的时钟处于时刻T时,监测是否学习了新的MAC地址;
步骤14:根据监测结果对相应端口的MAC地址数量进行实时统计,根据发生不同类型导致端口的MAC地址发生变化的情况,具体处理过程如下:
在时刻T,即时钟周期序号为4时,如果根据监测结果确定端口成功学习新的MAC地址,且为保存该新的MAC地址需要覆盖MAC地址表的已经保存着MAC地址的表项,则寄存被覆盖的MAC地址所在的端口,将被覆盖的MAC地址所在的端口的MAC地址数量减1,否则,在该时刻各端口的MAC地址数量均保持不变,即不需要作任何处理;
接着,在时刻T+1,即时钟周期序号为5时,如果根据监测结果确定端口成功学习新的MAC地址,无论是将新的MAC地址添加至MAC地址表的空表项中,还是覆盖了MAC地址表中已经存在的MAC地址,则寄存新的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,否则,在该时刻各端口的MAC地址数量均保持不变,即不需要作任何处理;否则,在该时刻各端口的MAC地址数量均保持不变,即不需要作任何处理;
在时刻T+U,即时钟周期序号为7时,根据监测结果如果确定发生老化MAC地址表中端口已经学习到的MAC地址的情况,则寄存被老化的MAC地址所在的端口,将该端口的MAC地址数量减1,否则,在该时刻各端口的MAC地址数量保持不变,即不需要作任何处理;
在时刻T+J,即时钟周期序号为10时,根据监测结果如果确定软件向端口成功添加新的MAC地址,且为保存新的MAC地址需要覆盖MAC地址表的已经保存着MAC地址的表项,或者根据监测结果确定软件需要成功删除MAC地址表中的某个MAC地址,则寄存被覆盖的MAC地址所在的端口,或者寄存需要删除的MAC地址所在的端口,将被覆盖的MAC地址所在的端口或者需要删除的MAC地址所在的端口的MAC地址数量减1,否则,在该时刻各端口的MAC地址数量保持不变,即不需要作任何处理;因为软件删除MAC地址表的表项的操作和添加MAC地址表的表项的操作不可能同时出现,所以可以将覆盖MAC址址表中已经存在的MAC地址的情况和删除MAC地址表中的MAC地址的情况采用一级流水中的同一时刻进行处理;
接着在时刻T+J+1,即时钟周期序号为11时,根据监测结果如果确定软件向端口成功添加新的MAC地址,无论是将新的MAC地址保存至MAC地址表中的空表项,还是通过覆盖MAC地址表的已经保存着MAC地址的表项保存新的MAC地址,则寄存新的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,否则,在该时刻各端口的MAC地址数量保持不变,即不需要作任何处理;
如图2所示,端口选择信号sel_port根据寄存的端口选择确定相应的端口,即在时刻T、T+1、T+U、T+J、T+J+1分别选择确定端口a、b、c、d、e,以对相应端口的MAC地址数量进行统计;counter_port_a、counter_port_b、counter_port_c、counter_port_d、counter_port_e分别对应端口a、b、c、d、e的MAC地址数量;端口计数选择信号sel_add_sub根据在时刻T、T+1、T+U、T+J、T+J+1时端口的MAC地址数量的增减,确定选择对应端口(sel_port)的MAC地址数量的加、减或不变的结果。
本发明所述的所述的基于端口的MAC地址数量统计方法还可以采用状态机实现实时对各种类型导致端口的MAC地址数量发生变化的情况进行监测处理,如图3所示,具体为:
首先,根据各种类型导致端口的MAC地址数量发生变化的情况建立四种状态的状态机,且四个状态分别为:
初始状态:为状态机的初始状态;
学习状态:学习新的MAC地址的状态;
通常当源端口(即数据包进来的端口)对应的MAC地址数大于或等于该端口对应的MAC地址数的阈值时,该端口不允许学习且该端口进来的数据包被丢弃;否则允许该端口学习相应的MAC地址,同时也不丢弃该数据包;
当允许端口学习MAC地址时,根据需要学习新的MAC地址查找MAC地址表,找到匹配表项时,再根据匹配表项的相关属性和寄存器的配置确定即将被新的MAC地址覆盖的MAC地址的端口,并寄存该端口;
如果没有找到匹配表项时,则在MAC地址表中查找空表项,以保存新的MAC地址,并寄存器新的MAC地址所在的端口;
在学习状态中,需要产生如下信号:
learn_match信号:表示找到匹配表项时成功学***有效;
learn_match_ff信号:为learn_match信号寄存一拍的值,该信号有效时,表示MAC地址表中学习了新的MAC地址;
learn_nomatch信号:表示没有找到匹配表项时成功学***有效;
老化状态:老化MAC地址的状态,即确定对应MAC地址表中某个表项需要老化,并确定要老化的MAC地址的端口;
该状态需要产生的信号为age_permit信号:表示允许MAC地址表中某个表项老化的信号,高电平有效;
软件维护状态:软件对MAC地址进行添加或删除操作的状态;
确定MAC地址表中软件需要删除的表项,并执行删除操作,寄存被删除掉的端口;
确定MAC地址表中找到对应软件要添加的匹配表项(将已添加的新的MAC地址覆盖匹配表项中的已经存在的MAC地址的方式保存新的MAC地址)或没有找到匹配且有空表项(将需要添加的新MAC地址添加至该空表项中),并执行添加操作,寄存添加时被覆盖的端口和要添加的端口;
在软件维护状态中需要产生如下信号:
cpu_del_success信号:表示CPU成功删除MAC地址表项的信号,高电平有效,即当硬MAC地址表中找到对应软件要删除的表项时,该信号为1;
cpu_add_success信号:表示CPU成功添加MAC地址表项的信号,高电平有效,即当硬MAC地址表中找到对应软件要添加的匹配表项或没有找到匹配且有空地址表项时,该信号为1。
cpu_add_success_ff信号:表示为信号cpu_add_success信号寄存一拍的值;
为实现状态机在各个状态转换过程中实现对相应端口的MAC地址数量进行统计,还需要产生如下信号:
sel_port信号:表示各个状态中需要进行统计MAC地址数量的端口号,与信号sel_add_sub的时序一致:
在学习状态中,当learn_match为1时,寄存表项中的端口,即要被学习覆盖的端口,当learn_match_ff或learn_nomatch为1时,寄存学习的新的MAC地址对应的端口;
在老化状态中,当age_permit信号有效时,寄存要被老化表项对应的被老化端口;
在软件维护状态中,当信号cpu_del_success为1时,寄存被删除掉的端口,当cpu_add_success为1时,且找到了匹配表项,则寄存添加时被覆盖的端口;当cpu_add_success_ff为1时,寄存添加的新的MAC地址对应的端口;
其他情况,信号sel_port保持不变;
sel_add_sub信号:表示确定各个状态下进行端口的MAC地址数量统计时的加、减或不变的处理方式:
在学习状态中,当learn_match为1时,选择减法器的结果;当learn_match_ff或learn_nomatch为1时,选择加法器的结果;
在老化状态中,当age_permit信号有效时,选择减法器的结果;
在软件维护状态中,当信号cpu_del_success为1或cpu_add_success为1时,且找到了匹配表项,选择减法器的结果;当cpu_add_success_ff为1时,选择加法器的结果;
其他情况,sel_add_sub信号选择不变的结果;
当发生导致端口的MAC地址数量发生变化的情况时,则触发状态机由初始状态转入上述四个状态中相应的状态:
确定端口学习新的MAC地址时,则将状态机转入学习状态,当将新的MAC地址添加至MAC地址表的空表项中时,寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1;当新的MAC地址覆盖MAC地址表的已经保存着MAC地址的表项时,则分别寄存新的MAC地址所在的端口和被覆盖的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,将被覆盖的MAC地址所在的端口的MAC地址数量减1;
确定老化端口已经学习到的MAC地址时,则将状态机转入老化状态,寄存老化的MAC地址所在的端口,将该端口的MAC地址数量减1;
确定软件对MAC地址表进行维护时,则将状态机转入软件维护状态时,如果确定软件向端口添加新的MAC地址,且添加至MAC地址表的空表项中,则寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1;如果确定软件向端口添加新的MAC地址,且覆盖MAC地址表的已经保存着MAC地址的表项,则分别寄存新的MAC地址所在的端口和被覆盖的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,将被覆盖的MAC地址所在的端口的MAC地址数量减1;如果确定软件删除端口上已经学习到的MAC地址,则寄存该MAC地址所在的端口,并该端口的MAC地址数量减1。
如图3所示,状态机的状态转移条件说明如下:
IDLE(初始状态):
IF(condition1)to SOFT_ADD_DEL/如果满足condition1(软件维护MAC地址表的条件),则转入软件维护状态;
ELSE IF(condition2)to LEARN/否则,如果满足condition2(学习MAC地址的条件),则转入学习状态;
ELSE IF(condition3)to AGE/否则,如果满足condition3(老化MAC地址的条件),则转入老化状态;
ELSE to IDLE/否则,保持初始状态;
AGE(老化状态):
IF(not finishing aging-operation)to AGE/如果未完成执行对相应MAC地址的老化操作,继续保持老化状态;
ELSE to IDLE/否则,转入初始状态;
SOFT_ADD_DEL(软件维护状态):
IF(not finishing software-operation)to SOFT_ADD_DEL/如果未完成执行相应软件维护操作,继续保持软件维护状态;
ELSE to IDLE/否则,转入初始状态;
LEARN(学习状态):
IF(not finishing learning-operation)to LEARN/如果未完成执行MAC地址学习操作,继续保持学习状态;
ELSE to IDLE/否则,转入初始状态。
基于上述本发明所述的方法,本发明还提供了一种基于端口的MAC地址数量统计装置,该装置的具体实现方式如图4所示,包括:
端口选择电路:引入各端口计数值信号的及端口选择信号,进行选择处理后输出给端口MAC地址计数电路;所述的端口选择电路为一个引入各端口计数值信号及端口选择信号的端口信号选择器,端口信号选择器根据引入的信号确定相应端口的端口计数值信号,并输出至端口计数选择器;
端口选择计数电路:接收端口选择电路输出相应端口的端口计数值信号,根据引入的端口计数方式信号进行相应端口的MAC地址数量统计,并输出统计结果,所述的端口MAC地址计数电路进一步包括:
一个接收端口选择电路输出的端口计数值信号的端口计数选择器,根据端口计数选择器引入的端口计数方式信号对所述的端口计数值信号进行处理,并输出给端口计数值寄存器;
译码器:引入端口选择信号,经译码处理后输出给每个端口计数值寄存器的二选一选择器,作为选择信号,以便于每个端口选择确定是以当前的端口的MAC地址数量统计数值作为端口MAC地址数量的统计结果,还是以端口计数选择器输出的端口的MAC地址数量作为端口中MAC地址数量的统计结果;
端口计数值寄存器:每一个端口对应一个端口计数值寄存器,分别引入端口计数选择器输出的相应端口的端口计数值,并根据译码器输出的信号确定将端口计数选择器输出的端口计数值存入相应端口对应的端口计数值寄存器中。
图2中的端口计数值寄存器counter_port_0~counter_port_X,X为交换机的端口数减一,每个端口计数值寄存器的宽度为Hbit,且MAC地址表的深度为2H,H值由用户根据需要确定。
如图2所示,根据sel_port信号从端口counter_port_0~coumter_port_X中选取一个赋值给信号counter_port;然后送给加法器、减法器和端口计数选择器;端口计数选择器根据信号sel_add_sub选取信号counter_add、counter_sub、countre_port其中之一赋值给信号counter_sel;根据sel_port信号经译码器译码后的值选择counter_sel赋值给端口计数值寄存器counter_port_0~coumter_port_X中的一个,从而完成动态实时维护各个端口的MAC地址数量。
由此可以看出,上述电路由五级逻辑电路和一级时序电路组成,整个电路共用了一个加法器和减法器,且仅使用了与交换机端口数相同数量的寄存器,因此,本发明所述的装置结构简单,易于实施。
Claims (12)
1、一种基于端口的MAC地址数量统计方法,其特征在于包括:
a、确定各种类型导致端口的MAC地址数量发生变化的情况;
b、实时对各种类型导致端口的MAC地址数量发生变化的情况进行监测;
c、根据发生的导致端口的MAC地址数量发生变化的情况的类型对端口的MAC地址数量进行调整。
2、根据权利要求1所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤a包括:
a1、确定端口学习新的MAC地址;
a2、确定老化端口已经学习到的MAC地址;
a3、确定软件对端口的MAC地址进行添加或删除维护。
3、根据权利要求2所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤a1包括:
确定端口学习新的MAC地址,并添加至MAC地址表的空表项中;
确定端口学习新的MAC地址,并覆盖MAC地址表的已经保存着MAC地址的表项。
4、根据权利要求2或3所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤a3包括:
确定软件向端口添加新的MAC地址,且添加至MAC地址表的空表项中;
确定软件向端口添加新的MAC地址,且覆盖MAC地址表的已经保存着MAC地址的表项。
5、根据权利要求1或2所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤b为:
采用一级流水分别对各种类型导致端口的MAC地址数量发生变化的情况进行监测。
6、根据权利要求5所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤b包括:
设定一级流水的时钟周期数,并为各时钟周期定义时钟周期序号;
确定监测各种类型导致端口的MAC地址数量发生变化的情况的时钟周期的时钟周期序号;
当一级流水的时钟周期运行到相应序号的时钟周期时,监测该时钟周期序号对应的相应类型导致端口的MAC地址数量发生变化的情况是否发生。
7、根据权利要求6所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤c包括:
在相应的时钟周期序号对应的时钟周期,如果确定因端口学习新的MAC地址需要覆盖MAC地址表的已经保存着MAC地址的表项,则寄存被覆盖的MAC地址所在的端口,将被覆盖的MAC地址所在的端口的MAC地址数量减1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定端口学习新的MAC地址,并添加至MAC地址表的空表项中,或者是覆盖了MAC地址表中已经存在的MAC地址,则寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定老化已经学习到的MAC地址,则寄存老化的MAC地址所在的端口,将该端口的MAC地址数量减1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定因软件向端口添加新的MAC地址需要覆盖MAC地址表的已经保存着MAC地址的表项,或者确定软件删除MAC地址表中的MAC地址,则寄存被覆盖的MAC地址所在的端口或被删除的MAC地址所在的端口,将被覆盖的MAC地址所在的端口或被删除的MAC地址所在的端口的MAC地址数量减1,否则,不作处理;
在相应的时钟周期序号对应的时钟周期,如果确定软件向端口添加新的MAC地址,且添加至MAC地址表的空表项中,则寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1,否则,不作处理。
8、根据权利要求1或2所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤b为:
采用状态机实时对各种类型导致端口的MAC地址数量发生变化的情况进行监测。
9、根据权利要求8所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤b包括:
根据各种类型导致端口的MAC地址数量发生变化的情况建立四种状态的状态机,且四个状态分别为:
初始状态:为状态机的初始状态;
学习状态:学习新的MAC地址的状态;
老化状态:老化MAC地址的状态;
软件维护状态:软件对MAC地址进行添加或删除操作的状态;
当发生导致端口的MAC地址数量发生变化的情况时,状态机由初始状态转入相应的状态。
10、根据权利要求9所述的基于端口的MAC地址数量统计方法,其特征在于所述的步骤c包括:
当转入学习状态时,确定端口学习新的MAC地址,当将新的MAC地址添加至MAC地址表的空表项中时,寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1;当新的MAC地址覆盖MAC地址表的已经保存着MAC地址的表项时,则分别寄存新的MAC地址所在的端口和被覆盖的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,将被覆盖的MAC地址所在的端口的MAC地址数量减1;
当转入老化状态时,确定老化已经学习到的MAC地址,则寄存老化的MAC地址所在的端口,将该端口的MAC地址数量减1;
当转入软件维护状态时,如果确定软件向端口添加新的MAC地址,且添加至MAC地址表的空表项中,则寄存新的MAC地址所在的端口,将该端口的MAC地址数量加1;如果确定软件向端口添加新的MAC地址,且覆盖MAC地址表的已经保存着MAC地址的表项,则分别寄存新的MAC地址所在的端口和被覆盖的MAC地址所在的端口,将新的MAC地址所在的端口的MAC地址数量加1,将被覆盖的MAC地址所在的端口的MAC地址数量减1;如果确定软件删除端口上已经学习到的MAC地址,则寄存该MAC地址所在的端口,并该端口的MAC地址数量减1。
11、一种基于端口的MAC地址数量统计装置,其特征在于包括:
端口选择电路:引入各端口计数值信号的及端口选择信号,进行选择处理后输出给端口MAC地址选择计数电路;
端口选择计数电路:接收端口选择电路输出相应端口的端口计数值信号,根据引入的端口计数方式信号进行相应端口的MAC地址数量统计,并输出统计结果。
12、根据权利要求11所述的基于端口的MAC地址数量统计装置,其特征在于:
所述的端口选择电路:为一个引入各端口计数值信号及端口选择信号的端口信号选择器,端口信号选择器根据引入的信号确定相应端口的端口计数值信号,并输出至端口计数选择器;
所述的端口MAC地址计数电路进一步包括:
一个接收端口选择电路输出的端口计数值信号的端口计数选择器,根据端口计数选择器引入的端口计数方式信号对所述的端口计数值信号进行处理,并输出给端口计数值寄存器;
译码器:引入端口选择信号,经译码处理后输出给每个端口计数值寄存器的二选一选择器,作为选择信号;
端口计数值寄存器:每一个端口对应一个端口计数值寄存器,分别引入端口计数选择器输出的相应端口的端口计数值,并根据译码器输出的信号确定将端口计数选择器输出的端口计数值存入相应端口对应的端口计数值寄存器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031456022A CN1302646C (zh) | 2003-06-24 | 2003-06-24 | 基于端口的mac地址数量统计方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031456022A CN1302646C (zh) | 2003-06-24 | 2003-06-24 | 基于端口的mac地址数量统计方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1567870A true CN1567870A (zh) | 2005-01-19 |
CN1302646C CN1302646C (zh) | 2007-02-28 |
Family
ID=34471467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031456022A Expired - Lifetime CN1302646C (zh) | 2003-06-24 | 2003-06-24 | 基于端口的mac地址数量统计方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1302646C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095717A (zh) * | 2013-01-28 | 2013-05-08 | 杭州华三通信技术有限公司 | 防止mac地址表溢出攻击的方法及网络设备 |
CN103428091A (zh) * | 2012-05-15 | 2013-12-04 | 中兴通讯股份有限公司 | Mac地址学习的控制方法及转发设备 |
CN103957166A (zh) * | 2014-05-06 | 2014-07-30 | 迈普通信技术股份有限公司 | 终端接入数量控制方法和*** |
CN109218198A (zh) * | 2018-10-09 | 2019-01-15 | 迈普通信技术股份有限公司 | 数据交互方法、装置、mpls网络及储存介质 |
CN115118681A (zh) * | 2022-06-22 | 2022-09-27 | 烽火通信科技股份有限公司 | 一种软硬件相结合配置mac地址条目的方法、***和装置 |
CN117376282A (zh) * | 2023-12-05 | 2024-01-09 | 深圳万物安全科技有限公司 | 交换机视图显示方法、设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5914938A (en) * | 1996-11-19 | 1999-06-22 | Bay Networks, Inc. | MAC address table search unit |
US6331985B1 (en) * | 1997-08-21 | 2001-12-18 | Adc Telecommunications, Inc. | Telecommunication network with variable address learning, switching and routing |
-
2003
- 2003-06-24 CN CNB031456022A patent/CN1302646C/zh not_active Expired - Lifetime
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428091A (zh) * | 2012-05-15 | 2013-12-04 | 中兴通讯股份有限公司 | Mac地址学习的控制方法及转发设备 |
CN103095717A (zh) * | 2013-01-28 | 2013-05-08 | 杭州华三通信技术有限公司 | 防止mac地址表溢出攻击的方法及网络设备 |
CN103095717B (zh) * | 2013-01-28 | 2015-11-25 | 杭州华三通信技术有限公司 | 防止mac地址表溢出攻击的方法及网络设备 |
CN103957166A (zh) * | 2014-05-06 | 2014-07-30 | 迈普通信技术股份有限公司 | 终端接入数量控制方法和*** |
CN103957166B (zh) * | 2014-05-06 | 2018-02-09 | 迈普通信技术股份有限公司 | 终端接入数量控制方法和*** |
CN109218198A (zh) * | 2018-10-09 | 2019-01-15 | 迈普通信技术股份有限公司 | 数据交互方法、装置、mpls网络及储存介质 |
CN115118681A (zh) * | 2022-06-22 | 2022-09-27 | 烽火通信科技股份有限公司 | 一种软硬件相结合配置mac地址条目的方法、***和装置 |
CN115118681B (zh) * | 2022-06-22 | 2023-05-30 | 烽火通信科技股份有限公司 | 一种软硬件相结合配置mac地址条目的方法、***和装置 |
CN117376282A (zh) * | 2023-12-05 | 2024-01-09 | 深圳万物安全科技有限公司 | 交换机视图显示方法、设备及计算机可读存储介质 |
CN117376282B (zh) * | 2023-12-05 | 2024-03-26 | 深圳万物安全科技有限公司 | 交换机视图显示方法、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1302646C (zh) | 2007-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1220389C (zh) | 解块过滤设备和方法 | |
CN1467965A (zh) | 分组处理装置 | |
CN1830189A (zh) | 用于具有传输质量评估的多载波传输/接收的装置及方法 | |
CN1249963C (zh) | 使用分组摘要信息快速和自适应处理分组的设备和方法 | |
CN1773992A (zh) | 通信业务控制规则产生的方法和*** | |
CN101068178A (zh) | 使用、管理mac地址表的方法、***、及搜索引擎 | |
CN1863156A (zh) | 通过分组网络提供时钟同步的方法和*** | |
CN1794877A (zh) | 小区重选处理方法、终端测量方法及用户终端 | |
CN1921457A (zh) | 一种网络设备和基于多核处理器的报文转发方法 | |
CN101064577A (zh) | 下行控制信令的传输方法和设备 | |
CN1567870A (zh) | 基于端口的mac地址数量统计方法及其装置 | |
CN1321273A (zh) | 操作***和虚拟计算机*** | |
CN1946061A (zh) | 一种快速处理报文的方法及装置 | |
CN1631017A (zh) | 发送装置、接收装置和发送/接收装置 | |
CN1393062A (zh) | 解调装置和解调方法 | |
CN1119001C (zh) | 数据发送装置及其方法 | |
CN1744571A (zh) | 减少网络内媒体接入控制地址学习的方法 | |
CN1851693A (zh) | 一种对***资源进行管理的实现方法 | |
CN1780265A (zh) | 消息***的流量控制方法 | |
CN1214592C (zh) | 多通道数据直接内存访问***和方法 | |
CN101080077A (zh) | 设备管理树的维护方法及终端设备 | |
CN101034383A (zh) | 一种实现软/硬件复用的dma控制器和传输方法 | |
CN101043633A (zh) | 一种编码中量化矩阵选择方法、装置及编解码方法及*** | |
CN1553598A (zh) | 一种单板故障的检测方法及装置 | |
CN1567187A (zh) | 数据处理***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20070228 |
|
CX01 | Expiry of patent term |