Mac表项学习方法和装置的制造方法_3

文档序号:8342657阅读:来源:国知局
的第五报文,则更新第二预设时间段的起始时刻为接收上述第五报文的时刻。
[0046]图2为本发明MAC表项学习方法实施例二的流程示意图,本实施例的执行主体是网络设备,该网络设备是指具有报文转发功能的网络设备,例如,路由器、交换机和网关设备等。如图2所示,本实施例的方法如下:
[0047]S201:接收第一报文。
[0048]S202:判断MAC转发表中是否存储包含第一报文的目的MAC地址的第一MAC表项,若包含,执行S203,若不包含,执行S204。
[0049]其中,MAC转发表中包含至少一条MAC表项,MAC表项可以为包含MAC地址和端口号的MAC表项,也可以为只包含MAC地址、端口号为空或者为默认值的MAC表项,本发明中称前一种MAC表项为实MAC表项,后一种MAC表项为虚MAC表项。在S202中的包含第一报文的目的MAC地址的第一 MAC表项,是指包含第一报文的目的MAC地址的实MAC表项,或者,包含第一报文的目的MAC地址的虚MAC表项。
[0050]S203:判断第一 MAC表项中是否是实MAC表项。若是,执行S205,若否,执行S206。
[0051]S204:在MAC转发表中添加第二 MAC表项,并确定第一报文的目的MAC地址为第二MAC表项中的MAC地址。
[0052]在此步骤中的第二 MAC表项为虚MAC表项,即第二 MAC表项中的MAC地址为第一报文的目的地址,端口号为空或者为默认值。
[0053]S205:第一 MAC表项的老化时间的起始时刻更新为接收第一报文的时间,并根据第一 MAC表项中的端口号转发第一报文。
[0054]S206:第一 MAC表项的老化时间的起始时刻更新为接收第一报文的时间,广播上述第一报文。
[0055]S207:判断在第一预设时间内,是否接收到源MAC地址与第二 MAC表项中的MAC地址相同的第二报文,若接收到,则执行S208,若未接收到,则执行S209。
[0056]其中,第一预设时间段的起始时刻为当前时刻之前接收的最后一个目的MAC地址与第二 MAC表项中的MAC地址相同的报文的时刻。
[0057]S208:学习接收第二报文的端口号,将接收第二报文的端口号确定为第二 MAC表项中的端口号。
[0058]该步骤中的第二 MAC表项包含MAC地址和端口号,即将虚MAC表项转化成实MAC表项。
[0059]S209:判断在第一预设时间段内,是否接收到目的MAC地址与第二 MAC表项中的MAC地址相同的第三报文,若接收到,则执行S210,若未接收到,则执行S211。
[0060]S210:将第一预设时间段的起始时刻更新为接收第三报文的时刻。返回执行S207。
[0061]S211:则删除所述第二 MAC表项。
[0062]本实施例中,根据第一报文的目的MAC地址,确定第二 MAC表项中的的MAC地址,根据在第一预设时间段内接收到的源MAC地址与第二 MAC表项的MAC地址相同的第二报文,学习第二 MAC表项中的端口号,即根据用户的实际业务需求学习MAC表项,降低无效MAC表项的学习,提高了 MAC表项的学习效率。
[0063]在上述实施例的S208之后,可以按照下述方法(但不限于下述方法)老化第二 MAC表项。
[0064]作为其中的一种方式,当在第二预设时间段内,未接收到源MAC地址与第二 MAC表项的MAC地址相同的第四报文,并且,未接收到目的MAC地址与第二 MAC表项的MAC地址相同的第五报文,则删除第二 MAC表项,该第二 MAC表项即实MAC表项,该第二 MAC表项中包含MAC地址和端口号。
[0065]其中,第二预设时间段的起始时刻为当前时刻之前接收的最后一个包含第二 MAC表项的MAC地址的报文时刻。包含第二 MAC表项的MAC地址的报文可以为目的MAC地址为第二 MAC表项的MAC地址的报文,或者源MAC地址为第二 MAC表项的MAC地址的报文。第二预设时间段即实MAC的老化时间。第二预设时间段具体为多长时间,依据实际应用而设定。
[0066]当在第二预设时间段内,接收到包含所述第二 MAC表项的MAC地址的报文,则更新所述第二预设时间段的起始时刻为接收包含所述第二 MAC表项的MAC地址的报文的时刻,其中,所述包含所述第二 MAC表项的MAC地址的报文为源MAC地址为所述第二 MAC表项的MAC地址的报文或者目的MAC地址为所述第二 MAC表项的MAC地址的报文。
[0067]图3为本发明MAC表项学习装置实施例一的结构示意图,本实施例的装置包括接收模块301和处理模块302,其中,接收模块301用于接收第一报文,若媒体接入控制MAC转发表中未存储包含上述第一报文的目的MAC地址的第一 MAC表项,则在上述MAC转发表中添加第二 MAC表项,并确定上述第一报文的目的MAC地址为上述第二 MAC表项中的MAC地址;处理模块302用于当在第一预设时间段内,接收到源MAC地址与上述第二MAC表项中的MAC地址相同的第二报文,则学习接收上述第二报文的端口号,将上述接收第二报文的端口号确定为上述第二 MAC表项中的端口号,上述第一预设时间段的起始时刻为当前时刻之前接收的最后一个目的MAC地址与上述第二 MAC表项中的MAC地址相同的报文的时刻。
[0068]在上述实施例中,上述处理模块302还用于当在上述第一预设时间段内,未接收到源MAC地址与上述第二 MAC表项的MAC地址相同的第二报文,并且,未接收到目的MAC地址与上述第二 MAC表项的MAC地址相同的第三报文,则删除上述第二 MAC表项。
[0069]在上述实施例中,上述处理模块302还用于当在上述第一预设时间段内,接收到目的MAC地址与上述第二 MAC表项的MAC地址相同的第三报文,则将上述第一预设时间段的起始时刻更新为接收上述第三报文的时刻。
[0070]在实施例中,上述处理模块302还用于确定接收上述第二报文的端口号为上述第二 MAC表项中的端口号之后,当在第二预设时间段内,未接收到源MAC地址与上述第二 MAC表项的MAC地址相同的第四报文,并且,未接收到目的MAC地址与上述第二 MAC表项的MAC地址相同的第五报文,则删除上述第二 MAC表项;其中,上述第二预设时间段的起始时刻为当前时刻之前接收的最后一个包含上述第二 MAC表项的MAC地址的报文的时刻,上述包含上述第二 MAC表项的MAC报文为源MAC地址为上述第二 MAC表项的MAC地址的报文或者目的MAC地址为上述第二 MAC表项的MAC地址的报文;
[0071]在上述实施例中,上述处理模块302还用于确定接收上述第二报文的端口号为上述第二 MAC表项中的端口号之后,当在第二预设时间段内,接收到包含上述第二 MAC表项的MAC地址的报文,则更新上述第二预设时间段的起始时刻为接收包含上述第二 MAC表项的MAC地址的报文的时刻,其中,上述包含上述第二 MAC表项的MAC地址的报文为源MAC地址为上述第二 MAC表项的MAC地址的报文或者目的MAC地址为上述第二 MAC表项的MAC地址的报文。
[0072]上述各装置实施例的模块对应可执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0073]图4为本发明MAC表项学习装置实施例二的结构示意图,本实施例的装置包括接收器401和处理器402,其中,接收器401用于接收第一报文,若媒体接入控制MAC转发表中未存储包含上述第一报文的目的MAC地址的第一 MAC表项,则在上述MAC转发表中添加第二 MAC表项,并确定上述第一报文的目的MAC地址为上述第二 MAC表项中的MAC地址;处理器402用于当在第一预设时间段内,接收到源MAC地址与上述第二 MAC表项中的MAC地址相同的第二报文,则学习接收上述第二报文的端口号,将上述接收第二报文的端口号确定为上述第二 MAC表项中的端口号,上述第一预设时间段的起始时刻为当前时刻之前接收的最后一个目的MAC地址与上述第二 MAC表项中的MAC地址相同的报文的时刻。
[0074]在上述实施例中,上述处理器402还用于当在上述第一预设时间段内,未接收到源MAC地址与上述第二 MAC表项的MAC地址相同的第二报文,并且,未接收到目的MAC地址与上述第二 MAC表项的MAC地址相同的第三报文,则删除上述第二 MAC表项。
[0075]在上述实施例中,上述处理器402还用于当在上
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1