A message transmission method, device, terminal and switching device

By recording and managing the entropy value, path quality value and polling period value of multiple paths at the sending terminal, and selecting a path that meets the preset conditions for data packet transmission, the problem of data packets being directed to the congested path in OPS technology is solved, and more effective network resource utilization and performance improvement is achieved.

CN119788594BActive Publication Date: 2025-06-20NEW H3C TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510285863.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-03-11
Publication Date
2025-06-20
Estimated Expiration
2045-03-11

AI Technical Summary

Technical Problem

In data centers, when using the non-perception packet spraying (OPS) technology, despite the non-congested path, the switching device may still direct data packets to the congested path, resulting in increased path congestion and sharp decline in performance.

Method used

The sending terminal records the entropy value, path quality value and polling period value of multiple paths, selects a path that can be polled during the current polling period and the path quality meets the preset quality requirements, and fills in the data packet with the entropy value of the path to ensure that the data packet is transmitted along the polled path.

Benefits of technology

By perceiving the congestion of the path, the sending terminal can randomly allocate data packets to paths with good path status when spraying packets by packet, making full use of network link bandwidth to avoid illy guiding data packets to congestion paths, and solving the problems of increased path congestion and performance degradation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788594B_ABST
    Figure CN119788594B_ABST
Patent Text Reader

Abstract

An embodiment of the present application provides a message transmission method, apparatus, terminal, and switching device. The method is applied to a sending terminal, and the sending terminal records the entropy values, path quality values, and polling period values of multiple paths between the sending terminal and the receiving terminal, including: selecting, from the multiple paths, a path whose polling period value is a first preset period value and whose path quality value is a first preset quality value; polling the selected path within the current polling period to obtain a first path; filling the entropy value of the first path into the source port field of the first data message to be transmitted to obtain a second data message; and sending the second data message to the receiving terminal, so that the switching device that receives the second data message transmits the second data message to the receiving terminal according to the entropy value included in the second data message. This solution can solve the problem that the data message is guided to the congested path, resulting in an exacerbation of the path congestion degree and a sharp decline in performance.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technologies, and in particular, to a method, apparatus, terminal, and switching device for message transmission. Background Art

[0002] With the development of Artificial Intelligence (AI) technology, data centers integrate the indispensable computing power and network resources required for AI training. There is a lot of bursty traffic in the data center, and both elephant flows and mouse flows coexist. To support a large amount of internal traffic in the data center, make full use of the network link bandwidth, and reduce the uneven utilization of bandwidth, the current Oblivious Packet Spraying (OPS) technology is adopted. The switching device between the sending terminal and the receiving terminal randomly distributes multiple data packets on a data stream to each Equal-cost multi-path (ECMP) between the sending terminal and the receiving terminal in units of packets.

[0003] When using OPS to transmit packets, even if there are uncongested paths in the data center, the switching device may still direct the data packets to the congested paths, resulting in an increase in the congestion degree of individual paths and a sharp drop in performance. Summary of the Invention

[0004] The purpose of the embodiments of the present application is to provide a method, apparatus, terminal, and switching device for message transmission to solve the problem that the data packets are directed to the congested paths, resulting in an increase in the congestion degree of the paths and a sharp drop in performance. The specific technical solutions are as follows:

[0005] In a first aspect, the embodiments of the present application provide a method for message transmission, which is applied to a sending terminal. The sending terminal records the entropy values, path quality values, and polling period values of multiple paths between the sending terminal and the receiving terminal. The method includes:

[0006] Select, from the multiple paths, a path whose polling period value is a first preset period value and whose path quality value is a first preset quality value, where the first preset period value indicates that the path is polled within the current polling period of the path, and the first preset quality value indicates that the path quality meets the preset quality requirements;

[0007] Poll the selected path within the current polling period to obtain a first path;

[0008] Fill the entropy value of the first path into the source port field of the first data packet to be transmitted to obtain a second data packet;

[0009] Send the second data packet to the receiving terminal, so that the switching device that receives the second data packet transmits the second data packet to the receiving terminal according to the entropy value included in the second data packet.

[0010] In some embodiments, the method further includes:

[0011] Receive a first acknowledgment packet corresponding to the second path fed back by the receiving terminal according to a third data packet, where the third data packet is a historical data packet sent by the sending terminal, and the third data packet carries the entropy value of the second path;

[0012] If the first acknowledgment packet carries the path status information of the second path, then update the polling period value and the path quality value of the second path recorded by the sending terminal according to the path status information.

[0013] In some embodiments, the path status information includes a second path quality parameter and does not include a congestion flag; the step of updating the polling period value and the path quality value of the second path recorded by the sending terminal according to the path status information includes:

[0014] When meeting the first preset status requirement, determine a first polling period value corresponding to the second path quality parameter according to the corresponding relationship between the path quality parameter and the polling period value stored in advance;

[0015] Set the polling period value of the second path recorded by the sending terminal to the first polling period value, and keep the path quality value of the second path recorded by the sending terminal as the first preset quality value;

[0016] Wherein, the first preset status requirement includes:

[0017] The path quality value of the second path recorded by the sending terminal is the first preset quality value.

[0018] In some embodiments, the path status information includes a second path quality parameter and does not include a congestion flag; the step of updating the polling period value and the path quality value of the second path recorded by the sending terminal according to the path status information includes:

[0019] When meeting the second preset status requirement, determine a second polling period value corresponding to the second path quality parameter according to the corresponding relationship between the path quality parameter and the polling period value stored in advance;

[0020] Set the polling period value of the second path recorded by the sending terminal to the second polling period value;

[0021] Set the path quality value of the second path recorded by the sending terminal to the first preset quality value;

[0022] Wherein, the second preset status requirement includes:

[0023] The path quality value of the second path recorded by the sending terminal is a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement;

[0024] Up to the current moment, the number of acknowledgment packets without congestion marks corresponding to the second path continuously received by the sending terminal is greater than or equal to a preset number.

[0025] In some embodiments, the path status information does not include a congestion mark;

[0026] The step of updating the polling period value and path quality value of the second path recorded by the sending terminal according to the path status information includes:

[0027] When the third preset status requirement is met, the polling period value and path quality value of the second path recorded by the sending terminal are maintained;

[0028] Wherein, the third preset status requirement includes:

[0029] The path quality value of the second path recorded by the sending terminal is a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement;

[0030] Up to the current moment, the number of acknowledgment packets without congestion marks corresponding to the second path continuously received by the sending terminal is less than the preset number.

[0031] In some embodiments, the path status information includes a congestion mark; the step of updating the polling period value and path quality value of the second path recorded by the sending terminal according to the path status information includes:

[0032] Set the polling period value of the second path recorded by the sending terminal to a second preset period value, and set the path quality value of the second path recorded by the sending terminal to a second preset quality value. The second preset period value indicates that the path is prohibited from being selected within a preset duration, and the second preset quality value indicates that the path quality does not meet the preset requirement.

[0033] In some embodiments, after setting the polling period value of the second path recorded by the sending terminal to the second preset period value, the method further includes:

[0034] After waiting for the preset duration, set the polling period value of the second path recorded by the sending terminal to the first preset period value, and keep the path quality value of the second path recorded by the sending terminal as the second preset quality value.

[0035] In some embodiments, a path with a polling period value greater than the first preset period value and a path quality value of the first preset quality value recorded by the sending terminal is a candidate path; after the end of the current polling period, the method further includes:

[0036] Decrease by one the polling period value of the candidate path recorded by the sending terminal.

[0037] In a second aspect, an embodiment of the present application provides a message transmission method, which is applied to a switching device, and the method includes:

[0038] Receive a second data message sent by a sending terminal, where the second data message is a data message obtained by the sending terminal according to any method provided in the first aspect;

[0039] Determine an output port corresponding to the second data message according to the entropy value included in the second data message;

[0040] Transmit the second data message to a receiving terminal through the output port.

[0041] In some embodiments, the step of transmitting the second data message to a receiving terminal through the output port includes:

[0042] Obtain path status information corresponding to the output port;

[0043] Fill the path status information into the second data message;

[0044] Transmit the filled second data message to a receiving terminal through the output port.

[0045] In a third aspect, an embodiment of the present application provides a message transmission method, which is applied to a receiving terminal, and the method includes:

[0046] Receive a second data message from a sending terminal, where the second data message is a data message obtained by the sending terminal according to any method provided in the first aspect;

[0047] Process the second data message.

[0048] In some embodiments, the method further includes:

[0049] Extract path status information from the second data packet, where the path status information is filled into the second data packet by the switching device through which the second data packet passes;

[0050] Send an acknowledgment packet carrying the path status information to the sending terminal.

[0051] Fourthly, an embodiment of the present application provides a packet transmission device, which is applied to a sending terminal. The sending terminal records the entropy value, path quality value, and polling period value of multiple paths between the sending terminal and the receiving terminal. The device includes:

[0052] A determination module, configured to select, from the multiple paths, a path whose polling period value is a first preset period value and whose path quality value is a first preset quality value, where the first preset period value indicates that the path is polled within the current polling period of the path, and the first preset quality value indicates that the path quality meets the preset quality requirement;

[0053] A polling module, configured to poll the selected path within the current polling period to obtain a first path;

[0054] A filling module, configured to fill the entropy value of the first path into the source port field of the first data packet to be transmitted to obtain a second data packet;

[0055] A sending module, configured to send the second data packet to a receiving terminal, so that a switching device that receives the second data packet transmits the second data packet to the receiving terminal according to the entropy value included in the second data packet.

[0056] In some embodiments, the device further includes:

[0057] A receiving module, configured to receive a first acknowledgment packet corresponding to a second path fed back by the receiving terminal according to a third data packet, where the third data packet is a historical data packet sent by the sending terminal, and the third data packet carries the entropy value of the second path;

[0058] An updating module, configured to update the polling period value and path quality value of the second path recorded by the sending terminal according to the path status information if the first acknowledgment packet carries the path status information of the second path.

[0059] In some embodiments, the path status information includes a second path quality parameter and does not include a congestion flag;

[0060] The updating module is specifically configured to: when the first preset status requirement is met, determine a first polling period value corresponding to a second path quality parameter according to the correspondence between the path quality parameter and the polling period value stored in advance; set the polling period value of the second path recorded by the sending terminal to the first polling period value, and keep the path quality value of the second path recorded by the sending terminal as the first preset quality value;

[0061] Wherein, the first preset status requirement includes: the path quality value of the second path recorded by the sending terminal is the first preset quality value.

[0062] In some embodiments, the path status information includes a second path quality parameter, but does not include a congestion flag;

[0063] The updating module is specifically configured to: when the second preset status requirement is met, determine a second polling period value corresponding to a second path quality parameter according to the correspondence between the path quality parameter and the polling period value stored in advance; set the polling period value of the second path recorded by the sending terminal to the second polling period value; set the path quality value of the second path recorded by the sending terminal to the first preset quality value;

[0064] Wherein, the second preset status requirement includes:

[0065] The path quality value of the second path recorded by the sending terminal is a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement;

[0066] Up to the current moment, the number of acknowledgment messages without a congestion flag corresponding to the second path continuously received by the sending terminal is greater than or equal to a preset number.

[0067] In some embodiments, the path status information does not include a congestion flag;

[0068] The updating module is specifically configured to: when the third preset status requirement is met, keep the polling period value and the path quality value of the second path recorded by the sending terminal;

[0069] Wherein, the third preset status requirement includes:

[0070] The path quality value of the second path recorded by the sending terminal is a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement;

[0071] Up to the current moment, the number of acknowledgment messages without a congestion flag corresponding to the second path continuously received by the sending terminal is less than a preset number.

[0072] In some embodiments, the path status information includes a congestion flag;

[0073] The updating module is specifically configured to: set the polling period value of the second path recorded by the sending terminal to a second preset period value, and set the path quality value of the second path recorded by the sending terminal to a second preset quality value, where the second preset period value indicates that the path is prohibited from being selected within a preset duration, and the second preset quality value indicates that the path quality does not meet the preset requirements.

[0074] In some embodiments, the updating module is further configured to: after setting the polling period value of the second path recorded by the sending terminal to the second preset period value, wait for the preset duration, and then set the polling period value of the second path recorded by the sending terminal to the first preset period value, and keep the path quality value of the second path recorded by the sending terminal as the second preset quality value.

[0075] In some embodiments, a path with a polling period value greater than the first preset period value and a path quality value of the first preset quality value recorded by the sending terminal is a candidate path; the apparatus further includes:

[0076] A subtraction module, configured to subtract one from the polling period value of the candidate path recorded by the sending terminal after the end of the current polling period.

[0077] In a fifth aspect, an embodiment of the present application provides a message transmission apparatus, which is applied to a switching device, and the apparatus includes:

[0078] A receiving module, configured to receive a second data message sent by a sending terminal, where the second data message is a data message obtained by the sending terminal according to any one of the apparatuses provided in the fourth aspect;

[0079] A determining module, configured to determine an output port corresponding to the second data message according to the entropy value included in the second data message;

[0080] A transmitting module, configured to transmit the second data message to a receiving terminal through the output port.

[0081] In some embodiments, the transmitting module is specifically configured to: obtain path status information corresponding to the output port; fill the path status information into the second data message; and transmit the filled second data message to the receiving terminal through the output port.

[0082] In a sixth aspect, an embodiment of the present application provides a message transmission apparatus, which is applied to a receiving terminal, and the apparatus includes:

[0083] A receiving module, configured to receive a second data packet from a sending terminal, where the second data packet is a data packet obtained by the sending terminal according to any one of the apparatuses provided in the fourth aspect;

[0084] A processing module, configured to process the second data packet.

[0085] In some embodiments, the apparatus further includes:

[0086] A feedback module, configured to extract path status information from the second data packet, where the path status information is filled into the second data packet by a switching device through which the second data packet passes; and send an acknowledgment packet carrying the path status information to the sending terminal.

[0087] In a seventh aspect, an embodiment of the present application provides a terminal, including a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is caused by the machine-executable instructions to: implement any one of the methods provided in the first aspect, or implement any one of the methods provided in the third aspect.

[0088] In an eighth aspect, an embodiment of the present application provides a switching device, including a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is caused by the machine-executable instructions to: implement any one of the method steps provided in the second aspect.

[0089] In a ninth aspect, an embodiment of the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when the computer program is executed by a processor, it implements any one of the methods provided in the first aspect, or implements any one of the method steps provided in the second aspect, or implements any one of the methods provided in the third aspect.

[0090] In a tenth aspect, an embodiment of the present application provides a computer program product including instructions, and when it runs on a computer, it causes the computer to execute any one of the methods provided in the first aspect, or any one of the method steps provided in the second aspect, or implements any one of the methods provided in the third aspect.

[0091] Advantageous effects of the embodiments of the present application:

[0092] In the technical solution provided by the embodiments of the present application, the sending terminal can record the entropy values, path quality values, and polling period values of multiple paths between the sending terminal and the receiving terminal. According to the path quality values and polling period values, the sending terminal selects paths that can be polled within the current polling period of the path and whose path quality meets the preset quality requirements, and then polls the selected paths. The entropy value of the corresponding path is filled in the data packet to be transmitted to ensure that the data packet is transmitted along the polled path.

[0093] In the embodiments of the present application, the path quality value and the polling period value can reflect the states of multiple paths between the sending terminal and the receiving terminal. For example, the path quality value of a path with severe congestion indicates that the path quality does not meet the preset quality requirements, and the path quality value of a path with less congestion indicates that the path quality meets the preset quality requirements, but the polling period value is greater than the first preset period value to avoid polling this path within the current polling period, thereby alleviating the congestion condition of this path. Based on the path quality value and the polling period value, the sending terminal can perceive the congestion degree of the path. When spraying packets one by one, that is, randomly distributing multiple data packets on a data stream to paths with good path states (such as paths with a path quality value of the first preset quality value and a polling period value of the first preset period value), it can effectively solve the problem of blindly guiding data packets to congested paths, which leads to an increase in the congestion degree of the path and a sharp decline in performance while making full use of the network link bandwidth.

[0094] Of course, when implementing any product or method of the present application, it is not necessarily required to achieve all the above-mentioned advantages simultaneously. BRIEF DESCRIPTION OF THE DRAWINGS

[0095] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments of the present application, and those of ordinary skill in the art can also obtain other embodiments based on these drawings.

[0096] Figure 1 It is a schematic diagram of a data center with a CLOS non-blocking network architecture;

[0097] Figure 2 It is the first flowchart of the message transmission method provided by the embodiments of the present application;

[0098] Figure 3 It is a flowchart of a method for updating the path quality value and the polling period value provided by the embodiments of the present application;

[0099] Figure 4 It is the second flowchart of the message transmission method provided by the embodiments of the present application;

[0100] Figure 5 The first schematic diagram of the message transmission process provided by the embodiment of the present application;

[0101] Figure 6 The second schematic diagram of the message transmission process provided by the embodiment of the present application;

[0102] Figure 7 The third flowchart of the message transmission method provided by the embodiment of the present application;

[0103] Figure 8 A signaling diagram of a sending terminal transmitting a data message provided by the embodiment of the present application;

[0104] Figure 9 The first structural schematic diagram of the message transmission device provided by the embodiment of the present application;

[0105] Figure 10 The second structural schematic diagram of the message transmission device provided by the embodiment of the present application;

[0106] Figure 11 The third structural schematic diagram of the message transmission device provided by the embodiment of the present application;

[0107] Figure 12 The first structural schematic diagram of the terminal provided by the embodiment of the present application;

[0108] Figure 13 The first structural schematic diagram of the switching device provided by the embodiment of the present application. Detailed implementation manners

[0109] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art based on the present application belong to the scope of protection of the present application.

[0110] With the development of AI technology, data centers integrate the indispensable computing power and network resources required for AI training. One of the important purposes of the switching devices inside the data center is to support the large amount of traffic inside the data center. However, the traditional converged network can no longer meet the efficient transmission of this traffic. Therefore, currently, data centers more commonly use the Cross (CLOS) non-blocking network architecture. As Figure 1 shown in the data center, it includes multiple servers and multiple levels of switching devices. Each server inserts multiple network cards, and the multiple network cards and the multiple levels of switching devices form a CLOS non-blocking network architecture.

[0111] This CLOS non-blocking network architecture can achieve wire-speed interaction between any servers (or network cards). Therefore, in the CLOS non-blocking network architecture, there are often multiple equivalent redundant paths between servers to provide a large amount of bandwidth resources for various application requirements.

[0112] Load balancing is a common means to improve the utilization rate of bandwidth resources. Its purpose is to evenly distribute data flows among multiple equivalent paths as much as possible based on the characteristics of clear data center topology and redundant path resources, so as to avoid network congestion on certain paths and ultimately achieve the purpose of making full use of network resources.

[0113] The ECMP technology is a relatively common load balancing routing strategy based on flow. When switching devices (such as routers, etc.) find that there are multiple equivalent paths to the same destination address, these switching devices will distribute different data flows to different equivalent paths according to corresponding algorithms to improve network bandwidth utilization. The path selection strategy of the ECMP technology can be implemented using a variety of algorithms. For example, the algorithm for implementing the path selection strategy can be to perform a hash calculation using the five-tuple of the data flow (source network protocol (Internet Protocol, IP) address, source port, destination IP address, destination port, four-layer network communication protocol type) to select a path for the data flow; the algorithm for implementing the path selection strategy can also be to poll among multiple paths to select a path for the data flow.

[0114] The ECMP technology is a simple load balancing strategy and has many problems in actual use, as follows.

[0115] (1) It may exacerbate network link congestion. Since it only performs hashing or polling, the ECMP technology cannot sense congestion. For a path that has already become congested, it is very likely to exacerbate the congestion of that path.

[0116] (2) Performance loss in asymmetric networks. When a failure occurs in the data center, the network structure becomes asymmetric, and the network physical paths cannot be evenly distributed, resulting in uneven traffic.

[0117] (3) The ECMP technology has good effects under the condition that the traffic size is evenly distributed. However, in the case of coexistence of elephant flows and mouse flows, the effect is not ideal. For example, when an elephant flow and a mouse flow arrive at the switching device simultaneously, the ECMP technology evenly distributes the two data flows to two equivalent paths. Obviously, the equivalent paths are not efficiently utilized at this time. And there is a lot of bursty traffic in the data center, and elephant flows and mouse flows coexist. Directly deploying the ECMP technology in the data center may cause flow collision problems.

[0118] OPS belongs to a type of Random Packet Spraying (RPS). The OPS technology adds an Entropy value on the basis of ECMP to achieve packet-level spraying. Specifically, when the switching device discovers that there are multiple equivalent paths to the same destination address, all data packets on a certain data stream will randomly select an entropy value from a fixed entropy value space (the space size is generally 256) during the sending process as the path entropy value, and fill this path entropy value into the source port field of the data packet. When the switching device supporting the ECMP technology receives such data packets and performs hash calculation according to the five-tuple carried by such data packets, even if some data packets belong to the same data stream, they will still be assigned to different paths because they select different path entropy values during sending, so as to make full use of the network link bandwidth and reduce the uneven bandwidth utilization situation.

[0119] OPS belongs to a load balancing algorithm that is unaware of network congestion. When using OPS to transmit packets, even if there are non-congested links in the network, that is, there are non-congested paths in the data center, the switching device may still direct the data packets to the congested path, resulting in an increase in the congestion degree of individual paths and a sharp decline in performance.

[0120] To solve the above problems, the embodiments of the present application provide a packet transmission method, as Figure 2 shown, which is applied to a sending terminal. The sending terminal records the entropy values, path quality values, and polling period values of multiple paths between the sending terminal and the receiving terminal. The method includes:

[0121] Step S201, select a path from multiple paths whose polling period value is the first preset period value and whose path quality value is the first preset quality value, where the first preset period value indicates that the path is polled within the current polling period, and the first preset quality value indicates that the path quality meets the preset quality requirements;

[0122] Step S202, poll the selected path within the current polling period to obtain the first path;

[0123] Step S203, fill the entropy value of the first path into the source port field of the first data packet to be transmitted to obtain the second data packet;

[0124] Step S204, send the second data packet to the receiving terminal so that the switching device that receives the second data packet transmits the second data packet to the receiving terminal according to the entropy value included in the second data packet.

[0125] In the technical solution provided by the embodiment of the present application, the sending terminal can record the entropy value, path quality value, and polling period value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling period value, the sending terminal selects a path that can be polled within the current polling period of the path and whose path quality meets the preset quality requirements, and then polls the selected path, and fills the entropy value of the corresponding path into the data packet to be transmitted, ensuring that the data packet is transmitted along the polled path.

[0126] In the embodiment of the present application, the path quality value and the polling period value can reflect the states of multiple paths between the sending terminal and the receiving terminal. For example, the path quality value of a path with severe congestion indicates that the path quality does not meet the preset quality requirements, and the path quality value of a path with less congestion indicates that the path quality meets the preset quality requirements, but the polling period value is greater than the first preset period value to avoid polling this path within the current polling period, thereby alleviating the congestion condition of this path. Based on the path quality value and the polling period value, the sending terminal can perceive the congestion degree of the path. When spraying packets one by one, that is, randomly distributing multiple data packets on a data stream to paths with good path states (such as paths with a path quality value of the first preset quality value and a polling period value of the first preset period value), it can effectively solve the problem of blindly guiding data packets to congested paths, which leads to an increase in the congestion degree of the path and a sharp decline in performance while making full use of the network link bandwidth.

[0127] In the embodiment of the present application, the sending terminal can be any network card in the AI network (data center), or any server in the AI network (data center). The sending terminal is the network card or server that needs to send the data stream. The receiving terminal can be any network card in the AI network (data center), or any server in the AI network (data center). The receiving terminal is the network card or server that needs to receive the data stream. There are multiple equivalent paths between the sending terminal and the receiving terminal, and each path passes through one or more switching devices. The sending terminal records the entropy value, path quality value, and polling period value of these multiple paths, as shown in Table 1.

[0128] Table 1

[0129]

[0130] In the embodiment of the present application, one entropy value indicates one path, and the path and the entropy value are in one-to-one correspondence; the path quality value indicates the path quality. For example, if the path quality meets the preset quality requirements, that is, the path quality is good, and if the path quality does not meet the preset quality requirements, that is, the path quality is poor; the polling period value indicates the polling period when the path is polled, such as whether the path is polled within the current polling period, the path is prohibited from being polled, or in which polling period the path is polled, etc.

[0131] To facilitate the management of the path quality values and polling period values recorded in the sending terminal, the path quality value can be 0 or 1, and the polling period value can be a natural number.

[0132] Among them, a path quality value of 0 indicates that the path quality does not meet the preset quality requirements, and a path quality value of 1 indicates that the path quality meets the preset quality requirements; or, a path quality value of 0 indicates that the path quality meets the preset quality requirements, and a path quality value of 1 indicates that the path quality does not meet the preset quality requirements. The larger the polling period value, the later the polling period when the path is polled. For example, when the polling period value is 1, it means the path is polled in the current polling period (i.e., the 1st polling period); when the polling period value is 2, it means the path is polled in the 2nd polling period after the current moment; when the polling period value is 3, it means the path is polled in the 3rd polling period after the current moment, and so on.

[0133] For each path recorded by the sending terminal, the initial path quality value is the first preset quality value, and the polling period value of each path is the first preset period value. The first preset period value indicates that the path is polled within the current polling period, and the first preset quality value indicates that the path quality meets the preset quality requirements. The magnitudes of the first preset period value and the first preset quality value can be set according to actual needs. For example, the first preset period value can be 1, and the first preset quality value can be 1.

[0134] During the process of the sending terminal continuously sending data packets to the receiving terminal, the status of each path between the sending terminal and the receiving terminal will change. Correspondingly, the path quality value and polling period value of each path recorded by the sending terminal can change accordingly. For example, the path quality value of the path becomes the second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirements; the polling period value of the path becomes the second preset period value, and the second preset period value indicates that the path is prohibited from being selected within a preset duration, or the polling period value of the path becomes larger, etc.

[0135] The sending terminal can record the entropy value, path quality value, and polling period value of the path in the form of a mapping table (as shown in Table 1). The number of table entries in the mapping table is determined by the number of paths (i.e., the entropy value space) between the sending terminal and the receiving terminal. The sending terminal can also record the entropy value, path quality value, and polling period value of the path in other forms, and this is not limited.

[0136] In the above step S201, there are multiple paths between the sending terminal and the receiving terminal. Among these multiple paths, if, for a path recorded by the sending terminal, the polling period value of the path is the first preset period value and the path quality value of the path is the first preset quality value, then the sending terminal can select this path, and this path is used as the path to be polled within the current polling period.

[0137] In one embodiment, the path is represented by an entropy value. Then, step S201 above may be: From the entropy values of multiple paths, select the entropy value corresponding to the first preset period value and the first preset quality value. The selected entropy value is used as the entropy value to be polled within the current polling period. That is to say, the following polling path can be understood as polling the entropy value.

[0138] For example, the first preset period value is 1 and the first preset quality value is 1. The entropy values, path quality values, and polling period values of multiple paths recorded by the sending terminal are shown in Table 2.

[0139] Table 2

[0140]

[0141] According to Table 2, both the path quality value and the polling period value corresponding to entropy value 1 are 1, and both the path quality value and the polling period value corresponding to entropy value 2 are 1. Then, the sending terminal selects entropy value 1 and entropy value 2 for subsequent polling. That is to say, path 1 corresponding to entropy value 1 and path 2 corresponding to entropy value 2 are used for subsequent polling.

[0142] In step S202 above, the first path can be any path polled. After selecting the paths with the polling period value being the first preset period value and the path quality value being the first preset quality value, these selected paths are the paths to be polled within the current polling period. The sending terminal polls the selected paths one by one; every time a path (such as the first path) is polled, the sending terminal executes step S203 to step S204 once. When all the selected paths (i.e., the paths to be polled within the current polling period) are polled, the current polling period ends.

[0143] In step S203 above, the first data packet is any data packet in the data stream that the sending terminal needs to send to the receiving terminal.

[0144] When the sending terminal polls the first path, it obtains the entropy value of the first path. When it obtains the first data packet to be transmitted, it fills the entropy value of the first path into the source port field in the first data packet. That is to say, it modifies the source port in the five-tuple of the first data packet to the entropy value of the first path. The modified first data packet is the second data packet. After that, the sending terminal executes step S204 and sends the second data packet to the receiving terminal, realizing the transmission of the second data packet using the first path.

[0145] After that, the sending terminal continues to poll the selected paths and repeats the execution of step S203 to step S204. It loops like this until all the selected paths are polled and this polling period ends.

[0146] In each polling period, the sending terminal executes the above steps S201 to S204, which will not be elaborated here.

[0147] After the switching device on the first path receives the second data packet, it can determine the output port corresponding to the entropy value according to the entropy value included in the second data packet; and then transmit the second data packet to the receiving terminal through the output port, so as to realize the transmission of the second data packet to the receiving terminal along the first path. When the receiving terminal receives the second data packet, it processes the second data packet, such as performing AI training.

[0148] In some embodiments, the path recorded by the sending terminal with a polling period value greater than the first preset period value and a path quality value of the first preset quality value is a candidate path; after the current polling period ends, the sending terminal subtracts one from the polling period value of the candidate path recorded by the sending terminal.

[0149] In the embodiment of the present application, if the polling period value of a path recorded by the sending terminal is greater than the first preset period value and the path quality value of this path is the first preset quality value, it means that this path is a candidate path. Although the candidate path is not congested, its path quality is poor. To avoid continuously using this candidate path to transmit packets and causing congestion on this candidate path, the sending terminal will not select this candidate path to transmit data packets in the current polling period, so as to reduce the number of data packets transmitted on this candidate path and improve the path quality of this candidate path.

[0150] After the current polling period ends, the sending terminal subtracts one from the polling period value of the candidate path recorded by the sending terminal. After one or more polling periods, the polling period value of the candidate path will become the first preset period value. When the polling period value of the candidate path becomes the first preset period value, it means that the sending terminal has not used this candidate path to transmit data packets for a period of time, and the path quality of this candidate path has recovered well. Then when the next polling period arrives, the sending terminal can select this candidate path to transmit data packets to improve the packet transmission efficiency.

[0151] For example, there are 6 paths between the sending terminal and the receiving terminal, namely path 1 to path 6, and the entropy values of path 1 to path 6 are entropy value 1 to entropy value 6 respectively. The first preset period value is 1, and the first preset quality value is 1.

[0152] When reaching polling period 1, the entropy values, path quality values, and polling period values of multiple paths recorded by the sending terminal are as shown in Table 2. At this time, the sending terminal can select Path 1 corresponding to entropy value 1 and Path 2 corresponding to entropy value 2, and perform polling on Path 1 and Path 2. When polling Path 1, the sending terminal obtains data packet 11 to be transmitted, and then fills entropy value 1 of Path 1 into the source port field of data packet 11 to obtain data packet 111. When polling Path 2, the sending terminal obtains data packet 12 to be transmitted, and then fills entropy value 2 of Path 2 into the source port field of data packet 12 to obtain data packet 112. At this time, polling period 1 ends. The path quality values of Paths 3 to 4 are all 1, and the polling period values of Paths 3 to 4 are all greater than 1. Then the sending terminal decrements the polling period values of Paths 3 to 4 by 1, as shown in Table 3.

[0153] Table 3

[0154]

[0155] When reaching polling period 2 (the next polling period after polling period 1), the entropy values, path quality values, and polling period values of multiple paths recorded by the sending terminal are as shown in Table 3. At this time, the sending terminal can select Path 1 corresponding to entropy value 1, Path 2 corresponding to entropy value 2, and Path 3 corresponding to entropy value 3, and perform polling on Paths 1 to 3. When polling Path 1, the sending terminal obtains data packet 21 to be transmitted, and then fills entropy value 1 of Path 1 into the source port field of data packet 21 to obtain data packet 211. When polling Path 2, the sending terminal obtains data packet 22 to be transmitted, and then fills entropy value 2 of Path 2 into the source port field of data packet 22 to obtain data packet 212. When polling Path 3, the sending terminal obtains data packet 23 to be transmitted, and then fills entropy value 3 of Path 3 into the source port field of data packet 23 to obtain data packet 213. At this time, polling period 2 ends. The path quality value of Path 4 is 1, and the polling period value of Path 4 is greater than 1. Then the sending terminal decrements the polling period value of Path 4 by 1, as shown in Table 4.

[0156] Table 4

[0157]

[0158] Subsequent message transmissions follow the same pattern and will not be elaborated further.

[0159] In some other embodiments, paths for which the polling period value is greater than the first preset period value and the path quality value is the first preset quality value, as recorded by the sending terminal, are candidate paths; after performing step S201, the sending terminal decrements by one the polling period values of the candidate paths recorded by the sending terminal.

[0160] For example, there are six paths between the sending terminal and the receiving terminal, namely Path 1 to Path 6, and the entropy values of Path 1 to Path 6 are Entropy Value 1 to Entropy Value 6 respectively. The first preset period value is 1, and the first preset quality value is 1.

[0161] When reaching Polling Period 1, the entropy values, path quality values, and polling period values of multiple paths recorded by the sending terminal are shown in Table 2. At this time, the sending terminal can select Path 1 corresponding to Entropy Value 1 and Path 2 corresponding to Entropy Value 2, and perform polling on Path 1 and Path 2. When polling Path 1, the sending terminal obtains the data packet 11 to be transmitted, and then fills Entropy Value 1 of Path 1 into the source port field of the data packet 11 to obtain the data packet 111. When polling Path 2, the sending terminal obtains the data packet 12 to be transmitted, and then fills Entropy Value 2 of Path 2 into the source port field of the data packet 12 to obtain the data packet 112. At this time, Polling Period 1 ends and enters the next polling period, such as Polling Period 2. After the sending terminal selects Path 1 corresponding to Entropy Value 1 and Path 2 corresponding to Entropy Value 2, since the path quality values of Path 3 to Path 4 are all 1, and the polling period values of Path 3 to Path 4 are all greater than 1, the sending terminal can also subtract 1 from the polling period values of Path 3 to Path 4, as shown in Table 3.

[0162] When reaching Polling Period 2 (the next polling period after Polling Period 1), the entropy values, path quality values, and polling period values of multiple paths recorded by the sending terminal are shown in Table 3. At this time, the sending terminal can select Path 1 corresponding to Entropy Value 1, Path 2 corresponding to Entropy Value 2, and Path 3 corresponding to Entropy Value 3, and perform polling on Path 1 to Path 3. When polling Path 1, the sending terminal obtains the data packet 21 to be transmitted, and then fills Entropy Value 1 of Path 1 into the source port field of the data packet 21 to obtain the data packet 211. When polling Path 2, the sending terminal obtains the data packet 22 to be transmitted, and then fills Entropy Value 2 of Path 2 into the source port field of the data packet 22 to obtain the data packet 212. When polling Path 3, the sending terminal obtains the data packet 23 to be transmitted, and then fills Entropy Value 3 of Path 3 into the source port field of the data packet 23 to obtain the data packet 213. At this time, Polling Period 2 ends and enters the next polling period. Since the path quality value of Path 4 is 1, and the polling period value of Path 4 is greater than 1, the sending terminal can also subtract 1 from the polling period value of Path 4, as shown in Table 4.

[0163] In the embodiment of the present application, the sending terminal can also, at other times, subtract one from the polling period value of the candidate path recorded by the sending terminal, such as subtracting one from the polling period value of the candidate path recorded by the sending terminal after Step S202 or Step S203, as long as it can ensure that the polling period value of the candidate path gradually decreases to the first preset period value to avoid congestion of the candidate path.

[0164] In some embodiments, as Figure 3 shown, a method for updating a path quality value and a polling period value is further provided, which is applied to a sending terminal and may include the following steps:

[0165] Step S301: Receive a first acknowledgment message corresponding to a second path fed back by a receiving terminal according to a third data message. The third data message is a historical data message sent by the sending terminal, and the third data message carries an entropy value of the second path;

[0166] In the embodiments of the present application, the second path is any path between the sending terminal and the receiving terminal. The second path may be the same as or different from the first path. The third data message is any historical data message sent by the sending terminal.

[0167] The process of the sending terminal sending the third data message to the receiving terminal may be: polling the second path; filling the entropy value of the second path into the source port field of the data message to be transmitted to obtain the third data message; sending the third data message to the receiving terminal. For details, please refer to the above steps S201 to S204, which will not be elaborated here.

[0168] During the process of the third data message being transmitted to the receiving terminal along the second path, the switching device on the second path may directly determine the outgoing port corresponding to the third data message according to the five-tuple of the third data message (including the entropy value of the second path), and then forward the third data message through the determined outgoing port.

[0169] During the process of the third data message being transmitted to the receiving terminal along the second path, the switching device on the second path may also fill the path status information of the second path in the third data message; then, determine the outgoing port corresponding to the third data message according to the five-tuple of the third data message (including the entropy value of the second path), and then forward the third data message filled with the path status information through the determined outgoing port.

[0170] Among them, the path status information may include path quality parameters of the second path (referred to as the second path quality parameters). The path quality parameters may include Minimum Available Bandwidth (MAB), Relative Minimum Available Bandwidth (RMAB), Max HopDelay, etc. The path status information may also include a congestion mark, which is added to the third data message by the switching device when detecting congestion on the second path. The congestion mark may be an Explicit Congestion Notification (ECN) mark, or may also be a congestion mark generated by other congestion control algorithms.

[0171] After the receiving terminal receives the third data packet, it generates an Acknowledge (ACK) packet (such as the first ACK packet); if the third data packet does not carry path status information, it directly feeds back the first ACK packet to the sending terminal; if the third data packet carries path status information, it extracts the path status information of the second path from the third data packet, and adds the extracted path status information to the first ACK packet. At this time, the first ACK packet corresponds to the second path; it feeds back the first ACK packet carrying the path status information of the second path to the sending terminal.

[0172] During the current polling period, when the sending terminal executes steps S201 to S204, it may receive the first ACK packet at any time. Then, if it receives the first ACK packet, it executes steps S301 to S302 to update the polling period value and path quality value of the second path recorded by the sending terminal.

[0173] Step S302, if the first ACK packet carries the path status information of the second path, update the polling period value and path quality value of the second path recorded by the sending terminal according to the path status information.

[0174] After receiving the first ACK packet, if the first ACK packet carries the path status information of the second path, the sending terminal can extract the path status information of the second path from the first ACK packet, and then update the polling period value and path quality value of the second path recorded by the sending terminal according to the path status information of the second path. The update of the information recorded by the sending terminal can be specifically divided into Case 1 to Case 2, as follows.

[0175] Case 1, the first ACK packet does not carry a congestion mark, that is, the path status information of the second path does not include a congestion mark.

[0176] In the embodiments of the present application, the sending terminal can preset status requirements, such as the first preset status requirement, the second preset status requirement, and the third preset status requirement. Among them,

[0177] The first preset status requirement may include: the path quality value of the second path recorded by the sending terminal is the first preset quality value;

[0178] The second preset status requirement may include: the path quality value of the second path recorded by the sending terminal is the second preset quality value; up to the current moment, the number of ACK packets corresponding to the second path received continuously by the sending terminal without a congestion mark is greater than or equal to the preset number;

[0179] The third preset status requirement may include: the path quality value of the second path recorded by the sending terminal is a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement; up to the current moment, the number of acknowledgment messages that do not carry a congestion mark and correspond to the second path received continuously by the sending terminal is less than a preset number. The preset number can be set according to actual needs. For example, the preset number can be 3, 4, 5, etc.

[0180] The sending terminal can perform corresponding processing according to the status requirement satisfied at the current moment. For specific details, refer to Case 11 to Case 13 below.

[0181] In Case 11, the first preset status requirement is satisfied at the current moment.

[0182] In this case, if the first acknowledgment message does not carry the second path quality parameter, that is, the path status information of the second path does not include the second path quality parameter, the sending terminal may not perform any processing. If the first acknowledgment message also carries the second path quality parameter, that is, the path status information of the second path includes the second path quality parameter, the sending terminal can determine the first polling period value corresponding to the second path quality parameter according to the pre-stored correspondence between the path quality parameter and the polling period value; set the polling period value of the second path recorded by the sending terminal to the first polling period value, and keep the path quality value of the second path recorded by the sending terminal as the first preset quality value.

[0183] In the embodiments of the present application, the sending terminal pre-stores the correspondence between the path quality parameter and the polling period value. When the path quality value of the second path recorded by the sending terminal is the first preset quality value, that is, when the path quality of the second path is good, after the sending terminal receives the first acknowledgment message that carries the path quality parameter but does not carry a congestion mark, it extracts the path quality parameter from the first acknowledgment message, that is, the second path quality parameter, searches for the corresponding relationship including the second path quality parameter from the pre-stored correspondence between the path quality parameter and the polling period value, takes the polling period value included in the found corresponding relationship as the first polling period value, and then sets the polling period value of the second path recorded by the sending terminal to the first polling period value without updating the path quality value of the second path recorded by the sending terminal.

[0184] For example, the path quality parameter is the relative minimum available bandwidth. The first preset quality value is 1. The correspondence between the minimum available bandwidth and the polling period value pre-stored by the sending terminal is shown in Table 5.

[0185] Table 5

[0186]

[0187] When the path quality value of path 1 recorded at the sending terminal is 1, and the sending terminal receives the acknowledgment message 1 corresponding to path 1, the acknowledgment message 1 includes the relative minimum available bandwidth 1 of path 1 and does not include a congestion mark, then: If the relative minimum available bandwidth 1 is greater than 20%, according to Table 5, the sending terminal can determine that the first polling cycle value is 1, and then set the polling cycle value of path 1 recorded by the sending terminal to 1, and the path quality value of path 1 remains 1; If the relative minimum available bandwidth 1 is greater than or equal to 10% and less than or equal to 20%, according to Table 5, the sending terminal can determine that the first polling cycle value is 2, and then set the polling cycle value of path 1 recorded by the sending terminal to 2, and the path quality value of path 1 remains 1; If the relative minimum available bandwidth 1 is less than 10%, according to Table 5, the sending terminal can determine that the first polling cycle value is 3, and then set the polling cycle value of path 1 recorded by the sending terminal to 3, and the path quality value of path 1 remains 1.

[0188] This method of dynamically adjusting the polling cycle value and path quality value of a path by combining congestion marks and path quality parameters enables the information recorded by the sending terminal to be updated in a timely and accurate manner, accurately representing the path state, further refining the guidance for packet spraying behavior, and facilitating reducing the possibility of path transmission congestion.

[0189] Case 12, the current moment meets the requirements of the second preset state.

[0190] In this case, if the first acknowledgment message does not carry the second path quality parameter, that is, the path state information of the second path does not include the second path quality parameter, the sending terminal may not perform any processing. If the first acknowledgment message also carries the second path quality parameter, that is, the path state information of the second path includes the second path quality parameter, the sending terminal can determine the second polling cycle value corresponding to the second path quality parameter according to the pre-stored correspondence between the path quality parameter and the polling cycle value; set the polling cycle value of the second path recorded by the sending terminal to the second polling cycle value; set the path quality value of the second path recorded by the sending terminal to the first preset quality value.

[0191] In the embodiment of the present application, the sending terminal pre-stores the correspondence between path quality parameters and polling period values. When the path quality value of the second path recorded by the sending terminal is the second preset quality value, that is, when the path quality of the second path is poor, the sending terminal receives a first acknowledgment message carrying path quality parameters but not carrying a congestion mark. If, until the current moment, a preset number of acknowledgment messages corresponding to the second path (including the above first acknowledgment message) received continuously do not carry a congestion mark, it indicates that the second path has recovered from the congested state and the path quality is good. The sending terminal extracts the path quality parameters from the first acknowledgment message, that is, the second path quality parameters, and searches for the corresponding relationship including the second path quality parameters from the pre-stored correspondence between path quality parameters and polling period values, and takes the polling period value included in the found corresponding relationship as the second polling period value. Furthermore, the polling period value of the second path recorded by the sending terminal is set to the second polling period value; the path quality value of the second path recorded by the sending terminal is set to the first preset quality value.

[0192] For example, the path quality parameter is the relative minimum available bandwidth. The first preset quality value is 1, the second preset quality value is 0, and the preset number is 3. The correspondence between the minimum available bandwidth and the polling period value pre-stored by the sending terminal is as shown in Table 5 above.

[0193] When the path quality value of path 1 recorded by the sending terminal is 0, the sending terminal receives acknowledgment message 1 corresponding to path 1 at time t1. Acknowledgment message 1 includes the relative minimum available bandwidth 1 of path 1 and does not include a congestion mark. Until time t1, if the 3 acknowledgment messages corresponding to path 1 received continuously by the sending terminal (including acknowledgment message 1) do not include a congestion mark, then: if the relative minimum available bandwidth 1 is greater than 20%, according to Table 5, the sending terminal can determine that the first polling period value is 1, and further set the polling period value of path 1 recorded by the sending terminal to 1, and the path quality value of path 1 to 1; if the relative minimum available bandwidth 1 is greater than or equal to 10% and less than or equal to 20%, according to Table 5, the sending terminal can determine that the first polling period value is 2, and further set the polling period value of path 1 recorded by the sending terminal to 2, and the path quality value of path 1 to 1; if the relative minimum available bandwidth 1 is less than 10%, according to Table 5, the sending terminal can determine that the first polling period value is 3, and further set the polling period value of path 1 recorded by the sending terminal to 3, and the path quality value of path 1 to 1.

[0194] This method of dynamically adjusting the polling period value and path quality value of the path by combining the congestion mark and path quality parameters enables the information recorded by the sending terminal to be updated in a timely and accurate manner, accurately representing the path state, further refining the guidance for packet spraying behavior, and facilitating reducing the possibility of path sending congestion.

[0195] Scenario 13, the current moment meets the requirements of the third preset state.

[0196] In this case, regardless of whether the first acknowledgment message carries the second path quality parameter, the sending terminal maintains the polling period value and path quality value of the second path recorded by the sending terminal, that is, does not update the polling period value and path quality value of the second path.

[0197] In the embodiments of the present application, when the path quality value of the second path recorded by the sending terminal is the second preset quality value, that is, when the path quality of the second path is poor, the sending terminal receives a first acknowledgment message without a congestion mark. If, up to the current moment, the number of consecutive acknowledgment messages (including the above-mentioned first acknowledgment message) corresponding to the second path without a congestion mark is less than the preset number, it indicates that the second path has not yet recovered from the congested state and is still in the congested state with poor path quality. Do not update the polling period value and path quality value of the second path recorded by the sending terminal, that is, keep the polling period value and path quality value of the second path recorded by the sending terminal unchanged, so as to keep not using the second path to transmit data messages, make the second path recover to the non-congested state as soon as possible, and avoid frequently updating the polling period value of the second path, causing waste of resources.

[0198] Scenario 2, the first acknowledgment message carries a congestion mark, that is, the path status information of the second path includes a congestion mark.

[0199] In this case, regardless of whether the first acknowledgment message carries the second path quality parameter, the sending terminal can set the polling period value of the second path recorded by the sending terminal to the second preset period value and set the path quality value of the second path recorded by the sending terminal to the second preset quality value.

[0200] Among them, the preset duration can be set according to the actual duration required for congestion recovery. In one example, the preset duration can be N × Round-Trip Time (RTT), where RTT is the round-trip delay of transmitting messages between the sending terminal and the receiving terminal along the second path, 2 N is greater than or equal to the minimum value of the number of paths (i.e., the entropy space) between the sending terminal and the receiving terminal. For example, the number of paths between the sending terminal and the receiving terminal is 64, 2 6 equals 64, then N = 6, or the number of paths between the sending terminal and the receiving terminal is 50, 2 5 equals 32, 32 < 50, 2 6 equals 64, 64 > 50, then N = 6.

[0201] In the embodiments of the present application, if the first confirmation message carries a congestion flag, indicating that the second path is congested, after the sending terminal sets the polling period value of the second path to the second preset period value, the second path will not participate in polling within a preset duration, that is, the sending terminal will not select the second path to transmit data messages within the preset duration after the current moment, so as to relieve the congestion degree of the second path.

[0202] In some embodiments, after setting the polling period value of the second path recorded by the sending terminal to the second preset period value, the sending terminal waits for a preset duration. After waiting for the preset duration, it can be considered that the second path has recovered from the congested state. Then, the sending terminal sets the polling period value of the second path recorded by the sending terminal to the first polling period value, and sets the path quality value of the second path recorded by the sending terminal to the first preset quality value. This enables the second path to participate in polling and perform packet spraying, improving the message transmission efficiency and bandwidth utilization rate.

[0203] In some embodiments, after setting the polling period value of the second path recorded by the sending terminal to the second preset period value, the sending terminal waits for a preset duration. After waiting for the preset duration, it can be considered that the second path has recovered from the congested state. Then, the sending terminal sets the polling period value of the second path recorded by the sending terminal to the first preset period value, and keeps the path quality value of the second path recorded by the sending terminal as the second preset quality value.

[0204] Before setting the polling period value of the second path to the second preset period value, due to the congestion of the second path, the data messages transmitted along the second path are still being transmitted on the second path and have not reached the receiving terminal. After setting the polling period value of the second path to the second preset period value, when the congestion of the second path recovers, these data messages that are being transmitted on the second path and have not reached the receiving terminal will arrive at the receiving terminal one after another, and then the receiving terminal will feedback corresponding confirmation messages to the sending terminal.

[0205] Before the sending terminal waits for the preset duration and sets the polling period value of the second path recorded by the sending terminal to the first preset period value, the sending terminal will receive the confirmation message corresponding to the second path, but will not update the information of the second path recorded by the sending terminal according to the confirmation message. After the sending terminal waits for the preset duration and sets the polling period value of the second path recorded by the sending terminal to the first preset period value, the sending terminal will update the information of the second path recorded by the sending terminal according to the received confirmation message, such as the polling period value and the path quality value.

[0206] That is, after waiting for a preset duration at the sending terminal and setting the polling period value of the second path recorded by the sending terminal to the first preset period value, the sending terminal can execute steps S301 to S302 again. According to the conditions satisfied at the current moment (such as the above-mentioned cases 11 to 13, case 2), the sending terminal updates the polling period value and the path quality value of the second path recorded by the sending terminal, so that the information recorded by the sending terminal can be updated in a timely and accurate manner, accurately representing the path state, further refining the guidance for the packet spraying behavior, facilitating reducing the possibility of path sending congestion, and improving the bandwidth utilization rate.

[0207] Corresponding to the above message transmission method applied to the sending terminal, an embodiment of the present application further provides a message transmission method, as Figure 4 shown, applied to a switching device. The method includes the following steps:

[0208] Step S401: Receive a second data packet sent by a sending terminal, where the second data packet is a data packet obtained by the sending terminal according to any of the above message transmission methods;

[0209] Step S402: Determine the outgoing port corresponding to the second data packet according to the entropy value included in the second data packet;

[0210] Step S403: Transmit the second data packet to the receiving terminal through the outgoing port.

[0211] In the technical solution provided by the embodiment of the present application, the sending terminal can record the entropy values, path quality values, and polling period values of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling period value, the sending terminal selects a path that can be polled within the current polling period of the path and whose path quality meets the preset quality requirements, and then polls the selected path, and fills the entropy value of the corresponding path into the data packet to be transmitted, ensuring that the data packet is transmitted along the polled path.

[0212] In the embodiments of the present application, the path quality value and the polling period value can reflect the status of multiple paths between the sending terminal and the receiving terminal. For example, the path quality value of a severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of a less congested path indicates that the path quality meets the preset quality requirements, but the polling period value is greater than the first preset period value to avoid polling this path within the current polling period, thereby alleviating the congestion condition of this path. Based on the path quality value and the polling period value, the sending terminal can perceive the congestion degree of the path. When spraying packets one by one, that is, randomly distributing multiple data packets on a data stream to paths with good path status (such as paths with a path quality value of the first preset quality value and a polling period value of the first preset period value), it can effectively solve the problem of blindly guiding data packets to congested paths, which causes the congestion degree of the path to increase sharply and the performance to decline rapidly while making full use of the network link bandwidth.

[0213] In the above step S401, the process of the sending terminal obtaining the second data packet and sending the second data packet can refer to the relevant description in the above Figure 2 part, which will not be elaborated here.

[0214] For the switching device on the first path polled by the sending terminal, the switching device can receive the second data packet.

[0215] In the above step S402, the sending terminal fills the source port field in the second data packet with the entropy value of the first path. After receiving the second data packet, the switching device can directly perform a hash calculation based on the source IP address, source port (i.e., the entropy value of the first path), destination IP address, destination port, and four-layer network communication protocol type included in the second data packet to select a path for the second data packet, that is, select the outgoing port path corresponding to the first path. Then, the switching device executes step S403 to transmit the second data packet to the receiving terminal through the outgoing port, realizing the transmission of the second data packet along the first path.

[0216] In some embodiments, the above step S403 may be: obtaining the path status information corresponding to the outgoing port; filling the path status information into the second data packet; and transmitting the filled second data packet to the receiving terminal through the outgoing port.

[0217] In the embodiments of the present application, the path status information may include path quality parameters and congestion marks.

[0218] The switching device can enable the path quality detection function, such as the In-network Telemetry (INT) function. When the path quality detection function is enabled, the switching device can detect the path quality parameters in real time. After receiving the second data packet, the switching device can obtain the path quality parameters and fill the path quality parameters into the second data packet.

[0219] In the embodiments of this application, the switching device can fill the path quality parameters in the second data packet in an accumulative form, that is, if the second data packet passes through several switching devices that enable the path quality detection function along the first path, several groups of path quality parameters will be added to the second data packet.

[0220] As Figure 5 shown in the packet transmission process, there are three switching devices, Switching Device A to Switching Device C, on a path between the sending terminal and the receiving terminal, and these three switching devices have all enabled the INT function. The sending terminal sends Packet 1. When Packet 1 passes through Switching Device A, Switching Device A fills the path quality parameter 1 in the end field of the packet header of Packet 1; when Packet 1 passes through Switching Device B, Switching Device B fills the path quality parameter 2 after the path quality parameter 1 of Packet 1; when Packet 1 passes through Switching Device C, Switching Device C fills the path quality parameter 3 after the path quality parameter 2 of Packet 1. The receiving terminal receives Packet 1 carrying three path quality parameters.

[0221] In the embodiments of this application, the switching device can also fill the path quality parameters in the second data packet in an overwriting form, that is, each switching device that enables the INT function along the first path updates the path quality parameters carried by the second data packet, and the second data packet carries a group of path quality parameters.

[0222] As Figure 6 shown in the packet transmission process, there are three switching devices, Switching Device A to Switching Device C, on a path between the sending terminal and the receiving terminal, and these three switching devices have all enabled the INT function. The sending terminal sends Packet 1. When Packet 1 passes through Switching Device A, Switching Device A fills the path quality parameter 1 in the end field of the packet header of Packet 1, as Figure 6The minimum available bandwidth is 100 Gbps, the relative minimum available bandwidth is 15%, and the maximum per-hop delay is 10 microseconds (μs); when the message 1 passes through the switching device B, the switching device B compares the group path quality parameter 1 with its own group path quality parameter 2 (the minimum available bandwidth is 90 Gbps, the relative minimum available bandwidth is 95%, and the maximum per-hop delay is 18 μs), and obtains the new group path quality parameter 2', that is, the minimum available bandwidth is 90 Gbps, the relative minimum available bandwidth is 15%, and the maximum per-hop delay is 18 μs, and updates the group path quality parameter 1 of the message 1 to the group path quality parameter 2'; when the message 1 passes through the switching device C, the switching device C compares the group path quality parameter 2' with its own group path quality parameter 3 (the minimum available bandwidth is 20 Gbps, the relative minimum available bandwidth is 50%, and the maximum per-hop delay is 3 μs), and obtains the new group path quality parameter 3', that is, the minimum available bandwidth is 20 Gbps, the relative minimum available bandwidth is 15%, and the maximum per-hop delay is 18 μs, and updates the group path quality parameter 2' of the message 1 to the group path quality parameter 3'. The receiving terminal receives the message 1 carrying 1 group path quality parameter 3'.

[0223] The switching device can add path quality parameters to each received data packet, so that each acknowledgment packet carried back by the receiving terminal to the sending terminal carries path quality parameters, improving the real-time performance of the path quality value and the polling period, and facilitating further reducing the possibility of path sending congestion.

[0224] The switching device can also add path quality parameters to data packets carrying specified tags to reduce network overhead. For example, the sending terminal samples the data packets to be transmitted at regular intervals, adds a specified tag (such as an INT tag) to the sampled data packets, and then fills in the entropy value in the data packets and transmits them. The switching device adds path quality parameters to the data packets only when it detects that the received data packets carry the specified tag.

[0225] In the embodiments of the present application, the switching device can also enable the congestion control function. When the congestion control function is enabled, the switching device can detect the path congestion state in real time. After receiving the second data packet, if the first path congestion is detected, the switching device can obtain the congestion mark and fill the congestion mark into the second data packet. If the first path is detected to be congestion-free, there is no need to fill the congestion mark into the second data packet.

[0226] In the embodiments of the present application, a switching device can enable the path quality detection function, or enable the congestion control function, or enable both the path quality detection function and the congestion control function at the same time. The user can enable or disable the path quality detection function and the congestion control function of each switching device in the data center according to actual needs. By filling the path status information in the second data packet, it is ensured that the sending terminal can obtain the required data to update the path quality value and the polling period value, further refining the guidance for the packet spraying behavior, which is beneficial to reducing the possibility of path transmission congestion.

[0227] Corresponding to the above message transmission method applied to the sending terminal, the embodiments of the present application also provide a message transmission method, as Figure 7 shown, applied to the receiving terminal, the method includes the following steps:

[0228] Step S701, receive a second data packet from the sending terminal, where the second data packet is a data packet obtained by the sending terminal according to any of the above message transmission methods;

[0229] Step S702, process the second data packet.

[0230] In the technical solution provided by the embodiments of the present application, the sending terminal can record the entropy value, path quality value, and polling period value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling period value, the sending terminal selects a path that can be polled within the current polling period of the path and the path quality meets the preset quality requirements, and then polls the selected path, and fills the entropy value of the corresponding path in the data packet to be transmitted, ensuring that the data packet is transmitted along the polled path.

[0231] In the embodiments of the present application, the path quality value and the polling period value can reflect the status of multiple paths between the sending terminal and the receiving terminal. For example, the path quality value of a severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of a lightly congested path indicates that the path quality meets the preset quality requirements, but the polling period value is greater than the first preset period value to avoid polling this path within the current polling period, thereby alleviating the congestion condition of this path. According to the path quality value and the polling period value, the sending terminal can perceive the congestion degree of the path. When spraying packets one by one, that is, randomly distributing multiple data packets on a data stream to paths with good path status (such as paths with a path quality value of the first preset quality value and a polling period value of the first preset period value), it can effectively solve the problem of blindly guiding data packets to congested paths, which causes the congestion degree of the path to increase and the performance to drop sharply while making full use of the network link bandwidth.

[0232] In the above step S701, the process of the sending terminal obtaining the second data packet and sending the second data packet can be referred to the above Figure 2The related description of the part will not be elaborated here.

[0233] In the above step S702, after receiving the second data packet, the receiving terminal performs AI training processing on the second data packet, etc.

[0234] In some embodiments, after the receiving terminal receives the second data packet, if the second data packet carries path status information, the receiving terminal may extract the path status information from the second data packet. The path status information is filled into the second data packet by the switching device through which the second data packet passes. For specific details, please refer to the related description in the above Figure 6 part; and send an acknowledgment packet carrying the path status information to the sending terminal.

[0235] In this way, the sending terminal can obtain the acknowledgment packet carrying the path status information, and then update the path quality value and the polling period value, which further refines the guidance for the packet spraying behavior and helps reduce the possibility of path sending congestion.

[0236] Next, in combination with Figure 8 the signaling diagram of the packet transmission shown below, the packet transmission method provided by the embodiments of the present application will be described in detail. Figure 8 Taking Server 1 as the sending terminal and Server 2 as the receiving terminal as an example for illustration, which is not restrictive. On a port 1 of Server 1, the size of the entropy value space between Server 1 and Server 2 is 64, that is, there are 64 paths between port 1 on Server 1 and a port 2 on Server 2. It can also be understood that there are 64 paths between Server 1 and Server 2, and one port is connected to one switching device. The path quality parameter is the relative minimum available bandwidth. The first preset quality value is 1, the second preset quality value is 0, the first preset period value is 1, and the second preset period value is 0. Server 1 obtains the path quality parameter in the INT manner.

[0237] In the embodiments of the present application, Server 1 constructs a mapping table based on the size of the entropy value space. As shown in Table 6, the mapping table includes 64 table entries. Each table entry includes an entropy value, a path quality value, and a polling period value. In mapping table 6, the entropy value range is 1 to 64, and both the path quality value and the polling period value are 1.

[0238] Table 6

[0239]

[0240] Figure 8 The signaling diagram for the sending terminal to transmit data packets may include the following steps:

[0241] Step S801, Server 1 selects a path with a polling period value of 1 and a path quality value of 1 according to the mapping table corresponding to port 1.

[0242] In the initial state, both the path quality value and the polling period value in the mapping table are 1, and Server 1 can select 64 paths, that is, 64 entropy values.

[0243] Step S802, Server 1 polls the paths selected in Step S801 within the current polling period.

[0244] Taking the current polling period as Polling Period 1 and the path 1 corresponding to the entropy value 1 being polled as an example.

[0245] Step S803, when Server 1 obtains the data packet 1 to be transmitted through Port 1, it fills the entropy value 1 into the source port field of the data packet 1 to obtain the data packet 2.

[0246] Step S804, Server 1 sends the data packet 2.

[0247] Server 1 sends the data packet 2 through Port 1. After that, Server 1 returns to execute Step S802 and continues to poll the paths selected in Step S801. For example, when polling the path 2 corresponding to the entropy value 1, when Server 1 obtains the data packet 11 to be transmitted through Port 1, it fills the entropy value 1 into the source port field of the data packet 11 to obtain the data packet 12, and then sends the data packet 12, and so on, which will not be elaborated here. After all the paths selected in Step S801 have been polled, this Polling Period 1 ends and enters the next polling period of Polling Period 1, such as Polling Period 2. Taking Polling Period 2 as the current polling period, Server 1 re-executes Step S801.

[0248] In the embodiment of the present application, if the data packet 2 is an INT sampling packet, the data packet 2 sent by Server 1 carries an INT mark. If the data packet 2 is not an INT sampling packet, the data packet 2 sent by Server 1 does not carry an INT mark.

[0249] Step S805, after receiving the data packet 2, the switching device on Path 1 performs a hash calculation based on the five-tuple of the data packet 2 to select a path for the data packet 2, that is, the output port 2 corresponding to Path 1.

[0250] Step S806, the switching device on Path 1 detects whether congestion occurs on Path 1. If so, it executes Step S807; if not, it takes the data packet 2 as the data packet 3 and executes Step S808.

[0251] Step S807, the switching device on Path 1 adds a congestion mark to the data packet 2 to obtain the data packet 3.

[0252] Step S808, the switching device on path 1 detects whether data packet 2 carries an INT mark. If so, step S809 is executed; if not, data packet 3 is used as data packet 4 and step S810 is executed.

[0253] Step S809, the switching device on path 1 adds path quality parameters to data packet 3 to obtain data packet 4.

[0254] In the embodiments of the present application, the execution order of step S805, step S806, and step S808 is not limited. For example, step S805 can be executed first, then step S808, and then step S806. As long as the outport corresponding to path 1 is determined, and in the case of congestion on path 1 and data packet 2 carrying an INT mark, data packet 4 carries path status information such as a congestion mark and path quality parameters.

[0255] Step S810, the switching device on path 1 sends data packet 4 through outport 2.

[0256] Step S811, after receiving data packet 4, server 2 processes data packet 4.

[0257] Step S812, server 2 sends ACK packet 1 corresponding to data packet 4 to server 1.

[0258] In the embodiments of the present application, ACK packet 1 is the ACK packet corresponding to path 1. If data packet 4 carries path status information, ACK packet 1 carries path status information. If data packet 4 does not carry path status information, ACK packet 1 does not carry path status information.

[0259] In the embodiments of the present application, the execution order of step S811 and step S812 is not limited.

[0260] Step S813, after receiving ACK packet 1, server 1 updates the polling period value and path quality value of path 1 in the mapping table according to ACK packet 1. For specific details, please refer to the relevant descriptions in the above cases 1 to 2, which will not be elaborated here.

[0261] In the embodiments of the present application, server 1 updates the path quality value and polling period value according to the path status information of each path, further refining the guidance for packet spraying behavior, which is beneficial to reducing the possibility of path transmission congestion.

[0262] Corresponding to the above message transmission method, the embodiments of the present application further provide a message transmission device, as Figure 9 shown, applied to a sending terminal. The sending terminal records the entropy value, path quality value, and polling period value of multiple paths between the sending terminal and the receiving terminal. The device includes:

[0263] A determination module 901, configured to select, from multiple paths, a path whose polling cycle value is a first preset cycle value and whose path quality value is a first preset quality value, where the first preset cycle value indicates that the path is polled within the current polling cycle of the path, and the first preset quality value indicates that the path quality meets a preset quality requirement;

[0264] A polling module 902, configured to poll the selected path within the current polling cycle to obtain a first path;

[0265] A filling module 903, configured to fill the entropy value of the first path into the source port field of a first data packet to be transmitted to obtain a second data packet;

[0266] A sending module 904, configured to send the second data packet to a receiving terminal, so that a switching device that receives the second data packet transmits the second data packet to the receiving terminal according to the entropy value included in the second data packet.

[0267] In some embodiments, the above-mentioned packet transmission device further includes:

[0268] A receiving module, configured to receive a first acknowledgment packet corresponding to a second path fed back by the receiving terminal according to a third data packet, where the third data packet is a historical data packet sent by a sending terminal, and the third data packet carries the entropy value of the second path;

[0269] An updating module, configured to, if the first acknowledgment packet carries the path status information of the second path, update the polling cycle value and the path quality value of the second path recorded by the sending terminal according to the path status information.

[0270] In some embodiments, the path status information includes a second path quality parameter and does not include a congestion flag;

[0271] The updating module is specifically configured to: under the condition of meeting a first preset status requirement, determine a first polling cycle value corresponding to the second path quality parameter according to the corresponding relationship between the path quality parameter and the polling cycle value stored in advance; set the polling cycle value of the second path recorded by the sending terminal to the first polling cycle value, and keep the path quality value of the second path recorded by the sending terminal as the first preset quality value;

[0272] Wherein, the first preset status requirement includes: the path quality value of the second path recorded by the sending terminal is the first preset quality value.

[0273] In some embodiments, the path status information includes a second path quality parameter and does not include a congestion flag;

[0274] The update module is specifically configured to: when the second preset status requirement is met, determine the second polling period value corresponding to the second path quality parameter according to the corresponding relationship between the path quality parameter and the polling period value stored in advance; set the polling period value of the second path recorded by the sending terminal to the second polling period value; set the path quality value of the second path recorded by the sending terminal to the first preset quality value;

[0275] Among them, the second preset status requirement includes:

[0276] The path quality value of the second path recorded by the sending terminal is the second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement;

[0277] Up to the current moment, the number of acknowledgment packets without congestion marks corresponding to the second path continuously received by the sending terminal is greater than or equal to the preset number.

[0278] In some embodiments, the path status information does not include a congestion mark;

[0279] The update module is specifically configured to: when the third preset status requirement is met, maintain the polling period value and the path quality value of the second path recorded by the sending terminal;

[0280] Among them, the third preset status requirement includes:

[0281] The path quality value of the second path recorded by the sending terminal is the second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement;

[0282] Up to the current moment, the number of acknowledgment packets without congestion marks corresponding to the second path continuously received by the sending terminal is less than the preset number.

[0283] In some embodiments, the path status information includes a congestion mark;

[0284] The update module is specifically configured to: set the polling period value of the second path recorded by the sending terminal to the second preset period value, and set the path quality value of the second path recorded by the sending terminal to the second preset quality value. The second preset period value indicates that the path is prohibited from being selected within the preset duration, and the second preset quality value indicates that the path quality does not meet the preset requirement.

[0285] In some embodiments, the update module is further configured to: after setting the polling period value of the second path recorded by the sending terminal to the second preset period value, wait for the preset duration, and then set the polling period value of the second path recorded by the sending terminal to the first preset period value, and maintain the path quality value of the second path recorded by the sending terminal as the second preset quality value.

[0286] In some embodiments, a path recorded by a sending terminal, whose polling period value is greater than a first preset period value and path quality value is a first preset quality value, is a candidate path; the above message transmission device further includes:

[0287] A subtraction module, configured to subtract one from the polling period value of the candidate path recorded by the sending terminal after the end of the current polling period.

[0288] In the technical solution provided by the embodiments of the present application, the sending terminal can record the entropy value, path quality value, and polling period value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and polling period value, the sending terminal selects a path that can be polled within the current polling period of the path and the path quality meets the preset quality requirements, and then polls the selected path, and fills the entropy value of the corresponding path into the data packet to be transmitted, ensuring that the data packet is transmitted along the polled path.

[0289] In the embodiments of the present application, the path quality value and polling period value can reflect the states of multiple paths between the sending terminal and the receiving terminal. For example, the path quality value of a path with severe congestion indicates that the path quality does not meet the preset quality requirements, and the path quality value of a path with less congestion indicates that the path quality meets the preset quality requirements, but the polling period value is greater than the first preset period value to avoid polling this path within the current polling period, thereby alleviating the congestion condition of this path. The sending terminal can sense the congestion degree of the path according to the path quality value and polling period value. In packet-by-packet spraying, that is, randomly distributing multiple data packets on a data stream to paths with good path states (such as paths with a path quality value of the first preset quality value and a polling period value of the first preset period value), it can effectively solve the problem of blindly guiding data packets to congested paths, which causes the congestion degree of the path to increase and the performance to drop sharply while making full use of the network link bandwidth.

[0290] Corresponding to the above message transmission method, the embodiments of the present application further provide a message transmission device, as Figure 10 shown, applied to a switching device, and the device includes:

[0291] A receiving module 1001, configured to receive a second data packet sent by a sending terminal, where the second data packet is a data packet obtained by the sending terminal according to any one of the above devices applied to the sending terminal;

[0292] A determining module 1002, configured to determine an output port corresponding to the second data packet according to the entropy value included in the second data packet;

[0293] A transmitting module 1003, configured to transmit the second data packet to the receiving terminal through the output port.

[0294] In some embodiments, the transmission module 1003 may specifically be configured to: obtain the path status information corresponding to the outgoing port; fill the path status information into the second data packet; and transmit the filled second data packet to the receiving terminal through the outgoing port.

[0295] In the technical solution provided by the embodiments of the present application, the sending terminal may record the entropy value, path quality value, and polling period value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling period value, the sending terminal selects a path that can be polled within the current polling period of the path and whose path quality meets the preset quality requirement, and then polls the selected path, and fills the entropy value of the corresponding path into the data packet to be transmitted, ensuring that the data packet is transmitted along the polled path.

[0296] In the embodiments of the present application, the path quality value and the polling period value can reflect the status of multiple paths between the sending terminal and the receiving terminal. For example, the path quality value of a path with severe congestion indicates that the path quality does not meet the preset quality requirement, and the path quality value of a path with less congestion indicates that the path quality meets the preset quality requirement, but the polling period value is greater than the first preset period value to avoid polling this path within the current polling period, thereby alleviating the congestion condition of this path. Based on the path quality value and the polling period value, the sending terminal can perceive the congestion degree of the path, and in packet-by-packet spraying, that is, randomly distributing multiple data packets on a data stream to paths with good path status (such as paths with a path quality value of the first preset quality value and a polling period value of the first preset period value). Under the condition of making full use of the network link bandwidth, it can effectively solve the problem of blindly guiding data packets to congested paths, which causes the congestion degree of the path to increase and the performance to drop sharply.

[0297] Corresponding to the above message transmission method, the embodiments of the present application further provide a message transmission device, as Figure 11 shown, which is applied to the receiving terminal. The device includes:

[0298] A receiving module 1101, configured to receive a second data packet from the sending terminal, where the second data packet is a data packet obtained by the sending terminal according to any of the devices applied to the sending terminal;

[0299] A processing module 1102, configured to process the second data packet.

[0300] In some embodiments, the above message transmission device may further include:

[0301] A feedback module, configured to extract path status information from the second data packet, where the path status information is filled into the second data packet by the switching device passed by the second data packet; and send an acknowledgment packet carrying the path status information to the sending terminal.

[0302] In the technical solution provided by the embodiment of the present application, the sending terminal can record the entropy value, path quality value, and polling period value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling period value, the sending terminal selects a path that can be polled within the current polling period of the path and whose path quality meets the preset quality requirement, and then polls the selected path. The entropy value of the corresponding path is filled in the data packet to be transmitted to ensure that the data packet is transmitted along the polled path.

[0303] In the embodiment of the present application, the path quality value and the polling period value can reflect the status of multiple paths between the sending terminal and the receiving terminal. For example, the path quality value of a path with severe congestion indicates that the path quality does not meet the preset quality requirement, and the path quality value of a path with less congestion indicates that the path quality meets the preset quality requirement, but the polling period value is greater than the first preset period value to avoid polling this path within the current polling period, thereby alleviating the congestion condition of this path. Based on the path quality value and the polling period value, the sending terminal can perceive the congestion degree of the path. When spraying packets one by one, that is, randomly distributing multiple data packets on a data stream to paths with good path status (such as paths with a path quality value of the first preset quality value and a polling period value of the first preset period value), it can effectively solve the problem of blindly guiding data packets to congested paths, which leads to an exacerbation of the path congestion degree and a sharp decline in performance while making full use of the network link bandwidth.

[0304] Corresponding to the above message transmission method, the embodiment of the present application further provides a terminal, as Figure 12 shown, including a processor 1201 and a machine-readable storage medium 1202. The machine-readable storage medium 1202 stores machine-executable instructions that can be executed by the processor 1201. The processor 1201 is prompted by the machine-executable instructions to implement any of the above message transmission methods applied to the sending terminal, or to implement any of the above message transmission methods applied to the receiving terminal.

[0305] Corresponding to the above message transmission method, the embodiment of the present application further provides a switching device, as Figure 13 shown, including a processor 1301 and a machine-readable storage medium 1302. The machine-readable storage medium 1302 stores machine-executable instructions that can be executed by the processor 1301. The processor 1301 is prompted by the machine-executable instructions to implement any of the above message transmission methods applied to the switching device.

[0306] The machine-readable storage medium may include a Random Access Memory (RAM), or may also include a non-volatile memory (NVM), such as at least one disk memory. Optionally, the machine-readable storage medium may also be at least one storage device located away from the aforementioned processor.

[0307] The processor may be a general-purpose processor, including a Central Processing Unit (CPU), a Network Processor (NP), etc.; it may also be a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.

[0308] In another embodiment provided by the present application, a computer-readable storage medium is further provided. A computer program is stored in the computer-readable storage medium. When the computer program is executed by a processor, it implements any of the above-mentioned message transmission methods applied to a sending terminal, or implements any of the above-mentioned message transmission methods applied to a receiving terminal, or implements any of the above-mentioned message transmission methods applied to a switching device.

[0309] In another embodiment provided by the present application, a computer program product containing instructions is further provided. When it runs on a computer, it causes the computer to execute any of the above-mentioned message transmission methods applied to a sending terminal, or execute any of the above-mentioned message transmission methods applied to a receiving terminal, or execute any of the above-mentioned message transmission methods applied to a switching device.

[0310] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from a website, computer, server, or data center to another website, computer, server, or data center via wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access, or a data storage device such as a server or data center that includes one or more integrated available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk (SSD)).

[0311] It should be noted that, in this document, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the term "comprising", "including" or any other variant thereof is intended to cover non-exclusive inclusion, such that a process, method, article or device comprising a series of elements includes not only those elements, but also other elements not expressly listed, or elements inherent to such process, method, article or device. Without further limitation, an element defined by the statement "comprising a..." does not exclude the existence of additional identical elements in the process, method, article or device comprising said element.

[0312] Each embodiment in this specification is described in a related manner. The same or similar parts between the embodiments can be referred to each other, and the differences between each embodiment and other embodiments are emphasized. In particular, for the embodiments of the device, terminal, switching device, storage medium, and program product, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments.

[0313] The above are only the preferred embodiments of the present application and are not intended to limit the protection scope of the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present application are all included in the protection scope of the present application.

Claims

1. A message transmission method, characterized in that: Applied to a sending terminal, the sending terminal records entropy values, path quality values, and polling period values ​​of multiple paths between the sending terminal and a receiving terminal, and the method includes: From the multiple paths, select a path whose polling cycle value is a first preset cycle value and whose path quality value is a first preset quality value, wherein the polling cycle value indicates a polling cycle in which the path is polled, the path quality value indicates the path quality, the first preset cycle value indicates that the path is polled within the current polling cycle, and the first preset quality value indicates that the path quality meets a preset quality requirement; In the current polling cycle, poll the selected path to obtain a first path; Filling the entropy value of the first path into the source port field of the first data message to be transmitted to obtain a second data message; The second data packet is sent to a receiving terminal, so that the switching device that receives the second data packet transmits the second data packet to the receiving terminal according to the entropy value included in the second data packet.

2. The method according to claim 1, characterized in that The method further comprises: receiving a first confirmation message corresponding to the second path fed back by the receiving terminal according to a third data message, where the third data message is a historical data message sent by the sending terminal, and the third data message carries the entropy value of the second path; If the first confirmation message carries the path status information of the second path, the polling period value and the path quality value of the second path recorded by the sending terminal are updated according to the path status information.

3. The method according to claim 2, characterized in that The path state information includes a second path quality parameter but does not include a congestion mark; and the step of updating the polling period value and the path quality value of the second path recorded by the sending terminal according to the path state information comprises: In the case where the first preset state requirement is met, determining a first polling cycle value corresponding to the second path quality parameter according to a pre-stored correspondence between the path quality parameter and the polling cycle value; Setting the polling period value of the second path recorded by the sending terminal to the first polling period value, and maintaining the path quality value of the second path recorded by the sending terminal to the first preset quality value; Wherein, the first preset state requirement includes: The path quality value of the second path recorded by the sending terminal is a first preset quality value.

4. The method according to claim 2, characterized in that: The path state information includes a second path quality parameter but does not include a congestion mark; and the step of updating the polling period value and the path quality value of the second path recorded by the sending terminal according to the path state information comprises: In the case where the second preset state requirement is met, determining a second polling cycle value corresponding to the second path quality parameter according to a pre-stored correspondence between the path quality parameter and the polling cycle value; Setting the polling period value of the second path recorded by the sending terminal to the second polling period value; Setting the path quality value of the second path recorded by the sending terminal to the first preset quality value; The second preset state requirement includes: The path quality value of the second path recorded by the sending terminal is a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement; Up to the current moment, the number of confirmation messages that the sending terminal has continuously received and that do not carry a congestion mark and that correspond to the second path is greater than or equal to a preset number.

5. The method according to claim 2, characterized in that: The path status information does not include a congestion mark; The step of updating the polling period value and the path quality value of the second path recorded by the sending terminal according to the path state information comprises: When the third preset state requirement is met, the polling period value and the path quality value of the second path recorded by the sending terminal are maintained; Wherein, the third preset state requirement includes: The path quality value of the second path recorded by the sending terminal is a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement; Up to the current moment, the number of confirmation messages that the sending terminal has continuously received and that do not carry a congestion mark and that correspond to the second path is less than a preset number.

6. The method according to claim 2, characterized in that The path status information includes a congestion mark; the step of updating the polling period value and the path quality value of the second path recorded by the sending terminal according to the path status information includes: The polling period value of the second path recorded by the sending terminal is set to a second preset period value, and the path quality value of the second path recorded by the sending terminal is set to a second preset quality value, the second preset period value indicates that the path is prohibited from being selected within a preset time length, and the second preset quality value indicates that the path quality does not meet preset requirements.

7. The method according to claim 6, characterized in that After setting the polling period value of the second path recorded by the sending terminal to a second preset period value, the method further includes: After waiting for the preset time period, the polling period value of the second path recorded by the sending terminal is set to the first preset period value, and the path quality value of the second path recorded by the sending terminal is kept as the second preset quality value.

8. The method according to any one of claims 1 to 7, characterized in that: The path recorded by the sending terminal, whose polling period value is greater than the first preset period value and whose path quality value is the first preset quality value, is a candidate path; after the current polling period ends, the method further includes: The polling period value of the candidate path recorded by the sending terminal is reduced by one.

9. A message transmission method, characterized in that: Applied to a switching device, the method comprises: Receiving a second data message sent by a sending terminal, where the second data message is a data message obtained by the sending terminal according to the method according to any one of claims 1 to 8; Determine, according to the entropy value included in the second data packet, an egress port corresponding to the second data packet; The second data message is transmitted to a receiving terminal through the egress port.

10. The method according to claim 9, characterized in that The step of transmitting the second data message to the receiving terminal through the egress port includes: Obtaining path status information corresponding to the egress port; Filling the path status information into the second data message; The filled second data message is transmitted to the receiving terminal through the egress port.

11. A message transmission method, characterized in that: Applied to a receiving terminal, the method comprises: Receiving a second data message from a sending terminal, where the second data message is a data message obtained by the sending terminal according to the method according to any one of claims 1 to 8; The second data message is processed.

12. The method according to claim 11, characterized in that The method further comprises: Extracting path state information from the second data packet, the path state information being filled into the second data packet by a switching device through which the second data packet passes; Sending a confirmation message carrying the path status information to the sending terminal.

13. A message transmission device, characterized in that: Applied to a sending terminal, the sending terminal records entropy values, path quality values, and polling period values ​​of multiple paths between the sending terminal and a receiving terminal, and the device includes: A determination module, configured to select, from the plurality of paths, a path whose polling cycle value is a first preset cycle value and whose path quality value is a first preset quality value, wherein the polling cycle value indicates a polling cycle in which the path is polled, the path quality value indicates the path quality, the first preset cycle value indicates that the path is polled within a current polling cycle, and the first preset quality value indicates that the path quality meets a preset quality requirement; A polling module, used to poll the selected path in a current polling cycle to obtain a first path; A filling module, used to fill the entropy value of the first path into the source port field of the first data message to be transmitted to obtain a second data message; The sending module is used to send the second data message to the receiving terminal, so that the switching device that receives the second data message transmits the second data message to the receiving terminal according to the entropy value included in the second data message.

14. A message transmission device, characterized in that: Applied to a switching device, the device comprises: A receiving module, configured to receive a second data message sent by a sending terminal, wherein the second data message is a data message obtained by the sending terminal through the device according to claim 13; A determination module, used to determine an egress port corresponding to the second data message according to the entropy value included in the second data message; A transmission module is used to transmit the second data message to a receiving terminal through the output port.

15. A message transmission device, characterized in that: Applied to a receiving terminal, the device comprises: A receiving module, configured to receive a second data message from a sending terminal, wherein the second data message is a data message obtained by the sending terminal through the device according to claim 13; A processing module is used to process the second data message.

16. A terminal, characterized in that: The method comprises a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is prompted by the machine-executable instructions to implement any of the methods described in claims 1-8, or to implement any of the methods described in claims 11-12.

17. A switching device, characterized in that: It comprises a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is prompted by the machine-executable instructions to implement the method steps described in any one of claims 9-10.

Citation Information

Patent Citations

  • Data transmission processing method and device applied in multipath networking

    CN101674253A

  • Sending and receiving messages including training data using multipath packet injection protocol

    CN118318427A