发明内容
为此,需要提供一种在MAC容量扩展的前提下尽可能地发挥交换芯片的硬件网络转发性能的解决方案。
为实现上述目的,发明人提供了一种扩展MAC地址表容量的方法及其装置,实现方式如下:
一种扩展MAC地址表容量的方法,应用于交换模块和处理模块,包括如下步骤:
交换模块在进行报文的转发时,判断交换模块内部是否存有所述报文对应的目的地址信息,如果存有所述报文对应的目的地址信息,则使用所述报文对应的目的地址信息进行报文转发;如果不存有所述报文对应的目的地址信息,则将报文发送到处理模块;
处理模块接收到报文后,判断处理模块内部是否存有所述报文对应的目的地址信息,如果是则将所述报文对应的目的地址信息发送到交换模块,否则发送失败消息到交换模块;
交换模块在接收到报文对应的目的地址信息时,则使用接收到的报文对应的目的地址信息进行报文转发;交换模块在接收到失败消息时,对报文进行洪泛处理。
进一步地,还包括目的地址信息储存步骤:处理模块在将报文对应的目的地址信息发送到交换模块时,将报文对应的目的地址信息储存到交换模块。
进一步地,还包括目的地址删除步骤:处理模块将报文对应的目的地址信息储存到交换模块具体为:处理模块判断交换模块的内部储存区域是否已满,如果已满则删除接近老化的目的地址信息,再将报文对应的目的地址信息储存到交换模块,重置交换模块目的地址信息的老化时间;否则将报文对应的目的地址信息储存到交换模块。
进一步地,处理模块在判断处理模块内部是否存有所述报文对应的目的地址信息时,跳过已经储存到交换模块内部的目的地址信息。
进一步地,还包括学习步骤:交换模块对报文进行洪泛后,交换模块在收到回应信息后,发送回应信息到处理模块,处理模块接收到回应信息后对回应信息进行学习并在学习后将报文对应的目的地址信息存到处理模块内部和交换模块内部。
进一步地,还包括源地址查找步骤:交换模块在进行报文转发时,判断交换模块内部是否存有所述报文对应的源地址信息,如果交换模块内部不存有所述报文对应的源地址信息,则将报文发送到处理模块;
处理模块接收到报文后,判断处理模块内部是否存有所述报文对应的源地址信息,如果存有所述报文对应的源地址信息,则将存有的报文对应的源地址信息储存到交换模块;否则对报文进行学习并将学习后的源地址信息储存到处理模块和交换模块。
进一步地,源地址更新步骤:处理模块在判断到处理模块存有所述报文对应的源地址信息时,则判断存有所述报文对应的源地址信息与报文中的源地址信息是否一致,如果一致则将存有的报文对应的源地址信息储存到交换模块;否则将报文中的源地址信息更新到处理模块并储存到交换模块。
以及本发明还提供一种扩展MAC地址表容量的装置,包括交换模块和处理模块,所述交换模块包括如下单元:
交换模块目的地址判断单元:用于在进行报文的转发时,判断交换模块内部是否存有所述报文对应的目的地址信息,如果存有所述报文对应的目的地址信息,则使能交换模块报文转发单元;如果不存有所述报文对应的目的地址信息,则使能交换模块报文发送单元;
交换模块报文转发单元:用于使用所述报文对应的目的地址信息进行报文转发;还用于在接收到报文对应的目的地址信息时,则使用接收到的报文对应的目的地址信息进行报文转发;以及还用于在接收到失败消息时,对报文进行洪泛处理;
交换模块报文发送单元:用于将报文发送到处理模块;
所述处理模块包括如下单元:
报文判断和信息发送单元:用于接收到报文后,判断处理模块内部是否存有所述报文对应的目的地址信息,如果是则将所述报文对应的目的地址信息发送到交换模块,否则发送失败消息到交换模块。
进一步地,处理模块还包括目的地址信息发送单元:用于在将报文对应的目的地址信息发送到交换模块时,将报文对应的目的地址信息储存到交换模块。
进一步地,处理模块还包括目的地址删除单元:用于判断交换模块的内部储存区域是否已满,如果已满则删除接近老化的目的地址信息,再将报文对应的目的地址信息储存到交换模块,重置交换模块目的地址信息的老化时间;否则将报文对应的目的地址信息储存到交换模块。
进一步地,处理模块还包括优选检索单元:用于在判断处理模块内部是否存有所述报文对应的目的地址信息时,跳过已经储存到交换模块内部的目的地址信息。
进一步地,交换模块还包括回应信息转发单元:用于交换模块对报文进行洪泛后,在收到回应信息后,发送回应信息到处理模块;
处理模块还包括回应信息学习单元:用于接收到回应信息后对回应信息进行学习并在学习后将报文对应的目的地址信息存到处理模块内部和交换模块内部。
进一步地,交换模块还包括交换模块源地址查找单元:用于在进行报文转发时,判断交换模块内部是否存有所述报文对应的源地址信息,如果交换模块内部不存有所述报文对应的源地址信息,则将报文发送到处理模块;
处理模块还包括处理模块源地址查找单元:用于接收到报文后,判断处理模块内部是否存有所述报文对应的源地址信息,如果存有所述报文对应的源地址信息,则将存有的报文对应的源地址信息储存到交换模块;否则对报文进行学习并将学习后的源地址信息储存到处理模块和交换模块。
进一步地,处理模块还包括源地址信息更新单元:用于处理模块在判断到处理模块存有所述报文对应的源地址信息时,则判断存有所述报文对应的源地址信息与报文中的源地址信息是否一致,如果一致则将存有的报文对应的源地址信息储存到交换模块;否则将报文中的源地址信息更新到处理模块并储存到交换模块。
区别于现有技术,上述技术方案具有如下优点:通过使用交换模块对报文的转发进行处理,发挥了交换模块的硬件转发性能,同时交换模块的目的地址信息(目的地址信息为MAC地址表一部分信息)又不局限于交换模块内部,还可以从处理模块进行获取,现有的处理模块自带或者可扩展大容量存储,则大大扩展了交换模块的MAC地址表,即扩展了MAC地址表容量又发挥了交换模块的硬件转发优势。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本实施例提供一种扩展MAC地址表容量的方法,应用于交换模块和处理模块,本实施例包括如下步骤:首先在步骤S101交换模块接收到一个报文,则交换模块要对此报文进行转发。在步骤S102交换模块在进行报文的转发时,进入步骤S103判断交换模块内部是否存有所述报文对应的目的地址信息,如果存有所述报文对应的目的地址信息,则进入步骤S104使用所述报文对应的目的地址信息进行报文转发,即使用交换模块内部储存的与报文对应的目的地址信息进行转发。如果不存有所述报文对应的目的地址信息,则进入步骤S105将报文发送到处理模块。
处理模块接收到报文后,进入步骤S106判断处理模块内部是否存有所述报文对应的目的地址信息,如果是则进入步骤S107将所述报文对应的目的地址信息发送到交换模块,即将处理模块内部存有的与报文对应的目的地址信息发送到交换模块。否则进入步骤S108发送失败消息到交换模块,即通过失败消息告知交换模块如下信息:处理模块不储存有与报文对应的目的地址信息。
而后交换模块会收到处理模块发送过来的目的地址信息或失败消息。当交换模块接收到报文对应的目的地址信息时,则进入步骤S109使用接收到的报文对应的目的地址信息进行报文转发。交换模块在接收到失败消息时,则进入步骤S110对报文进行洪泛处理。
其中,交换模块常见的形式为交换芯片,其具有硬件的交换功能,交换模块自带有储存容量较小的储存单元,储存单元储存有MAC地址转发表(又称二层表),MAC地址转发表带有与转发相关的目的地址信息和源地址信息,交换模块使用自带的MAC地址转发表具有转发速度快的优点,但在大规模组网的情况下,由于交换模块容量的限制,则交换模块在进行大量的转发时由于没有存有足够的MAC地址转发表,而要频繁地进行洪泛处理,容易造成交换模块的堵塞和加大交换模块的处理负担,从而大大影响了交换模块的转发效率。处理模块常见的形式为CPU、MCU或逻辑处理芯片,现有的处理模块有的自带有很大的储存空间,绝大多数的处理模块都可以扩展容量远远大于交换模块内部储存区域的储存空间。以上方法步骤中,交换模块进行报文转发及查找转发的目的地址时并不仅仅查找了交换模块内部的有限的MAC地址转发表,而且查找了处理模块的目的地址信息,即查找了处理模块存有目的地址信息的MAC地址转发表,则扩展了交换模块的MAC地址转发表,同时使用交换模块对报文进行转发保证了转发的速度,发挥了交换模块的硬件优势,即在扩展MAC地址表容量的基础上又发挥了交换模块的硬件优势。
交换模块在进行报文转发时,则说明发送或接收报文的端口信息是比较活跃的,则此报文之后的报文所使用到的目的地址信息与此报文的目的地址信息相同可能性很大,为了提前应对以后可能出现的报文,提高交换模块交换转发的效率,在另一实施例中还包括目的地址信息储存:即在步骤S107处理模块在将报文对应的目的地址信息发送到交换模块时,进入步骤S111处理模块将报文对应的目的地址信息储存到交换模块。经过步骤S111后,交换模块已经存有此报文的目的地址信息,当下次需要转发相同目的地址信息的报文时,在步骤S103即可以判断到交换模块存储有目的地址信息,并可直接进入步骤S104完成相应的转发功能。
步骤S111处理模块储存时可以选择任意交换模块储存区域内任意的位置或者某些特定位置进行存储或替换,都可以完成交换模块内具有此报文的目的地址信息。在某些优选的实施例中,为了防止交换模块内储存区域已满以及保持交换模块内目的地址信息为较高的利用效率,还可以包括目的地址删除步骤。则步骤S111处理模块将报文对应的目的地址信息储存到交换模块具体为:处理模块判断交换模块的内部储存区域是否已满,如果已满则删除接近老化的目的地址信息,再将报文对应的目的地址信息储存到交换模块,即储存区域满后使用较新的目的地址信息替换掉已经老化的地址信息,保持了交换模块中的目的地址信息为较高的利用率。完成后重置交换模块目的地址信息的老化时间。否则交换模块内部储存区域未满,可将报文对应的目的地址信息储存到交换模块。
交换模块在步骤S104将报文发送到处理模块时已经对交换模块内部所有的目的地址信息进行了检索,将为了进一步地加快处理模块检索判断速度,避免处理模块重复性检索,则在步骤S106处理模块在判断处理模块内部是否存有所述报文对应的目的地址信息时,跳过已经储存到交换模块内部的目的地址信息。处理模块可以通过读取来获取交换模块的内部的目的地址信息或者处理模块在储存目的地址信息到交换模块时可进行标记,以上方式都可以实现处理模块获知到哪些处理模块内部哪些目的地址信息是已经存在在交换模块内部的,从而实现在检索时对这些目的地址信息的跳过。
在某些实施例中,为了完成对洪泛后报文的学习,在步骤S110之后还包括学习步骤:如图2所示,即在步骤S110交换模块对报文进行洪泛后,进入步骤S112交换模块在收到回应信息后,而后在步骤S113发送回应信息到处理模块,最后处理模块接收到回应信息后进行步骤S114对回应信息进行学习并在学习后进入步骤S105将报文对应的目的地址信息存到处理模块内部和交换模块内部。此时报文对应的目的地址信息应为报文回应信息中的源地址信息,处理模块通过学习即可获知报文回应信息中的源地址信息,对报文或者回应信息的学习为现有交换机技术领域的公知常识,本发明在此不再赘述。
以上所有实施例都可以完成对报文的转发而在报文发送后会接收到回应信息(或称回应报文),此时回应信息转发所需的目的地址信息即为报文的源地址信息,为了使得交换模块在转发回应信息时具有较高的转发效率,在某些实施例中,还包括源地址查找步骤。如图3所示,具体为在步骤S101交换模块接收到报文后,交换模块在步骤S102在进行报文转发时,进入步骤S122判断交换模块内部是否存有所述报文对应的源地址信息,如果交换模块内部不存有所述报文对应的源地址信息,则进入步骤S123将报文发送到处理模块。如果交换模块内部已经存有所述报文对应的源地址信息,即完成了交换模块中源地址的准备,则可以进入S124结束本实施例步骤或者进行其他任意步骤,如步骤S103,本发明并不对此进行限定。
处理模块接收到报文后,进入步骤S125判断处理模块内部是否存有所述报文对应的源地址信息,如果存有所述报文对应的源地址信息,则进入步骤S126将存有的报文对应的源地址信息储存到交换模块;否则进入步骤S127对报文进行学习并将学习后的源地址信息储存到处理模块和交换模块。通过步骤S126或者步骤S127则交换模块内部存有报文对应的源地址信息,则交换模块在收到报文的回应信息可以直接匹配到回应信息的目的地址,可直接进行转发,提高了转发效率。
进一步地,在一些实施例中,还可包含源地址更新步骤。如图4所示,即在步骤S125处理模块进行判断后,处理模块在判断到处理模块存有所述报文对应的源地址信息时,则进入步骤S128判断存有所述报文对应的源地址信息与报文中的源地址信息是否一致,如果一致则进入步骤S126将存有的报文对应的源地址信息储存到交换模块;否则进入步骤S129将报文中的源地址信息更新到处理模块,而后进入S126储存到交换模块。通过处理模块对源地址的更新以及判断,使得源地址可以保持为最新状态,使得交换模块具有高的转发效率。当然交换模块也可以在任意情况下(如接收到报文时)将报文发送到处理模块进行源地址更新步骤,保证源地址时刻处于最新状态。
以上交换模块和处理模块对目的地址的查找和对源地址的查找可以同时交叉进行,即在目的地址判断发送时同样进行源地址的判断和发送,也可以先进行源地址的判断或者先进行目的地址的判断,本发明的任何实施例都不对此进行限定。
以及本发明还提供一种扩展MAC地址表容量的装置,如图5所示,包括交换模块1和处理模块2,交换模块1和处理模块2建立有通讯连接。其中,交换模块1包括如下单元:
交换模块目的地址判断单元10:用于在进行报文的转发时,判断交换模块1内部是否存有所述报文对应的目的地址信息,如果存有所述报文对应的目的地址信息,则使能交换模块报文转发单元11;如果不存有所述报文对应的目的地址信息,则使能交换模块报文发送单元12。
交换模块报文转发单元11:用于使用所述报文对应的目的地址信息进行报文转发;还用于在接收到报文对应的目的地址信息时,则使用接收到的报文对应的目的地址信息进行报文转发;以及还用于在接收到失败消息时,对报文进行洪泛处理。
交换模块报文发送单元12:用于将报文发送到处理模块。
处理模块2包括如下单元:报文判断和信息发送单元20:用于接收到报文后,判断处理模块2内部是否存有所述报文对应的目的地址信息,如果是则将所述报文对应的目的地址信息发送到交换模块1,否则发送失败消息到交换模块1。
上述实施例的装置通过交换模块目的地址判断单元10和交换模块报文转发单元11可充分发挥交换模块1的硬件优势,实现迅速的转发和交换,通过处理模块2扩展了交换模块1检索的目的地址信息的容量,则本实施例的装置即可发挥交换模块1自带的硬件优势,有扩展了目的地址信息的容量,即扩展了MAC地址表的容量。
为了使得交换模块1后续收到的报文具有较快的转发速度,处理模块2还包括目的地址信息发送单元21:用于在将报文对应的目的地址信息发送到交换模块1时,将报文对应的目的地址信息储存到交换模块1。当交换模块1存有报文对应的目的地址信息后,当交换模块1接收到需要相同目的地址信息的报文后,交换模块1可以直接匹配到交换模块1存有的目的地址信息,可进行直接发送。
目的地址信息发送单元21在储存到交换模块1时,可以储存到交换模块1储存区域的任意位置,在某些装置实施例中,为了使得交换模块1储存区域的具有高的利用率,处理模块2还包括目的地址删除单元22,如图5所示,目的地址删除单元22用于判断交换模块1的内部储存区域是否已满,如果已满则删除接近老化的目的地址信息,再将报文对应的目的地址信息储存到交换模块1,重置交换模块1目的地址信息的老化时间;否则将报文对应的目的地址信息储存到交换模块1。
进一步地,为了提高处理模块2判断的效率,处理模块2还包括优选检索单元23,优选检索单元23用于在判断处理模块2内部是否存有所述报文对应的目的地址信息时,跳过已经储存到交换模块1内部的目的地址信息。
交换模块1进行报文的洪泛处理后收到的回应信息的源地址信息即为源报文的目的地址信息,为了提高交换模块1转发速度,进一步,在某些实施例中,交换模块1还包括回应信息转发单元13,处理模块2还包括回应信息学习单元24。
其中,回应信息转发单元13用于交换模块1对报文进行洪泛后,在收到回应信息后,发送回应信息到处理模块2。回应信息学习单元24用于接收到回应信息后对回应信息进行学习并在学习后将报文对应的目的地址信息存到处理模块2内部和交换模块1内部。通过回应信息学习单元24即完成了对源报文对应的目的地址信息的储存。
以及在收到报文的回应信息时,为了提高回应信息的交换速度,进一步地,交换模块1还包括交换模块源地址查找单元14,处理模块2还包括处理模块源地址查找单元25。其中:交换模块源地址查找单元14用于在进行报文转发时,判断交换模块1内部是否存有所述报文对应的源地址信息,如果交换模块1内部不存有所述报文对应的源地址信息,则将报文发送到处理模块2。处理模块源地址查找单元25用于接收到报文后,判断处理模块2内部是否存有所述报文对应的源地址信息,如果存有所述报文对应的源地址信息,则将存有的报文对应的源地址信息储存到交换模块1;否则对报文进行学习并将学习后的源地址信息储存到处理模块2和交换模块1。通过交换模块源地址查找单元14和处理模块源地址查找单元25的设置,则交换模块1中具有报文的源地址信息,则交换模块1在收到报文的回应信息时,可以使用源地址信息完成回应信息的转发,加快了转发的速度,提高了转发的效率。
随着时间的变化,报文的源地址信息可能与处理模块2所存的源地址信息不一致,为了避免转发的失败,进一步地,处理模块2还包括源地址信息更新单元26。源地址信息更新单元26用于处理模块2在判断到处理模块2存有所述报文对应的源地址信息时,则判断存有所述报文对应的源地址信息与报文中的源地址信息是否一致,如果一致则将存有的报文对应的源地址信息储存到交换模块1;否则将报文中的源地址信息更新到处理模块2并储存到交换模块1。
综上,以上实施例在充分发挥了交换模块2的硬件交换性能的同时,通过与处理模块1的交互增大了交换模块2所能获取到的MAC地址表的容量,同时通过处理模块1分担部分目的地址或源地址判断检索的工作以及分担了学习功能,可进一步保证了交换模块2的交换性能,从而实现了同时具有硬件转发性能以及扩展了MAC地址表。
上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。