CN109412958A - 数据中心的拥塞控制方法和装置 - Google Patents

数据中心的拥塞控制方法和装置 Download PDF

Info

Publication number
CN109412958A
CN109412958A CN201710711896.8A CN201710711896A CN109412958A CN 109412958 A CN109412958 A CN 109412958A CN 201710711896 A CN201710711896 A CN 201710711896A CN 109412958 A CN109412958 A CN 109412958A
Authority
CN
China
Prior art keywords
congestion
stream
ack message
rwnd
length
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.)
Granted
Application number
CN201710711896.8A
Other languages
English (en)
Other versions
CN109412958B (zh
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 CN201710711896.8A priority Critical patent/CN109412958B/zh
Priority to PCT/CN2018/098365 priority patent/WO2019033932A1/zh
Publication of CN109412958A publication Critical patent/CN109412958A/zh
Application granted granted Critical
Publication of CN109412958B publication Critical patent/CN109412958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • 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
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets

Landscapes

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

Abstract

本申请实施例提供一种数据中心的拥塞控制方法和装置。其中,方法包括获取ACK报文,判断ACK报文中是否携带拥塞标识,若ACK报文中不携带拥塞标识,则根据ACK报文对应的流的标准权重值更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1,将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。本申请实施例提供的数据中心的拥塞控制方法,当网络不拥塞时,根据ACK报文对应的流的带宽分配比例调整流的拥塞窗口长度,拥塞窗口调整的更为准确和合理,提升了数据中心的流量控制和拥塞控制的准确性。

Description

数据中心的拥塞控制方法和装置
技术领域
本申请实施例涉及网络技术领域,尤其涉及一种数据中心的拥塞控制方法和装置。
背景技术
近年来,云计算数据中心技术得到了快速的发展,成千上万台服务器节点在数据中心中组成集群。节点的计算、存储、网络等资源被抽象以服从统一的管理,并提供单台服务器无法比拟的服务能力。云数据中心已经成为用于支持数据存储、部署多样化的网络服务和应用的最有效、最有前景的基础设施。
公共云数据中心由多租户租赁和共享一个共同的物理基础设施来运行他们的虚拟机(Virtual Machine,VM)工作负载,租户可以无缝地将其应用程序和服务移植到云中。虚拟机技术使得一组不同的软件能够在统一的底层框架上运行。但是,不同的虚拟机具有不同的传输控制协议(Transmission Control Protocol,TCP)协议栈,这些TCP版本可能依赖于不同的拥塞信号施加不同的拥塞控制算法,导致虚拟机不能和谐地共享物理基础设施。为了解决该问题,提出了虚拟拥塞控制(Virtual Congestion Control,VCC)算法。VCC算法利用所有流量都需要通过公共云数据中心的管理程序(hypervisors)的特性,通过管理程序中的转换层(translation layer)确保整个数据中心使用单个最佳拥塞控制算法。同时给不同的租户他仍然保持使用自己的拥塞控制算法的幻觉。即,租户拥塞控制算法是被覆盖的算法,管理程序将其转换为在数据中心网络中使用的底层算法,从而实现在整个数据中心执行统一的拥塞控制规则。目前常用的VCC算法包括管理员控制网络(Administrator Control over Datacenter,AC/DC)算法。AC/DC算法可以根据用户的流的优先级逐流分配带宽。
但是,AC/DC算法只能定性的逐流分配带宽,导致数据中心的流量控制准确性较低。
发明内容
本申请实施例提供一种数据中心的拥塞控制方法和装置,提升了数据中心的流量控制和拥塞控制的准确性。
第一方面,本申请实施例提供一种数据中心的拥塞控制方法,该方法包括:获取ACK报文;判断ACK报文中是否携带拥塞标识;若ACK报文中不携带拥塞标识,则根据ACK报文对应的流的标准权重值wk,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1;将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
通过第一方面提供的数据中心的拥塞控制方法,当ACK报文中没有携带拥塞标识时,根据ACK报文对应的流的带宽分配比例调整流的拥塞窗口长度,使得拥塞窗口调整的更为准确,带宽分配更为合理。在网络流量收敛到稳定状态后,每个流的拥塞窗口均与流的标准权重值成正比,提升了每个流的流量控制的准确性,进而提升了数据中心的流量控制和拥塞控制的准确性。
可选的,在第一方面的一种可能的实施方式中,根据ACK报文对应的流的标准权重值wk,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1,包括:采用cwnd1=cwnd+wk,i/cwnd计算第一拥塞窗口长度cwnd1。
可选的,在第一方面的一种可能的实施方式中,还包括:若ACK报文中携带拥塞标识,则判断ACK报文对应的流的拥塞窗口长度在当前RTT内是否进行过减小处理;若ACK报文对应的流的拥塞窗口长度在当前RTT内没有进行过减小处理,则将ACK报文对应的流的拥塞窗口长度更新为第二拥塞窗口长度cwnd2,cwnd2=cwnd×(1-α/2);将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd2,rwnd)。
通过该可能的实施方式提供的数据中心的拥塞控制方法,当网络拥塞时,每个RTT仅减小一次流的拥塞窗口,避免了拥塞窗口的过度减小导致网络流量降低。同时逐流降低了发送端的发送速度,避免了更严重的网络拥塞,提升了数据中心的流量控制的准确性。
可选的,在第一方面的一种可能的实施方式中,α满足α=(1-g)×α*+g×F,g为小于1的预设正数,α*表示上一个RTT内的网络拥塞程度,F表示上一个RTT内携带有拥塞标识的ACK报文占上一个RTT内所有ACK报文的比例。
可选的,在第一方面的一种可能的实施方式中,还包括:根据预设周期获取数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk;根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i;采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
通过该可能的实施方式提供的数据中心的拥塞控制方法,可以定期更新数据中心中每个用户每个流对应的标准权重值,提升了网络不拥塞时根据流的标准权重值更新拥塞窗口的实时性和准确性。
可选的,在第一方面的一种可能的实施方式中,根据ACK报文对应的流的标准权重值wk,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1之前,还包括:若ACK报文对应的流的标准权重值不存在,则将流的标准权重值设置为1。
可选的,在第一方面的一种可能的实施方式中,拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
第二方面,本申请实施例提供一种数据中心的拥塞控制装置,该装置包括获取模块、判断模块、拥塞窗口更新模块和接收窗口调整模块。获取模块用于获取ACK报文;判断模块用于判断ACK报文中是否携带拥塞标识;拥塞窗口更新模块用于在判断模块确定ACK报文中不携带拥塞标识时,根据ACK报文对应的流的标准权重值更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1;接收窗口调整模块用于将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
可选的,在第二方面的一种可能的实施方式中,拥塞窗口更新模块具体用于:采用cwnd1=cwnd+wk,i/cwnd计算第一拥塞窗口长度cwnd1。
可选的,在第二方面的一种可能的实施方式中,拥塞窗口更新模块还用于:在判断模块确定ACK报文中携带拥塞标识时,判断ACK报文对应的流的拥塞窗口长度在当前RTT内是否进行过减小处理;若ACK报文对应的流的拥塞窗口长度在当前RTT内没有进行过减小处理,则将ACK报文对应的流的拥塞窗口长度更新为第二拥塞窗口长度cwnd2,cwnd2=cwnd×(1-α/2),接收窗口调整模块还用于,将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd2,rwnd)。
可选的,在第二方面的一种可能的实施方式中,α满足α=(1-g)×α*+g×F,g为小于1的预设正数,α*表示上一个RTT内的网络拥塞程度,F表示上一个RTT内携带有拥塞标识的ACK报文占上一个RTT内所有ACK报文的比例。
可选的,在第二方面的一种可能的实施方式中,还包括权值更新模块,权值更新模块用于:根据预设周期获取数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk;根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i;采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
可选的,在第二方面的一种可能的实施方式中,拥塞窗口更新模块还用于:若ACK报文对应的流的标准权重值不存在,则将流的标准权重值设置为1。
可选的,在第二方面的一种可能的实施方式中,拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
第三方面,本申请实施例提供一种数据中心的拥塞控制设备,该设备包括处理器和存储器,存储器用于存储指令,处理器用于执行存储器中存储的指令,以使该设备执行上述第一方面的方法。
结合上述第一方面以及第一方面的各可能的实施方式、第二方面以及第二方面的各可能的实施方式、第三方面以及第三方面的各可能的实施方式,数据中心中每个用户对应有总权重值sk,k≥1,sk为正数,用户k的流集合Fk中每个流fk,i对应有权重值tk,i,i≥1,tk,i为正数且wk,i=tk,i/tmax,tmax为所有用户的所有流对应的权重值中的最大值,cwnd表示根据与流对应的上一个ACK报文更新后的流的拥塞窗口长度,α表示当前RTT内的网络拥塞程度。
第四方面,本申请实施例提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现第一方面任一项所述的方法。
第五方面,本申请实施例提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。数据中心的拥塞控制设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得该设备实施第一方面的各种实施方式提供的方法。
本申请实施例提供一种数据中心的拥塞控制方法和装置。当ACK报文中没有携带拥塞标识时,根据ACK报文对应的流的带宽分配比例调整流的拥塞窗口长度,使得拥塞窗口调整的更为准确,带宽分配更为合理。在网络流量收敛到稳定状态后,每个流的拥塞窗口均与流的标准权重值成正比,提升了每个流的流量控制的准确性,进而提升了数据中心的流量控制和拥塞控制的准确性。
附图说明
图1为本申请实施例一提供的数据中心的拥塞控制方法的流程图;
图2为本申请实施例二提供的数据中心的拥塞控制方法的流程图;
图3为本申请实施例适用的系统架构图;
图4为本申请实施例三提供的数据中心的拥塞控制方法的消息交互图;
图5为本申请实施例四提供的数据中心的拥塞控制方法的消息交互图;
图6为本申请实施例一提供的数据中心的拥塞控制装置的结构示意图;
图7为本申请实施例一提供的数据中心的拥塞控制设备的结构示意图。
具体实施方式
本申请实施例提供的数据中心的拥塞控制方法,可以应用于数据中心的虚拟拥塞控制。用以解决现有技术中只能定性的逐流分配带宽导致数据中心的流量控制准确性低的技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本申请实施例一提供的数据中心的拥塞控制方法的流程图。本申请实施例提供的数据中心的拥塞控制方法,执行主体可以为数据中心的拥塞控制装置,该拥塞控制装置可以为数据中心服务器或者设置在数据中心服务器上的软件和/或硬件。如图1所示,本实施例提供的数据中心的拥塞控制方法,可以包括:
S101、获取ACK报文。
在传输控制协议/因特网互联协议(Transmission Control Protocol/InternetProtocol,TCP/IP)中,发送方向接收方发送了数据报文,如果接收方成功接收到数据报文,则会向发送方回复一个确认(Acknowledgement,ACK)报文。
通常,ACK报文具有自己固定的报文格式和长度大小。本实施例对于ACK报文的报文格式和长度大小不做特别限定,只要符合传输协议即可。例如,ACK报文中可以携带RWND字段。RWND(receiver window)字段表示接收窗口,指示了接收方通知给发送方的接收窗口长度,用于发送方确定发送窗口。发送窗口是指发送方向网络中一次连续写入的数据量,发送窗口影响着网络流量。
S102、判断ACK报文中是否携带拥塞标识。
如果ACK报文中携带拥塞标识,则执行S103~S104。
其中,拥塞标识用于指示网络发生拥塞。
需要说明,本实施例对于拥塞标识的实现方式不做限定,可以采用现有的任意一种拥塞控制机制确定的拥塞标识。例如,拥塞标识可以为一个字段,该字段可以具有确切的取值,也可以不具有确切的取值。当ACK报文中包括该字段时,ACK报文携带拥塞标识,说明此时网络拥塞。当ACK报文中不包括该字段时,ACK报文不携带拥塞标识,说明此时网络不拥塞。又例如,拥塞标识可以为ACK报文中必须包括的一个字段,该字段取值不同时可以指示网络是否拥塞。具体的,当该字段的取值为第一数值时,ACK报文携带拥塞标识,说明此时网络拥塞。当该字段的取值为第二数值时,ACK报文不携带拥塞标识,说明此时网络不拥塞。本实施例对于第一数值和第二数值的取值不做限定。
可选的,拥塞标识可以为采用显示拥塞通告(Explicit CongestionNotification,ECN)算法标记的拥塞标识。
ECN算法是国际互联网工程任务组(The Internet Engineering Task Force,IETF)定义的一种拥塞控制机制。发送方与接收方之间开始数据传输之前首先进行ECN协商,若两方都支持ECN机制,发送方在向接收方发送数据时就会将ECN位设置为ECN使能。当网络中的路由器或者交换机发生拥塞时,路由器或者交换机将对数据包进行拥塞标记,并对标记的数据包进行转发,而非丢弃。当接收方接收到具有拥塞标记的数据包时就能够判断出网络中发生了拥塞。其中,判断是否发生拥塞存在多种判断方式。例如,当新的数据包到达交换机时,交换机将其放入目标端口队列。若此时该队列的缓存占用比例超过阈值,则交换机为该数据包打上拥塞经历(Congestion Experienced,CE)标记,随后将其转发。接收方接收到带有CE标记的数据包后,在向发送方发送ACK时,将CE信息反馈给发送方。
S103、若ACK报文中不携带拥塞标识,则根据ACK报文对应的流的标准权重值wk,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1。
其中,数据中心中每个用户对应有总权重值sk,k≥1,sk为正数,用户k的流集合Fk中每个流fk,i对应有权重值tk,i,i≥1,tk,i为正数且wk,i=tk,i/tmax,tmax为所有用户的所有流对应的权重值中的最大值。
其中,拥塞窗口是流量控制中的重要概念。拥塞窗口是指发送方一次最多能够发送的数据量。通常,发送方确定的发送窗口小于或者等于拥塞窗口。
在本实施例中,数据中心有至少一个用户,每个用户有至少一个流。每个用户对应有总权重值。每个用户的每个流对应有权重值。对于一个用户来说,用户的所有流对应的权重值的和等于用户的总权重值。每个用户的每个流的权重值经过标准化处理后得到标准权重值,标准权重值的取值范围为大于0、且小于或者等于1。举例说明,假设数据中心中目前有2个用户,分别为用户A和用户B。用户A的总权重值为20。用户B的总权重值为10。用户A目前有2条流,权重值分别为10和10。用户B目前有2条流,权重值分别为5和5。两个用户共计4条流中权重值的最大值为10。则用户A的两条流对应的标准权重值为10/10=1和10/10=1。用户B的两条流对应的标准权重值为5/10=0.5和5/10=0.5。每个流对应的标准权重值反映了该流在所有流中的带宽分配比例。标准权重值越大,说明该流应当分配更多的带宽,标准权重值越小,说明该流分配较小的带宽即可。
ACK报文对应于一个确定用户的一个确定的流。当ACK报文中不携带拥塞标识时,说明此时网络不拥塞,可以增大ACK报文对应的流的拥塞窗口长度。由于每个用户的每个流都对应有标准权重值,因此,根据ACK报文对应的流的标准权重值更新该流的拥塞窗口,使得流的拥塞窗口长度与该流的标准权重值相关,提升了不同流拥塞窗口调整的准确性和合理性。由于拥塞窗口与发送方的发送窗口相关,进而控制了网络的发送流量,提升了不同流发送窗口的准确性和合理性。
需要说明的是,本实施例对于根据流的标准权重值更新流的拥塞窗口长度的具体调整方式不做限定,可以根据需要设置。例如,根据流的标准权重值加法增加流的拥塞窗口长度,或者,根据流的标准权重值乘法增加流的拥塞窗口长度。
可选的,作为一种实现方式,S103中,根据ACK报文对应的流的标准权重值wk,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1,可以包括:
采用cwnd1=cwnd+wk,i/cwnd计算第一拥塞窗口长度cwnd1。
其中,cwnd表示根据对应于同一个流的上一个ACK报文更新后的流的拥塞窗口长度。
还以上述具体数值为例进行说明。假设用户A的两条流的cwnd分别为100、100,用户B的两条流的cwnd分别为50、50。由于用户A两条流对应的标准权重值分别为1、1,用户B两条流对应的标准权重值分别为0.5、0.5,则用户A两条流的cwnd1分别为100+1/100、100+1/100,用户B的两条流的cwnd分别为50+0.5/50、50+0.5/50。
S104、将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*。
其中,rwnd*=min(cwnd1,rwnd)。
具体的,根据ACK报文对应的流的标准权重值将该流的拥塞窗口长度调整之后,将调整后的该流的拥塞窗口长度以及接收方通知给发送方的接收窗口中的较小值,作为ACK报文中携带的接收窗口长度的最终数值。从而发送方可以根据最终确定的第二接收窗口长度rwnd*确定该流的发送窗口,更加准确的控制发送速率,完成数据中心的流量控制和拥塞控制。
其中,本实施例对于第一接收窗口长度rwnd的具体数值不做限定,根据不同的传输协议以及拥塞控制方法而有所不同。
可见,本实施例提供的数据中心的拥塞控制方法,当ACK报文中没有携带拥塞标识时,根据ACK报文对应的流的带宽分配比例调整流的拥塞窗口长度,使得拥塞窗口调整的更为准确,带宽分配更为合理。在网络流量收敛到稳定状态后,每个流的拥塞窗口均与流的标准权重值成正比,提升了每个流的流量控制的准确性,进而提升了数据中心的流量控制和拥塞控制的准确性。
需要说明的是,本实施例提供的数据中心的拥塞控制方法,是以获取到一个ACK报文并根据该ACK报文更新该ACK报文对应的流的拥塞窗口长度和接收窗口长度为例进行说明的。可以理解,本实施例提供的数据中心的拥塞控制方法,可以对获取到的每个ACK报文都进行上述处理。在一个往返时间(Round-Trip Time,RTT)内,如果获取到对应于同一个流的多个ACK报文,且多个ACK报文中不携带拥塞标识,则该流的拥塞窗口可以进行多次调整。RTT为网络传输中的重要概念,通常指发送方从发送数据包开始到接收到它的响应所耗费的传输时间。具体的,在一个RTT内,当上一次获取到不携带拥塞标识的ACK报文后,可以根据该ACK报文对应的流的标准权重值调整该流的拥塞窗口。当再次获取到对应于同一个流的不携带拥塞标识的ACK报文时,可以在上一次调整的基础上,继续调整该流的拥塞窗口,实现逐流的拥塞控制,提升网络中每个用户每个流的流量控制的准确性,进而提升网络的数据流量以及流量控制的准确性。
可选的,本实施例提供的方法,还可以包括:
根据预设周期获取数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk
根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i
采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
具体的,数据中心中不同时间的用户可能不同,不同时间用户的流可能不同。而且,不同时间用户对应的总权重值和用户的每个流对应的权重值可能不同。因此,需要定期更新。在本实施例中,根据预设周期定期更新的权重信息可以包括:数据中心中的用户,每个用户对应的总权重值,每个用户的流集合,每个用户的每个流对应的权重值以及标准权重值。举例说明。假设在上一个更新周期中,数据中心有2个用户,分别为用户A和用户B。用户A的总权重值为20。用户B的总权重值为10。用户A有2条流,权重值均为10。用户B有2条流,权重值均为5。用户A两条流对应的标准权重值均为1。用户B两条流对应的标准权重值均为0.5。则在下一个更新周期中,数据中心可能有3个用户,分别为用户A、用户B和用户C。用户A的总权重值为20。用户B的总权重值为8。用户C的总权重值为60。用户A有2条流,权重值均为10。用户B有2条流,权重值均为4。用户C有3条流,权重值均为20。用户A两条流对应的标准权重值均为0.5。用户B两条流对应的标准权重值均为0.2。用户C三条流对应的标准权重值均为1。
其中,本实施例对于用户总权重值的获取方式和分配方式不做限定,可以是用户设定手动输入的,也可以是数据中心的拥塞控制装置根据预先设定的分配原则自动设定的。例如,按照用户的服务等级、用户的优先级、用户的业务服务需求等因素设定。预先设定的分配原则可以为表格的形式,通过查表操作可以设定用户的总权重值。
其中,本实施例对于权重分配原则不做限定。例如,权重分配原则可以为平均原则,即用户的所有流平分用户的总权重值。例如上述具体示例均为平均分配。又例如,可以根据用户每个流的优先级、每个流对应的目标端口等因素设定。
其中,本实施例对于预设周期的取值不做限定,根据需要进行设置。
可选的,本实施例提供的方法,S103,根据ACK报文对应的流的标准权重值wk,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1之前,还可以包括:
若ACK报文对应的流的标准权重值不存在,则将流的标准权重值设置为1。
具体的,由于定期更新每个用户每个流对应的标准权重值,在两次权重信息更新之间可能会产生新的流。也就是说,在上一次权重信息已经更新之后,产生了新的流,但是还没有进行下一次的权重信息更新,此时,新产生的流将不存在标准权重值。此时,将新产生的流的标准权重值设置为1,进行新流的拥塞窗口的调整。
本实施例提供了一种数据中心的拥塞控制方法,包括获取ACK报文,判断ACK报文中是否携带拥塞标识,若ACK报文中不携带拥塞标识,则根据ACK报文对应的流的标准权重值更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1,将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*。本实施例提供的数据中心的拥塞控制方法,当网络不拥塞时,根据ACK报文对应的流的带宽分配比例调整流的拥塞窗口长度,拥塞窗口调整的更为准确,带宽分配更为合理。提升了数据中心每个流的流量控制的准确性,进而提升了数据中心的流量控制和拥塞控制的准确性。
图2为本申请实施例二提供的数据中心的拥塞控制方法的流程图。本实施例在上述图1所示实施例一的基础上,提供了数据中心的拥塞控制方法的另一种实现方式,尤其涉及当ACK报文中携带拥塞标识时,如何调整ACK报文对应的流的拥塞窗口长度。如图2所示,本实施例提供的数据中心的拥塞控制方法,S102中,若ACK报文中携带拥塞标识,则可以执行S201~S203。
S201、若ACK报文中携带拥塞标识,则判断ACK报文对应的流的拥塞窗口长度在当前RTT内是否进行过减小处理。
如果没有进行过减小处理,则执行S202~S203。
S202、若ACK报文对应的流的拥塞窗口长度在当前RTT内没有进行过减小处理,则将ACK报文对应的流的拥塞窗口长度更新为第二拥塞窗口长度cwnd2。
其中,cwnd2=cwnd×(1-α/2),cwnd表示根据对应于同一个流的上一个ACK报文更新后的流的拥塞窗口长度,α表示当前RTT内的网络拥塞程度。
具体的,当ACK报文中携带拥塞标识时,说明此时网络拥塞,应当减小ACK报文对应的流的拥塞窗口的长度。但是,只有在当前RTT内该流的拥塞窗口从来没有减小过,才减小该流的拥塞窗口,避免了因为多次减小拥塞窗口而过度地控制网络流量。具体的,采用公式cwnd2=cwnd×(1-α/2)乘法减小流的拥塞窗口。α越大,说明网络越拥塞,拥塞窗口的减小幅度越大。α越小,说明网络拥塞不严重,拥塞窗口的减小幅度稍小。由于根据网络拥塞程度减小流的拥塞窗口,可以逐流降低发送端的发送速度,避免了更严重的网络拥塞,实现了数据中心的拥塞控制。而且,当网络流量收敛到稳定状态后,每条流的拥塞窗口均与流的权重值成正比。
其中,本实施例对于α的具体计算方式不做限定,可以采用现有的任意一种拥塞控制方法计算得到的表示网络拥塞程度的数值。
可选的,作为一种实现方式,α可以满足α=(1-g)×α*+g×F。其中,g为小于1的预设正数,α*表示上一个RTT内的网络拥塞程度,F表示上一个RTT内携带有拥塞标识的ACK报文占上一个RTT内所有ACK报文的比例。
其中,上一个RTT为当前RTT之前的RTT。每个RTT仅调整一次α的取值。
需要说明,本实施例对于g的取值不做限定。
S203、将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*。
其中,rwnd*=min(cwnd2,rwnd)。
具体的,减小ACK报文对应的流的拥塞窗口长度之后,将减小后的该流的拥塞窗口长度以及接收方通知给发送方的接收窗口中的较小值,作为ACK报文中携带的接收窗口长度的最终数值。使得发送方可以根据最终确定的第二接收窗口长度rwnd*确定流的发送窗口,从而更加准确的控制发送速率,完成数据中心的流量控制和拥塞控制。
可选的,本实施例提供的方法,S201中,如果ACK报文对应的流的拥塞窗口长度在当前RTT内进行过减小处理,则还可以包括:
将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*。
其中,rwnd*=min(cwnd,rwnd)。
具体的,当ACK报文中携带拥塞标识时,说明网络拥塞,应当减小ACK报文对应的流的拥塞窗口的长度。但是,如果在当前RTT内该流的拥塞窗口已经减小过,则不再继续减小该流的拥塞窗口长度。将对应于同一个流的上一次获取ACK报文时更新后的该流的拥塞窗口长度与接收方通知给发送方的接收窗口中的较小值,作为ACK报文中携带的接收窗口长度的最终数值。
本实施例提供了一种数据中心的拥塞控制方法,当获取的ACK报文中携带拥塞标识,且在当前RTT从没有减小过该ACK报文对应的流的拥塞窗口时,根据当前RTT内的网络拥塞程度乘法减小该ACK报文对应的流的拥塞窗口。本实施例提供的数据中心的拥塞控制方法,当网络拥塞时,每个RTT仅减小一次流的拥塞窗口,避免了拥塞窗口的过度减小导致网络流量降低。同时逐流降低了发送端的发送速度,避免了更严重的网络拥塞,提升了数据中心的流量控制的准确性。
图3为本申请实施例适用的系统架构图,图4为本申请实施例三提供的数据中心的拥塞控制方法的消息交互图。本实施例在上述实施例一的基础上,提供了网络不拥塞时数据中心的拥塞控制方法的一个示例。
如图3所示,数据中心服务器上运行着多个虚拟机(Virtual Machine,VM)11,数据中心服务器上架设有统一的接入层,接入层需要对上层TCP/IP协议栈进行统一的控制管理,因此需要置于IP层之下。接入层包含发送模块(可以标识为Sender)12和接收模块(可以标识为Receiver)14两个功能模块。Sender和Receiver通过解析TCP报文头对上层协议栈进行统一的接入管理。交换模块13用于转发报文并进行ECN标记。Sender通过计算并修改ACK报文的RWND字段来控制上层发送端的发送速率,使得每一个流的发送速率可以与其权重值成正比,实现了数据中心网络中流级别的带宽比例分配和流量控制。
如图4所示,位于上方的虚线框示出了数据报文流程,位于下方的虚线框示出了ACK报文流程。本实施例提供的数据中心的拥塞控制方法,可以包括:
11、虚拟机(上层发送端)发送数据报文到发送模块。
相应的,发送模块获取虚拟机(上层发送端)发送的数据报文。其中,CE标识为0。
12、发送模块将数据报文转发至交换模块。
相应的,交换模块接收发送模块转发的数据报文。其中,CE标识为0。
13、交换模块在确定数据报文所在的队列的长度小于阈值时,将数据报文转发至接收模块。
相应的,接收模块接收交换模块转发的数据报文,并记录CE标识。其中,CE标识为0。
其中,交换模块开启ECN功能。
14、接收模块将数据报文发送至虚拟机(上层接收端)。
相应的,虚拟机(上层接收端)接收接收模块发送的数据报文。
15、虚拟机(上层接收端)发送ACK报文到接收模块。
相应的,接收模块接收到虚拟机(上层接收端)发送的ACK报文。其中,ACK报文中携带有RWND字段,RWND字段的值为rwnd。
16、接收模块根据记录的CE标识对ACK报文进行ECE打标,并将ACK报文转发至交换模块。
其中,ECE标识为0。
17、交换模块将ACK报文转发至发送模块。
相应的,发送模块接收到交换模块转发的ACK报文。其中,ECE标识为0。
18、发送模块将cwnd更新为cwnd1,将rwnd更新为rwnd*。
具体的,ACK报文中ECE标识为0,说明ACK报文不携带拥塞标识。采用公式cwnd1+=w/cwnd将ACK报文对应的流的拥塞窗口cwnd更新为cwnd1。并修改ACK报文中RWND字段的取值,采用公式rwnd*=min(rwnd,cwnd1)将上层接收端发送过来的rwnd更新为rwnd*。
19、发送模块将更新后的ACK报文发送给虚拟机(上层发送端)。
相应的,虚拟机(上层发送端)接收发送模块发送的更新后的ACK报文。其中,ACK报文中携带有RWND字段,RWND字段的值为rwnd*。
其中,发送模块还用于:
根据预设周期获取数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk
根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i
采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
权值信息更新的原理与上述实施例一相似,此处不再赘述。
本实施例提供的数据中心的拥塞控制方法,当网络不拥塞时,每条流对应的拥塞窗口按照流的权重值加法增加。当网络流量收敛到稳定状态后,每条流的拥塞窗口均与流的权重值成正比。通过修改ACK报文中的RWND字段,将计算的每条流的拥塞窗口施加给上层发送端的TCP/IP协议栈,达到控制上层发送端发送数据的速率,提升了数据中心的流量控制和拥塞控制的准确性。
图5为本申请实施例四提供的数据中心的拥塞控制方法的消息交互图。本实施例适用图3所示的系统架构,在上述实施例二的基础上,提供了网络拥塞时数据中心的拥塞控制方法的一个示例。
如图5所示,位于上方的虚线框示出了数据报文流程,位于下方的虚线框示出了ACK报文流程。本实施例提供的数据中心的拥塞控制方法,可以包括:
21、虚拟机(上层发送端)发送数据报文到发送模块。
相应的,发送模块获取虚拟机(上层发送端)发送的数据报文。其中,CE标识为0。
22、发送模块将数据报文转发至交换模块。
相应的,交换模块接收发送模块转发的数据报文。其中,CE标识为0。
23、交换模块在确定数据报文所在的队列的长度大于阈值时,对数据报文进行CE打标,并将打标后的数据报文转发至接收模块。
相应的,接收模块接收交换模块转发的数据报文,并记录CE标识。其中,CE标识为1。
其中,交换模块开启ECN功能。
24、接收模块将数据报文发送至虚拟机(上层接收端)。
相应的,虚拟机(上层接收端)接收接收模块发送的数据报文。
25、虚拟机(上层接收端)发送ACK报文到接收模块。
相应的,接收模块接收到虚拟机(上层接收端)发送的ACK报文。其中,ACK报文中携带有RWND字段,RWND字段的值为rwnd。
26、接收模块根据记录的CE标识对ACK报文进行ECE打标,并将打标后的ACK报文转发至交换模块。
其中,ECE标识为1。
27、交换模块将ACK报文转发至发送模块。
相应的,发送模块接收到交换模块转发的ACK报文。其中,ECE标识为1。
28、发送模块将cwnd更新为cwnd2,将rwnd更新为rwnd*。
具体的,ACK报文中ECE标识为1,说明ACK报文携带拥塞标识。采用公式cwnd2-=cwnd*α/2将ACK报文对应的流的拥塞窗口cwnd更新为cwnd2,并修改ACK报文中RWND字段的取值,采用公式rwnd*=min(rwnd,cwnd2)将上层接收端发送过来的rwnd更新为rwnd*。
其中,每个RTT最多减小一次cwnd。
其中,参数α的含义与上述实施例二相似,此处不再赘述。
29、发送模块将更新后的ACK报文发送给虚拟机(上层发送端)。
相应的,虚拟机(上层发送端)接收发送模块发送的更新后的ACK报文。其中,ACK报文中携带有RWND字段,RWND字段的值为rwnd*。
其中,发送模块还用于:
根据预设周期获取数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk
根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i
采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
权值信息更新的原理与上述实施例一相似,此处不再赘述。
本实施例提供的数据中心的拥塞控制方法,当网络拥塞时,每条流对应的拥塞窗口根据网络拥塞程度α乘法减小,且每个RTT仅减小一次。当网络流量收敛到稳定状态后,每条流的拥塞窗口均与流的权重值成正比。通过修改ACK报文中的RWND字段,将计算的每条流的拥塞窗口施加给上层发送端的TCP/IP协议栈,达到控制上层发送端发送数据的速率,提升了数据中心的流量控制和拥塞控制的准确性。
图6为本申请实施例一提供的数据中心的拥塞控制装置的结构示意图。本实施例提供的数据中心的拥塞控制装置,可以执行图1~图6所示实施例提供的数据中心的拥塞控制方法。如图6所示,本实施例提供的数据中心的拥塞控制装置,可以包括:
获取模块21,用于获取ACK报文。
判断模块22,用于判断ACK报文中是否携带拥塞标识。
拥塞窗口更新模块23,用于在判断模块22确定ACK报文中不携带拥塞标识时,根据ACK报文对应的流的标准权重值wk,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1。其中,数据中心中每个用户对应有总权重值sk,k≥1,sk为正数,用户k的流集合Fk中每个流fk,i对应有权重值tk,i,i≥1,tk,i为正数且wk,i=tk,i/tmax,tmax为所有用户的所有流对应的权重值中的最大值。
接收窗口调整模块24,用于将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
可选的,拥塞窗口更新模块23具体用于:
采用cwnd1=cwnd+wk,i/cwnd计算第一拥塞窗口长度cwnd1。其中,cwnd表示根据与流对应的上一个ACK报文更新后的流的拥塞窗口长度。
可选的,拥塞窗口更新模块23还用于:
在判断模块22确定ACK报文中携带拥塞标识时,判断ACK报文对应的流的拥塞窗口长度在当前往返时间RTT内是否进行过减小处理。
若ACK报文对应的流的拥塞窗口长度在当前RTT内没有进行过减小处理,则将ACK报文对应的流的拥塞窗口长度更新为第二拥塞窗口长度cwnd2,cwnd2=cwnd×(1-α/2),cwnd表示根据与流对应的上一个ACK报文更新后的流的拥塞窗口长度,α表示当前RTT内的网络拥塞程度。
接收窗口调整模块24还用于,将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd2,rwnd)。
可选的,α满足α=(1-g)×α*+g×F,g为小于1的预设正数,α*表示上一个RTT内的网络拥塞程度,F表示上一个RTT内携带有拥塞标识的ACK报文占上一个RTT内所有ACK报文的比例。
可选的,还包括权值更新模块25,权值更新模块25用于:
根据预设周期获取数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk
根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i
采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
可选的,拥塞窗口更新模块23还用于:
若ACK报文对应的流的标准权重值不存在,则将流的标准权重值设置为1。
可选的,拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
本申请实施例提供的数据中心的拥塞控制装置,用于执行图1~图5所示方法实施例提供的数据中心的拥塞控制方法,其技术原理和技术效果类似,此处不再赘述。
图7为本申请实施例一提供的数据中心的拥塞控制设备的结构示意图,如图7所示,该数据中心的拥塞控制设备可以包括处理器31和存储器32,存储器32用于存储指令,处理器31用于执行存储器32中存储的指令,以使数据中心的拥塞控制设备执行图1~图5所示实施例提供的数据中心的拥塞控制方法,具体实现方式和技术效果类似,这里不再赘述。
可以理解,本申请中数据中心的拥塞控制设备使用的处理器可以是中央处理器(CPU),通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC),现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请实施例的技术方案,而非对其限制。尽管参照前述各实施例对本申请实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。

Claims (14)

1.一种数据中心的拥塞控制方法,其特征在于,包括:
获取确认ACK报文;
判断所述ACK报文中是否携带拥塞标识;
若所述ACK报文中不携带所述拥塞标识,则根据所述ACK报文对应的流的标准权重值wk,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1;其中,数据中心中每个用户对应有总权重值sk,k≥1,sk为正数,用户k的流集合Fk中每个流fk,i对应有权重值tk,i,i≥1,tk,i为正数且wk,i=tk,i/tmax,tmax为所有用户的所有流对应的权重值中的最大值;
将所述ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
2.根据权利要求1所述的方法,其特征在于,所述根据所述ACK报文对应的流的标准权重值wk,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1,包括:
采用cwnd1=cwnd+wk,i/cwnd计算所述第一拥塞窗口长度cwnd1;其中,cwnd表示根据与所述流对应的上一个ACK报文更新后的所述流的拥塞窗口长度。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述ACK报文中携带所述拥塞标识,则判断所述ACK报文对应的流的拥塞窗口长度在当前往返时间RTT内是否进行过减小处理;
若所述ACK报文对应的流的拥塞窗口长度在当前RTT内没有进行过减小处理,则将所述ACK报文对应的流的拥塞窗口长度更新为第二拥塞窗口长度cwnd2,cwnd2=cwnd×(1-α/2),cwnd表示根据与所述流对应的上一个ACK报文更新后的所述流的拥塞窗口长度,α表示当前RTT内的网络拥塞程度;
将所述ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd2,rwnd)。
4.根据权利要求3所述的方法,其特征在于,所述α满足α=(1-g)×α*+g×F,g为小于1的预设正数,α*表示上一个RTT内的网络拥塞程度,F表示上一个RTT内携带有拥塞标识的ACK报文占上一个RTT内所有ACK报文的比例。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
根据预设周期获取所述数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk
根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i
采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
6.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述ACK报文对应的流的标准权重值wk,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1之前,还包括:
若所述ACK报文对应的流的标准权重值不存在,则将所述流的标准权重值设置为1。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
8.一种数据中心的拥塞控制装置,其特征在于,包括:
获取模块,用于获取确认ACK报文;
判断模块,用于判断所述ACK报文中是否携带拥塞标识;
拥塞窗口更新模块,用于在所述判断模块确定所述ACK报文中不携带所述拥塞标识时,根据所述ACK报文对应的流的标准权重值wk,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1;其中,数据中心中每个用户对应有总权重值sk,k≥1,sk为正数,用户k的流集合Fk中每个流fk,i对应有权重值tk,i,i≥1,tk,i为正数且wk,i=tk,i/tmax,tmax为所有用户的所有流对应的权重值中的最大值;
接收窗口调整模块,用于将所述ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
9.根据权利要求8所述的装置,其特征在于,所述拥塞窗口更新模块具体用于:
采用cwnd1=cwnd+wk,i/cwnd计算所述第一拥塞窗口长度cwnd1;其中,cwnd表示根据与所述流对应的上一个ACK报文更新后的所述流的拥塞窗口长度。
10.根据权利要求8所述的装置,其特征在于,所述拥塞窗口更新模块还用于:
在所述判断模块确定所述ACK报文中携带所述拥塞标识时,判断所述ACK报文对应的流的拥塞窗口长度在当前往返时间RTT内是否进行过减小处理;
若所述ACK报文对应的流的拥塞窗口长度在当前RTT内没有进行过减小处理,则将所述ACK报文对应的流的拥塞窗口长度更新为第二拥塞窗口长度cwnd2,cwnd2=cwnd×(1-α/2),cwnd表示根据与所述流对应的上一个ACK报文更新后的所述流的拥塞窗口长度,α表示当前RTT内的网络拥塞程度;
所述接收窗口调整模块还用于,将所述ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd2,rwnd)。
11.根据权利要求10所述的装置,其特征在于,所述α满足α=(1-g)×α*+g×F,g为小于1的预设正数,α*表示上一个RTT内的网络拥塞程度,F表示上一个RTT内携带有拥塞标识的ACK报文占上一个RTT内所有ACK报文的比例。
12.根据权利要求8至11任一项所述的装置,其特征在于,还包括权值更新模块,所述权值更新模块用于:
根据预设周期获取所述数据中心中每个用户对应的总权重值sk以及每个用户的流集合Fk
根据每个用户预先设置的权重分配原则为每个用户的每个流fk,i分配权重值tk,i
采用公式wk,i=tk,i/tmax计算每个流的标准权重值wk,i
13.根据权利要求8至11任一项所述的装置,其特征在于,所述拥塞窗口更新模块还用于:
若所述ACK报文对应的流的标准权重值不存在,则将所述流的标准权重值设置为1。
14.根据权利要求8至11任一项所述的装置,其特征在于,所述拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
CN201710711896.8A 2017-08-18 2017-08-18 数据中心的拥塞控制方法和装置 Active CN109412958B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710711896.8A CN109412958B (zh) 2017-08-18 2017-08-18 数据中心的拥塞控制方法和装置
PCT/CN2018/098365 WO2019033932A1 (zh) 2017-08-18 2018-08-02 数据中心的拥塞控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710711896.8A CN109412958B (zh) 2017-08-18 2017-08-18 数据中心的拥塞控制方法和装置

Publications (2)

Publication Number Publication Date
CN109412958A true CN109412958A (zh) 2019-03-01
CN109412958B CN109412958B (zh) 2022-04-05

Family

ID=65362773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710711896.8A Active CN109412958B (zh) 2017-08-18 2017-08-18 数据中心的拥塞控制方法和装置

Country Status (2)

Country Link
CN (1) CN109412958B (zh)
WO (1) WO2019033932A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111817977A (zh) * 2019-04-12 2020-10-23 华为技术有限公司 一种网络拥塞控制方法和装置
CN112054965A (zh) * 2019-06-05 2020-12-08 阿里巴巴集团控股有限公司 一种拥塞控制方法、设备及计算机可读介质
CN112787942A (zh) * 2019-11-05 2021-05-11 中兴通讯股份有限公司 一种tcp拥塞控制方法、装置、终端及可读存储介质
CN113726681A (zh) * 2020-05-26 2021-11-30 华为技术有限公司 一种网络拥塞控制方法及网络设备
CN113726671A (zh) * 2020-05-26 2021-11-30 华为技术有限公司 一种网络拥塞控制方法及相关产品
CN116366553A (zh) * 2023-03-08 2023-06-30 杭州粒子光速科技有限公司 一种自适应网络拥塞控制方法
CN116566921A (zh) * 2023-07-04 2023-08-08 珠海星云智联科技有限公司 远程直接内存访问读取的拥塞控制方法、系统及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111372283B (zh) * 2020-03-10 2023-04-14 中国联合网络通信集团有限公司 拥塞控制方法及基站、用户面功能实体
CN115190072B (zh) * 2022-07-08 2023-06-20 复旦大学 激进传输协议和保守传输协议之间公平性的速率调节方法
CN115484210B (zh) * 2022-08-16 2023-07-25 北京百度网讯科技有限公司 拥塞窗口的确定方法、装置与系统
CN115473855B (zh) * 2022-08-22 2024-04-09 阿里巴巴(中国)有限公司 网络系统、数据传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674242A (zh) * 2009-10-13 2010-03-17 福建星网锐捷网络有限公司 一种业务报文发送控制方法及装置
CN104009931A (zh) * 2014-06-13 2014-08-27 中南大学 数据中心网络中基于通告窗口和多流协同的拥塞控制方法
CN104125159A (zh) * 2014-07-29 2014-10-29 福建星网锐捷网络有限公司 一种拥塞带宽检测方法、拥塞控制方法、装置及系统
CN107018086A (zh) * 2017-04-24 2017-08-04 中南大学 一种数据中心网络中基于数据包优先级的传输控制方法
US20170230298A1 (en) * 2016-02-09 2017-08-10 Flowtune, Inc. Network Resource Allocation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE525835T1 (de) * 2009-06-29 2011-10-15 Alcatel Lucent Verfahren zur verwaltung einer verkehrsbelastung
CN103647722B (zh) * 2013-11-19 2018-05-04 中国科学院计算技术研究所 一种基于信誉的链路拥塞控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674242A (zh) * 2009-10-13 2010-03-17 福建星网锐捷网络有限公司 一种业务报文发送控制方法及装置
CN104009931A (zh) * 2014-06-13 2014-08-27 中南大学 数据中心网络中基于通告窗口和多流协同的拥塞控制方法
CN104125159A (zh) * 2014-07-29 2014-10-29 福建星网锐捷网络有限公司 一种拥塞带宽检测方法、拥塞控制方法、装置及系统
US20170230298A1 (en) * 2016-02-09 2017-08-10 Flowtune, Inc. Network Resource Allocation
CN107018086A (zh) * 2017-04-24 2017-08-04 中南大学 一种数据中心网络中基于数据包优先级的传输控制方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111817977A (zh) * 2019-04-12 2020-10-23 华为技术有限公司 一种网络拥塞控制方法和装置
CN111817977B (zh) * 2019-04-12 2024-04-16 华为技术有限公司 一种网络拥塞控制方法和装置
CN112054965A (zh) * 2019-06-05 2020-12-08 阿里巴巴集团控股有限公司 一种拥塞控制方法、设备及计算机可读介质
CN112787942A (zh) * 2019-11-05 2021-05-11 中兴通讯股份有限公司 一种tcp拥塞控制方法、装置、终端及可读存储介质
CN113726671B (zh) * 2020-05-26 2023-06-30 华为技术有限公司 一种网络拥塞控制方法及相关产品
WO2021238803A1 (zh) * 2020-05-26 2021-12-02 华为技术有限公司 一种网络拥塞控制方法及网络设备
CN113726671A (zh) * 2020-05-26 2021-11-30 华为技术有限公司 一种网络拥塞控制方法及相关产品
CN113726681B (zh) * 2020-05-26 2023-07-11 华为技术有限公司 一种网络拥塞控制方法及网络设备
CN113726681A (zh) * 2020-05-26 2021-11-30 华为技术有限公司 一种网络拥塞控制方法及网络设备
CN116366553A (zh) * 2023-03-08 2023-06-30 杭州粒子光速科技有限公司 一种自适应网络拥塞控制方法
CN116366553B (zh) * 2023-03-08 2023-11-10 杭州流形新网络科技有限公司 一种自适应网络拥塞控制方法
CN116566921A (zh) * 2023-07-04 2023-08-08 珠海星云智联科技有限公司 远程直接内存访问读取的拥塞控制方法、系统及存储介质
CN116566921B (zh) * 2023-07-04 2024-03-22 珠海星云智联科技有限公司 远程直接内存访问读取的拥塞控制方法、系统及存储介质

Also Published As

Publication number Publication date
CN109412958B (zh) 2022-04-05
WO2019033932A1 (zh) 2019-02-21

Similar Documents

Publication Publication Date Title
CN109412958A (zh) 数据中心的拥塞控制方法和装置
Bai et al. PIAS: Practical information-agnostic flow scheduling for commodity data centers
Noormohammadpour et al. Datacenter traffic control: Understanding techniques and tradeoffs
US10447594B2 (en) Ensuring predictable and quantifiable networking performance
CN105917310B (zh) 用于改进虚拟化环境中的tcp性能的系统和方法
CN106533970B (zh) 面向云计算数据中心网络的差分流传输控制方法及装置
CN106059951B (zh) 一种用于dcn中基于多级拥塞反馈的传输控制方法
Laufer et al. Climb: Enabling network function composition with click middleboxes
CN104954252B (zh) 在高性能、可扩展和无掉话的数据中心交换结构内的流控制
Zou et al. Flow-aware adaptive pacing to mitigate TCP incast in data center networks
CN113992588B (zh) 数据传输方法、装置、电子设备及可读存储介质
US10536385B2 (en) Output rates for virtual output queses
Hwang et al. Deadline and incast aware TCP for cloud data center networks
Huang et al. ARS: Cross-layer adaptive request scheduling to mitigate TCP incast in data center networks
Lu et al. Dynamic ECN marking threshold algorithm for TCP congestion control in data center networks
Zhang et al. Adaptive marking threshold method for delay-sensitive TCP in data center network
Du et al. R-AQM: Reverse ACK active queue management in multitenant data centers
Lu et al. FAMD: A Flow-Aware Marking and Delay-based TCP algorithm for datacenter networks
EP2417719B1 (en) Method and system to manage network traffic congestion
Wang et al. A game theoretical bandwidth allocation mechanism for cloud robotics
WO2021052382A1 (zh) 云业务的带宽管理及配置方法及相关装置
Majidi et al. ECN+: A marking-aware optimization for ECN threshold via per-port in data center networks
Ma et al. Intelligent queue management of open vSwitch in multi-tenant data center
Tahiliani et al. Tcp congestion control in data center networks
JP5702232B2 (ja) サーバ連携互助システムならびにそのサーバおよびサーバ連携互助プログラム

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
GR01 Patent grant
GR01 Patent grant