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

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

Info

Publication number
WO2019033932A1
WO2019033932A1 PCT/CN2018/098365 CN2018098365W WO2019033932A1 WO 2019033932 A1 WO2019033932 A1 WO 2019033932A1 CN 2018098365 W CN2018098365 W CN 2018098365W WO 2019033932 A1 WO2019033932 A1 WO 2019033932A1
Authority
WO
WIPO (PCT)
Prior art keywords
congestion
stream
ack packet
rwnd
window length
Prior art date
Application number
PCT/CN2018/098365
Other languages
English (en)
French (fr)
Inventor
金波
董加卿
汪漪
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2019033932A1 publication Critical patent/WO2019033932A1/zh

Links

Images

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
    • 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
    • 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

Definitions

  • the embodiments of the present invention relate to the field of network technologies, and in particular, to a congestion control method and apparatus for a data center.
  • Cloud computing data center technology has developed rapidly, with thousands of server nodes forming clusters in the data center.
  • the nodes' computing, storage, network and other resources are abstracted to obey unified management and provide service capabilities unmatched by a single server.
  • Cloud data centers have become the most effective and promising infrastructure for supporting data storage and deploying diverse network services and applications.
  • VCC Virtual Congestion Control
  • the tenant congestion control algorithm is an overridden algorithm that the hypervisor converts into the underlying algorithms used in the data center network to implement uniform congestion control rules throughout the data center.
  • VCC algorithms include an Administrator Control over Datacenter (AC/DC) algorithm.
  • the AC/DC algorithm can allocate bandwidth on a per-flow basis according to the priority of the user's flow.
  • the AC/DC algorithm can only allocate bandwidth on a per-flow basis, resulting in lower traffic control accuracy in the data center.
  • the embodiment of the present application provides a congestion control method and device for a data center, which improves the accuracy of flow control and congestion control in a data center.
  • the embodiment of the present application provides a congestion control method in a data center, where the method includes: acquiring an ACK packet; determining whether the ACK packet carries a congestion identifier; and if the ACK packet does not carry the congestion identifier, according to the ACK
  • the congestion control method of the data center provided by the first aspect, when the ACK packet does not carry the congestion identifier, adjusts the congestion window length of the stream according to the bandwidth allocation ratio of the flow corresponding to the ACK packet, so that the congestion window is more accurately adjusted.
  • the bandwidth allocation is more reasonable.
  • the congestion window of each flow is proportional to the standard weight value of the flow, which improves the accuracy of flow control of each flow, thereby improving the accuracy of traffic control and congestion control in the data center. Sex.
  • each RTT when the network is congested, each RTT only reduces the congestion window of the primary flow, and avoids excessive reduction of the congestion window, resulting in a decrease in network traffic. At the same time, the transmission speed of the transmitting end is reduced by the flow, the more serious network congestion is avoided, and the accuracy of the flow control of the data center is improved.
  • g is a preset positive number less than 1
  • ⁇ * represents a previous RTT.
  • F indicates the proportion of ACK packets carrying the congestion identifier in the previous RTT to the proportion of all ACK packets in the previous RTT.
  • the method further includes: acquiring, according to a preset period, a total weight value s k corresponding to each user in the data center and a flow set F k of each user;
  • the data center congestion control method provided by the possible implementation manner can periodically update the standard weight value corresponding to each stream of each user in the data center, and improve the real-time update of the congestion window according to the standard weight value of the flow when the network is not congested. Sex and accuracy.
  • the length of the congestion window is: If the standard weight value of the stream corresponding to the ACK packet does not exist, the standard weight value of the stream is set to 1.
  • the congestion identifier is a congestion identifier that is marked by using a display congestion notification ECN algorithm.
  • an embodiment of the present application provides a congestion control apparatus for a data center, where the apparatus includes an acquisition module, a determination module, a congestion window update module, and a reception window adjustment module.
  • the obtaining module is configured to obtain an ACK packet; the determining module is configured to determine whether the ACK packet carries a congestion identifier; and the congestion window updating module is configured to: when the determining module determines that the ACK packet does not carry the congestion identifier, according to the flow corresponding to the ACK packet
  • the congestion window update module is further configured to: when the determining module determines that the ACK packet carries the congestion identifier, determine that the congestion window length of the flow corresponding to the ACK packet is Whether the reduction processing is performed in the current RTT; if the congestion window length of the flow corresponding to the ACK packet has not been reduced in the current RTT, the congestion window length of the flow corresponding to the ACK packet is updated to the second congestion window.
  • g is a preset positive number less than 1
  • ⁇ * represents a previous RTT.
  • F indicates the proportion of ACK packets carrying the congestion identifier in the previous RTT to the proportion of all ACK packets in the previous RTT.
  • the congestion window update module is further configured to: if the standard weight value of the flow corresponding to the ACK message does not exist, set the standard weight value of the flow to 1.
  • the congestion identifier is a congestion identifier that is marked by using a display congestion notification ECN algorithm.
  • an embodiment of the present application provides a congestion control device for a data center, where the device includes a processor and a memory, where the memory is used to store an instruction, and the processor is configured to execute an instruction stored in the memory, so that the device performs the first Aspect method.
  • the embodiment of the present application provides a storage medium, including: a readable storage medium and a computer program, where the computer program is used to implement the method according to any one of the first aspects.
  • an embodiment of the present application provides a program product, where the program product includes a computer program (ie, an execution instruction), and the computer program is stored in a readable storage medium.
  • At least one processor of the congestion control device of the data center can read the computer program from a readable storage medium, and the at least one processor executes the computer program such that the device implements the methods provided by the various embodiments of the first aspect.
  • Embodiments of the present application provide a congestion control method and apparatus for a data center.
  • the congestion window length of the stream is adjusted according to the bandwidth allocation ratio of the stream corresponding to the ACK packet, so that the congestion window is adjusted more accurately and the bandwidth allocation is more reasonable.
  • the congestion window of each flow is proportional to the standard weight value of the flow, which improves the accuracy of flow control of each flow, thereby improving the accuracy of traffic control and congestion control in the data center. Sex.
  • FIG. 1 is a flowchart of a congestion control method for a data center according to Embodiment 1 of the present application;
  • FIG. 2 is a flowchart of a method for controlling congestion in a data center according to Embodiment 2 of the present application;
  • FIG. 3 is a system architecture diagram applicable to an embodiment of the present application.
  • FIG. 4 is a message interaction diagram of a congestion control method for a data center according to Embodiment 3 of the present application.
  • FIG. 5 is a message interaction diagram of a congestion control method for a data center according to Embodiment 4 of the present application.
  • FIG. 6 is a schematic structural diagram of a congestion control apparatus for a data center according to Embodiment 1 of the present application;
  • FIG. 7 is a schematic structural diagram of a congestion control device of a data center according to Embodiment 1 of the present application.
  • the congestion control method of the data center provided by the embodiment of the present application can be applied to virtual congestion control of a data center.
  • the technical problem of low flow control accuracy in the data center is solved by solving the problem that the flow-by-flow allocation bandwidth can only be qualitatively defined in the prior art.
  • FIG. 1 is a flowchart of a congestion control method in a data center according to Embodiment 1 of the present application.
  • the congestion control method of the data center provided by the embodiment of the present application may be a congestion control device of the data center, and the congestion control device may be a data center server or software and/or hardware disposed on the data center server.
  • the congestion control method of the data center provided in this embodiment may include:
  • the sender sends a data message to the receiver. If the receiver successfully receives the data message, it will reply a confirmation to the sender. (Acknowledgement, ACK) message.
  • ACK Acknowledgement
  • an ACK message has its own fixed message format and length.
  • the format and length of the ACK packet are not limited, as long as the transport protocol is met.
  • an ACK message may carry an RWND field.
  • the RWND (receiver window) field indicates a receiving window indicating the length of the receiving window notified by the receiver to the sender for the sender to determine the sending window.
  • the send window refers to the amount of data that is sent to the network in one continuous write, and the send window affects the network traffic.
  • the congestion identifier is used to indicate that the network is congested.
  • the congestion identifier can be a field, which may or may not have an exact value.
  • the ACK packet carries the congestion identifier, indicating that the network is congested at this time.
  • the ACK packet does not carry the congestion identifier, indicating that the network is not congested at this time.
  • the congestion identifier may be a field that must be included in the ACK packet. When the value of the field is different, the network may indicate whether the network is congested.
  • the ACK packet when the value of the field is the first value, the ACK packet carries the congestion identifier, indicating that the network is congested at this time.
  • the ACK packet does not carry the congestion identifier, indicating that the network is not congested at this time.
  • This embodiment does not limit the values of the first value and the second value.
  • the congestion identifier may be a congestion identifier that is marked by an Explicit Congestion Notification (ECN) algorithm.
  • ECN Explicit Congestion Notification
  • the ECN algorithm is a congestion control mechanism defined by The Internet Engineering Task Force (IETF).
  • the ECN negotiation is first performed before the data transmission between the sender and the receiver is started. If both parties support the ECN mechanism, the sender sets the ECN bit to ECN when transmitting data to the receiver.
  • the router or switch When a router or switch in the network is congested, the router or switch will congest the packets and forward the marked packets instead of dropping them.
  • the receiver receives the packet with the congestion flag, it can determine that congestion has occurred in the network. Among them, there are various ways of judging whether or not congestion occurs. For example, when a new packet arrives at the switch, the switch puts it into the destination port queue.
  • the switch marks the data packet with a congestion experience (CE) and then forwards the packet. After receiving the data packet with the CE mark, the receiver feeds back the CE information to the sender when sending an ACK to the sender.
  • CE congestion experience
  • the length of the congestion window of the update stream is the first congestion window length cwnd1 according to the standard weight value w k,i of the stream corresponding to the ACK packet.
  • each user in the data center corresponds to a total weight value s k , k ⁇ 1 , s k is a positive number
  • each stream f k,i of the stream set F k of the user k corresponds to a weight value t k,i , I ⁇ 1, t k,i is a positive number
  • the congestion window is an important concept in flow control.
  • the congestion window is the amount of data that the sender can send at most. Typically, the sender determines that the send window is less than or equal to the congestion window.
  • the data center has at least one user, and each user has at least one stream.
  • Each user has a total weight value.
  • Each stream of each user corresponds to a weight value.
  • the sum of the weight values corresponding to all streams of the user is equal to the total weight value of the user.
  • the weight value of each stream of each user is normalized to obtain a standard weight value, and the standard weight value ranges from greater than 0 and less than or equal to 1. For example, suppose there are currently 2 users in the data center, namely user A and user B. User A has a total weight of 20. User B has a total weight of 10. User A currently has 2 streams with weights of 10 and 10. User B currently has 2 streams with weights of 5 and 5.
  • the standard weight value corresponding to each stream reflects the bandwidth allocation ratio of the stream in all streams. The larger the standard weight value, the more bandwidth should be allocated to the stream. The smaller the standard weight value, the smaller the bandwidth can be allocated.
  • the ACK message corresponds to a certain stream that determines the user.
  • the network is not congested at this time, and the congestion window length of the stream corresponding to the ACK packet can be increased. Since each stream of each user corresponds to a standard weight value, the congestion window of the stream is updated according to the standard weight value of the stream corresponding to the ACK packet, so that the congestion window length of the stream is related to the standard weight value of the stream. Improve the accuracy and rationality of different stream congestion window adjustments. Since the congestion window is related to the sending window of the sender, the transmission traffic of the network is controlled, and the accuracy and rationality of different stream transmission windows are improved.
  • the specific adjustment manner of the congestion window length of the flow update value according to the standard weight value of the flow is not limited, and may be set as needed.
  • the congestion window length of the stream is increased according to the standard weight value addition of the stream, or the congestion window length of the stream is increased according to the standard weight value multiplication of the stream.
  • the length of the congestion window of the update stream is the first congestion window length cwnd1, which may include:
  • cwnd represents the length of the congestion window of the stream updated according to the last ACK message corresponding to the same stream.
  • the cwnd of the two streams of user A are 100 and 100, respectively, and the cwnd of the two streams of user B are 50 and 50, respectively. Since the standard weight values corresponding to the two flows of user A are 1, 1 respectively, and the standard weight values corresponding to the two flows of user B are 0.5 and 0.5 respectively, the cwnd1 of the two flows of user A is 100+1/100, 100 respectively. +1/100, the cwnd of the two streams of user B are 50+0.5/50, 50+0.5/50, respectively.
  • the adjusted congestion window length of the stream and the receiver notify the sender of the smaller value in the receiving window.
  • the specific value of the first receiving window length rwnd is not limited in this embodiment, and is different according to different transmission protocols and congestion control methods.
  • the congestion window length of the stream is adjusted according to the bandwidth allocation ratio of the stream corresponding to the ACK packet, so that the congestion window is adjusted more. Accurate, bandwidth allocation is more reasonable.
  • the congestion window of each flow is proportional to the standard weight value of the flow, which improves the accuracy of flow control of each flow, thereby improving the accuracy of traffic control and congestion control in the data center. Sex.
  • the congestion control method of the data center provided in this embodiment is performed by taking an ACK packet and updating the congestion window length and the receiving window length of the ACK packet according to the ACK packet.
  • the congestion control method of the data center provided in this embodiment can perform the foregoing processing on each ACK packet that is obtained.
  • RTT round-trip time
  • the congestion window of the stream may be adjusted according to the standard weight value of the stream corresponding to the ACK packet.
  • the congestion window of the flow can be continuously adjusted based on the previous adjustment, and the congestion control of the flow is implemented, and each user in the network is improved. The accuracy of the flow control of each flow, thereby improving the data flow of the network and the accuracy of flow control.
  • the method provided in this embodiment may further include:
  • the total weight value s k corresponding to each user in the data center and the stream set F k of each user are acquired according to a preset period.
  • a weight value t k,i is assigned to each stream f k,i of each user according to the weight assignment principle preset by each user.
  • the weight information periodically updated according to the preset period may include: a user in the data center, a total weight value corresponding to each user, a stream set of each user, and a weight corresponding to each stream of each user. Value and standard weight value. for example. Assume that in the previous update cycle, the data center has two users, User A and User B. User A has a total weight of 20. User B has a total weight of 10. User A has 2 streams with weights of 10.
  • User B has 2 streams with a weight value of 5.
  • User A's two streams correspond to a standard weight value of 1.
  • User B's two streams correspond to standard weight values of 0.5.
  • the data center may have three users, namely user A, user B, and user C.
  • User A has a total weight of 20.
  • User B has a total weight of 8.
  • User C has a total weight of 60.
  • User A has 2 streams with weights of 10.
  • User B has 2 streams with a weight value of 4.
  • User C has 3 streams with weights of 20.
  • User A's two streams correspond to standard weight values of 0.5.
  • User B's two streams correspond to standard weight values of 0.2.
  • User C's three streams correspond to standard weight values of 1.
  • the method for obtaining the total weight value of the user is not limited, and may be manually input by the user, or may be automatically set by the congestion control device of the data center according to a preset allocation principle. For example, it is set according to factors such as the user's service level, the user's priority, and the user's business service requirements.
  • the pre-set allocation principle can be in the form of a table, and the total weight value of the user can be set by the table lookup operation.
  • the weight assignment principle can be an averaging principle, that is, all the flows of the user are halved the total weight value of the user.
  • the specific examples above are all evenly distributed.
  • it may be set according to factors such as the priority of each stream of the user, the target port corresponding to each stream, and the like.
  • the value of the preset period is not limited in this embodiment, and is set as needed.
  • S103 before the first congestion window length cwnd1, according to the standard weight value w k, i of the flow corresponding to the ACK packet, may further include:
  • the standard weight value of the stream corresponding to the ACK packet is set to 1.
  • a new stream may be generated between the two weight information updates. That is to say, after the last weight information has been updated, a new stream is generated, but the next weight information update has not been performed. At this time, the newly generated stream will not have a standard weight value. At this time, the standard weight value of the newly generated stream is set to 1, and the congestion window of the new stream is adjusted.
  • the embodiment provides a method for controlling congestion in a data center, which includes obtaining an ACK packet, and determining whether the ACK packet carries a congestion identifier. If the ACK packet does not carry the congestion identifier, the packet according to the ACK packet
  • the congestion window length of the weight update stream is the first congestion window length cwnd1, and the first reception window length rwnd carried in the ACK message is updated to the second reception window length rwnd*.
  • the congestion window length of the stream is adjusted according to the bandwidth allocation ratio of the flow corresponding to the ACK packet, the congestion window is adjusted more accurately, and the bandwidth allocation is more reasonable. Improves the accuracy of flow control for each stream in the data center, which improves the accuracy of flow control and congestion control in the data center.
  • FIG. 2 is a flowchart of a method for controlling congestion in a data center according to Embodiment 2 of the present application.
  • the present embodiment provides another implementation manner of the congestion control method in the data center, which is related to how to adjust the ACK packet corresponding to the ACK packet when the ACK packet carries the congestion identifier.
  • the length of the congestion window of the stream As shown in FIG. 2, in the congestion control method of the data center provided in this embodiment, in S102, if the ACK packet carries the congestion identifier, S201 to S203 may be performed.
  • cwnd2 cwnd ⁇ (1- ⁇ /2)
  • cwnd represents the length of the congestion window of the stream updated according to the last ACK message corresponding to the same stream
  • represents the degree of network congestion in the current RTT.
  • the more congested the network, the greater the reduction of the congestion window.
  • the smaller the ⁇ the less the network congestion is, and the reduction of the congestion window is slightly smaller.
  • the congestion window of the flow is reduced according to the degree of network congestion, the transmission speed of the sender can be reduced by flow, the more serious network congestion is avoided, and the congestion control of the data center is realized. Moreover, when the network traffic converges to a stable state, the congestion window of each stream is proportional to the weight value of the stream.
  • the specific calculation manner of ⁇ is not limited, and the value indicating the degree of network congestion calculated by any existing congestion control method may be used.
  • g is a preset positive number less than 1
  • ⁇ * represents the degree of network congestion in the previous RTT
  • F represents the proportion of all ACK messages in the previous RTT that the ACK message carrying the congestion identifier in the previous RTT.
  • the previous RTT is the RTT before the current RTT.
  • Each RTT only adjusts the value of ⁇ once.
  • the reduced congestion window length of the flow and the smaller value in the receiving window notified by the receiver to the sender are carried in the ACK packet.
  • the sender can determine the transmission window of the stream according to the finally determined second reception window length rwnd*, thereby more accurately controlling the transmission rate, and completing the flow control and congestion control of the data center.
  • the method may further include:
  • the first receiving window length rwnd carried in the ACK message is updated to the second receiving window length rwnd*.
  • the ACK packet when the ACK packet carries the congestion identifier, it indicates that the network is congested, and the length of the congestion window of the stream corresponding to the ACK packet should be reduced. However, if the congestion window of the stream has been reduced within the current RTT, then the congestion window length of the stream is no longer reduced. The length of the congestion window of the stream that is updated when the ACK message is last acquired corresponding to the same flow and the smaller value of the receiving window that is notified to the sender by the receiver, as the length of the receiving window carried in the ACK message. The final value.
  • the embodiment provides a congestion control method in a data center, where the acquired ACK packet carries a congestion identifier, and when the current RTT has never reduced the congestion window of the stream corresponding to the ACK packet, according to the current RTT
  • the network congestion degree multiplication reduces the congestion window of the stream corresponding to the ACK message.
  • each RTT when the network is congested, each RTT only reduces the congestion window of the primary flow, and avoids excessive reduction of the congestion window, resulting in a decrease in network traffic.
  • the transmission speed of the transmitting end is reduced by the flow, the more serious network congestion is avoided, and the accuracy of the flow control of the data center is improved.
  • FIG. 3 is a system architecture diagram of an embodiment of the present application.
  • FIG. 4 is a message interaction diagram of a congestion control method for a data center according to Embodiment 3 of the present application. This embodiment provides an example of a congestion control method of a data center when the network is not congested, based on the foregoing first embodiment.
  • the data center server has a unified access layer.
  • the access layer needs to unify the upper layer TCP/IP protocol stack. Control management, so it needs to be placed under the IP layer.
  • the access layer includes two function modules: a sending module (which can be identified as Sender) 12 and a receiving module (which can be identified as Receiver) 14. Sender and Receiver perform unified access management on the upper layer protocol stack by parsing the TCP packet header.
  • the switching module 13 is configured to forward the message and perform ECN marking.
  • Sender controls the transmission rate of the upper layer sender by calculating and modifying the RWND field of the ACK packet, so that the transmission rate of each stream can be proportional to its weight value, realizing the bandwidth proportion distribution and flow control of the stream level in the data center network.
  • the congestion control method of the data center may include:
  • the virtual machine (upper layer sending end) sends a data packet to the sending module.
  • the sending module acquires a data packet sent by the virtual machine (upper layer sending end).
  • the CE flag is 0.
  • the sending module forwards the data packet to the switching module.
  • the switching module receives the data packet forwarded by the sending module.
  • the CE flag is 0.
  • the switching module forwards the data packet to the receiving module when determining that the length of the queue in which the data packet is located is less than the threshold.
  • the receiving module receives the data packet forwarded by the switching module, and records the CE identifier.
  • the CE flag is 0.
  • the switch module enables the ECN function.
  • the receiving module sends the data packet to the virtual machine (the upper receiving end).
  • the virtual machine (upper layer receiving end) receives the data packet sent by the receiving module.
  • the virtual machine (upper layer receiving end) sends an ACK message to the receiving module.
  • the receiving module receives the ACK packet sent by the virtual machine (upper layer receiving end).
  • the ACK packet carries the RWND field, and the value of the RWND field is rwnd.
  • the receiving module performs ECE marking on the ACK packet according to the recorded CE identifier, and forwards the ACK packet to the switching module.
  • the ECE identifier is 0.
  • the switching module forwards the ACK packet to the sending module.
  • the sending module receives the ACK packet forwarded by the switching module.
  • the ECE identifier is 0.
  • the sending module updates cwnd to cwnd1 and rwnd to rwnd*.
  • the ECE identifier in the ACK packet is 0, indicating that the ACK packet does not carry the congestion identifier.
  • rwnd* min(rwnd, cwnd1) to update the rwnd sent by the upper receiving end to rwnd*.
  • the sending module sends the updated ACK packet to the virtual machine (upper layer sending end).
  • the virtual machine (upper layer sending end) receives the updated ACK message sent by the sending module.
  • the ACK packet carries the RWND field, and the value of the RWND field is rwnd*.
  • the sending module is also used to:
  • the total weight value s k corresponding to each user in the data center and the stream set F k of each user are acquired according to a preset period.
  • a weight value t k,i is assigned to each stream f k,i of each user according to the weight assignment principle preset by each user.
  • the congestion window corresponding to each flow increases according to the weight value of the flow.
  • the congestion window of each stream is proportional to the weight value of the stream.
  • FIG. 5 is a message interaction diagram of a congestion control method for a data center according to Embodiment 4 of the present application. This embodiment is applicable to the system architecture shown in FIG. 3. On the basis of the foregoing Embodiment 2, an example of a congestion control method of a data center during network congestion is provided.
  • the congestion control method of the data center may include:
  • the virtual machine (upper layer sending end) sends a data packet to the sending module.
  • the sending module acquires a data packet sent by the virtual machine (upper layer sending end).
  • the CE flag is 0.
  • the sending module forwards the data packet to the switching module.
  • the switching module receives the data packet forwarded by the sending module.
  • the CE flag is 0.
  • the switching module When the length of the queue where the data packet is located is greater than the threshold, the switching module performs CE marking on the data packet, and forwards the marked data packet to the receiving module.
  • the receiving module receives the data packet forwarded by the switching module, and records the CE identifier.
  • the CE flag is 1.
  • the switch module enables the ECN function.
  • the receiving module sends the data packet to the virtual machine (the upper receiving end).
  • the virtual machine (upper layer receiving end) receives the data packet sent by the receiving module.
  • the virtual machine (upper layer receiving end) sends an ACK message to the receiving module.
  • the receiving module receives the ACK packet sent by the virtual machine (upper layer receiving end).
  • the ACK packet carries the RWND field, and the value of the RWND field is rwnd.
  • the receiving module performs ECE marking on the ACK packet according to the recorded CE identifier, and forwards the marked ACK packet to the switching module.
  • the ECE logo is 1.
  • the switching module forwards the ACK packet to the sending module.
  • the sending module receives the ACK packet forwarded by the switching module.
  • the ECE logo is 1.
  • the sending module updates cwnd to cwnd2 and rwnd to rwnd*.
  • the ECE identifier in the ACK packet is 1, indicating that the ACK packet carries the congestion identifier.
  • the rwnd sent from the receiving end is updated to rwnd*.
  • each RTT is reduced by at most cwnd.
  • the sending module sends the updated ACK packet to the virtual machine (upper layer sending end).
  • the virtual machine (upper layer sending end) receives the updated ACK message sent by the sending module.
  • the ACK packet carries the RWND field, and the value of the RWND field is rwnd*.
  • the sending module is also used to:
  • the total weight value s k corresponding to each user in the data center and the stream set F k of each user are acquired according to a preset period.
  • a weight value t k,i is assigned to each stream f k,i of each user according to the weight assignment principle preset by each user.
  • the congestion window corresponding to each stream is reduced according to the network congestion degree ⁇ multiplication, and each RTT is only reduced once.
  • the congestion window of each stream is proportional to the weight value of the stream.
  • FIG. 6 is a schematic structural diagram of a congestion control apparatus for a data center according to Embodiment 1 of the present application.
  • the congestion control device of the data center provided in this embodiment can perform the congestion control method of the data center provided by the embodiment shown in FIG. 1 to FIG. 6.
  • the congestion control device of the data center provided in this embodiment may include:
  • the obtaining module 21 is configured to obtain an ACK message.
  • the determining module 22 is configured to determine whether the ACK packet carries a congestion identifier.
  • the congestion window update module 23 is configured to: when the determining module 22 determines that the ACK packet does not carry the congestion identifier , update the congestion window length of the stream according to the standard weight value w k,i of the stream corresponding to the ACK packet to the first congestion window length. Cwnd1.
  • each user in the data center corresponds to a total weight value s k , k ⁇ 1 , s k is a positive number
  • each stream f k,i of the stream set F k of the user k corresponds to a weight value t k,i , I ⁇ 1, t k,i is a positive number
  • the congestion window update module 23 is specifically configured to:
  • the congestion window update module 23 is further configured to:
  • the determining module 22 determines whether the congestion window length of the stream corresponding to the ACK packet has been reduced in the current round trip time RTT.
  • g is a preset positive number less than 1
  • ⁇ * represents a network congestion degree in the previous RTT
  • F represents a carried in the last RTT.
  • the ACK packet with the congestion identifier occupies the proportion of all ACK packets in the previous RTT.
  • the weight update module 25 is further included, and the weight update module 25 is configured to:
  • the total weight value s k corresponding to each user in the data center and the stream set F k of each user are acquired according to a preset period.
  • a weight value t k,i is assigned to each stream f k,i of each user according to the weight assignment principle preset by each user.
  • the congestion window update module 23 is further configured to:
  • the standard weight value of the stream corresponding to the ACK packet is set to 1.
  • the congestion identifier is a congestion identifier that is marked by a display congestion notification ECN algorithm.
  • the congestion control device of the data center provided by the embodiment of the present application is used to perform the congestion control method of the data center provided by the method embodiment shown in FIG. 1 to FIG. 5 , and the technical principle and technical effects thereof are similar, and details are not described herein again.
  • FIG. 7 is a schematic structural diagram of a congestion control device of a data center according to Embodiment 1 of the present application.
  • the congestion control device of the data center may include a processor 31 and a memory 32, where the memory 32 is used to store instructions and process The device 31 is configured to execute the instructions stored in the memory 32, so that the congestion control device of the data center performs the congestion control method of the data center provided by the embodiment shown in FIG. 1 to FIG. 5, and the specific implementation manner and the technical effect are similar. Narration.
  • the processor used by the data center congestion control device in the present application may be a central processing unit (CPU), a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), and a field programmable gate array ( FPGA) or other programmable logic device, transistor logic device, hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
  • the processor can also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
  • the aforementioned program can be stored in a computer readable storage medium.
  • the program when executed, performs the steps including the various method embodiments described above.
  • the foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

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

数据中心的拥塞控制方法和装置
本申请要求于2017年08月18日提交中国专利局、申请号为201710711896.8、申请名称为《数据中心的拥塞控制方法和装置》的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及网络技术领域,尤其涉及一种数据中心的拥塞控制方法和装置。
背景技术
近年来,云计算数据中心技术得到了快速的发展,成千上万台服务器节点在数据中心中组成集群。节点的计算、存储、网络等资源被抽象以服从统一的管理,并提供单台服务器无法比拟的服务能力。云数据中心已经成为用于支持数据存储、部署多样化的网络服务和应用的最有效、最有前景的基础设施。
公共云数据中心由多租户租赁和共享一个共同的物理基础设施来运行他们的虚拟机(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报文对应的流的标准权重值w k,i更新流的拥塞窗口长度为第一拥塞窗口长度 cwnd1;将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
通过第一方面提供的数据中心的拥塞控制方法,当ACK报文中没有携带拥塞标识时,根据ACK报文对应的流的带宽分配比例调整流的拥塞窗口长度,使得拥塞窗口调整的更为准确,带宽分配更为合理。在网络流量收敛到稳定状态后,每个流的拥塞窗口均与流的标准权重值成正比,提升了每个流的流量控制的准确性,进而提升了数据中心的流量控制和拥塞控制的准确性。
可选的,在第一方面的一种可能的实施方式中,根据ACK报文对应的流的标准权重值w k,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1,包括:采用cwnd1=cwnd+w k,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报文的比例。
可选的,在第一方面的一种可能的实施方式中,还包括:根据预设周期获取数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k;根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i;采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,i
通过该可能的实施方式提供的数据中心的拥塞控制方法,可以定期更新数据中心中每个用户每个流对应的标准权重值,提升了网络不拥塞时根据流的标准权重值更新拥塞窗口的实时性和准确性。
可选的,在第一方面的一种可能的实施方式中,根据ACK报文对应的流的标准权重值w k,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1之前,还包括:若ACK报文对应的流的标准权重值不存在,则将流的标准权重值设置为1。
可选的,在第一方面的一种可能的实施方式中,拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
第二方面,本申请实施例提供一种数据中心的拥塞控制装置,该装置包括获取模块、判断模块、拥塞窗口更新模块和接收窗口调整模块。获取模块用于获取ACK报文;判断模块用于判断ACK报文中是否携带拥塞标识;拥塞窗口更新模块用于在判断模块确定ACK报文中不携带拥塞标识时,根据ACK报文对应的流的标准权重值更新流的 拥塞窗口长度为第一拥塞窗口长度cwnd1;接收窗口调整模块用于将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
可选的,在第二方面的一种可能的实施方式中,拥塞窗口更新模块具体用于:采用cwnd1=cwnd+w k,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报文的比例。
可选的,在第二方面的一种可能的实施方式中,还包括权值更新模块,权值更新模块用于:根据预设周期获取数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k;根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i;采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,i
可选的,在第二方面的一种可能的实施方式中,拥塞窗口更新模块还用于:若ACK报文对应的流的标准权重值不存在,则将流的标准权重值设置为1。
可选的,在第二方面的一种可能的实施方式中,拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
第三方面,本申请实施例提供一种数据中心的拥塞控制设备,该设备包括处理器和存储器,存储器用于存储指令,处理器用于执行存储器中存储的指令,以使该设备执行上述第一方面的方法。
结合上述第一方面以及第一方面的各可能的实施方式、第二方面以及第二方面的各可能的实施方式、第三方面以及第三方面的各可能的实施方式,数据中心中每个用户对应有总权重值s k,k≥1,s k为正数,用户k的流集合F k中每个流f k,i对应有权重值t k,i,i≥1,t k,i为正数且
Figure PCTCN2018098365-appb-000001
w k,i=t k,i/t max,t max为所有用户的所有流对应的权重值中的最大值,cwnd表示根据与流对应的上一个ACK报文更新后的流的拥塞窗口长度,α表示当前RTT内的网络拥塞程度。
第四方面,本申请实施例提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现第一方面任一项所述的方法。
第五方面,本申请实施例提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。数据中心的拥塞控制设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得该设备实施第一方面的各种实施方式提供的方法。
本申请实施例提供一种数据中心的拥塞控制方法和装置。当ACK报文中没有携带拥塞标识时,根据ACK报文对应的流的带宽分配比例调整流的拥塞窗口长度,使得拥塞窗口调整的更为准确,带宽分配更为合理。在网络流量收敛到稳定状态后,每个流 的拥塞窗口均与流的标准权重值成正比,提升了每个流的流量控制的准确性,进而提升了数据中心的流量控制和拥塞控制的准确性。
附图说明
图1为本申请实施例一提供的数据中心的拥塞控制方法的流程图;
图2为本申请实施例二提供的数据中心的拥塞控制方法的流程图;
图3为本申请实施例适用的系统架构图;
图4为本申请实施例三提供的数据中心的拥塞控制方法的消息交互图;
图5为本申请实施例四提供的数据中心的拥塞控制方法的消息交互图;
图6为本申请实施例一提供的数据中心的拥塞控制装置的结构示意图;
图7为本申请实施例一提供的数据中心的拥塞控制设备的结构示意图。
具体实施方式
本申请实施例提供的数据中心的拥塞控制方法,可以应用于数据中心的虚拟拥塞控制。用以解决现有技术中只能定性的逐流分配带宽导致数据中心的流量控制准确性低的技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本申请实施例一提供的数据中心的拥塞控制方法的流程图。本申请实施例提供的数据中心的拥塞控制方法,执行主体可以为数据中心的拥塞控制装置,该拥塞控制装置可以为数据中心服务器或者设置在数据中心服务器上的软件和/或硬件。如图1所示,本实施例提供的数据中心的拥塞控制方法,可以包括:
S101、获取ACK报文。
在传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)中,发送方向接收方发送了数据报文,如果接收方成功接收到数据报文,则会向发送方回复一个确认(Acknowledgement,ACK)报文。
通常,ACK报文具有自己固定的报文格式和长度大小。本实施例对于ACK报文的报文格式和长度大小不做特别限定,只要符合传输协议即可。例如,ACK报文中可以携带RWND字段。RWND(receiver window)字段表示接收窗口,指示了接收方通知给发送方的接收窗口长度,用于发送方确定发送窗口。发送窗口是指发送方向网络中一次连续写入的数据量,发送窗口影响着网络流量。
S102、判断ACK报文中是否携带拥塞标识。
如果ACK报文中携带拥塞标识,则执行S103~S104。
其中,拥塞标识用于指示网络发生拥塞。
需要说明,本实施例对于拥塞标识的实现方式不做限定,可以采用现有的任意一种拥塞控制机制确定的拥塞标识。例如,拥塞标识可以为一个字段,该字段可以具有 确切的取值,也可以不具有确切的取值。当ACK报文中包括该字段时,ACK报文携带拥塞标识,说明此时网络拥塞。当ACK报文中不包括该字段时,ACK报文不携带拥塞标识,说明此时网络不拥塞。又例如,拥塞标识可以为ACK报文中必须包括的一个字段,该字段取值不同时可以指示网络是否拥塞。具体的,当该字段的取值为第一数值时,ACK报文携带拥塞标识,说明此时网络拥塞。当该字段的取值为第二数值时,ACK报文不携带拥塞标识,说明此时网络不拥塞。本实施例对于第一数值和第二数值的取值不做限定。
可选的,拥塞标识可以为采用显示拥塞通告(Explicit Congestion Notification,ECN)算法标记的拥塞标识。
ECN算法是国际互联网工程任务组(The Internet Engineering Task Force,IETF)定义的一种拥塞控制机制。发送方与接收方之间开始数据传输之前首先进行ECN协商,若两方都支持ECN机制,发送方在向接收方发送数据时就会将ECN位设置为ECN使能。当网络中的路由器或者交换机发生拥塞时,路由器或者交换机将对数据包进行拥塞标记,并对标记的数据包进行转发,而非丢弃。当接收方接收到具有拥塞标记的数据包时就能够判断出网络中发生了拥塞。其中,判断是否发生拥塞存在多种判断方式。例如,当新的数据包到达交换机时,交换机将其放入目标端口队列。若此时该队列的缓存占用比例超过阈值,则交换机为该数据包打上拥塞经历(Congestion Experienced,CE)标记,随后将其转发。接收方接收到带有CE标记的数据包后,在向发送方发送ACK时,将CE信息反馈给发送方。
S103、若ACK报文中不携带拥塞标识,则根据ACK报文对应的流的标准权重值w k,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1。
其中,数据中心中每个用户对应有总权重值s k,k≥1,s k为正数,用户k的流集合F k中每个流f k,i对应有权重值t k,i,i≥1,t k,i为正数且
Figure PCTCN2018098365-appb-000002
w k,i=t k,i/t max,t max为所有用户的所有流对应的权重值中的最大值。
其中,拥塞窗口是流量控制中的重要概念。拥塞窗口是指发送方一次最多能够发送的数据量。通常,发送方确定的发送窗口小于或者等于拥塞窗口。
在本实施例中,数据中心有至少一个用户,每个用户有至少一个流。每个用户对应有总权重值。每个用户的每个流对应有权重值。对于一个用户来说,用户的所有流对应的权重值的和等于用户的总权重值。每个用户的每个流的权重值经过标准化处理后得到标准权重值,标准权重值的取值范围为大于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报文对应的流的标准权重值w k,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1,可以包括:
采用cwnd1=cwnd+w k,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报文时,可以在上一次调整的基础上,继续调整该流的拥塞窗口,实现逐流的拥塞控制,提升网络中每个用户每个流的流量控制的准确性,进而提升网络的数据流量以及流量控制的准确性。
可选的,本实施例提供的方法,还可以包括:
根据预设周期获取数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k
根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i
采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,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报文对应的流的标准权重值w k,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*。
其中,发送模块还用于:
根据预设周期获取数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k
根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i
采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,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*。
其中,发送模块还用于:
根据预设周期获取数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k
根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i
采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,i
权值信息更新的原理与上述实施例一相似,此处不再赘述。
本实施例提供的数据中心的拥塞控制方法,当网络拥塞时,每条流对应的拥塞窗口根据网络拥塞程度α乘法减小,且每个RTT仅减小一次。当网络流量收敛到稳定状态后,每条流的拥塞窗口均与流的权重值成正比。通过修改ACK报文中的RWND字段,将计算的每条流的拥塞窗口施加给上层发送端的TCP/IP协议栈,达到控制上层发送端发送数据的速率,提升了数据中心的流量控制和拥塞控制的准确性。
图6为本申请实施例一提供的数据中心的拥塞控制装置的结构示意图。本实施例提供的数据中心的拥塞控制装置,可以执行图1~图6所示实施例提供的数据中心的拥塞控制方法。如图6所示,本实施例提供的数据中心的拥塞控制装置,可以包括:
获取模块21,用于获取ACK报文。
判断模块22,用于判断ACK报文中是否携带拥塞标识。
拥塞窗口更新模块23,用于在判断模块22确定ACK报文中不携带拥塞标识时,根据ACK报文对应的流的标准权重值w k,i更新流的拥塞窗口长度为第一拥塞窗口长度cwnd1。其中,数据中心中每个用户对应有总权重值s k,k≥1,s k为正数,用户k的流集合F k中每个流f k,i对应有权重值t k,i,i≥1,t k,i为正数且
Figure PCTCN2018098365-appb-000003
w k,i=t k,i/t max,t max为所有用户的所有流对应的权重值中的最大值。
接收窗口调整模块24,用于将ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
可选的,拥塞窗口更新模块23具体用于:
采用cwnd1=cwnd+w k,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用于:
根据预设周期获取数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k
根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i
采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,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报文对应的流的标准权重值w k,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1;其中,数据中心中每个用户对应有总权重值s k,k≥1,s k为正数,用户k的流集合F k中每个流f k,i对应有权重值t k,i,i≥1,t k,i为正数且 w k,i=t k,i/t max,t max为所有用户的所有流对应的权重值中的最大值;
    将所述ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述ACK报文对应的流的标准权重值w k,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1,包括:
    采用cwnd1=cwnd+w k,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任一项所述的方法,其特征在于,所述方法还包括:
    根据预设周期获取所述数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k
    根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i
    采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,i
  6. 根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述ACK报文对应的流的标准权重值w k,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1之前,还包括:
    若所述ACK报文对应的流的标准权重值不存在,则将所述流的标准权重值设置为1。
  7. 根据权利要求1至4任一项所述的方法,其特征在于,所述拥塞标识为采用显 示拥塞通告ECN算法标记的拥塞标识。
  8. 一种数据中心的拥塞控制装置,其特征在于,包括:
    获取模块,用于获取确认ACK报文;
    判断模块,用于判断所述ACK报文中是否携带拥塞标识;
    拥塞窗口更新模块,用于在所述判断模块确定所述ACK报文中不携带所述拥塞标识时,根据所述ACK报文对应的流的标准权重值w k,i更新所述流的拥塞窗口长度为第一拥塞窗口长度cwnd1;其中,数据中心中每个用户对应有总权重值s k,k≥1,s k为正数,用户k的流集合F k中每个流f k,i对应有权重值t k,i,i≥1,t k,i为正数且
    Figure PCTCN2018098365-appb-100002
    w k,i=t k,i/t max,t max为所有用户的所有流对应的权重值中的最大值;
    接收窗口调整模块,用于将所述ACK报文中携带的第一接收窗口长度rwnd更新为第二接收窗口长度rwnd*,rwnd*=min(cwnd1,rwnd)。
  9. 根据权利要求8所述的装置,其特征在于,所述拥塞窗口更新模块具体用于:
    采用cwnd1=cwnd+w k,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任一项所述的装置,其特征在于,还包括权值更新模块,所述权值更新模块用于:
    根据预设周期获取所述数据中心中每个用户对应的总权重值s k以及每个用户的流集合F k
    根据每个用户预先设置的权重分配原则为每个用户的每个流f k,i分配权重值t k,i
    采用公式w k,i=t k,i/t max计算每个流的标准权重值w k,i
  13. 根据权利要求8至11任一项所述的装置,其特征在于,所述拥塞窗口更新模块还用于:
    若所述ACK报文对应的流的标准权重值不存在,则将所述流的标准权重值设置为1。
  14. 根据权利要求8至11任一项所述的装置,其特征在于,所述拥塞标识为采用显示拥塞通告ECN算法标记的拥塞标识。
PCT/CN2018/098365 2017-08-18 2018-08-02 数据中心的拥塞控制方法和装置 WO2019033932A1 (zh)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2019033932A1 true WO2019033932A1 (zh) 2019-02-21

Family

ID=65362773

Family Applications (1)

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

Country Status (2)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111372283A (zh) * 2020-03-10 2020-07-03 中国联合网络通信集团有限公司 拥塞控制方法及基站、用户面功能实体
CN113726671A (zh) * 2020-05-26 2021-11-30 华为技术有限公司 一种网络拥塞控制方法及相关产品
CN115190072A (zh) * 2022-07-08 2022-10-14 复旦大学 激进传输协议和保守传输协议之间公平性的速率调节方法
CN115473855A (zh) * 2022-08-22 2022-12-13 阿里巴巴(中国)有限公司 网络系统、数据传输方法
CN115484210A (zh) * 2022-08-16 2022-12-16 北京百度网讯科技有限公司 拥塞窗口的确定方法、装置与系统

Families Citing this family (6)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674242A (zh) * 2009-10-13 2010-03-17 福建星网锐捷网络有限公司 一种业务报文发送控制方法及装置
US20120092996A1 (en) * 2009-06-29 2012-04-19 Alcatel Lucent Method Of Managing A Traffic Load
CN103647722A (zh) * 2013-11-19 2014-03-19 中国科学院计算技术研究所 一种基于信誉的链路拥塞控制方法
CN104125159A (zh) * 2014-07-29 2014-10-29 福建星网锐捷网络有限公司 一种拥塞带宽检测方法、拥塞控制方法、装置及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104009931B (zh) * 2014-06-13 2017-07-14 中南大学 数据中心网络中基于通告窗口和多流协同的拥塞控制方法
WO2017139305A1 (en) * 2016-02-09 2017-08-17 Jonathan Perry Network resource allocation
CN107018086B (zh) * 2017-04-24 2019-09-24 中南大学 一种数据中心网络中基于数据包优先级的传输控制方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120092996A1 (en) * 2009-06-29 2012-04-19 Alcatel Lucent Method Of Managing A Traffic Load
CN101674242A (zh) * 2009-10-13 2010-03-17 福建星网锐捷网络有限公司 一种业务报文发送控制方法及装置
CN103647722A (zh) * 2013-11-19 2014-03-19 中国科学院计算技术研究所 一种基于信誉的链路拥塞控制方法
CN104125159A (zh) * 2014-07-29 2014-10-29 福建星网锐捷网络有限公司 一种拥塞带宽检测方法、拥塞控制方法、装置及系统

Cited By (9)

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

Also Published As

Publication number Publication date
CN109412958B (zh) 2022-04-05
CN109412958A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
WO2019033932A1 (zh) 数据中心的拥塞控制方法和装置
US10772081B2 (en) Airtime-based packet scheduling for wireless networks
US10116574B2 (en) System and method for improving TCP performance in virtualized environments
EP3389225B1 (en) Network congestion management based on communication delay
US10355997B2 (en) System and method for improving TCP performance in virtualized environments
US20190014053A1 (en) Network Flow Control Method And Network Device
WO2018210117A1 (zh) 一种拥塞控制方法、网络设备及其网络接口控制器
US9407560B2 (en) Software defined network-based load balancing for physical and virtual networks
US9985908B2 (en) Adaptive bandwidth control with defined priorities for different networks
US9497125B2 (en) Congestion control enforcement in a virtualized environment
US10531332B2 (en) Virtual switch-based congestion control for multiple TCP flows
WO2019096140A1 (zh) 一种网络服务管理方法、装置和系统
JP2007116714A (ja) 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置
Hwang et al. Deadline and incast aware TCP for cloud data center networks
Sreekumari et al. Transport protocols for data center networks: a survey of issues, solutions and challenges
WO2016155604A1 (en) Packet transmission
JP5844481B2 (ja) トランスポート非依存方式におけるマルチメディアQoEを管理する方法、システム、および装置
Lu et al. FAMD: A Flow-Aware Marking and Delay-based TCP algorithm for datacenter networks
US11533265B2 (en) Alleviating flow congestion at forwarding elements
US11190454B2 (en) Receiver-directed computer network congestion control system
Sreekumari et al. An early congestion feedback and rate adjustment schemes for many-to-one communication in cloud-based data center networks
Tahiliani et al. Tcp congestion control in data center networks
Chen et al. On meeting deadlines in datacenter networks
Khan et al. Receiver-driven flow scheduling for commodity datacenters
Abdelmoniem et al. Alleviating Congestion via Switch Design for Fair Buffer Allocation in Datacenters

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18847069

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18847069

Country of ref document: EP

Kind code of ref document: A1