欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种交换机、报文转发方法及电子设备独创技术34434字

一种交换机、报文转发方法及电子设备

2021-02-19 20:03:45

一种交换机、报文转发方法及电子设备

  技术领域

  本申请属于网络通信技术领域,具体涉及一种交换机、报文转发方法及电子设备。

  背景技术

  典型高性能应用是以计算密集型应用为主,例如洋流模拟,科学计算等。计算密集型任务的特点是要进行大量的计算,需要消耗大量的中央处理器(Central ProcessingUnit,CPU)资源,比如计算圆周率、对视频进行高清解码等,全靠CPU的运算能力。但随着技术进步,大数据、人工智能等新技术的迅猛发展,大量的IO(Input Output)密集型应用对高性能计算的需求越来越大,例如,证券交易、实时航空预定、搜索引擎、在线游戏、关系型数据库、全球广域网(World Wide Web,WEB)应用等。交易越密集,对每秒的输入输出量(InputOutput Per Second,IOPS)要求越高,这类I/O密集型应用的特点是对CPU消耗很少,任务的大部分时间都在等待IO操作完成(因为IO的响应速度远低于CPU和内存的响应速度)。

  随着移动互联网、移动终端和数据传感器的出现,数据正以超出想象的速度快速增长。对于存储系统,存在大量的I/O读写操作,其对数据带宽要求并不高,但是处理的业务量很大,这对经典的高性能互连网络拓扑结构提出了新的挑战。目前国际、国内还没有这种兼顾计算密集型应用和I/O密集型应用的设备,使得在保证高性能应用对大量计算的需求的同时,又可从容应对大量频繁的I/O操作。

  发明内容

  鉴于此,本申请的目的在于提供一种交换机、报文转发方法及电子设备,以改善现有计算密集型应用设备无法适用于对大量频繁的I/O操作的需求的问题。

  本申请的实施例是这样实现的:

  第一方面,本申请实施例提供了一种交换机,包括:第一交换芯片;包括多个第二交换芯片的全连接网络拓扑,所述全连接网络拓扑中的每个第二交换芯片均连接有至少一个所述第一交换芯片。本申请实施例中,在全连接网络拓扑的基础上,通过进一步在全连接网络拓扑中的每个第二交换芯片均连接至少一个第一交换芯片,以形成全连接网络增强型拓扑架构,全连接网络主体保证计算密集型应用的计算需求,连接的第一交换芯片满足对I/O密集操作的需求,使得该交换机在保证高性能应用对大量计算的需求的同时,又可从容应对大量频繁的I/O操作。

  结合第一方面实施例的一种可能的实施方式,每个所述第二交换芯片均具有2M个端口,每个所述第二交换芯片的M个端口均用于连接计算节点,以及每个所述第二交换芯片剩余的M个端口均用于连接所述第一交换芯片和所述全连接网络拓扑中其余的所述第二交换芯片,M为正整数。本申请实施例中,全连接网络拓扑中的第二交换芯片的M个端口用于连接计算节点,剩余的M个端口用于连接第一交换芯片和全连接网络拓扑中其余的第二交换芯片的方式,从而实现计算密集型应用和I/O密集型应用的均衡。

  结合第一方面实施例的一种可能的实施方式,所述交换机还包括:背板;多个页板,每个所述页板上设置有至少一个所述第一交换芯片和/或所述第二交换芯片,所述多个页板设置在所述背板上,从而通过所述背板实现所述页板间的连接。本申请实施例中,通过将第一交换芯片和第二交换芯片设置在页板上,通过背板来连接实现多个页板间的连接,从而规范了各线路的布线方式,简化了连接线路的复杂度。

  第二方面,本申请实施例还提供了一种报文转发方法,应用于交换机中的目标交换芯片,所述交换机包括:第一交换芯片和包括多个第二交换芯片的全连接网络拓扑,所述全连接网络拓扑中的每个第二交换芯片均连接有至少一个所述第一交换芯片,所述目标交换芯片为所述第一交换芯片或所述第二交换芯片,所述方法包括:在接收到数据报文时,获取所述数据报文中携带的目标逻辑标识,以及获取自身的当前编码;根据预设的逻辑标识与编码规则的对应关系,获取所述目标逻辑标识对应的目标编码;根据所述目标编码以及所述当前编码,确定转发端口,并将所述数据报文经所述转发端口转发出去。本申请实施例中,当当前目标交换芯片在接收到数据报文时,通过获取数据报文中携带的目标逻辑标识以及获取自身的当前编码,并根据预设的逻辑标识与编码规则的对应关系,获取目标逻辑标识对应的目标编码,然后再根据目标编码以及当前编码,便可快速确定目的地在拓扑中的位置关系,进而确定转发端口,并将数据报文经转发端口转发出去,从而实现路由无死锁。

  结合第二方面实施例的一种可能的实施方式,所述目标编码为(Xd,Yd,Pd,Nd),所述当前编码为(Xs,Ys,Ps,Ns),其中,Xd、Yd表示目的地交换芯片在整个交换机网络拓扑中所处的位置,Xs,Ys表示所述目标交换芯片在整个交换机网络拓扑中所处的位置;Pd表示所述目的地交换芯片的芯片类型,Ps表示所述目标交换芯片的芯片类型,Nd表示所述目的地交换芯片的端口号,Ns表示所述目标交换芯片的端口号;根据所述目标编码以及所述当前编码,确定转发端口,包括:判断所述Xd是否等于所述Xs,以及所述Yd是否等于所述Ys;在所述Xd等于所述Xs,且所述Yd等于所述Ys时,判断所述Pd是否等于所述Ps;其中,在所述Pd等于所述Ps时,所述Nd对应的端口即为所述转发端口。本申请实施例中,在编码时,将各个交换芯片在整个交换机网络拓扑中所处的位置以及交换机的类型及端口号考虑在内,使得后续在确定转发端口时,通过判断Xd是否等于Xs,以及Yd是否等于Ys,便可确定目标的大致位置,若在Xd等于Xs,且Yd等于Ys时,再进一步判断Pd是否等于Ps,即可快速确定目标所对应的转发端口。

  结合第二方面实施例的一种可能的实施方式,所述全连接网络拓扑包括4个所述第二交换芯片,根据所述目标编码以及所述当前编码,确定转发端口,还包括:在所述Xd不等于所述Xs,且所述Yd不等于所述Ys时,XY对角维度链路所在端口即为所述转发端口。本申请实施例中,当全连接网络拓扑包括4个第二交换芯片时,在Xd不等于Xs,且Yd不等于Ys时,便可快速确定XY对角维度链路所在端口即为转发端口。

  结合第二方面实施例的一种可能的实施方式,所述全连接网络拓扑包括4个所述第二交换芯片,根据所述目标编码以及所述当前编码,确定转发端口,还包括:在所述Xd等于所述Xs,且所述Yd不等于所述Ys时,Y维度链路所在端口即为所述转发端口。本申请实施例中,当全连接网络拓扑包括4个第二交换芯片时,在Xd等于Xs,且Yd不等于Ys时,便可快速确定Y维度链路所在端口即为转发端口。

  结合第二方面实施例的一种可能的实施方式,所述全连接网络拓扑包括4个所述第二交换芯片,根据所述目标编码以及所述当前编码,确定转发端口,还包括:在所述Xd不等于所述Xs,且所述Yd等于所述Ys时,X维度链路所在端口即为所述转发端口。本申请实施例中,当全连接网络拓扑包括4个第二交换芯片时,在Xd不等于Xs,且Yd等于Ys时,便可快速确定X维度链路所在端口即为转发端口。

  结合第二方面实施例的一种可能的实施方式,根据所述目标编码以及所述当前编码,确定转发端口,还包括:在所述Pd不等于所述Ps时,P维度链路所在端口即为所述转发端口,其中,所述P维度链路表示用于连接所述第二交换芯片与第一交换芯片的链路。本申请实施例中,若在Xd等于Xs,且Yd等于Ys时,若Pd不等于Ps,则可以确定P维度链路所在端口即为转发端口。

  第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。

  本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

  附图说明

  为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。

  图1示出了本申请实施例提供的一种交换机的网络拓扑示意图。

  图2示出了本申请实施例提供的又一种交换机的网络拓扑示意图。

  图3示出了本申请实施例提供的一种交换机内部交换芯片端口连接关系示意图。

  图4示出了图1所示的交换机的前面板端口布局示意图。

  图5示出了图2所示的交换机的前面板端口布局示意图。

  图6示出了本申请实施例提供的一种报文转发方法的流程示意图。

  图7示出了本申请实施例提供的一种报文转发方法的原理示意图。

  图8示出了本申请实施例提供的一种并发链路的结构示意图。

  图9示出了本申请实施例提供的一种电子设备的结构示意图。

  具体实施方式

  下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

  应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

  再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

  鉴于目前还没有能同时兼顾计算密集型应用和I/O密集型应用的设备,使得在保证高性能应用对大量计算的需求的同时,又可从容应对大量频繁的I/O操作。基于此,本申请实施例提供了一种基于交换芯片构成的交换机,使其能同时兼顾计算密集型应用和I/O密集型应用,实现超融合架构,既能提供高性能的计算能力,又能满足密集I/O操作的需求。如图1、图2所示,本申请实例提供的基于交换芯片构成的交换机包括:第一交换芯片和包括多个第二交换芯片的全连接网络(Full Mesh)拓扑,该全连接网络拓扑中的每个第二交换芯片(Full Mesh交换芯片)均连接有至少一个该第一交换芯片(Plus交换芯片)。在全连接网络拓扑的基础上,通过进一步连接第一交换芯片,以形成全连接网络增强型(Full MeshPlus)拓扑架构,Full Mesh网络主体保证计算密集型应用的计算需求,扩展Plus架构满足对I/O密集操作的需求。其中,所谓全连接网络拓扑,是指位于该网络拓扑中的每个第二交换芯片均与其余的各个第二交换芯片均连接,从而形成全连接网络拓扑。其中,图1示出的为该全连接网络拓扑中的每个第二交换芯片均连接有一个第一交换芯片的情形,图2示出的为该全连接网络拓扑中的每个第二交换芯片均连接有三个第一交换芯片的情形。

  一种实施方式下,该全连接网络拓扑包括4个第二交换芯片,每个第二交换芯片均具有2M(M为正整数)个端口,每个第二交换芯片的M个端口用于连接计算节点,以保证计算密集型应用的计算需求;以及每个第二交换芯片剩余的M个端口均用于与其余的3个第二交换芯片和至少一个第一交换芯片连接,通过扩展I/O端口,以满足对I/O密集操作的需求。本申请实施例中,鉴于二维网格拓扑天然的契合许多高性能应用的局部通信特征,在X/Y两个维度都有直连链路,特别是2X2网格,对角网络直径2跳(两个第二交换芯片之间传输一次数据为一跳)可达(为了便于理解,以图1中的全连接网络拓扑为例,对于二维网格拓扑,由于SW0到对角的SW2没有直达链路,因此SW0到对角的SW2的网络直径为2跳(其路径可以是SW0到SW1,再由SW1到SW2,或者,也可以是SW0到SW3,再由SW3到SW2)),根据结构特征在对角增加直达链路可构造Full Mesh网络拓扑,网络直径降低为1跳,可有效降低通信延迟,提升通信性能。通过将具有多个I/O端口的第一交换芯片连接到Full Mesh网络拓扑中的第二交换芯片的指定端口(Super IO端口),这样就可以将Plus网络连接到Full Mesh网络,并通过Full Mesh网络进行通信。其中,Super IO端口不会占用互连Full Mesh各维度的端口,保证网络可根据端口类型识别出Plus拓扑,而且不会和Full Mesh网络混淆。第一交换芯片和Full Mesh网络中的第二交换芯片的结构和功能完全相同,只是第一交换芯片所处的拓扑位置不同,不负责进行Full Mesh网络拓扑的数据转发,只负责处理I/O数据。通过路由算法保证第一交换芯片只负责数据的第一跳发送和最后一跳接收,不参与中间的Full Mesh网络拓扑数据转发。其中,需要说明的是,该全连接网络拓扑中的第二交换芯片的数量并不限于4,其可以是其他数值(如5、6……),因此不能将上述示例的全连接网络拓扑理解成是对本申请的限制。

  以intel提供的48端口OPA(Omni-Path Architecture)交换芯片(包括第一交换芯片和第二交换芯片)为例,对于图1,该全连接网络拓扑中的每个第二交换芯片,其中的24个端口用于连接计算节点,剩余的24个端口用于与其余的3个第二交换芯片和1个第一交换芯片连接。其中,在Full Mesh网络中,每个第二交换芯片的X维度、Y维度、XY对角维度各自连接6条链路分别连接到其他3个第二交换芯片,剩余6条链路(P维度链路)连接到一个第一交换芯片,提供高速I/O通道。每个第一交换芯片可用于连接42个I/O节点,剩余6个端口用于连接到对应的第二交换芯片。图1所示的交换机可连接96个计算节点(每个第二交换芯片可连接24个计算节点,4个第二交换芯片可连接96个计算节点)和168个I/O节点(1个第一交换芯片可连接42个I/O节点,4个第一交换芯片可连接168个I/O节点),完全可满足一个中小型集群的互连互通。由于I/O密集型应用的I/O操作主要是大量高并发的小数据操作,因此,对带宽要求并不高,6个Super IO通道足够满足带宽需求。如果某种应用的带宽需求较大,可定义多个Super IO端口作为I/O链路来扩展I/O带宽,可灵活配置,应对不同需求。此外,通过增加连接第一交换芯片的数量可进一步扩展I/O连接能力,例如每个第二交换芯片连接3个第一交换芯片,如图2所示,每个第二交换芯片连接24个计算节点,剩余24个端口在每个方向可分配4个端口提供高速互连通道,连接其余3个第二交换芯片需要12个端口,剩余12个端口可连接3个第一交换芯片。每个第一交换芯片可连接44个I/O节点,剩余4个端口可连接第二交换芯片,使得该交换机可连接96个计算节点和528个I/O节点(1个第一交换芯片可连接42个I/O节点,12个第一交换芯片可连接528个I/O节点)。

  其中,需要说明的是,该全连接网络拓扑中的第二交换芯片的端口连接情况并不限于上述示例的情形,如其中的M个端口用于连接计算节点,剩余M个端口用于连接其余的第二交换芯片及第一交换芯片,其可以根据需要相应地增加或较少用于连接计算节点的端口,如其中的12个端口用于连接12个计算节点,其中的36个端口分配成4条高速链路(每条高速链路包括9个端口)用于连接其余的3个第二交换芯片及1个第一交换芯片,或者,其中的36个端口分配成6条高速链路(每条高速链路包括6个端口)用于连接其余的3个第二交换芯片及3个第一交换芯片,因此不能将上述示例的端口连接情况理解成是对本申请的限制。

  根据Full Mesh Plus网络拓扑的结构特点,本申请在标准X、Y维度的基础上定义XY平面对角连线为XY对角维度,连接第二交换芯片与第一交换芯片的链路所在的维度为P维度(Plus维度),对应的链路为P维度链路。各个维度的端口连接关系如表1所示。其中,每个第二交换芯片的1至24号端口连接计算节点,25到30号端口对应X维度,31到36号端口对应Y维度,37到42号端口对应XY对角维度,43到48号端口连接第一交换芯片,对应P维度。第一交换芯片的1至42号端口连接I/O节点。

  表1

  

  其中,需要说明的是,上述示例的端口对应关系是可调整的,如将其中的25-48端口连接计算节点,1到6号端口对应X维度,7到12号端口对应Y维度,13到18号端口对应XY对角维度,19到24号端口连接第一交换芯片,因此不能将上述的示例,理解成是对本申请的限制。此外,本地端口号与对端端口号的端口连接关系也是可调整的,如一种实施方式下,其端口连接关系如表2所示,因此不能将表1、表2的示例,理解成是对本申请的限制。

  表2

  

  其中,为了便于将相邻的交换芯片连接起来,如图3所示,该交换机还包括:背板和多个页板(主板),每个页板上设置有至少一个第一交换芯片和/或第二交换芯片,多个页板设置在背板上,从而通过背板实现页板间的连接。其中,每块页板上部署两个交换芯片(可以是2个第一交换芯片,2个第二交换芯片,或者,1个第一交换芯片和1个第二交换芯片),在页板上可连接X维度的各个端口;每两块页板构成Y维度,通过背板进行连接;第二交换芯片到第一交换芯片的连接线通过背板连接。图中较粗连线是表示多条并发链路,可根据不同的结构调整。

  其中,图1所示的大端口交换机前面板端口结构,如图4所示。图中粗线框表示连接计算节点的端口,细线框表示连接I/O节点的端口。每个接口板(指将交换机的24个端口,集成到一块面板上而形成的接口板)具有24端口,4个第二交换芯片对应4个接口板连接96个计算节点(一个第二交换芯片可连接24个计算节点,一个接口板具有24端口,因此,4个第二交换芯片对应4个接口板),4个第一交换芯片对应7个接口板连接168个I/O节点(一个第一交换芯片可连接42个I/O节点,一个接口板具有24端口,因此,4个第一交换芯片对应7个接口板),共计11块接口板可互连260节点。相应地,图2所示的大端口交换机前面板端口结构,如图5所示。图中粗线框表示连接计算节点的端口,细线框表示连接I/O节点的端口。每个接口板具有24端口,4个第二交换芯片对应4个接口板连接96个计算节点,12个第一交换芯片对应22块接口板连接528个I/O节点,共计26块接口板可互连624节点。

  本申请实施例还提供了一种应用于上述交换机的报文转发方法,以保证交换机内各个交换芯片间的通信畅通,避免出现死锁。由于该交换机是基于交换芯片构成的,具有Full Mesh Plus网络拓扑,从而基于最短路径路由算法即可实现无阻塞网络。根据交换芯片和各个计算节点在网络拓扑中的位置关系,将交换芯片、节点端口所在各个维度的坐标信息进行编码,交换机编码为X_Y_P_N。其中X、Y为交换芯片(包括第一交换芯片和第二交换芯片)所在维度的坐标值,P表示该交换芯片是否为第一交换芯片(也即Plus交换芯片),如果P为0,定义为第二交换芯片,如果P为1,定义为第一交换芯片,当然也可以反过来,也即,如果P为1,定义为第二交换芯片,如果P为0,定义为第一交换芯片。第一交换芯片具有与其直接连接的第二交换芯片相同的维度坐标,区别在于P的编码。节点编码的X、Y、P位采用与其连接的交换芯片相同编码(即X_Y_P_N)。其中,最后一位N为对应交换芯片的端口号,若该端口连接的是交换芯片,定义N=0,若该端口连接的是节点,其值即表示该端口连接的节点,如N为10,则表示端口10连接的节点。每个交换芯片或节点的编码唯一确定,可根据编码建立与逻辑标识(Logical IDentifier,LID)的映射关系,交换芯片收到数据后可根据目标LID获取设备编码,进行路由判决。

  对于标准Full Mesh网络,基于最短路径优先原则计算路由,根据目的地交换芯片和源交换芯片的LID对应的编码,确定目的地在拓扑中的位置关系,通过计算所在位置各个维度上的偏移量即可确定路由路径。例如,根据编码(X_Y_P_N)中的X、Y坐标便可定位目的地在拓扑中的位置,根据其中的P便可确定目的地交换芯片为第二交换芯片还是为第一交换芯片,根据其中的N,便可确定该端口连接的是交换芯片还是节点,从而可以准确地确定出路由路径。对于Full Mesh网络拓扑,可分解为正交的X/Y维度和XY对角维度,利用维序路由算法很容易计算出源交换芯片与目的地交换芯片之间的路由距离(为各维度上偏移量之和)。如按照维度长度递减的顺序遍历每个维度,每路由一步偏移量减1,在当前维度的偏移量减为0后才计算下一维度的偏移量,最后将各个维度上偏移量求和,即为源交换芯片与目的地交换芯片之间的路由距离。而Full Mesh Plus网络拓扑是在Full Mesh网络拓扑之上扩展得到的,且规定只有针对I/O节点的输出传输才会转发给第一交换芯片,而且I/O数据的第一跳和最后一跳是第二交换芯片(Full Mesh交换芯片)和第一交换芯片之间进行转发,其他情况都是在Full Mesh网络内传输,统一遵循维序路由规则,因此,维序路由算法仍适用于Full Mesh Plus网络。在数据报文转发时,直接基于最短路径原则进行转发,下面将结合图6,对本申请实施例提供的报文转发方法进行说明。

  步骤S101:在接收到数据报文时,获取所述数据报文中携带的目标逻辑标识,以及获取自身的当前编码。

  当目标交换芯片在接收到数据报文时,获取数据报文中携带的目标逻辑标识(目标LID),以及获取自身的当前编码。

  步骤S102:根据预设的逻辑标识与编码规则的对应关系,获取所述目标逻辑标识对应的目标编码。

  根据预设的LID与编码规则的对应关系,便可获得目标LID对应的目标编码。

  步骤S103:根据所述目标编码以及所述当前编码,确定转发端口,并将所述数据报文经所述转发端口转发出去。

  最后根据目标编码及当前编码便可确定目的地交换芯片在拓扑中的位置关系,进而确定转发端口,并将数据报文经确定的转发端口转发出去。

  其中,目标编码为(Xd,Yd,Pd,Nd),当前编码为(Xs,Ys,Ps,Ns),其中,Xd、Yd表示目的地交换芯片在整个交换机网络拓扑中所处的位置,Xs,Ys表示目标交换芯片在整个交换机网络拓扑中所处的位置;Pd表示目的地交换芯片的芯片类型(如Pd=0,则表示为第二交换芯片,Pd=1,则为第一交换芯片),Ps表示目标交换芯片的芯片类型,Nd表示目的地交换芯片的端口号,Ns表示目标交换芯片的端口号。

  基于无死锁路由算法,通过检测X/Y维度的坐标信息,便可判断目的地交换芯片位于目标交换芯片的哪个维度,也即通过判断Xd是否等于Xs,以及Yd是否等于Ys;如果目的地交换芯片的X/Y维度坐标和目标交换芯片的X/Y维度坐标不同(也即,Xd不等于Xs且Yd不等于Ys),说明目的地交换芯片位于目标交换芯片的XY对角维度,从XY对角维度链路所在端口转发数据报文;如果X维度相同,Y维度不同(也即Xd等于Xs,Yd不等于Ys),说明目的地交换芯片位于目标交换芯片的Y维度,从Y维度链路所在端口转发数据报文;如果Y维度相同,X维度不同(也即Xd不等于Xs,Yd等于Ys),说明目的地交换芯片位于目标交换芯片的X维度,从X维度链路所在端口转发数据报文;如果X/Y维度都相同(也即Xd等于Xs且Yd等于Ys),说明目的地交换芯片位于目标交换芯片或者位于其连接的第一交换芯片,通过进一步判断目标Pd和当前Ps是否相等便可确定:如果Ps=Pd,说明目的地交换芯片位于目标交换芯片,从Nd相应端口转发数据报文至目标节点,否则,从P维度链路所在端口(连接该Pd的Super IO端口)转发数据报文至目标第一交换芯片。第一交换芯片收到数据报文后,判断各维度信息和自己都相同,说明是所述目标交换芯片连接的节点,直接从端口Nd输出即可到达目标节点,具体示意图如图7所示。由于Full Mesh内部路由一跳可达,路由不会死锁,到Plus链路的路由只是最后一跳即到达目标节点,不参与中间Full Mesh网络的路由,因此也不会死锁。

  其中,由于每个维度(X维度、Y维度、XY对角维度或P维度(也即表1或表2中Plus维度))间有多条并发高速通信链路,为实现负载均衡,有效利用链路资源,可根据链路Buffer(缓冲器)缓存资源的占用情况,自适应的选择传输链路,可有效提升链路利用率,增加吞吐率。交换芯片会交换各自链路输入缓存的利用率,交换芯片在基于最短路径路由算法判断输出路由方向的情况下,根据下游链路的输入缓存资源占用情况,选择链路最空闲的端口输出,从而达到动态分配链路资源,实现负载均衡。如图8所示,SW0的当前数据传输给SW1,有4条链路可以选择,其中LINK4的输入缓存最空闲,则SW0会选择在LINK4传输数据。如果存在Buffer资源空间相同的情况,采用随机算法进行选择。其中的Cross Bar为交叉开关矩阵或纵横式交换矩阵,为交换芯片内部的核心组件。

  本申请实施例所提供的应用于交换机的报文转发方法,其中的交换机的实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。

  如图9所示,图9示出了本申请实施例提供的一种电子设备200的结构框图。所述电子设备200包括:收发器210、存储器220、通讯总线230以及处理器240。

  所述收发器210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,收发器210用于收发配置报文。存储器220用于存储计算机程序,如存储有用于执行本申请实施例所示的报文转发方法的软件功能模块,该计算机程序或软件功能模块包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(operating system,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的软件功能模块或计算机程序。例如,处理器240,用于在接收到数据报文时,获取所述数据报文中携带的目标逻辑标识,以及获取自身的当前编码;以及用于根据预设的逻辑标识与编码规则的对应关系,获取所述目标逻辑标识对应的目标编码;以及还用于根据所述目标编码以及所述当前编码,确定转发端口,并将所述数据报文经所述转发端口转发出去。

  其中,存储器220可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

  处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。

  其中,上述的电子设备200,包括但不限于上述的交换芯片。

  需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

  在本申请所提供的几个实施例中,应该理解到,所揭露方法,也可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

  另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

  所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

  以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

《一种交换机、报文转发方法及电子设备.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)