Communication method and device, network equipment, storage medium and program product
By performing congestion detection and real-time speed reduction on the first network device in the communication network, the problems of network congestion and data loss caused by limited network device resources are solved, and the stable operation of the communication network is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-02
- Publication Date
- 2026-03-10
AI Technical Summary
In communication networks, limited network equipment resources can lead to a decline in network transmission performance, which in turn can cause network congestion, potentially resulting in data loss and affecting the normal operation of the communication network.
Congestion detection is performed on the first network device (first access device) between the sending server and the receiving server. When congestion is detected but the transmission status is within a preset range, the data packet speed reduction process is triggered to avoid packet loss. The sending rate of the sending server is adjusted in real time by using return packets for probabilistic marking or sending congestion notification packets.
It effectively reduces packet loss rate, ensures normal operation of communication network, shortens the speed-down processing time, provides effective congestion control, and is suitable for cross-wide area network scenarios.
Smart Images

Figure CN121644461A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of communication, and particularly relates to a communication method and device, a network device, a storage medium and a program product. BACKGROUND
[0002] In a communication network, for a network device used for providing a routing and forwarding function between a sending end server and a receiving end server, network transmission performance may be degraded due to limited resources of the network device, thereby causing a network congestion problem. With the network congestion problem, the storage space of the network device may be occupied due to a transmission rate of the network device being lower than a data arrival rate, thereby causing a data loss problem, and normal operation of the communication network is difficult to guarantee. Therefore, how to control the data loss problem is a problem worth considering. SUMMARY
[0003] Embodiments of the present application provide a communication method and device, a network device, a storage medium and a program product, which can control the data loss problem, thereby guaranteeing normal operation of the communication network.
[0004] To achieve the above object, embodiments of the present application provide the following technical solutions.
[0005] In a first aspect, a communication method is provided. The method can be executed by a network device, or by a component of the network device, such as a processor, a chip, or a chip system of the network device, or by a logic module or software that can realize all or part of the functions of the network device.
[0006] Specifically, the method can be executed by a first network device used for providing a routing and forwarding function between a sending end server and a receiving end server, and in the following, the first network device is referred to as a first access device. The method comprises the following steps.
[0007] The first access device receives a data packet from the sending end server. It can be understood that the data packet is a packet sent by the sending end server and forwarded to the receiving end server via multiple network devices.
[0008] The first access device performs congestion detection to obtain a congestion detection result. That is, in the process of the sending-end server sending the data packet to the receiving-end server, the first access device, as the first network device for providing a routing forwarding function between the sending-end server and the receiving-end server, that is, the network device closest to the sending-end server, can first receive the data packet and perform congestion detection on the first access device. It can be seen that, based on the first access device performing congestion detection, the congestion detection of the first access device can be triggered at the beginning of the data packet transmission. The congestion detection result is used to indicate whether the first access device is congested and the data transmission condition when the congestion occurs, such as the cache occupancy rate, the data transmission rate of the first access device, the transmission rate of the data packet, the congestion duration, etc.
[0009] Further, the first access device sends the data packet to the receiving-end server in response to the congestion detection result indicating that the first access device is congested but the data transmission condition is within a preset congestion range, and triggers the sending-end server to perform speed reduction processing on the data packet based on the data transmission condition.
[0010] The preset congestion range includes at least one of a preset time range, a preset flow range, and a preset buffer water line range.
[0011] For example, taking the preset congestion range as the preset time range, the above-mentioned implementation manner can be replaced by: if the congestion duration indicated by the data transmission condition is within the preset time range, the data packet is sent to the receiving-end server, that is, the data packet is not subjected to packet loss processing.
[0012] For example, taking the preset congestion range as the preset buffer water line range, the above-mentioned implementation manner can be replaced by: if the cache occupancy rate indicated by the data transmission condition is within the preset buffer water line range, the data packet is sent to the receiving-end server, that is, the data packet is not subjected to packet loss processing.
[0013] For example, taking the preset congestion range as the preset flow range of the first access device, the above-mentioned implementation manner can be replaced by: if the data transmission rate of the first access device indicated by the data transmission condition is within the preset flow range of the first access device, the data packet is sent to the receiving-end server, that is, the data packet is not subjected to packet loss processing.
[0014] For example, taking the preset congestion range as the preset flow range of the data packet, the above-mentioned implementation manner can be replaced by: if the transmission rate of the data packet indicated by the data transmission condition is within the preset flow range of the data packet, the data packet is sent to the receiving-end server, that is, the data packet is not subjected to packet loss processing.
[0015] In the above embodiment, by setting the preset congestion range, in the case that the first access device is congested but the data transmission condition is within the preset congestion range, the normal forwarding of the data packet can be guaranteed to be transmitted to the receiving end server smoothly, avoiding the first access device to perform packet loss processing, which can effectively reduce the packet loss rate, thereby guaranteeing the normal operation of the communication network. Moreover, based on the first access device being able to trigger the sending end server to perform speed reduction processing on the data packet in time, the speed reduction processing on the data packet can be triggered at the initial stage of data packet transmission, without passing through other network devices after the first access device, at least one round trip time can be saved, the time required for speed reduction processing is shortened, effective congestion control can be provided, thereby guaranteeing the normal operation of the communication network.
[0016] In combination with the above first aspect, in a possible implementation, the first access device triggers the sending end server to perform speed reduction processing on the data packet based on the data transmission condition, including:
[0017] The first access device determines speed reduction reference information based on the data transmission condition. The speed reduction reference information is positively correlated with the data transmission condition. That is, the greater the congestion degree indicated by the data transmission condition, the greater the speed reduction degree indicated by the speed reduction reference information, and the smaller the congestion degree indicated by the data transmission condition, the smaller the speed reduction degree indicated by the speed reduction reference information.
[0018] Further, the first access device triggers the sending end server to perform speed reduction processing on the data packet based on the speed reduction reference information.
[0019] In the above embodiment, a manner for the first access device to trigger the sending end server to perform speed reduction processing on the data packet is provided. The speed reduction reference information is determined according to the data transmission condition indicated by the congestion detection result, which can determine the speed reduction reference information adapted to the congestion condition at the current time in real time, and then the sending end server is triggered to perform speed reduction processing on the data packet by using the speed reduction reference information determined in real time, which can improve the accuracy of the sending end server performing speed reduction processing, thereby providing effective congestion control.
[0020] In combination with the above first aspect, in a possible implementation, the speed reduction reference information is a speed reduction probability reference value.
[0021] The first access device triggers the sending end server to perform speed reduction processing on the data packet based on the speed reduction reference information, including:
[0022] The first access device performs marking processing on the backhaul message of the data message from the receiving end server according to the reference value of the speed reduction probability, to obtain a marked backhaul message. The reference value of the speed reduction probability is used to indicate a marking ratio of the backhaul message. That is, by selecting the backhaul message occupying the marking ratio from the backhaul message of the data message from the receiving end server, and performing marking processing on the backhaul message occupying the marking ratio, the marked backhaul message can be obtained.
[0023] The backhaul message is a response message returned by the receiving end server to the sending end server. The marking processing is used to add a congestion mark to the backhaul message. That is, considering the communication scenario that the receiving end server returns the backhaul message to the sending end server, the backhaul message is marked by the reference value of the speed reduction probability, so that the marked backhaul message can reflect the reference value of the speed reduction probability, such as the proportion of the backhaul message with the congestion mark added in all backhaul messages, that is, the reference value of the speed reduction probability.
[0024] Further, the first access device sends the marked backhaul message to the sending end server, and the marked backhaul message is used to trigger the sending end server to perform speed reduction processing on the data message. In this way, by probabilistically marking the backhaul message and sending the marked backhaul message to the sending end server, the marked backhaul message can be used to trigger the sending end server to perform speed reduction processing on the data message, thereby providing a scheme of triggering speed reduction processing based on probabilistic marking of the backhaul message.
[0025] In combination with the first aspect, in a possible implementation, after the first access device receives the data message from the sending end server, the method further includes: obtaining message information of the data message. The message information can be flow five-tuple information. It can be understood that the flow five-tuple information of the data message is usually used to identify a data message in the data message transmission process.
[0026] The first access device performs marking processing on the backhaul message of the data message from the receiving end server according to the reference value of the speed reduction probability, including:
[0027] The first access device obtains the backhaul message of the data message from the backhaul message of the receiving end server based on the message information of the data message. In this way, the backhaul message of the current data message can be obtained from all backhaul messages.
[0028] The first access device performs marking processing on the backhaul message of the data message according to the reference value of the speed reduction probability. In this way, probabilistic marking for the same data message (or the same data flow) can be realized, and then speed reduction processing for the same data message can be realized subsequently.
[0029] In a possible implementation of the first aspect, the speed reduction reference information is a number of congestion notification messages.
[0030] The first access device triggers, based on the speed reduction reference information, the sending end server to perform speed reduction processing on the data message, including:
[0031] The first access device sends, to the sending end server, the number of congestion notification messages of the data message, and the number of congestion notification messages is used to trigger the sending end server to perform speed reduction processing on the data message. In this way, a manner is provided in which the first access device actively sends congestion notification messages to trigger the sending end server to perform speed reduction processing on the data message.
[0032] In a possible implementation of the first aspect, after the first access device receives the data message from the sending end server, the method further includes:
[0033] The first access device obtains message information of the data message. The message information can be flow quintuple information and a destination port (Dest QP). It can be understood that the flow quintuple information and the Dest QP of the data message are usually used to identify a data message in a data message transmission process.
[0034] The first access device sends, to the sending end server, the number of congestion notification messages of the data message, including:
[0035] The first access device determines a communication address of the sending end server based on the message information of the data message, and constructs the number of congestion notification messages of the data message. Then, the first access device sends the number of congestion notification messages to the sending end server based on the communication address of the sending end server. Since the first access device is the closest network device to the sending end server, the first access device can conveniently obtain the communication address of the sending end server, which provides a basis for communication between the first access device and the sending end server, so as to facilitate the first access device to actively trigger the sending end server to perform speed reduction processing on the data message.
[0036] In a possible implementation of the first aspect, the first access device determines the speed reduction reference information based on the data transmission condition, including:
[0037] The speed reduction reference information is determined based on the data transmission condition and a first mapping relationship. The first mapping relationship is used to indicate a linear mapping relationship between the data transmission condition and the speed reduction reference information, such as a data table. Or,
[0038] The speed reduction reference information is determined based on the data transmission condition and a second mapping relationship. The second mapping relationship is used to indicate a nonlinear mapping relationship, such as a nonlinear formula, between the data transmission condition and the speed reduction reference information. Or,
[0039] The data transmission condition is input into a first information prediction model, and the data transmission condition is processed by the first information prediction model to obtain the speed reduction reference information. The first information prediction model is used to predict the speed reduction reference information.
[0040] In the above embodiments, three ways of determining the speed reduction reference information are provided. In one implementation, the linear mapping relationship between the preset data transmission condition and the speed reduction reference information can quickly and efficiently determine the speed reduction reference information corresponding to the data transmission condition. In another implementation, the nonlinear mapping relationship between the preset data transmission condition and the speed reduction reference information can determine the speed reduction reference information corresponding to the data transmission condition in real time, improving the accuracy of determining the speed reduction reference information. In another implementation, the first information prediction model is used to predict the speed reduction reference information corresponding to the data transmission condition, improving the accuracy of determining the speed reduction reference information.
[0041] In combination with the above first aspect, in a possible implementation, the congestion detection of the first access device is performed to obtain a congestion detection result, including:
[0042] The buffer occupancy rate of the first access device is obtained, and it is determined whether the buffer occupancy rate exceeds a preset upper limit of the occupancy rate. If the buffer occupancy rate exceeds the preset upper limit of the occupancy rate, it is determined that the first access device is congested, and the data transmission condition at the current time is obtained. If the buffer occupancy rate does not exceed the preset upper limit of the occupancy rate, it is determined that the first access device is not congested. In this way, a scheme of performing congestion detection based on the buffer occupancy rate of the first access device is provided, which can quickly and efficiently determine the congestion detection result. Or,
[0043] The data transmission rate of the first access device is obtained, and it is determined whether the data transmission rate exceeds a preset upper limit of the rate. If the data transmission rate exceeds the preset upper limit of the rate, it is determined that the first access device is congested, and the data transmission condition at the current time is obtained. If the data transmission rate does not exceed the preset upper limit of the rate, it is determined that the first access device is not congested. In this way, a scheme of performing congestion detection based on the data transmission rate of the first access device is provided, which can quickly and efficiently determine the congestion detection result. Or,
[0044] The first access device is subjected to congestion detection based on a token bucket, a token bucket detection result is obtained, and it is determined whether the token bucket detection result indicates that the first access device is allowed to forward the data packet. If the token bucket detection result indicates that the first access device is not allowed to forward the data packet, it is determined that the first access device is congested, and the data transmission condition at the current time is obtained. If the token bucket detection result indicates that the first access device is allowed to forward the data packet, it is determined that the first access device is not congested. It can be understood that the token bucket detection result can indicate the congestion detection result of the first access device to some extent, for example, the marking color of the data packet is used to indicate whether the first access device is congested. In this way, a scheme for congestion detection based on a token bucket is provided, which can quickly and efficiently determine the congestion detection result. Or,
[0045] The first access device inputs the congestion detection result of the historical time period into a second information prediction model, processes the congestion detection result of the historical time period through the second information prediction model, determines whether the first access device is congested at the current time, and obtains the data transmission condition at the current time if the first access device is congested at the current time. In this way, a scheme for congestion detection based on a neural network model is provided, which predicts whether the first access device is congested at the current time through the second information prediction model, not only improves the efficiency of congestion detection, but also improves the accuracy of congestion detection.
[0046] In a second aspect, a communication device is provided for implementing any of the methods provided in the first aspect. The communication device includes modules, units or means corresponding to the modules, units or means for implementing the methods, and the actions performed by the modules, units or means can be implemented by hardware, software or by executing corresponding software by hardware. The hardware or software includes one or more modules or units corresponding to the above functions.
[0047] In a possible implementation, the device can include a receiving module, a detection module and a triggering module; wherein:
[0048] The receiving module is configured to receive the data packet from the sending end server.
[0049] The detection module is configured to perform congestion detection on the first access device to obtain a congestion detection result, the congestion detection result being used to indicate whether the first access device is congested and the data transmission condition when the first access device is congested.
[0050] The triggering module is configured to, in response to the congestion detection result indicating that the first access device is congested but the data transmission condition is within a preset congestion range, send the data packet to the receiving end server, and trigger the sending end server to perform speed reduction processing on the data packet based on the data transmission condition.
[0051] In a third aspect, a network device is provided, comprising: a memory and a processor connected with each other; the memory is configured to store computer-executable instructions; and the processor is configured to invoke the computer-executable instructions, thereby implementing the method of the first aspect or any of the implementation manners thereof.
[0052] The network device of the third aspect can be the first access device in any of the implementation manners of the first aspect, i.e., the first network device between the sender server and the receiver server for providing the route forwarding function, or an apparatus comprising the first access device, or an apparatus comprising the first access device, such as a chip.
[0053] In a fourth aspect, a chip is provided, comprising: a processor and an interface circuit; the interface circuit is configured to receive computer-executable instructions and transmit the computer-executable instructions to the processor; and the processor is configured to run the computer-executable instructions to execute the method of the first aspect or any of the implementation manners thereof.
[0054] In a fifth aspect, a computer-readable storage medium is provided, comprising computer-executable instructions, which, when run on a network device, cause the network device to execute the method of the first aspect or any of the implementation manners thereof.
[0055] In a sixth aspect, a computer program product is provided, comprising computer-executable instructions, which, when run on a network device, cause the network device to execute the method of the first aspect or any of the implementation manners thereof.
[0056] The technical effects brought by any of the implementation manners of the second aspect to the sixth aspect can be referred to the technical effects brought by the corresponding implementation manners of the first aspect, which will not be repeated here.
[0057] The various possible implementation manners of any of the aspects described above can be combined, provided that the schemes are not contradictory. BRIEF DESCRIPTION OF DRAWINGS
[0058] Figure 1 A schematic diagram of a congestion control method based on ECN provided by the related art;
[0059] Figure 2 A schematic diagram of a congestion control method based on NPCC provided by the related art;
[0060] Figure 3 A comparison schematic diagram between a theoretical bandwidth and an actual bandwidth provided by the related art;
[0061] Figure 4 A schematic diagram of a system architecture of a communication method provided by the embodiments of the present application;
[0062] Figure 5 A hardware structure schematic diagram of a network device provided by an embodiment of the present application;
[0063] Figure 6 A flowchart of a communication method provided by an embodiment of the present application;
[0064] Figure 7 A congestion detection schematic diagram based on a token bucket provided by an embodiment of the present application;
[0065] Figure 8 A schematic diagram of predicting a speed reduction reference information based on multi-factor flow modeling provided by an embodiment of the present application;
[0066] Figure 9 A flowchart of another communication method provided by an embodiment of the present application;
[0067] Figure 10 A content schematic diagram of a BGP packet provided by an embodiment of the present application;
[0068] Figure 11 Attribute information of a preset time range provided by an embodiment of the present application;
[0069] Figure 12 A schematic diagram of triggering a speed reduction processing under a TCP scenario provided by an embodiment of the present application;
[0070] Figure 13 A flowchart of a TCP-based communication method provided by an embodiment of the present application;
[0071] Figure 14 A flowchart of another communication method provided by an embodiment of the present application;
[0072] Figure 15 A schematic diagram of triggering a speed reduction processing under an RDMA scenario provided by an embodiment of the present application;
[0073] Figure 16 A flowchart of an RDMA-based communication method provided by an embodiment of the present application;
[0074] Figure 17 A structure schematic diagram of a communication device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0075] In the description of the present application, "a plurality of" means two or more than two, unless otherwise specified. At least one of the following or similar expressions refers to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b and (or) c can represent: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple.
[0076] In addition, in order to facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, "first", "second" and the like are used to distinguish the same items or similar items with basically the same function and role. The skilled in the art can understand that "first", "second" and the like do not limit the quantity and execution order, and "first", "second" and the like do not necessarily mean different.
[0077] In the embodiments of the present application, the words "exemplarily" or "for example" are used to represent as an example, illustration or explanation. Any embodiment or design scheme described as "exemplarily" or "for example" in the embodiments of the present application should not be interpreted as more preferred or more advantageous than other embodiments or design schemes. In fact, the words "exemplarily" or "for example" are intended to present the relevant concept in a specific way for understanding.
[0078] It can be understood that the "embodiments" mentioned throughout the specification mean that the specific features, structures or characteristics related to the embodiments are included in at least one embodiment of the present application. Therefore, throughout the specification, various embodiments do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It can be understood that in various embodiments of the present application, the size of the sequence number of each process does not mean the execution order, and the execution order of each process should be determined by its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0079] It can be understood that some optional features in the embodiments of the present application can be implemented independently in some scenarios, without relying on other features, such as the scheme currently based on, to solve the corresponding technical problems and achieve the corresponding effects. In some scenarios, it can also be combined with other features according to demand. Correspondingly, the device given in the embodiments of the present application can also realize these features or functions, which will not be described here.
[0080] In the present application, the same or similar parts among various embodiments can be mutually referred to, unless otherwise specified. In various embodiments of the present application, the terms and / or descriptions of different embodiments are consistent and can be mutually referred to, unless otherwise specified and logically conflicted. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationship. The implementation manners of the present application described below do not constitute a limitation on the protection scope of the present application.
[0081] In the following, the application scenarios of the embodiments of the present application are exemplarily introduced.
[0082] In a communication network such as a data communication network (DCN), for network devices between a sending end server and a receiving end server for providing a routing and forwarding function, it is likely that the network transmission performance will be degraded due to limited resources of the network devices, thereby causing network congestion problems. It can be understood that network congestion is a kind of sustained overload network state, which is specifically caused by the network transmission performance degradation due to too many data packets sent by the sending end server and limited resources of the network devices (such as limited storage space, limited link bandwidth, etc.).
[0083] Generally, network lossless technology is used for congestion control in the DCN, thereby providing a lossless, low-latency, high-throughput network environment for distributed storage, high-performance computing, artificial intelligence, and other application scenarios. Among them, congestion control refers to a control method for controlling the total amount of data entering the network to keep the network traffic at an acceptable level. It can be understood that congestion control often requires the cooperation of the sending end server (such as a traffic sending end), the network device (or called forwarding device), the receiving end server (traffic receiving end), and the combination of the congestion feedback mechanism in the network to adjust the network traffic, thereby relieving and eliminating congestion.
[0084] The embodiments of the present application show two congestion control methods in the related art, which are an explicit congestion notification (ECN) based congestion control method and a network proactive congestion control (NPCC) based congestion control method. Among them, the ECN based congestion control method and the NPCC based congestion control method can both implement congestion control based on a remote direct memory access over converged ethernet version 2 (RoCEv2) congestion control mechanism. RoCEv2 is an Ethernet based remote direct memory access protocol, which can realize low delay and high throughput data transmission in an Ethernet environment. Of course, in other possible implementation manners, other types of congestion control algorithms can also be provided, such as a data center quantized congestion notification (DCQCN) based rate congestion control algorithm. The ECN based congestion control method and the NPCC based congestion control method will be introduced respectively as follows.
[0085] Related technology one: ECN based congestion control method.
[0086] Exemplarily, Figure 1 A schematic diagram of an ECN based congestion control method provided by the related technology is shown. Referring to Figure 1 , the ECN based congestion control process is: in the process of message transmission (such as RoCEv2 message transmission) between the sending end server and the receiving end server through the network device, if the network device determines that the network device is congested through congestion detection, such as the congestion point of the port out direction (such as Figure 1 ) of the network device appears congestion, at this time, the network device can add a congestion mark to the message to be forwarded to the receiving end server. Then the network device sends the message carrying the congestion mark to the receiving end server. After receiving the message carrying the congestion mark, the receiving end server can perceive that the network device is congested. Then, the receiving end server sends a congestion notification message, such as a congestion notification packet (CNP), to the sending end server through the network device after perceiving that the network device is congested, such as Figure 1 , to inform the sending end server to reduce the sending rate of the message, so as to alleviate the congestion.
[0087] However, the above-mentioned congestion control method based on ECN, on the one hand, needs to rely on the receiving server to feed back the congestion notification message to the sending server, and is applicable to short-distance data center networks, but not applicable to long-distance data center networks. Exemplarily, in a long-distance data center network, the network device is congested, but the receiving server feeds back the congestion, so that in a large-scale network application scenario, the long congestion feedback path may cause the sending server to fail to respond in time to reduce the speed, thereby causing the congestion to worsen. On the other hand, in a short-distance data center network, the sending server may reduce the speed due to temporary congestion, which may cause the problem of reduced throughput.
[0088] Related technology two: congestion control method based on NPCC.
[0089] Among them, NPCC is an active congestion control technology with network device as the core, which can intelligently identify the congestion state of the device port on the network device, and actively send CNP messages by the network device to accurately control the sending rate of the sending server.
[0090] Exemplarily, Figure 2 A schematic diagram of a congestion control method based on NPCC provided by the related technology. Referring to Figure 2 The congestion control process based on NPCC is: in the process of message transmission (such as RoCEv2 message transmission) between the sending server and the receiving server through the network device, the network device can establish and maintain a data flow table (such as a RoCEv2 flow table) according to the message information, and obtain the address information and forwarding path of the message. Moreover, the network device can also perform congestion detection, and if the network device determines that the network device is congested through the congestion detection, such as the out direction of the port of the network device is congested, at this time, the network device can determine the number of CNP messages according to the congestion condition. It can be understood that the port of the network device can be a port enabled with NPCC. Further, the network device constructs the number of CNP messages, such as constructing the number of CNP messages according to the data flow table. And the network device forwards the constructed number of CNP messages to the sending server to notify the sending server to reduce the sending rate of the message, thereby relieving the congestion.
[0091] However, the above-mentioned congestion control method based on NPCC, on the one hand, needs to establish a public network transmission tunnel from each network device in the network to the sending server, which has a large deployment cost, and if it is deployed in a wide area network, the deployment cost is even larger. On the other hand, if the sending server is located on the private network side, the network device cannot obtain the communication address of the private network, so that the CNP message is unreachable, and the congestion control cannot be realized.
[0092] In the above-mentioned related technology I and related technology II, as the network congestion problem occurs, it is likely that the storage space of the network device will be occupied due to the transmission rate of the network device being lower than the arrival rate of the data, thereby causing the problem of data loss. Data loss will directly affect the throughput of the transmission layer protocol such as transmission control protocol (TCP), remote direct memory access (RDMA), and upper-layer services, such as causing the throughput to decrease, ultimately affecting the network use experience of the user, such as low network bandwidth. Exemplarily, Figure 3 A comparison diagram between a theoretical bandwidth and an actual bandwidth is provided for related technologies. The bandwidth refers to the total amount of data that the bus can transmit in a unit of time. Referring to Figure 3 Due to the high network packet loss rate, the actual amount of data transmitted is lower than the amount of data that can be theoretically transmitted, such as the actual bandwidth being lower than the theoretical bandwidth (such as 100M) as shown in Figure 3 Therefore, how to control the problem of data loss is a problem worth considering.
[0093] Therefore, the embodiment of the present application provides a communication method. In the process of sending a data packet by a sending end server to a receiving end server, a first access device, as the first network device for providing a routing and forwarding function between the sending end server and the receiving end server, that is, the nearest network device to the sending end server, can first receive the data packet and perform congestion detection on the data packet. It can be seen that based on the first access device performing congestion detection, the congestion detection on the data packet can be triggered at the beginning stage of data packet transmission. Further, by setting a preset congestion range, the normal forwarding of the data packet can be guaranteed to be transmitted to the receiving end server in the case that the first access device is congested but the data transmission condition is within the preset congestion range, avoiding the first access device performing packet loss processing, which can effectively reduce the packet loss rate, thereby guaranteeing the normal operation of the communication network. Moreover, based on the first access device, the sending end server can timely trigger the speed reduction processing on the data packet, which can trigger the speed reduction processing on the data packet at the beginning stage of data packet transmission, without going through other network devices after the first access device, which can save at least one round trip time, shorten the time required for speed reduction processing, provide effective congestion control, and thereby guarantee the normal operation of the communication network.
[0094] In some embodiments, the technical solutions provided by the embodiments of the present application can be applied to a network scenario across a wide area network, such as a private line tunnel scenario across a wide area network. The wide area network is a remote network connecting different local area networks or metropolitan area networks, usually crossing a large physical range, connecting multiple regions, cities and countries or spanning several continents and providing long-distance communication. Generally, the wide area network can provide wide area private line services for customers such as enterprises and organizations that have high data access or interconnection requirements. In the embodiments of the present application, the first access device can be a tunnel head node in a private line tunnel across a wide area network, such as an Ingress node. The node is also a network device, which refers to a device providing routing and forwarding functions in a communication network.
[0095] In order to facilitate understanding of the embodiments of the present application, the following points are explained before the embodiments of the present application are introduced.
[0096] 1. In the embodiments of the present application, "indication" can include direct indication and indirect indication, and can also include explicit indication and implicit indication. The information indicated by a certain information is referred to as to-be-indicated information. In the implementation process, there are many ways to indicate the to-be-indicated information, for example, but not limited to, the to-be-indicated information itself or the index of the to-be-indicated information can be directly indicated. The to-be-indicated information can also be indirectly indicated by indicating other information, where the other information and the to-be-indicated information have an association relationship. Only a part of the to-be-indicated information can be indicated, and the other part of the to-be-indicated information is known or agreed in advance.
[0097] 2. "Pre-setting" can be realized by pre-storing corresponding codes, tables or other ways that can be used to indicate related information in a device (for example, a network device). The embodiments of the present application do not limit the specific implementation manner.
[0098] 3. In the embodiments of the present application, "in the case of", "if" and "whether" and the like all refer to the device (such as a network device) will make corresponding processing under certain objective circumstances, not limited to time, and does not require the device (such as a network device) to have a judgment action when implemented, and does not mean that there are other limitations.
[0099] In addition, the system architecture and business scenarios described in the embodiments of the present application are used to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. Those skilled in the art can know that, with the evolution of system architecture and the appearance of new business scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems.
[0100] In addition, the actions, terms and the like involved between the embodiments of the present application can be mutually referred to without limitation. The message name or parameter name in the message between the devices in the embodiments of the present application is only an example, and other names can also be used in the specific implementation without limitation.
[0101] The system architecture of the embodiments of the present application is exemplarily introduced as follows.
[0102] In some embodiments, the communication method provided by the embodiments of the present application can be applied to the system architecture as shown in Figure 4 Exemplarily, Figure 4 a schematic diagram of the system architecture of the communication method provided by the embodiments of the present application. Referring to Figure 4 , the system architecture can include a sending end server 401, a plurality of network devices 402 and a receiving end server 403.
[0103] The sending end server 401 refers to a server that sends data messages. In the embodiments of the present application, the sending end server 401 is configured to send data messages to the receiving end server 403, specifically by forwarding the data messages to the receiving end server 403 through the plurality of network devices 402. In some possible implementation manners, the sending end server 401 can be deployed in a first internet data center (IDC), such as IDC-1.
[0104] The receiving end server 403 refers to a server that receives data messages. In the embodiments of the present application, the receiving end server 403 is configured to receive data messages from the sending end server 401, specifically to receive the data messages forwarded by the plurality of network devices 402. In some possible implementation manners, the receiving end server 403 can be deployed in a second IDC, such as IDC-2.
[0105] The plurality of network devices 402 refers to devices that provide routing and forwarding functions in a communication network, and are usually deployed between the sending end server 401 and the receiving end server 403. In some possible implementation manners, the plurality of network devices 402 can be routers, switches, forwarders or label switching routers (LSRs) and the like. In the description of some embodiments, a node can be used to refer to a network device. As shown in Figure 4 , the plurality of network devices 402 can form an access layer (Access) and a network layer (Backbone) to implement the routing and forwarding functions based on the access layer and the network layer.
[0106] In the plurality of network devices 402, the starting node can be referred to as an ingress node (such as an Ingress node), the node in the middle of the plurality of network devices 402 can be referred to as an intermediate node, and the last node in the plurality of network devices 402 can be referred to as an egress node. In the description of the embodiments of the present application, the first access device 4020 is used to refer to the starting node in the plurality of network devices 402, that is, the first network device for providing routing and forwarding functions between the sending server 401 and the receiving server 403.
[0107] In some embodiments, the sending server 401, the plurality of network devices 402, and the receiving server 403 can communicate based on a transmission protocol such as a TCP protocol or an RDMA protocol, as shown in a TCP flow or an RDMA flow. Figure 4
[0108] The communication method provided by the embodiments of the present application can be completed by the sending server 401, the first access device 4020, and the receiving server 403. In the process of the sending server 401 transmitting data packets to the receiving server 403 through the plurality of network devices 402, the first access device 4020 receives the data packets from the sending server 401, performs congestion detection on the first access device 4020, and obtains a congestion detection result. The congestion detection result is used to indicate whether the first access device 4020 is congested and the data transmission condition when the first access device 4020 is congested. Further, the first access device 4020 sends the data packets to the receiving server 403 in response to the congestion detection result indicating that the first access device 4020 is congested but the data transmission condition is within a preset congestion range, and triggers the sending server 401 to perform speed reduction processing on the data packets based on the data transmission condition.
[0109] In an example of the present application, a hardware structure diagram of a network device is shown in Figure 5 Figure 5 The hardware structure diagram of the network device provided by the embodiments of the present application.
[0110] Referring to the network device shown in Figure 5 Figure 5 The network device can include a processor 501, a memory 502, a communication interface 503, and a bus 504. The processor 501, the memory 502, and the communication interface 503 can be connected through the bus 504.
[0111] The processor 501 is the control center of the network device, and can be a general central processing unit (CPU), or other general-purpose processor, etc. The general-purpose processor can be a microprocessor or any conventional processor, etc. In the embodiments of the present application, the communication method can be executed by the processor 501 in the network device.
[0112] For example, the processor 501 can include one or more CPUs, such as the CPU 0 and the CPU 1 shown in FIG. 5. Figure 5
[0113] The memory 502 can be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, or other type of dynamic storage device that can store information and instructions, and can also be an electrically erasable programmable read-only memory (EEPROM), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program codes in the form of instructions or data structures and can be accessed by a computer, but is not limited to this. In the embodiments of the present application, the data, etc. can be stored by the memory 502 in the network device.
[0114] In a possible implementation, the memory 502 can exist independently of the processor 501. The memory 502 can be connected to the processor 501 through the bus 504, for storing data, instructions or program codes. When the processor 501 invokes and executes the instructions or program codes stored in the memory 502, the communication method provided by the embodiments of the present application can be implemented.
[0115] In another possible implementation, the memory 502 can also be integrated with the processor 501.
[0116] The communication interface 503 is used for the network device to be connected with other devices through a communication network, which can be an Ethernet, a radio access network (RAN), a wireless local area network (WLAN), etc. The communication interface 503 can include a receiving unit for receiving data, and a sending unit for sending data.
[0117] The bus 504 can be an industry standard architecture (ISA) bus, a peripheral component interconnect (PCI) bus, an extended industry standard architecture (EISA) bus, or the like. The bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, Figure 5 Only one thick line is used in the figure to represent the bus, but this does not mean that there is only one bus or only one type of bus.
[0118] It should be noted that the structure shown in the figure does not constitute a limitation on the network device, except Figure 5 The network device can include more or fewer components than shown in the figure, or combine some components, or different component arrangements. Figure 5
[0119] For ease of understanding, the communication method provided by the embodiments of the present application is exemplarily described below in combination with the system architecture and the accompanying drawings.
[0120] It can be understood that in the embodiments of the present application, the first access device can perform part or all of the steps in the embodiments of the present application, and these steps or operations are only examples, and the embodiments of the present application can also perform other operations or various modifications of the operations.
[0121] Figure 6 A flowchart of a communication method provided by the embodiments of the present application is shown. In some possible implementation manners, the communication method can be completed by the first access device, the sending end server and the receiving end server in the system architecture shown in the above Figure 4 , see Figure 6 The method includes the following S601-S603.
[0122] S601, the first access device receives a data packet from the sending end server.
[0123] The data packet can be used to transmit a data frame or a data packet. It can be understood that the data packet refers to a packet sent by the sending end server and forwarded to the receiving end server via a plurality of network devices. In the embodiments of the present application, when the first access device in the plurality of network devices receives the data packet from the sending end server, the scheme provided by the embodiments of the present application can be triggered to perform congestion detection on the first access device, and then trigger the sending end server to perform speed reduction processing on the data packet when congestion occurs.
[0124] Exemplarily, in a communication scenario based on a TCP protocol, the data packet can be a TCP packet. Exemplarily, in a communication scenario based on an RDMA protocol, the data packet can be an RDMA packet. Hereinafter, the communication scenarios based on the TCP protocol and the communication scenarios based on the RDMA protocol are exemplarily taken as examples to describe the solutions.
[0125] S602, performing congestion detection on the first access device to obtain a congestion detection result.
[0126] The congestion detection result is used to indicate whether the first access device is congested and a data transmission condition when the first access device is congested, such as a buffer occupancy rate, a data transmission rate of the first access device, a data packet transmission rate, a congestion duration, and the like. In some possible implementation, the congestion detection result can include a field used to indicate whether the first access device is congested, such as field #1, which can be indicated by true or false. In some possible implementation, the congestion detection result can further include a field used to indicate the data transmission condition, such as field #2 used to indicate the buffer occupancy rate, field #3 used to indicate the data transmission rate of the first access device, field #4 used to indicate the data packet transmission rate, and field #5 used to indicate the congestion duration. The embodiments of the present application do not make any limitation in this regard.
[0127] The congestion detection process of the first access device is described below based on the following manner one to manner four. The first access device can use any one of the following manner one to manner four to perform the congestion detection to obtain the congestion detection result.
[0128] Manner one, obtaining a buffer occupancy rate of the first access device, and determining whether the buffer occupancy rate exceeds a preset upper limit of occupancy rate. If the buffer occupancy rate exceeds the preset upper limit of occupancy rate, it is determined that the first access device is congested, and a data transmission condition at a current time is obtained. If the buffer occupancy rate does not exceed the preset upper limit of occupancy rate, it is determined that the first access device is not congested.
[0129] The buffer occupancy rate can be an occupancy rate of a queue length. The preset upper limit of occupancy rate is a preset upper threshold, such as 80% or 85% or other upper threshold. The embodiments of the present application do not make any limitation on the value of the preset upper limit of occupancy rate.
[0130] In some possible implementation, the first access device can monitor the buffer occupancy rate of the queue maintained by the first access device in real time, so as to determine whether the buffer occupancy rate exceeds the preset upper limit of occupancy rate, and thus determine whether the first access device is congested. Exemplarily, the queue maintained by the first access device can be a buffer queue allocated by the first access device for a dedicated line tunnel.
[0131] Thus, a congestion detection scheme based on the cache occupancy rate of the first access device is provided, which can quickly and efficiently determine the congestion detection result.
[0132] In a second manner, the data transmission rate of the first access device is obtained, and it is determined whether the data transmission rate exceeds a preset upper limit of the rate. If the data transmission rate exceeds the preset upper limit of the rate, it is determined that the first access device is congested, and the data transmission status at the current time is obtained. If the data transmission rate does not exceed the preset upper limit of the rate, it is determined that the first access device is not congested.
[0133] The data transmission rate is also referred to as traffic rate, and can also be referred to as traffic in some embodiments of the present application. The preset upper limit of the rate is a preset upper threshold, such as 500 Mb / s or other upper thresholds. The value of the preset upper limit of the rate is not limited in the embodiments of the present application.
[0134] In some possible implementation manners, the preset upper limit of the rate can be a traffic threshold parameter of the first access device, such as a committed information rate (CIR) included in a committed access rate (CAR) threshold, a peak information rate (PIR), or the like. The CAR threshold is used to monitor traffic during data flow transmission, to determine whether the traffic exceeds the limit to control the traffic.
[0135] In some possible implementation manners, the first access device can monitor the data transmission rate in the private line tunnel in real time, to determine whether the data transmission rate exceeds the preset upper limit of the rate, and thus determine whether the first access device is congested. Thus, a congestion detection scheme based on the data transmission rate of the first access device is provided, which can quickly and efficiently determine the congestion detection result.
[0136] In a third manner, the first access device is subjected to congestion detection based on a token bucket, to obtain a token bucket detection result, and it is determined whether the token bucket detection result indicates that the first access device is allowed to forward the data packet. If the token bucket detection result indicates that the first access device is not allowed to forward the data packet, it is determined that the first access device is congested, and the data transmission status at the current time is obtained. If the token bucket detection result indicates that the first access device is allowed to forward the data packet, it is determined that the first access device is not congested.
[0137] The token bucket is an internal storage pool of the first access device, and the token is a virtual information packet used to fill the token bucket at a given rate. In some possible implementation manners, the preset traffic upper limit can be a traffic threshold parameter of the first access device, such as a committed burst size (CBS) and a peak burst size (PBS) included in the CAR threshold. The CBS represents the maximum traffic size allowed by the token bucket in each burst. The PBS represents the maximum traffic size allowed by the token bucket for transmitting or forwarding a packet. In some possible implementation manners, the token bucket detection result can be indicated by color marking of the data packet, for example, red for not allowing forwarding, yellow for temporarily not allowing forwarding, green for allowing forwarding.
[0138] In some possible implementation manners, the first access device inputs the data packet into the token bucket, and evaluates the transmission rate of the data packet by using the token bucket. If the transmission rate of the data packet exceeds the preset traffic upper limit, the data packet is marked as red; if the transmission rate of the data packet exceeds the preset traffic upper limit but is within a controllable range, the data packet is marked as yellow; and if the transmission rate of the data packet does not exceed the preset traffic upper limit, the data packet is marked as green.
[0139] Exemplarily, Figure 7 A schematic diagram of congestion detection based on a token bucket is provided for the embodiments of the present application. Referring to FIG. 1, a token bucket is used to evaluate whether the transmission rate of a data packet exceeds a preset traffic upper limit. Figure 7Before the data packet is input into the token bucket, flow classification can be performed, specifically, whether the data packet matches the token bucket is determined according to the port matching rule of the first access device. Wherein, whether the data packet matches the token bucket can be whether the data packet is a data flow corresponding to the first access device, or whether the data packet supports the first access device to perform subsequent speed reduction processing. If matched, the data packet is input into the token bucket for rate evaluation. If not matched, the data packet is forwarded at the original speed. Rate evaluation in the token bucket can be divided into three cases. If the rate exceeds the standard, indicating that the transmission rate of the data packet exceeds the preset upper limit of the flow, the data packet is marked as red. If the rate partially exceeds the standard, indicating that the transmission rate of the data packet exceeds the preset upper limit of the flow but is within a controllable range, such as probabilistic discarding or special packet, the data packet is marked as yellow. If the rate does not exceed the standard, indicating that the transmission rate of the data packet does not exceed the preset upper limit of the flow, the data packet is marked as green. Wherein, the data packet marked as red will be discarded subsequently, the data packet marked as yellow will be re-marked and forwarded subsequently, and the data packet marked as green will be forwarded subsequently.
[0140] Exemplarily, the marking color of the data packet can be used to determine whether the first access device is congested. For example, red and yellow can be used to indicate that the first access device is congested, and green can be used to indicate that the first access device is not congested. In this way, a congestion detection scheme based on a token bucket is provided, which can quickly and efficiently determine the congestion detection result.
[0141] In a fourth mode, the first access device inputs the congestion detection result of the historical time period into a second information prediction model, processes the congestion detection result of the historical time period through the second information prediction model, determines whether the first access device is congested at the current time, and if the first access device is congested at the current time, obtains the data transmission condition at the current time.
[0142] Wherein, the second information prediction model is used to predict whether the first access device is congested. In some possible implementation manners, the second information prediction model can be a neural network model. In this way, by applying a neural network model to predict whether the first access device is congested, not only the efficiency of congestion detection can be ensured, but also the accuracy of congestion detection can be ensured.
[0143] In some embodiments, the initial model can be iteratively trained based on training data to obtain the second information prediction model. The training data can include congestion detection results at multiple time points. It can be understood that, among the congestion detection results at multiple time points, the congestion detection results at the former multiple time points can be used as input data of the model, and the congestion detection results at the latter multiple time points can be used as label data of the input data for model training. In some possible implementation manners, the initial model is a model structure based on a deep neural network.
[0144] In the process of each iteration training, the congestion detection results at the former multiple time points in the training data are input into the model obtained after the last iteration training, and the congestion detection results at the former multiple time points are processed by the model to obtain the prediction result of the current iteration. Based on the prediction result and the congestion detection results at the latter multiple time points in the training data, a model loss value of the current iteration training is determined. The model loss value is used to represent the difference between the prediction result of the model and the congestion detection results at the latter multiple time points. For example, the model loss value can be a mean square error (MSE) loss value, a cross entropy loss value, or other types of model loss values. Then, the model parameters are adjusted according to the model loss value. Based on the model after adjusting the model parameters, the next iteration training is performed until the iteration training meets a target condition. For example, the target condition meets at least one of the following conditions: the number of iterations of model training reaches a target number, or the model loss value is less than or equal to a target threshold. The target number is a pre-set training iteration number, for example, the iteration number reaches 1000. The present embodiment does not limit the setting of the target number. The target threshold is a pre-set fixed threshold, for example, the model loss value is less than 0.0001. The present embodiment does not limit the setting of the target threshold.
[0145] In this way, the second information prediction model obtained by training is also a model structure based on a deep neural network. Further, a congestion detection prediction method based on a deep neural network is provided, which introduces a deep neural network with better feature extraction capability for congestion detection prediction, can more accurately extract the features of the congestion detection results of the historical time period, thereby realizing more comprehensive and accurate congestion detection prediction, and improving the accuracy of congestion detection.
[0146] In the above embodiments, four implementation manners of congestion detection are provided. It should be noted that in other embodiments, the first access device can also use other implementation manners for congestion detection. The present embodiment does not limit this.
[0147] S603, in response to the congestion detection result indicating that the first access device is congested but the data transmission condition is within a preset congestion range, the first access device sends the data packet to the receiving end server.
[0148] The preset congestion range can include at least one of a preset time range, a preset traffic range, and a preset buffer water line range.
[0149] In some embodiments, taking the congestion duration as an example of the data transmission condition, the preset congestion range can be set as the preset time range. Accordingly, in response to the congestion detection result indicating that the first access device is congested but the congestion duration is within the preset time range, the first access device sends the data packet to the receiving end server.
[0150] The preset time range can be one round-trip time (RTT), which refers to the duration of the data packet from the sending end server to the receiving end server and then back to the sending end server.
[0151] In the above embodiments, by setting the preset time range, it can be ensured that there is no packet loss within one round-trip time, which can guarantee the normal forwarding of the data packet and thus the smooth transmission of the data packet to the receiving end server, thereby guaranteeing the normal operation of the communication network.
[0152] In yet some embodiments, taking the cache occupancy rate as an example of the data transmission condition, the preset congestion range can be set as the preset buffer water line. Accordingly, in response to the congestion detection result indicating that the first access device is congested but the cache occupancy rate is within the preset buffer water line range, the first access device sends the data packet to the receiving end server.
[0153] The buffer water line refers to a memory allocation threshold of a memory area, such as 95% or 99% or other thresholds. It should be understood that the value of the preset buffer water line is greater than the value of the preset upper limit of the occupancy rate.
[0154] In the above embodiments, by setting the preset buffer water line, it can be ensured that there is no packet loss when the cache occupancy rate is within the preset buffer water line range, which can guarantee the normal forwarding of the data packet and thus the smooth transmission of the data packet to the receiving end server, thereby guaranteeing the normal operation of the communication network.
[0155] In still some embodiments, taking the data transmission rate of the first access device as an example of the data transmission condition, the preset congestion range can be set as the preset traffic range of the first access device. Accordingly, in response to the congestion detection result indicating that the first access device is congested but the data transmission rate of the first access device is within the preset traffic range of the first access device, the first access device sends the data packet to the receiving end server.
[0156] The preset traffic range of the first access device can be a preset fixed traffic threshold, such as 1000 Mb / s or other upper threshold. It should be understood that the value of the preset traffic range is greater than the value of the preset upper rate limit.
[0157] In some possible implementation manners, in a case where the data transmission rate is determined based on the manner two in S602, the first access device, in response to the congestion detection result indicating that the first access device is congested but the data transmission rate of the first access device is within the preset traffic range of the first access device, can adjust the preset upper rate limit based on the data transmission rate at the current moment, such as adjusting the CIR parameter and the PIR parameter in the CAR threshold, to ensure that the data packet is not subjected to the packet loss processing and is sent to the receiving end server. In this way, the CAR threshold is adaptively adjusted based on the data transmission rate of the first access device at the current moment, and it is ensured that there is no packet loss.
[0158] In other embodiments, taking the transmission rate of the data packet as an example, the preset congestion range can be set as the preset traffic range of the data packet, and accordingly, the first access device, in response to the congestion detection result indicating that the first access device is congested but the transmission rate of the data packet is within the preset traffic range of the data packet, sends the data packet to the receiving end server.
[0159] The preset traffic range of the data packet can be a preset fixed traffic threshold, such as 500 Mb / s or other upper threshold. It should be understood that the value of the preset traffic range is greater than the value of the preset upper traffic limit.
[0160] In some possible implementation manners, in a case where the transmission rate of the data packet is determined based on the manner three in S602, the first access device, in response to the congestion detection result indicating that the first access device is congested but the transmission rate of the data packet is within the preset traffic range of the data packet, can modify the color label of the data packet from red to yellow or green in the token bucket detection result, to ensure that the data packet is not subjected to the packet loss processing and is sent to the receiving end server. In this way, by modifying the color label of the red packet to yellow or green, it is ensured that there is no packet loss.
[0161] The preset congestion range can include one, two or three of the preset time range, the preset traffic range and the preset buffer water line range. For example, in a case where the preset congestion range includes the preset time range and the preset traffic range, the first access device, in response to the congestion detection result indicating that the first access device is congested but the congestion duration is within the preset time range and the transmission rate is within the preset traffic range, sends the data packet to the receiving end server. Other cases are similar and will not be described herein.
[0162] In the above embodiment, by setting the preset congestion range, in the case that the first access device is congested but the data transmission condition is within the preset congestion range, the first access device can be prevented from performing the packet loss processing, the normal forwarding of the data packet can be ensured, the data packet can be smoothly transmitted to the receiving end server, and the normal operation of the communication network can be ensured.
[0163] S604, the first access device triggers the sending end server to perform the speed reduction processing on the data packet based on the data transmission condition.
[0164] In some embodiments, the first access device determines the speed reduction reference information based on the data transmission condition. Then, the first access device triggers the sending end server to perform the speed reduction processing on the data packet based on the speed reduction reference information.
[0165] The speed reduction reference information is positively correlated with the data transmission condition. The following takes the communication scenario based on the TCP protocol and the communication scenario based on the RDMA protocol as examples to describe the scheme.
[0166] In some embodiments, taking the communication scenario based on the TCP protocol as an example, the speed reduction reference information can be a speed reduction probability reference value. The transmission mechanism of the TCP protocol is that, for each go message sent by the sending end server, the receiving end server returns a return message, such as an acknowledge character (ACK) message, to the sending end server after receiving the message to indicate that the received message is correct. Therefore, by using the transmission characteristics of the TCP protocol, the embodiment of the present application provides a scheme of probabilistically marking the return message by the first access device to inform the sending end server to reduce speed.
[0167] In the embodiment of the present application, the speed reduction probability reference value is used to indicate the marking ratio of the return message, and is ultimately used to indicate the degree of speed reduction processing of the sending end server on the data packet. It should be understood that the greater the congestion degree indicated by the data transmission condition, the greater the value of the speed reduction probability reference value.
[0168] In other embodiments, taking the communication scenario based on the RDMA protocol as an example, the speed reduction reference information can be the number of congestion notification messages. The transmission mechanism of the RDMA protocol is that, after the sending end server sends all the go messages, the receiving end server returns a return message to the sending end server, and in some cases, no return message is returned. Therefore, by using the transmission characteristics of the RDMA protocol, the embodiment of the present application provides a scheme of actively constructing a congestion notification message (such as a CNP message) by the first access device to inform the sending end server to reduce speed.
[0169] In the embodiments of the present application, the number of congestion notification messages is used to indicate the number of CNP messages, and finally used to indicate the degree of speed reduction processing of the sending end server on the data message. It should be understood that the greater the congestion degree indicated by the data transmission status, the greater the number of congestion notification messages.
[0170] In this way, two ways of triggering the sending end server to perform speed reduction processing on the data message by the first access device are provided. Among them, the speed reduction reference information is determined according to the data transmission status indicated by the congestion detection result, which can determine the speed reduction reference information suitable for the congestion situation at the current time in real time. Then, the sending end server is triggered to perform speed reduction processing on the data message by using the speed reduction reference information determined in real time, which can improve the accuracy of the sending end server performing speed reduction processing.
[0171] The process of determining the speed reduction reference information by the first access device based on the data transmission status will be described below based on the following ways one to three. Among them, the first access device can use any one of the following ways one to three to determine the speed reduction reference information.
[0172] Way one, the first access device determines the speed reduction reference information based on the data transmission status and the first mapping relationship.
[0173] Among them, the first mapping relationship is used to indicate the linear mapping relationship between the data transmission status and the speed reduction reference information. In some possible implementation ways, the first mapping relationship can be in the form of a data table. Of course, in other possible implementation ways, the first mapping relationship can also be in other forms, such as a curve. The embodiments of the present application do not limit this. In this way, by presetting the linear mapping relationship between the data transmission status and the speed reduction reference information, the speed reduction reference information corresponding to the data transmission status can be quickly and efficiently determined.
[0174] In some possible implementation ways, taking the cache occupancy rate of the first access device as an example, the first access device can determine the speed reduction reference information corresponding to the cache occupancy rate from the first mapping relationship based on the cache occupancy rate of the first access device.
[0175] Exemplarily, taking the cache occupancy rate as the queue length occupancy rate for example, the first mapping relationship can be as shown in Table 1, which shows the speed reduction probability reference value and the number of congestion notification messages corresponding to the queue length occupancy rate of different sizes.
[0176] Table 1
[0177] Queue length occupancy Slowdown probability reference value Number of congestion notification packets Below 20% 0, i.e. no marking 0 20%-30% 20% 20 30%-40% 30% 30 40%-50% 40% 40 …… …… …… Above 80% 100%, i.e. full marking 100
[0178] Referring to Table 1, if the queue length occupancy is less than 20%, the speed reduction probability reference value is determined as 0, and the number of congestion notification packets is 0. It can be understood that the speed reduction probability reference value of 0 means that no backhaul packet of the TCP packet is marked, i.e., no marking. The number of congestion notification packets of 0 means that no CNP packet is sent to the sending end server. If the queue length occupancy is greater than or equal to 20% and less than 30%, the speed reduction probability reference value is determined as 20%, and the number of congestion notification packets is 20. If the queue length occupancy is greater than or equal to 30% and less than 40%, the speed reduction probability reference value is determined as 30%, and the number of congestion notification packets is 30. If the queue length occupancy is greater than or equal to 40% and less than 50%, the speed reduction probability reference value is determined as 40%, and the number of congestion notification packets is 40. Similarly, it is not described again. If the queue length occupancy is greater than 80%, the speed reduction probability reference value is determined as 100%, and the number of congestion notification packets is 100. It can be understood that the speed reduction probability reference value of 100% means that all backhaul packets of the TCP packet are marked, i.e., full marking. The number of congestion notification packets of 100 means that 100 CNP packets are sent to the sending end server.
[0179] In this way, the first access device (such as the forwarding plane of the first access device) can determine the speed reduction probability reference value and the number of congestion notification packets corresponding to the queue length occupancy by table lookup, and the speed reduction reference information can be quickly and efficiently determined.
[0180] In Table 1, the queue length occupancy can reflect the depth of the queue length. It can be understood that Table 1 is used to pre-set the speed reduction probability reference value and the number of congestion notification packets corresponding to the depth of the queue length according to the depth of the queue length. In other possible implementation manners, the speed reduction probability reference value and the number of congestion notification packets can also be determined in combination with the change of the queue length. For example, in the case of an increase in the queue length, if the queue length is shallow, a small number of backhaul packets can be marked or a small number of CNP packets can be sent to prevent misjudgment of the congestion state; if the queue length is deep, a large number of backhaul packets can be marked or a large number of CNP packets can be sent to quickly relieve the queue congestion and reduce the forwarding delay. In the case of a decrease in the queue length, if the queue length is shallow, no backhaul packet can be marked or no CNP packet can be sent to prevent excessive speed reduction from causing a decrease in throughput; if the queue length is deep, a small number of backhaul packets can be marked or a small number of CNP packets can be sent to relieve the queue congestion while ensuring the throughput and delay performance as much as possible. In the case of a small jitter of the queue length burst, it can be considered that a micro-burst scenario occurs, and no backhaul packet is marked or no CNP packet is sent to prevent excessive speed reduction.
[0181] In some possible implementation, the first access device determines the speed-down reference information corresponding to the data transmission rate of the first access device based on the first mapping relationship.
[0182] For example, the data transmission rate of the first access device can be represented by the ratio of the out rate R out and the in rate R in , and the speed-down reference information corresponding to the ratio is determined from the first mapping relationship. As shown in Table 2, the speed-down probability reference value and the number of congestion notification packets corresponding to different values of the out rate / in rate are shown.
[0183] Table 2
[0184] Out rate / in rate Slowdown probability reference value Number of congestion notification packets Below 110% 0, i.e. no marking 0 120%-130% 20% 20 130%-140% 30% 30 140%-150% 40% 40 …… …… …… Above 180 100%, i.e. full marking 100
[0185] Referring to Table 2, if the out rate / in rate is less than 110%, the speed-down probability reference value is determined to be 0 and the number of congestion notification packets is determined to be 0. If the out rate / in rate is greater than or equal to 120% and less than 130%, the speed-down probability reference value is determined to be 20% and the number of congestion notification packets is determined to be 20. If the queue length occupancy is greater than or equal to 130% and less than 140%, the speed-down probability reference value is determined to be 30% and the number of congestion notification packets is determined to be 30. If the queue length occupancy is greater than or equal to 140% and less than 150%, the speed-down probability reference value is determined to be 40% and the number of congestion notification packets is determined to be 40. Similarly, the above is not repeated. If the queue length occupancy is greater than 180%, the speed-down probability reference value is determined to be 100% and the number of congestion notification packets is determined to be 100.
[0186] In this way, the first access device (for example, the forwarding plane of the first access device) can determine the speed-down probability reference value and the number of congestion notification packets corresponding to the out rate / in rate by table lookup, and can quickly and efficiently determine the speed-down reference information.
[0187] In a second manner, the first access device determines the speed-down reference information based on the data transmission condition and a second mapping relationship.
[0188] The second mapping relationship is used to indicate a nonlinear mapping relationship between the data transmission condition and the speed-down reference information. In some possible implementation, the second mapping relationship can be in the form of a nonlinear formula. Of course, in another possible implementation, the second mapping relationship can also be in other forms, such as a curve. The embodiments of the present application do not limit this. In this way, by presetting the nonlinear mapping relationship between the data transmission condition and the speed-down reference information, the speed-down reference information corresponding to the data transmission condition can be determined in real time, and the accuracy of determining the speed-down reference information is improved.
[0189] In some possible implementation manners, taking the buffer occupancy of the first access device as an example, the first access device can calculate the probability reference value of the speed reduction based on the buffer occupancy of the first access device, the high threshold value of the buffer, the low threshold value of the buffer, and the following formula (1).
[0190]
[0191] In the formula, p represents the probability reference value of the speed reduction; n t represents the buffer occupancy at the current moment, such as the occupancy of the queue length at the current moment; n min represents the low threshold value of the buffer, such as the low threshold value of the occupancy of the queue length, which is a fixed value preset in advance; n ma x represents the high threshold value of the buffer, such as the high threshold value of the occupancy of the queue length, which is a fixed value preset in advance; p thre represents a sensitivity parameter, which is usually an adjustable constant.
[0192] In the above formula (1), if the occupancy of the queue length at the current moment is less than the low threshold value of the occupancy of the queue length, it indicates that the buffer occupancy of the first access device at the current moment is low, and the probability reference value of the speed reduction is determined as 0, that is, no marking processing needs to be performed. If the occupancy of the queue length at the current moment is greater than the low threshold value of the occupancy of the queue length and less than the high threshold value of the occupancy of the queue length, it indicates that the buffer occupancy of the first access device at the current moment is medium, and the probability reference value of the speed reduction can be adaptively calculated according to the sensitivity parameter and the probability reference value of the speed reduction is executed. If the occupancy of the queue length at the current moment is greater than the high threshold value of the occupancy of the queue length, it indicates that the buffer occupancy of the first access device at the current moment is high, and the probability reference value of the speed reduction is determined as 1, that is, all marking processing needs to be performed.
[0193] In this way, based on the above formula (1), the probability reference value of the speed reduction can be quickly and efficiently determined by using the buffer occupancy of the first access device. The high threshold value of the buffer and the low threshold value of the buffer are referred to for calculating the probability reference value of the speed reduction corresponding to the buffer occupancy at different moments, the probability reference value of the speed reduction at different moments can be calculated in real time, and the accuracy of determining the probability reference value of the speed reduction is improved.
[0194] In some possible implementation manners, taking the buffer occupancy of the first access device as an example, the first access device can calculate the number of congestion notification messages based on the buffer occupancy of the first access device, the high threshold value of the buffer, the low threshold value of the buffer, and the following formula (2).
[0195]
[0196] In the formula, p represents the number of congestion notification messages; nt represents the buffer occupancy at the current time, such as the occupancy of the queue length at the current time; n min represents the low threshold value of the buffer occupancy, such as the low threshold value of the occupancy of the queue length, which is a fixed value set in advance; n max represents the high threshold value of the buffer occupancy, such as the high threshold value of the occupancy of the queue length, which is a fixed value set in advance; p thre represents a sensitivity parameter, which is usually an adjustable constant.
[0197] In the above formula (2), if the occupancy of the queue length at the current time is less than the low threshold value of the occupancy of the queue length, it indicates that the buffer occupancy of the first access device at the current time is low, and the number of congestion notification packets is determined to be 0, that is, no CNP packet needs to be sent. If the occupancy of the queue length at the current time is greater than the low threshold value of the occupancy of the queue length and less than the high threshold value of the occupancy of the queue length, it indicates that the buffer occupancy of the first access device at the current time is medium, and the number of congestion notification packets can be adaptively calculated according to the sensitivity parameter and triggered to send a corresponding number of CNP packets. If the occupancy of the queue length at the current time is greater than the high threshold value of the occupancy of the queue length, it indicates that the buffer occupancy of the first access device at the current time is high, and the number of congestion notification packets is determined to be 100, that is, 100 CNP packets are sent.
[0198] In this way, based on the above formula (2), the number of congestion notification packets can be quickly and efficiently determined using the buffer occupancy of the first access device. The number of congestion notification packets at different times is calculated by referring to the high threshold value of the buffer occupancy and the low threshold value of the buffer occupancy, which can real-time calculate the number of congestion notification packets at different times, and improve the accuracy of determining the number of congestion notification packets.
[0199] In the embodiments of the present application, the reference value of the speed reduction probability can be real-time calculated according to the above formula (1), and the number of congestion notification packets can be real-time calculated according to the above formula (2), so that the first access device can gradually increase or decrease the reference value of the speed reduction probability and the number of congestion notification packets according to the data transmission condition, and the accuracy of determining the speed reduction reference information is improved.
[0200] In addition, taking the data transmission rate of the first access device as an example, the first access device can also complete the design of the nonlinear formula according to the data transmission rate of the first access device and the corresponding coefficient, which will not be described here.
[0201] Option three, the first access device inputs the data transmission condition into the first information prediction model, processes the data transmission condition through the first information prediction model, and obtains the speed reduction reference information.
[0202] The first information prediction model is used to predict the speed reduction reference information. In some possible implementation manners, the first information prediction model can be a neural network model. In this way, the speed reduction reference information corresponding to the data transmission condition is predicted by the first information prediction model, and the accuracy of determining the speed reduction reference information is improved.
[0203] Exemplarily, Figure 8 A schematic diagram of predicting speed reduction reference information based on multi-factor flow modeling is provided for the embodiments of the present application. Referring to Figure 8 , taking an example of a sending end server forwarding data packets to a receiving end server via four network devices A, B, C, and D, wherein the network device A is the first access device.
[0204] The first information prediction model can be a user service flow model provided by the first access device. Before implementing the present solution, model training can be performed on the first access device based on a training data set to train the above-mentioned first information prediction model. The training data set can include data transmission conditions (such as transmission rates) at different time points and real label probabilities and real packet numbers corresponding to the data transmission conditions. The real label probability refers to the actual speed reduction probability reference value, and the real packet number refers to the number of congestion notification packets in the actual situation.
[0205] For a communication scenario based on the TCP protocol, the first access device can obtain the data transmission condition (such as the transmission rate, i.e., the data flow size as shown in Figure 8 ) indicated by the congestion detection result of the TCP packet, input the data transmission condition of the TCP packet into the first information prediction model, and process the data transmission condition of the TCP packet by the first information prediction model to obtain the speed reduction probability reference value of the TCP packet.
[0206] Further, the first access device can also collect TCP congestion information such as the receive window, the congestion window, and the congestion mark, and input the data transmission condition of the TCP packet and the above-mentioned information into the first information prediction model, and process the above-mentioned information by the first information prediction model to obtain the speed reduction probability reference value of the TCP packet.
[0207] The receiving window is used to represent the data receiving capability of the receiving end server, and can be represented by rwnd. It should be understood that the larger the value of the receiving window, the stronger the data receiving capability of the receiving end server. The congestion window is used to represent the data transmission capability of the current communication network, and can be represented by cwnd. It should be understood that the larger the value of the congestion window, the stronger the data transmission capability of the communication network. The congestion mark is a mark obtained by marking the backhaul packet of the TCP packet, and is used to feed back the congestion information to the sending end server. For example, the congestion mark can be ECE-flag or CWR-flag.
[0208] In this way, the amount of information referred to for predicting the reference value of the speed reduction probability based on the first information prediction model is increased, which can effectively improve the accuracy of determining the reference value of the speed reduction probability.
[0209] For a communication scenario based on the RDMA protocol, the first access device can obtain a data transmission condition, such as a transmission rate, indicated by the congestion detection result of the RDMA packet, input the data transmission condition of the RDMA packet into the first information prediction model, process the data transmission condition of the RDMA packet through the first information prediction model, and obtain the number of congestion notification packets of the RDMA packet.
[0210] Further, the first access device can also collect RDMA congestion information such as CNP packet time intervals and network card speed-up time intervals, and input the RDMA packet data transmission condition into the first information prediction model together, process the above information through the first information prediction model, and obtain the number of congestion notification packets of the RDMA packet.
[0211] The CNP packet time interval refers to the sending time interval of the CNP packet, that is, the time interval from the first access device to the sending end server. The network card speed-up time interval refers to the time interval of the speed-up of the first access device.
[0212] In this way, the amount of information referred to for predicting the number of congestion notification packets based on the first information prediction model is increased, which can effectively improve the accuracy of determining the number of congestion notification packets.
[0213] In some embodiments, the first information prediction model can include a TCP prediction model and an RDMA prediction model. The TCP prediction model is used to predict the reference value of the speed reduction probability of the TCP packet. The RDMA prediction model is used to predict the number of congestion notification packets of the RDMA packet.
[0214] In the above embodiments, by setting the first information prediction model, the speed reduction reference information can be predicted in real time according to the congestion detection result at the current moment, and the accuracy of determining the speed reduction reference information is improved.
[0215] The technical scheme provided by the embodiments of the present application can enable the first access device, as the first network device for providing the routing and forwarding function between the sending end server and the receiving end server, to receive the data packet first and perform congestion detection on the data packet, during the process in which the sending end server sends the data packet to the receiving end server. It can be seen that, based on the first access device performing the congestion detection, the congestion detection on the data packet can be triggered at the initial stage of the data packet transmission. Furthermore, by setting the preset congestion range, the normal forwarding of the data packet can be guaranteed to successfully transmit to the receiving end server in the case where the first access device is congested but the data transmission condition is within the preset congestion range, so as to avoid the first access device performing the packet loss processing, which can effectively reduce the packet loss rate, thereby guaranteeing the normal operation of the communication network. Moreover, based on the first access device being able to timely trigger the sending end server to perform the speed reduction processing on the data packet, the speed reduction processing on the data packet can be triggered at the initial stage of the data packet transmission, without the need to pass through other network devices after the first access device, so that at least one round trip time can be saved, the time required for the speed reduction processing is shortened, effective congestion control can be provided, and the normal operation of the communication network is guaranteed.
[0216] Figure 9 Another flowchart of a communication method provided by the embodiments of the present application is shown. Figure 9 The communication process is described by taking the interaction process among the sending end server, the first access device and the receiving end server as an example. In the embodiments of the present application, Figure 9 The communication method shown in the above figure can be applied to a communication scenario based on the TCP protocol. Referring to Figure 9 , the method comprises the following S901-S910:
[0217] S901, the first access device receives a data packet from a sending end server.
[0218] It should be noted that the content of S901 can refer to the content shown in S601 in the above Figure 6 , and will not be described in detail.
[0219] S902, the first access device obtains packet information of the data packet.
[0220] In the embodiments of the present application, the packet information of the data packet refers to the flow five-tuple information of the TCP packet, which can comprise a source Internet Protocol (IP) address, a destination IP address, a source port, a destination port and a transport layer protocol. It can be understood that the flow five-tuple information of the data packet is usually used to identify a TCP packet during the transmission process of the TCP packet.
[0221] In some possible implementation manners, after the first access device obtains the packet information of the data packet, the first access device can establish a data flow table according to the packet information of the data packet, so as to subsequently obtain address information and a forwarding path of the data packet according to the data flow table. For example, a RoCEv2 flow table can be established for a RoCEv2 packet.
[0222] S903, the first access device performs congestion detection based on the data packet, and obtains a congestion detection result.
[0223] It is worth noting that the content about S903 can refer to the content shown in S602 in the above Figure 6 embodiment, which will not be described herein again.
[0224] S904, the first access device sends the data packet to the receiving end server in response to the congestion detection result indicating that the first access device is congested but the data transmission condition is within a preset congestion range.
[0225] The above S904 takes the first access device being congested but the data transmission condition being within the preset congestion range as an example to describe the scheme. In some other embodiments, the first access device sends the data packet to the receiving end server in response to the congestion detection result indicating that the first access device is not congested. In some other embodiments, the first access device does not send the data packet to the receiving end server in response to the congestion detection result indicating that the first access device is congested and the data transmission condition is not within the preset congestion range. In addition, the preset congestion range related to the embodiments of the present application can be set with a value of the preset congestion range when the first access device (for example, a controller of the first access device) creates a private line tunnel, and the value of the preset congestion range is delivered through a protocol. For example, the value of the preset congestion range can be delivered through a network configuration protocol (NETCONF), a border gateway protocol (BGP), or a path computation element protocol (PCEP).
[0226] The NETCONF provides a set of protocols for communication between a network management and network devices, so that the network management can perform operations such as issuing, modifying, and deleting configurations of remote devices through the NETCONF. The BGP is a routing protocol used to exchange network layer reachability information (NLRI) between routing domains. The PCEP is a TCP-based protocol used to manage PCEP sessions and send paths for multi-domain traffic engineering requests.
[0227] In some possible implementation manners, taking an example of a preset congestion range value being issued through BGP, a field of the preset congestion range can be added in the BGP message, and the value of the preset congestion range is carried in the added field.
[0228] The BGP message can be provided with a segment routing (SR) policy (Policy) address family, for example, a BGPSR Policy address family, which supports the issuance of an SR Policy tunnel path. The SR is a network forwarding protocol designed based on the concept of source routing, which supports inserting forwarding operation instructions into a message at the starting point of a path to guide the forwarding of the message in the network, thereby realizing network programmability. An address family is a set of addresses used by a protocol family. In some possible implementation manners, the SR divides a network path into segments, and assigns segment identifiers (IDs) to the segments and forwarding nodes in the network. By sequentially arranging the segments and the network nodes (Segment List), an SR Policy tunnel path can be obtained.
[0229] When issuing the SR Policy tunnel path, the SR Policy tunnel path can be announced by using an address family identifier (AFI) and a subsequent address family identifier (SAFI) defined in a file (draft-ietf-idr-segment-routing-te-policy) of the SR Policy. For example, the BGPSR Policy address family can be encoded by using (AFI = 1 / 2, SAFI = 73).
[0230] For example, Figure 10 A content schematic diagram of a BGP message provided by an embodiment of the present application is provided. Referring to Figure 10 The content of the BGP message can include the definition of an NLRI in the SR Policy SAFI, attribute information of a tunnel to be established, and attribute information of at least one candidate path included in the tunnel.
[0231] The definition of the NLRI can include NLRI length, a discriminator, a policy color, and endpoint information. In some possible implementation manners, the NLRI length can occupy one octet in the BGP message. The discriminator can occupy four octets in the BGP message. The policy color can occupy four octets in the BGP message. The endpoint can occupy four octets or 16 octets in the BGP message.
[0232] The attribute information of the tunnel to be established is encoded in the tunnel encapsulation attribute defined in [RFC9012], using a new tunnel type of SR Policy type, code point 15.
[0233] The attribute information of the candidate path can include tunnel encapsulation attribute, tunnel type, binding relationship, priority, precedence, policy name, candidate path name, policy name, and segment ordering, etc. The binding relationship can include the binding relationship between the security identifier (security identifiers, SID), such as the binding SID as shown in Figure 10 , and the binding relationship between the segment routing over IPv6 (segment routing over IPv6, SRv6) and the SID, such as the SRv6 binding SID as shown in Figure 10 . The policy name can be an explicit null label policy (explicit null label policy, ENLP) as shown in Figure 10 . The segment ordering can be used to indicate the respective segments and the weight of the segments.
[0234] In some possible implementation manners, taking the preset congestion range and the preset time range as an example, a threshold time field, such as a sub-sub-tlv field, can be added in the SR Policy Sub-TLVs of the BGP message to add the preset time range. Exemplarily, Figure 11 is a schematic diagram of attribute information of a preset time range provided by an embodiment of the present application. Referring to Figure 11 , the attribute information of the preset congestion range can include type, length, flag, reserved area, threshold time, wherein the threshold time can be 4 octets.
[0235] In other possible implementation manners, taking the numerical value of the preset congestion range issued through the PCEP as an example, a field of the preset congestion range can be added in the PCEP message, and the numerical value of the preset congestion range is carried in the added field.
[0236] The PCEP can update the SR-TE policy by sending a PCUpd message, and the first access device needs to carry path information in an explicit route object (ERO) of the PCUpd message when issuing tunnel information. For example, in a preset congestion range and a preset time range, the first access device can add a threshold time field in an SRv6-ERO Subobject of the ERO, such as adding a preset time range in a sub-sub-tlv field.
[0237] In the above embodiments, two ways of issuing a preset congestion range are provided, so as to ensure no packet loss during congestion by using the issued preset congestion range subsequently.
[0238] S905, the first access device determines a speed reduction probability reference value based on the data transmission condition.
[0239] It is worth noting that the content about S905 can refer to the content shown in S604 in the above Figure 6 embodiment, which will not be repeated here.
[0240] S906, the first access device receives a backhaul packet from a receiving end server.
[0241] The backhaul packet is a response packet returned by the receiving end server to the sending end server, such as an ACK packet.
[0242] S907, the first access device obtains the backhaul packet of the data packet from the backhaul packet from the receiving end server based on the packet information of the data packet.
[0243] In some possible implementation manners, after the first access device establishes a data flow table according to the packet information of the data packet, the first access device can obtain the backhaul packet of the data packet from the backhaul packet from the receiving end server according to the data flow table. In this way, the backhaul packet of the current data packet can be obtained from all backhaul packets. Further, the probabilistic marking for the same data packet (or the same data flow) can be implemented, and further the speed reduction processing for the same data packet can be implemented subsequently.
[0244] S908, the first access device performs marking processing on the backhaul packet of the data packet according to the speed reduction probability reference value.
[0245] In the embodiment of the application, the speed reduction probability reference value is used to indicate the marking proportion of the backhaul packet. The marking processing is used to add a congestion mark to the backhaul packet. The congestion mark is used to feed back congestion information to the sending end server. For example, the congestion mark can be a field, such as indicating whether congestion occurs by true or false.
[0246] In some possible implementation manners, the first access device selects the marked proportion of backhaul messages from the backhaul messages of the data message, and performs marking processing on the marked proportion of backhaul messages, thereby completing the probabilistic marking processing on the backhaul messages. For example, assuming that the speed reduction probability reference value is 20%, 20% of the backhaul messages of the data message are marked.
[0247] In the embodiments shown in S906 to S908, the first access device performs marking processing on the backhaul messages of the data message from the receiving end server according to the speed reduction probability reference value, to obtain the marked backhaul messages.
[0248] S909, the first access device sends the marked backhaul messages to the sending end server.
[0249] The marked backhaul messages are used to trigger the sending end server to perform speed reduction processing on the data message.
[0250] S910, the sending end server receives the marked backhaul messages from the first access device, and performs speed reduction processing on the data message.
[0251] For example, Figure 12 An example of triggering speed reduction processing in a TCP scenario is provided in the embodiments of the present application. Referring to Figure 12 For example, the sending end server forwards the data message to the receiving end server via four network devices A, B, C and D, where the A network device is the first access device.
[0252] In the process of forwarding the data message to the receiving end server via the four network devices A, B, C and D, the A network device can calculate a speed reduction probability reference value according to the congestion situation (such as congestion detection result) at the current time after receiving the data message. It can be understood that in the transmission scenario of the TCP message, the TCP message can be divided into multiple TCP message segments, and each TCP message segment has a sequence number (sequence number, SEQ) for indicating the sequence of the TCP message segment in the transmission process, so that the sending end server numbers and sends the message segments by using the sequence number, and the receiving end server reorders the message segments by using the sequence number to ensure the correct order of data. For example, Figure 12 As shown in the figure, the data message can be represented as SEQ=101, DATA.
[0253] Further, after receiving the ACK message (i.e. backhaul message) returned by the receiving end server, the A network device can intercept the ACK message of the current data message, and mark the ACK message with a congestion mark (e.g. ECE flag) according to the reference value of the probability of speed reduction. Then, the marked ACK message is sent to the sending end server, such as ACK = 1, ack = 101, ECE flag = 1 as shown in the following table, so that the sending end server can perform speed reduction processing based on the marking ratio of the received ACK message. In this way, the marking probability of the backhaul message can be calculated in real time based on the congestion condition of the TCP uplink message, thereby realizing the scheme of triggering speed reduction processing in the TCP scenario. Figure 12
[0254] In the embodiments of the present application, the receiving end server returns the backhaul message to the sending end server, and the reference value of the probability of speed reduction is used to mark the backhaul message, so that the marked backhaul message can reflect the reference value of the probability of speed reduction, such as the proportion of the backhaul message with congestion mark among all backhaul messages, i.e. the reference value of the probability of speed reduction. Further, the marked backhaul message can be used to trigger the sending end server to perform speed reduction processing on the data message, thereby providing a scheme of triggering speed reduction processing based on the probability marking of the backhaul message.
[0255] For example, Figure 13 A flowchart of a communication method based on TCP is provided in the embodiments of the present application. Referring to Figure 13 For example, a dedicated line tunnel A-B-C-D-E of a wide area network is taken as an example, where A, B, C, D and E are devices for providing routing and forwarding functions in the dedicated line tunnel, and the routing and forwarding functions of A, B, C, D and E can realize data transmission from the sending end server to the receiving end server. Wherein, the A network device is the first access device of the wide area network, i.e. the Ingress node.
[0256] The flow of the communication method based on TCP is introduced below taking the Ingress node as the execution subject, which can include the following four steps:
[0257] Step 1: The Ingress node performs congestion detection and senses congestion without packet loss.
[0258] In some possible implementation manners, the Ingress node can monitor the service traffic in the dedicated line tunnel in real time. As the service traffic of the sending end server gradually increases, if the Ingress node monitors that the traffic exceeds the limit (such as exceeding the dedicated line bandwidth of 100M) but is still within the preset congestion range (such as within a certain time threshold range, within a certain traffic threshold range or within a certain buffer water line range), the data message is not lost and is forwarded normally.
[0259] Step 2: The ingress node calculates a speed reduction probability reference value based on the data transmission condition.
[0260] In some possible implementations, after the ingress node detects that the traffic is over the limit, the ingress node acquires the flow five-tuple information of the service traffic in the private line tunnel to generate a data flow table, and then distributes the generated data flow table to the forwarding plane of the ingress node. Moreover, the ingress node calculates a speed reduction probability reference value in real time based on the degree of traffic over the limit.
[0261] Exemplarily, the flow five-tuple information of all service traffic in the private line tunnel can be acquired, or the flow five-tuple information of large service traffic in the private line tunnel can be acquired, such as selecting N large flows. It can be understood that there can be multiple sending end servers, and the large service traffic has a great impact on congestion, so selecting the large service traffic to perform subsequent speed reduction processing can also achieve the effect of congestion control.
[0262] Step 3: The ingress node intercepts a backhaul packet based on the data flow table and probabilistically sets a congestion mark based on the speed reduction probability reference value.
[0263] In some possible implementations, the forwarding plane of the ingress node can probabilistically intercept a backhaul packet such as an ACK packet according to the data flow table and the speed reduction probability reference value, and probabilistically set a congestion mark ECE-flag.
[0264] Step 4: The sending end server adjusts the sending rate according to the proportion of the congestion mark.
[0265] In some possible implementations, the sending end server receives an ACK packet, and adjusts the sending rate according to the proportion of the ECE-flag carried in the ACK packet in combination with the TCP congestion control algorithm of the sending end server.
[0266] In the above embodiments, the end-to-network linkage based on TCP is implemented, which not only can timely notify the sending end server to perform speed reduction processing, but also can guarantee that the service is not packet loss, and the throughput of the private line service is improved.
[0267] The technical scheme provided by the embodiments of the present application can enable the first access device, as the first network device for providing the routing and forwarding function between the sending end server and the receiving end server, to first receive the data message and perform congestion detection on the data message, during the process in which the sending end server sends the data message to the receiving end server. It can be seen that, based on the first access device performing the congestion detection, the congestion detection on the data message can be triggered at the initial stage of the data message transmission. Furthermore, by setting the preset congestion range, the normal forwarding of the data message can be guaranteed to successfully transmit to the receiving end server in the case that the first access device is congested but the data transmission condition is within the preset congestion range, so as to avoid the first access device performing the packet loss processing, which can effectively reduce the packet loss rate, thereby guaranteeing the normal operation of the communication network. Moreover, based on the first access device being able to timely trigger the sending end server to perform the speed reduction processing on the data message, the speed reduction processing on the data message can be triggered at the initial stage of the data message transmission, without the need to pass through other network devices after the first access device, so that at least one round trip time can be saved, the time required for the speed reduction processing is shortened, effective congestion control can be provided, and the normal operation of the communication network is guaranteed.
[0268] Figure 14 A flowchart of another communication method provided by the embodiments of the present application is shown. Figure 14 The communication process is described by taking the interaction process between the sending end server and the first access device as an example. In the embodiments of the present application, Figure 14 The communication method shown in the figure can be applied to a communication scenario based on the RDMA protocol. Referring to Figure 14 , the method comprises the following S1401-S1408:
[0269] S1401, the first access device receives a data message from the sending end server.
[0270] It is worth noting that the content of S1401 is described above in the content of S601, and will not be repeated here.
[0271] S1402, the first access device obtains message information of the data message.
[0272] The message information of the data message can include flow quintuple information and a destination queue pair (Dest QP) of an RDMA message, and the flow quintuple information can include a source IP address, a destination IP address, a source port, a destination port and a transport layer protocol. The Dest QP is used to identify an RDMA message. It can be understood that the flow quintuple information and the Dest QP of the data message are usually used to identify an RDMA message during the transmission of the RDMA message.
[0273] S1403, the first access device performs congestion detection based on the data packet, and obtains a congestion detection result.
[0274] It is worth noting that the content of S1403 can refer to the content shown in S602 in the above Figure 6 , and will not be repeated here.
[0275] S1404, the first access device sends the data packet to the receiving end server in response to the congestion detection result indicating that the first access device is congested but the data transmission condition is within a preset congestion range.
[0276] It is worth noting that the content of S1404 can refer to the content shown in S603 in the above Figure 6 and the content shown in S904 in the above Figure 9 , and will not be repeated here.
[0277] S1405, the first access device determines the number of congestion notification packets based on the data transmission condition.
[0278] It is worth noting that the content of S1405 can refer to the content shown in S604 in the above Figure 6 , and will not be repeated here.
[0279] S1406, the first access device determines the communication address of the sending end server based on the packet information of the data packet, and constructs the number of congestion notification packets of the data packet.
[0280] It can be understood that since the first access device is the nearest network device to the sending end server, it can conveniently obtain the communication address of the sending end server, which provides a basis for communication between the first access device and the sending end server, so as to realize that the first access device actively triggers the sending end server to perform speed reduction processing on the data packet.
[0281] S1407, the first access device sends the number of congestion notification packets to the sending end server based on the communication address of the sending end server.
[0282] The above embodiments shown in S1406 to S1407, the first access device sends the number of congestion notification packets of the data packet to the sending end server, and the number of congestion notification packets is used to trigger the sending end server to perform speed reduction processing on the data packet.
[0283] S1408, the sending end server receives the number of congestion notification packets from the first access device, and performs speed reduction processing on the data packet.
[0284] Exemplarily, Figure 15A schematic diagram of triggering speed reduction processing in an RDMA scenario is provided in the embodiments of the present application. Referring to Figure 15 Taking an example of a sending server forwarding a data packet to a receiving server via four network devices A, B, C, and D, the A network device is also the first access device.
[0285] In the process of the sending server forwarding the data packet to the receiving server via the four network devices A, B, C, and D, the A network device can calculate the number of congestion notification packets according to the congestion situation (such as congestion detection results) at the current time after receiving the data packet. As shown in Figure 15 The data packet can be represented as SEQ = 101, DATA.
[0286] Further, the A network device can construct the number of congestion notification packets, such as CNP packets, according to the number of congestion notification packets, and then send the constructed congestion notification packets to the sending server, so that the sending server can subsequently perform speed reduction processing based on the number of received congestion notification packets. In this way, the number of congestion notification packets can be calculated in real time based on the congestion situation of the RDMA uplink packet, thereby realizing the scheme of triggering speed reduction processing in the RDMA scenario.
[0287] In the embodiments of the present application, a way is provided in which the first access device actively sends congestion notification packets to trigger the sending server to perform speed reduction processing on the data packet.
[0288] Exemplarily, Figure 16 A flowchart of a communication method based on RDMA is provided in the embodiments of the present application. Referring to Figure 16 Taking a wide area network private line tunnel A-B-C-D-E as an example, A, B, C, D, and E refer to devices in the private line tunnel for providing routing and forwarding functions, and the routing and forwarding functions based on A, B, C, D, and E can realize data transmission from a sending server to a receiving server. Among them, the A network device is the first access device of the wide area network, that is, the Ingress node.
[0289] Next, the flow of the communication method based on RDMA is introduced taking the Ingress node as the execution subject, which can include the following four steps:
[0290] Step 1: The Ingress node performs congestion detection and senses congestion without packet loss.
[0291] Step 2: The Ingress node calculates the number of CNP packets based on the data transmission condition.
[0292] In some possible implementation manners, after the Ingress node monitors that the traffic is out of limit, the Ingress node acquires the flow quintuple information and the Dest QP of the service traffic in the private line tunnel, generates a data flow table, and then sends the generated data flow table to a forwarding plane of the Ingress node. Moreover, the number of CNP packets is calculated in real time based on the degree of traffic out of limit.
[0293] Step 3: The Ingress node constructs a CNP packet based on the data flow table and sends the CNP packet to the sending server.
[0294] In some possible implementation manners, the forwarding plane of the Ingress node can construct a CNP packet based on the data flow table and the number of CNP packets, and periodically send the CNP packet.
[0295] Step 4: The sending server adjusts the sending rate according to the number of CNP packets.
[0296] In some possible implementation manners, the sending server receives the CNP packet, adjusts the sending rate according to the number of CNP packets, and performs rate reduction based on the RDMA congestion control algorithm of the sending server.
[0297] In the above embodiment, the RDMA-based end-to-network linkage is implemented, which can not only timely notify the sending server to perform rate reduction processing, but also ensure that the service is not packet loss, and the throughput of the private line service is improved.
[0298] The technical scheme provided by the embodiment of the application can be used in the process in which the sending server sends a data packet to the receiving server. The first access device, as the first network device for providing routing and forwarding functions between the sending server and the receiving server, that is, the network device closest to the sending server, can first receive the data packet and perform congestion detection on the data packet. As can be seen, based on the first access device performing congestion detection, the congestion detection on the data packet can be triggered at the beginning of data packet transmission. Further, by setting a preset congestion range, the normal forwarding of the data packet can be ensured to be transmitted to the receiving server in the case that the first access device is congested but the data transmission condition is within the preset congestion range, avoiding the first access device performing packet loss processing, effectively reducing the packet loss rate, and thus ensuring the normal operation of the communication network. Moreover, based on the first access device being able to timely trigger the sending server to perform rate reduction processing on the data packet, the rate reduction processing on the data packet can be triggered at the beginning of data packet transmission, without passing through other network devices after the first access device, at least one round trip time can be saved, the time required for rate reduction processing can be shortened, effective congestion control can be provided, and thus the normal operation of the communication network can be ensured.
[0299] In the embodiment of the present application, by applying the communication method provided in the embodiment of the present application in the cross-wide-area-network private line tunnel scenario, the network packet loss problem caused by the congestion control mechanism (such as CAR threshold or token bucket) of the Ingress node in the cross-wide-area-network private line tunnel scenario can be avoided.
[0300] It can be found that in one implementation of the embodiment of the present application, the first access device can probabilistically mark the backhaul packet to inform the sender server to reduce the speed, and in another implementation, the first access device can actively construct a congestion notification packet to inform the sender server to reduce the speed. Compared with the related technology one, the sender server does not need to rely on the feedback of the congestion notification packet from the receiver server, and the time required for the speed reduction processing is shortened. Moreover, the embodiment of the present application can be applied to a long-distance data center network, and in the long-distance data center network, the problem that the sender server reduces the speed due to temporary congestion and thus reduces the throughput can be avoided. Compared with the related technology two, on the one hand, a public network transmission tunnel to the sender server does not need to be established for each network device in the network, and the deployment cost is reduced. On the other hand, since the first access device needs to communicate directly with the sender server as the network device closest to the sender server, even if the sender server is located on the private network side, the communication address of the private network can be obtained by the first access device, and the reachability of the congestion notification packet is ensured, so that the congestion control is realized.
[0301] It should be noted that the above description is to more clearly describe the communication method described in the embodiments of the present disclosure, and should not be understood as a limitation of the specific implementation of the present application.
[0302] The above mainly introduces the scheme provided by the embodiments of the present application from the perspective of the communication process. Correspondingly, the embodiments of the present application also provide a communication device for implementing the various methods described above. The communication device can be the device described above, or contain the device described above, or be a component that can be used. It can be understood that the communication device contains the corresponding hardware structure and / or software module for executing each function in order to realize the above functions. Those skilled in the art should easily realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be realized in the form of hardware or a combination of hardware and computer software. Whether a certain function is driven by hardware or computer software to drive hardware depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered beyond the scope of the present application.
[0303] This application embodiment can divide the communication device into functional modules according to the above method embodiment. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be understood that the module division in this application embodiment is illustrative and is only a logical functional division. In actual implementation, there may be other division methods.
[0304] For example, Figure 17 This is a schematic diagram of a communication device provided in an embodiment of this application. See also... Figure 17 The communication device includes a receiving module 1701, a detection module 1702, and a triggering module 1703. Wherein:
[0305] Receiver module 1701 is used to perform the above. Figure 6 The S601 or shown Figure 9 The S901 or shown Figure 14 S1401 as shown;
[0306] Detection module 1702 is used to perform the above. Figure 6 S602 or shown Figure 9 The S903 or shown Figure 14 S1403 as shown;
[0307] Trigger module 1703 is used to execute the above. Figure 6 S603 to S604 shown or Figure 9 S904 to S910 shown or Figure 14 S1404 to S1408 are shown.
[0308] In some possible implementations, the device further includes an acquisition module for performing the above-described actions. Figure 9 The process of obtaining message information of data packets in S902 shown above, or the process described above. Figure 14 The process of obtaining message information of data packets in S1402 is shown.
[0309] In some possible implementations, the trigger module 1703 is specifically used to perform the above... Figure 6 Any one of S604 from S1 to S3 shown.
[0310] In some possible implementations, the detection unit 1702 is specifically used to perform the above-mentioned... Figure 6 Any one of S602 from S1 to S4 shown.
[0311] The specific description of the optional mode can be referred to the foregoing method embodiments, and details are not described herein. In addition, the explanation and beneficial effect of any one of the communication devices provided above can be referred to the corresponding method embodiments, and details are not described herein.
[0312] As an example, in combination with Figure 5 , the functions of part or all of the receiving module 1701, the detecting module 1702 and the triggering module 1703 in the communication device shown in Figure 17 may be implemented by the processor 501 in the network device shown in Figure 5 . Figure 5
[0313] In the embodiments of the present application, the communication device is presented in the form of dividing various functional modules in an integrated manner. The "module" here can refer to a specific ASIC, a circuit, a processor and a memory executing one or more software or firmware programs, an integrated logic circuit, and / or other devices that can provide the above functions. In a simple embodiment, those skilled in the art can think that the communication device can be in the form of the network device shown in Figure 5 .
[0314] For example, the processor 501 in the network device shown in Figure 5 may execute the communication method in the method embodiments by invoking the computer-executed instructions stored in the memory 502.
[0315] Specifically, the functions / implementation processes of the receiving module 1701, the detecting module 1702 and the triggering module 1703 in the communication device shown in Figure 17 may be implemented by the processor 501 in the network device shown in Figure 5 invoking the computer-executed instructions stored in the memory 502.
[0316] Since the communication device provided in the embodiments of the present application can execute the communication method, the technical effects that can be obtained are referred to the method embodiments, and details are not described herein.
[0317] It should be understood that one or more of the above modules or units can be implemented in software, hardware, or a combination of both. When any of the above modules or units is implemented in software, the software exists in the form of computer program instructions and is stored in a memory, and a processor can be used to execute the program instructions and implement the above method procedures. The processor can be built in a SoC (System on Chip) or an ASIC, or be a separate semiconductor chip. The processor further includes a core for executing software instructions to perform operations or processing, and can further include necessary hardware accelerators, such as a field programmable gate array (FPGA), a PLD (programmable logic device), or a logic circuit for implementing special logic operations.
[0318] When any of the above modules or units is implemented in hardware, the hardware can be any one or any combination of a CPU, a microprocessor, a digital signal processing (DSP) chip, a microcontroller unit (MCU), an artificial intelligence processor, an ASIC, a SoC, a FPGA, a PLD, a dedicated digital circuit, a hardware accelerator, or a non-integrated discrete device, which can run necessary software or be independent of software to execute the above method procedures.
[0319] Optionally, the embodiments of the present application further provide a network device (for example, the network device can be a chip or a chip system), which includes a processor for implementing the method executed by the network device in any of the above method embodiments. In a possible design, the network device further includes a memory. The memory is used to store necessary program instructions and data, and the processor can call the program code stored in the memory to instruct the network device to execute the method in any of the above method embodiments. Of course, the memory can also not be in the network device. When the network device is a chip system, it can be composed of a chip, or include a chip and other discrete devices, and the embodiments of the present application do not make specific limitations hereon.
[0320] The embodiments of the present application further provide a computer readable storage medium, which stores computer execution instructions, and when the computer execution instructions run on a network device, the network device executes the method executed by any of the above communication devices.
[0321] The above description of the related content and beneficial effects of any of the above provided computer readable storage media can refer to the corresponding embodiments described above, and will not be repeated here.
[0322] The embodiments of the present application further provide a chip. The chip integrates a control circuit and one or more ports for implementing the functions of the communication device. Optionally, the functions supported by the chip can refer to the above, and will not be repeated here. Those skilled in the art can understand that all or part of the steps of the above-mentioned embodiments can be instructed by a program to relevant hardware. The program can be stored in a computer readable storage medium. The storage medium mentioned above can be a read-only memory, a random access memory, etc. The processing unit or processor mentioned above can be a central processing unit, a general-purpose processor, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA) or other programmable logic device, a transistor logic device, a hardware component or any combination thereof.
[0323] The embodiments of the present application further provide a computer program product containing computer-executable instructions, which, when running on a network device, enable the network device to perform any of the methods in the above embodiments. The computer program product includes one or more computer-executable instructions. When the computer-executable instructions are loaded and executed on the network device, all or part of the processes or functions according to the embodiments of the present application are generated. The network device can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
[0324] The computer-executable instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer-executable instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer readable storage medium can be any available medium that the server can access or include one or more data storage devices integrated with the server, data center, etc. The available medium can be a magnetic medium (such as a floppy disk, a hard disk, a magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (SSD)), etc.
[0325] It should be noted that the devices for storing computer instructions or computer programs provided by the embodiments of the present application, such as but not limited to the above-mentioned memories, computer readable storage media, communication chips and the like, are all non-transitory.
[0326] In the above embodiments, all or part can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part can be implemented in the form of a computer program product.
[0327] Although the present application is described herein in conjunction with various embodiments, it is understood that other variations of the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed application, from an inspection of the drawings, the disclosure, and the appended claims. The word "comprising" does not exclude other components or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. A single processor or other unit can fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to an advantage.
[0328] Although the present application is described in conjunction with specific features and embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art in the spirit and scope of the application, as described herein. Accordingly, it is intended to embrace all such alternatives, modifications and variations as fall within the scope of the appended claims. Obviously, many modifications and variations of the present application are possible in light of its teachings. It is therefore to be understood that within the scope of the appended claims and their equivalents, the application can be practiced otherwise than as specifically described.
Claims
1. A communication method characterized by comprising: The method is applied to a first access device, the first access device being a first network device between a sending end server and a receiving end server for providing a routing forwarding function, and the method comprises: receiving a data packet from the sending end server; performing congestion detection on the first access device to obtain a congestion detection result, the congestion detection result being used to indicate whether the first access device is congested and a data transmission condition when the first access device is congested; in response to the congestion detection result indicating that the first access device is congested but the data transmission condition is within a preset congestion range, sending the data packet to the receiving end server and triggering the sending end server to perform speed reduction processing on the data packet based on the data transmission condition.
2. The method of claim 1, wherein, The method further comprises: determining speed reduction reference information based on the data transmission condition, the speed reduction reference information being positively correlated with the data transmission condition; triggering the sending end server to perform speed reduction processing on the data packet based on the speed reduction reference information.
3. The method of claim 2, wherein, The speed reduction reference information is a speed reduction probability reference value. The method further comprises: performing marking processing on a backhaul packet of the data packet from the receiving end server according to the speed reduction probability reference value to obtain a marked backhaul packet, the speed reduction probability reference value being used to indicate a marking ratio of the backhaul packet, the backhaul packet being a response packet returned by the receiving end server to the sending end server, and the marking processing being used to add a congestion mark to the backhaul packet; sending the marked backhaul packet to the sending end server, the marked backhaul packet being used to trigger the sending end server to perform speed reduction processing on the data packet.
4. The method of claim 3, wherein, The method further comprises: obtaining packet information of the data packet; The method further comprises: based on the packet information of the data packet, obtaining the backhaul packet of the data packet from the backhaul packet from the receiving end server; performing marking processing on the backhaul packet of the data packet according to the speed reduction probability reference value.
5. The method of claim 2, wherein, The speed reduction reference information is a number of congestion notification packets. The method further comprises: sending the number of congestion notification packets of the data packet to the sending end server, the number of congestion notification packets being used to trigger the sending end server to perform speed reduction processing on the data packet.
6. The method of claim 5, wherein, The method further comprises: obtaining packet information of the data packet; The method further comprises: determine a communication address of the sending end server based on the message information of the data message, and construct the number of congestion notification messages of the data message; send the number of congestion notification messages to the sending end server based on the communication address of the sending end server.
7. The method according to any one of claims 2 to 6, characterized in that, The determining of the speed reduction reference information based on the data transmission condition comprises: determining the speed reduction reference information based on the data transmission condition and a first mapping relationship, the first mapping relationship being used to indicate a linear mapping relationship between the data transmission condition and the speed reduction reference information; or determining the speed reduction reference information based on the data transmission condition and a second mapping relationship, the second mapping relationship being used to indicate a nonlinear mapping relationship between the data transmission condition and the speed reduction reference information; or inputting the data transmission condition into a first information prediction model, and obtaining the speed reduction reference information by processing the data transmission condition through the first information prediction model, the first information prediction model being used to predict the speed reduction reference information.
8. The method according to any one of claims 1 to 7, characterized in that, The congestion detection on the first access device to obtain a congestion detection result comprises: obtaining a cache occupancy rate of the first access device, determining that the first access device is congested if the cache occupancy rate exceeds a preset upper limit of occupancy rate, and obtaining a data transmission condition at a current time; or determining that the first access device is not congested if the cache occupancy rate does not exceed the preset upper limit of occupancy rate; or obtaining a data transmission rate of the first access device, determining that the first access device is congested if the data transmission rate exceeds a preset upper limit of rate, and obtaining a data transmission condition at a current time; or determining that the first access device is not congested if the data transmission rate does not exceed the preset upper limit of rate; or performing congestion detection on the first access device based on a token bucket to obtain a token bucket detection result, determining that the first access device is congested if the token bucket detection result indicates that the first access device is not allowed to forward the data message, and obtaining a data transmission condition at a current time; or determining that the first access device is not congested if the token bucket detection result indicates that the first access device is allowed to forward the data message; or inputting congestion detection results of a historical time period into a second information prediction model, determining whether the first access device is congested at a current time by processing the congestion detection results of the historical time period through the second information prediction model, the second information prediction model being used to predict whether the first access device is congested; and obtaining a data transmission condition at the current time if the first access device is congested at the current time.
9. The method according to any one of claims 1 to 8, characterized in that, The data transmission condition comprises at least one of the cache occupancy rate, the data transmission rate of the first access device, the transmission rate of the data message, and a congestion duration.
10. The method according to any one of claims 1 to 9, characterized in that, The preset congestion range comprises at least one of a preset time range, a preset flow range, and a preset buffer water line range.
11. A communications device, characterized by Applied to a first access device, the first access device being a first network device between a sending end server and a receiving end server for providing a routing forwarding function, comprising: a receiving module configured to receive a data packet from the sending end server; a detecting module configured to perform congestion detection on the first access device to obtain a congestion detection result, the congestion detection result being used to indicate whether the first access device is congested and a data transmission condition when the first access device is congested; a triggering module configured to, in response to the congestion detection result indicating that the first access device is congested but the data transmission condition is within a preset congestion range, send the data packet to the receiving end server, and trigger the sending end server to perform speed reduction processing on the data packet based on the data transmission condition.
12. A network device, comprising: A network device comprising a memory and a processor, the memory and the processor being connected; the memory is configured to store computer execution instructions; the processor is configured to call the computer execution instructions to execute the method according to any one of claims 1-10.
13. A computer-readable storage medium, characterized in that, A computer program product comprising computer execution instructions, when the computer execution instructions run on a network device, the network device executes the method according to any one of claims 1-10.
14. A computer program product, characterised in that, A computer program product comprising computer execution instructions, when the computer execution instructions run on a network device, the network device executes the method according to any one of claims 1-10.