CN116846834A - 数据传输方法、装置及系统 - Google Patents

数据传输方法、装置及系统 Download PDF

Info

Publication number
CN116846834A
CN116846834A CN202210302670.3A CN202210302670A CN116846834A CN 116846834 A CN116846834 A CN 116846834A CN 202210302670 A CN202210302670 A CN 202210302670A CN 116846834 A CN116846834 A CN 116846834A
Authority
CN
China
Prior art keywords
data packet
data
load balancing
receiving end
disorder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210302670.3A
Other languages
English (en)
Inventor
陈俊杰
周超
徐世萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210302670.3A priority Critical patent/CN116846834A/zh
Publication of CN116846834A publication Critical patent/CN116846834A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据传输方法、装置及系统,属于通信技术领域。在发送端设备通过网络设备基于第一负载均衡策略转发数据包至接收端设备的过程中,当发送端设备接收到来自接收端设备的乱序通知,发送端设备在第一数据包中设置策略标记获得第二数据包,该策略标记对应第二负载均衡策略,然后向网络设备发送第二数据包,以使网络设备基于第二负载均衡策略转发第二数据包。由于网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度会低于基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度,因此在数据传输过程中灵活调整网络设备采用的负载均衡策略,能够降低接收端设备接收的数据包的乱序程度,提高应用业务的运行可靠性。

Description

数据传输方法、装置及系统
技术领域
本申请涉及通信技术领域,特别涉及一种数据传输方法、装置及系统。
背景技术
随着网络规模的不断扩大和应用业务的不断增加,网络中的流量越来越大。为了提高网络负载能力从而保证应用业务的高可靠性,目前很多网络采用多路径路由技术进行流量转发,典型的例如数据中心网络(data center network,DCN)。对于采用多路径路由技术的网络,如何实现网络中的链路负载均衡(load balance),以提高链路利用效率成为了热点研究问题。
目前,网络中的网络设备通常采用预先配置的一种负载均衡策略转发数据包,以实现链路负载均衡。例如网络设备被配置为以数据流为调度粒度的负载均衡策略转发数据包,或者,网络设备被配置为以数据包为调度粒度的负载均衡策略转发数据包。其中,一条数据流通常包括五元组相同的多个数据包。五元组包括源互联网协议(InternetProtocol,IP)地址、目的IP地址、源端口、目的端口和传输层协议。
但是,目前的网络设备在基于预先配置的负载均衡策略转发数据包的过程中,可能会出现负载均衡程度不高、丢包或限速等问题,影响应用业务的正常运行。
发明内容
本申请提供了一种数据传输方法、装置及系统,可以解决目前网络设备基于负载均衡策略转发数据包可能会影响业务的正常运行的问题。
第一方面,提供了一种数据传输方法。该方法应用于数据传输系统,该数据传输系统包括发送端设备,网络设备和接收端设备。发送端设备通过网络设备基于第一负载均衡策略转发数据包至接收端设备。在数据传输过程中,发送端设备接收接收端设备发送的乱序通知。发送端设备根据乱序通知,在第一数据包中设置策略标记,获得第二数据包。其中,策略标记对应于第二负载均衡策略。网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。发送端设备向网络设备发送第二数据包,以使网络设备基于第二负载均衡策略转发第二数据包。
可选地,网络设备基于第一负载均衡策略转发数据包时的链路负载均衡度高于网络设备基于第二负载均衡策略转发数据包时的链路负载均衡度。
本申请中,正常情况下发送端设备通过网络设备基于第一负载均衡策略转发数据包至接收端设备。在发送端设备接收到接收端设备发送的乱序通知后,发送端设备在发送至该接收端设备的数据包中设置第二负载均衡策略对应的策略标记,以使网络设备基于第二负载均衡策略转发携带有第二负载均衡策略对应的策略标记的数据包。由于网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度,因此能够降低接收端设备接收的数据包的乱序程度,从而降低接收端设备的总乱序开销,避免接收端设备因处理性能不足以对数据包保序而导致出现接收端设备丢包或者对数据流限速等问题,有助于提高应用业务的运行可靠性。
可选地,第一负载均衡策略为以数据包为调度粒度的负载均衡策略,第二负载均衡策略为以数据流为调度粒度的负载均衡策略。网络设备基于以数据包为调度粒度的负载均衡策略转发数据包时的链路负载均衡度高于网络设备基于以数据流为调度粒度的负载均衡策略转发数据包时的链路负载均衡度。并且,网络设备基于以数据流为调度粒度的负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于以数据包为调度粒度的负载均衡策略转发的数据包到达接收端设备的乱序程度。
可选地,在发送端设备接收接收端设备发送的乱序通知之前,接收端设备监测接收到的发生乱序的数据流对应的乱序开销。接收端设备确定第一乱序开销超出第一阈值。第一乱序开销为接收端设备在第一时刻监测到的所有发生乱序的数据流对应的乱序开销之和。其中,第一时刻为接收端设备向发送端设备发送乱序通知之前的时刻。接收端设备在第一时刻监测到的所有发生乱序的数据流中包括发送端设备发送的数据流。
其中,发生乱序的数据流对应的乱序开销与该发生乱序的数据流中的数据包的乱序程度正相关。本申请中,接收端设备监测到的发生乱序的数据流对应的乱序开销,通常指接收端设备的网卡记录该数据流中发生乱序的数据包时占用的存储开销。
可选地,乱序通知包括一个或多个数据流标识。每个数据流标识指示发送端设备发送的一条数据流。其中,乱序通知中的一个或多个数据流标识所指示的数据流属于接收端设备在第一时刻监测到的所有发生乱序的数据流中对应的乱序开销最大的一条或多条数据流。
本申请中,通过调整乱序开销最大的若干条流对应的负载均衡策略,能够在影响尽量少的应用业务的情况下,有效降低接收端设备接收的后续数据包的乱序程度,从而降低接收端设备的总乱序开销。
可选地,在发送端设备接收接收端设备发送的乱序通知之后,接收端设备确定第二乱序开销低于第二阈值。第二乱序开销为接收端设备在第二时刻监测到的所有发生乱序的数据流对应的乱序开销之和。其中,第二时刻为接收端设备向发送端设备发送乱序通知之后的时刻。第二阈值小于或等于第一阈值。接收端设备向发送端设备发送乱序解除通知。
可选地,第一数据包为乱序通知中指定的数据流中的待发送数据包。或者,第一数据包为发送端设备在接收到乱序通知后开始发送至接收端设备的数据流中的待发送数据包。这里的待发送数据包指的是发送端设备接收到乱序通知之后需要发送的数据包。
本申请中,针对发送端设备在接收到乱序通知之前开始发送至接收端设备的数据流,如果乱序通知中包括数据流标识,那么发送端设备在乱序通知中指定的数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记。如果乱序通知中不包括数据流标识,那么发送端设备可以在全部或部分数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记,或者也可以不在任何数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记。针对发送端设备在接收到乱序通知之后开始发送至接收端设备的数据流,发送端设备可以在全部或部分数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记,或者也可以不在任何数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记。本申请只需保证发送端设备在接收到乱序通知之后,向接收端设备发送的至少一条数据流中的待发送数据包中设置有第二负载均衡策略对应的策略标记即可,这样就能够达到降低接收端设备的总乱序开销的效果。
可选地,在发送端设备向网络设备发送第二数据包之后,发送端设备确定第一数据包所属的数据流满足乱序控制结束条件。发送端设备通过网络设备基于第一负载均衡策略转发第一数据包所属的数据流中的待发送数据包至接收端设备。
本申请中,发送端设备调整网络设备采用第二负载均衡策略转发数据包的一段时间之后,调整网络设备恢复基于第一负载均衡策略转发数据包,以满足网络中的链路负载均衡度需求。
可选地,第一数据包所属的数据流满足乱序控制结束条件,包括以下一种或多种:发送端设备接收到乱序通知的时长达到时长阈值。发送端设备接收到乱序通知报文之后,发送的第一数据包所属的数据流中的数据包个数达到个数阈值。发送端设备接收到乱序通知报文之后,发送的第一数据包所属的数据流中的数据包的数据量达到数据量阈值。发送端设备接收到接收端设备发送的乱序解除通知。
可选地,第二负载均衡策略对应的策略标记位于第二数据包的报文头。
由于网络设备在接收到数据包之后,需要解析数据包的报文头才能对数据包进行转发,因此将策略标记设置在数据包的报文头中,在指示网络设备采用对应的负载均衡策略转发该数据包的同时,不会增加网络设备过多的额外开销。
第二方面,提供了另一种数据传输方法。该方法应用于数据传输系统,该数据传输系统包括发送端设备,网络设备和接收端设备。网络设备基于第一负载均衡策略转发发送端设备向接收端设备发送的数据包。在数据传输过程中,网络设备接收接收端设备发送的乱序通知。网络设备根据乱序通知,基于第二负载均衡策略转发发送端设备向接收端设备发送的数据包。其中,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。
本申请中,网络设备在正常情况下基于第一负载均衡策略转发数据包。在网络设备接收到的接收端设备发送的乱序通知之后,网络设备根据乱序通知基于第二负载均衡策略转发数据包。由于网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度,因此能够降低接收端设备接收的数据包的乱序程度,从而降低接收端设备的总乱序开销,避免接收端设备因处理性能不足以对数据包保序而导致出现接收端设备丢包或者对数据流限速等问题,提高了应用业务的运行可靠性。
可选地,在网络设备基于第二负载均衡策略转发发送端设备向接收端设备发送的数据包之前,网络设备根据乱序通知,在接收到的发送端设备发送的第二数据包中设置策略标记,获得第三数据包。其中,该策略标记对应于第二负载均衡策略。相应地,网络设备基于第二负载均衡策略转发发送端设备向接收端设备发送的数据包的一种实现方式为,网络设备基于第二负载均衡策略向接收端设备发送第三数据包。
本申请中,接收到乱序通知的网络设备可以在数据包中设置第二负载均衡策略对应的策略标记,并向接收端设备发送携带有第二负载均衡策略对应的策略标记的数据包,这样位于该网络设备与接收端设备之间的其它网络设备接收到该数据包之后,也会基于第二负载均衡策略转发该数据包。
第三方面,提供了一种发送端设备,包括:发送模块,用于通过网络设备基于第一负载均衡策略转发数据包至接收端设备。接收模块,用于在数据传输过程中,接收接收端设备发送的乱序通知。处理模块,用于根据乱序通知,在第一数据包中设置策略标记,获得第二数据包,其中,策略标记对应于第二负载均衡策略,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。发送模块,还用于向网络设备发送第二数据包。
可选地,第一负载均衡策略为以数据包为调度粒度的负载均衡策略,第二负载均衡策略为以数据流为调度粒度的负载均衡策略。
可选地,第一数据包为乱序通知中指定的数据流中的待发送数据包。或者,第一数据包为发送端设备在接收到乱序通知后开始发送至接收端设备的数据流中的待发送数据包。
可选地,处理模块,还用于在发送模块向网络设备发送第二数据包之后,确定第一数据包所属的数据流满足乱序控制结束条件。发送模块,还用于通过网络设备基于第一负载均衡策略转发第一数据包所属的数据流中的待发送数据包至接收端设备。
可选地,第一数据包所属的数据流满足乱序控制结束条件,包括以下一种或多种:发送端设备接收到乱序通知的时长达到时长阈值;发送端设备接收到乱序通知报文之后,发送的第一数据包所属的数据流中的数据包个数达到个数阈值;发送端设备接收到乱序通知报文之后,发送的第一数据包所属的数据流中的数据包的数据量达到数据量阈值;发送端设备接收到接收端设备发送的乱序解除通知。
可选地,策略标记位于第二数据包的报文头。
第四方面,提供了一种接收端设备,包括:处理模块,用于监测接收到的发生乱序的数据流对应的乱序开销。处理模块,还用于确定第一乱序开销超出第一阈值,第一乱序开销为接收端设备在第一时刻监测到的所有发生乱序的数据流对应的乱序开销之和。发送模块,用于向目标设备发送乱序通知,目标设备为发送端设备或位于发送端设备与接收端设备之间的网络设备,所有发生乱序的数据流中包括该发送端设备发送的数据流。
可选地,乱序通知包括一个或多个数据流标识,每个数据流标识指示发送端设备发送的一条数据流,其中,乱序通知中的一个或多个数据流标识所指示的数据流属于接收端设备在第一时刻监测到的所有发生乱序的数据流中对应的乱序开销最大的一条或多条数据流。
可选地,处理模块,还用于在发送模块向目标设备发送乱序通知之后,确定第二乱序开销低于第二阈值,第二乱序开销为接收端设备在第二时刻监测到的所有发生乱序的数据流对应的乱序开销之和,其中,第二时刻为发送模块向目标设备发送乱序通知之后的时刻,第二阈值小于或等于第一阈值。发送模块,还用于向目标设备发送乱序解除通知。
第五方面,提供了一种网络设备,包括:接收模块,用于接收发送端设备发送的第一数据包。发送模块,用于基于第一负载均衡策略向接收端设备发送第一数据包。接收模块,还用于接收发送端设备发送的第二数据包,第二数据包携带有策略标记,其中,策略标记对应于第二负载均衡策略,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。发送模块,还用于根据策略标记基于第二负载均衡策略向接收端设备发送第二数据包。
第六方面,提供了另一种网络设备,包括:第一接收模块,用于接收发送端设备发送的第一数据包。发送模块,用于基于第一负载均衡策略向接收端设备发送第一数据包。第二接收模块,用于在数据传输过程中,接收接收端设备发送的乱序通知。第一接收模块,还用于接收发送端设备发送的第二数据包。发送模块,还用于根据乱序通知,基于第二负载均衡策略向接收端设备发送第三数据包,第三数据包基于第二数据包得到,其中,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。
可选地,网络设备还包括:处理模块。该处理模块,用于在第二数据包中设置策略标记,获得第三数据包,其中,策略标记对应于第二负载均衡策略。
第七方面,提供了一种数据传输系统,包括:发送端设备,网络设备和接收端设备。发送端设备为如第三方面及其各实施方式所述的发送端设备,网络设备为如第五方面所述的网络设备,接收端设备为如第四方面及其各实施方式所述的接收端设备。
第八方面,提供了另一种数据传输系统,包括:发送端设备,网络设备和接收端设备。发送端设备用于通过网络设备转发数据包至接收端设备,网络设备为如第六方面及其各实施方式所述的网络设备,接收端设备为如第四方面及其各实施方式所述的接收端设备。
第九方面,提供了一种数据传输装置,包括:处理器和收发器。
处理器,用于调用计算机程序,协同收发器实现如第一方面及其各实施方式或第二方面及其各实施方式中发送端设备、接收端设备或网络设备执行的动作。
具体地,当数据传输装置为发送端设备,处理器用于调用计算机程序,协同收发器实现如第一方面及其各实施方式或第二方面及其各实施方式中发送端设备执行的动作。当数据传输装置为接收端设备,处理器用于调用计算机程序,协同收发器实现如第一方面及其各实施方式或第二方面及其各实施方式中接收端设备执行的动作。当数据传输装置为网络设备,处理器用于调用计算机程序,协同收发器实现如第一方面及其各实施方式或第二方面及其各实施方式中网络设备执行的动作。
第十方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,当指令被处理器执行时,实现如第一方面及其各实施方式或第二方面及其各实施方式中发送端设备、接收端设备或网络设备执行的动作。
第十一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,实现如第一方面及其各实施方式或第二方面及其各实施方式中发送端设备、接收端设备或网络设备执行的动作。
第十二方面,提供了一种芯片,芯片包括可编程逻辑电路和/或程序指令,当芯片运行时,实现如第一方面及其各实施方式或第二方面及其各实施方式中发送端设备、接收端设备或网络设备执行的动作。
附图说明
图1是本申请实施例提供的一种逐流负载均衡策略下的数据包传输示意图;
图2是本申请实施例提供的一种逐包负载均衡策略下的数据包传输示意图;
图3是本申请实施例提供的一种数据传输系统的结构示意图;
图4是本申请实施例提供的一种数据传输方法的流程示意图;
图5是本申请实施例提供的另一种数据传输方法的流程示意图;
图6是本申请实施例提供的一种发送端设备的结构示意图;
图7是本申请实施例提供的一种接收端设备的结构示意图;
图8是本申请实施例提供的一种网络设备的结构示意图;
图9是本申请实施例提供的另一种网络设备的结构示意图;
图10是本申请实施例提供的一种网络设备的硬件结构示意图;
图11是本申请实施例提供的一种计算机设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
目前在采用多路径路由技术进行流量转发的网络中,用于实现链路负载均衡的负载均衡策略主要包括以数据流为调度粒度的负载均衡策略和以数据包为调度粒度的负载均衡策略。
其中,以数据流为调度粒度的负载均衡策略也称为逐流(per flow)负载均衡策略。网络设备通过运行逐流负载均衡策略,能够将不同数据流均衡地分配到不同链路上。例如,等价多路径(equal cost multi-path,ECMP)技术是一种常见的逐流负载均衡策略。ECMP技术的路径选择方式有很多,例如包括基于哈希的选路方式、基于轮询的选路方式和基于路径权重的选路方式等。其中,基于哈希的选路方式例如可以是根据源IP地址的哈希值为数据流选择路径,具体可以将源IP地址相同的数据流分配到同一条路径上,将源IP地址不同的数据流分配到不同路径上。基于轮询的选路方式是将接收到的不同数据流轮询分配到不同路径上。基于路径权重的选路方式是根据路径的权重分配数据流,权重越大的路径分配更多的数据流。其中,路径的权重通常与路径带宽正相关。本申请实施例对ECMP技术的选路方式不做限定。
一条数据流包括多个数据包。在三层路由场景下,数据包的报文头包括五元组,数据流可以基于五元组划分得到,具体可以将五元组相同的数据包视为属于同一条数据流,将五元组不同的数据包视为属于不同数据流,也即是,同一条数据流中的数据包的五元组相同,不同数据流中的数据包的五元组不同。一个数据包进入网络设备之后,网络设备通过解析报文头以提取数据包中五元组的部分或全部信息,并对提取的信息进行哈希计算,再根据计算结果选择对应的出端口转发该数据包。由于同一条数据流中所有数据包的五元组都是相同的,因此对从同一条数据流中不同数据包的报文头提取的信息进行哈希计算得到的计算结果也是相同的,进而为同一条数据流中的不同数据包选择的出端口也是相同的,这样就能够将属于同一条数据流的所有数据包从网络设备上的同一出端口转发出去,即实现将属于同一条数据流的数据包分配到同一链路上。
例如,图1是本申请实施例提供的一种逐流负载均衡策略下的数据包传输示意图。如图1所示,有3条数据流的数据包进入网络设备1。该3条数据流分别为数据流A、数据流B和数据流C。该3条数据流的目的地址为同一接收端设备。网络设备1与接收端设备之间具有3条等价路径,该3条等价路径分别经过网络设备2、网络设备3和网络设备4。其中经过网络设备4的路径发生了拥塞,具体可以是网络设备1与网络设备4之间的链路发生拥塞,和/或,网络设备4与接收端设备之间的链路发生拥塞。网络设备1基于逐流负载均衡策略将该3条数据流的数据包分别从三个出端口转发出去,使得该3条数据流的数据包被分配到3条等价路径上传输。其中数据流A中的数据包被转发至网络设备2,数据流B中的数据包被转发至网络设备3,数据流C中的数据包被转发至网络设备4。最终数据流A中的数据包经过网络设备2的转发到达接收端设备。数据流B中的数据包经过网络设备3的转发到达接收端设备。数据流C中的数据包经过网络设备4的转发到达接收端设备。但由于网络设备1与接收端设备之间经过网络设备4的路径发生了拥塞,数据流C中的数据包的传输时延较高,导致数据流C中的数据包到达接收端设备较慢。图1示出的数据包中的编号1、2、3表示对应的数据包在相应数据流中的顺序。
结合参考图1示出的数据包传输过程可知,逐流负载均衡策略具有优势和缺陷。优势在于,在逐流负载均衡策略下,网络设备会将同一条数据流中的数据包都分配到同一条链路上,使得每条数据流中的数据包都是顺序转发的,这样接收端设备收到的数据包不会出现乱序。缺陷在于,由于网络设备本身无法感知每条数据流的流量大小,有可能把两条大流量的数据流同时分配到同一条链路,使得一些链路负载过高,而另一些链路负载过低,导致网络中的链路负载均衡度较低,无法充分利用网络的带宽资源。另外,在逐流负载均衡策略下,网络设备也不会感知链路拥塞情况,可能会把数据流分配到发生拥塞的链路上,例如参考图1的例子,网络设备1将数据流C分配到经过网络设备4的路径上,导致应用业务的响应时延较高,影响用户体验。
以数据包为调度粒度的负载均衡策略也称为逐包(per packet)负载均衡策略。网络设备通过运行逐包负载均衡策略,能够将不同数据包均衡地分配到不同链路上。网络设备运行逐包负载均衡策略时,会根据链路拥塞情况为每个数据包分别选择最佳的传输路径。例如,自适应路由(adaptive routing,AR)技术是一种常见的逐包负载均衡策略。数据包进入网络设备之后,网络设备首先根据数据包的目的地址从路由表中获取若干条可传输路径,然后比较这些可传输路径的当前拥塞情况,并选择一条最佳路径来传输该数据包。其中,最佳路径可以是拥塞程度最低的路径,具体可以是负载最小、时延最低或剩余带宽最大的路径。可选地,网络设备感知链路拥塞情况的方式有很多。例如网络设备通过判断本地出端口的队列深度来确定链路拥塞情况,一个出端口的队列深度越大,则表示对应链路的拥塞程度越高。又例如网络设备通过与邻居设备周期性通信来交互负载信息,根据自身的负载信息以及邻居设备的负载信息来确定链路拥塞情况,如果邻居设备的负载程度越高,那么将该邻居设备作为下一跳时的链路拥塞程度越高。本申请实施例对网络设备感知链路拥塞情况的方式不做限定。
例如,图2是本申请实施例提供的一种逐包负载均衡策略下的数据包传输示意图。如图2所示,有3条数据流的数据包进入网络设备1。该3条数据流分别为数据流A、数据流B和数据流C。该3条数据流的目的地址为同一接收端设备。网络设备1与接收端设备之间具有3条路径,该3条路径分别经过网络设备2、网络设备3和网络设备4。其中经过网络设备4的路径发生了拥塞。则网络设备1分别为该3条数据流中的每个数据包选择最佳路径,也即将这些数据包均衡地分配到其余2条未发生拥塞的路径上。例如,网络设备1将数据流A中的数据包1、数据流B中的数据包1、数据流A中的数据包2以及数据流C中的数据包2转发至网络设备2,并将数据流C中的数据包1、数据流B中的数据包2以及数据流A中的数据包3转发至网络设备3。最终该3条数据流中的数据包经过网络设备2或网络设备3的转发到达接收端设备。图2示出的数据包中的编号1、2、3表示对应的数据包在相应数据流中的顺序。
结合参考图2示出的数据包传输过程可知,逐包负载均衡策略具有优势和缺陷。优势在于,在逐包负载均衡策略下,网络设备能够避开拥塞路径,将数据包均衡地分配到未发生拥塞的路径上,链路负载均衡度高,能够充分利用网络的带宽资源。缺陷在于,网络设备通常会将同一条数据流中的数据包分配到不同链路上传输,而不同链路的长度和拥塞程度通常不同,会使得接收端设备收到的数据包是乱序的,例如参考图2的例子,接收端设备可能先接收到经过网络设备3转发的数据流B中的数据包2,后接收到经过网络设备2转发的数据流B中的数据包1,此时接收端设备需要对数据包进行排序。而接收端设备对乱序数据包的处理能力有限,当接收端设备收到的数据包的乱序程度超出了接收端设备的处理能力,接收端设备就会丢包或限速,从而影响应用业务的正常运行。可选地,接收端设备通过网卡实现对数据包的排序。
目前,网络中的网络设备通常被预先配置为采用固定的负载均衡策略转发数据包,以实现链路负载均衡。例如网络设备被固定配置为以数据流为调度粒度的负载均衡策略转发数据包。或者,网络设备被固定配置为以数据包为调度粒度的负载均衡策略转发数据包。基于上述陈述可知,当网络设备被配置为以数据流为调度粒度的负载均衡策略转发数据包时,可能会出现网络中的链路负载均衡度较低、数据流被分配到发生拥塞的链路等问题。当网络设备被配置为以数据包为调度粒度的负载均衡策略转发数据包时,可能会出现接收端设备的处理性能不足以对数据包保序而导致数据流的丢包或限速等问题。这些问题都会影响应用业务的正常运行。
有鉴于此,本申请实施例提供了一种数据传输方法,正常情况下网络设备基于第一负载均衡策略转发数据包,当接收端设备监测到乱序开销过大时,通过反馈乱序通知的方式调整网络设备所使用的负载均衡策略,以使网络设备调整为基于第二负载均衡策略转发数据包。其中,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。这样能够降低接收端设备接收的数据包的乱序程度,从而避免接收端设备因处理性能不足以对数据包保序而导致出现接收端设备丢包或者对数据流限速等问题,提高了应用业务的运行可靠性。另外,网络设备基于第一负载均衡策略转发数据包时的链路负载均衡度高于网络设备基于第二负载均衡策略转发数据包时的链路负载均衡度。这样正常情况下网络设备基于第一负载均衡策略转发数据包时,能够保证网络中的链路负载均衡度较高,进而提高网络的带宽资源利用率,有助于提升网络性能。由此可知,本申请实施例实现了对网络设备所使用的负载均衡策略的灵活调整,通过利用不同负载均衡策略的优势,弥补单一负载均衡策略的缺陷,实现了应用业务运行的高可靠性。
可选地,第一负载均衡策略以数据包为调度粒度的负载均衡策略。第二负载均衡策略为以数据流为调度粒度的负载均衡策略。
下面从系统、方法流程、软件装置、硬件装置等多个角度,对本申请的技术方案进行详细介绍。
下面对本申请实施例涉及的系统举例说明。
例如,图3是本申请实施例提供的一种数据传输系统的结构示意图。如图3所示,该数据传输系统包括发送端设备301、接收端设备302以及通信网络中的网络设备303A-303F(统称为网络设备303)。图3中网络设备的数量仅用作示例性说明,不作为对本申请实施例提供的通信网络的限制。
本申请实施例提供的通信网络具备多路径路由的特性。例如参见图3,网络设备303A与网络设备303F之间具有4条路径,分别包括路径1(网络设备303A→网络设备303B→网络设备303C→网络设备303F),路径2(网络设备303A→网络设备303B→网络设备303E→网络设备303F),路径3(网络设备303A→网络设备303D→网络设备303C→网络设备303F)以及路径4(网络设备303A→网络设备303D→网络设备303E→网络设备303F)。通信网络通过运行多路径路由协议,使得这4条路径都能够传输网络设备303A与网络设备303F之间的流量。
可选地,本申请实施例提供的通信网络可以是数据中心网络、城域网络、广域网络或园区网络等。本申请实施例提供的通信网络可以采用三层胖树(fat tree)组网拓扑、蜻蜓(dragonfly)组网拓扑或三维环面(3D torus)组网拓扑等。本申请实施例提供的数据传输系统所采用的网络协议例如可以是远程直接内存访问(remote direct memory access,RDMA)协议等。本申请实施例对通信网络的类型、通信网络所采用的组网拓扑以及数据传输系统所采用的网络协议均不做限定。
可选地,发送端设备301和接收端设备302可以为终端设备、服务器或云平台等具有通信需求的电子设备。终端设备包括但不限于智能手机、平板电脑、台式计算机或物联网(internet of things,IoT)设备。网络设备303包括但不限于路由器、交换机或防火墙。发送端设备301与接收端设备302通过通信网络中的网络设备303进行通信。
可选地,发送端设备301与网络设备303A直接通信连接或间接通信连接。例如发送端设备301与网络设备303A之间可以设置有网络控制器(图3中未示出)。
下面对本申请实施例涉及的方法举例说明。
在本申请实施例提供的数据传输方法中,由接收端设备监控发生乱序的数据流对应的乱序开销,并在总乱序开销超出预先设置的阈值时,向发送端设备或网络设备反馈乱序通知,以使通信网络中的网络设备调整负载均衡策略,进而达到降低接收端设备接收到的数据包的乱序程度的目的。本申请通过以下两个实施例分别对接收端设备向发送端设备反馈乱序通知以及接收端设备向网络设备反馈乱序通知,以调整通信网络中的网络设备所使用的负载均衡策略的实现过程进行说明。
在本申请的一个实施例中,接收端设备向发送端设备反馈乱序通知,以调整通信网络中的网络设备所使用的负载均衡策略。例如,图4是本申请实施例提供的一种数据传输方法的流程示意图。如图4所示,方法400包括以下步骤401至步骤407。该方法400可以应用于如图3所示的数据传输系统。方法400中的发送端设备可以是图3中的发送端设备301。方法400中的接收端设备可以是图3中的接收端设备302。方法400中的网络设备可以是图3中的任一网络设备303。
步骤401、发送端设备向网络设备发送数据包11。
可选地,数据包11泛指发送端设备上的任意数据流中的数据包。
一种可能实现方式,数据包11中携带有第一负载均衡策略对应的策略标记。这种实现方式下,发送端设备通过向网络设备发送携带有第一负载均衡策略对应的策略标记的数据包,以使网络设备基于第一负载均衡策略转发该数据包。
可选地,第一负载均衡策略对应的策略标记位于数据包11的报文头。本申请实施例中,可以在数据包的报文头预先定义一个策略标记字段,例如可以利用数据包的三层IP头中的保留字段(例如IP标志(IP flags)字段)作为策略标记字段,或者也可以在数据包的二层以太头和三层IP头之间新增一个字段作为策略标记字段。发送端设备通过将数据包的报文头中的策略标记字段取值为第一值,以完成在该数据包的报文头中设置第一负载均衡策略对应的策略标记。第一值例如为0,本申请实施例对策略标记字段的具体取值不做限定。
由于网络设备在接收到数据包之后,需要解析数据包的报文头才能对数据包进行转发,因此将策略标记设置在数据包的报文头中,在指示网络设备采用对应的负载均衡策略转发该数据包的同时,不会增加网络设备过多的额外开销。
可选地,发送端设备的网卡具备改造数据包的功能。发送端设备通过网卡在数据包中设置第一负载均衡策略对应的策略标记。例如,预先定义在数据包的三层IP头的保留字段中设置有策略标记字段,则发送端设备的网卡通过将该策略标记字段的值设置为第一值,以完成在数据包中设置第一负载均衡策略对应的策略标记。或者,预先定义策略标记字段为位于数据包的二层以太头和三层IP头之间的新增字段,则发送端设备的网卡在数据包的二层以太头和三层IP头之间添加一个字段作为策略标记字段,并将该字段的值设置为第一值,以完成在数据包中设置第一负载均衡策略对应的策略标记。本申请实施例中,由发送端设备的网卡在数据包中设置策略标记,无需改变上层应用,实现方式简单。
另一种可能实现方式,数据包11中未设置对应于任何负载均衡策略的策略标记。这种实现方式下,将通信网络中的网络设备预先配置为,当接收到未携带有任何负载均衡策略对应的策略标记的数据包时,默认基于第一负载均衡策略转发该数据包。这种实现方式下,发送端设备无需在数据包中设置策略标记以指示网络设备采用第一负载均衡策略转发该数据包,可节约发送端设备的处理资源。另外网络设备无需额外解析策略标记字段,也节约了网络设备的处理资源。
步骤402、网络设备基于第一负载均衡策略向接收端设备发送数据包11。
可选地,第一负载均衡策略为以数据包为调度粒度的负载均衡策略。网络设备基于以数据包为调度粒度的负载均衡策略转发数据包的实现过程可参考前述相关内容,本申请实施例在此不再赘述。
本申请实施例中,网络设备在正常情况下基于以数据包为调度粒度的负载均衡策略转发数据包,能够保证网络中的链路负载均衡度较高,进而提高网络的带宽资源利用率,有助于提升网络性能。
上述步骤401至步骤402也即是,发送端设备通过网络设备基于第一负载均衡策略转发数据包至接收端设备。
步骤403、接收端设备监测接收到的发生乱序的数据流对应的乱序开销。
其中,发生乱序的数据流对应的乱序开销与该数据流中的数据包的乱序程度正相关。也即是,接收端设备接收到的数据流中的数据包的乱序程度越高,则接收端设备确定该数据流对应的乱序开销越大。
可选地,接收端设备通过网卡实现数据包保序。发送端设备通常会将一个完整的消息封装成多个数据包依次向接收端设备传输。接收端设备将接收到的数据包缓存在上层应用对应的存储空间,在完成接收一个完整的消息对应的所有数据包之后,上层应用能够解析得到对应的消息。一条数据流可以包含很多个消息。如果接收端设备接收到的数据流发生乱序,接收端设备的网卡需要记录该数据流中的哪些数据包发生了乱序。本申请实施例中数据流对应的乱序开销,指的是接收端设备的网卡记录发生乱序的数据包时占用的存储开销。如果接收端设备接收到的数据流未发生乱序,那么接收端设备确定该数据流不存在乱序开销。
例如,接收端设备会针对发生乱序的数据流做位图(bit)标记,则发生乱序的数据流对应的乱序开销可理解为该数据流对应的位图标记所占用的内存。比如数据流中一个完整的消息被拆分成10个数据包传输,接收端设备在依次接收到该消息的前3个数据包之后,接收到该消息的第6个数据包,则说明该数据流发生了乱序,此时接收端设备的网卡需要针对该数据流做位图标记,以记录缺失了哪些数据包,以便后续对数据包进行排序。此时该数据流对应的位图标记可以表示为0010000,该数据流对应的乱序开销为7比特。其中,该位图标记的第一位对应消息中的第四个数据包,第二位对应消息中的第五个数据包,第三位对应消息中的第六个数据包,以此类推。由于接收端设备已接收到该数据流中的消息的前3个数据包,因此接收端设备的网卡可以从该消息的第4个数据包开始做位图标记。其中0表示缺失对应的数据包,1表示已接收到对应的数据包。如果接收端设备在接收到该消息的第6个数据包之后,继续接收到该消息的第7个数据包,则接收端设备的网卡将该数据流对应的位图标记修改为0011000。如果接收端设备在接收到该消息的第7个数据包之后,继续接收到该消息的第4个数据包,则接收端设备的网卡将该数据流对应的位图标记修改为1011000。依次类推,直至接收端设备接收到该消息的所有数据包,接收端设备的网卡才会删除该数据流对应的位图标记。
可选地,数据包中携带有包序列号,接收端设备根据接收到的数据包携带的包序列号判断数据流是否发生乱序以及数据包的乱序程度。一条数据流中乱序的数据包的数量越多,则表示乱序程度越高。其中,接收端设备在第一个乱序的数据包之后接收到的该乱序的数据包所属的消息的剩余数据包均为乱序的数据包。例如数据流中一个完整的消息被拆分成10个数据包传输,接收端设备在依次接收到该消息的前3个数据包之后,接收到该消息的第6个数据包,则第一个乱序的数据包指的是该消息中的第6个数据包,该消息的10个数据包中除前3个数据包以外的剩余7个数据包均为乱序的数据包。
可选地,接收端设备每接收到一个数据包,首先根据该数据包携带的包序列号判断该数据包是否为乱序的数据包。如果该数据包为乱序的数据包,接收端设备监测该数据包所属的数据流对应的乱序开销,并计算接收端设备的总乱序开销。
步骤404、当接收端设备确定第一乱序开销超出第一阈值时,接收端设备向发送端设备发送乱序通知。
第一乱序开销为接收端设备在第一时刻监测到的所有发生乱序的数据流对应的乱序开销之和,即第一乱序开销为接收端设备在第一时刻的总乱序开销。其中,第一时刻为接收端设备向发送端设备发送乱序通知(out-order notification,OON)之前的时刻。接收端设备在第一时刻监测到的所有发生乱序的数据流中包括发送端设备发送的数据流。第一阈值基于接收端设备的乱序处理性能的上限值得到。例如第一阈值可设置为接收端设备的乱序处理性能的上限值的80%。
可选地,乱序通知包括一个或多个数据流标识,每个数据流标识指示发送端设备发送的一条数据流。该乱序通知用于指示该乱序通知所携带的数据流标识所指示的数据流发生乱序。
可选地,乱序通知中的一个或多个数据流标识所指示的数据流属于接收端设备在第一时刻监测到的所有发生乱序的数据流中对应的乱序开销最大的一条或多条数据流。当接收端设备在第一时刻监测到总乱序开销超出第一阈值时,接收端设备获取发生乱序的数据流中对应的乱序开销最大的若干条数据流,并向该这些数据流的发送端设备发送相应的乱序通知,以使该这些数据流的发送端设备分别控制调整网络设备转发该这些数据流时所采用的负载均衡策略。本申请实施例中,通过调整乱序开销最大的若干条流对应的负载均衡策略,能够在影响尽量少的应用业务的情况下,有效降低接收端设备接收的后续数据包的乱序程度,从而降低接收端设备的总乱序开销。
或者,当接收端设备在第一时刻监测到总乱序开销超出第一阈值时,接收端设备也可以获取监测到的发生乱序的任意若干条数据流,并向这些数据流的发送端设备发送相应的乱序通知,以使这些数据流的发送端设备分别控制调整网络设备转发这些数据流时所采用的负载均衡策略。本申请实施例对乱序通知中指定的发生乱序的数据流不做限定。
可选地,当数据传输系统采用RDMA协议时,乱序通知的格式可以复用第二版基于融合以太网的远程直接内存访问(RDMA over converged ethernet,RoCE)(RoCEv2)报文格式。具体可以使用RoCEv2报文的基础传输头(base transport head,BHT)中的操作码(opcode)的保留值中未使用的特殊值来标记乱序通知。例如可以定义RoCEv2报文的基础传输头(base transport head,BHT)中的操作码取值为b10000011时,该RoCEv2报文为乱序通知。当乱序通知的格式复用RoCEv2报文格式时,乱序通知中各个字段的定义和设置可参考RoCEv2拥塞通知报文(congestion notification packet,CNP)的报文格式,本申请实施例在此不再赘述。或者,乱序通知也可以采用其它自定义的用户数据报协议(User DatagramProtocol,UDP)报文或传输控制协议(Transmission Control Protocol,TCP)报文实现,本申请实施例对乱序通知的报文格式和报文类型均不做限定。
在数据传输过程中,如果发送端设备接收到接收端设备发送的乱序通知,则执行以下步骤405至步骤407。如果发送端设备未接收到接收端设备发送的乱序通知,则发送端设备继续通过网络设备基于第一负载均衡策略转发后续数据包至接收端设备。
步骤405、发送端设备根据乱序通知,在数据包12中设置第二负载均衡策略对应的策略标记,获得数据包13。
值得说明的是,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。
可选地,第二负载均衡策略对应的策略标记位于数据包13的报文头。其中,第二负载均衡策略对应的策略标记与上述第一负载均衡策略对应的策略标记不同。发送端设备在数据包中设置第二负载均衡策略对应的策略标记的方式可参考上述步骤401中发送端设备在数据包中设置第一负载均衡策略对应的策略标记的方式,本申请实施例在此不再赘述。例如,发送端设备通过将数据包的报文头中的策略标记字段取值为第一值,以完成在该数据包的报文头中设置第一负载均衡策略对应的策略标记。相应的,发送端设备通过将数据包的报文头中的策略标记字段取值为第二值,以完成在该数据包的报文头中设置第二负载均衡策略对应的策略标记。第二值与第一值不同。例如第一值为0,第二值为1。
可选地,数据包12为乱序通知中指定的数据流中的待发送数据包。或者,数据包12为发送端设备在接收到乱序通知后开始发送至接收端设备的数据流中的待发送数据包。这里的待发送数据包指的是发送端设备接收到乱序通知之后需要发送的数据包。本申请实施例中,针对发送端设备在接收到乱序通知之前开始发送至接收端设备的数据流,如果乱序通知中包括数据流标识,那么发送端设备在乱序通知中指定的数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记。如果乱序通知中不包括数据流标识,那么发送端设备可以在全部或部分数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记,或者也可以不在任何数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记。针对发送端设备在接收到乱序通知之后开始发送至接收端设备的数据流,发送端设备可以在全部或部分数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记,或者也可以不在任何数据流中的待发送数据包中设置第二负载均衡策略对应的策略标记。本申请实施例中,只需保证发送端设备在接收到乱序通知之后,向接收端设备发送的至少一条数据流中的待发送数据包中设置有第二负载均衡策略对应的策略标记即可,这样就能够达到降低接收端设备的总乱序开销的效果。
步骤406、发送端设备向网络设备发送数据包13。
发送端设备通过向网络设备发送携带有第二负载均衡策略对应的策略标记的数据包,以使网络设备基于第二负载均衡策略转发该数据包。
步骤407、网络设备基于第二负载均衡策略向接收端设备发送数据包13。
可选地,第二负载均衡策略为以数据流为调度粒度的负载均衡策略。网络设备基于以数据流为调度粒度的负载均衡策略转发数据包的实现过程可参考前述相关内容,本申请实施例在此不再赘述。
本申请实施例中,在发送端设备通过网络设备基于第一负载均衡策略转发数据包至接收端设备的过程中,当接收端设备的总乱序开销超出预设的阈值时,接收端设备向发送端设备发送乱序通知,使得发送端设备在发送至该接收端设备的至少一条数据流中的数据包中设置第二负载均衡策略对应的策略标记,以使网络设备基于第二负载均衡策略转发携带有第二负载均衡策略对应的策略标记的数据包。由于网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度,因此能够降低接收端设备接收的数据包的乱序程度,从而降低接收端设备的总乱序开销,避免接收端设备因处理性能不足以对数据包保序而导致出现接收端设备丢包或者对数据流限速等问题,提高了应用业务的运行可靠性。
对于网络设备而言,当网络设备接收到携带有第一负载均衡策略对应的策略标记或未携带有任何负载均衡策略对应的策略标记的数据包时,网络设备基于第一负载均衡策略转发该数据包。当网络设备接收到携带有第二负载均衡策略对应的策略标记的数据包时,网络设备基于第二负载均衡策略转发该数据包。本申请实施例中,网络设备能够根据数据包对策略标记的携带情况灵活选择对应的负载均衡策略来转发该数据包,提高了数据转发的灵活性。
可选地,发送端设备在确定数据包12所属的数据流满足乱序控制结束条件之后,发送端设备通过网络设备基于第一负载均衡策略转发数据包12所属的数据流中的待发送数据包至接收端设备。这里的待发送数据包指的是发送端设备在确定数据包12所属的数据流满足乱序控制结束条件之后需要发送的数据包。
可选地,数据包12所属的数据流满足乱序控制结束条件,包括以下一种或多种:发送端设备接收到乱序通知的时长达到时长阈值。发送端设备接收到乱序通知报文之后,发送的数据包12所属的数据流中的数据包个数达到个数阈值。发送端设备接收到乱序通知报文之后,发送的数据包12所属的数据流中的数据包的数据量达到数据量阈值。发送端设备接收到接收端设备发送的乱序解除通知。
可选地,接收端设备向发送端设备发送乱序通知之后,接收端设备继续监测发生乱序的数据流对应的乱序开销,并计算接收端设备的总乱序开销。在接收端设备确定第二乱序开销低于第二阈值之后,接收端设备向发送端设备发送乱序解除通知。第二乱序开销为接收端设备在第二时刻监测到的所有发生乱序的数据流对应的乱序开销之和,即第二乱序开销为接收端设备在第二时刻的总乱序开销。其中,第二时刻为接收端设备向发送端设备发送乱序通知之后的时刻。第二阈值小于或等于第一阈值。第二阈值基于接收端设备的乱序处理性能的上限值得到。例如第一阈值设置为接收端设备的乱序处理性能的上限值的80%,第二阈值设置为接收端设备的乱序处理性能的上限值的60%。
本申请实施例中,网络设备基于第一负载均衡策略转发数据包时的链路负载均衡度高于网络设备基于第二负载均衡策略转发数据包时的链路负载均衡度。正常情况下网络设备基于第一负载均衡策略转发数据包,以实现较高的链路负载均衡度。在接收端设备的总乱序开销过大的情况下,发送端设备调整网络设备基于第二负载均衡策略转发数据包,以降低接收端设备接收的数据包的乱序程度。之后,发送端设备再调整网络设备恢复基于第一负载均衡策略转发数据包。通过发送端设备实现对网络设备所使用的负载均衡策略的灵活调整,利用不同负载均衡策略的优势,弥补单一负载均衡策略的缺陷,实现了应用业务运行的高可靠性,也实现了对网络的带宽资源的高利用率,有助于提升网络性能。具体实现时,可根据实际路由策略决定仅在首跳网络设备上实现负载均衡策略的调整机制,还是在所有网络设备上都实现负载均衡策略的调整机制,本申请实施例对此不做限定。
在本申请实施例提供的数据传输方法中,由于网络设备基于第一负载均衡策略转发数据包时的链路负载均衡度高于网络设备基于第二负载均衡策略转发数据包时的链路负载均衡度,因此网络设备在正常情况下基于第一负载均衡策略转发数据包,以实现网络中较高的链路负载均衡度。当接收端设备的总乱序开销超出预设的阈值时,接收端设备向发送端设备发送乱序通知,使得发送端设备在发送至该接收端设备的至少一条数据流中的数据包中设置第二负载均衡策略对应的策略标记,以使网络设备基于第二负载均衡策略转发携带有第二负载均衡策略对应的策略标记的数据包。由于网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度,因此能够降低接收端设备接收的数据包的乱序程度,从而降低接收端设备的总乱序开销,避免接收端设备因处理性能不足以对数据包保序而导致出现接收端设备丢包或者对数据流限速等问题,提高了应用业务的运行可靠性。之后,发送端设备可以再调整网络设备恢复基于第一负载均衡策略转发数据包。本申请实施例通过发送端设备实现对网络设备所使用的负载均衡策略的灵活调整,利用不同负载均衡策略的优势,弥补单一负载均衡策略的缺陷,实现了应用业务运行的高可靠性,也实现了对网络的带宽资源的高利用率,有助于提升网络性能。由于整个负载均衡策略的调整机制上层应用是无感知的,因此不会影响用户体验。
在本申请的另一个实施例中,接收端设备向网络设备反馈乱序通知,以调整通信网络中的网络设备所使用的负载均衡策略。这里,接收端设备通常会向通信网络中的首跳网络设备发送乱序通知。当然也不排除接收端设备向一个或多个中间网络设备发送乱序通知的情况。例如,图5是本申请实施例提供的另一种数据传输方法的流程示意图。如图5所示,方法500包括步骤501至步骤507。该方法500可以应用于如图3所示的数据传输系统。方法500中的发送端设备可以是图3中的发送端设备301。方法500中的接收端设备可以是图3中的接收端设备302。方法500中的网络设备例如可以是图3中的网络设备303A,或者也可以是图3中的其它网络设备。
步骤501、发送端设备向网络设备发送数据包21。
可选地,数据包21携带有第一负载均衡策略对应的策略标记。或者,数据包21未携带有任何负载均衡策略对应的策略标记。
步骤502、网络设备基于第一负载均衡策略向接收端设备发送数据包21。
上述步骤501至步骤502也即是,网络设备基于第一负载均衡策略转发发送端设备向接收端设备发送的数据包。
步骤503、接收端设备监测接收到的发生乱序的数据流对应的乱序开销。
上述步骤501至步骤503的实现过程可参考上述步骤401至步骤403的相关实现过程,本申请实施例在此不再赘述。
步骤504、当接收端设备确定第一乱序开销超出第一阈值时,接收端设备向网络设备发送乱序通知。
可选地,接收端设备向网络设备发送乱序通知,可以是接收端设备向网络设备直接发送乱序通知,即乱序通知的目的地址为该网络设备。或者,接收端设备向网络设备发送乱序通知,也可以是接收端设备向网络设备间接发送乱序通知,即乱序通知的目的地址不为该网络设备。例如,接收端设备可以向发送端设备发送乱序通知,再由发送端设备将接收到的乱序通知转发给网络设备。
其中,接收端设备确定第一乱序开销超出第一阈值的实现方式以及乱序通知的报文内容、报文格式和报文类型均可参考上述步骤404中的相关描述,本申请实施例在此不再赘述。
可选地,在数据传输过程中,如果网络设备接收到接收端设备发送的乱序通知,则网络设备根据乱序通知,基于第二负载均衡策略转发发送端设备向接收端设备发送的后续数据包。其中,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。如果网络设备未接收到接收端设备发送的乱序通知,则网络设备继续基于第一负载均衡策略转发发送端设备向接收端设备发送的后续数据包。
可选地,网络设备根据乱序通知,基于第二负载均衡策略转发发送端设备向接收端设备发送的后续数据包的一种实现方式参考以下步骤506至步骤507。
步骤505、发送端设备向网络设备发送数据包22。
数据包22是网络设备接收到乱序通知之后接收到的数据包。可选地,数据包22携带有第一负载均衡策略对应的策略标记。或者,数据包22未携带有任何负载均衡策略对应的策略标记。此步骤505的实现过程可参考上述步骤401的实现过程,本申请实施例在此不再赘述。
步骤506、网络设备根据乱序通知,在数据包22中设置第二负载均衡策略对应的策略标记,获得数据包23。
此步骤506中,网络设备在数据包中设置第二负载均衡策略对应的策略标记的实现方式可参考上述步骤405中发送端设备在数据包中设置第二负载均衡策略对应的策略标记的实现方式,本申请实施例在此不再赘述。
步骤507、网络设备基于第二负载均衡策略向接收端设备发送数据包23。
网络设备通过向接收端设备发送携带有第二负载均衡策略对应的策略标记的数据包,以使接收到该数据包的其它网络设备基于第二负载均衡策略转发该数据包。这里的其它网络设备指的是位于接收端设备与在数据包中设置第二负载均衡策略对应的策略标记的网络设备之间的网络设备。此步骤507的实现过程可参考上述步骤407的实现过程,本申请实施例在此不再赘述。
可选地,上述步骤506至步骤507可替换为:网络设备根据乱序通知,向接收端设备发送数据包22。也即是,网络设备根据乱序通知,基于第二负载均衡策略转发发送端设备向接收端设备发送的后续数据包的另一种实现方式为,网络设备根据乱序通知,基于第二负载均衡策略将接收到的发送端设备发送的数据包直接转发至接收端设备。这种实现方式下,只有接收到接收端设备发送的乱序通知的网络设备才会将使用的第一负载均衡策略调整为第二负载均衡策略。其它网络设备可以采用例如基于最短路径的转发策略转发接收到的数据包。
可选地,上述步骤507可替换为:网络设备基于第一负载均衡策略向接收端设备发送数据包23。也即是,网络设备在接收到接收端设备发送的乱序通知之后,也可以不调整自身的负载均衡策略,而仅根据乱序通知在接收到的数据包中设置第二负载均衡策略对应的策略标记,并基于原使用的负载均衡策略(即第一负载均衡策略)转发设置有第二负载均衡策略对应的策略标记的数据包,以指示其它网络设备基于第二负载均衡策略转发该数据包。
可选地,网络设备在确定数据包22所属的数据流满足乱序控制结束条件之后,网络设备基于第一负载均衡策略转发数据包22所属的数据流中的待发送数据包至接收端设备。这里的待发送数据包指的是网络设备在确定数据包22所属的数据流满足乱序控制结束条件之后需要发送的数据包。满足乱序控制结束条件的判定方式可参考方法400示出的实施例中的相关描述,本申请实施例在此不再赘述。
在本申请实施例提供的数据传输方法中,由于网络设备基于第一负载均衡策略转发数据包时的链路负载均衡度高于网络设备基于第二负载均衡策略转发数据包时的链路负载均衡度,因此网络设备在正常情况下基于第一负载均衡策略转发数据包,以实现网络中较高的链路负载均衡度。当接收端设备的总乱序开销超出预设的阈值时,接收端设备向网络设备发送乱序通知,使得网络设备根据乱序通知基于第二负载均衡策略转发数据包。由于网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度,因此能够降低接收端设备接收的数据包的乱序程度,从而降低接收端设备的总乱序开销,避免接收端设备因处理性能不足以对数据包保序而导致出现接收端设备丢包或者对数据流限速等问题,提高了应用业务的运行可靠性。之后,网络设备再恢复为基于第一负载均衡策略转发数据包。另外,接收到乱序通知的网络设备还可以在数据包中设置第二负载均衡策略对应的策略标记,以使其它网络设备基于第二负载均衡策略转发携带有第二负载均衡策略对应的策略标记的数据包。本申请实施例中,网络设备能够灵活调整自身和/或其它网络设备所使用的负载均衡策略,利用不同负载均衡策略的优势,弥补单一负载均衡策略的缺陷,实现了应用业务运行的高可靠性,也实现了对网络的带宽资源的高利用率,有助于提升网络性能。由于整个负载均衡策略的调整机制上层应用是无感知的,因此不会影响用户体验。
本申请实施例提供的上述数据传输方法的步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内。例如,接收端设备除了可以向发送端设备或网络设备发送乱序通知以外,还可以向网络控制器等数据传输系统中的其它设备发送乱序通知,以实现对通信网络中的网络设备所使用的负载均衡策略的调整。
下面对本申请实施例涉及的虚拟装置举例说明。
例如,图6是本申请实施例提供的一种发送端设备的结构示意图。具有图6所示结构的发送端设备实现上述方法400涉及的实施例中发送端设备的功能。可选地,图6所示的发送端设备为图3所示的数据传输系统中的发送端设备301。如图6所示,发送端设备600包括发送模块601、接收模块602和处理模块603。
发送模块601,用于通过网络设备基于第一负载均衡策略转发数据包至接收端设备。
接收模块602,用于在数据传输过程中,接收接收端设备发送的乱序通知。
处理模块603,用于根据乱序通知,在第一数据包中设置策略标记,获得第二数据包,其中,策略标记对应于第二负载均衡策略,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。
发送模块601,还用于向网络设备发送第二数据包。
这里,发送模块601、接收模块602和处理模块603的详细工作过程请参照前面方法400涉及的实施例中的描述。例如,发送模块601采用方法400中的步骤401或步骤406向网络设备发送数据包。接收模块602采用方法400中的步骤404接收来自接收端设备的乱序通知。处理模块603采用方法400中的步骤405在数据包中设置第二负载均衡策略对应的策略标记。第一数据包可以是方法400中的数据包12,第二数据包可以是方法400中的数据包13。本申请实施例在此不再重复描述。
可选地,第一负载均衡策略为以数据包为调度粒度的负载均衡策略,第二负载均衡策略为以数据流为调度粒度的负载均衡策略。
可选地,第一数据包为乱序通知中指定的数据流中的待发送数据包。或者,第一数据包为发送端设备在接收到乱序通知后开始发送至接收端设备的数据流中的待发送数据包。
可选地,处理模块603,还用于在发送模块601向网络设备发送第二数据包之后,确定第一数据包所属的数据流满足乱序控制结束条件。发送模块601,还用于通过网络设备基于第一负载均衡策略转发第一数据包所属的数据流中的待发送数据包至接收端设备。这里,处理模块603和发送模块601的详细工作过程可参考方法400中的相关描述。
可选地,第一数据包所属的数据流满足乱序控制结束条件,包括以下一种或多种:发送端设备接收到乱序通知的时长达到时长阈值;发送端设备接收到乱序通知报文之后,发送的第一数据包所属的数据流中的数据包个数达到个数阈值;发送端设备接收到乱序通知报文之后,发送的第一数据包所属的数据流中的数据包的数据量达到数据量阈值;发送端设备接收到接收端设备发送的乱序解除通知。
可选地,策略标记位于第二数据包的报文头。
例如,图7是本申请实施例提供的一种接收端设备的结构示意图。具有图7所示结构的接收端设备实现上述方法400或方法500涉及的实施例中接收端设备的功能。可选地,图7所示的接收端设备为图3所示的数据传输系统中的接收端设备302。如图7所示,接收端设备700包括处理模块701和发送模块702。可选地,接收端设备700还包括接收模块703。接收模块703用于接收网络设备发送的数据包。
处理模块701,用于监测接收到的发生乱序的数据流对应的乱序开销。
处理模块701,还用于确定第一乱序开销超出第一阈值,第一乱序开销为接收端设备在第一时刻监测到的所有发生乱序的数据流对应的乱序开销之和。
发送模块702,用于向目标设备发送乱序通知,目标设备为发送端设备或位于发送端设备与接收端设备之间的网络设备,所有发生乱序的数据流中包括发送端设备发送的数据流。
这里,处理模块701和发送模块702的详细工作过程请参照前面方法实施例中的描述。例如接收端设备700用于实现方法400涉及的实施例中接收端设备的功能时,处理模块701采用步骤403监测发生乱序的数据流对应的乱序开销并计算总乱序开销。发送模块702采用步骤404向发送端设备发送乱序通知。又例如接收端设备700用于实现方法500涉及的实施例中接收端设备的功能时,处理模块701采用步骤503监测发生乱序的数据流对应的乱序开销并计算总乱序开销。发送模块702采用步骤504向网络设备发送乱序通知。本申请实施例在此不再重复描述。
可选地,乱序通知包括一个或多个数据流标识,每个数据流标识指示发送端设备发送的一条数据流。其中,乱序通知中的一个或多个数据流标识所指示的数据流属于接收端设备在第一时刻监测到的所有发生乱序的数据流中对应的乱序开销最大的一条或多条数据流。
可选地,处理模块701,还用于在发送模块向目标设备发送乱序通知之后,确定第二乱序开销低于第二阈值。第二乱序开销为接收端设备在第二时刻监测到的所有发生乱序的数据流对应的乱序开销之和,其中,第二时刻为发送模块向目标设备发送乱序通知之后的时刻,第二阈值小于或等于第一阈值。发送模块702,还用于向目标设备发送乱序解除通知。这里,处理模块701和发送模块702的详细工作过程可参考方法400或方法500中的相关描述。
例如,图8是本申请实施例提供的一种网络设备的结构示意图。具有图8所示结构的网络设备实现上述方法400涉及的实施例中网络设备的功能。可选地,图8所示的网络设备为图3所示的数据传输系统中的任一网络设备303。如图8所示,网络设备800包括接收模块801和发送模块802。
接收模块801,用于接收发送端设备发送的第一数据包。
发送模块802,用于基于第一负载均衡策略向接收端设备发送第一数据包。
接收模块801,还用于接收发送端设备发送的第二数据包,第二数据包携带有策略标记,其中,策略标记对应于第二负载均衡策略,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。
发送模块802,还用于根据策略标记基于第二负载均衡策略向接收端设备发送第二数据包。
这里,接收模块801和发送模块802的详细工作过程请参照前面方法400涉及的实施例中的描述。例如,接收模块801采用方法400中的步骤401或步骤406接收发送端设备发送的数据包。发送模块802采用方法400中的步骤402或步骤407向接收端设备发送数据包。第一数据包可以是方法400中的数据包11,第二数据包可以是方法400中的数据包13。本申请实施例在此不再重复描述。
例如,图9是本申请实施例提供的另一种网络设备的结构示意图。具有图9所示结构的网络设备实现上述方法500涉及的实施例中网络设备的功能。可选地,图9所示的网络设备为图3所示的数据传输系统中的任一网络设备303。如图9所示,网络设备900包括第一接收模块901、发送模块902和第二接收模块903。可选地,网络设备900还包括处理模块904。
第一接收模块901,用于接收发送端设备发送的第一数据包。
发送模块902,用于基于第一负载均衡策略向接收端设备发送第一数据包。
第二接收模块903,用于在数据传输过程中,接收接收端设备发送的乱序通知。
第一接收模块901,还用于接收发送端设备发送的第二数据包;
发送模块902,还用于根据乱序通知,基于第二负载均衡策略向接收端设备发送第三数据包,第三数据包基于第二数据包得到,其中,网络设备基于第二负载均衡策略转发的数据包到达接收端设备的乱序程度低于网络设备基于第一负载均衡策略转发的数据包到达接收端设备的乱序程度。
这里,第一接收模块901、发送模块902和第二接收模块903的详细工作过程请参照前面方法500涉及的实施例中的描述。例如,第一接收模块901采用方法500中的步骤501或步骤505接收发送端设备发送的数据包。发送模块902采用方法500中的步骤502或步骤507向接收端设备发送数据包。第一数据包可以是方法500中的数据包21,第二数据包可以是方法500中的数据包22,第三数据包可以是方法500中的数据包23。本申请实施例在此不再重复描述。
可选地,处理模块904,用于根据乱序通知,在第二数据包中设置策略标记,获得第三数据包,其中,策略标记对应于第二负载均衡策略。这里,处理模块904的详细工作过程可参考方法500中的步骤506的相关描述。
下面对本申请实施例涉及的基本硬件结构举例说明。
例如,图10是本申请实施例提供的一种网络设备的硬件结构示意图。如图10所示,网络设备1000包括处理器1001、转发芯片1002和至少一个网络接口1003。可选地,结合图3来看,图10中的网络设备1000是图3所示的网络设备303。
可选地,处理器1001包括中央处理器(central processing unit,CPU)和/或专用硬件芯片。CPU是指通用的CPU,其扩展性和灵活性较高。CPU例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。专用硬件芯片是一个高性能处理的硬件模块。专用硬件芯片包括专用集成电路(application-specific integrated circuit,ASIC)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)或者网络处理器(network processer,NP)中的至少一项。
转发芯片1002用于进行数据转发。例如,转发芯片1002用于转发发送端设备向接收端设备发送的数据包。
至少一个网络接口1003例如包括图10中的网络接口1、网络接口2、网络接口3……网络接口n。网络接口1003使用任何收发器一类的装置,用于与其它设备或通信网络通信。例如,图10中的网络接口1与发送端设备通信,图10中的网络接口2与其它网络设备通信。可选地,网络接口1003包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线受保护网络(wireless local area networks,WLAN)接口,蜂窝网络接口或其组合等。
至少一个网络接口1003与转发芯片1002之间,以及转发芯片1002与处理器1001之间通过内部连接1004相连。内部连接1004包括一通路,在网络接口1003、转发芯片1002与处理器1001之间传输数据。可选的,内部连接1004是单板或总线。例如,内部连接1004为以太网、光纤信道(fibre channel)、PCI-E(peripheral component interconnect express,PCI Express,一种高速串行计算机总线)、RapidIO(一种高性能、低引脚数、基于数据包交换的互连体系结构)、无限带宽(InfiniBand)或XAUI总线(一个接口扩展器,特点是把以太网媒体访问控制(Media Access Control,MAC)层与物理层相连)。
可选地,网络设备1000还包括内容可寻址存储器(content addressable memory,CAM)1005。CAM 1005例如是三态内容寻址存储器(ternary content addressable memory,TCAM)等。可选地,CAM 1005独立存在,并通过上述内部连接1004与转发芯片1002相连接。或者,CAM 1005和转发芯片1002集成在一起,即CAM 1005作为转发芯片1002内部的存储器。
可选地,网络设备1000还包括存储器1006。存储器1006例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-onlyMemory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码1008并能够由计算机存取的任何其它介质,但不限于此。例如存储器1006用于存放出端口队列等。存储器1006例如是独立存在,并通过内部连接1004与处理器1001相连接。或者存储器1006和处理器1001集成在一起。
存储器1006中存储有操作系统1007和程序代码1008。可选地,处理器1001从存储器1006中读取操作系统1007并运行该操作系统1007,处理器1001还从存储器1006读取程序代码1008,通过在该操作系统1007上运行该程序代码1008实现本申请实施例提供的上述方法中网络设备执行的动作。
可选地,上述器件分别设置在彼此独立的芯片上,或者至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本申请实施例对上述器件的具体实现形式不做限定。
例如,图11是本申请实施例提供的一种计算机设备的硬件结构示意图。该计算机设备可以是发送端设备或接收端设备。如图11所示,计算机设备1100包括处理器1101和存储器1102,存储器1101与存储器1102通过总线1103连接。图11以处理器1101和存储器1102相互独立说明。可选地,处理器1101和存储器1102集成在一起。可选地,结合图3来看,图11中的计算机设备1100是图3所示的发送端设备301或接收端设备302。
其中,存储器1102用于存储计算机程序,计算机程序包括操作系统和程序代码。存储器1102是各种类型的存储介质,例如ROM、RAM、EEPROM、CD-ROM、闪存、光存储器、寄存器、光盘存储、光碟存储、磁盘或者其它磁存储设备。
其中,处理器1101是通用处理器或专用处理器。处理器1101可能是单核处理器或多核处理器。处理器1101包括至少一个电路,以执行本申请实施例提供的上述方法中发送端设备或接收端设备执行的动作。
可选地,计算机设备1100还包括网络接口1104,网络接口1104通过总线1103与处理器1101和存储器1102连接。网络接口1104使用任何收发器一类的装置,用于与其它设备或通信网络通信。可选地,处理器1101、存储器1102和网络接口1104集成在网卡上。发送端设备的处理器1101例如可以用于在数据包中设置策略标记。接收端设备的处理器1101例如可以用于监测数据流的乱序开销,并在存储器1102中记录数据流中哪些数据包发生了乱序。
可选地,计算机设备1100还包括输入/输出(input/output,I/O)接口1105,I/O接口1105通过总线1103与处理器1101和存储器1102连接。处理器1101能够通过I/O接口1105接收输入的命令或数据等。I/O接口1105用于计算机设备1100连接输入设备,这些输入设备例如是键盘、鼠标等。可选地,在一些可能的场景中,上述网络接口1104和I/O接口1105被统称为通信接口。
可选地,计算机设备1100还包括显示器1106,显示器1106通过总线1103与处理器1101和存储器1102连接。显示器1106能够用于显示应用信息等。在一种可能的实现方式中,显示器1106是触控显示屏,以提供人机交互接口。
其中,总线1103是任何类型的,用于实现计算机设备1100的内部器件互连的通信总线。例如系统总线。本申请实施例以计算机设备1100内部的上述器件通过总线1103互连为例说明,可选地,计算机设备1100内部的上述器件采用除了总线1103之外的其他连接方式彼此通信连接,例如计算机设备1100内部的上述器件通过计算机设备1100内部的逻辑接口互连。
上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本申请实施例对上述器件的具体实现形式不做限定。
图11所示的计算机设备1100仅仅是示例性的,在实现过程中,计算机设备1100包括其他组件,本文不再一一列举。图11所示的计算机设备1100可以通过执行上述实施例提供的方法中发送端设备和/或接收端设备执行的全部或部分步骤。
本申请实施例还提供了一种数据传输系统。一种可能实现方式,数据传输系统包括如图6所示的发送端设备600,如图8所示的网络设备800和如图7所示的接收端设备700。另一种可能实现方式,数据传输系统包括发送端设备,如图9所示的网络设备900和如图7所示的接收端设备700,其中,发送端设备用于向网络设备发送数据包。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被发送端设备的处理器执行时,实现上述方法400或方法500中发送端设备执行的步骤。或者,当所述指令被接收端设备的处理器执行时,实现上述方法400或方法500中接收端设备执行的步骤。又或者,当所述指令被网络设备的处理器执行时,实现上述方法400或方法500中网络设备执行的步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被发送端设备的处理器执行时,实现上述方法400或方法500中发送端设备执行的步骤。或者,所述计算机程序被接收端设备的处理器执行时,实现上述方法400或方法500中接收端设备执行的步骤。又或者,当所述计算机程序被网络设备的处理器执行时,实现上述方法400或方法500中网络设备执行的步骤。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的数据包、乱序通知都是在充分授权的情况下获取的。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (27)

1.一种数据传输方法,其特征在于,应用于数据传输系统,所述数据传输系统包括发送端设备,网络设备和接收端设备,所述方法包括:
所述发送端设备通过所述网络设备基于第一负载均衡策略转发数据包至所述接收端设备;
在数据传输过程中,所述发送端设备接收所述接收端设备发送的乱序通知;
所述发送端设备根据所述乱序通知,在第一数据包中设置策略标记,获得第二数据包,其中,所述策略标记对应于第二负载均衡策略,所述网络设备基于所述第二负载均衡策略转发的数据包到达所述接收端设备的乱序程度低于所述网络设备基于所述第一负载均衡策略转发的数据包到达所述接收端设备的乱序程度;
所述发送端设备向所述网络设备发送所述第二数据包,以使所述网络设备基于所述第二负载均衡策略转发所述第二数据包。
2.根据权利要求1所述的方法,其特征在于,所述第一负载均衡策略为以数据包为调度粒度的负载均衡策略,所述第二负载均衡策略为以数据流为调度粒度的负载均衡策略。
3.根据权利要求1或2所述的方法,其特征在于,在所述发送端设备接收所述接收端设备发送的乱序通知之前,所述方法还包括:
所述接收端设备监测接收到的发生乱序的数据流对应的乱序开销;
所述接收端设备确定第一乱序开销超出第一阈值,所述第一乱序开销为所述接收端设备在第一时刻监测到的所有发生乱序的数据流对应的乱序开销之和,其中,所述第一时刻为所述接收端设备向所述发送端设备发送所述乱序通知之前的时刻,所述所有发生乱序的数据流中包括所述发送端设备发送的数据流。
4.根据权利要求3所述的方法,其特征在于,所述乱序通知包括一个或多个数据流标识,每个数据流标识指示所述发送端设备发送的一条数据流,其中,所述一个或多个数据流标识所指示的数据流属于所述接收端设备在所述第一时刻监测到的所有发生乱序的数据流中对应的乱序开销最大的一条或多条数据流。
5.根据权利要求3或4所述的方法,其特征在于,在所述发送端设备接收所述接收端设备发送的乱序通知之后,所述方法还包括:
所述接收端设备确定第二乱序开销低于第二阈值,所述第二乱序开销为所述接收端设备在第二时刻监测到的所有发生乱序的数据流对应的乱序开销之和,其中,所述第二时刻为所述接收端设备向所述发送端设备发送所述乱序通知之后的时刻,所述第二阈值小于或等于所述第一阈值;
所述接收端设备向所述发送端设备发送乱序解除通知。
6.根据权利要求1至5任一所述的方法,其特征在于,所述第一数据包为所述乱序通知中指定的数据流中的待发送数据包,或者,所述第一数据包为所述发送端设备在接收到所述乱序通知后开始发送至所述接收端设备的数据流中的待发送数据包。
7.根据权利要求1至6任一所述的方法,其特征在于,在所述发送端设备向所述网络设备发送所述第二数据包之后,所述方法还包括:
所述发送端设备确定所述第一数据包所属的数据流满足乱序控制结束条件;
所述发送端设备通过所述网络设备基于所述第一负载均衡策略转发所述第一数据包所属的数据流中的待发送数据包至所述接收端设备。
8.根据权利要求7所述的方法,其特征在于,所述第一数据包所属的数据流满足乱序控制结束条件,包括以下一种或多种:
所述发送端设备接收到所述乱序通知的时长达到时长阈值;
所述发送端设备接收到所述乱序通知报文之后,发送的所述第一数据包所属的数据流中的数据包个数达到个数阈值;
所述发送端设备接收到所述乱序通知报文之后,发送的所述第一数据包所属的数据流中的数据包的数据量达到数据量阈值;
所述发送端设备接收到所述接收端设备发送的乱序解除通知。
9.根据权利要求1至8任一所述的方法,其特征在于,所述策略标记位于所述第二数据包的报文头。
10.一种数据传输方法,其特征在于,应用于数据传输系统,所述数据传输系统包括发送端设备,网络设备和接收端设备,所述方法包括:
所述网络设备基于第一负载均衡策略转发所述发送端设备向所述接收端设备发送的数据包;
在数据传输过程中,所述网络设备接收所述接收端设备发送的乱序通知;
所述网络设备根据所述乱序通知,基于第二负载均衡策略转发所述发送端设备向所述接收端设备发送的数据包,其中,所述网络设备基于所述第二负载均衡策略转发的数据包到达所述接收端设备的乱序程度低于所述网络设备基于所述第一负载均衡策略转发的数据包到达所述接收端设备的乱序程度。
11.根据权利要求10所述的方法,其特征在于,在所述网络设备基于第二负载均衡策略转发所述发送端设备向所述接收端设备发送的数据包之前,所述方法还包括:
所述网络设备根据所述乱序通知,在接收到的所述发送端设备发送的第二数据包中设置策略标记,获得第三数据包,其中,所述策略标记对应于所述第二负载均衡策略;
所述网络设备基于第二负载均衡策略转发所述发送端设备向所述接收端设备发送的数据包,包括:
所述网络设备基于所述第二负载均衡策略向所述接收端设备发送所述第三数据包。
12.一种发送端设备,其特征在于,包括:
发送模块,用于通过网络设备基于第一负载均衡策略转发数据包至接收端设备;
接收模块,用于在数据传输过程中,接收所述接收端设备发送的乱序通知;
处理模块,用于根据所述乱序通知,在第一数据包中设置策略标记,获得第二数据包,其中,所述策略标记对应于第二负载均衡策略,所述网络设备基于所述第二负载均衡策略转发的数据包到达所述接收端设备的乱序程度低于所述网络设备基于所述第一负载均衡策略转发的数据包到达所述接收端设备的乱序程度;
所述发送模块,还用于向所述网络设备发送所述第二数据包。
13.根据权利要求12所述的发送端设备,其特征在于,所述第一负载均衡策略为以数据包为调度粒度的负载均衡策略,所述第二负载均衡策略为以数据流为调度粒度的负载均衡策略。
14.根据权利要求12或13所述的发送端设备,其特征在于,所述第一数据包为所述乱序通知中指定的数据流中的待发送数据包,或者,所述第一数据包为所述发送端设备在接收到所述乱序通知后开始发送至所述接收端设备的数据流中的待发送数据包。
15.根据权利要求12至14任一所述的发送端设备,其特征在于,
所述处理模块,还用于在所述发送模块向所述网络设备发送所述第二数据包之后,确定所述第一数据包所属的数据流满足乱序控制结束条件;
所述发送模块,还用于通过所述网络设备基于所述第一负载均衡策略转发所述第一数据包所属的数据流中的待发送数据包至所述接收端设备。
16.根据权利要求15所述的发送端设备,其特征在于,所述第一数据包所属的数据流满足乱序控制结束条件,包括以下一种或多种:
所述发送端设备接收到所述乱序通知的时长达到时长阈值;
所述发送端设备接收到所述乱序通知报文之后,发送的所述第一数据包所属的数据流中的数据包个数达到个数阈值;
所述发送端设备接收到所述乱序通知报文之后,发送的所述第一数据包所属的数据流中的数据包的数据量达到数据量阈值;
所述发送端设备接收到所述接收端设备发送的乱序解除通知。
17.根据权利要求12至16任一所述的发送端设备,其特征在于,所述策略标记位于所述第二数据包的报文头。
18.一种接收端设备,其特征在于,包括:
处理模块,用于监测接收到的发生乱序的数据流对应的乱序开销;
所述处理模块,还用于确定第一乱序开销超出第一阈值,所述第一乱序开销为所述接收端设备在第一时刻监测到的所有发生乱序的数据流对应的乱序开销之和;
发送模块,用于向目标设备发送乱序通知,所述目标设备为发送端设备或位于发送端设备与所述接收端设备之间的网络设备,所述所有发生乱序的数据流中包括所述发送端设备发送的数据流。
19.根据权利要求18所述的接收端设备,其特征在于,所述乱序通知包括一个或多个数据流标识,每个数据流标识指示所述发送端设备发送的一条数据流,其中,所述一个或多个数据流标识所指示的数据流属于所述接收端设备在所述第一时刻监测到的所有发生乱序的数据流中对应的乱序开销最大的一条或多条数据流。
20.根据权利要求18或19所述的接收端设备,其特征在于,
所述处理模块,还用于在所述发送模块向所述目标设备发送所述乱序通知之后,确定第二乱序开销低于第二阈值,所述第二乱序开销为所述接收端设备在第二时刻监测到的所有发生乱序的数据流对应的乱序开销之和,其中,所述第二时刻为所述发送模块向所述目标设备发送所述乱序通知之后的时刻,所述第二阈值小于或等于所述第一阈值;
所述发送模块,还用于向所述目标设备发送乱序解除通知。
21.一种网络设备,其特征在于,包括:
接收模块,用于接收发送端设备发送的第一数据包;
发送模块,用于基于第一负载均衡策略向接收端设备发送所述第一数据包;
所述接收模块,还用于接收所述发送端设备发送的第二数据包,所述第二数据包携带有策略标记,其中,所述策略标记对应于第二负载均衡策略,所述网络设备基于所述第二负载均衡策略转发的数据包到达所述接收端设备的乱序程度低于所述网络设备基于所述第一负载均衡策略转发的数据包到达所述接收端设备的乱序程度;
所述发送模块,还用于根据所述策略标记基于所述第二负载均衡策略向所述接收端设备发送所述第二数据包。
22.一种网络设备,其特征在于,包括:
第一接收模块,用于接收发送端设备发送的第一数据包;
发送模块,用于基于第一负载均衡策略向接收端设备发送所述第一数据包;
第二接收模块,用于在数据传输过程中,接收所述接收端设备发送的乱序通知;
所述第一接收模块,还用于接收所述发送端设备发送的第二数据包;
所述发送模块,还用于根据所述乱序通知,基于第二负载均衡策略向所述接收端设备发送第三数据包,所述第三数据包基于所述第二数据包得到,其中,所述网络设备基于所述第二负载均衡策略转发的数据包到达所述接收端设备的乱序程度低于所述网络设备基于所述第一负载均衡策略转发的数据包到达所述接收端设备的乱序程度。
23.根据权利要求22所述的网络设备,其特征在于,所述网络设备还包括:处理模块;
所述处理模块,用于根据所述乱序通知,在所述第二数据包中设置策略标记,获得所述第三数据包,其中,所述策略标记对应于所述第二负载均衡策略。
24.一种数据传输系统,其特征在于,包括:发送端设备,网络设备和接收端设备;
所述发送端设备为如权利要求12至17任一所述的发送端设备,所述网络设备为如权利要求21所述的网络设备,所述接收端设备为如权利要求18至20任一所述的接收端设备;
或者,所述发送端设备用于通过网络设备转发数据包至所述接收端设备,所述网络设备为如权利要求22或23所述的网络设备,所述接收端设备为如权利要求18至20任一所述的接收端设备。
25.一种数据传输装置,其特征在于,包括:处理器和收发器;
所述处理器,用于调用计算机程序,协同所述收发器实现如权利要求1至11任一所述的方法中发送端设备、接收端设备或网络设备执行的动作。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现如权利要求1至11任一所述的方法中发送端设备、接收端设备或网络设备执行的动作。
27.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至11任一所述的方法中发送端设备、接收端设备或网络设备执行的动作。
CN202210302670.3A 2022-03-24 2022-03-24 数据传输方法、装置及系统 Pending CN116846834A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210302670.3A CN116846834A (zh) 2022-03-24 2022-03-24 数据传输方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210302670.3A CN116846834A (zh) 2022-03-24 2022-03-24 数据传输方法、装置及系统

Publications (1)

Publication Number Publication Date
CN116846834A true CN116846834A (zh) 2023-10-03

Family

ID=88171229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210302670.3A Pending CN116846834A (zh) 2022-03-24 2022-03-24 数据传输方法、装置及系统

Country Status (1)

Country Link
CN (1) CN116846834A (zh)

Similar Documents

Publication Publication Date Title
US10243865B2 (en) Combined hardware/software forwarding mechanism and method
EP3278514B1 (en) Data transmission
CN108259383B (zh) 一种数据的传输方法和网络设备
US8755405B2 (en) Burst packet scheduler for improved ran efficiency in UMTS/HSPA networks
CN109691037B (zh) 用于数据中心负载均衡的方法和系统
CN110943933B (zh) 一种实现数据传输的方法、装置和系统
Fang et al. A loss-free multipathing solution for data center network using software-defined networking approach
US9642156B2 (en) Transmitting radio node and method therein for scheduling service data flows
CN108234309B (zh) 一种网络数据的传输方法
US9635148B2 (en) Partitioning data sets for transmission on multiple physical links
CN110944358B (zh) 数据传输方法和设备
US8989011B2 (en) Communication over multiple virtual lanes using a shared buffer
Irazabal et al. Active queue management as quality of service enabler for 5G networks
US20220321482A1 (en) System and method for accelerating or decelerating a data transport network protocol based on real time transport network congestion conditions
CN107846341B (zh) 调度报文的方法、相关装置和系统
US11863322B2 (en) Communication method and apparatus
CN111585911B (zh) 数据中心网络流量负载的均衡方法
EP3125472A1 (en) Telecommunication system, method and computer readable medium to control how a transmission of packets of a data flow is realized
US20230142425A1 (en) Virtual dual queue core stateless active queue management (agm) for communication networks
CN109995608B (zh) 网络速率计算方法和装置
CN116506365B (zh) 一种多网络出口智能负载均衡方法、系统及存储介质
US9426086B2 (en) Sub flow based queueing management
CN114095448A (zh) 一种拥塞流的处理方法及设备
CN116846834A (zh) 数据传输方法、装置及系统
CN111756557B (zh) 一种数据传输方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination