本技术涉及计算机,尤其涉及一种多路径传输方法、装置、设备、可读存储介质及程序产品。
背景技术:
1、数据中心网络的任意服务器节点之间都是有多条物理路径的,而且往往这些路径都是等长的。在规模更大的网络中(如汇聚层交换机和核心层的平面数目增大),两个不同的网络层级之间的物理链路的数量将会更大。一般情况下,交换机会先使用路由表,根据目的网际互连协议(internet protocol,ip)获取候选出端口操作。在有多个候选出端口的情况下,交换机会对数据包的包头的五元组(即源/目的ip、源/目的端口号和协议号)进行哈希计算以选定一个候选出端口,使得五元组相同的数据包会从相同的出端口发出去,也就是五元组相同的数据包的物理路径一般是相同的。这样的路由设置可以在一定程度上让一个节点对(源服务器和目标服务器)的不同数据流走不同的路径,进行负载均衡。而在上述过程中,哈希结果往往是不均匀的,甚至可能会出现哈希极化的现象,使得可能出现传输数据包的物理路径有部分重叠(即经过相同的链路),甚至可能出现多条子链路完全一致的情况,导致多物理路径的失效,即,不能有效地利用可用带宽,减少了物理路径冗余的可靠性。而且物理路径中子链路的重复,导致若重复的子链路中出现故障时,会导致包括出故障的子链路的物理路径都会中断服务,降低了链路的可用性。
技术实现思路
1、本技术实施例提供了一种多路径传输方法、装置、设备、可读存储介质及程序产品,可以提高链路可靠性及可用性。
2、本技术实施例一方面提供了一种多路径传输方法,该方法包括:
3、源服务器获取f个链路类型;f为正整数;一个链路类型是指在一次数据跳转中所经过的链路的类型;
4、获取f个链路类型分别对应的独立链路数量,基于独立链路数量对f个链路类型分别进行h次编码,得到f个链路类型分别对应的h个初始分段码值;h为正整数;
5、随机生成f个链路类型分别对应的编码偏移数据,基于f个链路类型分别对应的编码偏移数据,对f个链路类型分别对应的h个初始分段码值进行编码偏移处理,得到f个链路类型分别对应的h个分段码值;
6、将f个链路类型分别对应的h个分段码值组成h个路径编码;每个路径编码包括f个链路类型分别对应的一个分段码值;
7、基于h个路径编码,将目标数据包发送至目标服务器。
8、本技术实施例一方面提供了一种多路径传输方法,该方法包括:
9、路径交换机获取目标数据包;目标数据包是由源服务器基于h个路径编码所发送的;h个路径编码是由对f个链路类型分别对应的h个初始分段码值进行编码偏移处理得到的分段码值所组成的,同一个链路类型在不同的初始路径编码下所对应的编码偏移数据相同;f个链路类型分别对应的h个初始分段码值是由源服务器基于f个链路类型分别对应的独立链路数量,对f个链路类型分别进行h次编码所得到的;一个链路类型是指在一次数据跳转中所经过的链路的类型;f为正整数;h为正整数;
10、基于目标数据包所指示的目标路径编码,将目标数据包发送至目标服务器;h个路径编码包括目标路径编码。
11、本技术实施例一方面提供了一种多路径传输装置,该装置包括:
12、链路获取模块,用于源服务器获取f个链路类型;f为正整数;一个链路类型是指在一次数据跳转中所经过的链路的类型;
13、链路编码模块,用于获取f个链路类型分别对应的独立链路数量,基于独立链路数量对f个链路类型分别进行h次编码,得到f个链路类型分别对应的h个初始分段码值;h为正整数;
14、编码偏移模块,用于随机生成f个链路类型分别对应的编码偏移数据,基于f个链路类型分别对应的编码偏移数据,对f个链路类型分别对应的h个初始分段码值进行编码偏移处理,得到f个链路类型分别对应的h个分段码值;
15、编码生成模块,用于将f个链路类型分别对应的h个分段码值组成h个路径编码;每个路径编码包括f个链路类型分别对应的一个分段码值;
16、数据发送模块,用于基于h个路径编码,将目标数据包发送至目标服务器。
17、其中,该链路编码模块,包括:
18、数据获取单元,用于获取f个链路类型中第i个链路类型对应的独立链路数量;
19、第一编码单元,用于若第i个链路类型对应的独立链路数量大于或等于h,则采用p至q对第i个链路类型进行h次编码,得到第i个链路类型所对应的h个初始分段码值;i为小于或等于f的正整数;p与q的差值为h-1,且q大于p;
20、第二编码单元,用于若第i个链路类型对应的独立链路数量小于h,则采用第i个链路类型对应的独立链路数量,对第i个链路类型进行循环编码,得到第i个链路类型所对应的h个初始分段码值;
21、码值获取单元,用于当i为f时,得到f个链路类型分别对应的h个初始分段码值。
22、其中,该数据发送模块,包括:
23、数据获取单元,用于获取初始数据包;
24、路径选取单元,用于对h个路径编码进行路径调度,得到目标路径编码;
25、信息生成单元,用于基于目标路径编码生成路径信息字段;
26、包更新单元,用于将路径信息字段添加至初始数据包的包头,生成目标数据包;
27、链路选择单元,用于从目标路径编码中获取本地上行链路的分段码值,基于本地上行链路的分段码值,确定本地上行链路所对应的独立链路;本地上行链路是指由源服务器至接入层交换机的链路类型;
28、数据发送单元,用于基于本地上行链路所对应的独立链路,将目标数据包发送至接入层交换机,以使接入层交换机基于目标数据包中的路径信息字段,将目标数据包发送至目标服务器。
29、其中,该路径选取单元,包括:
30、发送请求子单元,用于向轮询数据路径请求发送数据包;h个路径编码分别对应的独立数据路径包括轮询数据路径;轮询数据路径是指当前轮询到的数据路径;
31、路径确定子单元,用于若轮询数据路径满足带宽传输条件,则将轮询数据路径所对应的路径编码确定为目标路径编码;
32、路径轮询子单元,用于若轮询数据路径不满足带宽传输条件,则将轮询数据路径的下一个独立数据路径,确定为轮询数据路径,返回执行向轮询数据路径请求发送数据包的过程。
33、其中,该信息生成单元,包括:
34、数据确定子单元,用于从目标路径编码中获取目标编码标识,以及一个或多个路径交换机在f个链路类型中所指向的链路类型的分段码值;一个或多个路径交换机包括接入层交换机;
35、信息组成子单元,用于获取源服务器所对应的传输跳数,将目标编码标识、一个或多个路径交换机在f个链路类型中所指向的链路类型的分段码值,以及源服务器所对应的传输跳数,生成路径信息字段。
36、其中,该装置还包括:
37、心跳发送模块,用于源服务器以心跳检测周期为基准,在h个路径编码分别对应的独立数据路径中,向目标服务器发送心跳包;
38、状态更新模块,用于若超出心跳确认时间阈值,源服务器未获取到目标服务器所发送的心跳确认数据,则将h个独立数据路径的路径状态更新为路径检查状态;
39、路径检查模块,用于在路径检查状态中,对h个独立数据路径进行检测处理;
40、异常更新模块,用于若h个独立数据路径中存在异常数据路径,则对异常数据路径进行更新。
41、其中,该路径检查模块,包括:
42、检查发送单元,用于在路径检查状态中,源服务器基于第j个独立数据路径向目标服务器发送检查包;j为小于或等于h的正整数;
43、正常确定单元,用于若源服务器接收到目标服务器所发送的检查确认数据,则确定第j个独立数据路径的正向数据路径正常,等待第j个独立数据路径的反向数据路径更新,在第j个独立数据路径更新后的反向数据路径正常时,确定第j个独立数据路径为正常数据路径;
44、状态更新单元,用于若源服务器在经过检查确认时间阈值后,未接收到目标服务器所发送的心跳确认数据,则将第j个独立数据路径的路径状态更新为路径探测状态,确定第j个独立数据路径为异常数据路径;路径探测状态用于指示第j个独立数据路径所对应的路径交换机中存在故障。
45、其中,该异常更新模块,包括:
46、异常获取单元,用于若h个独立数据路径中存在异常数据路径,则获取异常数据路径所对应的异常路径编码;异常数据路径的路径状态为路径探测状态;
47、更新获取单元,用于获取第i个链路类型在异常路径编码中所对应的分段码值的更新分段码值,将第i个链路类型在异常路径编码中所对应的分段码值更新为更新分段码值,得到异常数据路径所对应的更新路径编码i;i为小于或等于f的正整数;
48、更新探测单元,用于在更新路径编码i所对应的更新数据路径i中,源服务器向目标服务器发送探测包;
49、编码更新单元,用于若接收到目标服务器针对探测包的探测确认数据,则确定第i个链路类型所指向的用于接收数据且标识为li的路径交换机异常,将h个路径编码中的异常路径编码替换为更新数据路径i,得到更新后的h个路径编码,将异常数据路径的路径状态更新为路径正常状态;li是指第i个链路类型在异常路径编码中所对应的分段码值,与第i个链路类型所指向的用于接收数据的路径交换机的数量之间的余数;
50、后续探测单元,用于若在经过探测确认时间阈值后,源服务器未接收到目标服务器针对探测包的探测确认数据,则对第(i+1)个链路类型进行探测;
51、无效确定单元,用于当对f个链路类型在异常路径编码中分别对应的链路类型全部探测完成,且异常数据路径处于路径探测状态时,确定异常路径编码为无效编码。
52、其中,该装置还包括:
53、异常发送模块,用于若第i个链路类型所指向的用于接收数据的第ci个路径交换机异常,则向管理设备发送交换机异常消息,以使管理设备对第i个链路类型所指向的用于接收数据的第ci个路径交换机进行修复。
54、本技术实施例一方面提供了一种多路径传输装置,该装置包括:
55、数据获取模块,用于路径交换机获取目标数据包;目标数据包是由源服务器基于h个路径编码所发送的;h个路径编码是由对f个链路类型分别对应的h个初始分段码值进行编码偏移处理得到的分段码值所组成的,同一个链路类型在不同的初始路径编码下所对应的编码偏移数据相同;f个链路类型分别对应的h个初始分段码值是由源服务器基于f个链路类型分别对应的独立链路数量,对f个链路类型分别进行h次编码所得到的;一个链路类型是指在一次数据跳转中所经过的链路的类型;f为正整数;h为正整数;
56、数据发送模块,用于基于目标数据包所指示的目标路径编码,将目标数据包发送至目标服务器;h个路径编码包括目标路径编码。
57、其中,该数据发送模块,包括:
58、包数据获取单元,用于从目标数据包中获取路径信息字段;
59、端口确定单元,用于基于路径信息字段,从路径交换机所关联的候选出端口中确定目标出端口;路径信息字段用于指示目标路径编码;
60、数据发送单元,用于基于目标出端口,将目标数据包发送至目标服务器。
61、其中,路径信息字段包括传输跳数字段及编码字段;编码字段的值是根据路径信息字段所指示的目标路径编码确定的;
62、该端口确定单元,包括:
63、跳数更新子单元,用于对路径信息字段中的传输跳数字段的值进行更新,得到更新跳数;
64、码值获取子单元,用于获取更新跳数在编码字段中对应的目标分段码值;
65、数量获取子单元,用于获取路径交换机所关联的候选出端口的候选数量;
66、端口确定子单元,用于将目标分段码值与候选数量的余数所对应的候选出端口,确定为目标出端口。
67、本技术实施例一方面提供了一种计算机设备,包括处理器、存储器、输入输出接口;
68、处理器分别与存储器和输入输出接口相连,其中,输入输出接口用于接收数据及输出数据,存储器用于存储计算机程序,处理器用于调用该计算机程序,以使包含该处理器的计算机设备执行本技术实施例一方面中的多路径传输方法。
69、本技术实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本技术实施例一方面中的多路径传输方法。
70、本技术实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例一方面中的各种可选方式中提供的方法。换句话说,该计算机指令被处理器执行时实现本技术实施例一方面中的各种可选方式中提供的方法。
71、实施本技术实施例,将具有如下有益效果:
72、在本技术实施例中,源服务器获取f个链路类型;f为正整数;一个链路类型是指在一次数据跳转中所经过的链路的类型;获取f个链路类型分别对应的独立链路数量,基于独立链路数量对f个链路类型分别进行h次编码,得到f个链路类型分别对应的h个初始分段码值;h为正整数;随机生成f个链路类型分别对应的编码偏移数据,基于f个链路类型分别对应的编码偏移数据,对f个链路类型分别对应的h个初始分段码值进行编码偏移处理,得到f个链路类型分别对应的h个分段码值;将f个链路类型分别对应的h个分段码值组成h个路径编码;每个路径编码包括f个链路类型分别对应的一个分段码值;基于h个路径编码,将目标数据包发送至目标服务器。通过以上过程,可以确定f个链路类型,也就是说,数据包在节点对(即源服务器与目标服务器)之间进行一次完整发送时,所经过的链路的类型,通过这些链路类型所对应的独立链路数量,对f个链路类型分别进行编码,从而可以得到代表在源服务器与目标服务器之间进行数据包传输的逻辑路径的路径编码,可以相当于是源服务器与目标服务器之间的实际的物理路径的指代,由于该编码是基于独立链路数量的,使得得到的路径编码之间是相互独立的,不同的路径编码之间相当于是无重叠的,使得在进行数据包传输时,可以直接基于已有的路径编码进行传输,从而达到最大程度的带宽利用和传输的可靠性。同时进行编码偏移,使得同一个网络拓扑层级中位于后面的路径交换机也可以被使用到,使得可以尽可能地将所有的路径交换机都利用上,减轻不同连接的带宽竞争,增加每个连接的可用带宽。