WO2021238799A1 - Procédé et appareil de transmission de paquet de données - Google Patents

Procédé et appareil de transmission de paquet de données Download PDF

Info

Publication number
WO2021238799A1
WO2021238799A1 PCT/CN2021/095210 CN2021095210W WO2021238799A1 WO 2021238799 A1 WO2021238799 A1 WO 2021238799A1 CN 2021095210 W CN2021095210 W CN 2021095210W WO 2021238799 A1 WO2021238799 A1 WO 2021238799A1
Authority
WO
WIPO (PCT)
Prior art keywords
congestion
network device
data stream
identifier
data
Prior art date
Application number
PCT/CN2021/095210
Other languages
English (en)
Chinese (zh)
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 WO2021238799A1 publication Critical patent/WO2021238799A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/22Traffic shaping
    • 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/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window

Definitions

  • the embodiments of the present application relate to the field of communications, and in particular, to a data packet transmission method and device.
  • packet loss is used as a network congestion signal for congestion control.
  • TCP transmission control protocol
  • the slow start phase and congestion avoidance phase of the transmission control protocol (TCP) congestion control algorithm will increase the sending window as quickly as possible, and constantly test the network capacity. , The window rollback is not performed until the packet loss signal occurs.
  • TCP congestion control machine increases the number of windows (the number of sending windows CWND> network bandwidth C*round-trip time, RTT), it also brings some problems, such as increased delay and TCP caused by tail drop Global synchronization, etc.
  • the data center TCP (DCTCP) technology that uses explicit congestion notification (ECN) as a network congestion signal came into being.
  • DCTCP data center TCP
  • the network device when the queue length of the network device as the congestion point exceeds the threshold, the network device will mark the ECN field of the IP header of the data message that enters the queue later according to the probability, indicating that the data message is experiencing congestion;
  • the end According to the ECN field in the IP header of the data message, the end will also mark the ECN in the TCP header of the ACK message and notify the sender, and the sender will count each RTT of the received ACK message with ECN marked messages
  • the sending window (the number of data packets sent in the RRT) is adjusted to avoid blindly lowering the window according to the large ratio of packet loss, resulting in severe throughput jitter.
  • DCTCP uses ECN as a congestion control signal, which can alleviate burst behavior and obtain smaller buffer usage with low latency; in addition, the sender uses the ECN mark ratio for congestion control, and the change of the sending window is scalable, and higher throughput can be obtained. Rate. However, if you simply protect the new flow without performing congestion control in DCTCP, when the queue is truly congested, the new flow will preempt bandwidth and cause congestion to increase.
  • the present application provides a data message transmission method and device to balance new flow performance and network performance during congestion control.
  • a data packet transmission method may include: a first network device determines a congestion state of the first network device according to a queue length within a preset time; when the first network device determines that its congestion state is stable When congested, the first network device adds a first identifier to the received first data message, and the first identifier is used to identify that the first network device is in stable congestion; or, when the first network device determines that its congestion state is unstable congestion , The first network device adds a second identifier to the received second data message, the second identifier is used to identify that the second network device is in unstable congestion, where the first identifier and the second identifier are different.
  • the congestion state of the network device is determined according to the queue length within a preset time period, and different identifiers are added to the messages entering the queue under different congestion states, so that other devices can respond to the difference.
  • the identifier of determines the number of sending windows for the first data stream. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
  • the unsteady congestion can be within a preset time.
  • the queue length of the network device is congested (the queue length is in the congestion interval)
  • the congestion situation lasts for a short time
  • the queue of the network device is not full, and the capacity of the network device can be
  • the queue length is supported. Even if the queue length continues to increase, it will not cause a congestion state in which the performance of the network device drops sharply.
  • Stable congestion can be a pre-determined period of time.
  • the queue length of the network device is congested (the queue length is in the congestion interval) for a long time, and the queue of the network device is full. If the queue length continues to increase, the performance of the network device will drop sharply. Congestion state.
  • the first network device determines the congestion state of the first network device according to the queue length within a preset time period, which may specifically include: if the queue length is within the preset time period, If the duration of the congestion interval is less than the first duration, it is determined that the congestion status of the first network device is unstable congestion; or, if the queue length is within the preset duration and the duration of the queue in the first interval is greater than the second duration, the first network is determined The congestion status of the device is stable congestion. The second duration is greater than or equal to the first duration.
  • the criteria for judging different congestion states are provided.
  • the congestion interval is a queue length interval determined according to the congestion threshold for judging whether it is congested. When the queue length is within (greater than or equal to the lower limit of the interval, less than or equal to the upper limit of the interval) congestion interval, it can be considered that congestion has occurred.
  • the congestion interval may include the congestion threshold, or the lower limit of the congestion interval may be greater than or equal to the congestion threshold, or the range of the congestion interval may be determined according to the congestion threshold according to actual needs.
  • the method provided in this application further includes: the first network device sends first congestion information to the second network device, and the first network device sends first congestion information to the second network device.
  • the congestion information is used to indicate the congestion state of the first network device; the second network device is the upper-level network device of the receiving end device of the data message.
  • the network device In order to instruct the network device to determine the number of sending windows of the new stream according to the first congestion information, so as to be compatible with the scenario where the source device does not support ECN.
  • the network device may be an access point (access point, AP) device.
  • access point access point, AP
  • the first identifier may be used to indicate that the number of sending windows is added to the received first data stream; the second identifier may be used to indicate Reduce or maintain the number of sending windows for the first data stream.
  • the first data stream may be a data stream meeting a preset condition.
  • the first data message and the second data message may belong to the first data flow, or may not belong to the first data flow.
  • the first identifier or the second identifier may also be used to indicate that the number of sending windows for the second data stream is reduced, and the first data stream
  • the second data stream is a data stream other than the second data stream that meets the preset condition, and the second data stream is a data stream being transmitted by the first network device.
  • the second data flow may include the first data packet or the data flow to which the second data packet belongs.
  • the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time.
  • the first identifier or the second identifier may be added to the Internet Protocol (IP) header.
  • IP Internet Protocol
  • the first network device may be a congestion point device.
  • the present application provides another data message transmission method, which may include: a second network device determines the congestion status of a congestion point device on the transmission path of the sent data message within a preset period of time; the congestion The state can include stable congestion and unstable congestion; if the congestion state is unstable congestion, the second network device increases the number of sending windows for the first data flow; if the congestion state is stable congestion, the second network device responds to the first data flow Reduce or maintain the number of sending windows.
  • the congestion state of the congestion point device within a preset time period, different schemes are adopted to determine the number of transmission windows of the first data stream in different congestion states. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced or maintained, achieving a balance between data stream performance and network performance during congestion control.
  • stable congestion may be within a preset duration, and the length of the queue of the congestion point device in the congestion interval is less than the first duration; or, stable congestion may be a preset duration Inside, the length of the queue of the congested point device is in the congestion interval for a period of time greater than the second period of time.
  • the criteria for judging different congestion states are provided.
  • the second network device is an upper-level network device of the receiving end device of the data packet.
  • the second network device determining the congestion status of the congestion point device on the data packet transmission path may specifically include: the second network device receives first congestion information from the congestion point device, and the first congestion information may be used to indicate the congestion point The congestion status of the device.
  • the method provided in this application may further include: the second network device sends the number of sending windows of the first data stream to the sending end device of the data packet.
  • the upper-level network device of the receiving end device determines the congestion status of the congestion point device according to the first congestion information, and then determines the number of sending windows of the first data stream, and determines the sending window of the first data stream.
  • the data is provided to the sender device of the data message to be compatible with scenarios where the source device does not support ECN.
  • the first congestion information received by the second network device from the congestion point device may be sent by the congestion point device to the second network device Dedicated signaling.
  • the dedicated signaling may be a control message using a private protocol.
  • the second network device may be the sender device of the data packet, and the second network device determines the data packet transmission path
  • the congestion status of the device at the congestion point may include: the second network device receives an acknowledgement (ACK) message of the data message, and the header of the ACK message carries a message indicating the congestion point device
  • ACK acknowledgement
  • the ACK message is sent by the receiving end device of the data message after receiving the data message.
  • the first data stream may be a data stream that meets a preset condition.
  • the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time .
  • the second congestion information carried in the ACK message may be the receiving end device of the data message according to the data message The identifier, which is set in the ACK packet.
  • the second congestion information carried in the ACK message may be a third identifier used to identify that the congestion point device is in unstable congestion, or a fourth identifier used to identify that the congestion point device is in stable congestion.
  • the ECN header of the ACK message may carry the second congestion information.
  • the data message when the congestion state of the congestion point device in the data message transmission path is unstable congestion within the preset time period, the data message can carry a first identifier, and the first identifier is used to identify that the congestion point device is in unstable congestion. ;
  • the data message may carry a second identifier, and the second identifier is used to identify the congestion point device in stable congestion.
  • the second network device reduces the number of sending windows of the first data stream, which can be implemented according to the scheme of the DCTCP mechanism.
  • the second network device increases or maintains the number of sending windows of the first data stream, which can be implemented according to a window-climbing mechanism solution.
  • the data packet transmission method provided in this application may further include: the second network device determines that the congestion status of the congestion point device is In stable congestion or unstable congestion, the second network device can also reduce the number of sending windows of the second data stream, which is the data stream being transmitted by the first network device.
  • the second network device reduces the number of sending windows of the second data stream, which can be implemented according to the scheme of the DCTCP mechanism.
  • the second data stream may include the data stream to which the foregoing sent data packet belongs.
  • this application provides yet another message transmission method.
  • the method may include: a third network device receives a data message; if the data message is marked with a first identifier, the third network device may The third identifier is marked in the ACK message; where the first identifier and the third identifier are used to indicate that the congestion state of the congestion point device on the data message transmission path is unstable congestion within a preset period of time; or, if this
  • the second identifier is marked in the data message
  • the third network device marks the fourth identifier in the ACK message of the data message; the second identifier and the fourth identifier are used to indicate congestion on the transmission path of the data message
  • the congestion state of the point device within the preset time period is stable congestion; the third network device sends a marked ACK message to the sender device of the data message.
  • the third network device adds different values to the ACK message of the data message in different congestion states according to the congestion state of the congestion point device on the data message transmission path within a preset time period. So that other devices can determine the number of sending windows for the first data stream according to the different identifiers. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
  • the first identifier and the third identifier can be used to indicate that the number of sending windows is added to the first data stream; the second identifier and the first The four flags can be used to indicate to reduce or maintain the number of sending windows for the first data stream.
  • the first data stream is a data stream that meets a preset condition.
  • the first identification or the second identification or the third identification or the fourth identification can also be used to indicate that the second data stream is reduced The number of sending windows, the first data stream is a data stream other than the second data stream that meets the preset condition, and the second data stream is a data stream being transmitted by the first network device.
  • the second data stream may include the data stream to which the received data packet belongs.
  • the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time.
  • the first identification or the second identification can be added to the IP packet header, and the third or fourth identification can be added to In the TCP header.
  • the present application provides a data message transmission device, which can be deployed in a first network device or matched with the first network device.
  • the device may include a determining unit and a processing unit. in:
  • the determining unit is configured to determine the congestion state of the first network device according to the queue length within the preset time period.
  • the processing unit is configured to add a first identifier to the received first data message when the determining unit determines that the congestion state of the first network device is unstable congestion, where the first identifier is used to identify that the first network device is in unstable congestion.
  • the processing unit is configured to, when the determining unit determines that the congestion state of the first network device is stable congestion, add a second identifier to the received second data message, and the second identifier is used to identify that the first network device is in stable congestion.
  • the first identifier and the second identifier are different.
  • the present application provides another data packet transmission device, which can be deployed in a second network device or matched with the second network device.
  • the device may include a determining unit and a processing unit. in:
  • the determining unit is used to determine the congestion state of the congestion point device on the transmission path of the sent data message within a preset period of time; the congestion state includes stable congestion and unstable congestion.
  • the processing unit is configured to increase the number of sending windows to the first data stream if the congestion state determined by the determining unit is unstable congestion.
  • the processing unit is further configured to reduce or maintain the number of sending windows for the first data stream if the congestion state determined by the determining unit is stable congestion.
  • this application provides yet another message transmission device, which can be deployed in a third network device or matched with the third network device.
  • the device may include: a receiving unit, a processing unit, and a sending unit.
  • the receiving unit is used to receive data messages.
  • the processing unit is configured to, if the first identifier is marked in the data message, mark the third identifier in the ACK message of the data message; or, if the second identifier is marked in the data message, in the data message
  • the fourth identifier is marked in the ACK message; where the first identifier and the third identifier are used to indicate that the congestion state of the congestion point device on the data message transmission path within a preset period of time is unstable congestion.
  • the second identifier and the fourth identifier are used to indicate that the congestion state of the congestion point device on the data message transmission path is stable congestion within the preset time period.
  • the sending unit is used to send a marked ACK message to the sender device of the data message.
  • the present application provides a network device that can implement the function in the method example described in any one of the first to third aspects.
  • the function can be implemented by hardware or Implementation of the corresponding software through hardware.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the network device can exist in the form of a chip product.
  • the structure of the network device includes a processor and a transceiver, and the processor is configured to support the network device to perform corresponding functions in the foregoing method.
  • the transceiver is used to support communication between the network device and other devices.
  • the network device may also include a memory, which is used for coupling with the processor, and stores the necessary program instructions and data of the network device.
  • a computer-readable storage medium including instructions, which when run on a computer, cause the computer to execute the data packet provided by the first to third aspects or any one of the possible implementations thereof Transmission method.
  • a computer program product containing instructions which when it runs on a computer, causes the computer to execute the data packet transmission method provided in the first to third aspects or any one of its possible implementation manners. .
  • the present application provides a chip system that includes a processor and may also include a memory for implementing corresponding functions in the foregoing method.
  • the chip system can be composed of chips, or it can include chips and other discrete devices.
  • the present application provides a data message transmission system.
  • the system includes the first network device of the first aspect, the second network device of the second aspect, and the third network device of the third aspect, each of which is provided with each of the foregoing Aspects and functions of any possible implementation.
  • FIG. 1 is a schematic structural diagram of a data network provided by an embodiment of this application.
  • FIG. 2 is a schematic structural diagram of a network device provided by an embodiment of this application.
  • FIG. 3 is a schematic flowchart of a data packet transmission method provided by an embodiment of the application.
  • FIG. 4 is a schematic diagram of a comparison between queue length, congestion threshold, and congestion interval according to an embodiment of the application
  • FIG. 5 is a schematic structural diagram of a first network device provided by an embodiment of this application.
  • FIG. 6 is a schematic flowchart of another data packet transmission method provided by an embodiment of the application.
  • FIG. 7 is a schematic flowchart of yet another data packet transmission method provided by an embodiment of this application.
  • FIG. 8 is a schematic flowchart of another data packet transmission method provided by an embodiment of this application.
  • FIG. 9 is a schematic structural diagram of a data packet transmission device provided by an embodiment of the application.
  • FIG. 10 is a schematic structural diagram of another data message transmission apparatus provided by an embodiment of the application.
  • FIG. 11 is a schematic structural diagram of another network device provided by an embodiment of this application.
  • words such as “first” and “second” are used to distinguish the same or similar items with basically the same function and effect.
  • words “first”, “second” and the like do not limit the quantity and order of execution, and the words “first” and “second” do not limit the difference.
  • the “first” and second descriptions of technical features have no order or size order.
  • A/B can mean A or B; the "and/or” in this application is only It is a kind of association relationship that describes the associated objects, which means that there can be three kinds of relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, and B exists alone. Among them, A, B It can be singular or plural.
  • plural means two or more than two.
  • the following at least one item (a)” or similar expressions refers to any combination of these items, including any combination of a single item (a) or a plurality of items (a).
  • at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple .
  • At least one may also be described as one or more, and the multiple may be two, three, four or more, which is not limited in the present application.
  • Data message refers to the smallest unit of data transmission in network communication, and can also be called a data packet or message.
  • a data message includes a header part and a payload part. Among them, the header part of the message may include control information, and the payload part may include valid data information.
  • a data stream can be a collection of data packets that perform a business in network communication.
  • Congestion point device an intermediate node device pre-configured in the data transmission path for congestion assessment.
  • the congestion point device may be a switching device, such as a switch or router or others.
  • the position of the congestion point device on the transmission path can be configured according to actual needs.
  • the sender device of the data message refers to the source device that sends the data message.
  • the receiving end device of the data message refers to the destination device of the data message.
  • the upper-level network device of the receiving end device refers to the network device closest to the receiving end device on the transmission path of the data message.
  • the upper level network device of the receiving end device may be an AP device connected to the receiving end device.
  • AP equipment refers to network equipment that provides access services, and its form can be routers, switches, base stations, or others, which is not limited by this application.
  • Congestion threshold a pre-configured queue length threshold used to determine whether the congestion level is reached. It can be a static value or a dynamic value.
  • the congestion interval is a queue length interval determined according to the congestion threshold for judging whether it is congested. When the queue length is in the congestion interval (greater than or equal to the lower limit of the interval, less than or equal to the upper limit of the interval), it can be considered that congestion has occurred.
  • the congestion interval may include the congestion threshold, or the lower limit of the congestion interval may be greater than or equal to the congestion threshold, or the range of the congestion interval may be determined according to the actual demand according to the congestion threshold.
  • Unsteady congestion can be called accidental congestion, non-full-load congestion, or other. It can be within a preset time period. Although the queue length of the network device is congested (the queue length is in the congestion interval), the congestion situation lasts for a short time. The queue of the device is not full, and the capacity of the network device can support the queue length. Even if the queue length continues to increase, a congestion state in which the performance of the network device will not drop sharply.
  • Stable congestion can be called non-incidental congestion, full-load congestion, or other. It can be that the queue length of the network device is congested for a long time (the queue length is in the congestion interval) within the preset time period, and the queue of the network device is full. The queue length continues to increase, and the performance of the network equipment drops sharply in a congested state.
  • DCTCP technology uses ECN as a network congestion signal for congestion control at the IP and TCP layers.
  • the specific solution is: the congestion point device compares the queue length with the threshold, and the queue length exceeds the threshold.
  • the congestion point device will mark the ECN in the ECN field of the IP header of the data packet that enters its queue later, so that the receiving device is in
  • the ECN header of the ACK message is also marked, and the ECN mark is notified to the sending end device through the ACK message, and the sending end device finally adjusts the window according to the ratio of the ECN mark.
  • a transport layer ECN capability (ECN-Capable Transport) can be set in the ECN field in the IP header of the data message.
  • ECT ECN indication
  • the intermediate router detects that a certain data message should be used to indicate congestion
  • ECT is marked as 0 or 1
  • this data message can be marked as CE is valid (mark the CE as 1)
  • the receiving end TCP receives this data message, if it finds that the CE is valid, you can set the ECN-Echo flag bit (also known as the TCP header) in the subsequent ACK message ECE mark) is 1 to indicate congestion.
  • the sender receives an ACK message, it can respond to network congestion according to the ECN-Echo flag.
  • the ECT indication and CE indication in the IP header can be regarded as the ECN marking in the IP header, and the ECN-Echo flag in the TCP header is regarded as the ECN marking in the TCP header.
  • F is the proportion of received ACK packets with ECE marked as 1 in the previous window.
  • g is an adjustable parameter used to evaluate the probability of congestion.
  • the upper limit of g may be 1.386/(2(C*RTT+K)).
  • K is an adjustable parameter, which is a threshold for network equipment to judge whether it is in a congested state.
  • the lower limit of K can be (C*RTT)/7.
  • the value of K can be configured according to actual needs, which is not limited in this application.
  • C is the bandwidth of the link.
  • the threshold is simply used to determine whether congestion is caused.
  • the queue length will inevitably exceed the threshold occasionally but the queue of the network device is not full. Even if the queue enters data packets again, it will not cause a special situation in which the performance of the network device will drop sharply. (In this special case, the network device can actually process the data message according to the original window). It is determined to be congested, and congestion control is performed. In this way, although the network performance is effectively improved, new data streams (data streams that meet preset conditions, such as data streams to be transmitted or data streams whose link establishment time is later than the preset time) need to be spent longer Time to share bandwidth with old streams to meet their own business bandwidth requirements.
  • the new data stream will be treated exclusively during system congestion control without congestion control. Once the network is severely congested, the new data stream will increase the congestion and seriously affect the network performance. Therefore, it is particularly important to balance new flow performance and network performance during congestion control.
  • the embodiment of the present application provides a data message transmission method.
  • the congestion point device determines whether its congestion state is stable congestion or non-steady congestion according to the queue length within a preset time period, and responds to data messages in different congestion states. Perform different markings so that the congestion control device adopts different window control schemes for different data streams according to the markings. Under unstable congestion, new data streams are increased in the number of sending windows, and new data streams are reduced or reduced under stable congestion. Keep the number of sending windows to balance new flow performance and network performance during congestion control.
  • the data packet transmission method provided by the embodiment of the present application may be applicable to the data network 10 shown in FIG. 1.
  • the data network 10 may be a communication network or a computer network, and the type of the data network is not specifically limited in this application.
  • the data network 10 includes a sending end device 101 and at least one forwarding device 102 and a receiving end device 103.
  • the forwarding device 102 may also be referred to as a node device, a forwarding node, and so on.
  • the sending end device 101 may be a data message generating device, and the at least one forwarding device 102 may be a device on the transmission path of the data message from the sending end device 101 to the receiving end device 103.
  • the forwarding device 102 may be a switch or router or other network device capable of forwarding data packets. In the embodiment of the present application, the actual product form of the forwarding device 102 is not limited.
  • the receiving end device 103 After receiving the data message, the receiving end device 103 generates a corresponding ACK message and sends it to the sending end device 101.
  • Any forwarding device 102 on the transmission path of the data message from the sending end device 101 to the receiving end device 103 can be configured as a congestion point device for monitoring network congestion.
  • the forwarding device 102 configured as a congestion point device can determine its congestion state according to the data message transmission method provided in this application, and mark the data message.
  • the receiving end device 103 may mark the ACK packet of the data packet according to the marking of the data packet by the congestion point device, so as to instruct the transmitting end device 101 to perform congestion control.
  • the upper-level network device (not shown in Figure 1) of the receiving end device 103 can perform congestion control based on the congestion information provided by the congestion point device, and intercept the receiving end
  • the ACK message sent by the device 103 carries the number of sending windows determined by the congestion control in the ACK message, and sends the ACK message to the sending end device 101.
  • an embodiment of the present application provides a network device for executing the data packet transmission method provided by the present application.
  • the network device may be the sender device 101 in the data network 10 shown in FIG. 1, and is configured as a congestion point. At least one of the forwarding device 102 and the receiving end device 103 of the device. Alternatively, the network device may be an upper-level AP device of the receiving end device 103 in the data network 10 shown in FIG. 1.
  • FIG. 2 shows a network device 20 related to various embodiments of the present application. As shown in FIG. 2, the network device 20 may include a processor 201, a memory 202, and a transceiver 203.
  • each component of the network device 20 will be specifically introduced with reference to FIG. 2:
  • the memory 202 may be a volatile memory (volatile memory), such as a random-access memory (random-access memory, RAM); or a non-volatile memory (non-volatile memory), such as a read-only memory (read-only memory).
  • volatile memory such as a random-access memory (random-access memory, RAM); or a non-volatile memory (non-volatile memory), such as a read-only memory (read-only memory).
  • memory ROM), flash memory (flash memory), hard disk (hard disk drive, HDD) or solid-state drive (solid-state drive, SSD); or a combination of the above-mentioned types of memory, used to store materials that can implement the method of this application Program code, configuration files or other content.
  • the processor 201 is the control center of the network device 20.
  • the processor 201 may be a central processing unit (CPU), an application specific integrated circuit (ASIC), or it may be configured to implement one or more integrated circuits of the embodiments of the present application.
  • Circuits for example: one or more microprocessors (digital singnal processors, DSP), or one or more field programmable gate arrays (FPGA).
  • the transceiver 203 is used to communicate with other devices.
  • the transceiver 203 may be a communication port of the network device 20 or others.
  • the processor 201 executes the following functions by running or executing software programs and/or modules stored in the memory 202, and calling data stored in the memory 202:
  • a first identifier is added to the received first data message, and the first identifier is used to identify that the network device 20 is in Unsteady congestion; or, when it is determined that the congestion state is stable congestion, a second identifier is added to the received second data message.
  • the second identifier is used to identify that the network device 20 is in stable congestion, where the first identifier and the second Different logo
  • the processor 201 executes the following functions by running or executing software programs and/or modules stored in the memory 202, and calling data stored in the memory 202:
  • the congestion state can include stable congestion and non-steady congestion; if the congestion state is non-steady congestion, add to the first data stream The number of sending windows; or, if the congestion state is stable congestion, reduce or keep the number of sending windows for the first data stream.
  • an embodiment of the present application provides a data message transmission method, which is applied to congestion control in the process of data message transmission on a data network. It should be noted that the solution provided in this application has a similar transmission process for each data message. In the embodiment of this application, only congestion control during the transmission of one data message is taken as an example to describe the solution provided in this application in detail. , The others will not be repeated one by one.
  • the data message transmission method provided by this application may include:
  • the first network device determines the congestion state of the first network device according to the queue length within the preset time period.
  • the first network device may be a congestion point device on the data packet transmission path.
  • the first network device may execute S301 periodically or in real time or when other trigger conditions are met.
  • the embodiment of the present application does not limit the timing of executing S301.
  • the first network device first determines a congestion threshold for judging congestion, and then can determine the congestion state of the first network device according to the threshold and the queue length within a preset time period.
  • the congestion threshold may be a static fixed value.
  • the first network device may determine the static congestion threshold based on empirical values, or its performance, or the delay requirements of the queue.
  • the method for determining the static congestion threshold is not limited in this application.
  • the congestion threshold may be a dynamic value.
  • the congestion threshold can be configured as C*RTT* ⁇ .
  • C can be the queue bandwidth
  • RTT is the estimated RTT of the flow in the queue
  • can be a preset parameter.
  • can be 1/7.
  • the congestion threshold can be configured with reference to RFC3168, which will not be repeated here.
  • a preset time length for example, k*RTT
  • it can be analyzed within a preset time length (for example, k*RTT) to determine whether the queue length of the first network device is stable near the congestion threshold, so as to determine whether the congestion state of the first network device is stable congestion.
  • a preset time length for example, k*RTT
  • methods such as 3sigma can be used to determine whether the queue length is stable near the congestion threshold.
  • preset duration can be configured according to actual needs, which is not limited in the embodiment of the present application.
  • the first network device determines the congestion state of the first network device according to the queue length within a preset time period, which can be specifically implemented as follows: the first network device determines the congestion interval according to the congestion threshold, if In the preset period of time, the length of the queue of the first network device in the congestion interval is less than the first period of time, and it is determined that the congestion state of the first network device is unstable congestion. Or, if the length of the queue of the first network device in the congestion interval is longer than the second duration within the preset time period, it is determined that the congestion state of the first network device is stable congestion. Wherein, the second duration is greater than or equal to the first duration.
  • the values of the first duration and the second duration can be configured according to actual requirements, which are not limited in the embodiment of the present application.
  • the first duration may be the preset duration multiplied by a certain ratio
  • the second duration may be the preset duration multiplied by another ratio.
  • the first duration may be equal to the second duration.
  • the congestion state of the first network device can be determined as stable congestion or non-congestion according to actual application requirements. Stable congestion is not limited in this embodiment of the application.
  • the length of the queue of the first network device is not always in the congestion interval within the preset time period, it may be determined that the congestion state of the first network device is not congested.
  • FIG. 4 provides a comparison diagram of queue length, congestion threshold, and congestion interval.
  • the queue length of the first network device is not always in the congestion interval, and it is determined that the congestion state of the first network device within the first preset time period is not congested.
  • the queue length of the first network device has a period t1 in the congestion interval, but the period t1 is less than the first period. It is determined that the congestion state of the first network device in the second preset period is unstable congestion.
  • the queue length of the first network device has a time period t2 in the congestion interval, and the time period t2 is greater than the second time period. It is determined that the congestion state of the first network device in the third preset time period is stable congestion.
  • the first network device determines that its congestion state is unstable congestion, and S302 may be executed after S301.
  • the first network device determines that its congestion state is stable congestion, and S303 may be executed after S301.
  • the first network device determines that its congestion state is uncongested, and after S301, it can continue to transmit data packets in the same manner as before S301, which will not be repeated here.
  • the first identifier is used to identify that the first network device is in unstable congestion.
  • the first data message may be part or all of the data messages that will enter the queue after S301 is executed.
  • the first data message may be a part or all of the data message that will enter the queue and the data message waiting in the queue after the execution of S301.
  • the content of the first data message can be configured according to actual requirements, which is not limited in the embodiment of the present application.
  • the second identifier is used to identify that the second network device is in stable congestion, and the first identifier and the second identifier are different.
  • the second data message may be a data message that will enter the queue after S301 is executed.
  • the second data message may be a data message that will enter the queue after the execution of S301, and a data message waiting in the queue.
  • the content of the second data packet can be configured according to actual requirements, which is not limited in the embodiment of the present application.
  • the second data message may be the same data message as the first data message, and of course, it may also be a different data message.
  • the first identifier may also be used to indicate to increase the number of sending windows for the received first data stream; the second identifier may also be used to indicate to reduce or maintain the number of sending windows for the first data stream.
  • the first data stream may be a data stream meeting a preset condition.
  • the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time.
  • the data stream to be transmitted can be referred to as a new data stream, that is, a data stream that has not yet started to transmit data packets after a successful link establishment.
  • the first identifier or the second identifier may also be used to indicate to reduce the number of sending windows for the second data stream.
  • the second data stream is the data stream being transmitted by the first network device.
  • the first data stream may be a data stream other than the second data stream that meets the preset condition.
  • the second data stream may include the first data packet or the data stream to which the second data packet belongs.
  • the second data stream may also include a data stream other than the data stream to which the first data packet or the second data packet belongs.
  • the first identifier or the second identifier can be added to the message header.
  • the message header may be an IP header.
  • the embodiment of the present application does not specifically limit the position and specific form of the first identifier or the second identifier in the message header, and can be configured according to actual requirements.
  • the following describes the adding location and content of the first identifier or the second identifier through several possible implementation manners.
  • N bits are selected as the first congestion flag, and the first congestion flag is set to a different value as the first Logo or second logo.
  • the value of N can be determined according to actual needs, and is not limited in the embodiment of the present application.
  • the different values of the first congestion flag bit can be configured according to actual requirements, which are not limited in the embodiment of the present application.
  • the first congestion flag bit can be set to 0 as the first indicator, and the first congestion flag bit can be set to 1 as the second indicator.
  • the 7th and 8th bits of the res field in the TOS field of the IP header can be defined as the ECN field, which has four values (00/01/10/11).
  • 00 means that the data message does not support ECN
  • 01 and 10 indicate that the data message supports the ECN function.
  • the ECN mark is used to indicate whether the first network device performs ECN mark when determining congestion. When it is 00, the first network device does not perform ECN mark. When it is 01 or 10, the first network device performs ECN mark.
  • the first network device may change the ECN flag in the ECN field of the data message to 10 (if 01 is changed to 10, if it is 10 remains) as the first identification. If the first network device determines that its congestion state is stable congestion in S301, the first network device may change the ECN flag in the ECN field of the data message to 11 as the second identifier.
  • FIG. 5 illustrates a structure of a first network device.
  • the first network device may include a network processor (NP), a packet editor (PE), an output buffer (OB), and a traffic manager (traffic manager). , TM).
  • NP network processor
  • PE packet editor
  • OB output buffer
  • TM traffic manager
  • a data message enters the NP of the first network device, and the NP drives the PE to enable the TM to enable the ECN function, and the microcode in the NP can read the relevant information in the TM Queue information (via registers), then calculate the congestion threshold and write it into the register in the TM.
  • TM can use dynamically changing congestion thresholds to mark data messages. Among them, TM can perform ECN marking in the manner of S302 or S303.
  • the ECN mark of the data message can also be modified through NP (for example, NP can modify the ECN field 00 in the IP header of the data message to 01/10 ) To enable TM to mark the message with ECN.
  • the purpose of the above procedures from S301 to S303 is to adjust the number of sending windows of the data stream when the first network device is congested, and the number of sending windows of the data stream can be adjusted by the second network device.
  • the second network device may be the sender device of the data packet, or the second network device may be the upper-level network device of the receiver device of the data packet.
  • the data packet transmission method provided in this application may further include S303a.
  • the first network device sends the first congestion information to the second network device.
  • the first congestion information is used to indicate the congestion state of the first network device.
  • the first congestion information may be dedicated signaling sent by the first network device as the congestion point device to the second network device.
  • the dedicated signaling may be a control message using a private protocol, which is not specifically limited in the embodiment of the present application.
  • the first congestion information may also include the identification of the first network device, the identification of the queue, and the congestion indication.
  • the congestion indication may be used to indicate whether the first network device is in stable congestion. For example, congestion indicator 1 indicates stable congestion, and congestion indicator 0 indicates unstable congestion.
  • the first congestion information may be as shown in Table 1.
  • the first network device sends the first congestion information shown in Table 1 to the second network device, it is used to indicate that the queue 2 in the first network device causes stable congestion.
  • Table 1 is only an example to illustrate the form and content of the first congestion information, and does not constitute a specific limitation.
  • the data message is sent to the receiving end device through the transmission path, and the second network device can adjust the number of sending windows of the data stream.
  • the second network device may be the sender device of the data packet, or the second network device may be the upper-level network device of the receiver device of the data packet.
  • the data packet transmission method provided in the embodiment of the present application may further include S304 to S306.
  • the second network device determines the congestion state of the congestion point device on the transmission path of the sent data packet within a preset period of time.
  • the congestion state includes stable congestion and unstable congestion.
  • the congested state may also include uncongested.
  • the second network device is the upper-level network device of the receiving end device of the data message.
  • the second network device determines the congestion status of the congestion point device on the data message transmission path. It includes: the second network device receives the first congestion information from the congestion point device.
  • the first congestion information has been described in detail in the foregoing content, and will not be repeated here.
  • the second network device is the sender device of the data packet, and the second network device determines the congestion status of the congestion point device on the data packet transmission path, which may specifically include: the second network device receives The ACK message of the data message, the header of the ACK message carries second congestion information for indicating the congestion status of the congestion point device, and the second network device determines the congestion status of the congestion point device according to the second congestion information .
  • the ACK message is sent by the receiving end device of the data message after receiving the data message.
  • the second congestion information carried in the ACK message refer to the detailed description of the solution corresponding to FIG. 7 below for details.
  • the second network device determines in S304 that the congestion state of the congestion point device is unstable congestion, S305 is executed. Or, if the second network device determines that the congestion state of the congestion point device is stable congestion in S304, S306 is executed. If the second network device determines in S304 that the congestion status of the congestion point device is not congested, the second network device may increase the number of sending windows for the first data stream.
  • the second network device increases the number of sending windows of the first data stream, which can be implemented according to the scheme of the window crawling mechanism. For example, the second network device increases or maintains the first data stream to increase the number of sending windows according to the RENO or CUBIC window crawling mechanism.
  • the number of original sending windows can be calculated (for a data stream to be transmitted, the original sending window number can be the number of sending windows of the previous RRT of the data stream being transmitted; for a data stream that has already started transmission, the original sending window number can be The number of sending windows of the previous RRT itself) is doubled or the preset step is increased, so as to increase the number of sending windows.
  • the second network device reduces the number of sending windows of the first data stream, which can be implemented according to the scheme of the DCTCP mechanism.
  • the specific implementation has been described in detail in the foregoing content and will not be repeated here.
  • the congestion state of the congestion point device within a preset time period, different schemes are adopted to determine the number of transmission windows of the first data stream in different congestion states. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced or maintained, achieving a balance between data stream performance and network performance during congestion control.
  • the second network device is the upper-level network device of the receiving end device of the data packet.
  • the data packet transmission method provided in the embodiment of the present application may further include S307 and S308.
  • the second network device sends the sending window number of the first data stream to the sending end device of the data packet.
  • the second network device may intercept the ACK message of the data message sent by the receiving end device of the data message, and carry the ACK message in the transmission window number of the first data stream determined in S305 or S306. In the text, sent to the sending end device.
  • the second network device when the second network device is the upper-level network device of the receiving end device of the data message, the second network device also needs to determine the congestion status of the congestion point device according to the congestion information, and determine the congestion status of the second data stream The number of sending windows. For example, when the congestion status of the congestion point device is uncongested, the number of sending windows of the second data stream can be determined according to the window climbing mechanism; or, when the congestion status of the congestion point device is stable congestion or non-steady congestion, it can be based on DCTCP The mechanism determines the number of sending windows for the second data stream. Therefore, the second network device may also send the determined number of sending windows of the second data stream to the sending end device of the data message, and the specific method may be the same as the number of sending windows for sending the first data stream, which will not be repeated here.
  • the sending end device receives the ACK packet, and determines the number of sending windows for the first data stream according to the ACK packet.
  • the sending end device may compare the number of sending windows of the first data stream carried in the ACK message with the number of sending windows executed by itself, and take the smaller of the two as the sending window of the first data stream. Count, send the data packet of the first data stream.
  • the sending end device may compare the number of sending windows of the second data stream carried in the ACK message with the number of sending windows executed by itself, and take the smaller of the two as the number of sending windows of the second data stream, and continue sending Data packet of the second data stream.
  • the embodiment of the present application provides another data message transmission method, which is applied to congestion control during the process of data message transmission on a data network.
  • the sender device of the data message needs to support the ECN function.
  • the solution provided in this application has a similar transmission process for each data message.
  • only congestion control during the transmission of one data message is taken as an example to describe the solution provided in this application in detail. , The others will not be repeated one by one.
  • the data message transmission method provided by this application may include:
  • the first network device determines the congestion state of the first network device according to the queue length within the preset time period.
  • S701 to S703 may be the same as the implementation of S301 to S303, and reference may be made to the description of S301 to S303, which will not be repeated here.
  • the data message marked in S702 or S703 will be transmitted to its receiving end device (third network device).
  • the third network device receives the data packet.
  • the third network device may determine whether to perform S705 or S706 according to the content in the received data message.
  • the third network device after receiving the data message, the third network device checks whether the first identifier or the second identifier is marked in the congestion flag bit to determine whether to perform S705 or S706.
  • the third network device after receiving the data message, the third network device checks whether the first identifier or the second identifier is marked at the ECN mark position in RFC3168 to determine whether to perform S705 or S706.
  • the third identifier has the same function as the aforementioned first identifier, and the function of the first identifier has been described in detail in the data packet transmission method shown in FIG. 3 or FIG. 6.
  • the fourth identifier has the same function as the aforementioned second identifier, and the function of the second identifier has been described in detail in the data packet transmission method shown in FIG. 3 or FIG. 6.
  • the third identifier or the fourth identifier may be added to the message header.
  • the message header may be a TCP header.
  • the embodiment of the present application does not specifically limit the position and specific form of the third identifier or the fourth identifier in the message header, and can be configured according to actual requirements.
  • Implementation method A Add a second congestion flag bit to add a third identifier or a fourth identifier.
  • M bits are selected as the second congestion flag, and the second congestion flag is set to a different
  • the value (value) is used as the third identifier or the fourth identifier.
  • the value of M can be determined according to actual needs, and is not limited in the embodiment of the present application.
  • the different values of the second congestion flag can be configured according to actual requirements, which are not limited in the embodiment of the present application.
  • the second congestion flag bit can be set to 0 as the third indicator, and the second congestion flag bit can be set to 1 as the fourth indicator.
  • Implementation manner B on the basis of implementation manner A, add a third or fourth identification by adding a second congestion flag bit and an ECE bit.
  • the second congestion flag bit can be set to 0, the ECE position 1 is used as the third indicator, and the second congestion flag bit is set to 1, and the ECE position 1 is used as the fourth indicator.
  • Implementation C Redefine the ECE bit of RFC3168 as adding the third or fourth identifier.
  • ECE position 1 may be used as the third identifier, and ECE position 1 may be used as the fourth identifier.
  • the receiving end device (third network device) receives the data message, if the ECN field in the ECN mark position in RFC3168 is 00 or 01, it will not modify any field in the original ACK.
  • the receiving end device (the third network device) receives the data message
  • the ECN field in the ECN mark position in RFC3168 is 10
  • the receiving end device (third network device) receives the data message, if the ECN field in the ECN mark position in RFC3168 is 11, it will set the ECE position of the TCP header of the ACK message corresponding to the data message 1, and set the congestion field to 1.
  • the third network device sends a marked ACK packet to the sender device of the data packet.
  • the receiving end device receives the marked ACK message.
  • the receiving end device determines the congestion state of the congestion point device on the transmission path of the sent data message within a preset time period.
  • the receiving end device determines the congestion state of the congestion point device on the transmission path of the sent data message within a preset time period according to the ACK message received in S708.
  • the receiving end device may determine the congestion state of the congestion point device on the transmission path of the sent data packet within a preset period of time according to the third identifier or the fourth identifier marked in the ACK packet.
  • the receiving end device in S709 can determine that the congestion point device on the transmission path of the sent data packet is unstable within a preset period of time according to the third identifier marked in the ACK packet. congestion.
  • the receiving end device in S709 can determine that the congestion state of the congestion point device on the transmission path of the sent data packet is stable within a preset period of time according to the fourth identifier marked in the ACK packet. congestion.
  • the receiving end device in S709 may determine whether the congestion point device on the transmission path of the sent data packet is within a preset time period according to the third or fourth identity not marked in the ACK packet. The congestion state is not congested.
  • the sender device receives an ACK message
  • the second congestion flag bit in the TCP header of the ACK message is set to 0 and the ECE bit is 0, it is determined that the congestion point device on the transmission path of the sent data message is The congestion state within the preset time period is not congested.
  • the sender device receives an ACK message
  • the second congestion flag bit in the TCP header of the ACK message is set to 0 and the ECE bit is set to 1
  • it is determined that the congestion point device on the transmission path of the sent data message is The congestion state within the preset time period is unstable congestion.
  • the sender device receives an ACK message
  • the second congestion flag bit in the TCP header of the ACK message is set to 1
  • the ECE bit is set to 1
  • the sending end device determines that the congestion state of the congestion point device is unstable congestion in S709, S710 is executed. Or, if the sending end device determines in S709 that the congestion state of the congestion point device is stable congestion, S711 is executed. If the sending end device determines in S709 that the congestion status of the congested point device is not congested, the sending end device may increase the number of sending windows for the first data stream.
  • S710 may be the same as that of S305, and reference may be made to the description of S305, which will not be repeated here.
  • S711 may be the same as that of S306, and reference may be made to the foregoing description of S306, which will not be repeated here.
  • the sending end device sends the data packet of the first data stream according to the number of sending windows of the first data stream.
  • the sending end device may also determine the number of sending windows for the second data stream according to the determined congestion state of the congestion point device. For example, when the congestion status of the congestion point device is uncongested, the number of sending windows of the second data stream can be determined according to the window climbing mechanism; or, when the congestion status of the congestion point device is stable congestion or non-steady congestion, it can be based on DCTCP The mechanism determines the number of sending windows for the second data stream. Therefore, the sending end device sends the data packets of the second data stream according to the number of sending windows of the second data stream.
  • the congestion state of the network device is determined according to the queue length within a preset time period, and different identifiers are added to the messages entering the queue under different congestion states, so that other devices can respond to the difference.
  • the identifier of determines the number of sending windows for the first data stream. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
  • an embodiment of the present application provides another data message transmission method, which is applied to congestion control in the process of data message transmission on a data network.
  • the sender device of the data message may not support the ECN function.
  • the solution provided in this application has a similar transmission process for each data message.
  • only congestion control during the transmission of one data message is taken as an example to describe the solution provided in this application in detail. , The others will not be repeated one by one.
  • the data message transmission method provided by this application may include:
  • the first network device determines the congestion state of the first network device according to the queue length within the preset time period.
  • S801 to S803 may be the same as that of S301 to S303, and reference may be made to the description of S301 to S303, which will not be repeated here.
  • the data message marked in S802 or S803 will be transmitted to its receiving end device (third network device).
  • S804 The first network device sends the first congestion information to the second network device.
  • the second network device is the upper-level network device of the receiving end device of the data message.
  • S804 may be the same as that of S303a, and reference may be made to the description of S303a, which will not be repeated here.
  • the second network device receives the first congestion information.
  • the second network device may create a flow table for flows passing through it to maintain a life cycle.
  • the first data flow is placed at the top or the end of the flow table table, and a timer may also be used to determine whether it is the first data flow.
  • the flow table is used to determine the sending window for the first data flow according to the congestion information.
  • the flow information stored in the flow table may be as follows: flow ID
  • RWND is used to indicate the number of sending windows of the data stream determined by the second network device.
  • the second network device determines the congestion state of the congestion point device on the transmission path of the sent data packet within a preset time period.
  • S806 may be the same as that of S304, and reference may be made to the foregoing description of S304, which will not be repeated here.
  • the second network device determines that the congestion state of the congestion point device is unstable congestion in S806, S807 is executed. Or, if the second network device determines that the congestion state of the congestion point device is stable congestion in S806, S808 is executed. If the second network device determines in S806 that the congestion status of the congestion point device is not congested, the second network device may increase the number of sending windows for the first data stream.
  • S807 may be the same as that of S305, and reference may be made to the description of S305, which will not be repeated here.
  • S808 may be the same as that of S306, and reference may be made to the foregoing description of S306, which will not be repeated here.
  • the second network device sends the number of sending windows of the first data stream to the sender device of the data packet.
  • S809 may be the same as that of S307, and reference may be made to the description of S307, which will not be repeated here.
  • the sending end device receives the ACK packet, and determines the number of sending windows for the first data stream according to the ACK packet.
  • S810 may be the same as that of S308, and reference may be made to the foregoing description of S308, which will not be repeated here.
  • the sending end device sends the data packet of the first data stream according to the number of sending windows of the first data stream.
  • the congestion state of the network device is determined according to the queue length within a preset time period, and different identifiers are added to the messages entering the queue under different congestion states, so that other devices can respond to the difference.
  • the identifier of determines the number of sending windows for the first data stream. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
  • the foregoing mainly introduces the solution provided by the embodiment of the present application from the perspective of the working principle of each network device.
  • the above-mentioned network device includes hardware structures and/or software modules corresponding to each function.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software-driven hardware depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered as going beyond the scope of this application.
  • the embodiment of the application can divide the function modules of the device that executes the data message transmission method provided by the application according to the foregoing method examples.
  • each function module may be divided corresponding to each function, or two or more functions may be divided Integrated in a processing module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or software function modules. It should be noted that the division of modules in the embodiments of the present application is illustrative, and is only a logical function division, and there may be other division methods in actual implementation.
  • FIG. 9 shows a data message transmission device 90 deployed in the network equipment involved in the foregoing embodiment to perform the data message transmission method provided by this application.
  • the data message transmission device 90 may be a functional module or a chip.
  • the data packet transmission device 90 may include: a determining unit 901 and a processing unit 902.
  • the determining unit 901 is configured to execute the process S301 in FIG. 3 or FIG. 6, or the process S701 in FIG. 7, or the process S701 in FIG. Process S801 in Fig. 8; the processing unit 902 is configured to execute processes S302 and S303 in Fig. 3 or Fig. 6, or processes S702 and S703 in Fig. 7, or processes S802 and S803 in Fig. 8.
  • the processing unit 902 is configured to execute processes S302 and S303 in Fig. 3 or Fig. 6, or processes S702 and S703 in Fig. 7, or processes S802 and S803 in Fig. 8.
  • the determining unit 901 is configured to execute the process S304 in FIG. 6, or the process S709 in FIG. 7, or the process S709 in FIG.
  • the process S806; the processing unit 902 is configured to execute the processes S305 and S306 in FIG. 6, or the processes S710 and S711 in FIG. 7, or the processes S807 and S808 in FIG. 8.
  • the relevant content of the steps involved in the above method embodiments can be cited in the functional description of the corresponding functional module, which will not be repeated here.
  • the processing unit 902 is configured to execute the processes S705 and S706 in FIG. 7.
  • the steps involved in the foregoing method embodiments can be cited in the functional description of the corresponding functional module, and will not be repeated here.
  • the data message transmission device 90 may further include a sending unit 903, configured to execute the process S303a or S307 in FIG. 6, or the process S707 in FIG. 7, or the process S804 in FIG. , S809.
  • the data message transmission device 90 may further include a receiving unit 904, configured to execute the process S308 in FIG. 6, or the process S704 or S708 in FIG. 7, or the process S805 in FIG. Or S810.
  • FIG. 11 shows a schematic diagram of a possible structure of the network device 110 involved in the foregoing embodiment.
  • the network device 110 may be the first network device or the second network device or the third network device described in the foregoing method embodiment.
  • the network device 110 may include: a processing module 1101 and a communication module 1102.
  • the processing module 1101 is used to control and manage the actions of the network device 110, and the communication module 1102 is used to communicate with other devices.
  • the processing module 1101 is configured to execute any one of the processes S301 to S306 in FIG. 3 or FIG. 6, or any one of the processes S701 to S703 or S709 to S711 in FIG. 7, or the processes S801 to S801 in FIG. S803 or any process from S806 to S808.
  • the network device 110 may also include a storage module 1103 for storing program codes and data of the network device 110.
  • the processing module 1101 may be the processor 201 in the physical structure of the network device 20 shown in FIG. 2, and may be a processor or a controller. For example, it may be a CPU, a general-purpose processor, DSP, ASIC, FPGA or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute various exemplary logical blocks, modules, and circuits described in conjunction with the disclosure of this application.
  • the processing module 1101 may also be a combination of computing functions, for example, a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
  • the communication module 1102 may be the transceiver 203 in the physical structure of the network device 20 shown in FIG. 2.
  • the communication module 1102 may be a communication port, or may be a transceiver, a transceiver circuit, or a communication interface. Alternatively, the above-mentioned communication interface may realize communication with other devices through the above-mentioned element having a transceiver function. The above-mentioned elements with transceiving functions can be implemented by antennas and/or radio frequency devices.
  • the storage module 1103 may be the memory 203 in the physical structure of the network device 20 shown in FIG. 2.
  • the processing module 1101 is a processor
  • the communication module 1102 is a transceiver
  • the storage module 1103 is a memory
  • the network device 110 involved in FIG. 11 in the embodiment of the present application may be the network device 20 shown in FIG. 2.
  • the data packet transmission device 90 or the network device 110 provided in the embodiments of the present application can be used to implement the corresponding functions in the methods implemented by the various embodiments of the present application.
  • the data packet transmission device 90 or the network device 110 provided in the embodiments of the present application can be used to implement the corresponding functions in the methods implemented by the various embodiments of the present application.
  • the various embodiments of this application please refer to the various embodiments of this application.
  • a computer-readable storage medium is provided, and an instruction is stored thereon.
  • the instruction is executed, the data packet transmission method in the foregoing method embodiment is executed.
  • a computer program product containing instructions is provided.
  • the computer program product runs on a computer, the computer executes the data packet transmission method in the foregoing method embodiment.
  • the embodiment of the present application further provides a chip system.
  • the chip system includes a processor for implementing the technical method of the embodiment of the present invention.
  • the chip system further includes a memory for storing necessary program instructions and/or data in the embodiment of the present invention.
  • the chip system further includes a memory for the processor to call application program codes stored in the memory.
  • the chip system may be composed of one or more chips, and may also include chips and other discrete devices, which are not specifically limited in the embodiment of the present application.
  • the steps of the method or algorithm described in conjunction with the disclosure of the present application can be implemented in a hardware manner, or can be implemented in a manner in which a processor executes software instructions.
  • Software instructions can be composed of corresponding software modules.
  • the software modules can be stored in RAM, flash memory, ROM, erasable programmable read-only memory (erasable programmable ROM, EPROM), electrically erasable programmable read-only memory (electrically erasable programmable read-only memory, EPROM, EEPROM), registers, hard disk, mobile hard disk, CD-ROM or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor, so that the processor can read information from the storage medium and can write information to the storage medium.
  • the storage medium may also be an integral part of the processor.
  • the processor and the storage medium may be located in the ASIC.
  • the ASIC may be located in the core network interface device.
  • the processor and the storage medium may also exist as discrete components in the core network interface device.
  • the memory may be coupled with the processor.
  • the memory may exist independently and be connected to the processor through a bus.
  • the memory can also be integrated with the processor.
  • the memory may be used to store application program codes that execute the technical solutions provided in the embodiments of the present application, and the processor controls the execution.
  • the processor is used to execute application program codes stored in the memory, so as to implement the technical solutions provided in the embodiments of the present application.
  • the disclosed device and method can be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the modules or units is only a logical function division.
  • there may be other division methods for example, multiple units or components may be It can be combined or integrated into another device, or some features can be omitted or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate parts may or may not be physically separate.
  • the parts displayed as units may be one physical unit or multiple physical units, that is, they may be located in one place, or they may be distributed to multiple different places. . Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium.
  • the technical solutions of the embodiments of the present application are essentially or the part that contributes to the prior art, or all or part of the technical solutions can be embodied in the form of a software product, and the software product is stored in a storage medium. It includes several instructions to make a device (may be a single-chip microcomputer, a chip, etc.) or a processor (processor) execute all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code .

Landscapes

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

Abstract

La présente divulgation concerne un procédé et un appareil de transmission de paquet de données. Le procédé fait appel aux étapes suivantes : un premier dispositif de réseau déterminant, selon une longueur de file d'attente dans une période de temps prédéfinie, un état de congestion du premier dispositif de réseau ; si le premier dispositif de réseau détermine que l'état de congestion de celui-ci est une congestion stable, le premier dispositif de réseau ajoutant un premier identifiant à un premier paquet de données reçu, le premier identifiant étant utilisé pour indiquer que le premier dispositif de réseau est dans un état de congestion stable ; et si le premier dispositif de réseau détermine que l'état de congestion de celui-ci est instable, le premier dispositif de réseau ajoutant un second identifiant à un second paquet de données reçu, le second identifiant étant utilisé pour indiquer que le premier dispositif de réseau est dans un état de congestion instable, et le premier identifiant est différent du second identifiant.
PCT/CN2021/095210 2020-05-29 2021-05-21 Procédé et appareil de transmission de paquet de données WO2021238799A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010478243.1A CN113746743B (zh) 2020-05-29 2020-05-29 一种数据报文传输方法及装置
CN202010478243.1 2020-05-29

Publications (1)

Publication Number Publication Date
WO2021238799A1 true WO2021238799A1 (fr) 2021-12-02

Family

ID=78724917

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/095210 WO2021238799A1 (fr) 2020-05-29 2021-05-21 Procédé et appareil de transmission de paquet de données

Country Status (2)

Country Link
CN (1) CN113746743B (fr)
WO (1) WO2021238799A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208827A (zh) * 2022-07-11 2022-10-18 京东科技信息技术有限公司 一种流量分配的方法和装置
CN116545933A (zh) * 2023-07-06 2023-08-04 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 网络拥塞控制方法、装置、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116489106B (zh) * 2023-06-21 2023-09-19 新华三技术有限公司 一种拥塞控制方法、装置、转发芯片及客户端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104552A (zh) * 2011-04-02 2011-06-22 杭州华三通信技术有限公司 基于明确拥塞通知机制的报文控制方法及设备
US20110299389A1 (en) * 2009-12-04 2011-12-08 Telcordia Technologies, Inc. Real Time Monitoring, Onset Detection And Control Of Congestive Phase-Transitions in Communication Networks
CN102594681A (zh) * 2012-02-16 2012-07-18 清华大学 以太网中滑模变结构拥塞控制方法
CN104038438A (zh) * 2013-12-03 2014-09-10 江苏达科信息科技有限公司 一种基于传统传输控制协议改进的显式拥塞控制方法
CN105024946A (zh) * 2015-06-16 2015-11-04 清华大学 一种基于滑动窗口的带宽分配方法、装置和系统
CN107817944A (zh) * 2016-09-12 2018-03-20 华为技术有限公司 一种数据处理方法及存储设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080075003A1 (en) * 2006-09-21 2008-03-27 Futurewei Technologies, Inc. Method and system for admission and congestion control of network communication traffic
US8407364B2 (en) * 2007-10-25 2013-03-26 Cisco Technology, Inc. Apparatus and method for providing a congestion measurement in a network
CN101924687B (zh) * 2009-06-12 2012-11-28 中兴通讯股份有限公司 一种用于交换网流量控制的方法和装置
US9106535B2 (en) * 2010-01-22 2015-08-11 Samsung Electronics Co., Ltd. Method and apparatus for adaptively managing buffer in communication system including a plurality of network nodes
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
CN102025617B (zh) * 2010-11-26 2015-04-01 中兴通讯股份有限公司 以太网拥塞控制方法及装置
WO2012127597A1 (fr) * 2011-03-19 2012-09-27 富士通株式会社 Procédé de commande d'encombrement et appareil de communication sans fil
CN102624723B (zh) * 2012-03-06 2015-05-27 杭州华三通信技术有限公司 一种实现显式拥塞通告的方法及设备
US20140164640A1 (en) * 2012-12-11 2014-06-12 The Hong Kong University Of Science And Technology Small packet priority congestion control for data center traffic
US9419900B2 (en) * 2013-12-31 2016-08-16 International Business Machines Corporation Multi-bit indicator set according to feedback based on an equilibrium length of a queue
CN104954279B (zh) * 2014-03-28 2018-04-10 华为技术有限公司 一种传输控制方法、装置及系统
CN106027412B (zh) * 2016-05-30 2019-07-12 南京理工大学 一种基于拥塞队列长度的tcp拥塞控制方法
CN106059951B (zh) * 2016-06-08 2019-03-01 中南大学 一种用于dcn中基于多级拥塞反馈的传输控制方法
US10523684B2 (en) * 2017-10-02 2019-12-31 Higher Ground Llc Forward path congestion mitigation for satellite communications
CN109698797B (zh) * 2017-10-24 2022-06-14 中国移动通信集团山东有限公司 一种tcp拥塞控制方法和装置
CN108718283B (zh) * 2018-05-03 2020-12-08 电子科技大学 数据中心网络中集中式端网协调的tcp拥塞控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110299389A1 (en) * 2009-12-04 2011-12-08 Telcordia Technologies, Inc. Real Time Monitoring, Onset Detection And Control Of Congestive Phase-Transitions in Communication Networks
CN102104552A (zh) * 2011-04-02 2011-06-22 杭州华三通信技术有限公司 基于明确拥塞通知机制的报文控制方法及设备
CN102594681A (zh) * 2012-02-16 2012-07-18 清华大学 以太网中滑模变结构拥塞控制方法
CN104038438A (zh) * 2013-12-03 2014-09-10 江苏达科信息科技有限公司 一种基于传统传输控制协议改进的显式拥塞控制方法
CN105024946A (zh) * 2015-06-16 2015-11-04 清华大学 一种基于滑动窗口的带宽分配方法、装置和系统
CN107817944A (zh) * 2016-09-12 2018-03-20 华为技术有限公司 一种数据处理方法及存储设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208827A (zh) * 2022-07-11 2022-10-18 京东科技信息技术有限公司 一种流量分配的方法和装置
CN116545933A (zh) * 2023-07-06 2023-08-04 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 网络拥塞控制方法、装置、设备及存储介质
CN116545933B (zh) * 2023-07-06 2023-10-20 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 网络拥塞控制方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113746743A (zh) 2021-12-03
CN113746743B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US20220217090A1 (en) System and method for facilitating data-driven intelligent network with endpoint congestion detection and control
US10771389B2 (en) Virtual tunnel endpoints for congestion-aware load balancing
WO2021238799A1 (fr) Procédé et appareil de transmission de paquet de données
US9497125B2 (en) Congestion control enforcement in a virtualized environment
WO2018210117A1 (fr) Procédé de régulation de congestion, dispositif de réseau et dispositif de commande d'interface réseau associé
EP3763094B1 (fr) Gestion des flux dans les reseaux
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
Taheri et al. RoCC: robust congestion control for RDMA
CN111386683A (zh) 基于实时传输网络拥塞状况来加速或减速数据传输网络协议的系统和方法
CN111224888A (zh) 发送报文的方法及报文转发设备
JP2008118281A (ja) 通信装置
WO2018133784A1 (fr) Procédé, dispositif et système de traitement de paquets
US11805071B2 (en) Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus
Sreekumari et al. A simple and efficient approach for reducing TCP timeouts due to lack of duplicate acknowledgments in data center networks
US20230403233A1 (en) Congestion notification in a multi-queue environment
Xu et al. Enhancing TCP incast congestion control over large-scale datacenter networks
Chen et al. On meeting deadlines in datacenter networks
CN113630337A (zh) 数据流接纳方法、装置及系统、计算机可读存储介质

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: 21811960

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: 21811960

Country of ref document: EP

Kind code of ref document: A1