Communication method, source device, forwarding device, readable storage medium and program product

By parsing the congestion notification message of the forwarding device on the source device side, and combining multiple speed reduction ratios to determine the final speed reduction ratio, the problem that existing technologies cannot effectively alleviate congestion is solved, and the communication link is quickly and smoothly realized.

CN118869619BActive Publication Date: 2025-01-21INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411313023.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-20
Publication Date
2025-01-21
Estimated Expiration
2044-09-20

AI Technical Summary

Technical Problem

The existing congestion control methods cannot effectively and effectively slow down the congestion state, resulting in poor communication.

Method used

When the source device sends a data packet to the destination device through the communication link, it receives the congestion notification message from the target forwarding device, parses the message to obtain the congestion status, and determines the speed reduction based on the first speed reduction ratio and the second speed reduction ratio. proportion, and reduce the data packet sending speed according to this proportion.

Benefits of technology

Through rapid feedback on specific congestion conditions, congestion can be truly and quickly mitigated to keep communications flowing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118869619B_ABST
    Figure CN118869619B_ABST
Patent Text Reader

Abstract

In the field of electronic information technology, the present application discloses a communication method, a source device, a forwarding device, a readable storage medium and a program product, the method comprising: sending a data packet to a destination device via a communication link; after receiving a congestion notification message sent by a target forwarding device, triggering a congestion control mechanism and determining a first speed reduction ratio; wherein the target forwarding device is a forwarding device located in the communication link; parsing the congestion notification message, obtaining and utilizing the congestion status of the target forwarding device, and determining a second speed reduction ratio; combining the first speed reduction ratio and the second speed reduction ratio, obtaining and reducing the speed of sending data packets to the destination device via the communication link. The technical effect of the present application: since the specific congestion status of the congested device is quickly fed back, the speed reduction processing is performed on the source device side, which can truly and quickly alleviate the congestion status, thereby maintaining smooth communication.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of electronic information technology, and in particular to a communication method, a source device, a forwarding device, a readable storage medium and a program product. Background Art

[0002] There are currently several congestion control methods for network congestion, such as ECN (Explicit Congestion Notification), DCQCN (Data Center Quantized Congestion Notification, a congestion control mechanism designed specifically for data centers), and iQCN (intelligent Quantized Congestion Notification).

[0003] However, these congestion control methods still cannot truly and quickly alleviate the congestion state, and still cannot make communication smooth.

[0004] In summary, how to effectively solve problems such as congestion control is a technical problem that technical personnel in this field urgently need to solve. Summary of the invention

[0005] The purpose of this application is to provide a communication method, a source device, a forwarding device, a readable storage medium and a program product, which can take into account the specific congestion situation quickly fed back by the congested device when performing speed reduction processing on the source device side, and realize real and rapid relief of the congestion state, thereby maintaining smooth communication.

[0006] In order to solve the above technical problems, this application provides the following technical solutions:

[0007] A communication method, applied to a source device, comprising:

[0008] Sending a data packet to a destination device via a communication link; wherein the communication link includes the source device, the destination device, and a plurality of forwarding devices;

[0009] After receiving a congestion notification message sent by a target forwarding device, triggering a congestion control mechanism to determine a first speed reduction ratio; wherein the target forwarding device is a forwarding device located in the communication link;

[0010] Parsing the congestion notification message to obtain the congestion status of the target forwarding device, and using the congestion status to determine a second speed reduction ratio;

[0011] Combining the first speed reduction ratio and the second speed reduction ratio to obtain a speed reduction ratio;

[0012] According to the speed reduction ratio, the speed of sending data packets to the destination device through the communication link is reduced.

[0013] Preferably, parsing the congestion notification message to obtain the congestion status of the target forwarding device includes:

[0014] Parsing the congestion notification message to obtain a reserved field value representing the congestion state stored in a reserved field;

[0015] Acquire reserved field parameters agreed upon with the target forwarding device;

[0016] The reserved field value is divided by the reserved field parameter to obtain a network congestion value.

[0017] Preferably, using the congestion state to determine the second speed reduction ratio includes:

[0018] The network congestion value is rounded to obtain the second speed reduction ratio.

[0019] Preferably, the first speed reduction ratio and the second speed reduction ratio are combined to obtain a speed reduction ratio, including:

[0020] Get the current adjustment factor;

[0021] The first speed reduction ratio and the second speed reduction ratio are weightedly summed in combination with the adjustment factor to obtain the speed reduction ratio.

[0022] Preferably, obtaining the current adjustment factor includes:

[0023] The trained adjustment factor learning model is used to obtain the adjustment factor.

[0024] Preferably, when there are multiple communication links, the method further comprises:

[0025] Determining a speed reduction ratio of a plurality of the communication links;

[0026] Determining a target speed reduction ratio from the plurality of speed reduction ratios;

[0027] Determining a multipath routing weight value according to the target speed reduction ratio;

[0028] The multipath routing weighted values ​​are used to perform weighted multipath routing allocation.

[0029] Preferably, determining a target speed reduction ratio from the plurality of speed reduction ratios comprises:

[0030] Selecting the speed reduction ratio with the largest value from the plurality of speed reduction ratios;

[0031] The speed reduction ratio with the largest value is determined as the target speed reduction ratio.

[0032] A communication method, applied to a forwarding device, comprising:

[0033] Receiving a data packet sent by a source device to a destination device using a communication port, and forwarding the data packet to the destination device;

[0034] Monitoring the communication port;

[0035] In the case that the communication port is congested, a congestion notification message carrying a congestion status is sent to the source device, so that the source device reduces a speed of sending data packets to the destination device through the communication link based on the congestion notification message.

[0036] Preferably, sending a congestion notification message carrying a congestion status to the source device includes:

[0037] Get the current bandwidth usage, queue usage and average waiting time of packets in the queue;

[0038] Determine a network congestion value by using the bandwidth utilization rate, the queue utilization rate and the average waiting time;

[0039] After the network congestion value is added to the reserved field of the congestion notification message, the congestion notification message is sent to the source device.

[0040] Preferably, bringing the network congestion value into a reserved field of the congestion notification message includes:

[0041] Multiplying the network congestion value by a reserved field parameter to obtain a product;

[0042] The product is rounded, and the obtained value is entered into the reserved field of the congestion notification message.

[0043] Preferably, determining the network congestion value by using the bandwidth utilization rate, the queue utilization rate and the average waiting time includes:

[0044] Get congestion adjustment factor;

[0045] The network congestion value is obtained by combining the congestion adjustment factor and performing a weighted summation on the bandwidth usage rate, the queue usage rate and the average waiting time.

[0046] A source device, comprising:

[0047] Memory for storing computer programs;

[0048] A processor is used to implement the steps of the above communication method when executing the computer program.

[0049] A forwarding device, comprising:

[0050] Memory for storing computer programs;

[0051] A processor is used to implement the steps of the above communication method when executing the computer program.

[0052] A communication system comprising

[0053] Several communication links;

[0054] The communication link includes a destination device, a forwarding device as described above, and a source device as described above.

[0055] A readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the above communication method are implemented.

[0056] A computer program product comprises a computer program / instruction, which implements the steps of the above communication method when executed by a processor.

[0057] The source device applies the method provided by the embodiment of the present application, including: sending a data packet to a destination device through a communication link; wherein the communication link includes a source device, a destination device and several forwarding devices; after receiving a congestion notification message sent by a target forwarding device, triggering a congestion control mechanism to determine a first speed reduction ratio; wherein the target forwarding device is a forwarding device located in the communication link; parsing the congestion notification message to obtain a congestion status of the target forwarding device, and using the congestion status to determine a second speed reduction ratio; combining the first speed reduction ratio and the second speed reduction ratio to obtain a speed reduction ratio; according to the speed reduction ratio, reducing the speed of sending data packets to the destination device through the communication link.

[0058] After the transmission congestion, after the transmission of the data packet is slowed down, the data packet still needs to be forwarded through the forwarding device where the congestion occurs in the communication link. Therefore, when the speed reduction process is required, it is necessary to refer to the congestion status of the target forwarding device where the congestion occurs. Based on this, in the present application, the source device can send a data packet to the destination device through the communication link. During the data transmission process, a congestion notification message sent from the target forwarding device can be received. When the congestion notification message is received, the congestion control mechanism can be triggered to determine the first speed reduction ratio. In addition, the congestion notification message needs to be parsed to obtain the congestion status of the target forwarding device itself, and then the second speed reduction ratio is determined based on the congestion status. The first speed reduction ratio and the second speed reduction ratio are combined to obtain the final speed reduction ratio. The speed of sending the data packet to the destination device through the communication link is determined based on the speed reduction ratio.

[0059] Technical effect: Since the specific congestion status of the congested device is quickly fed back, the speed reduction processing is performed on the source device side, which can truly and quickly alleviate the congestion state, thereby maintaining smooth communication.

[0060] Correspondingly, the embodiments of the present application also provide communication devices, equipment, readable storage media and computer program products corresponding to the above-mentioned communication methods, which have the above-mentioned technical effects and are not repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0061] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related technologies, the drawings required for use in the embodiments or the related technical descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0062] FIG1 is a flow chart of an implementation of a communication method in an embodiment of the present application;

[0063] FIG2 is a schematic diagram of a specific implementation of a communication method in an embodiment of the present application;

[0064] FIG3 is a flowchart of another communication method in an embodiment of the present application;

[0065] FIG4 is a schematic diagram of a congestion feedback;

[0066] FIG5 is another schematic diagram of congestion feedback;

[0067] FIG6 is a schematic diagram of the structure of an electronic device in an embodiment of the present application;

[0068] FIG. 7 is a schematic diagram of the specific structure of an electronic device in an embodiment of the present application. DETAILED DESCRIPTION

[0069] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below in conjunction with the accompanying drawings and specific implementation methods. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of the present application.

[0070] To help those skilled in the art better understand the communication method provided in the embodiments of the present application, the following explains the relevant technical terms:

[0071] DCQCN: Data Center Quantized Congestion Notification, data center quantized congestion notification.

[0072] ECN: Explicit Congestion Notification, explicit congestion notification;

[0073] PFC: Priority-based Flow Control, priority-based flow control;

[0074] NP: Congestion Notification Packet, congestion notification message;

[0075] iQCN: Intelligent Quantized Congestion Notification, intelligent quantized congestion notification;

[0076] WCMP: Weighted Cost Multipath, weighted multipath routing;

[0077] Among them, DCQCN is a congestion control mechanism designed specifically for data centers. It is an improved version of ECN (Explicit Congestion Notification), and its main purpose is to reduce latency and improve throughput in high-performance data center networks.

[0078] Here are some of the key features and how DCQCN works:

[0079] The basis of ECN: DCQCN is a congestion control method based on ECN. ECN identifies congestion in the network by setting specific bits in the packet header so that the receiver can notify the sender to reduce the sending rate.

[0080] Quantitative feedback: DCQCN uses a quantitative feedback mechanism to identify the severity of network congestion in a quantitative manner, so that the sender can adjust the sending rate according to the specific congestion situation.

[0081] Fast response: Due to the high speed and low latency characteristics of data center networks, DCQCN has designed a fast response mechanism that can quickly sense and respond to network congestion to avoid the expansion of congestion.

[0082] Gradual deceleration and recovery: DCQCN responds to congestion by gradually reducing the sending rate and gradually recovering to the normal rate after the congestion is relieved. This approach avoids overly drastic changes in congestion control and maintains network stability.

[0083] Hardware support: To achieve low latency and high efficiency, DCQCN usually requires hardware-level support from network devices (such as switches and network cards) so that congestion notifications and rate adjustments can be processed quickly.

[0084] The main application scenarios of DCQCN are in high-performance computing (HPC) environments and large-scale data centers, which have extremely high requirements for network performance and stability. By effectively managing network congestion, DCQCN can significantly improve network efficiency and application performance in these environments.

[0085] PFC is a priority-based flow control mechanism that can control traffic of a specific priority instead of all traffic. This allows traffic of a specific priority to be suspended without affecting traffic of other priorities. Purpose: PFC is often used to prevent the loss of certain types of high-priority traffic (such as storage traffic or RDMA traffic), which are very sensitive to packet loss. How it works: When a network device detects that a priority queue is about to overflow, it sends a PFC frame to the corresponding sender, requesting it to suspend sending traffic of that priority.

[0086] Please refer to FIG. 1 , which is a flow chart of a communication method in an embodiment of the present application, which is applied to a source device (the source device may be a data source end of two parties that need to communicate, such as a source server). The method includes the following steps:

[0087] S101. Send a data packet to a destination device via a communication link.

[0088] The communication link includes a source device, a destination device and several forwarding devices.

[0089] In the embodiment of the present application, a communication link refers to a link that originates from a source device, passes through a plurality of forwarding devices, and finally reaches a target device, wherein the number of forwarding devices may be one or more.

[0090] In this communication link, when congestion occurs on the forwarding device or the destination device, feedback can be given to the source device, so that the source device reduces the speed of sending data packets.

[0091] In the embodiments of the present application, the focus is on how to reduce the data packet sending speed of the source device when congestion occurs in the forwarding device.

[0092] After congestion occurs in the forwarding device, the forwarding device sends a congestion notification message carrying its own congestion status to the source device.

[0093] S102: After receiving a congestion notification message sent by a target forwarding device, trigger a congestion control mechanism to determine a first speed reduction ratio.

[0094] The target forwarding device is a forwarding device located in the communication link.

[0095] After receiving the congestion notification message generated by the target forwarding device, the congestion control mechanism may be triggered to first determine the first speed reduction ratio.

[0096] The congestion control mechanism may be specifically DCQCN. For example, after the source device receives the congestion notification message, it may determine a preset 50% as the first speed reduction ratio based on the setting of DCQCN.

[0097] In a specific implementation of the present application, the destination device may also be congested, for example, the data packets to be processed in the destination device have been waiting for too long, or the data packets cannot be received quickly due to network reasons. In order to keep the communication smooth, the destination device may also send a congestion notification message carrying its own congestion status to the source device. The way in which the destination device sends the congestion notification message to the source device can refer to the process shown in Figure 3. After the destination device receives the congestion notification message sent by the destination device, its processing method can refer to the processing method of the congestion notification message sent by the target forwarding device, which will not be repeated here.

[0098] S103: parse the congestion notification message to obtain the congestion status of the target forwarding device, and use the congestion status to determine a second speed reduction ratio.

[0099] Since the congestion notification message carries the congestion status of the target forwarding device, the congestion status can be obtained by parsing the congestion notification message.

[0100] After the congestion status is obtained, a second speed reduction ratio may be determined based on the congestion status.

[0101] The determination of the second speed reduction ratio can be completely different from DCQCN, which is mainly determined with reference to the congestion state. For example, the second speed reduction ratio can be proportional to the severity of the congestion state, that is, the more congested, the greater the second speed reduction ratio. As for the specific mapping relationship between the two, it can be set according to the actual situation, and it can also be adjusted, which will not be repeated here.

[0102] In one embodiment of the present application, parsing the congestion notification message to obtain the congestion status of the target forwarding device includes:

[0103] Parsing the congestion notification message to obtain a reserved field value representing the congestion state stored in the reserved field;

[0104] Obtaining reserved field parameters agreed upon with the target forwarding device;

[0105] Divide the reserved field value by the reserved field parameter to obtain the network congestion value.

[0106] For ease of description, the above steps are combined for explanation below.

[0107] In this embodiment, the reserved field value of the standard congestion state can be stored in the reserved field of the congestion notification message. Therefore, the reserved field value can be obtained by parsing the congestion notification message. For how to parse the congestion notification message, please refer to the specific definition and parsing scheme of the congestion notification message, which will not be described in detail here.

[0108] According to the specific bit width of the reserved field in the congestion notification message, the target forwarding device and the source device can jointly agree on a reserved field parameter, thereby carrying the network congestion value based on the reserved field.

[0109] For example, the reserved field of the CNP packet is 7 bits (bit width), which represents an integer number from 1 to 127. Therefore, the reserved field parameter δ can be a parameter from 1 to 127.

[0110] After the reserved field parameter is determined, the network congestion value can be obtained by dividing the reserved field value by the reserved field parameter.

[0111] In a specific implementation of the present application, the second speed reduction ratio is determined using the congestion status, including: rounding the network congestion value to obtain the second speed reduction ratio.

[0112] In the present application, after the network congestion value is obtained, it can be directly rounded, and the rounded result can be directly determined as the second speed reduction ratio.

[0113] For example: As shown in Figure 2, the communication link includes source device 100, forwarding devices A, B and C, and destination device 200. Among them, the target forwarding device is specifically device B, that is, the device labeled B is congested, and device B brings the quantized network congestion value C_quantized into the reserved field in the CNP (congestion notification) message, that is, C_quantized is the reserved field value, and sends it back to the source device. The source device parses the CNP message and calculates it according to the following formula to obtain C_quantized:

[0114] C_quantized = round(C * δ);

[0115] Among them, δ is an integer from 1 to 127, the maximum length of reserved is 7 bits, and C is the network congestion value.

[0116] The source device calculates a speed reduction ratio according to C_quantized, that is, derives the speed reduction ratio, which is the second speed reduction ratio:

[0117] The second speed reduction ratio = round(C_quantized / δ * 100%).

[0118] S104: Combine the first speed reduction ratio and the second speed reduction ratio to obtain a speed reduction ratio.

[0119] After obtaining the first speed reduction ratio and the second speed reduction ratio, the speed reduction ratio can be obtained by combining the two. The first speed reduction ratio and the second speed reduction ratio can be combined by averaging, weighted averaging, etc.

[0120] In a specific implementation of the present application, the first speed reduction ratio and the second speed reduction ratio are combined to obtain the speed reduction ratio, including:

[0121] Get the current adjustment factor;

[0122] The first speed reduction ratio and the second speed reduction ratio are weightedly summed in combination with the adjustment factor to obtain the speed reduction ratio.

[0123] For ease of description, the above two steps are combined for explanation below.

[0124] After obtaining the first speed reduction ratio and the second speed reduction ratio, the adjustment factor corresponding to the current moment can be obtained. For example, the adjustment factor can be specifically m and n, where m corresponds to the adjustment factor of the first speed reduction ratio and n corresponds to the adjustment factor of the second speed reduction ratio.

[0125] After obtaining the adjustment factors m and n, the speed reduction ratio Rate is calculated according to the following formula:

[0126] Rate = mX + nY;

[0127] Wherein, X is the first speed reduction ratio, and Y is the second speed reduction ratio.

[0128] That is, based on the adjustment factor, a weighted sum of the first speed reduction ratio and the second speed reduction ratio may be achieved to obtain the speed reduction ratio.

[0129] The specific value of the adjustment factor can be set and adjusted according to actual conditions.

[0130] In a specific implementation of the present application, obtaining the current adjustment factor includes:

[0131] The trained adjustment factor learning model is used to obtain the adjustment factor.

[0132] In other words, a learning model can be imported to automatically tune the adjustment factor. Specifically, the adjustment factor, communication performance parameters, and the first speed reduction ratio and the second speed reduction ratio can be collected in advance, and these data can be used as a training set to train the learning model, so that the learning model can automatically output an adjustment factor that optimizes the communication performance based on the first speed reduction ratio and the second speed reduction ratio.

[0133] S105: Reduce the speed of sending the data packet to the destination device through the communication link according to the speed reduction ratio.

[0134] After obtaining the speed reduction ratio, the source device can reduce the speed of sending data packets to the destination device through the communication link according to the speed reduction ratio. For example, if the current data packet sending speed is a and the determined speed reduction ratio is 50%, the current data packet sending speed is reduced to 0.5a.

[0135] For example: When the forwarding device finds congestion, it calculates the following information:

[0136] Network congestion value C = 0.402;

[0137] Reserved field parameter δ = 127;

[0138] Reserved field values ​​in reserved fields:

[0139] C_quantized = round(0.402×127)=round(51.054)=51;

[0140] After receiving the CNP message, the source device calculates the second speed reduction ratio according to C_quantized.

[0141] Speed ​​reduction ratio = round(51 / 127*100%) = round(40.16%) = 40%.

[0142] Calculate the first speed reduction ratio according to the DCQCN algorithm: 50%;

[0143] The second speed reduction ratio calculated according to the CNP reserved field: 40%;

[0144] Adjustment factor m = 0.3; adjustment factor n = 0.7;

[0145] The final reduction ratio is: Rate = 0.3*50 + 0.7*40 = 15 + 28 = 43;

[0146] That is, the final speed reduction ratio is calculated to be 43%.

[0147] The source device applies the method provided by the embodiment of the present application, including: sending a data packet to a destination device through a communication link; wherein the communication link includes a source device, a destination device and several forwarding devices; after receiving a congestion notification message sent by a target forwarding device, triggering a congestion control mechanism to determine a first speed reduction ratio; wherein the target forwarding device is a forwarding device located in the communication link; parsing the congestion notification message to obtain a congestion status of the target forwarding device, and using the congestion status to determine a second speed reduction ratio; combining the first speed reduction ratio and the second speed reduction ratio to obtain a speed reduction ratio; and reducing the speed of sending data packets to the destination device through the communication link according to the speed reduction ratio.

[0148] After the transmission congestion, after the transmission of the data packet is slowed down, the data packet still needs to be forwarded through the forwarding device where the congestion occurs in the communication link. Therefore, when the speed reduction process is required, it is necessary to refer to the congestion status of the target forwarding device where the congestion occurs. Based on this, in the present application, the source device can send a data packet to the destination device through the communication link. During the data transmission process, a congestion notification message sent from the target forwarding device can be received. When the congestion notification message is received, the congestion control mechanism can be triggered to determine the first speed reduction ratio. In addition, the congestion notification message needs to be parsed to obtain the congestion status of the target forwarding device itself, and then the second speed reduction ratio is determined based on the congestion status. The first speed reduction ratio and the second speed reduction ratio are combined to obtain the final speed reduction ratio. The speed of sending the data packet to the destination device through the communication link is determined based on the speed reduction ratio.

[0149] Technical effect: Since the specific congestion status of the congested device is quickly fed back, the speed reduction processing is performed on the source device side, which can truly and quickly alleviate the congestion state, thereby maintaining smooth communication.

[0150] It should be noted that, based on the above embodiments, the embodiments of the present application also provide corresponding improved solutions. In the preferred / improved embodiments, the same steps or corresponding steps as those in the above embodiments can be referenced to each other, and the corresponding beneficial effects can also be referenced to each other, which will not be described one by one in the preferred / improved embodiments of this article.

[0151] In a specific implementation of the present application, when there are multiple communication links, it also includes:

[0152] Determine the speed reduction ratio of multiple communication links;

[0153] Determine a target speed reduction ratio from multiple speed reduction ratios;

[0154] Determine the multipath routing weight value according to the target speed reduction ratio;

[0155] The weighted multipath routing values ​​are used to perform weighted multipath routing allocation.

[0156] For ease of description, the above steps are combined for explanation below.

[0157] When there are multiple communication links, the speed reduction ratio can be determined for each communication link according to the method shown in Figure 1. Then, a target speed reduction ratio is selected from the multiple speed reduction ratios. Then, the weighted value of the multipath routing can be determined according to the mapping correspondence or comparison table between the speed reduction ratio and the weighted value, and according to the target speed reduction ratio. Finally, based on the weighted value of the multipath routing, weighted multipath routing allocation is performed.

[0158] In a specific implementation of the present application, determining a target speed reduction ratio from a plurality of speed reduction ratios includes:

[0159] Select the speed reduction ratio with the largest value from multiple speed reduction ratios;

[0160] The speed reduction ratio with the largest value is determined as the target speed reduction ratio.

[0161] That is, in order to ensure smooth communication of multiple communication links, it is necessary to perform speed reduction processing according to the speed reduction ratio of the communication link with the greatest speed reduction demand. That is, when selecting the target speed reduction ratio, the speed reduction ratio with the highest value among the speed reduction ratios can be determined as the target speed reduction ratio.

[0162] Specifically, when the speed reduction ratios of multiple paths are calculated, the following two operations can be performed:

[0163] According to this value, the weight value of WCMP is brought in;

[0164] The rate (maximum value) of the port is determined based on the decision.

[0165] WCMP is a technology applied in multi-path routing scenarios. A weight value is given to each path. For example, the WCMP weight distribution of four paths can be 2:5:6:9 or 10:5:7:6.

[0166] For the speed reduction ratio, in a multipath scenario, there will be congestion from multiple devices. The device with the highest speed reduction ratio should be selected to ensure that all devices are not congested. After the weight value is determined, it is introduced into the WCMP technology, which implements the routing allocation. I will not go into details here.

[0167] For example: When the speed reduction ratio of each path (one path corresponds to one communication link) is calculated by the above method, the speed reduction value is as follows:

[0168] Path 1 is to be decelerated by 30%, and the WCMP weight is 0.7;

[0169] Path 2 is to be decelerated by 70%, and the WCMP weight is 0.3;

[0170] Path 3 is to be decelerated by 50%, and the WCMP weight is 0.5;

[0171] Path 4 is to be decelerated by 20%, and the WCMP weight is 0.8.

[0172] It was ultimately determined that the rate needed to be reduced by 70%.

[0173] Please refer to FIG. 3 , which is a communication method provided in an embodiment of the present application. The method can be applied to a forwarding device. The method includes:

[0174] S201. Receive a data packet sent by a source device to a destination device using a communication port, and forward the data packet to the destination device.

[0175] The forwarding device is neither the sender nor the destination of the data packet. It only forwards the data packet in the middle so that the data packet can reach the destination from the sender. For example, the forwarding device can be device A, device B or device C as shown in Figure 2.

[0176] In this embodiment, the forwarding device may receive a data packet sent by an original device to a destination device based on its communication port, and forward the data packet.

[0177] S202: Monitor the communication port.

[0178] In actual applications, forwarding devices may be congested due to factors such as their own processing performance and the excessive number of data packets to be forwarded.

[0179] In order to avoid severe congestion that causes the source device to stop sending data packets to the destination device, resulting in communication interruption, it is necessary to promptly detect the congestion of the forwarding device and provide timely feedback to the source device.

[0180] Therefore, in this embodiment, the communication port can be monitored.

[0181] S203: When congestion exists on the communication port, a congestion notification message carrying a congestion status is sent to the source device, so that the source device reduces a speed of sending data packets to the destination device through the communication link based on the congestion notification message.

[0182] The communication link is the link where the forwarding device is located, and through this link, data packets are sent from the source device to the destination device.

[0183] The following takes the source device as a source server and the destination device as a destination server as an example, and combines the relevant control mechanisms to compare and illustrate the congestion handling strategy in this embodiment.

[0184] Please refer to Figure 4. In DCQCN, the congestion handling method is as follows:

[0185] 1. When device A finds that the port is congested, it will carry the ECN congestion mark in the message to indicate that there is congestion in the network.

[0186] 2. After receiving the message, forwarding device B finds that the destination address of the message is not the local device, so it does not process the message and forwards it to the destination server normally.

[0187] 3. When the destination server receives the message carrying the ECN congestion mark, it knows that there is congestion in the network, so it sends a CNP (Congestion Notification Packets) congestion notification message to the source server to notify the source server to slow down the traffic.

[0188] 4. After receiving the CNP packet, the source server calculates the speed reduction ratio according to the DCQCN algorithm.

[0189] 5. If the congestion status of the destination server does not improve, the in-queue buffer will be full, resulting in PFC, which will cause the upstream traffic of the source server to be interrupted.

[0190] It can be seen that the congestion point in Figure 4 is device A, but the device that feedbacks the congestion is the destination server at the end of the network. The long congestion feedback path makes it impossible for the source server traffic to slow down in time, which may cause the forwarding device cache to further worsen the congestion, and even cause the entire network to suspend traffic transmission due to PFC flow control.

[0191] Please refer to Figure 5. In iQCN, the congestion handling method is as follows:

[0192] 1. Forwarding device A finds that the port is congested, so it adds the ECN congestion mark to the message when forwarding it to indicate that there is congestion in the network.

[0193] 2. After receiving the message, forwarding device B finds that the message carries the ECN congestion mark, and knows that there is congestion in the network. Therefore, it sends a CNP congestion notification message to the source server to notify the source server to slow down the traffic.

[0194] 3. At the same time, forwarding device B finds that the destination address of the message is not the local machine, so it forwards the message to the destination server.

[0195] 4. When the destination server receives a message carrying the ECN congestion mark, it will also send a CNP congestion notification message to the source end.

[0196] For the same ECN congestion marking message sent by device A, if device B and the destination server both respond and send a CNP congestion notification message to the source server, it will cause excessive speed reduction of the source server.

[0197] In an embodiment of the present application, the destination device's response function to the ECN congestion marking message can be first turned off, so that after the destination device receives the ECN congestion marking message, it does not send a CNP congestion notification message to the source server.

[0198] The current state is obtained in the congested device, and a calculation method is provided to obtain the current state of the congested device.

[0199] Based on CNP packets, the congestion status is brought into CNP and sent back to the source server. Unlike iQCN, device A will directly return the CNP packet to the source server, which can respond to the congestion status more quickly and in real time.

[0200] Subsequently, the source server determines the speed reduction ratio according to the congestion status in the CNP message. Specifically, the source server calculates the final speed reduction ratio according to the speed reduction ratio obtained by the DCQCN algorithm and the speed reduction ratio calculated by the congestion status in the CNP message.

[0201] In a specific implementation manner of the present application, sending a congestion notification message carrying a congestion status to a source device includes:

[0202] Get the current bandwidth usage, queue usage and average waiting time of packets in the queue;

[0203] Determine network congestion value using bandwidth utilization, queue utilization and average waiting time;

[0204] After the network congestion value is added to the reserved field of the congestion notification message, the congestion notification message is sent to the source device.

[0205] The network congestion value is carried into the reserved field of the congestion notification message, including:

[0206] Multiply the network congestion value by the reserved field parameter to obtain a product;

[0207] The product is rounded and the obtained value is put into the reserved field of the congestion notification message.

[0208] The network congestion value is determined by using bandwidth utilization, queue utilization and average waiting time, including:

[0209] Get congestion adjustment factor;

[0210] Combined with the congestion adjustment factor, the bandwidth utilization rate, queue utilization rate and average waiting time are weighted and summed to obtain the network congestion value.

[0211] As shown in FIG2 , when forwarding device B finds that the port is congested, it calculates the congestion state C, that is, the network congestion value, based on the current bandwidth usage, queue usage, and the average waiting time of data packets in the queue (average waiting time).

[0212] The algorithm of bandwidth usage U is as follows:

[0213] U = B_used⁄B_total;

[0214] Among them, B_used: actual used bandwidth; B_total: total bandwidth.

[0215] The algorithm for queue utilization rate Q is as follows:

[0216] Q = Q_packets / Q_max;

[0217] Among them, Q_packets: current queue length; Q_max: maximum capacity of the queue.

[0218] The algorithm for the average waiting time T is as follows:

[0219] ;

[0220] in : The waiting time of the ith data packet in the queue; N: The total number of data packets, The summation operator sums the waiting times from 1 to N.

[0221] The network congestion value is calculated as follows:

[0222] C = αU + βQ + γT; α, β, and γ are congestion adjustment factors, which are used to control the influence of each performance indicator in the weight calculation.

[0223] Device B adds C_quantized to the reserved field in the CNP message and sends it back to the source server.

[0224] C_quantized = round(C * δ);

[0225] Where δ is an integer between 1 and 127, and the maximum length of reserved is 7 bits.

[0226] It can be seen that the forwarding device directly feeds back the congestion notification message to the source device, which is not only faster, but also in this embodiment, the congestion message also includes the congestion status of the forwarding device. It is also convenient for the source device to determine the speed reduction ratio according to the congestion status according to the method steps shown in Figure 1, and then reduce the speed, which can truly and quickly meet the speed reduction needs of the forwarding device.

[0227] Corresponding to the above method embodiment, the embodiment of the present application further provides a source device and a forwarding device. The source device and the forwarding device described below can correspond to each other with the communication method described above. The internal structures of the source device and the forwarding device can be similar. Therefore, the source device and the forwarding device are described below by taking the electronic devices shown in Figures 6 and 7 as examples.

[0228] As shown in FIG6 , the electronic device includes:

[0229] A memory 332, for storing computer programs;

[0230] The processor 322 is configured to implement the steps of the communication method of the above method embodiment when executing a computer program.

[0231] Specifically, when the electronic device is a source device, the following method steps are performed:

[0232] Sending a data packet to a destination device via a communication link; wherein the communication link includes a source device, a destination device, and a plurality of forwarding devices;

[0233] After receiving the congestion notification message sent by the target forwarding device, triggering the congestion control mechanism and determining the first speed reduction ratio; wherein the target forwarding device is a forwarding device located in the communication link;

[0234] Parse the congestion notification message to obtain the congestion status of the target forwarding device, and use the congestion status to determine the second speed reduction ratio;

[0235] Combining the first speed reduction ratio and the second speed reduction ratio, a speed reduction ratio is obtained;

[0236] The speed at which data packets are sent to the destination device through the communication link is reduced according to the reduction ratio.

[0237] The congestion notification message is parsed to obtain the congestion status of the target forwarding device, including:

[0238] Parsing the congestion notification message to obtain a reserved field value representing the congestion state stored in the reserved field;

[0239] Obtaining reserved field parameters agreed upon with the target forwarding device;

[0240] Divide the reserved field value by the reserved field parameter to obtain the network congestion value.

[0241] The second speed reduction ratio is determined by using the congestion status, including:

[0242] The network congestion value is rounded to obtain the second speed reduction ratio.

[0243] The speed reduction ratio is obtained by combining the first speed reduction ratio and the second speed reduction ratio, including:

[0244] Get the current adjustment factor;

[0245] The first speed reduction ratio and the second speed reduction ratio are weightedly summed in combination with the adjustment factor to obtain the speed reduction ratio.

[0246] Among them, obtaining the current adjustment factor includes:

[0247] The trained adjustment factor learning model is used to obtain the adjustment factor.

[0248] Where multiple communication links exist, the following also applies:

[0249] Determine the speed reduction ratio of multiple communication links;

[0250] Determine a target speed reduction ratio from multiple speed reduction ratios;

[0251] Determine the multipath routing weight value according to the target speed reduction ratio;

[0252] The weighted multipath routing values ​​are used to perform weighted multipath routing allocation.

[0253] Among them, the target speed reduction ratio is determined from multiple speed reduction ratios, including:

[0254] Select the speed reduction ratio with the largest value from multiple speed reduction ratios;

[0255] The speed reduction ratio with the largest value is determined as the target speed reduction ratio.

[0256] Specifically, when the electronic device is a forwarding device, the following method steps are performed:

[0257] Using the communication port to receive the data packet sent by the source device to the destination device, and forwarding the data packet to the destination device;

[0258] Monitor the communication ports;

[0259] When congestion occurs on the communication port, a congestion notification message carrying the congestion status is sent to the source device so that the source device executes the steps of the communication method shown in FIG. 1 .

[0260] The congestion notification message carrying the congestion status is sent to the source device, including:

[0261] Get the current bandwidth usage, queue usage and average waiting time of packets in the queue;

[0262] Determine network congestion value using bandwidth utilization, queue utilization and average waiting time;

[0263] After the network congestion value is added to the reserved field of the congestion notification message, the congestion notification message is sent to the source device.

[0264] The network congestion value is carried into the reserved field of the congestion notification message, including:

[0265] Multiply the network congestion value by the reserved field parameter to obtain a product;

[0266] The product is rounded and the obtained value is put into the reserved field of the congestion notification message.

[0267] The network congestion value is determined by using bandwidth utilization, queue utilization and average waiting time, including:

[0268] Get congestion adjustment factor;

[0269] Combined with the congestion adjustment factor, the bandwidth utilization rate, queue utilization rate and average waiting time are weighted and summed to obtain the network congestion value.

[0270] Specifically, please refer to FIG. 7, which is a schematic diagram of the specific structure of an electronic device provided in this embodiment. The electronic device may have relatively large differences due to different configurations or performances, and may include one or more processors (central processing units, CPU) (for example, one or more processors) and a memory 332, and the memory 332 stores one or more computer programs 342 or data 344. Among them, the memory 332 can be a temporary storage or a permanent storage. The program stored in the memory 332 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations in the data processing device. Furthermore, the processor 322 can be configured to communicate with the memory 332 to execute a series of instruction operations in the memory 332 on the electronic device 301.

[0271] The electronic device 301 may further include one or more power supplies 326 , one or more wired or wireless network interfaces 350 , one or more input and output interfaces 358 , and / or one or more operating systems 341 .

[0272] The steps in the communication method described above may be implemented by the structure of an electronic device.

[0273] Corresponding to the above method embodiment, the embodiment of the present application further provides a readable storage medium. The readable storage medium described below and the communication method described above can refer to each other.

[0274] Corresponding to the above embodiment, the present application also provides a communication system, which includes:

[0275] Several communication links;

[0276] The communication link includes a destination device, a forwarding device as described above, and a source device as described above.

[0277] Among them, devices in different communication links can cross each other.

[0278] The role of the device can also be changed according to actual communication requirements. For example, in communication link 1, device 1 is the source device, and in communication link 2, device 1 is the destination device.

[0279] On the transit device, the steps of the communication method shown in FIG. 3 may be implemented, and on the source device, the steps of the communication method shown in FIG. 1 may be implemented.

[0280] Specifically, the current state is obtained in the device where congestion occurs, a value representing the state of congestion is calculated, and the value is brought into the CNP message and sent back to the source device. Next, the source device calculates a speed reduction ratio based on the congestion state in the CNP message. Then, the source device calculates the final speed reduction ratio based on the speed reduction ratio obtained by the DCQCN algorithm and the speed reduction ratio calculated based on the congestion state in the CNP message. Finally, when the environment is such that the speed reduction ratio is calculated for multiple paths, the weight value of WCMP is brought in according to the speed reduction ratio value. In this way, the problem of not being able to respond to the time point when congestion occurs in real time, and not taking into account the state of the congested device itself, and not being able to truly and quickly alleviate the congestion state can be effectively solved. Network congestion can be effectively managed, and network efficiency and application performance in these environments can be significantly improved.

[0281] That is, in this system, it is possible to achieve:

[0282] 1. Get the status of the current congested device.

[0283] 2. CNP packets can bring the congestion status into CNP and send it back to the source device.

[0284] 3. The source device obtains the second speed reduction ratio according to the congestion status in the CNP message.

[0285] 4. The first speed reduction ratio obtained by the source device according to the DCQCN algorithm;

[0286] 5. Combine the first speed reduction ratio and the second speed reduction ratio to calculate the final speed reduction ratio.

[0287] The speed reduction ratio is taken into account in the weight value of WCMP (Weighted Cost Multipath), which can further alleviate the congestion.

[0288] Among them, the forwarding device can be specifically a switch, which obtains the status of the current congested device, calculates the congestion status value, and brings the congestion status into the CNP and sends it back to the source device. The source device obtains the speed reduction ratio according to the congestion status in the CNP message. The source device calculates the final speed reduction ratio based on the speed reduction ratio obtained by the DCQCN algorithm and the speed reduction ratio calculated by the congestion status in the CNP message. Finally, the weight value of WCMP is brought in according to the speed reduction ratio value, which can further alleviate the congestion state. In this system, network congestion can be effectively managed, and network efficiency and application performance in these environments can be significantly improved.

[0289] In addition, importing learning models and optimizing learning adjustment factors can also solve congested environments more effectively.

[0290] A readable storage medium stores a computer program, which implements the steps of the communication method of the above method embodiment when the computer program is executed by a processor.

[0291] The readable storage medium may specifically be a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, or other readable storage medium that can store program codes.

[0292] Corresponding to the above method embodiment, the embodiment of the present application further provides a computer program product. The computer program product described below and the communication method described above can refer to each other.

[0293] A computer program product includes a computer program / instruction. When the computer program / instruction is executed by a processor, the steps of the above communication method are implemented.

[0294] In this specification, each embodiment is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part.

[0295] Those skilled in the art may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented with electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0296] The steps of the method or algorithm described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.

[0297] Finally, it should be noted that, in this article, relationships such as first and second, etc. are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms include, include or any other variations are intended to cover non-exclusive inclusion, so that a process, method, article or device that includes a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device.

[0298] Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core idea of ​​the present application. At the same time, for those skilled in the art, according to the idea of ​​the present application, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A communication method, characterized in that: Applicable to source devices, including: Sending a data packet to a destination device via a communication link; wherein the communication link includes the source device, the destination device, and a plurality of forwarding devices; After receiving a congestion notification message sent by a target forwarding device, triggering a congestion control mechanism to determine a first speed reduction ratio; wherein the target forwarding device is a forwarding device located in the communication link; Parsing the congestion notification message to obtain the congestion status of the target forwarding device, and using the congestion status to determine a second speed reduction ratio; Combining the first speed reduction ratio and the second speed reduction ratio to obtain a speed reduction ratio; According to the speed reduction ratio, reducing the speed of sending the data packet to the destination device through the communication link; The step of parsing the congestion notification message to obtain the congestion status of the target forwarding device includes: Parsing the congestion notification message to obtain a reserved field value representing the congestion state stored in a reserved field; Acquire reserved field parameters agreed upon with the target forwarding device; The reserved field value is divided by the reserved field parameter to obtain a network congestion value.

2. The method according to claim 1, characterized in that Determining a second speed reduction ratio by using the congestion state includes: The network congestion value is rounded to obtain the second speed reduction ratio.

3. The method according to claim 1, characterized in that Combining the first speed reduction ratio and the second speed reduction ratio to obtain a speed reduction ratio includes: Get the current adjustment factor; The first speed reduction ratio and the second speed reduction ratio are weightedly summed in combination with the adjustment factor to obtain the speed reduction ratio.

4. The method according to claim 3, characterized in that Get the current adjustment factors, including: The trained adjustment factor learning model is used to obtain the adjustment factor.

5. The method according to any one of claims 1 to 4, characterized in that: In the case where there are multiple communication links, the method further includes: Determining a speed reduction ratio of a plurality of the communication links; Determining a target speed reduction ratio from the plurality of speed reduction ratios; Determining a multipath routing weight value according to the target speed reduction ratio; The multipath routing weighted values ​​are used to perform weighted multipath routing allocation.

6. The method according to claim 5, characterized in that Determining a target speed reduction ratio from the plurality of speed reduction ratios includes: Selecting the speed reduction ratio with the largest value from the plurality of speed reduction ratios; The speed reduction ratio with the largest value is determined as the target speed reduction ratio.

7. A communication method, characterized in that: Applicable to forwarding devices, including: Receiving a data packet sent by a source device to a destination device using a communication port, and forwarding the data packet to the destination device; Monitoring the communication port; In the event that congestion exists on the communication port, a congestion notification message carrying a congestion status is sent to the source device so that the source device reduces the speed of sending data packets to the destination device through the communication link based on the congestion notification message; wherein the source device implements the steps of the communication method as claimed in any one of claims 1 to 6.

8. The method according to claim 7, characterized in that Sending a congestion notification message carrying a congestion status to the source device includes: Get the current bandwidth usage, queue usage and average waiting time of packets in the queue; Determine a network congestion value by using the bandwidth utilization rate, the queue utilization rate and the average waiting time; After the network congestion value is added to the reserved field of the congestion notification message, the congestion notification message is sent to the source device.

9. The method according to claim 8, characterized in that Bringing the network congestion value into a reserved field of the congestion notification message, comprising: Multiplying the network congestion value by a reserved field parameter to obtain a product; The product is rounded, and the obtained value is entered into the reserved field of the congestion notification message.

10. The method according to claim 8, characterized in that Determining a network congestion value by using the bandwidth utilization rate, the queue utilization rate, and the average waiting time includes: Get congestion adjustment factor; The network congestion value is obtained by combining the congestion adjustment factor and performing a weighted summation on the bandwidth usage rate, the queue usage rate and the average waiting time.

11. A source device, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the communication method according to any one of claims 1 to 6 when executing the computer program.

12. A forwarding device, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the communication method according to any one of claims 7 to 10 when executing the computer program.

13. A readable storage medium, characterized in that: The readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the communication method according to any one of claims 1 to 10 are implemented.

14. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instruction is executed by a processor, the steps of the communication method according to any one of claims 1 to 10 are implemented.

Citation Information

Patent Citations

  • Congestion control method, equipment and system

    CN117411833A

  • RoCE Network Congestion Control Method and Related Apparatus

    US20230208771A1