Disclosure of Invention
The application provides a network congestion control method, equipment, a storage medium and a program product, which can realize rapid alleviation of network congestion.
In a first aspect, the present application provides a network congestion control method, including:
The method comprises the steps of determining congestion states of a first node and a neighbor node of the first node, determining that the first node and the neighbor node are nodes on the same forwarding path, determining a network congestion control scheme at least based on the congestion states of the first node and the neighbor node, wherein the network congestion control scheme is used for relieving the congestion degree of the first node and/or the neighbor node, and executing the network congestion control scheme.
It can be understood that the existing network congestion control technology performs analysis and regulation of network congestion based on the end-side equipment of data transmission, and cannot realize rapid alleviation of network congestion under the influence of notification information time delay. The network congestion control method provided by the application determines the network congestion control scheme at least based on the congestion states of the first node and the neighbor nodes on the forwarding path, and can realize that the node or the neighbor nodes where the network congestion is located directly carry out the network congestion control.
A possible implementation manner of the method comprises the steps of enabling a neighbor node to comprise a second node which is an upstream node of a first node, determining a network congestion control scheme based on congestion states of the first node and the neighbor node, wherein the network congestion control scheme comprises at least one of requesting the second node to temporarily store traffic data to be forwarded, requesting the second node to reduce a data forwarding rate, temporarily storing the traffic data in a buffer queue of the first node to a first standby node, enabling the first standby node to be adjacent to the first node and not on a forwarding path, requesting the second node to replace the forwarding path when the first node is not in the congestion state, and enabling the replaced forwarding path not to comprise the first node.
In another possible implementation manner, the neighbor node comprises a second node which is an upstream node of the first node, the network congestion control scheme is determined based on congestion states of the first node and the neighbor node, and the network congestion control scheme comprises at least one of temporarily storing traffic data in a buffer queue of the first node to a first standby node, wherein the first standby node is a node which is adjacent to the first node and is not on a forwarding path, requesting the second node to temporarily store the traffic data in the buffer queue to the second standby node, wherein the second standby node is a node which is adjacent to the second node and is not on the forwarding path, requesting the second node to replace the forwarding path, and the replaced forwarding path does not comprise the first node.
In another possible implementation manner, the neighbor node comprises a third node which is a downstream node of the first node, and the network congestion control scheme is determined based on congestion states of the first node and the neighbor node, wherein the network congestion control scheme comprises at least one of the following steps that the first node temporarily stores traffic data to be forwarded, the first node reduces a data forwarding rate, the first node replaces a forwarding path, and the replaced forwarding path does not comprise the third node when the first node is not in the congestion state and the third node is in the congestion state.
In another possible implementation manner, the neighbor node comprises a third node which is a downstream node of the first node, the network congestion control scheme is determined based on congestion states of the first node and the neighbor node, the network congestion control scheme comprises at least one of temporarily storing traffic data in a buffer queue of the first node to a first standby node, the first standby node being a node adjacent to the first node and not on a forwarding path, requesting the third node to temporarily store the traffic data in the buffer queue to the third standby node, the third standby node being a node adjacent to the third node and not on the forwarding path, and replacing the forwarding path by the first node, wherein the replaced forwarding path does not comprise the third node.
In yet another possible implementation, determining a network congestion control scheme based at least on congestion states of the first node and the neighboring node includes determining a network congestion control scheme based on the congestion states of the first node and the neighboring node, the priority of traffic data.
In another possible implementation manner, a forwarding path flowing through a first node comprises a first traffic data forwarding path and a second traffic data forwarding path, a neighbor node of the first node comprises a first upstream node of the first node on the first forwarding path and a second upstream node of the first node on the second forwarding path, a network congestion control scheme is determined based on congestion states of the first node and the neighbor node and priorities of traffic data, and the network congestion scheme comprises that if the first node is in a congestion state and neither the first upstream node nor the second upstream node is in a congestion state, if the priority of the first traffic data is higher than that of the second traffic data, the network congestion scheme comprises that the second upstream node is requested to reduce the forwarding rate of the second traffic data, and the second upstream node is requested to temporarily store the second traffic data to be forwarded.
In another possible implementation manner, determining the congestion state of the first node includes determining that the first node is in the congestion state when the remaining capacity of the buffer queue of the first node is less than or equal to a first preset threshold.
In another possible implementation manner, determining the congestion state of the neighbor node of the first node includes determining that the neighbor node is in the congestion state in response to receiving a congestion notification message of the neighbor node, where the congestion notification message is used to indicate that the remaining capacity of a buffer queue of the neighbor node is less than or equal to a first preset threshold.
In another possible implementation manner, determining the congestion state of the neighbor node of the first node includes sending a measurement message to the neighbor node, where the measurement message is used to instruct the neighbor node to measure the remaining capacity of the buffer queue of the neighbor node, receiving a measurement response message sent by the neighbor node, where the measurement response message includes the remaining capacity of the buffer queue of the neighbor node, and determining that the neighbor node is in the congestion state when the remaining capacity of the buffer queue of the neighbor node is less than or equal to a first preset threshold.
In a second aspect, the application provides a network congestion control device applied to network equipment for transmitting data, which comprises a measurement sensing module and an analysis processing module. The measurement sensing module is used for determining congestion states of a first node and a neighbor node of the first node, wherein the first node and the neighbor node are nodes on the same forwarding path, the analysis processing module is used for determining a network congestion control scheme at least based on the congestion states of the first node and the neighbor node, the network congestion control scheme is used for relieving the congestion degree of the first node and/or the neighbor node, and the network congestion control scheme is executed.
A possible implementation manner of the method comprises the steps that a neighbor node comprises a second node which is an upstream node of a first node, an analysis processing module is used for determining that a congestion control scheme comprises at least one of requesting the second node to temporarily store traffic data to be forwarded when the first node is in a congestion state and the second node is not in the congestion state, requesting the second node to reduce a data forwarding rate, temporarily storing the traffic data in a buffer queue of the first node to a first standby node, wherein the first standby node is a node which is adjacent to the first node and is not on a forwarding path, requesting the second node to replace the forwarding path, and the replaced forwarding path does not comprise the first node.
In another possible implementation manner, the neighbor node comprises a second node which is an upstream node of the first node, and the analysis processing module is specifically configured to determine that the congestion control scheme comprises at least one of temporarily storing traffic data in a buffer queue of the first node to a first standby node, wherein the first standby node is a node adjacent to the first node and not on a forwarding path, requesting the second node to temporarily store the traffic data in the buffer queue to the second standby node, wherein the second standby node is a node adjacent to the second node and not on the forwarding path, requesting the second node to replace the forwarding path, and the replaced forwarding path does not include the first node when the first node and the second node are both in a congestion state.
In another possible implementation manner, the neighbor node comprises a third node which is a downstream node of the first node, and the analysis processing module is specifically configured to determine that the congestion control scheme comprises at least one of the following steps that the first node temporarily stores traffic data to be forwarded, the first node reduces the data forwarding rate, the first node replaces a forwarding path, and the replaced forwarding path does not comprise the third node when the first node is not in a congestion state and the third node is in a congestion state.
In another possible implementation manner, the neighbor node comprises a third node which is a downstream node of the first node, the analysis processing module is specifically configured to determine that the congestion control scheme comprises at least one of temporarily storing traffic data in a buffer queue of the first node to a first standby node, the first standby node being a node adjacent to the first node and not on a forwarding path, requesting the third node to temporarily store the traffic data in the buffer queue to the third standby node, the third standby node being a node adjacent to the third node and not on the forwarding path, replacing the forwarding path by the first node, and the replaced forwarding path does not include the third node when the first node and the third node are both in a congestion state.
In another possible implementation manner, the analysis processing module is specifically configured to determine a network congestion control scheme based on congestion states of the first node and the neighboring nodes and priorities of traffic data.
In another possible implementation manner, the forwarding path flowing through the first node comprises a first traffic data forwarding path and a second traffic data forwarding path, the neighbor node of the first node comprises a first upstream node of the first node on the first forwarding path and a second upstream node of the first node on the second forwarding path, and the analysis processing module is specifically configured to request the second upstream node to reduce the forwarding rate of the second traffic data if the first node is in a congestion state and neither the first upstream node nor the second upstream node is in a congestion state, and the network congestion scheme comprises requesting the second upstream node to reduce the forwarding rate of the second traffic data if the priority of the first traffic data is higher than the priority of the second traffic data.
In another possible implementation manner, the measurement sensing module is specifically configured to determine that the first node is in a congestion state when a remaining capacity of a buffer queue of the first node is less than or equal to a first preset threshold.
In another possible implementation manner, the measurement sensing module is specifically configured to determine that the neighboring node is in a congestion state in response to receiving a congestion notification message of the neighboring node, where the congestion notification message is used to indicate that a remaining capacity of a buffer queue of the neighboring node is less than or equal to a first preset threshold.
The measurement sensing module is specifically configured to send a measurement message to the neighbor node, where the measurement message is used to instruct the neighbor node to measure a remaining capacity of a buffer queue of the neighbor node, receive a measurement response message sent by the neighbor node, where the measurement response message includes the remaining capacity of the buffer queue of the neighbor node, and determine that the neighbor node is in a congestion state when the remaining capacity of the buffer queue of the neighbor node is less than or equal to a first preset threshold.
In a third aspect, the application provides an electronic device comprising a processor and a memory, the memory storing instructions executable by the processor, the processor being configured to, when executing the instructions, cause the electronic device to implement the method of the first aspect described above.
In a fourth aspect, the application provides a readable storage medium comprising software instructions which, when run in an electronic device, cause the electronic device to implement the method of the first aspect described above.
In a fifth aspect, the present application provides a system-on-chip for use in a congestion control device, the system-on-chip comprising one or more interface circuits, and one or more processors. The interface circuit is used for receiving signals from the memory of the congestion control device and sending signals to the processor, and the signals comprise computer instructions stored in the memory. The computer instructions, when executed by a processor, cause an electronic device to perform the method of the first aspect described above.
In a sixth aspect, the present application provides a computer program product for, when run on an electronic device, causing the electronic device to perform the steps of the related method described in the first aspect above, to carry out the method of the first aspect above.
Advantageous effects of the second aspect to the sixth aspect described above refer to corresponding descriptions of the first aspect, and are not repeated.
Detailed Description
The following description of the embodiments of the present application will be made clearly and completely with reference to the accompanying drawings, in which it is apparent that the embodiments described are only some embodiments of the present application, but not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the application without making any inventive effort, are intended to be within the scope of the application.
It should be noted that, in the embodiments of the present application, words such as "exemplary" or "such as" are used to mean serving as an example, instance, or illustration. Any embodiment or design described herein as "exemplary" or "for example" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "such as" is intended to present related concepts in a concrete fashion.
Furthermore, references to the terms "comprising" and "having" and any variations thereof in the description of the present application are intended to cover a non-exclusive inclusion. For example, a process, method, system, article, or apparatus that comprises a list of steps or elements is not limited to only those listed but may optionally include other steps or elements not listed or inherent to such process, method, article, or apparatus.
In order to clearly describe the technical solution of the embodiments of the present application, in the embodiments of the present application, the terms "first", "second", etc. are used to distinguish the same item or similar items having substantially the same function and effect, and those skilled in the art will understand that the terms "first", "second", etc. are not limited in number and execution order.
Avoiding network packet loss is always a hotspot of industrial research, is also a difficult problem, and is particularly prominent in a long-distance mass data transmission scene. In the AI intelligent computation center scene, to process massive and diverse data, the data volume often reaches PB level or even more, and the data transmission speed often needs to reach tens or hundreds of gigabits per second, so that the network is required to be capable of rapidly processing massive data transmission, adapting to large-scale data migration and sharing, and ensuring that no loss or error occurs in the data transmission process.
The traditional network congestion control technology mainly comprises two types, namely a transmission control protocol (Transmission Control Protocol, TCP) congestion control method based on a source end, wherein the window size is dynamically adjusted by monitoring network congestion signals, so that the data transmission rate is matched with the network congestion degree, but long time delay caused by long-distance transmission can influence a TCP packet loss retransmission mechanism, and network congestion is aggravated. Secondly, the congestion control method based on explicit congestion notification (Explicit Congestion Notification, ECN) is that the network device marks congestion at the congestion marking bit of the data packet, and after the receiving end receives the data packet, the receiving end is notified to adjust the rate, but the receiving end is also limited by time delay, so that quick congestion control cannot be realized.
In summary, a fast congestion control manner is needed at present, based on which, the embodiment of the application provides a congestion control method, which has the idea that the network congestion control scheme is determined at least based on the congestion states of the first node and the neighbor node, so that the node or the neighbor node where the network congestion is located can directly perform the network congestion control.
The network congestion control method provided by the application is applied to network equipment in a data transmission network. Such as any one of the network devices on the traffic forwarding path.
The network device may be a server, for example, a single server, or a server cluster made up of a plurality of servers, for example. In some implementations, the server cluster may also be a distributed cluster.
The network device may also be in the form of a router, switch, hub, bridge, firewall, gateway, modem, wireless access point, network interface card, fiber optic transceiver, optical transceiver, or the like, as examples. The embodiment of the application does not limit the specific form of the network equipment.
Fig. 1 is a flow chart of a network congestion control method according to an embodiment of the present application. As shown in fig. 1, the network congestion control method provided by the present application specifically includes the following steps:
s101, determining congestion states of the first node and neighbor nodes of the first node.
The first node and the neighbor node are nodes on the same forwarding path.
In some embodiments, determining the congestion state of the first node includes determining that the first node is in the congestion state when a remaining capacity of a cache queue of the first node is less than or equal to a first preset threshold.
Illustratively, when the data forwarding rate of the first node reaches the maximum forwarding rate of the node, congestion will occur for the node, and the data to be forwarded is queued and buffered at the node according to the priority; and when the residual capacity of the cache queue of the node is monitored to be smaller than or equal to a first preset threshold value, judging that the node is about to lose packets, and accordingly determining that the node is in a congestion state.
In some embodiments, determining the congestion state of the neighbor node of the first node includes determining that the neighbor node is in a congestion state in response to receiving a congestion notification message for the neighbor node, wherein the congestion notification message is used to indicate that a remaining capacity of a cache queue of the neighbor node is less than or equal to a first preset threshold.
Illustratively, the neighbor node of the first node sends the congestion notification message to the first node when the remaining capacity of the cache queue of the neighbor node of the first node is less than or equal to a first preset threshold.
Illustratively, the notification of the congestion information IS implemented by an interior gateway Protocol (INTERNAL GATEWAY Protocol, IGP) Protocol extension, including by an intermediate system-to-intermediate system (INTERMEDIATE SYSTEM to INTERMEDIATE SYSTEM, IS-IS) Protocol or an open shortest path first (Ope n Shortest PATH FIRST, OSPF) Protocol extension Type-length-value (TLV).
For example, the IS-IS protocol extended TLV IS used for realizing the notification of congestion information, and the TLV used for notifying the congestion information consists of three fields, namely an octet type field, an octet length field and a variable length numerical value field according to the format of the IS-IS router capability TLV [ RFC7981 ]. The content usage pattern is shown in table 1, for example, wherein a Type field (Type) is used to indicate that the Type of the TLV is congestion information, a Length field (Length) is used to indicate the Length of a value field, and the value field includes specific congestion information (Congestion information), and the specific congestion information includes a queue Length, an equipment Identification number (ID), an interface ID, and the like.
Table 1 congestion information notification messages
In some embodiments, determining the congestion state of the neighbor node of the first node includes sending a measurement message to the neighbor node, where the measurement message is used to instruct the neighbor node to measure the remaining capacity of the buffer queue of the neighbor node, receiving a measurement response message sent by the neighbor node, where the measurement response message includes the remaining capacity of the buffer queue of the neighbor node, and determining that the neighbor node is in the congestion state when the remaining capacity of the buffer queue of the neighbor node is less than or equal to a first preset threshold.
Illustratively, the remaining capacity value of the cache queue of the neighboring node is returned to the first node based on an acknowledgement character (Acknowledge character, ACK) mechanism by way of active measurement.
For example, a first node sends a measurement request to a neighbor node, wherein the request comprises the identification information of the first node and related parameters such as the residual capacity of a buffer queue to be measured, the neighbor node analyzes the parameters in the request after receiving the measurement request and calculates the residual capacity value according to the actual condition of the current buffer queue, and the neighbor node packages the calculated residual capacity value in an ACK response and sends the ACK response to the first node. The ACK response includes identification information of the neighbor node, a remaining capacity value of the buffer queue, and the like.
S102, determining a network congestion control scheme at least based on congestion states of the first node and the neighbor nodes.
The network congestion control scheme is used for relieving the congestion degree of the first node and/or the neighbor node.
S103, executing a network congestion control scheme.
Illustratively, in the case where the first node is in a congestion state and an upstream node in a neighbor node is not in a congestion state, the first node performs a network congestion control scheme, including buffering traffic data in a buffer queue of the first node to be adjacent to the first node, and a standby node and/or the first node not on a forwarding path sends a request message to the neighbor node, the request message including at least one of requesting buffering traffic data to be forwarded, requesting a reduction in a data forwarding rate, requesting a change of the forwarding path, the neighbor node performing the network congestion control scheme according to the request.
Illustratively, in the case where both the first node and an upstream node of the neighbor nodes are in a congested state, the first node performs a network congestion control scheme including buffering traffic data in a buffer queue of the first node to a standby node adjacent to the first node that is not on a forwarding path, and/or the first node sends a request message to the neighbor node, the request message including at least one of requesting the neighbor node to buffering traffic data in the buffer queue to a standby node adjacent to the neighbor node that is not on a forwarding path, requesting the neighbor node to replace the forwarding path, the neighbor node performing the network congestion control scheme upon request.
Illustratively, in the event that a first node is not in a congested state, and a downstream node in a neighboring node is in a congested state, the first node performs at least one network congestion control scheme including temporarily storing traffic data to be forwarded, reducing a data forwarding rate, and replacing a forwarding path.
The method comprises the steps of storing traffic data in a buffer queue of a first node to a standby node adjacent to the first node and not on a forwarding path, replacing the forwarding path, and sending a request message to a neighbor node, wherein the request message comprises the request of the neighbor node to store the traffic data in the buffer queue to the standby node adjacent to the neighbor node and not on the forwarding path, and the neighbor node executes the network congestion control scheme according to the request.
In some embodiments, the neighbor node comprises a second node, the second node being an upstream node of the first node, and the step S102 may be implemented such that, in a case where the first node is in a congestion state and the second node is not in a congestion state, determining the congestion control scheme comprises at least one of:
requesting the second node to temporarily store traffic data to be forwarded;
requesting the second node to reduce the data forwarding rate;
temporarily storing the flow data in the buffer queue of the first node to a first standby node, wherein the first standby node is a node which is adjacent to the first node and is not on a forwarding path;
requesting the second node to replace the forwarding path, wherein the replaced forwarding path does not include the first node.
Illustratively, fig. 2 is a schematic diagram of a traffic data forwarding path. As shown in fig. 2, the traffic data forwarding path of the service a is ingress-P1-P6-egress. When the P6 node determines that congestion occurs in the node and monitors that the upstream node P1 of the P6 node is not in a congestion state, in order to ensure that the traffic data of the service A is not lost in the forwarding process and the congestion degree of the P6 node can be quickly relieved, the P6 node sends a request message to the P1 node, wherein the request message is used for the P1 node to request to reduce the data forwarding rate and temporarily store part of traffic data to be forwarded.
In some embodiments, the neighboring node includes a second node, which is an upstream node of the first node, and the step S102 may be implemented to determine that the congestion control scheme includes at least one of:
temporarily storing the flow data in the buffer queue of the first node to a first standby node, wherein the first standby node is a node which is adjacent to the first node and is not on a forwarding path;
Requesting the second node to temporarily store the flow data in the buffer queue to a second standby node, wherein the second standby node is a node which is adjacent to the second node and is not on a forwarding path;
Requesting the second node to replace the forwarding path, wherein the replaced forwarding path does not comprise the first node.
Illustratively, fig. 3 is a schematic diagram of a traffic data forwarding path. As shown in fig. 3, the traffic data forwarding path of the service a is ingress-P1-P6-egress. When the P6 node finds that the node is congested, the upstream node of the P6 node is a P1 node, and the nodes which are adjacent to the P6 node and are not on a forwarding path comprise a P2 node, a P3 node, a P4 node and a P5 node, and under the condition that the P1 node is monitored to be in a congestion state, in order to ensure that the traffic data of the service A is not lost in the forwarding process, the congestion degree of the P6 node can be quickly relieved, the P6 node sends a notice to the P2 node, the P3 node, the P4 node or the P5 node, and requests to temporarily store the traffic data queue congested by the P6 node in the P2 node, the P3 node, the P4 node or the P5 node. For example, it is monitored that the P4 node is not in a congestion state and is closest to a transmission path between the P6 nodes, and the P6 node sends a notification to the P4 node requesting that a traffic data queue congested by the P6 node is suspended at the P4 node.
It will be appreciated that in the above embodiments provided by the present application, the concept of sharing memory modules of neighboring nodes is innovatively proposed. When the node and the upstream node of the service forwarding path are congested, the congested flow data queue can be taken out, and the node adjacent to the node and not located on the forwarding path is temporarily stored, so that the network congestion can be quickly relieved.
In some embodiments, the neighbor node comprises a third node, the third node is a downstream node of the first node, and the step S102 may be implemented as that, in a case that the first node is not in a congestion state and the third node is in a congestion state, determining the congestion control scheme comprises at least one of:
The first node temporarily stores flow data to be forwarded;
The first node reduces the data forwarding rate;
The first node replaces the forwarding path, and the replaced forwarding path does not include the third node.
Illustratively, fig. 4 is a schematic diagram of a traffic data forwarding path. As shown in fig. 4, the traffic data forwarding path of the service B is ingress-P1-P4-P6-egress. When the P1 node is not in a congestion state, the downstream node of the P1 node is a P4 node, and under the condition that the P4 node is in the congestion state, in order to ensure that the traffic data of the service B is not lost in the forwarding process, the congestion degree of the P4 node can be rapidly relieved, the P1 node reduces the forwarding rate to the P4 node, and part of the traffic data to be forwarded is cached in the P1 node (according to the service priority order).
As shown in fig. 4, in an exemplary embodiment, when the P1 node is not in a congestion state, the downstream node of the P1 node is a P4 node, and in the case that it is detected that the P4 node is in a congestion state, in order to ensure that the traffic data of the service B is not lost in the forwarding process, and to quickly relieve the congestion degree of the P4 node, the P1 node may replace the forwarding path, and the replaced forwarding path does not include the P4 node. For example, the new forwarding path may be R1: ingress-P1-P3-P5-egress or R2: ingress-P1-P2-P6-egress, and the specific selection of which path is the new forwarding path may be based on the path overhead value or based on the user requirement. For example, according to the requirement of the user, when the service must pass through the P6 node during forwarding, R2 is selected as a new forwarding path.
It can be understood that in the above embodiment provided by the present application, the node located on the forwarding path may actively measure and sense the congestion state of the downstream node, and perform network rerouting based on the congestion state of the downstream node, so as to quickly alleviate the congestion degree of the downstream node.
In some embodiments, the neighbor node comprises a third node which is a downstream node of the first node, and determining the network congestion control scheme based on the congestion states of the first node and the neighbor node comprises determining that the congestion control scheme comprises at least one of:
temporarily storing the flow data in the buffer queue of the first node to a first standby node, wherein the first standby node is a node which is adjacent to the first node and is not on a forwarding path;
Requesting the third node to temporarily store the flow data in the buffer queue to a third standby node, wherein the third standby node is a node which is adjacent to the third node and is not on a forwarding path;
The first node replaces the forwarding path, and the replaced forwarding path does not include the third node.
In some embodiments, the step S102 may be implemented to determine a network congestion control scheme based on the congestion status of the first node and the neighboring nodes, the priority of the traffic data.
In some embodiments, a forwarding path flowing through a first node comprises a first traffic data forwarding path and a second traffic data forwarding path, a neighbor node of the first node comprises a first upstream node of the first node on the first forwarding path and a second upstream node of the first node on the second forwarding path, and a network congestion control scheme is determined based on congestion states of the first node and the neighbor node and priorities of traffic data, wherein the network congestion control scheme comprises at least one of the following steps if the first node is in a congestion state and neither the first upstream node nor the second upstream node is in a congestion state, and if the priority of the first traffic data is higher than the priority of the second traffic data:
requesting the second upstream node to reduce the forwarding rate of the second traffic data;
requesting the second upstream node to temporarily store the second traffic data to be forwarded.
Fig. 5 is a schematic diagram of a traffic data forwarding path, where, as shown in fig. 5, the traffic data forwarding path of the service C is ingress-P3-P4-P6-egress, and the traffic data forwarding path of the service D is ingress-P2-P4-P6-egress. The traffic data forwarding paths of the two services pass through the P4 node, the upstream node of the P4 node is a P3 node and a P2 node, when the P4 node is in a congestion state and the P3 node and the P2 node are not in a congestion state, if the priority of traffic data forwarded by the P2 node is higher than the priority of traffic data forwarded by the P3 node at the moment, the P4 node can send a notice to the P3 node to request to reduce the data forwarding rate of the P3 node, and request to temporarily store part of traffic data to be forwarded in the P3 node in order to ensure that the traffic data of the high-priority service is forwarded at a normal speed in the forwarding process.
It can be understood that in the above embodiment of the present application, when it is monitored that the node is in a congestion state, network congestion analysis and regulation can be performed by combining priorities of traffic data based on measurement sensing results of congestion states of a plurality of upstream nodes adjacent to the node and located on a forwarding path, so that network congestion can be quickly relieved.
The foregoing description of the embodiments of the present disclosure has been presented primarily in terms of methods. It will be appreciated that the network congestion control means, in order to achieve the above-described functions, comprise at least one of a hardware structure and a software module for performing the respective functions. Those of skill in the art will readily appreciate that the algorithm steps of the examples described in connection with the embodiments disclosed herein may be implemented as hardware or a combination 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 embodiments of the present disclosure.
The embodiment of the disclosure may divide the functional modules of the network congestion control device according to the embodiment of the method, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one functional module. The integrated modules described above may be implemented in hardware, or in the form of software. It should be noted that, in the embodiment of the present disclosure, the division of the modules is merely a logic function division, and other division manners may be implemented in actual practice. The following description will take an example of dividing each function module into corresponding functions.
For example, fig. 6 is a schematic diagram of a network congestion control device according to an embodiment of the present application. As shown in fig. 6, the network congestion control apparatus 600 is applied to a network device, and includes a data storage module 601, a measurement awareness module 602, and an analysis processing module 603.
The data storage module 601 is configured to store data flows that are congested through a first node, and includes marking the congested data flows with priority according to different service level agreements (SERVICE LEVEL AGREEMENT, SLA) requirements, and storing the congested data flows in a rank according to a priority order from high to low.
The data storage module 601 is further configured to store data that is requested to be stored temporarily in a neighboring node of the first node.
The measurement awareness module 602 is configured to determine congestion states of the first node and a neighboring node of the first node.
The analysis processing module 603 is configured to determine a network congestion control scheme based at least on congestion states of the first node and the neighboring node, where the network congestion control scheme is configured to alleviate congestion levels of the first node and/or the neighboring node, and execute the network congestion control scheme.
In a possible implementation manner, the neighbor node comprises a second node, the second node is an upstream node of the first node, the analysis processing module 603 is specifically configured to determine, when the first node is in a congestion state and the second node is not in the congestion state, that the congestion control scheme includes at least one of requesting the second node to temporarily store traffic data to be forwarded, requesting the second node to reduce a data forwarding rate, temporarily storing the traffic data in a buffer queue of the first node to a first standby node, the first standby node is a node adjacent to the first node and not on a forwarding path, requesting the second node to replace the forwarding path, and the replaced forwarding path does not include the first node.
In another possible implementation manner, the neighbor node comprises a second node, the second node is an upstream node of the first node, the analysis processing module 603 is specifically configured to determine that the congestion control scheme includes at least one of buffering traffic data in a buffer queue of the first node to a first standby node, the first standby node is a node adjacent to the first node and not on a forwarding path, requesting the second node to buffering traffic data in the buffer queue to the second standby node, the second standby node is a node adjacent to the second node and not on the forwarding path, requesting the second node to replace the forwarding path, and the replaced forwarding path does not include the first node when the first node and the second node are both in a congestion state.
In another possible implementation manner, the neighbor node includes a third node, the third node is a downstream node of the first node, and the analysis processing module 603 is specifically configured to determine, when the first node is not in a congestion state and the third node is in a congestion state, that the congestion control scheme includes at least one of temporarily storing traffic data to be forwarded by the first node, reducing a data forwarding rate by the first node, replacing a forwarding path by the first node, and replacing the forwarding path after the replacement does not include the third node.
In another possible implementation manner, the neighbor node comprises a third node, the third node is a downstream node of the first node, the analysis processing module 603 is specifically configured to determine that the congestion control scheme includes at least one of temporarily storing traffic data in a buffer queue of the first node to a first standby node, the first standby node being a node adjacent to the first node and not on a forwarding path, requesting the third node to temporarily store the traffic data in the buffer queue to the third standby node, the third standby node being a node adjacent to the third node and not on the forwarding path, replacing the forwarding path by the first node, and the replaced forwarding path does not include the third node when the first node and the third node are both in a congestion state.
In another possible implementation manner, the analysis processing module 603 is specifically configured to determine a network congestion control scheme based on congestion states of the first node and the neighboring nodes and priorities of traffic data.
In another possible implementation manner, the forwarding path flowing through the first node includes a first traffic data forwarding path and a second traffic data forwarding path, the neighbor node of the first node includes a first upstream node of the first node on the first forwarding path and a second upstream node of the first node on the second forwarding path, and the analysis processing module 603 is specifically configured to, if the first node is in a congestion state and neither the first upstream node nor the second upstream node is in a congestion state, if the priority of the first traffic data is higher than the priority of the second traffic data, request the second upstream node to reduce the forwarding rate of the second traffic data, and request the second upstream node to temporarily store the second traffic data to be forwarded.
In another possible implementation manner, the measurement awareness module 602 is specifically configured to determine that the first node is in a congestion state when a remaining capacity of a buffer queue of the first node is less than or equal to a first preset threshold.
In another possible implementation manner, the measurement awareness module 602 is specifically configured to determine that the neighboring node is in a congestion state in response to receiving a congestion notification message of the neighboring node, where the congestion notification message is used to indicate that a remaining capacity of a buffer queue of the neighboring node is less than or equal to a first preset threshold.
In another possible implementation manner, the measurement awareness module 602 is specifically configured to send a measurement message to the neighbor node, where the measurement message is used to instruct the neighbor node to measure a remaining capacity of a buffer queue of the neighbor node, receive a measurement response message sent by the neighbor node, where the measurement response message includes the remaining capacity of the buffer queue of the neighbor node, and determine that the neighbor node is in a congestion state when the remaining capacity of the buffer queue of the neighbor node is less than or equal to a first preset threshold.
In an exemplary embodiment, the embodiment of the present application further provides an electronic device, where the electronic device may be a network congestion control apparatus in the foregoing method embodiment. Fig. 7 is a schematic diagram of an electronic device according to an embodiment of the present application. As shown in fig. 7, the electronic device may include a processor 701 and a memory 702, the memory 702 storing instructions executable by the processor 701, the processor 701 being configured to cause the electronic device or network device or manager to implement the method as described in the foregoing method embodiments.
In an exemplary embodiment, the present application also provides a readable storage medium having stored thereon program instructions which, when executed by an electronic device, cause the electronic device to implement the method as described in the previous embodiments. The readable storage medium may be a non-transitory readable storage medium, for example, a ROM, random-access memory (RAM), CD-ROM, magnetic tape, floppy disk, optical data storage device, etc.
In an exemplary embodiment, the present application also provides a computer program product, which when run on a computer causes the computer to perform the above-mentioned related method steps to implement the network congestion control method in the above-mentioned embodiments.
The present application is not limited to the above embodiments, and 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 should be subject to the protection scope of the claims.