一种针对光纤交换机的端口汇聚处理方法及装置转让专利

申请号 : CN202210003023.2

文献号 : CN114007152B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘振华毕永康李龙威陈彬谈树峰

申请人 : 北京国科天迅科技有限公司

摘要 :

本发明提供一种针对光纤交换机的端口汇聚处理方法及装置。所述方法包括:接收待转发的数据帧,基于数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;根据端口汇聚组号确定相应的端口汇聚组;基于端口汇聚组的端口状态表和源端口号,采用轮询的方式查找端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于目标端口号对应的目标端口转发数据帧。采用本发明提供的方法,通过预先配置有至少两个光纤交换机对应的级联端口的端口汇聚组实现轮询查找相应的目标端口并转发数据帧,从而提高光纤交换机级联端口的带宽,适配性强,能够有效提升数据帧转发的效率和稳定性。

权利要求 :

1.一种针对光纤交换机的端口汇聚处理方法,其特征在于,包括:

在对端口汇聚组中的光纤交换机进行初始化时,预先配置所述端口汇聚组对应的端口状态表和端口号配置表;其中所述端口状态表和所述端口号配置表的所有初始比特位都为

0,当在所述端口汇聚组中光纤交换机的配置级联端口时,将所述端口状态表中对应的比特位设为1,并将所述级联端口的端口号存储到所述端口号配置表中;所述端口状态表包含的每个表项为8比特位,每个比特位与一个级联端口相对应,所述级联端口包含目标端口;所述端口号配置表包含的每个表项为40比特位,用于存放所述端口汇聚组内所有级联端口的端口号;接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;

根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口;

在数据帧转发过程中,获取所述端口汇聚组中光纤交换机对应的链路指示标志信号,基于所述链路指示标志信号的电平高低来确定所述端口汇聚组中光纤交换机的级联端口对应的当前链路状态;

基于所述当前链路状态更新所述端口状态表中比特位的值,若所述当前链路状态为正常,则更新所述端口状态表中比特位的值为1,若所述当前链路状态为异常,则更新所述端口状态表中比特位的值为0,得到更新后的端口状态表;

基于所述更新后的端口状态表和所述源端口号,通过预设的端口查询单元采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在当前链路状态正常的目标端口对应的端口号;若是,则基于所述当前链路状态正常的目标端口转发所述数据帧。

2.根据权利要求1所述的针对光纤交换机的端口汇聚处理方法,其特征在于,在接收待转发的数据帧之前,还包括:在对所述端口汇聚组中的光纤交换机进行初始化时,预先配置所述端口汇聚组对应的端口状态表和端口号配置表;其中,所述端口状态表和所述端口号配置表的所有初始比特位都为0,当在所述端口汇聚组中光纤交换机的配置级联端口时,将所述端口状态表中对应的比特位设为1,并将所述级联端口的端口号存储到所述端口号配置表中;其中,所述端口状态表包含的每个表项为8比特位,每个比特位与一个级联端口相对应,所述级联端口包含所述目标端口;所述端口号配置表包含的每个表项为40比特位,所述端口号配置表用于存放所述端口汇聚组内所有级联端口的端口号。

3.根据权利要求1所述的针对光纤交换机的端口汇聚处理方法,其特征在于,还包括:

根据预设的规则增加、删除或者修改所述端口汇聚组内的级联端口,并分别更新所述端口汇聚组的端口状态表和所述端口汇聚组的端口号配置表中对应比特位的值。

4.根据权利要求1所述的针对光纤交换机的端口汇聚处理方法,其特征在于,还包括:

分别针对所述端口汇聚组配置相应的端口查询单元,所述端口查询单元与所述端口汇聚组一一对应。

5.根据权利要求1所述的针对光纤交换机的端口汇聚处理方法,其特征在于,还包括:

记录转发所述数据帧的当前目标端口号;

当接收到新的待转发的数据帧时,在所述当前目标端口号的基础上采用轮询的方式查询新的目标端口号,基于所述新的目标端口号转发所述新的待转发的数据帧;其中,所述新的目标端口号和所述当前目标端口号对应的级联端口不同。

6.一种针对光纤交换机的端口汇聚处理装置,其特征在于,包括:

路由查询模块,用于在对端口汇聚组中的光纤交换机进行初始化时,预先配置所述端口汇聚组对应的端口状态表和端口号配置表;其中所述端口状态表和所述端口号配置表的所有初始比特位都为0,当在所述端口汇聚组中光纤交换机的配置级联端口时,将所述端口状态表中对应的比特位设为1,并将所述级联端口的端口号存储到所述端口号配置表中;所述端口状态表包含的每个表项为8比特位,每个比特位与一个级联端口相对应,所述级联端口包含目标端口;所述端口号配置表包含的每个表项为40比特位,用于存放所述端口汇聚组内所有级联端口的端口号;接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;

端口汇聚处理模块,用于根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口;

还包括:

当前链路状态确定单元,用于在数据帧转发过程中,获取所述端口汇聚组中光纤交换机对应的链路指示标志信号,基于所述链路指示标志信号的电平高低来确定所述端口汇聚组中光纤交换机的级联端口对应的当前链路状态;

端口状态表更新单元,用于基于所述当前链路状态更新所述端口状态表中比特位的值,若所述当前链路状态为正常,则更新所述端口状态表中比特位的值为1,若所述当前链路状态为异常,则更新所述端口状态表中比特位的值为0,得到更新后的端口状态表;

端口查询模块,用于基于所述更新后的端口状态表和所述源端口号,通过预设的端口查询单元采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在当前链路状态正常的目标端口对应的端口号;若是,则基于所述当前链路状态正常的目标端口转发所述数据帧。

7.一种电子设备,包括存储器、处理器以及存储在存储器上并在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任意一项所述针对光纤交换机的端口汇聚处理方法的步骤。

8.一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述针对光纤交换机的端口汇聚处理方法的步骤。

说明书 :

一种针对光纤交换机的端口汇聚处理方法及装置

技术领域

[0001] 本发明涉及网络通信技术领域,具体涉及一种针对光纤交换机的端口汇聚处理方法及装置。另外,还涉及一种电子设备及处理器可读存储介质。

背景技术

[0002] 光纤通道(Fibre Channel,FC)是一种高带宽、高可靠、抗干扰能力强的高速串行总线。针对航空电子环境的FC‑AE标准正在越来越多的航电产品和军工设备中被广泛使用。随着节点数量的增加,光纤网络规模的扩大,在越来越多的局域网环境中单台光纤交换机提供的有限接入端口数已难以满足需求。目前,需要采用级联技术将多台光纤交换机互联取代单台光纤交换机,从而为系统提供更多的接入端口。在光纤交换机进行级联时,如何保证交换机间中继链路具有足够的带宽成为当前研究的重点。只有在带宽足够的情况下,从交换机的端口才能拥有和主交换机同样的带宽。然而,在有些情况下,单级联端口有限的带宽难以满足两个光纤交换机数据交互对带宽的需求。在互联网络光纤交换机领域,通常将两个或多个同类型的级联端口并行连接,同时传输数据,这种多级联端口并行连接的方式称为端口汇聚。
[0003] 因此,如何设计一种针对光纤交换机多级联端口的数据转发方案成为亟待解决的难题。

发明内容

[0004] 为此,本发明提供一种针对光纤交换机的端口汇聚处理方法及装置,以解决现有技术存在的光纤交换机级联中间链路带宽有限,局限性较高,导致数据帧转发效率和稳定性较差的问题。
[0005] 第一方面,本发明提供一种针对光纤交换机的端口汇聚处理方法,包括:
[0006] 接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;
[0007] 根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口。
[0008] 进一步的,所述的针对光纤交换机的端口汇聚处理方法,还包括:
[0009] 在数据帧转发过程中,获取所述端口汇聚组中光纤交换机对应的链路指示标志信号,基于所述链路指示标志信号的电平高低来确定所述端口汇聚组中光纤交换机的级联端口对应的当前链路状态;
[0010] 基于所述当前链路状态更新所述端口状态表中比特位的值,若所述当前链路状态为正常,则更新所述端口状态表中比特位的值为1,若所述当前链路状态为异常,则更新所述端口状态表中比特位的值为0,得到更新后的端口状态表;
[0011] 基于所述更新后的端口状态表和所述源端口号,通过预设的端口查询单元采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在当前链路状态正常的目标端口对应的端口号;若是,则基于所述当前链路状态正常的目标端口转发所述数据帧。
[0012] 进一步的,所述的针对光纤交换机的端口汇聚处理方法,在接收待转发的数据帧之前,还包括:
[0013] 在对所述端口汇聚组中的光纤交换机进行初始化时,预先配置所述端口汇聚组对应的端口状态表和端口号配置表;其中,所述端口状态表和所述端口号配置表的所有初始比特位都为0,当在所述端口汇聚组中光纤交换机的配置级联端口时,将所述端口状态表中对应的比特位设为1,并将所述级联端口的端口号存储到所述端口号配置表中;其中,所述端口状态表包含的每个表项为8比特位,每个比特位与一个级联端口相对应,所述级联端口包含所述目标端口;所述端口号配置表包含的每个表项为40比特位,所述端口号配置表用于存放所述端口汇聚组内所有级联端口的端口号。
[0014] 进一步的,所述的针对光纤交换机的端口汇聚处理方法,还包括:根据预设的规则增加、删除或者修改所述端口汇聚组内的级联端口,并分别更新所述端口汇聚组的端口状态表和所述端口汇聚组的端口号配置表中对应比特位的值。
[0015] 进一步的,所述的针对光纤交换机的端口汇聚处理方法,还包括:分别针对所述端口汇聚组配置相应的端口查询单元,所述端口查询单元与所述端口汇聚组一一对应。
[0016] 进一步的,所述的针对光纤交换机的端口汇聚处理方法,还包括:
[0017] 记录转发所述数据帧的当前目标端口号;
[0018] 当接收到新的待转发的数据帧时,在所述当前目标端口号的基础上采用轮询的方式查询新的目标端口号,基于所述新的目标端口号转发所述新的待转发的数据帧;其中,所述新的目标端口号和所述当前目标端口号对应的级联端口不同。
[0019] 第二方面,本发明还提供一种针对光纤交换机的端口汇聚处理装置,包括:
[0020] 路由查询模块,用于接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;
[0021] 端口汇聚处理模块,用于根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口。
[0022] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:
[0023] 当前链路状态确定单元,用于在数据帧转发过程中,获取所述端口汇聚组中光纤交换机对应的链路指示标志信号,基于所述链路指示标志信号的电平高低来确定所述端口汇聚组中光纤交换机的级联端口对应的当前链路状态;
[0024] 端口状态表更新单元,用于基于所述当前链路状态更新所述端口状态表中比特位的值,若所述当前链路状态为正常,则更新所述端口状态表中比特位的值为1,若所述当前链路状态为异常,则更新所述端口状态表中比特位的值为0,得到更新后的端口状态表;
[0025] 端口查询模块,用于基于所述更新后的端口状态表和所述源端口号,通过预设的端口查询单元采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在当前链路状态正常的目标端口对应的端口号;若是,则基于所述当前链路状态正常的目标端口转发所述数据帧。
[0026] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:
[0027] 端口汇聚表配置单元,用于在接收待转发的数据帧之前,对所述端口汇聚组中的光纤交换机进行初始化时,预先配置所述端口汇聚组对应的端口状态表和端口号配置表;其中,所述端口状态表和所述端口号配置表的所有初始比特位都为0,当在所述端口汇聚组中光纤交换机的配置级联端口时,将所述端口状态表中对应的比特位设为1,并将所述级联端口的端口号存储到所述端口号配置表中;其中,所述端口状态表包含的每个表项为8比特位,每个比特位与一个级联端口相对应,所述级联端口包含所述目标端口;所述端口号配置表包含的每个表项为40比特位,所述端口号配置表用于存放所述端口汇聚组内所有级联端口的端口号。
[0028] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:端口汇聚组调整单元,用于根据预设的规则增加、删除或者修改所述端口汇聚组内的级联端口,并分别更新所述端口汇聚组的端口状态表和所述端口汇聚组的端口号配置表中对应比特位的值。
[0029] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:端口查询单元配置单元,用于分别针对所述端口汇聚组配置相应的端口查询单元,所述端口查询单元与所述端口汇聚组一一对应。
[0030] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:
[0031] 端口号记录单元,用于记录转发所述数据帧的当前目标端口号;
[0032] 轮询控制单元,用于当接收到新的待转发的数据帧时,在所述当前目标端口号的基础上采用轮询的方式查询新的目标端口号,基于所述新的目标端口号转发所述新的待转发的数据帧;其中,所述新的目标端口号和所述当前目标端口号对应的级联端口不同。
[0033] 第三方面,本发明还提供一种电子设备,包括:存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一项所述针对光纤交换机的端口汇聚处理方法的步骤。
[0034] 第四方面,本发明还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任意一项所述针对光纤交换机的端口汇聚处理方法的步骤。
[0035] 本发明实施例提供的所述针对光纤交换机的端口汇聚处理方法,通过预先配置有至少两个光纤交换机对应的级联端口的端口汇聚组轮询查找相应的目标端口转发数据帧,提高光纤交换机级联端口的带宽,适配性强,能够有效提高数据帧转发的效率和稳定性。

附图说明

[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
[0037] 图1为本发明实施例提供的针对光纤交换机的端口汇聚处理方法的流程示意图;
[0038] 图2为本发明实施例提供的针对光纤交换机的端口汇聚处理方法的原理示意图;
[0039] 图3为本发明实施例提供的端口汇聚组的端口状态表的示意图;
[0040] 图4为本发明实施例提供的端口汇聚组的端口号配置表的示意图;
[0041] 图5为本发明实施例提供的结合链路指示标志信号的更新后的端口状态表的示意图;
[0042] 图6为本发明实施例提供的针对光纤交换机的端口汇聚处理装置的结构示意图;
[0043] 图7为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

[0044] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
[0045] 下面基于本发明所述的针对光纤交换机的端口汇聚处理方法,对其实施例进行详细描述。如图1所示,其为本发明实施例提供的针对光纤交换机的端口汇聚处理方法的流程示意图,具体实现过程包括以下步骤:
[0046] 步骤101:接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号。
[0047] 在本发明实施例中,执行本步骤之前,需要预先配置所述端口汇聚组对应的端口状态表和端口号配置表,即Trunk端口状态表和Trunk端口号配置表。具体的,可在对所述端口汇聚组中的光纤交换机进行初始化时,配置所述端口汇聚组对应的端口状态表和端口号配置表。其中,所述端口状态表和所述端口号配置表的所有初始比特(bit)位都为0,当在所述端口汇聚组中光纤交换机的配置级联端口时,将所述端口状态表中对应的比特位设为1,并将所述级联端口的端口号存储到所述端口号配置表中。所述端口状态表包含的每个表项为8比特位,每个比特位与一个级联端口相对应,所述级联端口包含所述目标端口;所述端口号配置表包含的每个表项为40比特位,用于存放所述端口汇聚组内所有级联端口的端口号。其中,每个端口汇聚组称为一个Trunk。
[0048] 在具体实施过程中,刚上电的端口状态表和端口号配置表所有bit位都为0,当配置端口汇聚组对应的级联端口(port)时,将端口状态表中对应的bit位写1,并将相应的端口号保存到端口号配置表。当然,系统可以根据实际情况,根据预设的规则增加、删除或者修改端口汇聚组内的级联端口,并分别更新所述端口汇聚组的端口状态表和所述端口汇聚组的端口号配置表中对应比特位的值。比如在删除的过程中,只要将端口状态表中对应的bit位写0即可,端口号配置表可采用循环覆盖的方式,则不用写0。
[0049] 如图3和4所示,其分别为配置的端口状态表和端口号配置表。所示的配置中,将端口号等于8和端口号等于31的两个端口配置为Trunk0的port0和port7。端口状态表里的每个表项为8bit,每个bit位表示该port是否有配置(1有配置,0无配置);端口号配置表里的每个表项40bit,保存的是该端口汇聚组内所有的端口号。
[0050] 需要说明的是,在数据帧转发过程中,还可通过获取所述端口汇聚组中光纤交换机对应的链路指示标志信号(即link信号),更新所述端口状态表。具体的,可基于所述链路指示标志信号的电平高低来确定所述端口汇聚组中光纤交换机的级联端口对应的当前链路状态;进而基于所述当前链路状态更新所述端口状态表中比特位的值,若所述当前链路状态为正常,则更新所述端口状态表中比特位的值为1,若所述当前链路状态为异常,则更新所述端口状态表中比特位的值为0,得到更新后的端口状态表,具体如图5所示。后续端口汇聚组查询可用端口号时,只需查询该更新后的端口状态表即可,表格中为1的位置,表示该位置对应的端口号配置表里的端口可用,否则不可用。
[0051] 通过上述内容预先配置完成所述端口汇聚组对应的端口状态表和端口号配置表之后,执行本步骤101。在本步骤中,首先接收待路由转发的数据帧,并根据所述数据帧帧头内的帧标识通过预设的哈希表查询到相应的端口汇聚组号,以便后续通过相应端口查询单元查询各个端口汇聚组内的目标端口号或目标端口(即可用的端口号或端口)。需要说明的是,在本发明实施例中,所述端口汇聚组的数量可根据实际需要进行确定。每个端口汇聚组可配置1‑8个端口。当端口汇聚组仅配置1个端口时,该端口汇聚组和传统光纤交换机的单端口具有相同的功能。当端口汇聚组里配置的端口数量大于等于2个时,才能实现正常的端口汇聚功能。
[0052] 步骤102:根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口。
[0053] 当有数据帧路由请求时,将查询的目标端口号轮询的返回申请端。通过端口轮询的方式可以实现负载均衡的分配给配置的端口汇聚组中的各级联端口。在具体实施过程中,每次级联端口查询结束,都会记录转发所述数据帧的当前目标端口号,即记录当前返回的有效端口号,当下一次有新的申请产生时,需要在上次记录的端口号的基础上向下查询新的端口,也就是当接收到新的待转发的数据帧时,在所述当前目标端口号的基础上采用轮询的方式查询新的目标端口号,基于所述新的目标端口号转发所述新的待转发的数据帧;其中,所述新的目标端口号和所述当前目标端口号对应的级联端口不同。如果在8个级联端口中没查询到目标端口,则停止查询。
[0054] 在具体实施过程中,针对多播和广播的需求,当有一个数据帧路由请求时,所有的端口汇聚组首先判断是否有自己对应的路由请求,如果有则再启动查询流程,否则直接返回0(无任何目标端口可用)。在多播和广播的情况下,当隶属于某个端口汇聚组的端口发起一个数据帧路由请求时,要求该端口汇聚组不能返回任何有效的端口号,否则可能产生广播风暴。为了避免出现这种情况,当通过路由查询模块查询路由时,除了要根据数据帧的帧头信息查询端口汇聚组号之外还需从帧头信息中解析出数据帧来源于哪个端口号(即源端口号),从而获取传输来的端口汇聚组号和源端口号,首先将源端口号和该端口汇聚组所有的端口号进行比较,如果该端口汇聚组所有的端口里存在与源端口号相等的端口号,那么该端口汇聚组不能返回任何端口。
[0055] 在光纤交换机工作过程中,如果返回的路由指向的链路不可用(比如:链路物理故障),可能造成光纤交换机的业务卡死。因此需要实时监测端口的链路状态,通常光纤交换机都有一个链路指示标志link信号,即链路指示标志信号(link为高电平表示端口可用,低电平端口不可用),在基于端口汇聚组的端口查询的过程中,如果某个端口对应的链路不可用则直接跳过该条链路,寻找下一个可用端口。
[0056] 通过将光纤交换机的任意N(N>=1)个端口(即级联端口)配置为一个端口汇聚组,根据当前链路状态、源端口号和申请类型轮询返回端口汇聚组里的端口号,从而给至少两个光纤交换机之间建立高带宽,实现负载均衡。
[0057] 除此之外,在数据帧转发过程中,获取所述端口汇聚组中光纤交换机对应的链路指示标志信号,基于所述链路指示标志信号的电平高低来确定所述端口汇聚组中光纤交换机的级联端口对应的当前链路状态;基于所述当前链路状态更新所述端口状态表中比特位的值,若所述当前链路状态为正常,则更新所述端口状态表中比特位的值为1,若所述当前链路状态为异常,则更新所述端口状态表中比特位的值为0,得到更新后的端口状态表;基于所述更新后的端口状态表和所述源端口号,通过预设的端口查询单元采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在当前链路状态正常的目标端口对应的端口号;若是,则基于所述当前链路状态正常的目标端口转发所述数据帧。
[0058] 在具体实施过程中,预先配置所述端口汇聚组对应的端口状态表和端口号配置表之后,可进行光纤交换机正常的数据帧交换。
[0059] 如图2所示,首先,路由查询模块接收数据帧,根据帧头内部的帧标识通过预设的哈希表查询端口汇聚组号和数据帧的源端口号;然后将查询到的端口汇聚组号和来源数据帧的端口号输入给Trunk模块(端口汇聚处理模块)。Trunk模块按预设流程查询可用的端口号。比如对于一个32端口的交换机,为了适配各种情况,需要例化32个端口查询单元,每个端口查询单元负责查询一个端口汇聚组内的端口号。32个端口查询单元查询得到的实际端口号,就是实际的路由结果。32个端口查询单元查询到的结果不一定都可用,只选取有效的查询结果即可。下面以所述端口汇聚组包含七个级联端口为例对预设流程进行说明,具体包括:若所述端口汇聚组内不存在与源端口相等的端口号;读取上次转发数据帧记录的端口位置addr;依次进行如下判断流程:判断是否存在结合link信号的Trunk端口映射表第(addr+0)比特位=1,判断是否存在结合link信号的Trunk端口映射表第(addr+1)比特位=1,判断是否存在结合link信号的Trunk端口映射表第(addr+2)比特位=1,判断是否存在结合link信号的Trunk端口映射表第(addr+3)比特位=1,判断是否存在结合link信号的Trunk端口映射表第(addr+4)比特位=1,判断是否存在结合link信号的Trunk端口映射表第(addr+5)比特位=1,判断是否存在结合link信号的Trunk端口映射表第(addr+6)比特位=1,判断是否存在结合link信号的Trunk端口映射表第(addr+7)比特位=1,若上述流程中任何一项判断为是,则结束查询,并记录相应目标端口的位置同时返回相应的端口号;若均为否,则结束查询,确定所述端口汇聚组内无可用的目标端口。其中,所述结合link信号的Trunk端口映射表即为Trunk端口号配置表或端口号配置表。图2中所述的内部Trunk表即所述端口汇聚组对应的端口状态表或Trunk端口状态表。
[0060] 本发明实施例提供的所述针对光纤交换机的端口汇聚处理方法,通过预先配置有至少两个光纤交换机对应的级联端口的端口汇聚组轮询查找相应的目标端口转发数据帧,提高光纤交换机级联端口的带宽,适配性强,能够有效提高数据帧转发的效率和稳定性。
[0061] 与上述提供的一种针对光纤交换机的端口汇聚处理方法相对应,本发明还提供一种针对光纤交换机的端口汇聚处理装置。由于该装置的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的针对光纤交换机的端口汇聚处理装置的实施例仅是示意性的。
[0062] 请参考图6所示,其为本发明实施例提供的一种针对光纤交换机的端口汇聚处理装置的结构示意图。
[0063] 路由查询模块601,用于接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;
[0064] 端口汇聚处理模块602,用于根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口。本发明实施例中,所述的端口汇聚处理模块602即图2中的Trunk模块。
[0065] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:
[0066] 当前链路状态确定单元,用于在数据帧转发过程中,获取所述端口汇聚组中光纤交换机对应的链路指示标志信号,基于所述链路指示标志信号的电平高低来确定所述端口汇聚组中光纤交换机的级联端口对应的当前链路状态;
[0067] 端口状态表更新单元,用于基于所述当前链路状态更新所述端口状态表中比特位的值,若所述当前链路状态为正常,则更新所述端口状态表中比特位的值为1,若所述当前链路状态为异常,则更新所述端口状态表中比特位的值为0,得到更新后的端口状态表;
[0068] 端口查询模块,用于基于所述更新后的端口状态表和所述源端口号,通过预设的端口查询单元采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在当前链路状态正常的目标端口对应的端口号;若是,则基于所述当前链路状态正常的目标端口转发所述数据帧。
[0069] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:
[0070] 端口汇聚表配置单元,用于在接收待转发的数据帧之前,对所述端口汇聚组中的光纤交换机进行初始化时,预先配置所述端口汇聚组对应的端口状态表和端口号配置表;其中,所述端口状态表和所述端口号配置表的所有初始比特位都为0,当在所述端口汇聚组中光纤交换机的配置级联端口时,将所述端口状态表中对应的比特位设为1,并将所述级联端口的端口号存储到所述端口号配置表中;其中,所述端口状态表包含的每个表项为8比特位,每个比特位与一个级联端口相对应,所述级联端口包含所述目标端口;所述端口号配置表包含的每个表项为40比特位,所述端口号配置表用于存放所述端口汇聚组内所有级联端口的端口号。
[0071] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:端口汇聚组调整单元,用于根据预设的规则增加、删除或者修改所述端口汇聚组内的级联端口,并分别更新所述端口汇聚组的端口状态表和所述端口汇聚组的端口号配置表中对应比特位的值。
[0072] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:端口查询单元配置单元,用于分别针对所述端口汇聚组配置相应的端口查询单元,所述端口查询单元与所述端口汇聚组一一对应。
[0073] 进一步的,所述的针对光纤交换机的端口汇聚处理装置,还包括:
[0074] 端口号记录单元,用于记录转发所述数据帧的当前目标端口号;
[0075] 轮询控制单元,用于当接收到新的待转发的数据帧时,在所述当前目标端口号的基础上采用轮询的方式查询新的目标端口号,基于所述新的目标端口号转发所述新的待转发的数据帧;其中,所述新的目标端口号和所述当前目标端口号对应的级联端口不同。
[0076] 本发明实施例提供的所述针对光纤交换机的端口汇聚处理装置,通过预先配置有至少两个光纤交换机对应的级联端口的端口汇聚组轮询查找相应的目标端口转发数据帧,提高光纤交换机级联端口的带宽,适配性强,能够有效提高数据帧转发的效率和稳定性。
[0077] 与上述提供的针对光纤交换机的端口汇聚处理方法相对应,本发明还提供一种电子设备。由于该电子设备的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的电子设备仅是示意性的。如图7所示,其为本发明实施例公开的一种电子设备的实体结构示意图。该电子设备可以包括:处理器(processor)701、存储器(memory)702和通信总线703,其中,处理器701,存储器702通过通信总线703完成相互间的通信,通过通信接口704与外部进行通信。处理器701可以调用存储器702中的逻辑指令,以执行针对光纤交换机的端口汇聚处理方法。该方法包括:接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口。
[0078] 此外,上述的存储器702中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:存储芯片、U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0079] 另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在处理器可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的针对光纤交换机的端口汇聚处理方法。该方法包括:接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口。
[0080] 又一方面,本发明实施例还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的针对光纤交换机的端口汇聚处理方法。该方法包括:接收待转发的数据帧,基于所述数据帧的帧标识向预设的哈希表进行数据查询,得到相应的端口汇聚组号及所述数据帧的源端口号;根据所述端口汇聚组号确定相应的端口汇聚组;基于所述端口汇聚组的端口状态表和所述源端口号,采用轮询的方式查找所述端口汇聚组的端口号配置表中是否存在相应的目标端口号,若是,则基于所述目标端口号对应的目标端口转发所述数据帧;其中,所述端口汇聚组中预先配置有至少两个光纤交换机对应的级联端口。
[0081] 所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
[0082] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0083] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0084] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。