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

数据包的传输方法及系统、存储介质及电子装置

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


数据包的传输方法及系统、存储介质及电子装置

技术领域

本申请实施例涉及计算机领域,具体而言,涉及一种数据包的传输方法及系统、存储介质及电子装置。

背景技术

针对片上系统在时延、时针同步、可扩展性、能耗、可重用性等方面的缺陷,一种新的片上系统结构“片上网络”,于世纪末被提了出来,它很好的克服了总线结构带来的种种局限,充分借鉴了现有计算机网络中的相关网络技术,并将之引入到片上系统中来开发利用,具有很好的发展前景。

Clos网络是片上网络最常用的一种网络拓扑,最初的Clos网络是一种经典的多级互连网络。该网络由于在通信网和多处理器计算机系统中被广泛采用,因而受到广泛重视,从Clos的提出以来,人们对其拓扑结果、连接特性和控制算法进行了较为深入的研究,并取得了不少成果。

Clos网络的各级间的各个模块之间有且只有一条连接,但任意输入输出端口之间有多条路径可选择,所有Clos交换网络具有多路径特点,多条等价路径在提供冗余的同时也可支持业务的负载均衡;Clos交换网络每级的模块规模和结构一样,具有模块化的特点,有良好的可扩展性。但是当网络的规模增大时,Clos交换网络的路由节点数和连线数量大大增加,如图3所示,图中每条链路都可以双向传输数据,即是全双工的;图中的方框是源节点(por节点),共32个,圆圈是路由节点,一级路由节点有8个,二级路由节点有4个。每个一级路由节点上挂4个port节点;源节点负责数据包的发送和手机,相互之间可以互发数据包;路由节点负责转发数据包。

如图3所示的两级双向clos拓扑结构,在传统的路由实现方案中,终端节点向其对应的目标终端节点发起数据传输请求,当某一个起始终端节点发起向同一个目标终端节点的多包数据传输时,由于拓扑结构的路径多样性,不同包数据可能会匹配不同的路由路径进行数据路由传输,由于每个二级路由节点的阻塞程度不同,所以数据经由不同的二级路由节点传送至目标终端节点的顺序无法控制,这就导致在源终端节点发起的多包数据传输,无法按照其起始的先后顺序依次从对应目的终端节点输出,即出现数据的乱序现象,导致数据传输出错,举例说明,假设输入终端节点0向输出终端节点31发送3包数据,这3包数据在输入终端节点0发起传输时的顺序为数据包1、数据包2、数据包3,由于拓扑的路由多样性,数据包1可能会选择路径:输入终端节点0、第一级路由节点0、第二级路由节点0、第一级路由节点7、输出终端节点31;数据包2可能会选择路径:输入终端节点0、第一级路由节点0、第二级路由节点1、第一级路由节点7、输出终端节点31;数据包3可能会选择路径:输入终端节点0、第一级路由节点0、第二级路由节点2、第一级路由节点7、输出终端节点31;由于三条路径中的差别在于第二级路由节点的选择,数据包1选择二级节点0、数据包2选择二级节点1、数据包3选择二级节点2,由于互联结构中数据路由错综复杂,各二级节点会有不同路径的数据在此进行路由转发,即,各二级路由节点的“繁忙”程度存在差异,这样就可能导致数据包1选择的二级节点0“最繁忙”,数据包2选择的二级节点1“较繁忙”,数据包3选择的二级节点2“空闲”的状态,也就是说,首先到达二级节点0的数据包1因为二级节点0的“最繁忙”状态,需等待较长的时间进行排队,待排在其前面的任务结束,才能将数据包1从二级节点0转发输出;而最后到达二级节点2的数据包3,因为二级节点2的“空闲”状态,可立即将数据包3转发输出;数据包2因为二级节点1的“较繁忙”状态,将早于数据包1从二级节点路由输出。那么,以起始顺序数据包1、数据包2、数据包3发送的数据到达相同目标节点时的顺序变成了数据包3、数据包2、数据包1,这将导致接收端出现数据乱序错误。

传统的数据乱序的解决方法是在接收端设置buffer,对接收到的数据进行重排序,而该方案带来的问题是路径越多,需要的buffer就越大,而且一旦buffer被用完,但仍未完成重排序,就会导致整个网络陷入瘫痪。

针对相关技术中,在多级交换网络中进行数据传输时,不同的数据包会根据传输时节点的阻塞程度匹配到不同的路由路径进行传输,导致数据包传输至目标终端节点的顺序无法控制,最终出现数据乱序现象,导致数据传输出错的技术问题,尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种数据包的传输方法及系统、存储介质及电子装置,以至少解决相关技术中在多级交换网络中进行数据传输时,不同的数据包会根据传输时节点的阻塞程度匹配到不同的路由路径进行传输,导致数据包传输至目标终端节点的顺序无法控制,最终出现数据乱序现象,导致数据传输出错的问题。

根据本申请的一个实施例,提供了一种数据包的传输方法,包括:在接收到第一源节点发送的数据传输请求的情况下,从所述数据传输请求中解析出所述第一源节点的第一标识信息和第二源节点的第二标识信息,其中,所述数据传输请求用于所述第一源节点向所述第二源节点发送多个数据包,所述第一源节点和所述第二源节点均位于多级交换网络中;根据所述第一标识信息和所述第二标识信息确定所述数据传输请求在所述多级交换网络中的专用传输路径;将所述专用传输路径发送至所述第一源节点,以指示所述第一源节点将所述多个数据包通过所述专用传输路径传输至所述第二源节点。

在一个示例性实施例中,在所述根据所述第一标识信息和所述第二标识信息确定所述数据传输请求在所述多级交换网络中的专用传输路径之前,所述方法还包括:将所述多级交换网络中的多个源节点的标识信息转化成k位的二进制数,得到所述多个源节点的编号信息,其中,所述多个源节点至少包括所述第一源节点和所述第二源节点,2

在一个示例性实施例中,所述根据所述第一标识信息和所述第二标识信息确定所述数据传输请求在所述多级交换网络中的专用传输路径,包括:根据所述第一标识信息对应的第一编号信息确定所述第一源节点所连接的第一一级路由节点的第三编号信息,以及根据所述第二标识信息对应的第二编号信息确定所述第二源节点所连接的第二一级路由节点的第四编号信息;根据所述第二编号信息确定所述第二源节点在所述第二一级路由节点所连接的一组源节点中的相对位置;根据所述第三编号信息和所述第四编号信息确定所述专用传输路径中的目标一级路由节点和/或目标二级路由节点;根据所述目标一级路由节点和/或所述目标二级路由节点、所述相对位置确定所述专用传输路径。

在一个示例性实施例中,所述根据所述第一标识信息对应的第一编号信息确定所述第一源节点所连接的第一一级路由节点的第三编号信息,以及根据所述第二标识信息对应的第二编号信息确定所述第二源节点所连接的第二一级路由节点的第四编号信息,包括:将所述第一编号信息的前p位数字确定为所述第三编号信息,以及将所述第二编号信息的前p位数字确定为所述第四编号信息,其中,所述p根据所述n和所述m确定,p为正整数。

在一个示例性实施例中,所述p通过以下方式确定,包括:通过以下限制条件确定s:2

在一个示例性实施例中,所述根据所述第二编号信息确定所述第二源节点在所述第二一级路由节点所连接的一组源节点中的相对位置,包括:将所述第二编号信息的后s位数字确定为第五编号信息,并将所述第五编号信息转化为十进制数,得到转化结果,其中,s为正整数,所述转化结果用于指示所述相对位置。

在一个示例性实施例中,所述根据所述第三编号信息和所述第四编号信息确定所述专用传输路径中的目标一级路由节点和/或目标二级路由节点,包括:确定所述第三编号信息和所述第四编号信息是否相同;在所述第三编号信息与所述第四编号信息相同的情况下,将所述第一一级路由节点确定为所述目标一级路由节点,且确定所述专用传输路径不包括所述目标二级路由节点;在所述第三编号信息与所述第四编号信息不相同的情况下,将所述第一一级路由节点和所述第二一级路由节点确定为所述目标一级路由节点,并根据第三标识信息与第四标识信息的大小确定所述目标二级路由节点,其中所述第三标识信息为所述第三编号信息对应的十进制数,所述第四标识信息为所述第四编号信息对应的十进制数。

在一个示例性实施例中,所述根据第三标识信息与第四标识信息的大小确定所述目标二级路由节点,包括:在所述第三标识信息大于所述第四标识信息的情况下,通过公式

在一个示例性实施例中,所述根据第三标识信息与第四标识信息的大小确定所述目标二级路由节点,包括:在所述第三标识信息大于所述第四标识信息的情况下,根据r与h的大小确定所述目标二级路由节点,其中,r= S

在一个示例性实施例中,所述根据r与h的大小确定所述目标二级路由节点,包括:在所述r小于所述h的情况下,通过公式

在一个示例性实施例中,所述根据l与所述h的大小确定所述目标二级路由节点,包括:在所述l小于所述h的情况下,通过公式

在一个示例性实施例中,所述根据所述目标一级路由节点和/或所述目标二级路由节点、所述相对位置确定所述专用传输路径,包括:在所述第三编号信息和所述第四编号信息相同的情况下,根据所述第二一级路由节点和所述相对位置确定所述第二源节点;确定所述专用传输路径包括以下节点:所述第一源节点、所述第一一级路由节点和所述第二源节点,以及确定所述专用传输路径的传输顺序依次为:所述第一源节点、所述第一一级路由节点和所述第二源节点。

在一个示例性实施例中,所述根据所述目标一级路由节点和/或所述目标二级路由节点、所述相对位置确定所述专用传输路径,包括:在所述第三编号信息和所述第四编号信息不相同的情况下,根据所述第二一级路由节点和所述相对位置确定所述第二源节点;确定所述专用传输路径包括以下节点:所述第一源节点、所述第一一级路由节点、所述目标二级路由节点、所述第二一级路由节点和所述第二源节点,以及确定所述专用传输路径的传输顺序依次为:所述第一源节点、所述第一一级路由节点、所述目标二级路由节点、所述第二一级路由节点和所述第二源节点。

根据本申请的另一个实施例,提供了一种数据包的传输系统,包括:第一源节点,用于向中央处理器发送数据传输请求,其中,所述数据请求用于所述第一源节点向第二源节点发送多个数据包,其中,所述第一源节点和所述第二源节点均位于多级交换网络中;中央处理器,用于从所述数据传输请求中解析出所述第一源节点的第一标识信息和第二源节点的第二标识信息;根据所述第一标识信息和所述第二标识信息确定出所述数据传输请求在所述多级交换网络中的专用传输路径;将所述专用传输路径发送至所述第一源节点;所述第一源节点,还用于将所述多个数据包通过所述专用传输路径传输至所述第二源节点。

在一个示例性实施例中,所述多级交换网络,包括:n个一级路由节点、h个二级路由节点和t个源节点,其中,每个一级路由节点均与所述h个二级路由节点连接,且所述每个一级路由节点与一组源节点连接,h=n-1,t=m*n,m为所述一组源节点中源节点的数量,m、h、t为正整数,n为大于1的正整数。

根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本申请,在接收到数据传输请求的情况下,根据数据传输请求对应的数据发送方和数据接收方的标识信息确定这一组源节点对应的专用传输路径,从而指示数据发送方根据该专用传输路径进行数据包的发送,从而确保了待发送的多个数据包能以唯一一条传输路径进行依次传输,因此,可以解决相关技术中在多级交换网络中进行数据传输时,不同的数据包会根据传输时节点的阻塞程度匹配到不同的路由路径进行传输,导致数据包传输至目标终端节点的顺序无法控制,最终出现数据乱序现象,导致数据传输出错的问题,进而从根本上解决了数据乱序的问题,实现了对数据的保序的效果。

附图说明

图1是根据本申请实施例的一种数据包的传输方法的中央处理器的硬件结构框图;

图2是根据本申请实施例的数据包的传输方法的流程图;

图3是根据本申请实施例的一种可选的多级交换网络的结构示意图(一);

图4是根据本申请实施例的一种可选的多级交换网络的结构示意图(二);

图5是根据本申请实施例的数据包的传输系统的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请的实施例。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例中所提供的方法实施例可以在中央处理器或者类似的运算装置中执行。以运行在中央处理器上为例,图1是本申请实施例的一种数据包的传输方法的中央处理器的硬件结构框图。如图1所示,中央处理器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述中央处理器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述中央处理器的结构造成限定。例如,中央处理器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的数据包的传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至中央处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括中央处理器的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种数据包的传输方法,图2是根据本申请实施例的数据包的传输方法的流程图,如图2所示,该流程包括如下步骤:

步骤S202,在接收到第一源节点发送的数据传输请求的情况下,从所述数据传输请求中解析出所述第一源节点的第一标识信息和第二源节点的第二标识信息,其中,所述数据传输请求用于所述第一源节点向所述第二源节点发送多个数据包,所述第一源节点和所述第二源节点均位于多级交换网络中;

步骤S204,根据所述第一标识信息和所述第二标识信息确定所述数据传输请求在所述多级交换网络中的专用传输路径;

步骤S206,将所述专用传输路径发送至所述第一源节点,以指示所述第一源节点将所述多个数据包通过所述专用传输路径传输至所述第二源节点。

通过上述步骤,在接收到数据传输请求的情况下,根据数据传输请求对应的数据发送方和数据接收方的标识信息确定这一组源节点对应的专用传输路径,从而指示数据发送方根据该专用传输路径进行数据包的发送,从而确保了待发送的多个数据包能以唯一一条传输路径进行依次传输,因此,可以解决相关技术中在多级交换网络中进行数据传输时,不同的数据包会根据传输时节点的阻塞程度匹配到不同的路由路径进行传输,导致数据包传输至目标终端节点的顺序无法控制,最终出现数据乱序现象,导致数据传输出错的问题,进而从根本上解决了数据乱序的问题,实现了对数据的保序的效果。

其中,上述步骤的执行主体可以为中央处理器、网络交换机等,但不限于此。

步骤S202和步骤S204的执行顺序是可以互换的,即可以先执行步骤S204,然后再执行S202。

在一个示例性实施例中,执行上述步骤S204:根据所述第一标识信息和所述第二标识信息确定所述数据传输请求在所述多级交换网络中的专用传输路径之前,所述方法还包括:将所述多级交换网络中的多个源节点的标识信息转化成k位的二进制数,得到所述多个源节点的编号信息,其中,所述多个源节点至少包括所述第一源节点和所述第二源节点,2

为了便于中央处理器进行运算,需要先将多级交换网络中的多个源节点的标识信息转化成k位的二进制数,从而得到中央处理器可识别的编号信息,该多个源节点至少包括了该第一源节点和该第二源节点,k满足条件2

基于上述步骤,执行上述步骤S204:根据所述第一标识信息和所述第二标识信息确定所述数据传输请求在所述多级交换网络中的专用传输路径,可以通过以下步骤来实现,包括: S11,根据所述第一标识信息对应的第一编号信息确定所述第一源节点所连接的第一一级路由节点的第三编号信息,以及根据所述第二标识信息对应的第二编号信息确定所述第二源节点所连接的第二一级路由节点的第四编号信息;S12,根据所述第二编号信息确定所述第二源节点在所述第二一级路由节点所连接的一组源节点中的相对位置;S13,根据所述第三编号信息和所述第四编号信息确定所述专用传输路径中的目标一级路由节点和/或目标二级路由节点;S14,根据所述目标一级路由节点和/或所述目标二级路由节点、所述相对位置确定所述专用传输路径。

基于第一标识信息对应的第一编号信息,和第二标识信息对应的第二编号信息,中央处理器可以直接确定出第一源节点所连接的第一一级路由节点的第三编号信息,和第二源节点所连接的第二一级路由节点的第四编号信息;然后根据第二编号信息确定该第二源节点在该第二一级路由节点所连接的一组源节点中的相对位置;再根据第三编号信息和第四编号信息确定该专用传输路径中的目标一级路由节点和/或目标二级路由节点;最后根据确定出的目标一级路由节点和/或目标二级路由节点、相对位置确定出该专用传输路径。

可选的,上述步骤S11:根据所述第一标识信息对应的第一编号信息确定所述第一源节点所连接的第一一级路由节点的第三编号信息,以及根据所述第二标识信息对应的第二编号信息确定所述第二源节点所连接的第二一级路由节点的第四编号信息,可以通过以下方案来实现,包括:将所述第一编号信息的前p位数字确定为所述第三编号信息,以及将所述第二编号信息的前p位数字确定为所述第四编号信息,其中,所述p根据所述n和所述m确定,p为正整数。

编号信息的前p位数字指代了对应的源节点所连接的一级路由节点的编号信息,因此,中央处理器可以直接从第一编号信息中读取前p位数字来得到第一一级路由节点的第三编号信息和第二一级路由节点的第四编号信息,而数字p是通过n和m来确定出的,p为正整数。

可选的,所述p通过以下方式确定,包括:通过以下限制条件确定s:2

p的值可以通过以下方式来确定:先通过以下限制条件来确定出s值:2

举例说明,若n为8,m为4,若要满足2

基于上述步骤,上述步骤S12:根据所述第二编号信息确定所述第二源节点在所述第二一级路由节点所连接的一组源节点中的相对位置,可以通过以下方案来实现,包括:将所述第二编号信息的后s位数字确定为第五编号信息,并将所述第五编号信息转化为十进制数,得到转化结果,其中,s为正整数,所述转化结果用于指示所述相对位置。

通过上述计算过程,中央处理器已经得到了p和s的值,由于每一个一级路由节点连接了一组数量为m的源节点,中央处理器需要知道第二源节点第二一级路由节点对应的这一组源节点中的相对位置,才能进行精准的数据送达,而编号信息的后s位数字是可以表示源节点在一组源节点组内的编号信息的,因此可以借此确定出第二源节点的相对位置,先将该第二编号信息的后s位数字确定为第五编号信息,第五编号信息是一个s位的二进制数,然后将其转化为十进制数,例如,标识信息为15的源节点,转化为二进制数后为01111,前三位为011,代表该源节点所连接的一级路由节点的编号为011,后两位为11,对应的十进制数为3,代表该源节点在编号为011的一级路由节点所连接的一组源节点中的相对位置为3,相对位置从0开始计算,因此,可以确定出该源节点为编号为011的一级路由节点所连接的一组源节点中的第四个源节点。

可选的,上述步骤S13:根据所述第三编号信息和所述第四编号信息确定所述专用传输路径中的目标一级路由节点和/或目标二级路由节点,可以通过以下步骤来实现,包括:S131,确定所述第三编号信息和所述第四编号信息是否相同;S132,在所述第三编号信息与所述第四编号信息相同的情况下,将所述第一一级路由节点确定为所述目标一级路由节点,且确定所述专用传输路径不包括所述目标二级路由节点;S133,在所述第三编号信息与所述第四编号信息不相同的情况下,将所述第一一级路由节点和所述第二一级路由节点确定为所述目标一级路由节点,并根据第三标识信息与第四标识信息的大小确定所述目标二级路由节点,其中所述第三标识信息为所述第三编号信息对应的十进制数,所述第四标识信息为所述第四编号信息对应的十进制数。

中央处理器先比对第三编号信息和第四编号信息是否相同,若相同,则证明第一源节点和第二源节点与同一个一级路由节点连接,此时数据传输过程则无需经过二级路由节点的转发,故该专用传输路径不包含目标二级路由节点,以及将两个源节点共同连接的一级路由节点确定为目标一级路由节点;若第三编号信息和第四编号信息不同,则说明第一源节点和第二源节点所连接的一级路由节点不同,因此,两个一级路由节点之间进行数据传输需要通过二级路由节点进行转发,此时目标一级路由节点包括了第一一级路由节点和第二一级路由节点,然后根据第三标识信息和第四标识信息的大小确定出该目标二级路由节点,第三标识信息为第三编号信息对应的十进制数,第四标识信息为第四编号信息对应的十进制数。

可选的,执行上述步骤S133:根据第三标识信息与第四标识信息的大小确定所述目标二级路由节点,可以通过以下方式,包括:在所述第三标识信息大于所述第四标识信息的情况下,通过公式

一种可选的计算方式,若第三标识信息大于第四标识信息,则通过公式

可选的,执行上述步骤S133:根据第三标识信息与第四标识信息的大小确定所述目标二级路由节点,还可以通过以下方式,包括:在所述第三标识信息大于所述第四标识信息的情况下,根据r与h的大小确定所述目标二级路由节点,其中,r= S

另一种可选的计算方式,若第三标识信息大于第四标识信息,则进一步比较r和h的大小,从而确定出目标二级路由节点,其中,r= S

进一步地,上述步骤:根据r与h的大小确定所述目标二级路由节点,具体可以通过以下方式来实现,包括:在所述r小于所述h的情况下,通过公式

具体的,若r小于h,则通过公式

进一步地,上述步骤:根据l与所述h的大小确定所述目标二级路由节点,具体可以通过以下方式来实现,包括:在所述l小于所述h的情况下,通过公式

具体的,若l小于h,则通过公式

通过上述实施例,提供了两种可选的第五标识信息的计算方案,第一种方案通过求余的方式进行计算,计算方式更简便,而第二种计算方式中仅包含加减逻辑,从而更有利于硬件实现该算法。

在一个示例性实施例中,执行上述步骤S14:根据所述目标一级路由节点和/或所述目标二级路由节点、所述相对位置确定所述专用传输路径,可以通过以下步骤,包括:在所述第三编号信息和所述第四编号信息相同的情况下,根据所述第二一级路由节点和所述相对位置确定所述第二源节点;确定所述专用传输路径包括以下节点:所述第一源节点、所述第一一级路由节点和所述第二源节点,以及确定所述专用传输路径的传输顺序依次为:所述第一源节点、所述第一一级路由节点和所述第二源节点。

若第三编号信息和第四编号信息相同,则先根据该第二一级路由节点和相对位置确定出第二源节点的具体位置,然后确定该专用传输路径包括了以下节点:第一源节点、第一一级路由节点和第二源节点,以及该专用传输路径的传输顺序依次为:第一源节点、第一一级路由节点和第二源节点,其中,专用传输路径中存储有这些节点的具体位置信息。

在一个示例性实施例中,执行上述步骤S14:根据所述目标一级路由节点和/或所述目标二级路由节点、所述相对位置确定所述专用传输路径,可以通过以下步骤,包括:在所述第三编号信息和所述第四编号信息不相同的情况下,根据所述第二一级路由节点和所述相对位置确定所述第二源节点;确定所述专用传输路径包括以下节点:所述第一源节点、所述第一一级路由节点、所述目标二级路由节点、所述第二一级路由节点和所述第二源节点,以及确定所述专用传输路径的传输顺序依次为:所述第一源节点、所述第一一级路由节点、所述目标二级路由节点、所述第二一级路由节点和所述第二源节点。

若第三编号信息和第四编号信息不同,则先根据该第二一级路由节点和相对位置确定出第二源节点,然后确定专用传输路径包括了以下节点:第一源节点、第一一级路由节点、目标二级路由节点、第二一级路由节点和第二源节点,以及确定出该专用传输路径的传输顺序依次为:第一源节点、第一一级路由节点、目标二级路由节点、第二一级路由节点和第二源节点,其中,专用传输路径中还存储有这些节点的具体位置信息。

基于上述数据包的传输方法,本申请提出了一种可选的多级交换网络,如图4所示,图4是本申请实施例的一种可选的多级交换网络的结构示意图,在该多级交换网络中,总的port节点(相当于上述源节点)的数量为m*n,以32为例,一级路由节点上挂的port的数量为m,m以4为例,一级路由节点的数量为n,n以8为例,二级路由节点的数量为(n-1);而传统的多级交换网络结构中,二级路由节点的数量与一级路由节点上挂的port数量一致,均为m,如图3所示,通过图3所示的多级交换网络结构,无法满足令每一组源节点(相当于上述第一源节点)和目标节点(相当于上述第二源节点)都存在一条专用传输路径的需求,因此本申请对多级交换网络的结构进行了改进,在多级交换网络中设置了(n-1)个二级路由节点。

基于图4所示的多级交换网络的结构,本申请还提供了一种可选的数据包的传输方法,具体包括以下流程:

首先,将port节点的编号用5bit的二进制数表示,而一级路由节点的编号用port节点的高三位bit表示;数据包的source节点(相当于上述第一源节点)记为S,数据包的destination节点(相当于上述第二源节点)记为D,source节点所在的一级路由节点记为S

从一级路由节点到二级路由节点路由时,经过的二级路由节点的端口号为output:

(1);

根据公式(1),对图4中的S

(2)。

表1

具体而言,先对S和D的高三位bit进行异或运算,若结果是000,则表示S和D在同一个一级节点(相当于上述目标一级路由节点),则按照D的低两位bit从对应的输出端口向下转发;如果结果不为000,则表示S和D不在同一个一级节点,查看D的高三位bit与S的高三位bit对比,如果小于S的高三位bit,则从

举例说明:

1)、S是port3,二进制数是00011,D是port7,二进制数是00111,一级节点0收到路由请求之后,对S和D的高三位bit进行异或,结果是001,则表示S和D不在同一个一级节点下,D的高三位bit大于S的高三位bit,则从(D3-1+S3)%7对应的输出端口0向上转发给二级节点;

2)、S是port5,二进制数是00101,D是port7,二进制数是00111,一级节点1收到路由请求之后,对S和D的高三位bit进行异或,结果是000,则表示S和D在同一个一级节点下,查看D低两位bit,从对应的3号输出端口向下转发给port7。

通过上述实施例,本申请提出了一种针对改进的clos网络数据保序的路由算法,控制数据从传输端到接收端通过固定路径进行传输,实现了对数据的保序,从根本上解决了数据乱序的问题。且因为传输端port所在的一级节点到接收端port所在的一级节点时dedicated路径,使得一级路由节点和二级路由节点的逻辑变得简单,易于硬件实现。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在本实施例中还提供了一种数据包的传输系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图5是根据本申请实施例的数据包的传输系统的结构框图,如图5所示,该系统包括:

第一源节点52,用于向中央处理器发送数据传输请求,其中,所述数据请求用于所述第一源节点向第二源节点发送多个数据包,其中,所述第一源节点和所述第二源节点均位于多级交换网络中;

中央处理器54,用于从所述数据传输请求中解析出所述第一源节点的第一标识信息和第二源节点的第二标识信息;根据所述第一标识信息和所述第二标识信息确定出所述数据传输请求在所述多级交换网络中的专用传输路径;将所述专用传输路径发送至所述第一源节点;

所述第一源节点52,还用于将所述多个数据包通过所述专用传输路径传输至所述第二源节点。

通过上述系统,在接收到数据传输请求的情况下,根据数据传输请求对应的数据发送方和数据接收方的标识信息确定这一组源节点对应的专用传输路径,从而指示数据发送方根据该专用传输路径进行数据包的发送,从而确保了待发送的多个数据包能以唯一一条传输路径进行依次传输,因此,可以解决相关技术中在多级交换网络中进行数据传输时,不同的数据包会根据传输时节点的阻塞程度匹配到不同的路由路径进行传输,导致数据包传输至目标终端节点的顺序无法控制,最终出现数据乱序现象,导致数据传输出错的问题,进而从根本上解决了数据乱序的问题,实现了对数据的保序的效果。

可选的,上述中央处理器54,还用于将所述多级交换网络中的多个源节点的标识信息转化成k位的二进制数,得到所述多个源节点的编号信息,其中,所述多个源节点至少包括所述第一源节点和所述第二源节点,2

为了便于中央处理器进行运算,需要先将多级交换网络中的多个源节点的标识信息转化成k位的二进制数,从而得到中央处理器可识别的编号信息,该多个源节点至少包括了该第一源节点和该第二源节点,k满足条件2

可选的,上述中央处理器54,还用于根据所述第一标识信息对应的第一编号信息确定所述第一源节点所连接的第一一级路由节点的第三编号信息,以及根据所述第二标识信息对应的第二编号信息确定所述第二源节点所连接的第二一级路由节点的第四编号信息;根据所述第二编号信息确定所述第二源节点在所述第二一级路由节点所连接的一组源节点中的相对位置;根据所述第三编号信息和所述第四编号信息确定所述专用传输路径中的目标一级路由节点和/或目标二级路由节点;根据所述目标一级路由节点和/或所述目标二级路由节点、所述相对位置确定所述专用传输路径。

基于第一标识信息对应的第一编号信息,和第二标识信息对应的第二编号信息,中央处理器可以直接确定出第一源节点所连接的第一一级路由节点的第三编号信息,和第二源节点所连接的第二一级路由节点的第四编号信息;然后根据第二编号信息确定该第二源节点在该第二一级路由节点所连接的一组源节点中的相对位置;再根据第三编号信息和第四编号信息确定该专用传输路径中的目标一级路由节点和/或目标二级路由节点;最后根据确定出的目标一级路由节点和/或目标二级路由节点、相对位置确定出该专用传输路径。

可选的,上述中央处理器54,还用于将所述第一编号信息的前p位数字确定为所述第三编号信息,以及将所述第二编号信息的前p位数字确定为所述第四编号信息,其中,所述p根据所述n和所述m确定,p为正整数。

编号信息的前p位数字指代了对应的源节点所连接的一级路由节点的编号信息,因此,中央处理器可以直接从第一编号信息中读取前p位数字来得到第一一级路由节点的第三编号信息和第二一级路由节点的第四编号信息,而数字p是通过n和m来确定出的,p为正整数。

可选的,所述p通过以下方式确定,包括:通过以下限制条件确定s:2

p的值可以通过以下方式来确定:先通过以下限制条件来确定出s值:2

举例说明,若n为8,m为4,若要满足2

可选的,上述中央处理器54,还用于将所述第二编号信息的后s位数字确定为第五编号信息,并将所述第五编号信息转化为十进制数,得到转化结果,其中,s为正整数,所述转化结果用于指示所述相对位置。

通过上述计算过程,中央处理器已经得到了p和s的值,由于每一个一级路由节点连接了一组数量为m的源节点,中央处理器需要知道第二源节点第二一级路由节点对应的这一组源节点中的相对位置,才能进行精准的数据送达,而编号信息的后s位数字是可以表示源节点在一组源节点组内的编号信息的,因此可以借此确定出第二源节点的相对位置,先将该第二编号信息的后s位数字确定为第五编号信息,第五编号信息是一个s位的二进制数,然后将其转化为十进制数,例如,标识信息为15的源节点,转化为二进制数后为01111,前三位为011,代表该源节点所连接的一级路由节点的编号为011,后两位为11,对应的十进制数为3,代表该源节点在编号为011的一级路由节点所连接的一组源节点中的相对位置为3,相对位置从0开始计算,因此,可以确定出该源节点为编号为011的一级路由节点所连接的一组源节点中的第四个源节点。

可选的,上述中央处理器54,还用于确定所述第三编号信息和所述第四编号信息是否相同;在所述第三编号信息与所述第四编号信息相同的情况下,将所述第一一级路由节点确定为所述目标一级路由节点,且确定所述专用传输路径不包括所述目标二级路由节点;在所述第三编号信息与所述第四编号信息不相同的情况下,将所述第一一级路由节点和所述第二一级路由节点确定为所述目标一级路由节点,并根据第三标识信息与第四标识信息的大小确定所述目标二级路由节点,其中所述第三标识信息为所述第三编号信息对应的十进制数,所述第四标识信息为所述第四编号信息对应的十进制数。

中央处理器先比对第三编号信息和第四编号信息是否相同,若相同,则证明第一源节点和第二源节点与同一个一级路由节点连接,此时数据传输过程则无需经过二级路由节点的转发,故该专用传输路径不包含目标二级路由节点,以及将两个源节点共同连接的一级路由节点确定为目标一级路由节点;若第三编号信息和第四编号信息不同,则说明第一源节点和第二源节点所连接的一级路由节点不同,因此,两个一级路由节点之间进行数据传输需要通过二级路由节点进行转发,此时目标一级路由节点包括了第一一级路由节点和第二一级路由节点,然后根据第三标识信息和第四标识信息的大小确定出该目标二级路由节点,第三标识信息为第三编号信息对应的十进制数,第四标识信息为第四编号信息对应的十进制数。

可选的,上述中央处理器54,还用于在所述第三标识信息大于所述第四标识信息的情况下,通过公式

一种可选的计算方式,若第三标识信息大于第四标识信息,则通过公式

可选的,上述中央处理器54,还用于在所述第三标识信息大于所述第四标识信息的情况下,根据r与h的大小确定所述目标二级路由节点,其中,r= S

另一种可选的计算方式,若第三标识信息大于第四标识信息,则进一步比较r和h的大小,从而确定出目标二级路由节点,其中,r= S

可选的,上述中央处理器54,还用于在所述r小于所述h的情况下,通过公式

具体的,若r小于h,则通过公式

可选的,上述中央处理器54,还用于在所述l小于所述h的情况下,通过公式

具体的,若l小于h,则通过公式

通过上述实施例,提供了两种可选的第五标识信息的计算方案,第一种方案通过求余的方式进行计算,计算方式更简便,而第二种计算方式中仅包含加减逻辑,从而更有利于硬件实现该算法。

可选的,上述中央处理器54,还用于在所述第三编号信息和所述第四编号信息相同的情况下,根据所述第二一级路由节点和所述相对位置确定所述第二源节点;确定所述专用传输路径包括以下节点:所述第一源节点、所述第一一级路由节点和所述第二源节点,以及确定所述专用传输路径的传输顺序依次为:所述第一源节点、所述第一一级路由节点和所述第二源节点。

若第三编号信息和第四编号信息相同,则先根据该第二一级路由节点和相对位置确定出第二源节点的具体位置,然后确定该专用传输路径包括了以下节点:第一源节点、第一一级路由节点和第二源节点,以及该专用传输路径的传输顺序依次为:第一源节点、第一一级路由节点和第二源节点,其中,专用传输路径中存储有这些节点的具体位置信息。

可选的,上述中央处理器54,还用于在所述第三编号信息和所述第四编号信息不相同的情况下,根据所述第二一级路由节点和所述相对位置确定所述第二源节点;确定所述专用传输路径包括以下节点:所述第一源节点、所述第一一级路由节点、所述目标二级路由节点、所述第二一级路由节点和所述第二源节点,以及确定所述专用传输路径的传输顺序依次为:所述第一源节点、所述第一一级路由节点、所述目标二级路由节点、所述第二一级路由节点和所述第二源节点。

若第三编号信息和第四编号信息不同,则先根据该第二一级路由节点和相对位置确定出第二源节点,然后确定专用传输路径包括了以下节点:第一源节点、第一一级路由节点、目标二级路由节点、第二一级路由节点和第二源节点,以及确定出该专用传输路径的传输顺序依次为:第一源节点、第一一级路由节点、目标二级路由节点、第二一级路由节点和第二源节点,其中,专用传输路径中还存储有这些节点的具体位置信息。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 数据包解析方法、装置、电子设备和存储介质
  • 基于全局规则的数据包审计方法、系统、装置及存储介质
  • 数据包发送方法、装置、系统、设备及存储介质
  • 图像信息的传输方法、装置、存储介质及电子设备
  • 图像传输方法、装置、电子设备和存储介质
  • 数据包的传输方法、装置、系统、电子设备及存储介质
  • 一种数据包传输方法、数据包传输装置及存储介质
技术分类

06120116490137