[0036] 请参阅图1,图1是本发明实施例提供的一种测试交换机MAC地址学习的方法的流程图。其中,交换机包括第一收发端口和第二收发端口,如图1所示,该方法包括以下步骤:
[0037] 步骤S1:向第一收发端口发送广播报文,其中,广播报文包括了源 MAC地址,使得交换机的第一收发端口接收到该广播报文后,学习该源MAC地址,将该广播报文的源MAC地址写入MAC地址表中,使得源MAC地址与第一收发端口关联。
[0038] 步骤S2:向第二收发端口发送单播报文,其中,单播报文的数量不大于广播报文的数量,单播报文包括目标MAC地址,目标MAC地址和广播报文的源MAC地址相同,以指示单播报文从第一收发端口发送出去。值得注意的是,单播报文的源MAC地址任意,目标MAC地址与广播报文的源MAC地址相同,相当于第二收发端口接收到的单播报文需要由第一收发端口发送出去。
[0039] 步骤S3:检测单播报文是否全部由第一收发端口发送出去。
[0040] 本步骤中,若检测的结果为是,则跳转到步骤S4,若检测的结果为否,则跳转到步骤S5。
[0041] 其中,本步骤检测的方法包括以下三种:
[0042] 第一种检测方法:统计第二收发端口接收到的单播报文的第一数量,进一步统计第一收发端口的发送单播报文的第二数量。然后比较第一数量和第二数量的值是否相等,若不想等,则说明第二收发端口接收的单播报文并没有全部从第一收发端口发出去,所以判断为单播报文未全部由第一收发端口发出,若相等,则说明第二收发端口接收到的单播报文全部从第一收发端口发出去了,所以判断为单播报文全部由第一收发端口发出。
[0043] 值得注意的是,第一种检测方法在单播报文的数量小于或等于广播报文的数量时都适用。
[0044] 其中,以下介绍的第二种检测方法和第三种检测方法的条件为:向第一收发端口发送的单播报文的数量等于向第二收发端口发送的广播报文的数量。
[0045] 第二种检测方法:分别统计第一收发端口接收的广播报文的第一数量和发送的单播报文的第二数量,比较第一数量和第二数量的值是否相等。若不相等,则说明第二收发端口接收到的单播报文没有全部从第一收发端口发送出去,因此判断为单播报文未全部由第一收发端口发出。此时,第一数量和第二数量的差值即为第一收发端口学习MAC地址失败的个数。若相等,则说明第二收发端口接收到的单播报文全部从第一收发端口发送出去,因此判断为单播报文全部由第一收发端口发出。本检测方法同时检测第一收发端口接收和发送报文的数量,方便简单,不易出错。
[0046] 应理解,由于第一收发端口接收到的报文为广播报文,则在第一收发端口接收到该广播报文时,第二收发端口也接收到该广播报文,因此,第二种检测方法也可以分别统计第一收发端口发送单播报文的数量和第二收发端口接收到广播报文的数量,然后将两个数量进行比较,原理与前文所述的相同,在此不再赘述。
[0047] 第三种检测方法:交换机进一步包括第三收发端口,其中该第三收发端口为监控端口。在第二收发端口接收单播报文时,检测第三收发端口是否接收到该单播报文,若接收到该单播报文,则说明第二收发端口接收到的单播报文没有全部从第一收发端口发送出去,因此判断为单播报文未全部由第一收发端口发出。这些被交换机漏学的MAC地址会被交换机认为是DLF(Destination Lookup Failure,目的查找故障)报文,广播到所有收发端口,这样监控端口也就可以收到这些漏学MAC地址的报文了。若未接收到单播报文,则说明第一收发端口全部发送了第二收发端口接收到的单播报文,因此判断为单播报文全部由第一收发端口发出。
[0048] 同理,对于第二检测方法,由于第一收发端口接收到的报文为广播报文,则在第一收发端口接收到该广播报文时,第三收发端口同样能接收到该广播报文,因此,第二种检测方法也可以分别统计第一收发端口发送单播报文的数量和第三收发端口接收到广播报文的数量,然后将两个数量进行比较,原理与前文所述的相同,在此不再赘述。
[0049] 步骤S4:判断交换机MAC地址学习正常。
[0050] 步骤S5:判断交换机MAC地址学习不正常。
[0051] 本实施例中,逐渐同步调整向第一收发端口发送广播报文的数量和速率和向第二收发端口发送单播报文的数量和速率。
[0052] 举例而言,第一收发端口接收到的广播报文的源MAC地址递变 8000次,发送总个数8000个,发送速率以800b ps为起始速率进行增加和减少;第二收发端口接收到的单播报文的源MAC地址任意,不需要递变,目标MAC地址变化与第一收发端口接收到的源MAC地址变化规则一致,总个数8000个。
[0053] 每次变化发送报文的数量和速率,都实行一次前文所述的步骤 S1-S3,这样便可根据测试的结果来测试出交换机的MAC地址并发学习能力和总规格数。
[0054] 因此,本发明能够通过简单的调整发送MAC报文的速率,测试出交换机的MAC并发学习性能是否达标。并通过简单的调整发送MAC 地址的个数,测试出交换机的MAC地址表规格是多少。
[0055] 本发明实施例还提供了一种测试交换机MAC地址学习的系统,该系统适用于前文所述的方法。具体请参阅图2,图2是本发明实施例提供的一种测试交换机MAC地址学习的系统的结构示意图。
[0056] 如图2所示,本发明实施例的系统10包括交换机11、报文发送仪表12以及控制器13。其中,控制器13通过串口连接交换机11,并通过跳线连接报文发送仪表12,以控制报文发送仪表12发送报文包。交换机11包括第一收发端口111和第二收发端口112。报文发送仪表12 包括第一发送端口121和第二发送端口122。第一收发端口111和第一发送端口121相连,第二收发端口112和第二发送端口122相连。
[0057] 本实施例中,第一发送端口121用于向第一收发端口111发送广播报文,其中,广播报文包括了源MAC地址,使得交换机将广播报文的源MAC地址与第一收发端口关联。
[0058] 第二发送端口122用于向第二收发端口112发送单播报文,其中,单播报文的数量不大于广播报文的数量,单播报文包括目标MAC地址,目标MAC地址和广播报文的源MAC地址相同,以指示单播报文从第一收发端口发送出去。
[0059] 控制器13用于检测单播报文是否全部由所述第一收发端口111发送出去,若检测的结果为否,则判断交换机11学习不正常,若检测的结果为是,则判断交换机11学习正常。
[0060] 具体而言,控制器13进一步统计第二收发端口112接收的单播报文的第一数量,并统计第一收发端口111的发送单播报文的第二数量,比较第一数量和第二数量的值是否相等,若不相等,则判断为单播报文未全部由第一收发端口111发出,若相等,则判断为单播报文全部由第一收发端口111发出。
[0061] 或者在第一发送端口121向第一收发端口111发送的广播报文的数量等于第二发送端口122向第二收发端口112发送的单播报文的数量相等时。控制器13进一步分别统计第一收发端口111接收广播报文的第一数量和发送单播报文的第二数量,比较第一数量和第二数量的值是否相等,若不相等,则判断为单播报文未全部由第一收发端口111发出,若相等,则判断为单播报文全部由第一收发端口111发出。
[0062] 或者,交换机11进一步包括第三收发端口113,报文发送仪表12 进一步包括与第三收发端口113相连的第三发送端口123。在第二收发端口112接收单播报文时,控制器13进一步检测第三发送端口113是否接收到单播报文,若接收到单播报文,则判断为单播报文未全部由第一收发端口111发出,若未接收到单播报文,则判断为单播报文全部由第一收发端口111发出。
[0063] 其中,控制器13还逐渐同步调整第一发送端口121向第一收发端口111发送广播报文的数量和速率以及第二发送端口122向第二收发端口112发送单播报文的数量和速率。
[0064] 举例而言,第一收发端口111接收到的广播报文的源MAC地址递变8000次,发送总个数8000个,发送速率以800b ps为起始速率进行增加和减少;第二收发端口112接收到的单播报文的源MAC地址任意,不需要递变,目标MAC地址变化与第一收发端口111接收到的源MAC 地址变化规则一致,总个数8000个。
[0065] 每次变化发送报文的数量和速率,都实行一次前文所述的检测,这样便可根据测试的结果来测试出交换机11的MAC地址并发学习能力和总规格数。
[0066] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。