掌桥专利:专业的专利平台
掌桥专利
首页

一种分布式路由的实现方法、系统、设备及介质

文献发布时间:2024-04-18 19:58:26


一种分布式路由的实现方法、系统、设备及介质

技术领域

本发明涉及通信技术领域,尤其涉及一种分布式路由的实现方法、系统、设备及介质。

背景技术

随着互联网的快速普及与发展以及卫星互联网星座计划的不断部署、更多的用户终端接入网络,衍生出包含人们生产和生活各个领域的互联网应用,互联网中的流量已呈现爆炸式增长的趋势。光纤技术与星间激光通信技术的发展与应用使得信息传输网络的瓶颈已转移至互联网中交换结点的交换设备,如交换机与路由器等。这些交换设备的核心技术是交换技术,而交换技术又包括交换网络和调度算法两方面。为了提升信息交换网络性能,满足现今不断涌现的新型应用与业务需求,需要对更大容量、更好性能的交换网络和与之适配的高性能调度算法进行研究。

Clos网络是一种典型的无阻塞的多级互连网络,并由于其在通信网和多处理器计算机系统中被广泛采用而受到重视。自clos网络被提出,研究学者对其拓扑结构、连接特性和控制算法展开了较为深入的研究。然而即使是严格无阻塞的clos网络在使用CRRD类路由算法进行路由时,仍存在无法链接的情况,导致clos网络路由出现堵塞问题。堵塞问题的发生极大的降低了通信效率,因而亟需对clos网络的分布式路由的实现方法进行改进,以避免堵塞问题的发生。

发明内容

有鉴于此,本发明提出了一种分布式路由的实现方法、系统、设备及介质。

基于上述目的,本发明实施例的第一方面提供了一种分布式路由的实现方法,应用于clos网络,具体包括如下步骤:

通过输入路由节点内的若干虚拟输出队列组分别接收信元,并由其中的非空虚拟输出队列向所述输入路由节点内所有第一输出端口发送使用请求;

各所述第一输出端口分别选择一个所述使用请求并向所选择的所述使用请求对应的非空虚拟输出队列发送第一授权信息,判断所述输入路由节点内是否存在未接收到所述第一授权信息的非空虚拟输出队列;

响应于所述输入路由节点内所有所述非空虚拟输出队列都各自接收到至少一条所述第一授权信息,所有所述第一输出端口分别向各自连接的中间路由节点转发各自所选择的所述使用请求;

响应于有所述中间路由节点返回第二授权信息,将每个接收到所述第二授权信息的第一输出端口作为有效第一输出端口;

所述输入路由节点在所有所述有效第一输出端口中选择一个作为目标第一输出端口,将与所述目标第一输出端口对应的目标非空虚拟输出队列中的目标信元通过所述目标第一输出端口和对应的目标中间路由节点发送至目的输出路由节点。

在一些实施例中,所述输入路由节点在所有所述有效第一输出端口中选择一个作为目标第一输出端口,将与所述目标第一输出端口对应的目标非空虚拟输出队列中的目标信元通过所述目标第一输出端口和对应的目标中间路由节点发送至目的输出路由节点的步骤,包括:

在确定了所有所述有效第一输出端口的下一个时隙,所述输入路由节点在所有所述有效第一输出端口中选择一个作为目标第一输出端口;

建立所述目标第一输出端口与其所对应的目标非空虚拟输出队列之间的第一链路;

建立所述目标第一输出端口与其所对应的目标第二输出端口之间的第二链路,其中,所述目标第二输出端口为对应的目标中间路由节点内连接所述目的输出路由节点的第二输出端口,所述目标中间路由节点为向所述目标第一输出端口发送第二授权信息的中间路由节点;

通过所述第一链路和所述第二链路发送所述目标非空虚拟输出队列中的目标信元至目的输出路由节点。

在一些实施例中,所述分布式路由的实现方法还包括:

响应于所述输入路由节点内存在未接收到所述第一授权信息的待授权非空虚拟输出队列,所述待授权非空虚拟输出队列再次向所述输入路由节点内未发送所述第一授权信息的待授权第一输出端口发送所述使用请求;

各所述待授权第一输出端口分别选择一个所述使用请求以向所选择的所述使用请求对应的待授权非空虚拟输出队列发送所述第一授权信息,返回判断所述输入路由节点内是否存在未接收到所述第一授权信息的非空虚拟输出队列的步骤,直至所述输入路由节点内所有所述非空虚拟输出队列都各自接收到至少一条所述第一授权信息。

在一些实施例中,其特征在于,所述各所述第一输出端口分别选择一个所述使用请求并向所选择的使用请求对应的非空虚拟输出队列发送第一授权信息的步骤,包括:

根据第一输出端口链路指针的当前位置确定当前第一输出端口;

所述当前第一输出端口内轮询仲裁器在所有所述使用请求中选择一个作为仲裁的第一当前使用请求;

判断所述第一当前使用请求是否满足使用所述当前第一输出端口的条件;

若所述第一当前使用请求满足使用所述当前第一输出端口的条件,对所述第一当前使用请求给予第一次授权,并向所述第一当前使用请求对应的当前非空虚拟输出队列发送第一授权信息;

将所述第一输出端口链路指针的下一位置更新为所述第一输出端口链路指针的当前位置,返回根据第一输出端口链路指针的当前位置确定当前第一输出端口的步骤,直至所述第一输出端口链路指针的当前位置处于结尾位置。

在一些实施例中,所述分布式路由的实现方法还包括:

若所述第一当前使用请求不满足使用所述当前第一输出端口的条件,所述轮询仲裁器以轮询方式将下一个使用请求作为所述第一当前使用请求,返回判断所述第一当前使用请求是否满足使用所述当前第一输出端口的条件的步骤。

在一些实施例中,所述分布式路由的实现方法还包括:

响应于各所述中间路由节点中至少部分第二输入端口分别接收到不同的所述输入路由节点发出的所述使用请求,获取各所述使用请求对应的目的输出路由节点;

基于所述目的输出路由节点各所述中间路由节点分别选择一个所述使用请求作为目标使用请求,并向所述目标使用请求对应的输入路由节点返回第二授权信息。

在一些实施例中,所述基于所述目的输出路由节点各所述中间路由节点分别选择一个所述使用请求作为目标使用请求,并向所述目标使用请求对应的输入路由节点返回第二授权信息的步骤,包括:

将各所述使用请求发送至所述中间路由节点内连接到所述目的输出路由节点的第二输出端口;

各所述第二输出端口分别选择一个所述使用请求作为目标使用请求,以向所述目标使用请求对应的输入路由节点返回第二授权信息。

在一些实施例中,所述分布式路由的实现方法还包括:

判断虚拟输出队列指针的当前位置指向的当前非空虚拟输出队列是否接收到所述第一授权信息且超出预设时间未发出所述目标信元;

若所述当前非空虚拟输出队列接收到所述第一授权信息且超出预设时间未发出所述目标信元,所述当前非空虚拟输出队列对应的若干所述第一输出端口再次分别向各自连接的中间路由节点转发各自所选择的所述使用请求。

在一些实施例中,所述分布式路由的实现方法还包括:

若所述当前非空虚拟输出队列接收到所述第一授权信息且已发出所述目标信元,将所述虚拟输出队列指针的下一位置更新为所述虚拟输出队列指针的当前位置,返回判断虚拟输出队列指针的当前位置指向的当前非空虚拟输出队列是否接收到所述第一授权信息且超出预设时间未发出所述目标信元的步骤,直至所述虚拟输出队列指针的当前位置处于结尾位置。

在一些实施例中,所述各所述第二输出端口分别选择一个所述使用请求作为目标使用请求,以所述目标使用请求对应的输入路由节点返回第二授权信息的步骤,包括:

根据第二输出端口链路指针的当前位置确定当前第二输出端口;

所述当前第二输出端口内轮询仲裁器在所有所述使用请求中选择一个作为仲裁的第二当前使用请求;

判断所述第二当前使用请求是否满足使用所述当前第二输出端口的条件;

若所述第二当前使用请求满足使用所述当前第二输出端口的条件,将所述第二当前使用请求作为目标使用请求,对所述目标使用请求给予第二次授权,并向所述目标使用请求对应的输入路由节点发送第二授权信息;

将所述第二输出端口链路指针的下一位置更新为所述第二输出端口链路指针的当前位置,返回根据第二输出端口链路指针的当前位置确定当前第二输出端口的步骤,直至所述第二输出端口链路指针的当前位置处于结尾位置。

在一些实施例中,所述分布式路由的实现方法还包括:

若所述第二当前使用请求不满足使用所述当前第二输出端口的条件,所述轮询仲裁器以轮询方式将下一个由所述输入路由节点发出的所述使用请求作为所述第二当前使用请求,返回判断所述第二当前使用请求是否满足使用所述当前第二输出端口的条件的步骤。

在一些实施例中,所述通过输入路由节点内的若干虚拟输出队列组分别接收信元的步骤,包括:

响应于所述输入路由节点中不同的第一输入端口分别接收到信元,通过与所述第一输入端口对应的虚拟输出队列组中的虚拟输出队列存储所述信元,将存储了所述信元的虚拟输出队列作为非空虚拟输出队列。

在一些实施例中,所述虚拟输出队列组的数量与所述输入路由节点的所述第一输入端口的数量对应。

在一些实施例中,每个所述虚拟输出队列组中虚拟输出队列的数量与每个所述输入路由节点中所述第一输出端口的数量对应。

在一些实施例中,所述响应于有所述中间路由节点返回第二授权信息,将每个接收到所述第二授权信息的第一输出端口作为有效第一输出端口的步骤,包括:

确定所述返回所述第二授权信息的中间路由节点为有效中间路由节点;

将接收到所述第二授权信息的输入路由节点内用于连接所述有效中间路由节点的第一输出端口作为有效第一输出端口。

在一些实施例中,所述判断所述第一当前使用请求是否满足使用所述当前第一输出端口的条件的步骤包括:

基于所述第一输出端口未被占用,确认所述第一当前请求满足使用所述当前第一输出端口的条件。

在一些实施例中,所述判断所述第二当前使用请求是否满足使用所述当前第二输出端口的条件的步骤包括:

基于所述第二输出端口未被占用,确认所述第二当前使用请求满足使用所述当前第二输出端口的条件。

在一些实施例中,所述输入路由节点在所有所述有效第一输出端口中选择一个作为目标第一输出端口的步骤,包括:

所述输入路由节点以轮询方式或者随机方式在所有所述有效第一输出端口中选择一个作为目标第一输出端口。

在一些实施例中,每个所述输入路由节点中所述第一输出端口的数量与所述中间路由节点数量相同,每个所述中间路由节点内第二输出端口的数量和第二输入端口的数量与所述输入路由节点的数量相同。

根据本发明的第二方面,提供了一种分布式路由的实现系统,应用于clos网络,所述的系统包括:

第一发送单元,用于通过每个输入路由节点内的若干虚拟输出队列组分别接收信元,并由其中的非空虚拟输出队列向所述输入路由节点内所有第一输出端口发送使用请求;

第一授权单元,用于各所述第一输出端口分别选择一个所述使用请求以向所选择的所述使用请求对应的非空虚拟输出队列发送第一授权信息,判断所述输入路由节点内是否存在未接收到所述第一授权信息的非空虚拟输出队列;

第二发送单元,用于响应于所述输入路由节点内所有所述非空虚拟输出队列都各自接收到至少一条所述第一授权信息,所有所述第一输出端口分别向各自连接的中间路由节点转发各自所选择的所述使用请求;

第二授权单元,用于响应于有所述中间路由节点返回第二授权信息,将每个接收到所述第二授权信息的第一输出端口作为有效第一输出端口;

信元发送单元,用于所述输入路由节点在所有所述有效第一输出端口中选择一个作为目标第一输出端口,将与所述目标第一输出端口对应的目标非空虚拟输出队列中的目标信元通过所述目标第一输出端口和对应的目标中间路由节点发送至目的输出路由节点。

本发明实施例的第三方面,还提供了一种交换设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。

本发明实施例的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。

本发明至少具有以下有益技术效果:上述一种分布式路由的实现方法,在每个输入路由节点中构造能够向所有第一输出端口发送请求的虚拟输出队列组,利用其中的非空虚拟输出队列和第一输出端口间的交互实现输入路由节点内部非空虚拟输出队列和第一输出端口的匹配,并在输入路由节点内所有非空虚拟输出队列与至少一个第一输出端口完成匹配后,通过第一输出端口与中间路由节点的交互实现输入路由节点与中间路由节点的匹配,进而确定完成两次匹配的第一输出端口为空闲的、且与目的输出路由节点间存在空闲链路的有效第一输出端口,并通过在所有有效第一输出端口中任意选择一个作为目标第一输出端口,将该目标第一输出端口与其连接的中间路由节点建立空闲的路由链路以使得对应非空虚拟输出队列顺利发出目标信元至目的输出路由节点,上述方法针对处于严格无阻塞状态的clos网络中输出路由节点内部任意空闲的输入端口和输入路由节点内部任意空闲的输出端口,总能够建立一条空闲的链路将之连接起来,无需调整多级互联网络中其他建立好的链路保证各已建立的链路正常传输数据,达到了多级互联网络中稳定传输数据的效果,进一步的,上述方法还充分发挥了严格无阻塞Clos网络的优势,在输入路由节点向中间路由节点发送目标信元之前预先确认空闲链路避免目标信元发出后端口发生阻塞的情况,极大的提升了网络中的通信效率。

此外,本发明还提供了一种分布式路由的实现系统、一种交换设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为一个C(7,4,8)一般三级clos网络的一实施例的示意图;

图2为一般三级clos网络通信的一实施例的示意图;

图3为一个C(7,4,8) 严格无阻塞的三级clos网络的一实施例的示意图;

图4为传统CRRD类算法在严格无阻塞的三级clos网络通信的一实施例的示意图;

图5为本发明提供的一种分布式路由的实现方法的一实施例的框图;

图6是一种输入排队的一实施例的示意图;

图7为本发明提供的严格无阻塞的C(7,4,8)中IM(i)内VOQ发送请求的一实施例的示意图;

图8为本发明提供的严格无阻塞的C(7,4,8)的IC-L(i,r)授权的一实施例的示意图;

图9为本发明提供的严格无阻塞的C(7,4,8)中非空VOQ接受授权的一实施例的示意图;

图10为本发明提供的CM(j)内部接受到不同的IM的IC-L(I,j)向CO-L(j,i)发送请求的一实施例的示意图;

图11为本发明提供的CM(j)内部选择一个输出端口授权的一实施例的示意图;

图12为本发明提供的一种分布式路由的实现系统的一实施例的框图;

图13为本发明提供的交换设备的一实施例的结构示意图;

图14为本发明提供的计算机可读存储介质的一实施例的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

本发明旨在解决严格无阻塞状态的clos网络中存在空闲的输入端口和输出端口时无法建立一条空闲的链路实现空闲端口间的连接,导致发生阻塞的情况,因此对分布式路由的实现方法进行改进,以避免堵塞问题的发生。

如上所述,互连网络并不仅仅局限于应用在互联网里,互联网络中的一个终端节点可以是具有通信需求的任何系统或一组单元,它可以是一个处理器,处理器与存储器,图形处理单元,存储控制器,I/O接口等。传统互连网络大多数都是直接互连网络,如k元n立方体结构就是直接互连网络的典型代表,网络中每个终端节点上包含一个路由器,用来实现节点之间消息传递。间接互连网络将终端节点和路由器分离,路由器可以被用来作为一个独立的通信装置,典型的拓扑结构代表是胖树结构和Butterfly结构,每个路由器都与其邻居通过双向链路或者两个单向链路(每个负责一个方向)相连,这些链路称为通道。需要特别指出的是,随着互连的节点数的增多,整个系统的聚合带宽也将随之增大。互连拓扑结构通常有以下四个主要属性定义:

(1)节点度数:将一个节点与其邻居节点连接起来的通道的数量,或者说节点中路由器的端口数。

(2)网络直径:网络中两个节点之间最短距离的最大值。

(3)链路数:整个网络的链路数量,因为拓扑结构是确定的则链路数也是随之确定的。

(4)二分带宽:将网络中所有节点分成两个等分的子网,其最小割集对应的链路带宽就是二分带宽。二分带宽越高,网络通信能力越强。

Clos网络的各级间的各个模块之间有且只有一条连接,但任意输入端口、输出端口之间有多条路径可选择,所以Clos交换网络具有多路径特点,多条等价路径在提供冗余的同时也可支持业务的负载均衡。Clos交换网络每级的模块规模和结构一样,具有模块化的特点,有良好的可扩展性,适用于用小规模的模块来构建大容量交换网络。三级Clos交换网络的单播调度算法按连接请求的处理方式分为集中式和分布式两类调度算法。集中式调度算法是以全局信息计算链路分配的方式来避免链路浪费的,因此需增设集中处理器获取所有输入模块请求信息并返回计算后的链路信息。集中式算法相比分布式算法来说,时间复杂度较高且增加了额外的集中处理器结构。分布式调度算不需要获取所有输入模块的链路请求信息,避免了类似中央调度器集中仲裁的方式,从而减少了交换网络的设计复杂度。在分布式调度算法中输入级的IM(Input module)模块和中间级的CM(Center module)模块可以独立的决定自己内部的链路分配,各模块之间互不影响。这类算法主要有CRRD类算法和权重匹配算法。在CRRD类算法中,由于各个模块迭代时的独立性导致各模块的链路请求易在CM的输出端口产生冲突。

如图1所示为常用的clos网络,即为三级clos网络C(m,n,r),其中m表示中间级交换单元的数量,n表示输入级交换模块的输入端口数,也就是输出级交换单元的输出端口数量,r表示输入级交换单元的数量,也就是输出级交换单元的数量。图1中是一个C(4,4,8)三级clos网络。

尽管clos网络具有良好的路径多样性,但是仍有可能发生内部阻塞。内部阻塞是指对于网络中的一个有效请求,没有一个空闲的中间模块可以直接建立链路,所谓的有效请求是指请求的起始路由节点的输出端口和请求的目的路由节点的输入端口均为空的请求。如图2所示,有一路由请求从IM的节点1到OM的节点1,此时IM的节点1有一个输出端口空闲,因此路由请求会到达CM的路由节点0,但是CM节点0到OM节点1输出端口已经被占用;OM的路由节点1有一个从CM的路由节点3链接的输入端口空闲,但是IM的路由节点1到CM的路由节点3的输如端口已经被占用,此时导致发生内部阻塞,数据一直无法发出。需要说明的是本实施例中说涉及的路由请求中路由节点序号仅用于举例说明,不应理解为对本发明方案的限制,在具体实施过程中路由节点的需要依据具体业务场景可进行灵活变化。

严格无阻塞网络指在任何情况下,对于网络中的一个有效请求都存在至少一条路径。严格无阻塞的三级clos网络指对于一个C(m,n,r)网络,当m>=2n-1成立时,称此三级clos网络是严格无阻塞的。如图3中是一个C(7,4,8) 严格无阻塞的三级clos网络。

CRRD类算法是clos网络最常用的分布式路由算法,当严格无阻塞的clos网络使用CRRD类算法进行路由时,仍然网络中存在空闲的输入端口和输出端口时无法建立一条空闲的链路实现空闲端口间的连接,导致发生阻塞的情况。如图4所示,有一路由请求从IM路由节点1到OM路由节点1,此时IM路由节点1到CM路由节点4、5、6的输出端口已经被占用,OM路由节点1从CM路由节点0、1、2的输入端口已经被占用。使用CRRD类路由算法时,对于IM路由节点1的路由请求,每次会其在空闲的输出端口0、1、2、3随机选择一个输出端口发出路由请求,当其选择了输出端口0、1、2中的一个发出路由请求时,请求到达CM路由节点0、1、2中的一个时会发现CM路由节点0、1或2到OM路由节点1的输出端口被占用,此时路由请求不能被授权,没能建立链接,造成了一定的时间开销,严格无阻塞clos网络的优势没有发挥出来。此时如果想建立链接,IM节点1必须向CM节点3发出路由请求,然后CM节点3发现到OM节点1的端口空闲,只有向IM路由节点1发出授权,链接才能建立。因此本发明对分布式路由的实现方法进行改进,使其能充分发挥严格无阻塞Clos网络的优势,实现一旦clos网络中存在空闲的输入端口和输出端口时能够迅速建立一条空闲的链路实现空闲端口间的连接。

基于上述目的,本发明实施例的第一个方面,提出了一种分布式路由的实现方法的实施例。如图5所示,其包括如下步骤:

步骤101,通过输入路由节点内的若干虚拟输出队列组分别接收信元,并由其中的非空虚拟输出队列向输入路由节点内所有第一输出端口发送使用请求;

在一些实施例中,在输入路由节点内部的路由的实现方法中采用了虚拟输出队列(virtual Output Queue, VOQ)的概念。输入路由节点包含多个输入端口和多个输出端口以及若干虚拟输出队列组,虚拟输出队列组与输入端口一一对应,一个虚拟输出队列组中虚拟输出队列数量与输出端口数量对应,即输入路由节点内的每个输入端口中为其每个输出端口都维持了一个独立的虚拟队列。

在一些实施例中,与传统的路由节点不同,本申请在每个输入路由节点中为路由节点的每个输入端口分别设立一个虚拟输出队列组,即每个输入端口独享一个虚拟输出队列组。每个输入端口的路由请求都会分别缓存到输入端口对应的虚拟输出队列组中。同时能够将虚拟输出队列组中缓存的路由请求向所有输出端口发出。

步骤102,各第一输出端口分别选择一个使用请求并向所选择的使用请求对应的非空虚拟输出队列发送第一授权信息,判断输入路由节点内是否存在未接收到第一授权信息的非空虚拟输出队列;

在一些实施例中,输入路由节点中每个第一输出端口只能选择一个使用请求进行授权,并向所选择的使用请求对应的非空虚拟输出队列发送第一授权信息且接收到该非空虚拟输出队列返回的接收授权信息后,确定完成第一输出端口与该非空虚拟输出队列之间的匹配。每个非空虚拟输出队列都至少与一个第一输出端口匹配后,才能够确定完成分布式路由的实现方法中第一阶段的匹配。

在一些实施例中,在输入路由节点的第一输出端口处还设轮询仲裁器,通过轮询仲裁器对多个非空虚拟输出队列进行仲裁。每个虚拟输出队列组中均有至少一个非空虚拟输出队列会向所有第一输出端口周期性的发起使用第一输出端口的请求,对于多个虚拟输出队列发出的使用请求,轮询仲裁器根据轮询指针的当前位置依次选择一个虚拟输出队列发送授权信息。

步骤103,响应于输入路由节点内所有非空虚拟输出队列都各自接收到至少一条第一授权信息,所有第一输出端口分别向各自连接的中间路由节点转发各自所选择的使用请求;

在一些实施例中,在分布式路由的实现方法中第一阶段的匹配完成后,才能够进行分布式路由的实现方法中第二阶段的匹配,即中间路由节点与第一输出端口的匹配。步骤104,响应于有中间路由节点返回第二授权信息,将每个接收到第二授权信息的第一输出端口作为有效第一输出端口;

在一些实施例中,当其中一个非空虚拟输出队列得到第一授权信息并确定与其匹配的第一输出端口输出为有效第一输出端口后,该非空虚拟输出队列便可在该周期内使用对应的有效第一输出端口向该有效第一输出端口连接的中间路由节点发送信元。有效第一输出端口为已通过分布式路由的实现方法中两个阶段匹配的第一输出端口。

步骤105,输入路由节点在所有有效第一输出端口中选择一个作为目标第一输出端口,将与目标第一输出端口对应的目标非空虚拟输出队列中的目标信元通过目标第一输出端口和对应的目标中间路由节点发送至目的输出路由节点。

上述一种分布式路由的实现方法,在每个输入路由节点中构造能够向所有第一输出端口发送请求的虚拟输出队列,利用其中的非空虚拟输出队列和第一输出端口间的交互实现输入路由节点内部非空虚拟输出队列和第一输出端口的匹配,并在输入路由节点内所有非空虚拟输出队列与至少一个第一输出端口完成匹配后,通过第一输出端口与中间路由节点的交互实现输入路由节点与中间路由节点的匹配,进而确定完成两次匹配的第一输出端口为空闲的、且与目的输出路由节点间存在空闲链路的有效第一输出端口,并通过在所有有效第一输出端口中任意选择一个作为目标第一输出端口,将该目标第一输出端口与其连接的中间路由节点建立空闲的路由链路以使得对应非空虚拟输出队列顺利发出目标信元至目的输出路由节点,上述方法针对处于严格无阻塞状态的clos网络中输出路由节点内部任意空闲的输入端口和输入路由节点内部任意空闲的输出端口,总能够建立一条空闲的链路将之连接起来,无需调整多级互联网络中其他建立好的链路保证各已建立的链路正常传输数据,达到了多级互联网络中稳定传输数据的效果,并且充分发挥严格无阻塞Clos网络的优势,在输入路由节点向中间路由节点发送目标信元之前预先确认空闲链路避免目标信元发出后端口发生阻塞的情况,极大的提升了网络中的通信效率。

在一些实施例中,输入路由节点在所有有效第一输出端口中选择一个作为目标第一输出端口,将与目标第一输出端口对应的目标非空虚拟输出队列中的目标信元通过目标第一输出端口和对应的目标中间路由节点发送至目的输出路由节点的步骤,包括:

在确定了所有有效第一输出端口的下一个时隙,输入路由节点在所有有效第一输出端口中选择一个作为目标第一输出端口;

建立目标第一输出端口与其所对应的目标非空虚拟输出队列之间的第一链路;

建立目标第一输出端口与其所对应的目标第二输出端口之间的第二链路,其中,目标第二输出端口为对应的目标中间路由节点内连接目的输出路由节点的第二输出端口,目标中间路由节点为向目标第一输出端口发送第二授权信息的中间路由节点;

通过第一链路和第二链路发送目标非空虚拟输出队列中的目标信元至目的输出路由节点。

本实施例的一种分布式路由的实现方法,由于目标第一输出端口为已通过分布式路由的实现方法中两个阶段的匹配,通过目标第一输出端口建立的非空虚拟输出队列与目的输出路由节点间的空闲链路,能够使目标信元顺利发送到目的输出路由节点,避免目标信元发出后由于输入路由节点内输出端口被占用而出现堵塞的情况。

在一些实施例中,分布式路由的实现方法还包括:

响应于输入路由节点内存在未接收到第一授权信息的待授权非空虚拟输出队列,待授权非空虚拟输出队列再次向输入路由节点内所有未发送第一授权信息的待授权第一输出端口发送使用请求;

各待授权第一输出端口分别选择一个使用请求以向所选择的使用请求对应的待授权非空虚拟输出队列发送第一授权信息,返回判断输入路由节点内是否存在未接收到第一授权信息的非空虚拟输出队列的步骤,直至输入路由节点内所有非空虚拟输出队列都各自接收到至少一条第一授权信息。

本实施例的一种分布式路由的实现方法,以输入路由节点中所有非空虚拟输出队列都接收到授权信息为限制条件,确保所有非空虚拟输出队列都能够各自对应一个空闲第一输出端口,能够避免在传输信元时输出端口冲突导致队首堵塞的情况,降低了输出端口冲突造成的时耗,提升了信元传输的速率。

在一些实施例中,其特征在于,各第一输出端口分别选择一个使用请求以向所选择的使用请求对应的非空虚拟输出队列发送第一授权信息的步骤,包括:

根据第一输出端口链路指针的当前位置确定当前第一输出端口;

当前第一输出端口内轮询仲裁器在所有使用请求中选择一个作为仲裁的第一当前使用请求;

判断第一当前使用请求是否满足使用当前第一输出端口的条件;

若第一当前使用请求满足使用当前第一输出端口的条件,对第一当前使用请求给予第一次授权,并向第一当前使用请求对应的当前非空虚拟输出队列发送第一授权信息;

将第一输出端口链路指针的下一位置更新为第一输出端口链路指针的当前位置,返回根据第一输出端口链路指针的当前位置确定当前第一输出端口的步骤,直至第一输出端口链路指针的当前位置处于结尾位置。

在一些实施例中,分布式路由的实现方法还包括:

若第一当前使用请求不满足使用当前第一输出端口的条件,轮询仲裁器以轮询方式将下一个使用请求作为第一当前使用请求,返回判断第一当前使用请求是否满足使用当前第一输出端口的条件的步骤。

本实施例的一种分布式路由的实现方法,结合第一输出端口的轮询仲裁器依次对各使用请求进行判断,实现为每个非空虚拟输出队列确定一个能够进行匹配的空闲第一输出端口,基于此所实现的输入路由节点内部非空虚拟输出队列和第一输出端口的匹配结果准确率高,有效避免了一个输出端口匹配多个非空虚拟输出队列的情况。

在一些实施例中,分布式路由的实现方法还包括:

响应于各中间路由节点中至少部分第二输入端口分别接收到不同的输入路由节点发出的使用请求,获取各使用请求对应的目的输出路由节点;

基于目的输出路由节点各中间路由节点分别选择一个使用请求作为目标使用请求,并向目标使用请求对应的输入路由节点返回第二授权信息。

在一些实施例中,基于目的输出路由节点各中间路由节点分别选择一个使用请求作为目标使用请求,并向目标使用请求对应的输入路由节点返回第二授权信息的步骤,包括:

将各使用请求发送至中间路由节点内连接到目的输出路由节点的第二输出端口;

各第二输出端口分别选择一个使用请求作为目标使用请求,以向被第二授权的目标使用请求对应的输入路由节点返回第二授权信息。

本实施例的一种分布式路由的实现方法,通过第二授权信息告知目的输出路由节点的输入端口为空闲状态,以建立目标第一输出端口与目的输出路由节点输入端口的空闲链路,实现严格无阻塞状态的clos网络中输出路由节点内部任意空闲的输入端口和输入路由节点内部任意空闲的输出端口,总能够建立一条空闲的链路将之连接起来的目的,能够充分发挥严格无阻塞网络的优势。

在一些实施例中,分布式路由的实现方法还包括:

判断虚拟输出队列指针的当前位置指向的当前非空虚拟输出队列是否接收到第一授权信息且超出预设时间未发出目标信元;

若当前非空虚拟输出队列接收到第一授权信息且超出预设时间未发出目标信元,当前非空虚拟输出队列对应的若干第一输出端口再次分别向各自连接的中间路由节点转发各自所选择的使用请求。

在一些实施例中,分布式路由的实现方法还包括:

若当前非空虚拟输出队列接收到第一授权信息且已发出目标信元,将虚拟输出队列指针的下一位置更新为虚拟输出队列指针的当前位置,返回判断虚拟输出队列指针的当前位置指向的当前非空虚拟输出队列是否接收到第一授权信息且超出预设时间未发出目标信元的步骤,直至虚拟输出队列指针的当前位置处于结尾位置。

本实施例的一种分布式路由的实现方法,确定请求通过两次授权后,非空虚拟输出队列才能发送目标信元并更新虚拟输出队列指针位置,保证非空虚拟输出队列输出目标信元时,其匹配的第一输出端口与目的路由节点间的链路为空闲链路,以避免信元发出后由于输出端口繁忙造成堵塞,有效降低了网络通信时不必要的时间开销。

在一些实施例中,各第二输出端口分别选择一个使用请求作为目标使用请求,以向目标使用请求对应的输入路由节点返回第二授权信息的步骤,包括:

根据第二输出端口链路指针的当前位置确定当前第二输出端口;

当前第二输出端口内轮询仲裁器在所有使用请求中选择一个作为仲裁的第二当前使用请求;

判断第二当前使用请求是否满足使用当前第二输出端口的条件;

若第二当前使用请求满足使用当前第二输出端口的条件,将第二当前使用请求作为目标使用请求,对目标使用请求给予第二次授权,并向目标使用请求对应的输入路由节点发送第二授权信息;

将第二输出端口链路指针的下一位置更新为第二输出端口链路指针的当前位置,返回根据第二输出端口链路指针的当前位置确定当前第二输出端口的步骤,直至第二输出端口链路指针的当前位置处于结尾位置。

在一些实施例中,分布式路由的实现方法还包括:

若第二当前使用请求不满足使用当前第二输出端口的条件,轮询仲裁器以轮询方式将下一个由输入路由节点发出的使用请求作为第二当前使用请求,返回判断第二当前使用请求是否满足使用当前第二输出端口的条件的步骤。

本实施例的一种分布式路由的实现方法,结合第二输出端口的轮询仲裁器依次对各第一输出端口转发的使用请求进行判断,保证第二输出端口能够针对性的返回第二授权信息,基于此实现的第一输出端口与第二输出端口的匹配结果准确率高,有效避免了一个第二输出端口匹配多个第一输出端口的情况。

在一些实施例中,通过输入路由节点内的若干虚拟输出队列组分别接收信元的步骤,包括:响应于输入路由节点中不同的第一输入端口分别接收到信元,通过与第一输入端口对应的虚拟输出队列组中的虚拟输出队列存储信元,将存储了信元的虚拟输出队列作为非空虚拟输出队列。

在一些实施例中,虚拟输出队列组的数量与输入路由节点的第一输入端口的数量对应。

在一些实施例中,每个虚拟输出队列组中虚拟输出队列的数量与每个输入路由节点中第一输出端口的数量对应。

在一些实施例中,响应于有中间路由节点返回第二授权信息,将每个接收到第二授权信息的第一输出端口确定为有效第一输出端口的步骤,包括:确定返回第二授权信息的中间路由节点为有效中间路由节点;将接收到第二授权信息的输入路由节点内用于连接有效中间路由节点的第一输出端口作为有效第一输出端口。

在一些实施例中,判断第一当前使用请求是否满足使用当前第一输出端口的条件的步骤包括:基于第一输出端口未被占用,确认第一当前使用请求满足使用当前第一输出端口的条件;判断第二当前使用请求是否满足使用当前第二输出端口的条件的步骤包括:基于第二输出端口未被占用,确认第二当前使用请求满足使用当前第二输出端口的条件。

在一些实施例中,输入路由节点在所有有效第一输出端口中选择一个作为目标第一输出端口的步骤,包括:输入路由节点在所有有效第一输出端口中以轮询方式或者随机方式选择一个作为目标第一输出端口。

在一些实施例中,每个输入路由节点中第一输出端口的数量与中间路由节点数量相同,每个中间路由节点内第二输出端口的数量、第二输入端口的数量与输入路由节点的数量相同。

为便于理解本发明的方案,下面详细说明本发明的分布式路由的实现方法,其实现原理是基于严格无阻塞clos网络的拓扑结构,提出了避免网络中存在空闲的输入端口和输出端口时无法建立一条空闲的链路实现空闲端口间的连接而发生阻塞的路由方式,具体实施过程如下:

图6是一种输入排队的一实施例的示意图。对于N*N的输入排队结构采用先入先出(First In First Out,FIFO)的队列吞吐量被限制在58.6%。而吞吐量之所以被限制的原因在于队首阻塞(Head of Line,HoL)。HoL现象如图6所示,每个输入端口维持一个独立的FIFO队列,队列中的数字表示了目的输出端口的序号。可以看到FIFO1队列和FIFO3队列的队首信元在输出端口1产生冲突,而输出端口2是空闲的,虽然FIFO3队列中的第二个信元是去往输出端口2的,但是由于先入先出的排队方式导致这个信元虽有空闲链路但无法发送,将排队中的这种现象称为队首阻塞。由于在这个时刻的队首阻塞现象,导致此时的链路利用率只有50%。

本发明的分布式路由的实现方法采用在输入路由节点内每个输入端口中为其每个输出端口维持一个独立的虚拟队列的方式,可以有效避免上述实现方式中只有一个虚拟输出队列的情况下所有的路由请求全部进入一个先入先出虚拟输出队列时,因队首的路由请求的端口出现繁忙,队首的路由请求无法被执行等候在虚拟输出队列的队首,整个队列中后续的所有路由请求无论其请求的端口是否空闲都无法被执行,即出现的队首阻塞的情况,极大的提高路由节点的路由性能。

下面对本发明的分布式路由的实现方法进行说明:

阶段一、进行IM内部匹配;IM内部匹配时会发生至少一次迭代以使IM内部所有非空虚拟输出队列都至少匹配一个输出端口。

第一次迭代:

Step1:所有非空虚拟输出队列在每时隙初向IM内所有输出端口仲裁器发送请求;举例说明,图7为严格无阻塞的C(7,4,8)中IM(i)内VOQ发送请求的一实施例的示意图,图7中input0、input1、input2和input3分别对应一个虚拟输出队列组,每个虚拟输出队列组中为每个输出端口维持一个虚拟输出队列,其中VOQ(i,0,1)、VOQ(i,1,0)、VOQ(i,2,6)、VOQ(i,3,6)为IM(i)中的非空虚拟输出队列。

Step2:IM内的每个输出端口中链路仲裁器以轮询方式根据轮询指针PL(i, r)的当前位置选择一个非空VOQ请求,并向所选的VOQ返回授权信息。其中,每个IM在最多nm个非空VOQ请求中至多授权m个请求;继续step1的举例说明,图8为严格无阻塞的C(7,4,8)的IC-L(i,r)授权的一实施例的示意图,图8中各VOQ都接收到至少一个输出端口发送的授权信息。

Step3:每个非空VOQ接受所有授权并向相应的输出端口仲裁器发出接受信息。图9为严格无阻塞的C(7,4,8)中非空VOQ接受授权的一实施例的示意图,如图9中每个非空VOQ发出接受信息以将每个非空VOQ与至少一个输出端口匹配。

第i(i>1)次迭代:

Step4:在之前迭代过程中未匹配的非空VOQ再次向所有未匹配的输出端口中链路仲裁器发送请求。

Step5:未匹配的IM输出端口中链路仲裁器以轮询方式根据轮询指针PL(i, r)的当前位置选择一个未匹配的非空VOQ请求,并向所选的VOQ返回授权信息。

Step6:每个非空VOQ接受所有授权并向相应的输出端口仲裁器发出接受信息。

阶段二、进行IM与CM之间的匹配;

Step1:阶段一完成后,IM的输出端口向各自所连接的CM发送请求,CM输出端口仲裁器根据自己指针位置以轮询方式选择一个请求给予授权,并向所选的IM返回授权信息。

Step2:如果IM从CM得到授权信息,则在下个时隙以轮询方式选择一个输出端口并从相应的VOQ发送一个信元;否则,IM在下个时隙不能发送信元;IM内那些未得到CM授权的非空VOQ相应的指针并未更新,所以未得到CM授权的非空VOQ将在下个时隙继续发送请求。举例说明,图10为CM(j)内部接受到不同的IM的IC-L(I,j)向CO-L(j,i)发送请求的一实施例的示意图,图11为CM(j)内部选择一个输出端口授权的一实施例的示意图。

当且仅当一个请求为阶段一中迭代完成IM内部匹配且在阶段二得到了CM的授权时,该请求对应的IM中VOQ队列指针、IM输出端口链路指针和CM输出端口链路指针更新到下一个位置。

本实施例中,VOQ(i,j,h)表示IM(i)连接至CM(j)的第h各队列;IC-L(i,j)表示IM(i)连接至CM(j)的输出链路; CO-L(j,i)表示CM(j)连接至OM(i)的输出链路。

本实施例的一种分布式路由的实现方法,将预设要求下构造的虚拟输出队列通过两个阶段的匹配过程,针对网络中存在的空闲的输入端口和输出端口能够快速建立一条空闲的链路实现空闲端口间的连接,使空闲端口在任何情况下都能建立联系,充分发挥严格无阻塞Clos网络的优势,避免阻塞的情况发生,与传统路由规划方法相比此种方式简单易行,具有极高的通用性。

在一些实施例中,请参照图12所示,本发明还提供了一种分布式路由的实现系统,分布式路由的实现系统包括:

第一发送单元110,用于通过每个输入路由节点内的若干虚拟输出队列组分别接收信元,并由其中的非空虚拟输出队列向输入路由节点内所有第一输出端口发送使用请求;

第一授权单元120,用于各第一输出端口分别选择一个使用请求以向所选择的使用请求对应的非空虚拟输出队列发送第一授权信息,判断输入路由节点内是否存在未接收到第一授权信息的非空虚拟输出队列;

第二发送单元130,用于响应于输入路由节点内所有非空虚拟输出队列都各自接收到至少一条第一授权信息,所有第一输出端口分别向各自连接的中间路由节点转发各自所选择的使用请求;

第二授权单元140,用于响应于有中间路由节点返回第二授权信息,将每个接收到第二授权信息的第一输出端口作为有效第一输出端口;

信元发送单元150,用于输入路由节点在所有有效第一输出端口中选择一个作为目标第一输出端口,将与选择的目标第一输出端口对应的目标非空虚拟输出队列中的目标信元通过目标第一输出端口和对应的目标中间路由节点发送至目的输出路由节点。

本实施的一种分布式路由的实现系统,在每个输入路由节点中构造能够向所有第一输出端口发送请求的虚拟输出队列,利用其中的非空虚拟输出队列和第一输出端口间的交互实现输入路由节点内部非空虚拟输出队列和第一输出端口的匹配,并在输入路由节点内所有非空虚拟输出队列与至少一个第一输出端口完成匹配后,通过第一输出端口与中间路由节点的交互实现输入路由节点与中间路由节点的匹配,进而确定完成两次匹配的第一输出端口为空闲的、且与目的输出路由节点间存在空闲链路的目标第一输出端口,并通过在所有有效第一输出端口中任意选择一个作为目标第一输出端口,将该目标第一输出端口与其连接的中间路由节点建立空闲的路由链路以使得对应非空虚拟输出队列顺利发出信元至目的输出路由节点,上述系统针对处于严格无阻塞状态的clos网络中输出路由节点内部任意空闲的输入端口和输入路由节点内部任意空闲的输出端口,总能够建立一条空闲的链路将之连接起来,无需调整多级互联网络中其他建立好的链路保证各已建立的链路正常传输数据,达到了多级互联网络中稳定传输数据的效果,并且充分了发挥严格无阻塞Clos网络的优势,在输入路由节点向中间路由节点发送目标信元之前预先确认空闲链路避免目标信元发出后端口发生阻塞的情况,极大的提升了网络中的通信效率。

基于同一发明构思,根据本发明的另一个方面,如图13所示,本发明的实施例还提供了一种交换设备30,在该交换设备30中包括处理器310以及存储器320,存储器320存储有可在处理器上运行的计算机程序321,处理器310执行程序时执行如上的方法的步骤。

基于同一发明构思,根据本发明的另一个方面,如图14所示,本发明的实施例还提供了一种计算机可读存储介质40,计算机可读存储介质40存储有被处理器执行时执行如上方法的计算机程序410。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

相关技术
  • 一种分布式系统部署方法、系统、电子设备及存储介质
  • 一种分布式显示方法、系统、设备及计算机可读存储介质
  • 一种业务功能实现方法、系统、设备及计算机存储介质
  • 一种分布式数据连接处理方法、装置、设备及存储介质
  • 一种文件分布式部署方法、装置、电子设备及存储介质
  • 分布式架构下实现硬件组播的方法、装置、分布式系统和路由设备
  • 分布式架构下实现硬件组播的方法、装置、分布式系统和路由设备
技术分类

06120116492694