CN113950099B - Network congestion control method and device - Google Patents

Network congestion control method and device Download PDF

Info

Publication number
CN113950099B
CN113950099B CN202010694057.1A CN202010694057A CN113950099B CN 113950099 B CN113950099 B CN 113950099B CN 202010694057 A CN202010694057 A CN 202010694057A CN 113950099 B CN113950099 B CN 113950099B
Authority
CN
China
Prior art keywords
congestion
tcp
message
early warning
ecn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010694057.1A
Other languages
Chinese (zh)
Other versions
CN113950099A (en
Inventor
曲霄阳
周军
夏怒
何路友
朱夏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010694057.1A priority Critical patent/CN113950099B/en
Publication of CN113950099A publication Critical patent/CN113950099A/en
Application granted granted Critical
Publication of CN113950099B publication Critical patent/CN113950099B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0289Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0278Traffic management, e.g. flow control or congestion control using buffer status reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless

Landscapes

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

Abstract

The application discloses a network congestion control method and device, relates to the technical field of communication, and can avoid the problems of delay increase, sudden increase of packet loss rate and the like caused by untimely congestion control which is performed after congestion occurs for a period of time. According to the application, the forwarding device sets congestion early warning indication in a message larger than the early warning waterline when the buffer occupation in the forwarding direction of a transmission control protocol (transmission control protocol, TCP) stream is larger than the early warning waterline and smaller than the pre-congestion waterline, and before pre-congestion occurs in the forwarding device, the state switching from a slow start stage to a congestion avoidance stage is adopted in advance.

Description

Network congestion control method and device
Technical Field
The present application relates to the field of communications technologies, and in particular, to a method and apparatus for controlling network congestion.
Background
In the conventional art, in order to reduce the risk of network congestion during Transmission Control Protocol (TCP) transmission, an ECN-based congestion control method is introduced. The basic principle of the method is as follows: the network device performs congestion ECN marking when pre-congestion occurs, so that a message sending end (such as a terminal device or a server) can adjust a congestion window (congestion window, CWND), thereby avoiding network congestion risks.
However, the congestion ECN flag is marked in the message when the network device generates pre-congestion, and then the congestion ECN flag is forwarded to the message receiving end along with the message, and then the message receiving end sends the message to the message sending end through an Acknowledgement (ACK) message. Due to the delay of the network, a delay of the congestion feedback response is caused, in particular, in the slow start phase of TCP. The delay of congestion feedback response can lead to untimely congestion control, thereby causing the problems of delay increase, sudden increase of packet loss rate and the like, and affecting user experience.
Disclosure of Invention
The application provides a network congestion control method and equipment, which can avoid the problems of delay increase, burst loss rate and the like caused by untimely congestion control due to congestion control which is performed for a period of time after congestion occurs.
In order to achieve the above purpose, the application adopts the following technical scheme:
In a first aspect, a network congestion control method is provided, the method including: the forwarding equipment receives a TCP message; when the buffer occupancy of the forwarding equipment in the forwarding direction of the TCP stream is larger than the pre-congestion line and smaller than the pre-congestion line, congestion pre-alarm indication is set in the TCP message; the forwarding device forwards the TCP message including the congestion warning indication.
According to the technical scheme provided by the first aspect, the forwarding device sets the congestion early warning indication in the message larger than the early warning waterline when the number of messages, the message data amount or the proportion of the message data amount to the buffer area buffered in the forwarding direction of the TCP stream is larger than the corresponding early warning waterline and smaller than the corresponding pre-congestion waterline, so as to attempt to adjust the state of the TCP session to which the TCP message belongs from the slow start stage to the congestion avoidance stage. Before the forwarding equipment is pre-congested, state switching from a slow start stage to a congestion avoidance stage is adopted in advance, so that the problems of delay increase, sudden increase of packet loss rate and the like caused by untimely congestion control due to congestion control after a period of time after congestion occurs can be avoided.
In one possible implementation manner, the method further includes: the forwarding equipment receives an ACK message corresponding to the TCP message in the reverse direction of the TCP stream; the ACK message includes a congestion early-warning identifier that instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow-start phase to a congestion avoidance phase. The forwarding device forwards the ACK message comprising the congestion early warning identifier to the sending device of the TCP stream to instruct the sending device of the TCP stream to respond to the congestion early warning of the forwarding device, adjusts the state of the TCP session from a slow start stage to a congestion avoidance stage so as to reduce the growth speed of the CWND field, and can avoid the problems of delay increase, burst loss rate and the like caused by untimely congestion control after a period of congestion occurs.
In one possible implementation, the congestion pre-warning indication is represented by an explicit congestion notification ECN flag.
In one possible implementation, if the value of the ECN flag is "01" indicating that the ECN negotiation is successful, the ECN flag is "10" indicating the congestion warning indication; or if the ECN flag has a value of "10" indicating successful ECN negotiation, the ECN flag has a value of "01" indicating the congestion warning indication. In the application, the forwarding equipment can perform congestion early warning indication through the reverse rotation of '01' and '10'.
In one possible implementation, the forwarding direction includes an uplink direction and a downlink direction. The network congestion control method provided by the application is applicable to both uplink forwarding and downlink forwarding scenarios.
In one possible implementation, the forwarding device is a core switch, an aggregation switch, an access switch, or an access point AP. The network congestion control method provided by the application is applicable to any forwarding equipment in a TCP stream forwarding scene, such as a core switch, a convergence switch, an access switch or an Access Point (AP).
In a second aspect, a network congestion control method is provided, the method including: the receiving equipment receives a first TCP message; the first TCP message comprises a congestion early warning indication; the receiving device attempts to adjust the state of the TCP session to which the first TCP message belongs from the slow start stage to the congestion avoidance stage according to the congestion early warning indication.
According to the technical scheme provided by the second aspect, after receiving the TCP message, the receiving device of the TCP message tries to adjust the state of the TCP session to which the TCP message belongs from the slow start stage to the congestion avoidance stage according to the congestion early warning indication included in the TCP message so as to reduce the growth speed of the CWND field, so that the problems of delay increase, packet loss rate sudden increase and the like caused by untimely congestion control after congestion occurs for a period of time can be avoided.
In one possible implementation manner, the foregoing receiving device attempts to adjust, according to the congestion warning indication, a state of a TCP session to which the first TCP packet belongs from a slow start phase to a congestion avoidance phase, including: the receiving equipment sets a congestion early warning mark in an Acknowledgement (ACK) message belonging to a TCP session; the congestion early warning flag instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion avoidance phase. The receiving device instructs the initiating device of the TCP session to adjust the state of the TCP session from the slow start phase to the congestion avoidance phase according to the congestion early warning indication included in the TCP message, so as to reduce the growth speed of the CWND field.
In a possible implementation manner, the setting, by the receiving device, a congestion early warning identifier in an ACK packet belonging to a TCP session includes: the receiving device sets the Reserved position 1 of the FLAG bit of the ACK message. In the application, the receiving equipment can take the Reserved position 1 of the FLAG bit of the ACK message corresponding to the TCP message as a congestion early warning mark.
In one possible implementation manner, the method further includes: the receiving equipment receives a second TCP message; the second TCP message includes a pre-congestion indication; and the receiving equipment sets the ECN-ECHO position 1 of the FLAG bit of the ACK message corresponding to the second TCP message. The receiving device may adjust the state of the TCP session to a congestion stage by using the ECN-ECHO position 1 of the FLAG bit of the ACK packet corresponding to the second TCP packet as a congestion identifier to indicate that the initiating device of the TCP session responds to the pre-congestion of the forwarding device, so as to solve the congestion problem.
In a third aspect, there is provided a forwarding device comprising: the receiving and transmitting unit is used for receiving the TCP message; the processing unit is used for setting congestion early warning indication in the TCP message when the buffer occupation in the forwarding direction of the TCP stream is larger than the early warning waterline and smaller than the pre-congestion waterline; the transceiver unit is further configured to forward a TCP packet including a congestion warning indication.
According to the technical scheme provided by the third aspect, the forwarding device sets congestion early warning indication in the message larger than the early warning waterline when the number of messages, the message data amount or the proportion of the message data amount to the buffer area buffered in the forwarding direction of the TCP stream is larger than the corresponding early warning waterline and smaller than the corresponding pre-congestion waterline, so as to attempt to adjust the state of the TCP session to which the TCP message belongs from the slow start stage to the congestion avoidance stage. Before the forwarding equipment is pre-congested, state switching from a slow start stage to a congestion avoidance stage is adopted in advance, so that the problems of delay increase, sudden increase of packet loss rate and the like caused by untimely congestion control due to congestion control after a period of time after congestion occurs can be avoided.
In one possible implementation manner, the transceiver unit is further configured to receive an ACK packet corresponding to the TCP packet in a reverse direction of the TCP flow; the ACK message includes a congestion early-warning identifier that instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow-start phase to a congestion avoidance phase. The forwarding device forwards the ACK message comprising the congestion early warning identifier to the sending device of the TCP stream to instruct the sending device of the TCP stream to respond to the congestion early warning of the forwarding device, adjusts the state of the TCP session from a slow start stage to a congestion avoidance stage so as to reduce the growth speed of the CWND field, and can avoid the problems of delay increase, burst loss rate and the like caused by untimely congestion control after a period of congestion occurs.
In one possible implementation, the congestion pre-warning indication is represented by an explicit congestion notification ECN flag.
In one possible implementation, if the value of the ECN flag is "01" indicating that the ECN negotiation is successful, the ECN flag is "10" indicating the congestion warning indication; or if the ECN flag has a value of "10" indicating successful ECN negotiation, the ECN flag has a value of "01" indicating the congestion warning indication. In the application, the forwarding equipment can perform congestion early warning indication through the reverse rotation of '01' and '10'.
In one possible implementation, the forwarding direction includes an uplink direction and a downlink direction. The network congestion control method provided by the application is applicable to both uplink forwarding and downlink forwarding scenarios.
In one possible implementation, the forwarding device is a core switch, an aggregation switch, an access switch, or an access point AP. The network congestion control method provided by the application is applicable to any forwarding equipment in a TCP stream forwarding scene, such as a core switch, a convergence switch, an access switch or an Access Point (AP).
In a fourth aspect, there is provided a receiving apparatus including: the receiving and transmitting unit is used for receiving the first TCP message; the first TCP message comprises a congestion early warning indication; and the processing unit is used for attempting to adjust the state of the TCP session to which the first TCP message belongs from the slow start stage to the congestion avoidance stage according to the congestion early warning indication.
According to the technical scheme provided by the fourth aspect, after receiving the first TCP packet, the receiving device of the TCP packet attempts to adjust the state of the TCP session to which the first TCP packet belongs from the slow start stage to the congestion avoidance stage according to the congestion early warning indication included in the first TCP packet, so as to reduce the growth speed of the CWND field, and avoid the problems of delay increase, sudden increase in packet loss rate and the like caused by untimely congestion control caused by congestion control performed for a period of time after congestion occurs.
In one possible implementation manner, the processing unit is specifically configured to set a congestion early warning identifier in an ACK packet belonging to a TCP session; the congestion early warning flag instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion avoidance phase. The receiving device instructs the initiating device of the TCP session to adjust the state of the TCP session from the slow start phase to the congestion avoidance phase according to the congestion early warning indication included in the first TCP message, so as to reduce the growth speed of the CWND field.
In a possible implementation manner, the setting, by the processing unit, a congestion early-warning identifier in an ACK packet belonging to a TCP session includes: the processing unit sets the Reserved position 1 of the FLAG bit of the ACK message. In the application, the receiving device can use the Reserved position 1 of the FLAG bit of the ACK message corresponding to the first TCP message as the congestion early warning mark.
In a possible implementation manner, the transceiver unit is further configured to receive a second TCP packet, where the second TCP packet includes a pre-congestion indication; the processing unit is further configured to determine an ECN-ECHO location 1 of a FLAG bit of an ACK packet corresponding to the second TCP packet. The receiving device may use ECN-ECHO position 1 of FLAG bit of ACK message corresponding to the second TCP message as congestion identifier to instruct the initiating device of the TCP session to respond to the pre-congestion of the forwarding device, and adjust the state of the TCP session to be in a congestion stage, so as to solve the congestion problem.
In a fifth aspect, there is provided a forwarding device including: a memory for storing a computer program and the TCP stream; a transceiver for receiving or transmitting radio signals; a processor for executing the computer program to cause the forwarding device to receive a TCP message via the transceiver; setting congestion early warning indication in a TCP message when the buffer occupancy in the forwarding direction of the TCP stream is larger than the early warning waterline and smaller than the pre-congestion waterline; and forwarding, by the transceiver, the TCP message including the congestion pre-warning indication.
According to the technical scheme provided by the fifth aspect, the forwarding device sets congestion early warning indication in the message larger than the early warning waterline when the number of messages, the message data amount or the proportion of the message data amount to the buffer area buffered in the forwarding direction of the TCP stream is larger than the corresponding early warning waterline and smaller than the corresponding pre-congestion waterline, so as to attempt to adjust the state of the TCP session to which the TCP message belongs from the slow start stage to the congestion avoidance stage. Before the forwarding equipment is pre-congested, state switching from a slow start stage to a congestion avoidance stage is adopted in advance, so that the problems of delay increase, sudden increase of packet loss rate and the like caused by untimely congestion control due to congestion control after a period of time after congestion occurs can be avoided.
In one possible implementation manner, the transceiver is further configured to receive an ACK message corresponding to the TCP message in a reverse direction of the TCP flow; the ACK message includes a congestion early-warning identifier that instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow-start phase to a congestion avoidance phase. The forwarding device forwards the ACK message comprising the congestion early warning identifier to the sending device of the TCP stream to instruct the sending device of the TCP stream to respond to the congestion early warning of the forwarding device, adjusts the state of the TCP session from a slow start stage to a congestion avoidance stage so as to reduce the growth speed of the CWND field, and can avoid the problems of delay increase, burst loss rate and the like caused by untimely congestion control after a period of congestion occurs.
In one possible implementation, the congestion pre-warning indication is represented by an explicit congestion notification ECN flag.
In one possible implementation, if the value of the ECN flag is "01" indicating that the ECN negotiation is successful, the ECN flag is "10" indicating the congestion warning indication; or if the ECN flag has a value of "10" indicating successful ECN negotiation, the ECN flag has a value of "01" indicating the congestion warning indication. In the application, the forwarding equipment can perform congestion early warning indication through the reverse rotation of '01' and '10'.
In one possible implementation, the forwarding direction includes an uplink direction and a downlink direction. The network congestion control method provided by the application is applicable to both uplink forwarding and downlink forwarding scenarios.
In one possible implementation, the forwarding device is a core switch, an aggregation switch, an access switch, or an access point AP. The network congestion control method provided by the application is applicable to any forwarding equipment in a TCP stream forwarding scene, such as a core switch, a convergence switch, an access switch or an Access Point (AP).
In a sixth aspect, there is provided a receiving apparatus comprising: a memory for storing a computer program and a TCP stream; a transceiver for receiving or transmitting radio signals; a processor for executing the computer program to cause the receiving device to receive a first TCP message via the transceiver; the first TCP message comprises a congestion early warning indication; and attempting to adjust the state of the TCP session to which the TCP message belongs from the slow start stage to the congestion avoidance stage according to the congestion early warning indication.
According to the technical scheme provided by the sixth aspect, after receiving the first TCP packet, the receiving device of the TCP packet attempts to adjust the state of the TCP session to which the first TCP packet belongs from the slow start stage to the congestion avoidance stage according to the congestion early warning indication included in the first TCP packet, so as to reduce the growth speed of the CWND field, and avoid the problems of delay increase, sudden increase in packet loss rate and the like caused by untimely congestion control caused by congestion control performed for a period of time after congestion occurs.
In a possible implementation manner, the above processor is specifically configured to execute the computer program, so that the receiving device sets a congestion early warning identifier in an acknowledgement ACK message belonging to a TCP session; the congestion early warning flag instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion avoidance phase. The receiving device instructs the initiating device of the TCP session to adjust the state of the TCP session from the slow start phase to the congestion avoidance phase according to the congestion early warning indication included in the first TCP message, so as to reduce the growth speed of the CWND field.
In a possible implementation manner, the setting, by the receiving device, a congestion early warning identifier in an ACK packet belonging to a TCP session includes: the receiving device sets the Reserved position 1 of the FLAG bit of the ACK message. In the application, the receiving device can use the Reserved position 1 of the FLAG bit of the ACK message corresponding to the first TCP message as the congestion early warning mark.
In a possible implementation manner, the transceiver is further configured to receive a second TCP packet, where the second TCP packet includes a pre-congestion indication, and the processor is further configured to execute the computer program to cause the receiving device to send an ECN-ECHO location 1 of a FLAG bit of an ACK packet corresponding to the second TCP packet. The receiving device may use ECN-ECHO position 1 of FLAG bit of ACK message corresponding to the second TCP message as congestion identifier to instruct the initiating device of the TCP session to respond to the pre-congestion of the forwarding device, and adjust the state of the TCP session to be in a congestion stage, so as to solve the congestion problem.
In a seventh aspect, a communication system is provided, the communication system comprising a forwarding device as in any of the possible implementations of the third or fifth aspects.
Optionally, the communication system further comprises a receiving device as in any of the possible implementations of the fourth or sixth aspect.
In an eighth aspect, a computer readable storage medium is provided, on which computer program code is stored which, when executed by a processor, implements a method as in any one of the possible implementations of the first or second aspects.
In a ninth aspect, a chip system is provided, the chip system comprising a processor, a memory, the memory having computer program code stored therein; the computer program code, when executed by the processor, implements a method as in any one of the possible implementations of the first or second aspect. The chip system may be formed of a chip or may include a chip and other discrete devices.
In a tenth aspect, a computer program product is provided which, when run on a computer, causes the implementation of the method as in any one of the possible implementations of the first or second aspects.
Drawings
FIG. 1 is a schematic diagram of an enterprise campus network architecture according to an embodiment of the present application;
fig. 2 is a schematic hardware structure diagram of a network device or a terminal device according to an embodiment of the present application;
fig. 3 is a schematic functional block diagram of a forwarding device according to an embodiment of the present application;
FIG. 4 is a schematic diagram of a congestion control algorithm in the conventional art;
Fig. 5 is a schematic diagram of an IP header structure of a TCP packet according to an embodiment of the present application;
fig. 6 is a flow chart of a network congestion control method according to an embodiment of the present application;
fig. 7 is a schematic diagram of a method for ECN marking by a forwarding device according to an embodiment of the present application;
fig. 8 is a flow chart of another network congestion control method according to an embodiment of the present application;
fig. 9 is a schematic structural diagram of a TCP header of an ACK packet according to an embodiment of the present application;
Fig. 10 is a block diagram of a forwarding device according to an embodiment of the present application;
Fig. 11 is a block diagram of a structure of a receiving device of a TCP packet according to an embodiment of the present application.
Detailed Description
The embodiment of the application provides a network congestion control method which can be applied to a communication system based on a TCP protocol.
For example, the network congestion control method provided by the embodiment of the application can be applied to the following communication systems based on the TCP protocol: internet of things (Internet of things, ioT) systems, wireless local area network (wireless local access network, WLAN) systems, long term evolution (Long Term Evolution, LTE) systems, fifth generation mobile communication (5th generation mobile networks or 5th generation wireless systems,5G) systems, or 5G-later communication systems, such as 6G systems, device-to-device (D2D) communication systems, internet of vehicles, and the like. The application is not limited.
The network congestion control method provided by the application can be applied to any application scene of TCP transmission. For example, the network congestion control method provided by the embodiment of the application can be applied to an enterprise campus network scene or a data center network scene.
For example, in an enterprise campus network scenario of IoT systems, a vast network is formed by combining various information sensing devices, such as radio frequency identification devices, infrared sensors, global positioning systems, laser scanners, etc., with the internet. The purpose is to connect all the articles with the network, which is convenient for identification and management. For example, data collected by the camera is uploaded to a server through an Access Point (AP) and a switch, and is subjected to total analysis and unified management at the server side.
Typically, the enterprise campus network is hierarchical. As shown in fig. 1, the enterprise campus network may be divided into an access layer, a convergence layer, and a core layer, where the access layer corresponds to an access switch, the convergence layer corresponds to a convergence switch, and the core layer corresponds to a core switch.
The AP is mainly used for accessing devices such as a mobile terminal (e.g., a mobile phone) to a wired network. Can be used in broadband families, building interiors, park interiors and the like. Typically, an AP may cover several tens to hundreds of meters. The portion of the network that is directly facing the user connection or access to the network is called the access stratum. The access switch corresponding to the access layer is mainly used for connecting the terminal equipment to the network. Access switches are typically used to connect directly to end devices such as computers, and thus access switches typically have low cost and high port density characteristics. A aggregation switch is a point of aggregation of multiple access stratum devices that is capable of handling traffic from an access stratum device (e.g., an access switch) and providing an uplink to a core stratum device (e.g., a core switch). Thus, an aggregation switch typically has higher performance, fewer interfaces, and higher switching rates than an access switch. In an enterprise campus network, aggregation switches are typically used between buildings, corresponding to a local or significant transfer station. The core switch is mainly used for providing high-speed transmission and optimization for convergence layer equipment (such as a convergence switch), and the core switch is equivalent to an outlet or a total. The core switches are subject to and aggregate all traffic, and therefore, the core switches typically have high reliability and throughput. For example, a high throughput two-layer switch or three-layer switch may be used as the core switch. The servers include a server farm internal to the enterprise campus, such as a self-built data center (DATA CENTER, DC), a machine room, or a private cloud in the enterprise campus. The server is used to provide remote services (e.g., computing services, storage services, and network services) to the terminal devices. The DC or private cloud is a self-built data center or room in the enterprise campus network for providing remote services. The DC or private cloud is controlled by the cloud service client for a single cloud service user and resource-specific cloud deployment mode. The DC or private cloud may be owned, managed and operated by the enterprise itself or by a third party, possibly deployed within the enterprise workplace. Private clouds may be deployed within the DC. In the embodiment of the present application, the sending device of the uplink TCP flow is a terminal device, and the final receiving device may be set in a server (such as DC or private cloud).
In the present application, the terminal device may be a desktop device, a laptop device, a handheld device, a wearable device, a smart home device, a computing device, a vehicle-mounted device, etc. having a wired or wireless connection function. For example, netbooks, tablet computers, smartwatches, supercomputers, supermobile personal computers (ultra-mobile personal computer, UMPC), smartcameras, netbooks, personal digital assistants (personal DIGITAL ASSISTANT, PDA), portable multimedia players (portable multimedia player, PMP), AR (augmented reality)/VR (virtual reality) devices, wireless devices on board aircraft, wireless devices on robots, wireless devices in industrial control, wireless devices in telemedicine, wireless devices in smart grid, wireless devices in smart city (SMART CITY), etc. Or the UE may also be a wireless device in Narrowband (NB) technology, etc. Furthermore, in the present application, the terminal device may also be a terminal device in an IoT system, for example, a sensor or a camera, etc. Or the terminal device may also be an industrial manufacturing automated optical inspection (automatic optical inspection, AOI) device or the like. The application is not limited to the specific type and structure of the terminal device.
It should be noted that the present application is not limited to the network architecture of the enterprise campus network. That is, the enterprise campus network is not limited to the network devices shown in fig. 1 (including servers, core switches, aggregation switches, access switches, and APs), but may include other network devices. For example, the enterprise campus network may also include a campus network controller, an egress router, an operator network, a private network, or public cloud, among others.
Where the campus network controller is used to manage the campus network devices (e.g., core switches, aggregation switches, access switches, APs, etc., as shown in fig. 1). For example, the campus network controller may be a software defined network (software defined network, SDN) controller that is used to be responsible for flow control to ensure an intelligent network, etc. The exit router is used for providing three-layer interface service for accessing the wide area network, providing message forwarding function of the local area network or the wide area network, and the like. Public clouds are cloud deployment modes controlled by cloud service providers for cloud service users and resources. The cloud service provider builds an infrastructure, integrates resources to build a cloud virtual resource pool, and distributes the cloud virtual resource pool to multiple tenants for use according to requirements. For example, the public cloud may include a cloud server or cloud server instance, or the like.
In addition, it should be noted that, fig. 1 is only an example of an application scenario of a network congestion control method, and the network congestion control method provided by the present application may also be applied to application scenarios of other TCP transmissions, which is not limited by the present application.
In the process of TCP transmission, a sending device of a TCP message sends a TCP stream based on service to a receiving device. Wherein the service may include, but is not limited to, video service or voice service, etc. Each TCP flow includes one or more messages. Each TCP flow may correspond to a service, or may correspond to a user, etc., which is not limited by the present application. When receiving the TCP flow, the forwarding device (such as the core switch, the aggregation switch, the access switch or the AP shown in fig. 1) caches the packet in the buffer, and forwards the packet to the receiving device.
In the transmission process of the TCP/Internet protocol (Internet Protocol, IP), if the receiving device of the TCP message successfully receives the message, an ACK message is replied to the sending device of the TCP message to confirm that the corresponding TCP message is received to the sending device of the TCP message. For example, the sending device of the TCP packet is the mobile phone 1 shown in fig. 1, and the receiving device of the TCP packet is the server shown in fig. 1, and after the server successfully receives the packet, the server replies an ACK packet to the mobile phone 1 to confirm that the corresponding TCP packet has been received to the mobile phone 1. That is, the ACK message is forwarded in the opposite direction as the TCP flow. If the forwarding direction of the TCP stream is the uplink, the ACK message is a downlink ACK message; if the forwarding direction of the TCP stream is the uplink, the ACK message is a downlink ACK message.
When the sending device of the TCP message receives the ACK message, the next message can be sent. If the sending device of the TCP packet does not receive the ACK packet, the current packet may be retransmitted, or the sending of the packet may be stopped. The specific situation depends on the network protocol employed. Typically, the ACK message has a fixed format and length size. The embodiment of the application does not limit the message format and the length of the ACK message, and only accords with a transmission protocol. For a specific description of the ACK message, reference may be made to explanation and description in the conventional technology, which is not repeated here.
As indicated above, the forwarding device in the present application may be a core switch, an aggregation switch, an access switch or an AP as shown in fig. 1. But does not apply for any limitation on the specific function and structure of the forwarding device. The forwarding device may also be, for example, a campus network controller in an enterprise campus network architecture. The forwarding device may also be a device in the application scenario of other TCP transmissions. The forwarding device has the capability to forward TCP messages.
Referring to fig. 2, fig. 2 shows a schematic hardware structure of a network device or a terminal device according to an embodiment of the present application, where the network device may be a forwarding device, or may be a sending device or a receiving device of a TCP flow; the terminal device may be a transmission device of a TCP stream or a reception device of a TCP stream. As shown in fig. 2, the network device or the terminal device may include one or more processors (illustrated in fig. 2 as including only two processors 201), a communication line 202, a memory 203, and at least one communication interface (illustrated in fig. 2 as including only a communication interface 204).
The processor 201 may be a general purpose central processing unit (central processing unit, CPU), microprocessor, application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present application.
Communication line 202 may include a pathway to transfer information between the aforementioned components.
Communication interface 204 uses any transceiver-like device for communicating with other devices or communication networks. For example, with an AP, access switch, aggregation switch, core switch, or network controller.
The memory 203 may be, but is not limited to, a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (random access memory, RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (ELECTRICALLY ERASABLE PROGRAMMABLE READ-only memory, EEPROM), a compact disc read-only memory (compact disc read-only memory) or other optical disc storage, a compact disc storage (including compact disc, laser disc, optical disc, digital versatile disc, blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. The memory 203 may be stand alone and be coupled to the processor 201 via a communication line 402. Memory 203 may also be integrated with processor 201.
The memory 203 is configured to store computer-executable instructions for implementing aspects of the present application, where the memory 203 may store instructions for implementing modular functions, such as sending instructions, receiving instructions, and processing instructions, and is controlled for execution by the processor 201. The processor 201 is configured to execute computer-executable instructions stored in the memory 203 to implement the methods provided by the embodiments of the present application described below. The memory 203 shown in fig. 2 is only a schematic diagram, and the memory may also include other functional instructions, which are not limiting in this regard.
Alternatively, the computer-executable instructions of the present application may be referred to as application code, and the present application is not limited thereto.
In a particular implementation, as one embodiment, processor 201 may include one or more CPUs, such as CPU0 and CPU1 of FIG. 2.
It should be noted that, the hardware modules included in the network device or the terminal device shown in fig. 2 are only described by way of example, and the specific structures of the network device and the terminal device are not limited. For example, the network device or the terminal device may also include other functional modules.
In one possible configuration, where the device shown in fig. 2 is a forwarding device, the processor 201 shown in fig. 2 may include a network processor (network processor, NP), a traffic manager (TRAFFIC MANAGER, TM), and a Packet Editor (PE) as shown in fig. 3. The memory 203 may include an Output Buffer (OB) as shown in fig. 3.
Where OB may be used to buffer received TCP flows.
The TM may be configured to obtain the cache queue and port throughput information from the OB and provide the cache queue and port throughput information to the NP. The TM may also be used to accept the enabling ECN notification of the PE, read the waterline register information, such as the congestion waterline and early warning waterline stored in the waterline register. And modifying ECN fields of the messages according to the waterline (comprising pre-congestion waterline and pre-warning waterline) and the buffer queues (such as the number of the buffered messages, the data amount of the messages or the proportion of the data amount of the messages to the buffer area).
The NP may be used to send an enable ECN instruction to the PE. NPs can also be used to read information from the registers of the TM and calculate the waterline based on the read information, such as queue cache and throughput. For example, an early warning waterline and/or a pre-congestion waterline is calculated. The waterline value in the waterline register of the TM is modified.
In some embodiments, the NP is further configured to adjust a value of a Receive Window (RWND) or calculate a value of a congestion window CWND according to a queue congestion condition.
The network congestion control method provided by the application can be applied to the network equipment or the terminal equipment with the structure of figure 2 or the similar structure. Or may be applied to devices of other structures, the application not being limited.
In the conventional technology, in order to realize congestion control in the TCP transmission process, a sliding window strategy is generally adopted by a TCP congestion control algorithm, and the sending rate is regulated by controlling the value of a CWND field, so that congestion control is realized. For example, the control of the value of the CWND field may be performed by controlling the TCP state machine to operate in a Slow Start (SS) phase and a congestion avoidance phase.
Specifically, whenever a TCP connection is established or after a TCP connection has been retransmitted over time, the TCP connection enters a slow start phase. After that, the value of CWND is increased by 1 every time the sending device of the TCP flow receives an ACK message corresponding to a message. Thus, during the slow start phase, the value of the CWND field increases exponentially.
And after the value of the CWND field exceeds the slow start threshold, ending the slow start phase and entering a congestion avoidance phase.
In the congestion avoidance phase, the value of the CWND field typically tends to increase (ADDITIVE INCREASE, AI) in addition. For example, during the congestion avoidance phase, the control of the value of the CWND field may be performed by algorithms such as Reno, cubic, data center TCP (DATA CENTER TCP, DCTCP). For the control algorithm of the congestion avoidance phase, reference may be made to the description and illustration in the conventional art, and no further description is given here.
Typically, the slow start threshold will be set relatively large, and therefore the slow start phase will last relatively long. As shown in fig. 4, it is assumed that, in the slow start stage, when the forwarding device pre-congests at time t1, the congestion ECN is marked in the message, so that the message receiving end instructs the message sending end to perform CWND adjustment according to the congestion ECN mark, thereby avoiding the risk of network congestion.
However, because the congestion ECN flag is marked in the message when the forwarding device pre-congests, the congestion ECN flag is forwarded to the message receiving end along with the message, and then the message receiving end sends the message to the message sending end through the ACK message. During this period, the message sending end cannot respond to the pre-congestion event of the forwarding device in time. Therefore, when the message sending end does not respond in time, the slow start stage CWND increases exponentially, and a large number of TCP flows cause congestion to the forwarding device. As shown in fig. 4, the forwarding device starts congestion at time t 2. After the forwarding device is congested for a period of time, the message sending end starts to respond to the pre-congestion at the time t1 at the time t3, and the state machine of the TCP is controlled to enter a congestion avoidance stage. The delay of the response of the message sending end causes untimely control of congestion, thereby causing the problems of delay increase, sudden increase of packet loss rate and the like, and affecting the user experience.
In order to solve the above problems, the present application provides a network congestion control method, which introduces a pre-alert (pre-alert) waterline. Wherein, early warning waterline is less than the pre-congestion waterline. The forwarding device sets congestion early warning indication in the message larger than the early warning waterline when the number of the messages, the message data or the proportion of the message data in the buffer area buffered in the forwarding direction of the TCP stream is larger than the corresponding early warning waterline and smaller than the corresponding pre-congestion waterline, and before pre-congestion occurs in the forwarding device, the state switching from the slow start stage to the congestion avoidance stage is adopted in advance.
For example, the units of the early warning waterline and the pre-congestion waterline are the number of messages, wherein the early warning waterline is 80 messages, and the pre-congestion waterline is 100 messages. For another example, the units of the early warning waterline and the pre-congestion waterline are message data volumes, wherein the early warning waterline is an 80 kilobyte (kByte) message, and the pre-congestion waterline is a 100kByte message. For another example, the units of the early warning waterline and the pre-congestion waterline are the percentages of the cached message data volume to the cache area, wherein the early warning waterline is 70% and the pre-congestion waterline is 75%.
In the present application, "congestion early warning" refers to a state immediately before pre-congestion. "pre-congestion" refers to a state of near congestion. "congestion" means: in the event that the remaining storage space in the cache queue is less than a threshold (e.g., the cache queue is full), the target queue will discard a portion of the message to cache the cache pressure of the queue. The messages discarded by the buffer queue may be buffered messages or newly flown-in messages. Therefore, the smaller the remaining storage space in the cache queue, the greater the likelihood of a cache queue dropping a packet.
In the network congestion control method provided by the embodiment of the present application, a forwarding device (such as a core switch, a convergence switch, an access switch or an AP shown in fig. 1) is preset with an early warning waterline and a pre-congestion waterline. For example, the early warning waterline and the pre-congestion waterline are preset in waterline registers in the processor of the forwarding device.
In some embodiments, the early warning waterline and the pre-congestion waterline may be manually set, or may be a dynamic baseline value calculated by the forwarding device. For example, the early warning waterline and the pre-congestion waterline can be calculated according to the throughput of the forwarding direction of the current TCP stream and the number of messages/the data volume of the messages cached in the buffer. As another example, the early warning waterline may be determined from a pre-congestion waterline. The application is not limited to the specific setting mode and setting principle for determining the early warning waterline and the pre-congestion waterline.
For example, assuming that K1 is a pre-congestion waterline, RTT is a round trip time (round trip time) between a sending device of a TCP flow and a receiving device of the TCP flow, RTT2 is a round trip time between a forwarding device and the receiving device of the TCP flow, and γ is an adjustable parameter (e.g., γ=1/2), the pre-congestion waterline K2 can be calculated by the following calculation formula:
K2=K1×γ×(RTT+RTT2)/RTT。
as an example, the pre-congestion line K1 may be calculated by the following calculation formula:
K1=C×RTT×λ。
Where C is the egress bandwidth of the forwarding device, RTT is the round trip delay between the sending device of the TCP flow and the receiving device of the TCP flow, and λ is an adjustable parameter (e.g. λ=1/7).
It should be noted that the above calculation formula is only an example, and other calculation formulas may be adopted to calculate the early warning waterline of the forwarding device based on the pre-congestion waterline of the forwarding device. Or the early warning waterline and the congestion waterline of the forwarding device can be obtained through calculation based on other parameters.
In the network congestion control method provided by the embodiment of the application, the forwarding equipment is used for forwarding the TCP stream. The forwarding device is ECN marking capable. The forwarding device may be, for example, an AP, an access switch, an aggregation switch, or a core switch as shown in fig. 1.
Wherein, the forwarding device having ECN marking capability means that the forwarding device has the capability of marking ECN for the TCP message.
In one possible scenario, the sending device of the TCP flow and the receiving device of the TCP flow perform ECN negotiation before starting transmission of the TCP flow, so that both the sending device of the TCP flow and the receiving device of the TCP flow support the ECN mechanism. If both the sending device of the TCP flow and the receiving device of the TCP flow support the ECN mechanism, the sending device of the TCP flow may enable the ECN identification bit of the TCP packet before sending the TCP packet to the receiving device of the TCP flow, where the value of the ECN identification bit is "01" or "10". In this case, the capability of the forwarding device to mark the ECN for the TCP packet specifically means that when the buffer queue of the forwarding device reaches the pre-congestion line and does not reach the pre-congestion line, the forwarding device has the capability of marking the congestion pre-congestion indication for the TCP packet (i.e. modifying the ECN identification bit of the TCP packet from "01" to "10" or from "10" to "01") so as to notify the receiving device that the forwarding device has congestion pre-warning. Or when the buffer queue of the forwarding device reaches the pre-congestion line, the forwarding device has the capability of marking the pre-congestion indication for the TCP message (namely, modifying the ECN identification bit of the TCP message from "01" or "10" to "11") so as to inform the receiving device that the forwarding device is pre-congested.
In another possible case, the sending device of the TCP stream and the receiving device of the TCP stream do not perform ECN negotiation before starting transmission of the TCP stream. For example, when the transmission device of the TCP stream and the reception device of the TCP stream belong to different factories, the transmission device of the TCP stream and the reception device of the TCP stream do not perform ECN negotiation before starting transmission of the TCP stream. The ECN identification bit may not be included in the TCP message sent by the sending device of the TCP flow. In this case, the capability of the forwarding device to mark the ECN for the TCP packet may specifically refer to the capability of the forwarding device to enable the ECN identifier of the TCP packet when the buffer queue of the forwarding device reaches the pre-warning waterline and does not reach the pre-congestion waterline, or when the buffer queue of the forwarding device reaches the pre-congestion waterline. After the forwarding device enables the ECN identification bit of the TCP message, the forwarding device can inform the receiving device of congestion early warning when the buffer queue of the forwarding device reaches the early warning waterline and does not reach the pre-congestion waterline, wherein the ECN identification bit is "01" or "10". Or when the buffer queue of the forwarding device reaches the pre-congestion line, the ECN is identified as the position '11', so as to inform the receiving device that the forwarding device is pre-congested.
Referring to fig. 5, fig. 5 shows a schematic diagram of an IP header structure. Wherein, the ECN identification bit in the IP header shown in fig. 5 may be "00", "01", "10", or "11". Wherein "00" is used to characterize an ECN negotiation failure, i.e., at least one of the sending device of the TCP flow and the receiving device of the TCP flow does not support the ECN mechanism. "01" or "10" indicates that ECN negotiation is successful, i.e., both the sending device of the TCP flow and the receiving device of the TCP flow support the ECN mechanism. "11" indicates that the forwarding device has pre-congestion during the transmission of the TCP packet.
Typically, the version in the IP header is a4 bit (bit) IP protocol (e.g., IPv 4) version number. The header length is used to identify how many bytes the header has. Differential service coding (DIFFERENTIATED SERVICES codepoint, DSCP) is used to represent the length of the entire IP header. For example, DSCP may be 65535 at maximum.
It should be noted that fig. 5 is only an example of an IP header structure, and the specific structure of the IP header is not limited by the present application. For example, the IP header may also include other information such as service type, segment offset, etc. Reference may be made specifically to the description of the prior art, and no further description is given here.
It should be noted that, whether the sending device of the TCP flow and the receiving device of the TCP flow perform ECN negotiation before starting transmission of the TCP flow or not, the network congestion control method provided by the embodiment of the application is applicable. The following describes a network congestion control method according to an embodiment of the present application in detail with reference to the accompanying drawings.
Referring to fig. 6, fig. 6 is a flowchart of a network congestion control method according to an embodiment of the present application. As shown in fig. 6, a network congestion control method provided by an embodiment of the present application may include the following steps S601 to S603:
S601, the forwarding device receives the TCP message.
For example, the TCP packet may be a TCP packet based on video traffic or voice traffic, etc.
S602, when the buffer occupation of the forwarding equipment in the forwarding direction of the TCP stream is larger than the pre-congestion line and smaller than the pre-congestion line, setting congestion pre-alarm indication in the TCP message.
Wherein, the above-mentioned buffer occupancy is greater than the early warning waterline and less than the pre-congestion waterline may include, but is not limited to: the number of the cached messages is larger than the number pre-warning waterline and smaller than the number pre-congestion waterline, the number of the message data is larger than the number pre-warning waterline and smaller than the number pre-congestion waterline, or the proportion of the number of the message data in the cache area is larger than the proportion pre-warning waterline and smaller than the proportion pre-congestion waterline.
The forwarding direction of the TCP stream comprises an uplink direction and a downlink direction.
Taking the park network architecture shown in fig. 1 as an example, the uplink forwarding direction of the TCP flow may be the direction of the mobile phone (e.g. mobile phone 1-mobile phone 4 m) →the server in fig. 1; or supercomputer (e.g., supercomputer 1 or supercomputer 2) to server direction in fig. 1. More specifically, the uplink forwarding direction of the TCP flow is the direction of the handset, AP, access switch, aggregation switch, core switch, and server in fig. 1; or supercomputer → access switch → aggregation switch → core switch → server direction in fig. 1. The downstream forwarding direction of the TCP flow may be the direction of server→handset (e.g. handset 1-handset 4 m) in fig. 1; or the server→supercomputer (e.g., supercomputer 1 or supercomputer 2) direction in fig. 1. More specifically, the downstream forwarding direction of the TCP flow is the direction of the server, the core switch, the convergence switch, the access switch, the AP and the mobile phone in fig. 1; or the server- & gtcore switch- & gtaggregation switch- & gtaccess switch- & gtsupercomputer direction in figure 1.
It should be noted that, in the embodiment of the present application, the buffer queue of the forwarding device may buffer both TCP packets and user datagram protocol (User Datagram Protocol, UDP) packets or packets based on other protocols (such as network group management protocol (Internet Group Management Protocol, IGMP) packets, network control information protocol (Internet Control Message Protocol, ICMP) packets, open Shortest path first (Open Shortest PATH FIRST, OSPF) packets, or border gateway protocol (Border Gateway Protocol, BGP) packets, etc.). Therefore, the number of messages in the buffer queue not only comprises the number of TCP messages, but also comprises the number of other types of messages; the message data volume in the buffer queue not only comprises the data volume of TCP messages, but also comprises the data volumes of other types of messages. The forwarding device may determine whether the buffer queue of the forwarding device in the forwarding direction of the TCP flow is greater than the early warning waterline based on the total number of the packets of each type buffered in the forwarding device, or the total data amount of the packets of each type buffered in the forwarding device, or the ratio of the total data amount of the packets of each type buffered in the forwarding device to the buffer area.
For example, the units of the early warning waterline and the pre-congestion waterline are the number of messages, and the step S602 may specifically include: and when the number of the messages in the forwarding direction of the transmission TCP stream is larger than the number of the pre-congestion lines and smaller than the number of the pre-congestion lines, the forwarding device sets congestion pre-alarm indication in the TCP messages.
For another example, the units of the early warning waterline and the pre-congestion waterline are the packet data amount, and the step S602 may specifically include: when the message data quantity of the forwarding equipment in the forwarding direction of the transmission TCP stream is larger than the data quantity pre-congestion line and smaller than the data quantity pre-congestion line, congestion pre-congestion indication is set in the TCP message.
For another example, the units of the early warning waterline and the pre-congestion waterline are the percentages of the buffered packet data volume in the buffer area, and the step S602 may specifically include: and when the proportion of the data volume of the cached message in the forwarding direction of the transmission TCP stream in the buffer area of the forwarding device is larger than the proportion pre-congestion waterline and smaller than the proportion pre-congestion waterline, setting congestion pre-warning indication in the TCP message.
In the application, the congestion early warning indication is used for carrying out congestion early warning on receiving equipment of the TCP stream in advance so as to try to adjust the state of the TCP session from a slow start stage to a congestion avoidance stage by the initiating equipment of the TCP session to which the TCP message belongs. In the present application, the initiating device of the TCP session may also be understood as the sending end of the TCP packet.
For example, the congestion pre-warning indication may be represented by an ECN flag, e.g., the forwarding device may perform the congestion pre-warning indication by inverting the ECN flag.
Specifically, if the value of the ECN flag is "01" to indicate that the ECN negotiation is successful, the ECN flag may be "10" to indicate congestion warning indication, that is, if the agreed ECN identification bit is "01", the forwarding device sets the ECN identification position in the TCP packet to "10" to indicate congestion warning indication. If the value of the ECN flag is "10" to indicate that the ECN negotiation is successful, the ECN flag may be "01" to indicate the congestion warning indication, i.e. if the agreed ECN identification bit is "10", the forwarding device sets the ECN identification position in the TCP packet to "01" to indicate the congestion warning indication. In TCP transmission, if the agreed ECN identification bit is "01", the ECN identification bit in the message sent by the message sending device is "01"; if the contracted ECN identification bit is '10', the ECN identification bit in the message sent by the message sending device is '10'. Therefore, if the queue cached in the forwarding device does not reach the early warning waterline, the ECN identification bit in the message is unchanged, and only when the queue cached in the forwarding device reaches the early warning waterline, the forwarding device can invert the ECN identification bit in the message.
As shown in fig. 7 (a), assuming that the pre-congestion waterline is K1, the pre-congestion waterline is waterline K2, and the contracted ECN flag is "01". For the buffer queues larger than the early warning waterline and smaller than the pre-congestion waterline, namely the buffer queue larger than the waterline K2 shown in (a) of fig. 7 and smaller than the waterline K1 shown in (a) of fig. 7 (namely the buffer queue corresponding to the area A shown in (a) of fig. 7), the forwarding device sets the ECN identification bit in the corresponding message from "01" to "10".
Further, if the number of messages, the data amount of the messages or the proportion of the data amount of the messages to the buffer area buffered in the forwarding direction of the transmission TCP stream is larger than the corresponding pre-congestion line, the forwarding device sets a pre-congestion indication in the TCP message. The pre-congestion indication is used to inform the receiving device that the forwarding device is pre-congested in an attempt to adjust the state of the TCP session to which the TCP packet belongs from the slow start phase to the congestion avoidance phase.
For example, the pre-congestion indication may be represented by an ECN mark. Specifically, if the ECN flag has a value of "01" or "10" indicating that ECN negotiation is successful, the ECN flag may be "11" to indicate a pre-congestion indication. The pre-congestion indication is used for informing the receiving device that the forwarding device generates pre-congestion so as to attempt to adjust the state of the TCP session to which the TCP message belongs from the slow start stage to the congestion stage, so that the congestion problem is solved.
For example, the foregoing forwarding device sets a congestion indication in a TCP packet, which may specifically include: and when the agreed ECN identification bit is '01' or '10', the forwarding device sets the ECN identification position in the TCP message to '11'.
As shown in fig. 7 (b), assuming that the pre-congestion waterline is K1, the pre-congestion waterline is waterline K2, and the contracted ECN flag is "01". For a buffer queue greater than the pre-congestion line, i.e., a buffer queue greater than the waterline K1 shown in (a) of fig. 7 (i.e., a buffer queue corresponding to the area B shown in (a) of fig. 7), the forwarding device sets the ECN identification bit in the corresponding packet from "01" to "11".
And S603, forwarding the TCP message with the congestion early warning indication to receiving equipment of the TCP stream by forwarding equipment.
The congestion early warning indication in the TCP message sets a congestion early warning identification in an ACK message corresponding to the TCP message, so as to indicate the initiating device of the TCP session to adjust the state of the TCP session from a slow start stage to a congestion avoidance stage, and reduce the growth speed of the CWND field.
Further, if the number of messages, the data amount of the messages or the proportion of the data amount of the messages to the buffer area buffered in the transmission direction of the transmission TCP stream by the transmitting device is larger than the corresponding pre-congestion line, the transmitting device sets a pre-congestion indication in the TCP message. The forwarding device forwards the TCP message with the pre-congestion indication set to the receiving device of the TCP flow. The pre-congestion indication is used for setting a congestion identification in an ACK message corresponding to the TCP message by the receiving device of the TCP stream so as to indicate the initiating device of the TCP session to adjust the state of the TCP session to a congestion stage, so that the congestion problem is solved.
As for the specific behavior of the receiving device of the TCP flow after receiving the TCP packet forwarded by the forwarding device, reference may be made to step S801 shown in fig. 8.
As shown in fig. 8, after step S603, a network congestion control method provided by the embodiment of the present application further includes steps S801 to S804:
s801, the receiving equipment of the TCP stream sets a congestion early warning mark in an ACK message corresponding to the TCP message according to the congestion early warning indication included in the TCP message.
Wherein the congestion pre-warning identifier is used for indicating the initiating device of the TCP session to adjust the state of the TCP session from a slow start stage to a congestion avoidance stage so as to reduce the growth speed of the CWND field. In the present application, the initiating device of the TCP session may also be understood as the sending end of the TCP packet.
For example, if the congestion early warning indication is indicated by an ECN flag, after receiving the TCP packet forwarded by the forwarding device, the receiving device of the TCP flow may determine whether the forwarding device performs congestion early warning by analyzing an ECN identification bit in an IP header of the TCP packet.
For example, if the ECN identification bit agreed by the receiving device of the TCP flow and the sending device of the TCP flow is "01", but the ECN identification bit in the TCP packet forwarded by the forwarding device received by the receiving device of the TCP flow is "10", the receiving device of the TCP flow determines that congestion pre-warning occurs in the forwarding device. For another example, if the ECN identification bit agreed by the receiving device of the TCP flow and the sending device of the TCP flow is "10", but the ECN identification bit in the TCP packet forwarded by the forwarding device received by the receiving device of the TCP flow is "01", the receiving device of the TCP flow determines that congestion pre-warning occurs in the forwarding device. Or the receiving device of the TCP stream and the sending device of the TCP stream do not negotiate an ECN mechanism, but the receiving device of the TCP stream receives the TCP message forwarded by the forwarding device and comprises an ECN identification bit, and the ECN identification bit is 10 or 01, so that the receiving device of the TCP stream determines that the forwarding device generates congestion early warning.
For example, in the embodiment of the present application, when the TCP packet includes the congestion early warning indication, the receiving device of the TCP flow may identify the congestion early warning indication at the Reserved position 1 of the FLAG bit of the ACK packet corresponding to the TCP packet.
For example, referring to fig. 9, fig. 9 shows a schematic structural diagram of a TCP header of an ACK packet according to an embodiment of the present application. The Reserved, congestion window reduction (congestion window reduce, CWR), ECE (ECN-Echo), URG (urgent), ACK, PSH (push), RST (reset), SYN (synchronize), and FIN (finish) bits in the TCP header shown in fig. 9 are FLAG bits. Wherein the Reserved bit is a Reserved bit; the ECE bit is used to indicate that CWND is reduced; the URG bit is used to indicate whether the urgent pointer is valid; the ACK bit is used for confirming and feeding back the connection condition; the PSH bit is used for indicating that the data is immediately sent to an application layer for processing; the RST bit is used to indicate resetting the TCP connection; the SYN bit is used to request establishment of a TCP connection; the FIN bit is used to indicate that the TCP connection is broken. For a specific description of each bit in the TCP header, reference may be made to the description in the conventional art, and no description will be given here.
Taking the TCP header with the structure shown in fig. 9 as an example, when the TCP packet includes a congestion early warning indication, the receiving device of the TCP flow may identify congestion early warning at the Reserved position 1 of the FLAG bit of the ACK packet corresponding to the TCP packet shown in fig. 9.
It should be noted that the Reserved bit of the FLAG bit may include one bit (bit) or multiple bits (bit). For the case where the Reserved bit includes 1 bit (bit), typically in the initial state, the Reserved bit is "0", then the receiving device of the TCP flow may place the Reserved bit in "1" when the TCP message includes a congestion pre-warning indication. For the case that the Reserved bit includes multiple bits (bits), for example, the case that the Reserved bit includes 3 bits (bits), in the initial state, the Reserved bit is "000", and then the receiving device of the TCP stream may set any position 1 of the Reserved bit, for example, set the Reserved position to "001", "010" or "100", when the TCP message includes the congestion pre-warning indication, and the specific manner of Reserved position 1 is not limited by the present application.
Similarly, if the pre-congestion indication is indicated by an ECN flag, after receiving the TCP packet forwarded by the forwarding device, the receiving device of the TCP flow may determine whether the forwarding device is pre-congested by analyzing an ECN identification bit in an IP header of the TCP packet.
For example, if the ECN identification bit agreed by the receiving device of the TCP flow and the sending device of the TCP flow is "01" or "10", but the ECN identification bit in the TCP packet forwarded by the forwarding device received by the receiving device of the TCP flow is "11", the receiving device of the TCP flow determines that the forwarding device is pre-congested. Or the receiving device of the TCP stream and the sending device of the TCP stream do not negotiate an ECN mechanism, but the TCP message forwarded by the forwarding device received by the receiving device of the TCP stream comprises an ECN identification bit, and the ECN identification bit is 11, and the receiving device of the TCP stream determines that the forwarding device is pre-congested.
For example, in the embodiment of the present application, when the TCP packet includes the pre-congestion indication, the receiving device of the TCP flow may send the ECN-ECHO location 1 of the FLAG bit of the ACK packet corresponding to the TCP packet. Taking the TCP header with the structure shown in fig. 9 as an example, when the TCP packet includes the pre-congestion indication, the forwarding device may place the ECE bit (i.e., ECN-ECHO bit) of the FLAG bit of the ACK packet corresponding to the TCP packet shown in fig. 9 at 1.
Note that fig. 9 is only an example of TCP header reception, and the present application is not limited to a specific version and structure of a TCP header, and reference may be made specifically to a TCP header structure in the conventional art.
S802, the forwarding device receives an ACK message corresponding to the TCP message, wherein the ACK message corresponding to the TCP message comprises a congestion early warning identifier.
Specifically, an ACK message corresponding to the TCP message is sent to the forwarding device by the receiving device of the TCP flow. For example, if the receiving device of the TCP flow is a server and the forwarding device is a core switch, the ACK message corresponding to the TCP message is directly sent to the core switch by the server. For another example, the receiving device of the TCP flow is a server, and the forwarding device is an aggregation switch, and then the ACK message corresponding to the TCP message is forwarded to the aggregation switch by the server through the core switch.
S803, the forwarding device forwards the ACK message corresponding to the TCP message to the sending device of the TCP stream.
For example, the forwarding device is a core switch, the receiving device of the TCP flow is the supercomputer shown in fig. 1, and the forwarding device forwards the ACK message corresponding to the TCP message to the supercomputer through the aggregation switch and the access switch, respectively. For another example, the forwarding device is an access switch, and the receiving device of the TCP flow is the supercomputer shown in fig. 1, and then the forwarding device directly forwards the ACK message corresponding to the TCP message to the supercomputer.
S804, the sending equipment of the TCP stream controls the state machine of the TCP according to the congestion early warning identification in the ACK message so as to enter a congestion avoidance stage from a slow start stage.
For example, if the sending device of the TCP flow determines that the Reserved bit of the FLAG bit of the ACK packet is set to 1, e.g., the Reserved bit is "1", "001", "010" or "100", the sending device of the TCP flow controls the state machine of the TCP to end the slow start state and switch to the congestion avoidance state. And when the next message is sent, the CWR position 1 is used for reminding the receiving device of the TCP stream that the sending device of the TCP stream has responded to the congestion early-warning event of the forwarding device.
In one possible implementation, further, if the sending device of the TCP flow determines that the Reserved bit of the FLAG bit of the ACK packet is set to 1, the sending device of the TCP flow may also reset the value of the CWND field and/or the congestion avoidance threshold.
Or if the sending device of the TCP flow determines that the ECN-ECHO bit of the FLAG bit of the ACK message is set to 1, for example, the sending device of the TCP flow may control the state machine of the TCP to adjust to the congestion state. And when the next message is sent, the CWR position 1 is used for reminding the receiving device of the TCP stream that the sending device of the TCP stream has responded to the pre-congestion event of the forwarding device.
In one possible implementation, further, if the sending device of the TCP flow determines that the ECN-ECHO bit of the FLAG bit of the ACK packet is set to 1, the sending device of the TCP flow may also reset the value of the CWND field and/or the congestion avoidance threshold.
In the network congestion control method provided by the application, the forwarding device sets congestion early warning indication in the message larger than the early warning waterline when the number of messages, the data quantity of the messages or the data quantity of the messages in the buffer area in the forwarding direction of the TCP stream is larger than the corresponding early warning waterline and smaller than the corresponding pre-congestion waterline, and adopts state switching from a slow start stage to a congestion avoidance stage in advance before the forwarding device is pre-congested, so that the problems of delay increase, packet loss rate burst and the like caused by untimely congestion control after congestion occurs for a period of time can be avoided.
It is to be understood that the various aspects of the embodiments of the application may be used in any reasonable combination, and that the explanation or illustration of the various terms presented in the embodiments may be referred to or explained in the various embodiments without limitation.
It should also be understood that, in various embodiments of the present application, the sequence numbers of the foregoing processes do not mean the order of execution, and the order of execution of the processes should be determined by the functions and internal logic thereof, and should not constitute any limitation on the implementation process of the embodiments of the present application.
It will be appreciated that in order to implement the functionality of any of the above embodiments, a forwarding device (e.g., a core switch, an aggregation switch, an access switch or an access point AP, etc.) includes corresponding hardware structures and/or software modules that perform the respective functions. Those of skill in the art will readily appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is implemented as hardware or computer software driven hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The embodiment of the application can divide the functional modules of forwarding equipment (such as a core switch, a convergence switch, an access switch or an Access Point (AP), etc.), for example, each functional module can be divided corresponding to each function, and two or more functions can be integrated in one processing module. The integrated modules may be implemented in hardware or in software functional modules. It should be noted that, in the embodiment of the present application, the division of the modules is schematic, which is merely a logic function division, and other division manners may be implemented in actual implementation.
For example, in the case of dividing each functional module in an integrated manner, as shown in fig. 10, a block diagram of a forwarding device according to an embodiment of the present application is provided. The forwarding device (e.g., core switch, aggregation switch, access switch or access point AP, etc.) may include a processing unit 1010, a storage unit 1020, and a transceiving unit 1030.
The transceiver 1030 is configured to receive or transmit radio signals, e.g., receive TCP messages, forward received TCP messages and ACK messages, and/or other information for the techniques described herein. The memory unit 1020 is used to store computer programs, buffer the TCP messages described above, and/or other information for the techniques described herein. The processing unit 810 is configured to set a congestion early warning indication in the TCP packet when the buffer occupancy in the forwarding direction of the TCP flow is greater than the early warning waterline and less than the pre-congestion waterline. For example, when the number of the messages buffered in the forwarding direction of the TCP flow is greater than the number pre-congestion line and less than the number pre-congestion line, the number of the message data is greater than the number pre-congestion line and less than the number pre-congestion line, or the ratio of the number of the message data to the buffer area is greater than the ratio pre-congestion line and less than the ratio pre-congestion line, a congestion pre-alarm indication is set in the TCP message.
Wherein, the forwarding direction includes an uplink direction and a downlink direction.
In some embodiments, the transceiver 1030 is further configured to receive an ACK message corresponding to the TCP message in a reverse direction of the TCP flow. The ACK message includes a congestion pre-warning identifier that instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion avoidance phase to reduce the rate of growth of the CWND field.
In some embodiments, the congestion warning indication described above may be represented by an ECN flag. For example, the processing unit 1010 is specifically configured to set the ECN flag to "10" to indicate the congestion pre-warning indication if the value of the ECN flag is "01" to indicate that the ECN negotiation is successful; or if the value of the ECN flag is "10" indicating that the ECN negotiation is successful, the ECN flag is set to "01" to indicate a congestion warning indication.
As further shown in fig. 11, a block diagram of a receiving device for a TCP stream according to an embodiment of the present application is provided. For example, the receiving device is a server, a supercomputer, a cell phone, etc. As shown in fig. 11, the receiving apparatus may include a processing unit 1110, a storage unit 1120, and a transceiving unit 1130.
The transceiver 1130 is configured to receive or transmit radio signals, e.g., receive a first TCP message, transmit an ACK message, etc., and/or other information for the techniques described herein. The storage unit 1120 is used to store computer programs and/or other information for the techniques described herein. The processing unit 1110 is configured to attempt to adjust the state of the TCP session to which the first TCP packet belongs from the slow start phase to the congestion avoidance phase according to the congestion warning indication included in the first TCP packet, so as to reduce the growth speed of the CWND field.
In some embodiments, the first TCP message includes a congestion warning indication. The processing unit 1110 is specifically configured to set, according to the congestion early warning indication included in the first TCP packet, a congestion early warning identifier in an ACK packet corresponding to the first TCP packet; the congestion early warning identification instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion avoidance phase.
In some embodiments, the processing unit 1110 may specifically use the Reserved position 1 of the FLAG bit of the ACK packet corresponding to the first TCP packet as the congestion early warning identifier.
In some embodiments, the transceiver unit 1120 is further configured to receive a second TCP packet, where the second TCP packet includes a pre-congestion indication. The processing unit 1110 is further configured to set, according to a pre-congestion indication included in the TCP packet, a congestion identifier in an ACK packet corresponding to the TCP packet; the congestion identification instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion phase to address the congestion problem.
In some embodiments, the processing unit 1110 may specifically use the ECN-ECHO location 1 of the FLAG bit of the ACK packet corresponding to the TCP packet as the congestion identifier.
It should be noted that, the transceiver 1030 or the transceiver 1130 may include a radio frequency circuit. The forwarding device or the receiving device may receive and transmit wireless signals through the radio frequency circuit. Typically, the radio frequency circuitry includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, and the like. In addition, the radio frequency circuitry may also communicate with other devices via wireless communications. The wireless communication may use any communication standard or protocol including, but not limited to, global system for mobile communications, general packet radio service, code division multiple access, wideband code division multiple access, long term evolution, email, short message service, and the like.
In an alternative, when data transmission is implemented using software, it may be implemented wholly or partly in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are fully or partially implemented. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wired (e.g., coaxial cable, fiber optic, digital subscriber line ((digital subscriber line, DSL)), or wireless (e.g., infrared, wireless, microwave, etc.), the computer-readable storage medium may be any available medium that can be accessed by the computer or a data storage device such as a server, data center, etc., that contains an integration of one or more available media, the available media may be magnetic media, (e.g., floppy disk, hard disk, tape), optical media (e.g., digital versatile disk (digital video disk, DVD)), or semiconductor media (e.g., solid state disk Solid STATE DISK (SSD)), etc.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied in hardware or in software instructions executed by a processor. The software instructions may be comprised of corresponding software modules that may be stored in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. For example, a storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. In addition, the ASIC may be located in a probing device. It is of course also possible that the processor and the storage medium are present as separate components in the detection device.
From the foregoing description of the embodiments, it will be apparent to those skilled in the art that, for convenience and brevity of description, only the above-described division of functional modules is illustrated, and in practical application, the above-described functional allocation may be implemented by different functional modules according to needs, i.e. the internal structure of the apparatus is divided into different functional modules to implement all or part of the functions described above.
In an alternative form, the application provides a chip system comprising a processor, a memory, the memory having computer program code stored therein; the computer program code, when executed by a processor, implements the method in any of the possible implementations provided by the application. The chip system may be formed of a chip or may include a chip and other discrete devices.
In the several embodiments provided by the present application, it should be understood that the disclosed apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, and the division of modules or units, for example, is merely a logical function division, and there may be additional divisions when actually implemented, for example, multiple units or components may be combined or integrated into another apparatus, or some features may be omitted, or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and the parts displayed as units may be one physical unit or a plurality of physical units, may be located in one place, or may be distributed in a plurality of different places. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
The integrated units, if implemented in the form of software functional units and sold or used as stand-alone products, may be stored in a readable storage medium. Based on such understanding, the technical solution of the embodiments of the present application may be essentially or a part contributing to the prior art or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium, including several instructions for causing a device (may be a single-chip microcomputer, a chip or the like) or a processor (processor) to perform all or part of the steps of the method described in the embodiments of the present application. And the aforementioned storage medium includes: a usb disk, a removable hard disk, a ROM, a RAM, a magnetic disk, or an optical disk, etc.
The foregoing is merely illustrative of specific embodiments of the present application, and the scope of the present application is not limited thereto, but any changes or substitutions within the technical scope of the present application should be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (22)

1. A method for controlling network congestion, the method comprising:
The forwarding equipment receives a Transmission Control Protocol (TCP) message;
when the buffer occupancy of the forwarding equipment in the forwarding direction of the TCP stream is larger than the pre-congestion water line and smaller than the pre-congestion water line, congestion pre-warning indication is set in the TCP message;
the forwarding device forwards the TCP message comprising the congestion early warning indication;
the forwarding device receives an Acknowledgement (ACK) message corresponding to the TCP message in the reverse direction of the TCP stream, wherein the ACK message comprises a congestion early warning identifier, and the congestion early warning identifier indicates an initiating device of the TCP session to adjust the state of the TCP session from a slow start stage to a congestion avoidance stage.
2. The method of claim 1, wherein the congestion pre-warning indication is represented by an explicit congestion notification, ECN, flag.
3. The method of claim 2, wherein the step of determining the position of the substrate comprises,
If the value of the ECN mark is '01', the ECN mark is '10', and the congestion early warning indication is indicated; or alternatively
If the value of the ECN flag is '10', the ECN flag is '01' to indicate that the ECN negotiation is successful.
4. A method according to any of claims 1-3, characterized in that the forwarding direction comprises an upstream direction and a downstream direction.
5. The method of claim 4, wherein the forwarding device is a core switch, an aggregation switch, an access switch, or an access point AP.
6. A method for controlling network congestion, the method comprising:
the receiving equipment receives a first Transmission Control Protocol (TCP) message; the first TCP message comprises a congestion early warning indication;
The receiving equipment sets a congestion early warning mark in an Acknowledgement (ACK) message belonging to the TCP session to which the first TCP message belongs according to the congestion early warning indication; the congestion early warning identifier instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion avoidance phase.
7. The method of claim 6, wherein the receiving device sets a congestion early warning flag in an acknowledgement, ACK, message belonging to the TCP session, comprising:
And the receiving equipment sets the Reserved position 1 of the FLAG bit of the ACK message.
8. The method of claim 6, wherein the method further comprises:
The receiving equipment receives a second TCP message; the second TCP message comprises a pre-congestion indication;
And the receiving equipment sets an ECN-ECHO position 1 of a FLAG bit of the ACK message corresponding to the second TCP message.
9. A forwarding device, wherein the forwarding device is configured to forward a TCP flow; the forwarding device includes:
the receiving and transmitting unit is used for receiving a Transmission Control Protocol (TCP) message;
The processing unit is used for setting congestion early warning indication in the TCP message when the buffer occupation in the forwarding direction of the TCP stream is larger than the early warning waterline and smaller than the pre-congestion waterline;
The receiving-transmitting unit is further configured to forward the TCP packet including the congestion early-warning indication, and receive an acknowledgement ACK packet corresponding to the TCP packet in a reverse direction of the TCP flow, where the ACK packet includes a congestion early-warning identifier, and the congestion early-warning identifier indicates an initiating device of a TCP session to adjust a state of the TCP session from a slow start stage to a congestion avoidance stage.
10. The forwarding device of claim 9 wherein the congestion pre-warning indication is represented by an explicit congestion notification ECN flag.
11. The forwarding device of claim 10 wherein the forwarding device is configured to,
If the value of the ECN mark is '01', the ECN mark is '10', and the congestion early warning indication is indicated; or alternatively
If the value of the ECN flag is '10', the ECN flag is '01' to indicate that the ECN negotiation is successful.
12. The forwarding device of any of claims 9-11 wherein the forwarding direction includes an upstream direction and a downstream direction.
13. The forwarding device of claim 12 wherein the forwarding device is a core switch, an aggregation switch, an access switch, or an access point AP.
14. A receiving apparatus, characterized in that the receiving apparatus comprises:
the receiving and transmitting unit is used for receiving a first Transmission Control Protocol (TCP) message; the first TCP message comprises a congestion early warning indication;
The processing unit is used for setting a congestion early warning mark in an Acknowledgement (ACK) message belonging to the TCP session to which the first TCP message belongs according to the congestion early warning indication; the congestion early warning identifier instructs an initiating device of the TCP session to adjust the state of the TCP session from a slow start phase to a congestion avoidance phase.
15. The receiving device of claim 14, wherein the processing unit sets a congestion early warning flag in an acknowledgement, ACK, message belonging to the TCP session, comprising:
and the processing unit calculates the Reserved position 1 of the FLAG bit of the ACK message.
16. The receiving device of claim 14, wherein the transceiver unit is further configured to receive a second TCP packet, the second TCP packet including a pre-congestion indication;
the processing unit is further configured to determine an ECN-ECHO location 1 of a FLAG bit of the ACK packet corresponding to the second TCP packet.
17. A forwarding device, wherein the forwarding device is configured to forward a TCP flow; the forwarding device includes:
a memory for storing a computer program and the TCP stream;
A transceiver for receiving or transmitting radio signals;
A processor for executing the computer program to implement the network congestion control method according to any of claims 1-5.
18. A receiving apparatus, characterized in that the receiving apparatus comprises:
a memory for storing a computer program and a transmission control protocol, TCP, flow;
A transceiver for receiving or transmitting radio signals;
A processor for executing the computer program to implement the network congestion control method according to any of claims 6-8.
19. A communication system, the communication system comprising: the forwarding device of any of claims 9-13 or 17.
20. The communication system of claim 19, wherein the communication system further comprises: the receiving device of any of claims 14-16 or 18.
21. A computer readable storage medium, characterized in that the computer readable storage medium has stored thereon computer program code which, when executed by a processing circuit, implements a network congestion control method according to any of claims 1-5 or 6-8.
22. A chip system, comprising a processing circuit, a storage medium having computer program code stored therein; the computer program code implementing a network congestion control method as claimed in any one of claims 1-5 or 6-8 when executed by the processing circuitry.
CN202010694057.1A 2020-07-17 2020-07-17 Network congestion control method and device Active CN113950099B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010694057.1A CN113950099B (en) 2020-07-17 2020-07-17 Network congestion control method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010694057.1A CN113950099B (en) 2020-07-17 2020-07-17 Network congestion control method and device

Publications (2)

Publication Number Publication Date
CN113950099A CN113950099A (en) 2022-01-18
CN113950099B true CN113950099B (en) 2024-06-25

Family

ID=79327168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010694057.1A Active CN113950099B (en) 2020-07-17 2020-07-17 Network congestion control method and device

Country Status (1)

Country Link
CN (1) CN113950099B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277590B (en) * 2022-07-22 2023-09-29 支付宝(杭州)信息技术有限公司 Congestion control method, device and equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789880A (en) * 2010-01-22 2010-07-28 中国电信股份有限公司 Method for realizing uplink QoS (Quality of Service) based on IP access network and multi-service access gateway
CN101917342A (en) * 2010-08-25 2010-12-15 天津理工大学 Pervasive service-oriented adaptive network congestion control method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143078B (en) * 2011-03-29 2013-10-02 华为技术有限公司 Forwarding equipment as well as method and system for processing message
US9559972B2 (en) * 2013-12-30 2017-01-31 Comcast Cable Communications, Llc Systems and methods for managing congestion
US10397124B2 (en) * 2017-01-17 2019-08-27 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. System and method to prevent persistent full switch queues in software defined networks
CN107135163A (en) * 2017-04-12 2017-09-05 上海大学 A kind of transfer control method based on unmanned plane wideband data downlink

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789880A (en) * 2010-01-22 2010-07-28 中国电信股份有限公司 Method for realizing uplink QoS (Quality of Service) based on IP access network and multi-service access gateway
CN101917342A (en) * 2010-08-25 2010-12-15 天津理工大学 Pervasive service-oriented adaptive network congestion control method

Also Published As

Publication number Publication date
CN113950099A (en) 2022-01-18

Similar Documents

Publication Publication Date Title
EP3100420B1 (en) Buffer sizing for multi-hop networks
EP3767890B1 (en) Method and apparatus for monitoring service quality
WO2021008473A1 (en) System, method, and apparatus for evaluating round-trip time
US8873385B2 (en) Incast congestion control in a network
US10461986B2 (en) Data transmission method, apparatus, and system
WO2020042624A1 (en) Transmission rate control method and apparatus, sending device and receiving device
CN108833293B (en) Data center congestion control method and device based on Software Defined Network (SDN)
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
CN113726681B (en) Network congestion control method and network equipment
CN113438181B (en) Network congestion control method and device
EP4156766A1 (en) Data packet sending method and apparatus
Wang et al. TCP congestion control algorithm for heterogeneous Internet
EP2689602A1 (en) Buffer sizing for multi-hop network
EP4037270B1 (en) Service traffic adjusting method and apparatus
CN113950099B (en) Network congestion control method and device
WO2018157819A1 (en) Method and apparatus for multiple sub-current network transmission
JP4766703B2 (en) Edge node and bandwidth control method
Yaakob et al. Distributed collision control with the integration of packet size for congestion control in wireless sensor networks
EP4117252A1 (en) Traffic control method and apparatus
WO2023005927A1 (en) Srv6-based tunnel quality measurement method and related apparatus
US20230397038A1 (en) Traffic engineering for real-time applications
CN114979019A (en) Congestion control method and communication device
CN115604755A (en) Flow control method and device
Kibria et al. Queueing model for Bluetooth multipoint communications
WO2017041569A1 (en) Service data transmission method and device

Legal Events

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