报文传输方法、设备、集群、存储介质和程序产品与流程

摘要: 申请实施例涉及计算机,特别涉及一种报文传输方法、设备、集群、存储介质以及计算机程序产品。背景技术:1、在现代网络环境中,网络传输的高效性和稳定性是确保系统性能和...
报文传输方法、设备、集群、存储介质和程序产品与流程

申请实施例涉及计算机,特别涉及一种报文传输方法、设备、集群、存储介质以及计算机程序产品。

背景技术:

1、在现代网络环境中,网络传输的高效性和稳定性是确保系统性能和用户体验的关键。随着互联网的快速发展和数据流量的激增,网络流量的负载均衡技术可以基于一定的策略和粒度将流量分散到网络中的多条路径用于传输,从而提升网络整体利用率,减少网络拥塞。

2、现有技术中,根据流量转发的粒度不同,负载均衡技术可以分为流级、细流级和报文级。其中,流级的负载均衡以单个流为粒度通过哈希算法选择在网络中的传输路径。在低熵、大带宽流的场景下(如,ai大模型),流级的负载均衡容易由于哈希极化而出现“大流”集中选择同一路径,从而造成少量路径流量超载,而其他路径空闲的状态,导致网络带宽利用率低。细流级的负载均衡将一个大流拆分成多个细流,其中,每个细流选择一条传输路径。这样可以缓解哈希极化,但在细流的数量较多时,主机需要为每个细流建立一个连接,资源开销较大。报文级的负载均衡以单个报文为粒度,每个报文选择一条传输路径。该方法可以最大化带宽利用率,避免哈希极化问题,但同一个流的报文可能经过不同路径传输,由于路径延迟差异而引发乱序问题。因此,如何在报文传输时充分利用网络中的传输路径、减少资源开销、降低报文乱序的风险成为亟待解决的问题。

技术实现思路

1、本技术提供一种报文传输方法,以解决当前网络流量的负载均衡中存在的哈希极化、资源开销大、乱序导致性能下降问题。此外,本技术还提供了相应的设备、集群、存储介质以及计算机程序产品。

2、第一方面,本技术提供了一种报文传输方法,用于第一设备向第二设备传输n个消息细流。具体地,该方法将一个消息流拆分为n个消息细流,其中,每个消息细流包括一个或多个数据段消息。然后,该方法按照调度顺序,依次循环调度这n个消息细流中的一个消息细流,其中,该调度顺序为消息细流被调度的顺序(例如,按照消息细流#1,消息细流#2,……,消息细流#n的顺序)。对于每个调度的消息细流,若该消息细流存在未处理的数据段消息,则按照处理顺序,根据该消息细流中的一个数据段消息组装一个数据段的多个报文,其中,该处理顺序为消息细流中数据段消息被处理的顺序。例如,消息细流中存在根据时间先后顺序达到的数据段消息#1,数据段消息#2,数据段消息#3,则该消息细流中数据段消息被处理的顺序为数据段消息#1,数据段消息#2,数据段消息#3。按照消息细流被调度的顺序,该方法依次发送每个消息细流对应的一个数据段的多个报文,其中,同一数据段的报文在网络中传输的路径相同,不同数据段的报文在网络中传输的路径存在不同。

3、在上述方法中,报文可以通过多个消息细流进行组装和传输,从而缓解了单个大流在路径选择中的哈希极化问题,同时,消息细流的个数可以根据报文在第一设备与第二设备之间的网络传输时间和数据段长度确定,从而避免了资源开销过大的问题。此外,本技术提供的方法通过一定的顺序循环调度多个消息细流,增加了同一个消息细流先后两次被调度的时间间隔,从而增加了先后两次根据该消息细流中的一个数据段消息组装报文的时间间隔,因此,在发送这两次组装的数据段的报文时,增加了先后两个数据段的报文被传输的时间间隔,从而降低了报文在网络中传输时发生乱序的概率,提升了传输性能。

4、在一种可能的实施例中,该方法将第一消息流根据调度方式拆分成n个消息细流,其中,该调度方式可以是最轻负载调度方式,或者是公平调度方式。

5、由于将第一消息流拆分成多个消息细流,报文可以通过多个消息细流进行组装和传输,从而缓解了单个大流在路径选择中的哈希极化问题。在拆分第一消息流时,需要将第一消息流中的消息转发到消息细流的队列。对于第一消息流的一个消息,最轻负载调度方式可以根据每个消息细流的负载情况,将该消息转发到负载最轻的消息细流的队列。在拆分得到的多个消息细流中,消息是均衡分布的。因此,最轻负载调度方式可以提升网络整体利用率。而公平调度方式将第一消息流的消息轮流转发到每个消息细流的队列,由于实现简单,该调度方式可以提升拆分第一消息流的执行效率。

6、在一种可能的实施例中,消息细流的数量n由数据段长度、第一设备的端口速率和报文在第一设备与第二设备之间的网络传输时间确定。例如,数据段的长度为16个报文,每个报文的大小为4kb,第一设备的端口速率为400gbps,一个报文在第一设备与第二设备之间的网络传输时间为20us,则消息细流的个数n可以设定为大于20us*400gbps/(16*4kb)=15.625的一个整数,如n=16。消息细流的个数越多,同一消息细流的不同数据段在传输时的时间间隔越长,因而这些数据段的报文在多路径传输时发生乱序的概率越低。

7、在一种可能的实施例中,每个调度的消息细流对应的数据段长度相同,数据段长度m由消息细流的数量、第一设备的端口速率和报文在第一设备与第二设备之间的网络传输时间确定。例如,消息细流的个数为32,第一设备的端口速率为400gbps,一个报文在第一设备与第二设备之间的网络传输时间为20us,如果一个报文的大小为4kb,则一个数据段的长度可以设定为大于20us*400gbps/(32*4kb)=7.8125的一个整数,如m=8。数据段的长度越长,同一消息细流的不同数据段在传输时的时间间隔越长,因而这些数据段的报文在多路径传输时发生乱序的概率越低。

8、在一种可能的实施例中,一个数据段消息包含多个报文消息,根据消息细流中的一个数据段消息组装一个数据段的多个报文,具体包括:根据所述多个报文消息组装多个报文,其中,一个报文消息用于组装一个报文。

9、由于同一个数据段的报文在网络中传输的路径相同,不同数据段的报文在网络中传输的路径可以不同,以一个数据段为粒度选择报文的传输路径可以在细流个数较少的情况下仍然充分利用网络中的多条路径进行报文传输,从而提升网络整体利用率,同时避免较多细流导致的资源开销过大的问题。

10、在一种可能的实施例中,所述根据所述多个报文消息组装多个报文,具体包括:根据以太网的网络层udp header组装所述多个报文,其中,所述udp header中的源地址、目的地址、源端口号、目的端口号、传输协议字段在所述多个报文中一致。

11、由于根据以太网的网络层udp header组装的报文在传输时,根据五元组(源地址,目的地址,源端口号,目的端口号,传输协议)指定报文在网络中的传输路径,对同一个数据段的报文使用同一组(源地址,目的地址,源端口号,目的端口号,传输协议)的值可以使得该数据段的报文在网络中传输时使用相同的路径。

12、在一种可能的实施例中,所述根据所述多个报文消息组装多个报文,具体包括:根据总线协议的网络层nth格式组装所述多个报文,其中,所述nth格式中的源地址、目的地址、lb参数字段在所述多个报文中一致。

13、由于根据总线协议的网络层nth格式组装的报文在传输时,根据三元组(源地址,目的地址,lb参数)指定报文在网络中的传输路径,对同一个数据段的报文使用同一组(源地址,目的地址,lb参数)的值可以使得该数据段的报文在网络中传输时使用相同的路径。

14、在一种可能的实施例中,在根据调度的消息细流包含的一个数据段消息组装一个数据段的多个报文之后,该方法还包括:按照所述调度顺序,依次向所述第二设备发送每个消息细流对应的一个数据段的多个报文,其中,同一数据段的报文在网络中传输的路径相同,不同数据段的报文在网络中传输的路径存在不同。

15、由于同一个数据段的报文在网络中传输的路径相同,不同数据段的报文在网络中传输的路径可以不同,以一个数据段为粒度选择报文的传输路径可以在细流个数较少的情况下仍然充分利用网络中的多条路径进行报文传输,从而提升网络整体利用率,同时避免较多细流导致的资源开销过大的问题。

16、在一种可能的实施例中,该方法还包括:当一个数据段包含的多个报文在传输中丢失时,重传该丢失的报文,其中,该丢失的报文在重传时的传输路径与丢失前的传输路径是不同的。

17、由于丢失的报文对应的数据段与该报文丢失前对应的数据段是不同的,丢失的报文在重传时可以使用与该报文丢失前不同的传输路径。丢失的报文在重传时使用不同的传输路径可以降低该报文在传输中再次丢失的概率。

18、在一种可能的实施例中,在根据调度的消息细流包含的一个数据段消息组装一个数据段的多个报文,具体包括:该数据段的多个报文的报文类型都是相同的。

19、由于同一个数据段的多个报文的报文类型都是相同的,请求的数据段和响应的数据段在网络中传输时可以独立地选择传输路径,从而缓解请求的数据段和响应的数据段使用不同的传输路径而导致的负载不均衡问题。

20、第二方面,本技术提供一种设备,该设备用于传输n个消息细流,所述n个消息细流中每个消息细流包括至少一个数据段消息,该设备包括:

21、调度模块,用于按照调度顺序,依次循环调度所述n个消息细流中的一个消息细流,其中,所述调度顺序为消息细流被调度的顺序;

22、组包模块,用于对于每个调度的消息细流,若所述调度的消息细流存在未处理的数据段消息,按照处理顺序,根据所述调度的消息细流包含的一个数据段消息组装一个数据段的多个报文,其中,所述处理顺序为消息细流中数据段消息被处理的顺序;

23、其中,同一数据段的报文在网络中传输的路径相同。

24、第三方面,本技术提供一种设备,该设备包括处理器和存储器,所述存储器包含指令,所述处理器通过所述存储器中的指令执行如权利要求1至10中任一项所述方法的步骤。

25、第四方面,本技术提供一种集群,该集群包括第一设备和至少一个第二设备,所述第一设备可以通过指令执行如权利要求1至10中任一项所述方法的步骤;所述第二设备用于接收所述第一设备发送的报文。

26、第五方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当其在至少一个设备上运行时,使得所述设备执行如权利要求1至10中一项所述方法的步骤。

27、第六方面,本技术提供一种计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码在至少一个设备上运行时,使得所述设备执行如权利要求1至10中任一项所述方法的步骤。