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

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

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


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

技术领域

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

背景技术

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

伴随对交换网络性能需求的提升,网络拓扑越来来越复杂,现有的分布式路由的实现方法中,路由节点内部以及路由节点之间不可避免地存在RGA(Request-Grant-Accept,请求-授权-接受)交互,RGA交互的存在增加了路由节点的硬件实现逻辑以及时间的复杂度,降低了交换网络的路由实现效率,因而亟需对分布式路由的实现方法进行改进,以避免路由节点内部以及路由节点之间存在RGA交互,以降低路由节点的硬件实现逻辑以及时间的复杂度。

发明内容

有鉴于此,有必要针对以上技术问题,提供一种分布式路由的实现方法、装置、设备及介质。

根据本发明的第一方面,提供了一种分布式路由的实现方法,所述分布式路由的实现方法包括:

响应于源路由节点接收到若干路由请求,确定所述若干路由请求的输入顺序,并根据所述路由请求对应的接收终端节点的序号确定待发送的目标路由节点;

响应于所述源路由节点和所述目标路由节点不为同一路由节点,轮询所述源路由节点的空闲输出端口并基于轮询顺序设置所述空闲输出端口对应的优先级;

按照所述输入顺序以及所述空闲输出端口对应的优先级的顺序对所述路由请求对应的输入端口匹配对应的所述空闲输出端口;

基于匹配的所述空闲输出端口将所述路由请求发送给所述匹配的所述空闲输出端口所连接的中间路由节点,并由所述中间路由节点经由所述目标路由节点将所述路由请求发送至所述接收终端节点。

在一些实施例中,所述轮询所述源路由节点的空闲输出端口的步骤,包括:

从所述源路由节点的轮询指针指向的输出端口序号开始按照序号顺序轮询所述源路由节点的空闲输出端口;

基于轮询结果更新所述轮询指针指向的所述输出端口的序号。

在一些实施例中,所述基于轮询结果更新所述轮询指针指向的所述输出端口的序号的步骤,包括:

基于轮询得到的所述空闲输出端口中的末尾输出端口的对应序号更新所述轮询指针指向的所述输出端口的序号。

在一些实施例中,所述基于轮询顺序设置所述空闲输出端口对应的优先级的步骤,包括:

基于轮询所述空闲输出端口的先后顺序为所述空闲输出端口设置由高到低的优先级。

在一些实施例中,所述按照所述输入顺序以及所述空闲输出端口对应的优先级的顺序对所述路由请求对应的输入端口匹配对应的所述空闲输出端口的步骤,包括:

按照所述输入顺序依次为所述路由请求对应的所述输入端口匹配所述优先级由高到低的所述空闲输出端口。

在一些实施例中,所述按照所述输入顺序依次为所述路由请求对应的所述输入端口匹配所述优先级由高到低的所述空闲输出端口的步骤,包括:

响应于所述路由请求的数量大于所述空闲输出端口的数量,将未匹配到的所述路由请求按照所述输入顺序放入队列并等待下一次轮询。

在一些实施例中,所述由所述中间路由节点经由所述目标路由节点将所述路由请求发送至所述接收终端节点的步骤,包括:

所述中间路由节点基于与所述目标路由节点连接的输出端口将所述路由请求发送给所述目标路由节点;

所述目标路由节点从其输出端口将所述路由请求发送给所述接收终端节点。

在一些实施例中,所述中间路由节点基于其与所述目标路由节点连接的输出端口将所述路由请求发送给所述目标路由节点的步骤包括:

响应于所述与所述目标路由节点连接的输出端口被占用,在所述被占用的输出端口等待至其空闲后将所述路由请求发送给所述目标路由节点。

在一些实施例中,所述目标路由节点从其输出端口将所述路由请求发送给所述接收终端节点的步骤,包括:

所述目标路由节点对所述接收终端节点的序号基于所述目标路由节点挂载的终端节点数量进行取余计算,得到第一结果;

基于所述第一结果为所述路由请求匹配所述目标路由节点的输出端口,并经由所述目标路由节点的输出端口将所述路由请求发送给所述接收终端节点。

在一些实施例中,所述根据所述路由请求对应的接收终端节点的序号确定待发送的目标路由节点的步骤,包括:

所述源路由节点对所述若干路由请求分别对应的接收终端节点的序号基于所述源路由节点挂载的终端节点数量进行取整计算,并基于所述取整计算的结果确定所述目标路由节点。

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

响应于所述源路由节点和所述目标路由节点为同一路由节点,将所述路由请求从所述源路由节点的对应输出端口发送给所述接收终端节点。

在一些实施例中,所述将所述路由请求从所述源路由节点的对应输出端口发送给所述接收终端节点的步骤,包括:

对所述接收终端节点的序号基于所述源路由节点挂载的终端节点数量进行取余计算,得到第二结果;

基于所述第二结果为所述路由请求匹配所述源路由节点的对应输出端口,并经由所述源路由节点的对应输出端口将所述路由请求发送给所述接收终端节点。

在一些实施例中,所述将所述路由请求从所述源路由节点的对应输出端口发送给所述接收终端节点的步骤,包括:

响应于所述源路由节点的对应输出端口被占用,在所述源路由节点的对应输出端口等待至其空闲后将所述路由请求发送给所述接收终端节点。

根据本发明的第二方面,提供了一种分布式路由的实现装置,所述装置包括:

第一模块,用于响应于源路由节点接收到若干路由请求,确定所述若干路由请求的输入顺序,并根据所述路由请求对应的接收终端节点的序号确定待发送的目标路由节点;

第二模块,用于响应于所述源路由节点和所述目标路由节点不为同一路由节点,轮询所述源路由节点的空闲输出端口并基于轮询顺序设置所述空闲输出端口对应的优先级;

第三模块,用于按照所述输入顺序以及所述空闲输出端口对应的优先级的顺序对所述路由请求对应的输入端口匹配对应的所述空闲输出端口;

第四模块,用于基于匹配的所述空闲输出端口将所述路由请求发送给所述匹配的所述空闲输出端口所连接的中间路由节点,并由所述中间路由节点经由所述目标路由节点将所述路由请求发送至所述接收终端节点。

根据本发明的第三方面,还提供了一种电子设备,该电子设备包括:

至少一个处理器;以及

存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的分布式路由的实现方法。

根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的分布式路由的实现方法。

上述一种分布式路由的实现方法,根据源路由节点接收到的若干路由请求的输入顺序以及路由请求对应的接收终端节点的序号确定待发送的目标路由节点,若源路由节点和目标路由节点不为同一路由节点,根据路由请求对应的源路由节点的输入端口的输入顺序以及对源路由节点的轮询的空闲输出端口的轮询顺序对路由请求对应的输入端口匹配对应的空闲输出端口,通过匹配的空闲输出端口将路由请求发送给中间路由节点,再由中间路由节点经由目标路由节点发送给接收终端节点。此分布式路由的实现方法实现了在路由节点内部以及路由节点之间避免了RGA交互,降低了路由节点的硬件实现逻辑以及时间的复杂度,提高了交换网络的路由实现效率。

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

附图说明

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

图1为本发明一个实施例提供的一种分布式路由的实现方法的流程图;

图2为本发明一个实施例提供的第一级路由节点1的端口结构示意图;

图3为RGA交互中第一级路由节点1的输入端口向输出端口发送路由请求的示意图;

图4为RGA交互中第一级路由节点1的输出端口向输入端口授权的示意图;

图5为RGA交互中第一级路由节点1的输出端口5向输入端口0授权的示意图;

图6为本发明一个实施例提供的双向两级CLOS网络拓扑结构的示意图;

图7为本发明一个实施例提供的第一级路由节点1内部端口仲裁器的初始示意图;

图8为本发明一个实施例提供的输入端口与输出端口完成匹配的示意图;

图9为本发明一个实施例提供的第二级路由节点1的端口示意图;

图10为本发明另一个实施例提供的一种分布式路由的实现装置的结构示意图;

图11为本发明另一个实施例中电子设备的内部结构图;

图12为本发明另一个实施例中计算机可读存储介质结构图。

具体实施方式

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

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

在一个实施例中,请参照图1所示,本发明提供了一种分布式路由的实现方法100,用于CLOS网络,具体来说,所述分布式路由的实现方法包括以下步骤:

步骤101,响应于源路由节点接收到若干路由请求,确定所述若干路由请求的输入顺序,并根据所述路由请求对应的接收终端节点的序号确定待发送的目标路由节点;

在一些实施例中,路由请求是指两个终端节点的通信请求,不妨假设某场景下某一终端节点需要向终端节点3发送数据时,需要说明的是路由请求是具有方向性的,接收数据包的终端节点3即为接收终端节点。需要说明的是本实施例中所涉及的路由请求中终端节点序号仅用于举例说明,不应理解为对本发明方案的限制,在具体实施过程中接收终端节点的需要依据具体业务场景可进行灵活变化。

在一些具体实施过程中,基于任一种现有的多级交换网络结构(比如二级交换网络结构)构建对应的网络拓扑,源路由节点和目标路由节点为该网络拓扑中的同一级路由节点,需要说明的是,网络拓扑中各个路由节点、终端节点具有各自对应的序号,源路由节点和目标路由节点分别表示的是该路由请求在该网络拓扑中首次输入对应的路由节点以及最后输出对应的路由节点,源路由节点和目标路由节点表示的为路由请求对应的输入输出方向。因此,源路由节点和目标路由节点可以是同一路由节点,也可以不是同一路由节点。

在一些具体实施过程中,多级交换网络结构是由多个单级交换单元级联形成的,在多级交换网络结构中,只有第一级交换单元的输入端口与最后一级交换单元的输出端口是该多级交换网络结构的直接输入端口以及直接输出端口。由此可见,对于多级交换网络结构,级数越少,交换延迟相应减少,同时,交换通路也相应减少,导致路由节点内部的碰撞阻塞率提高。对于CLOS网络,可以将交换延迟以及交换通路数量进行较好地平衡,在减少交换延迟的同时尽量不增加路由节点内部的碰撞阻塞,其中,优选地为二级CLOS网络以及三级CLOS网络。

步骤102,响应于所述源路由节点和所述目标路由节点不为同一路由节点,轮询所述源路由节点的空闲输出端口并基于轮询顺序设置所述空闲输出端口对应的优先级;

在一些实施例中,若源路由节点和目标路由节点不为同一路由节点,即路由请求从不同的路由节点输入以及输出,此时在源路由节点的输出端口一侧轮询空闲输出端口,依次仲裁输出端口是否处于空闲状态,若其当前处于空闲状态,则轮询到一个空闲输出端口,继续对下一输出端口进行仲裁是否处于空闲状态,直至对所述源路由节点的全部输出端口仲裁完成,即轮询所述源路由节点的空闲输出端口,其中基于对源路由节点的输出端口依次仲裁的顺序确认轮询顺序,基于轮询顺序设置每一个轮询到的空闲输出端口对应的优先级。

步骤103,按照所述输入顺序以及所述空闲输出端口对应的优先级的顺序对所述路由请求对应的输入端口匹配对应的所述空闲输出端口;

在一些实施例中,输入顺序为所述若干路由请求依次输入到该源路由节点的时间顺序,即源路由节点接收到所述若干路由请求的时间顺序,比如按照时间先后顺序或者任意指定的时间顺序。

步骤104,基于匹配的所述空闲输出端口将所述路由请求发送给所述匹配的所述空闲输出端口所连接的中间路由节点,并由所述中间路由节点经由所述目标路由节点将所述路由请求发送至所述接收终端节点。

在一些实施例中,基于任一种现有的多级交换网络结构(比如二级交换网络结构)构建对应的网络拓扑,中间路由节点为该网络拓扑中与源路由节点以及目标路由节点不同级的路由节点。例如,源路由节点和目标路由节点为该网络拓扑中的第一级路由节点,则该中间路由节点为该网络拓扑中的第二级路由节点,由源路由节点到中间路由节点到目标路由节点的过程可以看出,当路由请求对应的源路由节点和目标路由节点不为同一路由节点时,该路由请求需经由中间路由节点将其从源路由节点发送至目标路由节点,以通过目标路由节点将该路由请求发送至对应的接收终端节点。

本公开的一种分布式路由的实现方法,根据源路由节点接收到的若干路由请求的输入顺序以及路由请求对应的接收终端节点的序号确定待发送的目标路由节点,若源路由节点和目标路由节点不为同一路由节点,根据路由请求对应的源路由节点的输入端口的输入顺序以及对源路由节点的轮询的空闲输出端口的轮询顺序对路由请求对应的输入端口匹配对应的空闲输出端口,通过匹配的空闲输出端口将路由请求发送给中间路由节点,再由中间路由节点经由目标路由节点发送给接收终端节点。此分布式路由的实现方法实现了在路由节点内部以及路由节点之间避免了RGA交互,降低了路由节点的硬件实现逻辑以及时间的复杂度,提高了交换网络的路由实现效率。

根据本发明的若干实施例,所述轮询所述源路由节点的空闲输出端口的步骤,包括:

从所述源路由节点的轮询指针指向的输出端口序号开始按照序号顺序轮询所述源路由节点的空闲输出端口;

基于轮询结果更新所述轮询指针指向的所述输出端口的序号。

通过指针轮询输出端口序号的方式轮询空闲输出端口,可以按照指针依次指向的顺序对每一次轮询到的空闲输出端口进行记录,指针依次指向的顺序即为轮询顺序,保证了每一次轮询过程中每个输出端口至多被轮询到一次,避免出现一个输出端口在一个时隙内被多次轮询的问题,减少轮询失误率。

根据本发明的若干实施例,所述基于轮询结果更新所述轮询指针指向的所述输出端口的序号的步骤,包括:

基于轮询得到的所述空闲输出端口中的末尾输出端口的对应序号更新所述轮询指针指向的所述输出端口的序号。

基于轮询指针轮询空闲输出端口,在每一次轮询结束时,将指针指向更新为指向轮询到的末尾输出端口的对应序号的位置,有利于下一次轮询从本次轮询结束位置开始进行轮询,保证了输出端口轮询的顺序性,也避免了每一次轮询从初始位置开始而导致增加不必要的时间复杂度,有利于提高轮询效率。

根据本发明的若干实施例,所述基于轮询顺序设置所述空闲输出端口对应的优先级的步骤,包括:

基于轮询所述空闲输出端口的先后顺序为所述空闲输出端口设置由高到低的优先级。

基于轮询到空闲输出端口的先后顺序为空闲输出端口设置对应的优先级,轮询先后顺序对应优先级由高到低的顺序,可以保证轮询到的空闲输出端口之间的时序准确,避免出现空闲输出端口处于无序状态而导致有的空闲输出端口不必要的轮空,有利于减小时间复杂度。

根据本发明的若干实施例,所述按照所述输入顺序以及所述空闲输出端口对应的优先级的顺序对所述路由请求对应的输入端口匹配对应的所述空闲输出端口的步骤,包括:

按照所述输入顺序依次为所述路由请求对应的所述输入端口匹配所述优先级由高到低的所述空闲输出端口。

对输入端口以及输出端口分别基于输入顺序和其对应的优先级进行匹配,可以提高输入端口与空闲输出端口最大程度的匹配数量,尽可能使每个输入端口有对应的空闲输出端口与之匹配,避免每次轮询需要分别对输入端口以及输出端口分别仲裁,减少链路碰撞,减少时间复杂度。

根据本发明的若干实施例,所述按照所述输入顺序依次为所述路由请求对应的所述输入端口匹配所述优先级由高到低的所述空闲输出端口的步骤,包括:

响应于所述路由请求的数量大于所述空闲输出端口的数量,将未匹配到的所述路由请求按照所述输入顺序放入队列并等待下一次轮询。

若路由请求数量大于空闲输出端口数量,将未匹配到的路由请求放入队列进行等待,避免对该未匹配到的路由请求遗漏下一次轮询。

根据本发明的若干实施例,所述由所述中间路由节点经由所述目标路由节点将所述路由请求发送至所述接收终端节点的步骤,包括:

所述中间路由节点基于与所述目标路由节点连接的输出端口将所述路由请求发送给所述目标路由节点;

所述目标路由节点从其输出端口将所述路由请求发送给所述接收终端节点。

若源路由节点和目标路由节点不为同一路由节点,经由中间路由节点将该路由请求发送给目标路由节点,从目标路由节点的对应输出端口发送给接收终端节点。基于前述源路由节点内部的输入端口与输出端口的匹配,避免源路由节点与中间路由节点之间出现RGA交互,可以直接基于前述匹配结果进行路由请求的输入输出。

根据本发明的若干实施例,所述中间路由节点基于其与所述目标路由节点连接的输出端口将所述路由请求发送给所述目标路由节点的步骤包括:

响应于所述与所述目标路由节点连接的输出端口被占用,在所述被占用的输出端口等待至其空闲后将所述路由请求发送给所述目标路由节点。

若目标路由节点中的对应输出端口被占用,等待其空闲后再将路由请求发送给该目标路由节点,可以最大程度对输出端口进行利用,减少路由节点内部路由实现的设计复杂度。

根据本发明的若干实施例,所述目标路由节点从其输出端口将所述路由请求发送给所述接收终端节点的步骤,包括:

所述目标路由节点对所述接收终端节点的序号基于所述目标路由节点挂载的终端节点数量进行取余计算,得到第一结果;

基于所述第一结果为所述路由请求匹配所述目标路由节点的输出端口,并经由所述目标路由节点的输出端口将所述路由请求发送给所述接收终端节点。

由于每一个终端节点有其对应的序号,且每一个路由节点也有其挂载的终端节点的数量,因此通过对接收终端节点的序号进行取余计算可以得到对应的输出端口的序号,计算过程简单,降低对路由节点硬件逻辑设计的复杂度。

根据本发明的若干实施例,所述根据所述路由请求对应的接收终端节点的序号确定待发送的目标路由节点的步骤,包括:

所述源路由节点对所述若干路由请求分别对应的接收终端节点的序号基于所述源路由节点挂载的终端节点数量进行取整计算,并基于所述取整计算的结果确定所述目标路由节点。

由于网络拓扑中的路由节点的数量是可知的,且可以对其进行标号,终端节点在网络拓扑中的数量也是可知的且有其对应的序号,因此,基于取整计算可以得到接收终端节点对应的目标路由节点,计算过程简单,降低对路由节点硬件逻辑设计的复杂度。

根据本发明的若干实施例,所述分布式路由的实现方法还包括:

响应于所述源路由节点和所述目标路由节点为同一路由节点,将所述路由请求从所述源路由节点的对应输出端口发送给所述接收终端节点。

基于前述取整计算,若得到源路由节点和目标路由节点为同一路由节点,则无需经由中间路由节点,直接将路由请求从该源路由节点上的输出端口输出即可,减少了链路选择,提高了对路由请求的响应效率。

根据本发明的若干实施例,所述将所述路由请求从所述源路由节点的对应输出端口发送给所述接收终端节点的步骤,包括:

对所述接收终端节点的序号基于所述源路由节点挂载的终端节点数量进行取余计算,得到第二结果;

基于所述第二结果为所述路由请求匹配所述源路由节点的对应输出端口,并经由所述源路由节点的对应输出端口将所述路由请求发送给所述接收终端节点。

若无需经由中间路由节点,直接将路由请求从该源路由节点上的输出端口输出,基于取余计算可以得到接收终端节点对应的源路由节点上的输出端口,计算过程简单,降低对路由节点硬件逻辑设计的复杂度。

根据本发明的若干实施例,所述将所述路由请求从所述源路由节点的对应输出端口发送给所述接收终端节点的步骤,包括:

响应于所述源路由节点的对应输出端口被占用,在所述源路由节点的对应输出端口等待至其空闲后将所述路由请求发送给所述接收终端节点。

若源路由节点中的输出端口被占用,等待其空闲后再将路由请求输出,可以最大程度对输出端口进行利用,减少路由节点内部路由实现的设计复杂度。

为便于理解本发明的方案,对多级CLOS网络结构进一步详细说明,多级CLOS网络结构中,较为优选地包括二级CLOS网络拓扑结构以及三级CLOS网络拓扑结构。其中,三级CLOS网络拓扑结构的单播调度算法根据连接请求的处理方式进行划分,分为集中式和分布式调度算法。集中式调度算法以全局信息计算链路分配的方式避免链路浪费,因此需要增设集中处理器,以获取所有输入模块的请求信息以及返回计算后的链路信息。集中式调度算法相比分布式调度算法来说,时间复杂度较高并且增加了额外的集中处理器结构。分布式调度算法不需要获取所有输入模块的链路请求信息,因此避免了比如中央调度器的集中仲裁方式,减少了交换网络的计算复杂度。由以上可以看出,对于片上网络,优选地为分布式调度算法,在分布式调度算法中输入级的一级节点模块和中间级的二级节点模块可以独立决定内部的链路分配,各个模块之间互不影响。分布式调度算法中优选地为CRRD(Concurrent Round-Robin Dispatching)算法。

基于现有的二级CLOS网络拓扑结构,对二级CLOS网络拓扑结构中的现有CRRD算法的具体实现过程进行说明。其中,为了方便对本发明的分布式路由的实现方法进行详细说明,对以下可能会用到的简称进行说明:发送数据包的Source节点记为S,接收数据包的Sink节点记为D,为了进行举例说明,假设S对应的一级路由节点为IM

终端节点4所连接的第一级路由节点(记作IM,其中一个记作IM0)内部仲裁。具体地,终端节点4向IM0的所有空闲的输入端口发送路由请求,IM0的所有空闲的输入端口收到该路由请求后以轮询方式进行仲裁,以选择一个空闲输入端口对该路由请求进行授权,对于IM0的输出端口,若收到该授权的输入端口,以轮询方式选择一个空闲输出端口向第二级路由节点(记作CM)发送该路由请求,若未收到该授权的输入端口,下一个时隙继续向IM0的所有空闲的输出端口发送该路由请求。

第一级路由节点IM与第二级路由节点CM之间存在RGA交互。具体地,IM0的输出端口向CM发送该路由请求,CM收到该路由请求后,查看该路由请求在该CM的对应输出端口,若空闲,则发出授权,若被占用则不会授权。收到授权的IM准备发送数据包。

在本发明的某一个具体实施例中,对第一级路由节点内部以及第一级路由节点以及第二级路由节点之间存在的RGA交互进行详细说明,图2示出的为本发明一个实施例提供的第一级路由节点1的端口结构示意图,如图2所示,对于第一级路由节点1,其接收的数据包来自输入端口0/1/2/3并将数据包发送至输出端口4/5/6/7,在第一级路由节点1内部,向输出端口4/5/6/7中的空闲输出端口发送路由请求。图3示出的为RGA交互中第一级路由节点1的输入端口向输出端口发送路由请求的示意图,如图3所示,假设输入端口0/2接收到数据包,

为了便于理解本发明的方案,与前述现有的二级CLOS网络拓扑结构进行比较,下面以双向两级CLOS网络拓扑结构为例,详细说明本发明的分布式路由的实现方法,图6示出的为本发明一个实施例提供的双向两级CLOS网络拓扑结构的示意图,所述的双向两级CLOS网络拓扑结构为改进的CLOS网络拓扑结构,每条链路均可以双向传输数据,即是全双工传输,如图6所示,圆圈标号示出的为CLOS网络拓扑结构中的路由节点对应的序号,方框标号示出的为CLOS网络拓扑结构中的终端节点,在该双向两级CLOS网络拓扑结构中,按照由下到上的顺序,依次示出了终端节点及其标号,第一级路由节点及其标号,第二级节点及其标号,各个节点之间的链路为全双工传输数据,即可以互相传输数据。

继续参考图6,在该双向两级CLOS网络拓扑结构中,终端节点包括32个,即方框0~方框31,终端节点可以为发送终端节点(发送数据包的终端节点),即Source节点,也可以为接收终端节点(接收数据包的终端节点),即Sink节点,根据实际数据包的传输方向确认为Source节点或者Sink节点。

继续参考图6,在该双向两级CLOS网络拓扑结构中,第一级路由节点包括8个,即第一级圆圈0~第一级圆圈7,第一级路由节点分别与终端节点以及第二级路由节点进行链路连接,其中,在本具体实施例中,每一个第一级路由节点均与4个终端节点链路连接,即第一级路由节点按照序号顺序分别与32个终端节点中的4个终端节点连接,每一个第一级路由节点之间不存在重叠的终端节点。

继续参考图6,在该双向两级CLOS网络拓扑结构中,第二级终端节点包括4个,即第二级圆圈0~第二级圆圈3,第二级路由节点分别与每一个第一级路由节点进行链路连接,即第二级圆圈0~第二级圆圈3分别与第一级圆圈0~第一级圆圈7链路连接,每一个第二级终端节点分别与8个第一级终端节点连接。

在本发明的一个具体实施例中,参照图6示出的双向两级CLOS网络拓扑结构,详细说明本发明的分布式路由的实现方法。为方便举例说明,如前所述,发送数据包的Source节点记为S,接收数据包的Sink节点记为D,//为整除计算,%为取余计算,并假设S对应的一级路由节点为IM

分别计算S//4以及D//4对应的结果,若S//4=D//4时,表示S和D分别对应的第一级路由节点为同一个路由节点,即IM

进一步,若S//4≠D//4时,表示S和D分别对应的第一级路由节点不为同一个路由节点,即IM

在本发明的一个具体实施例中,继续参照图6示出的双向两级CLOS网络拓扑结构,详细说明本发明的分布式路由的实现方法。同时,参照图2示出的本发明一个实施例提供的第一级路由节点1的端口结构示意图,对于第一级路由节点1,其接收的数据包来自输入端口0/1/2/3并将数据包发送至输出端口4/5/6/7。

具体地,第一级路由节点涉及源路由节点(S对应的第一级路由节点)和目标路由节点(D对应的第一级路由节点),分别对源路由节点以及目标路由节点内部的路由情况进行具体说明:

源路由节点为第一级路由节点1,若S//4=D//4时,表示S和D分别对应的第一级路由节点为同一个路由节点,无需将路由请求由第一级路由节点发送给下一级路由节点的步骤,对D进行取余计算得到D对应的第一级路由节点1上的输出端口的序号,将路由请求发送给D,若此时第一级路由节点1上的该输出端口被占用,则等待直至其空闲时再发送。

若S//4≠D//4时,表示S和D分别对应的第一级路由节点不为同一个路由节点,假设路由请求来自输入端口0/2/3,输出端口5/6为空闲输出端口,图7示出的为本发明一个实施例提供的第一级路由节点1内部端口仲裁器的初始示意图,如图7所示,图中输入端口0/2/3(图中空白圆圈表示有路由请求输入,图中黑色填充表示无路由请求输入)分别有路由请求输入,图中输出端口5/6(图中黑色填充圆圈表示被占用,空白圆圈表示空闲)分别为空闲输出端口,在第一级路由节点1内部输出端口有一个链路仲裁器,可以实现通过轮询方式确定空闲输出端口的优先级。例如,在第一级路由节点1的输出端口侧对空闲输出端口5/6轮询其对应的优先级,首先轮询到的为输出端口6,其次为输出端口5,并直接跳过被占用的输出端口(不对输出端口4/7轮询),被占用的输出端口不统计在优先级内,空闲输出端口5/6的优先级顺序为输出端口6、输出端口5,按照轮询顺序确定优先级顺序,优选地,按照轮询的先后顺序确定优先级的高低顺序,优先级由高到低的顺序依次是第一优先级、第二优先级,逐次类推。对于有路由请求输入的输入端口,按照空闲输出端口的优先级进行匹配,即按照路由请求的输入顺序依次对输入端口匹配对应优先级的输出端口,优选地,按照路由请求的输入顺序依次对输入端口匹配由高到低优先级的输出端口。例如,第一个接收到路由请求的输入端口1与优先级最高(第一优先级)的输出端口6匹配,第二个接收到路由请求的输入端口2与第二优先级的输出端口5匹配,由于在本具体实施例中,只有两个空闲输出端口,即输出端口5/6,因此,对于第三个接收到路由请求的输入端口3轮空,将其放入队列等下下一次轮询,图8示出的为本发明的一个实施例提供的输入端口与输出端口完成匹配的示意图。由图8可以看出,当有多个路由请求需要多个空闲输出端口时,在一个时隙内可以进行多个链路的匹配,匹配完成的数量为二者中的最小值。

经过上述步骤,输入端口0与输出端口6匹配,输入端口2与输出端口5匹配,输入端口3轮空等待下一个时隙,输出端口5和6经过轮询分别与对应的输入端口匹配,即被占用。基于输入端口与输出端口的匹配对第一级路由节点1中的仲裁器的指针指向的输出端口的序号进行更新,将其更新为指向轮询到的空闲输出端口(输出端口5、输出端口6)中的末尾输出端口对应的序号,即将指针更新为指向输出端口6。

进一步,第一级路由节点1将路由请求分别从输出端口5、输出端口6发送给对应的第二级路由节点。

在目标路由节点内部,通过对D取余得到D对应的目标路由节点上的输出端口的序号,若此时该目标路由节点上的对应输出端口被占用,则等待直至其空闲时再输出。

进一步,第二级路由节点分别与所有的第一级路由节点连接,图9示出的为本发明的一个实施例提供的第二级路由节点1的端口示意图,如图9所示,第二级路由节点1包括8个端口,通过链路与第一级路由节点连接,第二级路由节点1从输入端口接收到路由请求后,根据D进行取整计算(D//4)得到该路由请求对应的第二级路由节点的输出端口,从D对应的输出端口将该路由请求发送到D对应的第一级路由节点(目标路由节点),若此时输出端口被占用,等待直至其空闲时再发送。

由此可见,本发明提供的分布式路由的实现方法相较于现有的CRRD算法,最大程度提高了链路的匹配数量,减小了分布式路由实现的时间复杂度和逻辑复杂度,有利于硬件实现。

在一些实施例中,请参照图10所示,本发明还提供了一种分布式路由的实现装置200,所述装置包括:第一模块201,用于响应于源路由节点接收到若干路由请求,确定所述若干路由请求的输入顺序,并根据所述路由请求对应的接收终端节点的序号确定待发送的目标路由节点;第二模块202,用于响应于所述源路由节点和所述目标路由节点不为同一路由节点,轮询所述源路由节点的空闲输出端口并基于轮询顺序设置所述空闲输出端口对应的优先级;第三模块203,用于按照所述输入顺序以及所述空闲输出端口对应的优先级的顺序对所述路由请求对应的输入端口匹配对应的所述空闲输出端口;第四模块204,用于基于匹配的所述空闲输出端口将所述路由请求发送给所述匹配的所述空闲输出端口所连接的中间路由节点,并由所述中间路由节点经由所述目标路由节点将所述路由请求发送至所述接收终端节点。

本实施的一种分布式路由的实现装置,根据源路由节点接收到的若干路由请求的输入顺序以及路由请求对应的接收终端节点的序号确定待发送的目标路由节点,若源路由节点和目标路由节点不为同一路由节点,根据路由请求对应的源路由节点的输入端口的输入顺序以及对源路由节点的轮询的空闲输出端口的轮询顺序对路由请求对应的输入端口匹配对应的空闲输出端口,通过匹配的空闲输出端口将路由请求发送给中间路由节点,再由中间路由节点经由目标路由节点发送给接收终端节点。此分布式路由的实现装置可以在路由节点内部以及路由节点之间避免了RGA交互,降低了路由节点的硬件实现逻辑以及时间的复杂度,提高了交换网络的路由实现效率。

需要说明的是,关于分布式路由的实现装置的具体限定可以参见上文中对分布式路由的实现方法的限定,在此不再赘述。上述路由分布式路由的实现装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

根据本发明的另一方面,提供了一种电子设备,该电子设备可以是服务器,其内部结构图请参照图11所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的路由路径规划方法或以上所述的分布式路由的实现方法。

根据本发明的又一方面,提供了一种计算机可读存储介质,请参照图12所示,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的路由路径规划方法或以上所述的分布式路由的实现方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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

06120116484671