Message transmission method and device, terminal and switching equipment

By recording and selecting the entropy value, path quality value and polling period value of the path at the sending terminal, the problem of data packets being directed to the congested path under OPS technology is solved, and more efficient network performance and bandwidth utilization are achieved.

CN119788594AActive Publication Date: 2025-04-08NEW H3C TECH CO LTD

Patent Information

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

AI Technical Summary

Technical Problem

In data centers, when using the unsensing packet spraying (OPS) technology, even if there is a 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 so that the switching device can determine the transmission path based on the entropy value.

Benefits of technology

By perceiving the congestion degree of the path and selecting a path with good path quality for transmission, data packets are effectively avoided from being directed to the congested path, alleviating path congestion and improving network performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788594A_ABST
    Figure CN119788594A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a message transmission method and device, a terminal and switching equipment, the method is applied to a sending terminal, the sending terminal records entropy values, path quality values and polling period values of a plurality of paths between the sending terminal and a receiving terminal, and the method comprises the following steps: selecting the polling period value as a first preset period value from the plurality of paths, the path quality value is a path with a first preset quality value; in the current polling period, polling the selected path to obtain a first path; filling the entropy value of the first path into a source port field of a to-be-transmitted first data message to obtain a second data message; and sending the second data message to the receiving terminal, so that the switching equipment receiving the second data message transmits the second data message to the receiving terminal according to the entropy value included in the second data message. According to the scheme, the problems that the congestion degree of the path is aggravated and the performance is sharply reduced due to the fact that the data message is guided to the congestion path can be solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] With the development of artificial intelligence (AI) technology, data centers have integrated the indispensable computing power and network resources required for AI training. There are many bursts of traffic in data centers, and elephant flows and mouse flows coexist. In order to support a large amount of internal traffic in data centers, make full use of network link bandwidth, and reduce the imbalance of bandwidth utilization, the oblivious packet spraying (OPS) technology is currently used. The switching equipment between the sending terminal and the receiving terminal randomly distributes multiple data packets on a data flow to each equal-cost multi-path (ECMP) between the sending terminal and the receiving terminal in units of packets.

[0003] When OPS is used to transmit messages, even if there are uncongested paths in the data center, the switching equipment may still direct the data messages to the congested paths, causing the congestion level of individual paths to increase and the performance to drop sharply. Summary of the invention

[0004] The purpose of the embodiments of the present application is to provide a message transmission method, device, terminal and switching device to solve the problem that data messages are directed to congested paths, which causes the path congestion to increase and the performance to drop sharply. The specific technical solution is as follows:

[0005] In a first aspect, an embodiment of the present application provides a message transmission method, which is applied to a sending terminal, wherein the sending terminal records entropy values, path quality values, and polling period values ​​of multiple paths between the sending terminal and the receiving terminal, and the method includes:

[0006] From the multiple paths, select a path whose polling period value is a first preset period value and whose path quality value is a first preset quality value, wherein 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 a preset quality requirement;

[0007] In the current polling cycle, poll the selected path to obtain a first path;

[0008] 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;

[0009] 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.

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

[0011] 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;

[0012] 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.

[0013] In some embodiments, 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 includes:

[0014] 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;

[0015] 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;

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

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

[0018] In some embodiments, 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 includes:

[0019] 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;

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

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

[0022] Wherein, the second preset state 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 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.

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

[0026] 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:

[0027] 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;

[0028] The third preset state 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 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.

[0031] In some embodiments, the path state information includes 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 includes:

[0032] 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.

[0033] In some embodiments, 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:

[0034] 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.

[0035] In some embodiments, 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:

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

[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] 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 any method provided by the first aspect;

[0039] Determine, according to the entropy value included in the second data packet, an egress port corresponding to the second data packet;

[0040] The second data message is transmitted to a receiving terminal through the egress port.

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

[0042] Obtaining path status information corresponding to the egress port;

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

[0044] The filled second data message is transmitted to the receiving terminal through the egress 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] 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 any method provided in the first aspect;

[0047] The second data message is processed.

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

[0049] 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;

[0050] Sending a confirmation message carrying the path status information to the sending terminal.

[0051] In a fourth aspect, an embodiment of the present application provides a message transmission device, which is applied to a sending terminal, wherein the sending terminal records entropy values, path quality values, and polling cycle values ​​of multiple paths between the sending terminal and the receiving terminal, and the device includes:

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

[0053] A polling module, used to poll the selected path in a current polling cycle to obtain a first path;

[0054] 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;

[0055] 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.

[0056] In some embodiments, the apparatus further comprises:

[0057] A receiving module, configured to receive a first confirmation message corresponding to the second path fed back by the receiving terminal according to a third data message, wherein 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;

[0058] An updating module is configured to 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 if the first confirmation message carries the path status information of the second path.

[0059] In some embodiments, the path state information includes a second path quality parameter but does not include a congestion mark;

[0060] The updating module is specifically used to: determine the first 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 when the first preset state requirement is met; 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;

[0061] 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.

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

[0063] The updating module is specifically used to: 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 when the second preset state requirement is met; 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;

[0064] Wherein, the second preset state 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 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.

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

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

[0069] The third preset state 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 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.

[0072] In some embodiments, the path state information includes a congestion mark;

[0073] The updating module is specifically used 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, wherein 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.

[0074] In some embodiments, the update module is also used to: after setting the polling period value of the second path recorded by the sending terminal to the second preset period value, after waiting for the preset time period, 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 to the second preset quality value.

[0075] In some embodiments, 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; and the device further includes:

[0076] The subtraction module is used to reduce the polling cycle value of the candidate path recorded by the sending terminal by one after the current polling cycle ends.

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

[0078] A receiving module, used 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 device provided by the fourth aspect;

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

[0080] A transmission module is used to transmit the second data message to a receiving terminal through the output port.

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

[0082] In a sixth aspect, an embodiment of the present application provides a message transmission device, applied to a receiving terminal, the device comprising:

[0083] A receiving module, used to 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 device provided by the fourth aspect;

[0084] A processing module is used to process the second data message.

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

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

[0087] In the seventh aspect, an embodiment of the present application provides a terminal, including 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 provided in the first aspect, or implement any of the methods provided in the third aspect.

[0088] In an eighth aspect, an embodiment of the present application provides a switching device, comprising 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 method steps provided in the second aspect.

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

[0090] In the tenth aspect, an embodiment of the present application provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute any of the methods provided in the first aspect, or any of the method steps provided in the second aspect, or implement any of the methods provided in the third aspect.

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

[0092] 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 cycle value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling cycle value, the sending terminal selects a path that can be polled within the current polling cycle and whose path quality meets the preset quality requirements, and then polls the selected path, fills in the entropy value of the corresponding path in the data message to be transmitted, and ensures that the data message is transmitted along the polled path.

[0093] In the embodiment of the present application, the path quality value and the polling cycle value can reflect the status of multiple paths between the sending terminal and the receiving terminal, such as the path quality value of the severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of the lightly congested path indicates that the path quality meets the preset quality requirements, but the polling cycle value is greater than the first preset cycle value, so as to avoid polling the path in the current polling cycle, thereby alleviating the congestion of the path. The sending terminal can sense the congestion degree of the path according to the path quality value and the polling cycle value, and in packet-by-packet spraying, that is, randomly assigning multiple data packets on a data stream to a path with a good path status (such as a path with a path quality value of the first preset quality value and a polling cycle value of the first preset cycle value), while fully utilizing the network link bandwidth, and can effectively solve the problem of blindly guiding data packets to congested paths, which causes the path congestion degree to increase and the performance to drop sharply.

[0094] Of course, implementing any product or method of the present application does not necessarily require achieving all of the advantages described above at the same time. BRIEF DESCRIPTION OF THE DRAWINGS

[0095] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application, and for ordinary technicians in this field, other embodiments can also be obtained based on these drawings.

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

[0097] Figure 2 A schematic diagram of a first flow chart of a message transmission method provided in an embodiment of the present application;

[0098] Figure 3 A flow chart of a method for updating a path quality value and a polling period value provided in an embodiment of the present application;

[0099] Figure 4 A second flow chart of the message transmission method provided in the embodiment of the present application;

[0100] Figure 5 A first schematic diagram of a message transmission process provided in an embodiment of the present application;

[0101] Figure 6 A second schematic diagram of the message transmission process provided in an embodiment of the present application;

[0102] Figure 7 A third flow chart of the message transmission method provided in the embodiment of the present application;

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

[0104] Fig. 9 A schematic diagram of the first structure of the message transmission device provided in the embodiment of the present application;

[0105] Fig.10 A second structural diagram of the message transmission device provided in an embodiment of the present application;

[0106] Fig.11 A third structural diagram of the message transmission device provided in an embodiment of the present application;

[0107] Fig.12 A schematic diagram of the structure of a terminal provided in an embodiment of the present application;

[0108] Fig.13 A schematic diagram of the structure of a switching device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0109] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field based on the present application belong to the scope of protection of the present application.

[0110] With the development of AI technology, data centers have integrated the indispensable computing power and network resources required for AI training. One of the important purposes of the switching equipment inside the data center is to support the large amount of traffic inside the data center, but the traditional converged network can no longer meet the efficient transmission of this traffic. Therefore, the current data center is more using the CLOS non-blocking network architecture. Figure 1 The data center shown includes multiple servers and multi-stage switching devices. Multiple network cards are inserted into each server. The multiple network cards and multi-stage switching devices constitute a CLOS non-blocking network architecture.

[0111] This CLOS non-blocking network architecture can realize line-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 method to improve bandwidth resource utilization. Its purpose is to distribute data flows as evenly as possible among multiple equal-cost paths based on the clear topology of the data center and redundant path resources, thereby avoiding network congestion on certain paths and ultimately achieving the goal of making full use of network resources.

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

[0114] ECMP technology is a simple load balancing strategy, but there are many problems in actual use, as follows.

[0115] (1) It may aggravate the congestion of network links. ECMP technology cannot perceive congestion because it only performs hashing or polling. For a path that has already been congested, it is likely to aggravate the congestion of the path.

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

[0117] (3) ECMP technology works well when the traffic size is evenly distributed. However, it does not work well when both elephant flows and rat flows coexist. For example, when an elephant flow and a rat flow arrive at the switching device at the same time, ECMP technology divides the two data flows evenly into two equal-cost paths. Obviously, the equal-cost paths are not used efficiently at this time. In data centers, there are many bursty flows, and elephant flows and rat flows coexist. Deploying ECMP technology directly in data centers may cause flow collision problems.

[0118] OPS is a type of Random Packet Spraying (RPS). OPS technology adds entropy value (Entropy) on the basis of ECMP to achieve packet-level spraying. Specifically, when the switching device finds that there are multiple equal-cost paths to the same destination address, all data packets on a certain data flow will continuously randomly select an entropy value from a fixed entropy value space (the space size is generally 256) during the transmission process as the path entropy value, and fill the path entropy value into the source port field of the data packet. When a switching device that supports ECMP technology receives such data packets and performs hash calculations based on the five-tuple carried by such data packets, even if some data packets belong to the same data flow, they will still be divided into different paths because they select different path entropy values ​​when sending, thereby making full use of the network link bandwidth and reducing the imbalance of bandwidth utilization.

[0119] OPS is a load balancing algorithm that is not aware of network congestion. When OPS is used to transmit messages, even if there are uncongested links in the network, that is, there are uncongested paths in the data center, the switching equipment may still guide the data messages to the congested paths, causing the congestion of individual paths to increase and the performance to drop sharply.

[0120] To solve the above problems, the present application provides a message transmission method, such as Figure 2 As shown, it is applied to a sending terminal, and the sending terminal records 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, selecting, from a plurality of paths, a path whose polling period value is a first preset period value and whose path quality value is a first preset quality value, wherein the first preset period value indicates that the path is polled within a current polling period, and the first preset quality value indicates that the path quality meets a preset quality requirement;

[0122] Step S202, polling the selected path in the current polling cycle to obtain a first path;

[0123] Step S203, 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;

[0124] Step S204: 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.

[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 cycle value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling cycle value, the sending terminal selects a path that can be polled within the current polling cycle and whose path quality meets the preset quality requirements, and then polls the selected path, fills in the entropy value of the corresponding path in the data message to be transmitted, and ensures that the data message is transmitted along the polled path.

[0126] In the embodiment of the present application, the path quality value and the polling cycle value can reflect the status of multiple paths between the sending terminal and the receiving terminal, such as the path quality value of the severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of the lightly congested path indicates that the path quality meets the preset quality requirements, but the polling cycle value is greater than the first preset cycle value, so as to avoid polling the path in the current polling cycle, thereby alleviating the congestion of the path. The sending terminal can sense the congestion degree of the path according to the path quality value and the polling cycle value, and in packet-by-packet spraying, that is, randomly assigning multiple data packets on a data stream to a path with a good path status (such as a path with a path quality value of the first preset quality value and a polling cycle value of the first preset cycle value), while fully utilizing the network link bandwidth, and can effectively solve the problem of blindly guiding data packets to congested paths, which causes the path congestion degree to increase and the performance to drop sharply.

[0127] In an embodiment of the present application, the sending terminal may be any network card in the AI ​​network (data center), or any server in the AI ​​network (data center). The sending terminal is a network card or server that needs to send a data stream. The receiving terminal may be any network card in the AI ​​network (data center), or any server in the AI ​​network (data center). The receiving terminal is a network card or server that needs to receive a 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 entropy values, path quality values, and polling cycle values ​​of these multiple paths are recorded in the sending terminal, as shown in Table 1.

[0128] Table 1

[0129]

[0130] In the embodiment of the present application, an entropy value indicates a path, and the path corresponds to the entropy value one by one; the path quality value indicates the path quality, such as 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 cycle value indicates the polling cycle in which the path is polled, such as if the path is polled within the current polling cycle, the path is prohibited from being polled, or the path is polled in the nth polling cycle, etc.

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

[0132] Among them, the path quality value is 0, which means that the path quality does not meet the preset quality requirements, and the path quality value is 1, which means that the path quality meets the preset quality requirements; or the path quality value is 0, which means that the path quality meets the preset quality requirements, and the path quality value is 1, which means that the path quality does not meet the preset quality requirements. The larger the polling cycle value, the later the polling cycle of the path is polled. For example, if the polling cycle value is 1, it means that the path is polled in the current polling cycle (i.e., the first polling cycle); if the polling cycle value is 2, it means that the path is polled in the second polling cycle after the current moment; if the polling cycle value is 3, it means that the path is polled in the third polling cycle after the current moment, and so on.

[0133] The sending terminal records that the initial path quality value of each path is a first preset quality value, the polling period value of each path is a 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 requirement. 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] In the process of the sending terminal continuously sending data messages to the receiving terminal, the state of each path between the sending terminal and the receiving terminal will change. Correspondingly, the path quality value and the polling cycle value of each path recorded by the sending terminal may change accordingly. For example, the path quality value of the path becomes a second preset quality value, and the second preset quality value indicates that the path quality does not meet the preset quality requirement, the polling cycle value of the path becomes a second preset cycle value, and the second preset cycle value indicates that the path is prohibited from being selected within a preset time length, or the polling cycle value of the path becomes larger, etc.

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

[0136] In the above step S201, there are multiple paths between the sending terminal and the receiving terminal. Among the multiple paths, if the polling period value of a path recorded by the sending terminal 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 the path as the path to be polled in the current polling period.

[0137] In one embodiment, the path is represented by an entropy value. Then the above step S201 can 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 that needs to be polled in the current polling cycle. That is, the following polling path can be understood as a polling entropy value.

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

[0139] Table 2

[0140]

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

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

[0143] In the above step S203, the first data message is any data message 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 the first data message to be transmitted is obtained, the entropy value of the first path is filled into the source port field in the first data message, that is, the source port in the quintuple of the first data message is modified to the entropy value of the first path, and the modified first data message is the second data message. After that, the sending terminal executes step S204 to send the second data message to the receiving terminal, thereby realizing the transmission of the second data message using the first path.

[0145] Afterwards, the sending terminal continues to poll the selected path and repeats step S203 to step S204. This cycle is repeated until all selected paths are polled and the polling cycle ends.

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

[0147] After receiving the second data message, the switching device on the first path can determine the egress port corresponding to the entropy value according to the entropy value included in the second data message; then transmit the second data message to the receiving terminal through the egress port, so as to transmit the second data message to the receiving terminal along the first path. After receiving the second data message, the receiving terminal processes the second data message, such as performing AI training.

[0148] In some embodiments, a path whose polling cycle value is greater than a first preset cycle value and whose path quality value is a first preset quality value and which is recorded by the sending terminal is a candidate path; after the current polling cycle ends, the sending terminal reduces the polling cycle value of the candidate path recorded by the sending terminal by one.

[0149] In an embodiment of the present application, if the polling cycle value of a path recorded by the sending terminal is greater than the first preset cycle value, and the path quality value of the path is the first preset quality value, then the path is a candidate path. Although the candidate path is not congested, the path quality is poor. In order to avoid continuously using the candidate path to transmit messages, which causes congestion on the candidate path, the sending terminal will not select the candidate path to transmit data messages in the current polling cycle, so as to reduce the number of data messages transmitted on the candidate path and improve the path quality of the candidate path.

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

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

[0152] When polling cycle 1 is reached, the entropy values, path quality values, and polling cycle values ​​of the 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 poll path 1 and path 2. When polling to path 1, the sending terminal obtains data message 11 to be transmitted, and then fills the entropy value 1 of path 1 into the source port field of data message 11 to obtain data message 111. When polling to path 2, the sending terminal obtains data message 12 to be transmitted, and then fills the entropy value 2 of path 2 into the source port field of data message 12 to obtain data message 112. At this time, polling cycle 1 ends, the path quality values ​​of path 3~path 4 are all 1, and the polling cycle values ​​of path 3~path 4 are all greater than 1, then the sending terminal reduces the polling cycle values ​​of path 3~path 4 by 1, as shown in Table 3.

[0153] Table 3

[0154]

[0155] When polling cycle 2 (the next polling cycle of polling cycle 1) is reached, the entropy values, path quality values ​​and polling cycle values ​​of the 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 poll path 1 to path 3. When polling path 1, the sending terminal obtains data message 21 to be transmitted, and then fills the entropy value 1 of path 1 into the source port field of data message 21 to obtain data message 211. When polling path 2, the sending terminal obtains data message 22 to be transmitted, and then fills the entropy value 2 of path 2 into the source port field of data message 22 to obtain data message 212. When polling path 3, the sending terminal obtains data message 23 to be transmitted, and then fills the entropy value 3 of path 3 into the source port field of data message 23 to obtain data message 213. At this time, polling cycle 2 ends, the path quality value of path 4 is 1, and the polling cycle value of path 4 is greater than 1, then the sending terminal reduces the polling cycle value of path 4 by 1, as shown in Table 4.

[0156] Table 4

[0157]

[0158] The subsequent message transmission is similar and will not be described in detail.

[0159] In other embodiments, a path whose polling period value is greater than the first preset period value and whose path quality value is the first preset quality value and which is recorded by the sending terminal is a candidate path; after executing step S201, the sending terminal reduces the polling period value of the candidate path recorded by the sending terminal by one.

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

[0161] When polling cycle 1 is reached, the entropy values, path quality values, and polling cycle values ​​of the 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 poll path 1 and path 2. When polling to path 1, the sending terminal obtains data message 11 to be transmitted, and then fills the entropy value 1 of path 1 into the source port field of data message 11 to obtain data message 111. When polling to path 2, the sending terminal obtains data message 12 to be transmitted, and then fills the entropy value 2 of path 2 into the source port field of data message 12 to obtain data message 112. At this time, polling cycle 1 ends and enters the next polling cycle, such as polling cycle 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~path 4 are all 1, and the polling cycle values ​​of path 3~path 4 are all greater than 1, the sending terminal can also reduce the polling cycle values ​​of path 3~path 4 by 1, as shown in Table 3.

[0162] When polling cycle 2 (the next polling cycle of polling cycle 1) is reached, the entropy values, path quality values ​​and polling cycle values ​​of the 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 poll paths 1 to 3. When polling to path 1, the sending terminal obtains data message 21 to be transmitted, and then fills the entropy value 1 of path 1 into the source port field of data message 21 to obtain data message 211. When polling to path 2, the sending terminal obtains data message 22 to be transmitted, and then fills the entropy value 2 of path 2 into the source port field of data message 22 to obtain data message 212. When polling to path 3, the sending terminal obtains data message 23 to be transmitted, and then fills the entropy value 3 of path 3 into the source port field of data message 23 to obtain data message 213. At this time, polling cycle 2 ends and enters the next polling cycle. Since the path quality value of path 4 is 1, and the polling period value of path 4 is greater than 1, the transmitting terminal may further reduce the polling period value of path 4 by 1, as shown in Table 4.

[0163] In an embodiment of the present application, the sending terminal may also reduce the polling cycle value of the candidate path recorded by the sending terminal by one at other times, such as reducing the polling cycle value of the candidate path recorded by the sending terminal by one after step S202 or step S203. It is only necessary to ensure that the polling cycle value of the candidate path is gradually reduced to the first preset cycle value to avoid congestion of the candidate path.

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

[0165] Step S301, 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 an entropy value of the second path;

[0166] In the embodiment of the present application, the second path is any path between the sending terminal and the receiving terminal, and 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 can 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 repeated here.

[0168] During the process of transmitting the third data packet along the second path to the receiving terminal, the switching device on the second path can directly determine the egress port corresponding to the third data packet based on the quintuple of the third data packet (including the entropy value of the second path), and then forward the third data packet through the determined egress port.

[0169] During the process of transmitting the third data packet along the second path to the receiving terminal, the switching device on the second path can also fill the path status information of the second path in the third data packet; thereafter, based on the quintuple of the third data packet (including the entropy value of the second path), determine the egress port corresponding to the third data packet, and then forward the third data packet filled with the path status information through the determined egress port.

[0170] The path status information may include the path quality parameter of the second path (referred to as the second path quality parameter for short), and the path quality parameter may include the minimum available bandwidth (MAB), the relative minimum available bandwidth (RMAB), and the maximum hop delay (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 the second path is detected to be congested. The congestion mark may be an explicit congestion notification (ECN) mark, or a congestion mark generated by other congestion control algorithms.

[0171] After receiving the third data message, the receiving terminal generates an acknowledgment (Acknowledge, ACK) message (such as the first acknowledgment message); if the third data message does not carry the path status information, the first acknowledgment message is directly fed back to the sending terminal; if the third data message carries the path status information, the path status information of the second path is extracted from the third data message, and the extracted path status information is added to the first acknowledgment message. At this time, the first acknowledgment message corresponds to the second path; the first acknowledgment message carrying the path status information of the second path is fed back to the sending terminal.

[0172] During the current polling cycle, the sending terminal may receive a first confirmation message at any time during the process of executing steps S201 to S204. If the first confirmation message is received, steps S301 to S302 are executed to update the polling cycle value and path quality value of the second path recorded by the sending terminal.

[0173] Step S302: 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.

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

[0175] Case 1: The first confirmation message does not carry a congestion mark, that is, the path state information of the second path does not include a congestion mark.

[0176] In the embodiment of the present application, the sending terminal may pre-set state requirements, such as a first preset state requirement, a second preset state requirement, and a third preset state requirement.

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

[0178] The second preset state requirement may include: the path quality value of the second path recorded by the sending terminal is a second preset quality value; up to the current moment, the number of confirmation messages that the sending terminal has continuously received corresponding to the second path and do not carry a congestion mark is greater than or equal to a preset number;

[0179] The third preset state 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 confirmation messages that the sending terminal has continuously received corresponding to the second path and that do not carry a congestion mark 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, or 5, etc.

[0180] The sending terminal can perform corresponding processing according to the status requirements met at the current moment. For details, please refer to the following situations 11 to 13.

[0181] Case 11: the current moment meets the first preset state requirement.

[0182] In this case, if the first confirmation 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 confirmation 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 may determine the first 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 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.

[0183] In an embodiment of the present application, the sending terminal pre-stores the correspondence between the path quality parameter and the polling cycle 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 confirmation message carrying the path quality parameter but not carrying the congestion mark, the path quality parameter, that is, the second path quality parameter, is extracted from the first confirmation message, and the correspondence including the second path quality parameter is searched from the pre-stored correspondence between the path quality parameter and the polling cycle value, and the polling cycle value included in the found correspondence is used as the first polling cycle value, and then the polling cycle value of the second path recorded by the sending terminal is set to the first polling cycle value, and the path quality value of the second path recorded by the sending terminal is not updated.

[0184] For example, the path quality parameter is a relative minimum available bandwidth. The first preset quality value is 1. The corresponding relationship 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 by the sending terminal is 1, the sending terminal receives confirmation message 1 corresponding to path 1, and confirmation 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%, then according to Table 5, the sending terminal can determine that the first polling cycle value is 1, and then the polling cycle value of path 1 recorded by the sending terminal is set to 1, and the path quality value of path 1 remains at 1; if the relative minimum available bandwidth 1 is greater than or equal to 10% and less than or equal to 20%, then according to Table 5, the sending terminal can determine that the first polling cycle value is 2, and then the polling cycle value of path 1 recorded by the sending terminal is set to 2, and the path quality value of path 1 remains at 1; if the relative minimum available bandwidth 1 is less than 10%, then according to Table 5, the sending terminal can determine that the first polling cycle value is 3, and then the polling cycle value of path 1 recorded by the sending terminal is set to 3, and the path quality value of path 1 remains at 1.

[0188] This method combines congestion marking and path quality parameters to dynamically adjust the polling period value and path quality value of the path, so that the information recorded by the sending terminal can be updated timely and accurately, accurately characterize the path status, further refine the guidance on packet spraying behavior, and help reduce the possibility of path sending congestion.

[0189] Case 12: The second preset state requirement is met at the current moment.

[0190] In this case, if the first confirmation 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 confirmation 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 may 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; and 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 the path quality parameter and the polling cycle value. 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 confirmation message carrying the path quality parameter but not carrying the congestion mark. If, up to the current moment, the preset number of confirmation messages corresponding to the second path (including the above-mentioned first confirmation message) are continuously received and do not carry the congestion mark, it means that the second path has recovered from the congested state and the path quality is good. The sending terminal extracts the path quality parameter, that is, the second path quality parameter, from the first confirmation message, and searches for the correspondence between the path quality parameter and the polling cycle value stored in advance, and uses the polling cycle value included in the corresponding relationship found as the second polling cycle value, and then sets the polling cycle value of the second path recorded by the sending terminal to the second polling cycle value; sets the path quality value of the second path recorded by the sending terminal to the first preset quality value.

[0192] For example, the path quality parameter is a 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 cycle value pre-stored by the sending terminal is shown in Table 5 above.

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

[0194] This method combines congestion marking and path quality parameters to dynamically adjust the polling period value and path quality value of the path, so that the information recorded by the sending terminal can be updated timely and accurately, accurately characterize the path status, further refine the guidance on packet spraying behavior, and help reduce the possibility of path sending congestion.

[0195] Case 13: the third preset state requirement is met at the current moment.

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

[0197] In an embodiment of the present application, when the path quality value of the second path recorded by the sending terminal is a second preset quality value, that is, when the path quality of the second path is poor, the sending terminal receives a first confirmation message that does not carry a congestion mark. If, up to the current moment, the number of confirmation messages (including the above-mentioned first confirmation messages) that do not carry a congestion mark corresponding to the second path that are continuously received is less than the preset number, it means that the second path has not recovered from the congested state and is still in a congested state, and the path quality is poor. The polling period value and the path quality value of the second path recorded by the sending terminal are not updated, that is, the polling period value and the path quality value of the second path recorded by the sending terminal are kept unchanged, so as to keep the second path from being used to transmit data messages, so that the second path is restored to a non-congested state as soon as possible, and avoid frequent updates of the polling period value of the second path, which causes a waste of resources.

[0198] Case 2: The first confirmation message carries a congestion mark, that is, the path state information of the second path includes the congestion mark.

[0199] In this case, regardless of whether the first confirmation 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] 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 between the sending terminal and the receiving terminal for transmitting the message along the second path. N is the minimum value greater than or equal to the number of paths between the sending terminal and the receiving terminal (i.e., the entropy value space). For example, the number of paths between the sending terminal and the receiving terminal is 64, 2 6 is equal to 64, then N=6, or the number of paths between the sending terminal and the receiving terminal is 50, 2 5 Equal to 32, 32 < 50, 2 6 Equal to 64, 64>50, then N=6.

[0201] In an embodiment of the present application, if the first confirmation message carries a congestion mark, indicating that the second path is congested, then after the sending terminal sets the polling period value of the second path to the second preset period value, the second path will no longer participate in polling within the preset time length, that is, the sending terminal will not select the second path to transmit data messages within the preset time length after the current moment to alleviate the congestion level of the second path.

[0202] In some embodiments, after setting the polling cycle value of the second path recorded by the sending terminal to the second preset cycle value, the sending terminal waits for a preset time. After waiting for the preset time, it can be considered that the second path has recovered from the congestion state, and then the sending terminal sets the polling cycle value of the second path recorded by the sending terminal to the first polling cycle value, and sets the path quality value of the second path recorded by the sending terminal to the first preset quality value. This allows the second path to participate in polling, perform packet spraying, improve message transmission efficiency, and improve bandwidth utilization.

[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 period of time. After waiting for the preset period of time, it can be considered that the second path has recovered from the congestion state, and 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 maintains the path quality value of the second path recorded by the sending terminal to the second preset quality value.

[0204] Before the polling period value of the second path is set to the second preset period value, due to the congestion of the second path, the data messages transmitted along the second path are still transmitted on the second path and have not reached the receiving terminal. After the polling period value of the second path is set to the second preset period value, when the congestion of the second path is recovered, these data messages that have not reached the receiving terminal after being transmitted on the second path will successively reach the receiving terminal, and then the receiving terminal feeds back corresponding confirmation messages to the sending terminal.

[0205] Before the sending terminal waits for a preset period of time 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 a 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 a preset period of time 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, such as the polling period value and the path quality value, according to the received confirmation message.

[0206] That is, after the sending terminal waits for a preset period of time and sets 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, and update the polling period value and path quality value of the second path recorded by the sending terminal according to the situation satisfied at the current moment (such as the above-mentioned situation 11 to situation 13, situation 2), so that the information recorded by the sending terminal can be updated in a timely and accurate manner, accurately representing the path status, further refining the guidance on packet spraying behavior, and helping to reduce the possibility of path sending congestion and improve bandwidth utilization.

[0207] Corresponding to the above-mentioned message transmission method applied to the sending terminal, the embodiment of the present application also provides a message transmission method, such as Figure 4 As shown, the method is applied to a switching device and comprises the following steps:

[0208] Step S401, 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 any of the above message transmission methods;

[0209] Step S402, determining an egress port corresponding to the second data message according to the entropy value included in the second data message;

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

[0211] 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 cycle value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling cycle value, the sending terminal selects a path that can be polled within the current polling cycle and whose path quality meets the preset quality requirements, and then polls the selected path, fills in the entropy value of the corresponding path in the data message to be transmitted, and ensures that the data message is transmitted along the polled path.

[0212] In the embodiment of the present application, the path quality value and the polling cycle value can reflect the status of multiple paths between the sending terminal and the receiving terminal, such as the path quality value of the severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of the lightly congested path indicates that the path quality meets the preset quality requirements, but the polling cycle value is greater than the first preset cycle value, so as to avoid polling the path in the current polling cycle, thereby alleviating the congestion of the path. The sending terminal can sense the congestion degree of the path according to the path quality value and the polling cycle value, and in packet-by-packet spraying, that is, randomly assigning multiple data packets on a data stream to a path with a good path status (such as a path with a path quality value of the first preset quality value and a polling cycle value of the first preset cycle value), while fully utilizing the network link bandwidth, and can effectively solve the problem of blindly guiding data packets to congested paths, which causes the path congestion degree to increase and the performance to drop sharply.

[0213] In the above step S401, the sending terminal obtains the second data message and sends the second data message. Figure 2 The relevant description of some parts will not be repeated 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 message with the entropy value of the first path. After receiving the second data message, the switching device can directly perform 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 message, and select a path for the second data message, that is, select the egress port path corresponding to the first path. Then, the switching device executes step S403, and transmits the second data message to the receiving terminal through the egress port, thereby transmitting the second data message along the first path.

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

[0217] In the embodiment of the present application, the path status information may include a path quality parameter and a congestion mark.

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

[0219] In the embodiment of the present application, the switching device can fill the path quality parameters in the second data packet in a cumulative form, that is, when the second data packet passes through several switching devices with path quality detection functions enabled along the first path, several groups of path quality parameters are added to the second data packet.

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

[0221] In an embodiment of the present application, the switching device can also fill in the path quality parameters in the second data packet in an overwriting form, that is, the second data packet passes through each switching device with the INT function enabled along the first path to update the path quality parameters carried by the second data packet, and the second data packet carries a set of path quality parameters.

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

[0223] The switching device can add path quality parameters to each received data message so that each confirmation message fed back by the receiving terminal to the sending terminal carries the path quality parameters, thereby improving the real-time performance of the path quality value and the polling cycle, and helping to further reduce the possibility of path transmission 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 intervals, adds a specified tag (such as INT tag) to the sampled data packets, and then fills the entropy value in the data packets and transmits them. The switching device adds the path quality parameters to the data packets only after detecting that the received data packets carry the specified tag.

[0225] In the embodiment of the present application, the switching device may also enable a congestion control function. When the congestion control function is enabled, the switching device may detect the path congestion status in real time. After receiving the second data message, if the first path is detected to be congested, the switching device may obtain a congestion mark and fill the congestion mark into the second data message. If the first path is detected to be congested, it is not necessary to fill the congestion mark into the second data message.

[0226] In the embodiment of the present application, a switching device can enable the path quality detection function, or enable the congestion control function, or enable the path quality detection function and the congestion control function at the same time. Users can turn on or off 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 message, it is ensured that the sending terminal can obtain the required data update path quality value and polling cycle value, further refines the guidance of the packet spraying behavior, and is conducive to reducing the possibility of path sending congestion.

[0227] Corresponding to the above-mentioned message transmission method applied to the sending terminal, the embodiment of the present application also provides a message transmission method, such as Figure 7 As shown, applied to a receiving terminal, the method comprises the following steps:

[0228] Step S701, 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 any of the above message transmission methods;

[0229] Step S702: Process the second data message.

[0230] 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 cycle value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling cycle value, the sending terminal selects a path that can be polled within the current polling cycle and whose path quality meets the preset quality requirements, and then polls the selected path, fills in the entropy value of the corresponding path in the data message to be transmitted, and ensures that the data message is transmitted along the polled path.

[0231] In the embodiment of the present application, the path quality value and the polling cycle value can reflect the status of multiple paths between the sending terminal and the receiving terminal, such as the path quality value of the severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of the lightly congested path indicates that the path quality meets the preset quality requirements, but the polling cycle value is greater than the first preset cycle value, so as to avoid polling the path in the current polling cycle, thereby alleviating the congestion of the path. The sending terminal can sense the congestion degree of the path according to the path quality value and the polling cycle value, and in packet-by-packet spraying, that is, randomly assigning multiple data packets on a data stream to a path with a good path status (such as a path with a path quality value of the first preset quality value and a polling cycle value of the first preset cycle value), while fully utilizing the network link bandwidth, and can effectively solve the problem of blindly guiding data packets to congested paths, which causes the path congestion degree to increase and the performance to drop sharply.

[0232] In the above step S701, the sending terminal obtains the second data message and sends the second data message. Figure 2The relevant description of some parts will not be repeated here.

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

[0234] In some embodiments, after the receiving terminal receives the second data message, if the second data message carries path state information, the receiving terminal can extract the path state information from the second data message, and the path state information is filled into the second data message by the switching device through which the second data message passes. For details, see the above Figure 6 Part of the related description; sending a confirmation message carrying path status information to the sending terminal.

[0235] In this way, the sending terminal can obtain the confirmation message carrying the path status information, and then update the path quality value and polling period value, further refining the guidance of packet spraying behavior, which is conducive to reducing the possibility of path sending congestion.

[0236] Combine the following Figure 8 The signaling diagram of the message transmission shown in the figure provides a detailed description of the message transmission method provided in the embodiment of the present application. Figure 8 The example in which server 1 is used as the sending terminal and server 2 is used as the receiving terminal is used for explanation, and it does not serve as a limitation. 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 INT mode.

[0237] In an embodiment 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 items, each of which includes an entropy value, a path quality value, and a polling cycle value. In mapping Table 6, the entropy value range is 1 to 64, and the path quality value and the polling cycle value are both 1.

[0238] Table 6

[0239]

[0240] Figure 8 A signaling diagram for transmitting a data message to a sending terminal 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 a mapping table corresponding to port 1 .

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

[0243] Step S802: Server 1 polls the path selected in step S801 in the current polling cycle.

[0244] Take the current polling period as polling period 1, and polling path 1 corresponding to entropy value 1 as an example.

[0245] Step S803, when server 1 obtains data message 1 to be transmitted through port 1, server 1 fills entropy value 1 into the source port field of data message 1 to obtain data message 2;

[0246] Step S804: Server 1 sends data message 2.

[0247] Server 1 sends data packet 2 through port 1, and then server 1 returns to execute step S802, and continues to poll the path selected in step S801, such as polling path 2 corresponding to entropy value 1, etc. When server 1 obtains data packet 11 to be transmitted through port 1, it fills entropy value 1 into the source port field of data packet 11 to obtain data packet 12, and then sends data packet 12, and so on. After all the paths selected in step S801 are polled, this polling cycle 1 ends and enters the next polling cycle of polling cycle 1, such as polling cycle 2. Polling cycle 2 is used as the current polling cycle, and server 1 re-executes step S801.

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

[0249] Step S805 , after receiving data packet 2 , the switching device on path 1 performs hash calculation according to the quintuple of data packet 2 , and selects a path for data packet 2 , that is, egress port 2 corresponding to path 1 .

[0250] Step S806, the switching device on path 1 detects whether congestion occurs on path 1. If so, step S807 is executed; if not, data packet 2 is treated as data packet 3, and step S808 is executed.

[0251] Step S807, the switching device on path 1 adds a congestion mark to data message 2 to obtain data message 3;

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

[0253] Step S809 : The switching device on path 1 adds the path quality parameter to data message 3 to obtain data message 4 .

[0254] In the embodiment 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 output port corresponding to path 1 is determined, when path 1 is congested and data packet 2 carries 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 egress port 2 .

[0256] Step S811: After receiving data message 4, server 2 processes data message 4.

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

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

[0259] The execution order of step S811 and step S812 is not limited in the embodiment of the present application.

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

[0261] In the embodiment of the present application, the server 1 updates the path quality value and the polling period value according to the path status information of each path, further refines the guidance on the packet spraying behavior, and helps to reduce the possibility of path transmission congestion.

[0262] Corresponding to the above-mentioned message transmission method, the embodiment of the present application also provides a message transmission device, such as Fig. 9 As shown, it is applied to a sending terminal, and the sending terminal records entropy values, path quality values, and polling period values ​​of multiple paths between the sending terminal and the receiving terminal. The device includes:

[0263] The determination module 901 is used to select, from 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, wherein the first preset period value indicates that the path is polled within a current polling period, 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 a current polling cycle to obtain a first path;

[0265] A filling module 903 is 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;

[0266] The sending module 904 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.

[0267] In some embodiments, the message transmission device further includes:

[0268] A receiving module, configured to receive a first confirmation message corresponding to the second path fed back by a 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 an entropy value of the second path;

[0269] The updating module is configured to 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 if the first confirmation message carries the path status information of the second path.

[0270] In some embodiments, the path state information includes a second path quality parameter but does not include a congestion mark;

[0271] The updating module is specifically used to: determine the first polling cycle value corresponding to the second path quality parameter according to the correspondence between the pre-stored path quality parameter and the polling cycle value when the first preset state requirement is met; 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] 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.

[0273] In some embodiments, the path state information includes a second path quality parameter but does not include a congestion mark;

[0274] The updating module is specifically used to: 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 when the second preset state requirement is met; 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;

[0275] The second preset state requirement includes:

[0276] 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;

[0277] Up to the current moment, the number of confirmation messages that the sending terminal has continuously received and that correspond to the second path and do not carry a congestion mark is greater than or equal to a preset number.

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

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

[0280] The third preset state requirements include:

[0281] 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;

[0282] Up to the current moment, the number of confirmation messages that the sending terminal has continuously received and that correspond to the second path and do not carry a congestion mark is less than a preset number.

[0283] In some embodiments, the path state information includes a congestion flag;

[0284] The updating module is specifically used 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, the second preset period value indicating that the path is prohibited from being selected within a preset time length, and the second preset quality value indicating that the path quality does not meet the preset requirements.

[0285] In some embodiments, the update module is also used to: after setting the polling period value of the second path recorded by the sending terminal to the second preset period value, after waiting for a preset period of time, 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 to the second preset quality value.

[0286] In some embodiments, a 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; and the message transmission device further includes:

[0287] The subtraction module is used to reduce the polling cycle value of the candidate path recorded by the sending terminal by one after the current polling cycle ends.

[0288] 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 cycle value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling cycle value, the sending terminal selects a path that can be polled within the current polling cycle and whose path quality meets the preset quality requirements, and then polls the selected path, fills in the entropy value of the corresponding path in the data message to be transmitted, and ensures that the data message is transmitted along the polled path.

[0289] In the embodiment of the present application, the path quality value and the polling cycle value can reflect the status of multiple paths between the sending terminal and the receiving terminal, such as the path quality value of the severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of the lightly congested path indicates that the path quality meets the preset quality requirements, but the polling cycle value is greater than the first preset cycle value, so as to avoid polling the path in the current polling cycle, thereby alleviating the congestion of the path. The sending terminal can sense the congestion degree of the path according to the path quality value and the polling cycle value, and in packet-by-packet spraying, that is, randomly assigning multiple data packets on a data stream to a path with a good path status (such as a path with a path quality value of the first preset quality value and a polling cycle value of the first preset cycle value), while fully utilizing the network link bandwidth, and can effectively solve the problem of blindly guiding data packets to congested paths, which causes the path congestion degree to increase and the performance to drop sharply.

[0290] Corresponding to the above-mentioned message transmission method, the embodiment of the present application also provides a message transmission device, such as Fig.10 As shown, the device is applied to a switching device, and the device includes:

[0291] The receiving module 1001 is used 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 of the above-mentioned devices applied to the sending terminal;

[0292] A determination module 1002 is used to determine an egress port corresponding to the second data message according to an entropy value included in the second data message;

[0293] The transmission module 1003 is used to transmit the second data message to the receiving terminal through the egress port.

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

[0295] 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 cycle value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling cycle value, the sending terminal selects a path that can be polled within the current polling cycle and whose path quality meets the preset quality requirements, and then polls the selected path, fills in the entropy value of the corresponding path in the data message to be transmitted, and ensures that the data message is transmitted along the polled path.

[0296] In the embodiment of the present application, the path quality value and the polling cycle value can reflect the status of multiple paths between the sending terminal and the receiving terminal, such as the path quality value of the severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of the lightly congested path indicates that the path quality meets the preset quality requirements, but the polling cycle value is greater than the first preset cycle value, so as to avoid polling the path in the current polling cycle, thereby alleviating the congestion of the path. The sending terminal can sense the congestion degree of the path according to the path quality value and the polling cycle value, and in packet-by-packet spraying, that is, randomly assigning multiple data packets on a data stream to a path with a good path status (such as a path with a path quality value of the first preset quality value and a polling cycle value of the first preset cycle value), while fully utilizing the network link bandwidth, and can effectively solve the problem of blindly guiding data packets to congested paths, which causes the path congestion degree to increase and the performance to drop sharply.

[0297] Corresponding to the above-mentioned message transmission method, the embodiment of the present application also provides a message transmission device, such as Fig.11 As shown, applied to a receiving terminal, the device includes:

[0298] The receiving module 1101 is used to 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 of the above-mentioned devices applied to the sending terminal;

[0299] The processing module 1102 is used to process the second data message.

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

[0301] The feedback module is used to extract the path status information from the second data message, where the path status information is filled into the second data message by the switching device through which the second data message passes; and send a confirmation message 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 cycle value of multiple paths between the sending terminal and the receiving terminal. According to the path quality value and the polling cycle value, the sending terminal selects a path that can be polled within the current polling cycle and whose path quality meets the preset quality requirements, and then polls the selected path, fills in the entropy value of the corresponding path in the data message to be transmitted, and ensures that the data message is transmitted along the polled path.

[0303] In the embodiment of the present application, the path quality value and the polling cycle value can reflect the status of multiple paths between the sending terminal and the receiving terminal, such as the path quality value of the severely congested path indicates that the path quality does not meet the preset quality requirements, and the path quality value of the lightly congested path indicates that the path quality meets the preset quality requirements, but the polling cycle value is greater than the first preset cycle value, so as to avoid polling the path in the current polling cycle, thereby alleviating the congestion of the path. The sending terminal can sense the congestion degree of the path according to the path quality value and the polling cycle value, and in packet-by-packet spraying, that is, randomly assigning multiple data packets on a data stream to a path with a good path status (such as a path with a path quality value of the first preset quality value and a polling cycle value of the first preset cycle value), while fully utilizing the network link bandwidth, and can effectively solve the problem of blindly guiding data packets to congested paths, which causes the path congestion degree to increase and the performance to drop sharply.

[0304] Corresponding to the above-mentioned message transmission method, the embodiment of the present application also provides a terminal, such as Fig.12 As shown, it includes a processor 1201 and a machine-readable storage medium 1202, and 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-mentioned message transmission methods applied to the sending terminal, or implement any of the above-mentioned message transmission methods applied to the receiving terminal.

[0305] Corresponding to the above-mentioned message transmission method, the embodiment of the present application also provides a switching device, such as Fig.13 As shown, it includes a processor 1301 and a machine-readable storage medium 1302, wherein the machine-readable storage medium 1302 stores machine-executable instructions that can be executed by the processor 1301, and the processor 1301 is prompted by the machine-executable instructions to implement any of the above-mentioned message transmission methods applied to the switching device.

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

[0307] The processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can 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, and discrete hardware components.

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

[0309] In another embodiment provided in the present application, a computer program product comprising instructions is also provided. When the computer is run on a computer, the computer executes any of the above-mentioned message transmission methods applied to the sending terminal, or executes any of the above-mentioned message transmission methods applied to the receiving terminal, or executes any of the above-mentioned message transmission methods applied to the 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 process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website site, a computer, a server or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or a data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive Solid State Disk (SSD)), etc.

[0311] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.

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

[0313] The above description is only a preferred embodiment of the present application and is not intended to limit the protection scope of the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application are 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 period value is a first preset period value and whose path quality value is a first preset quality value, wherein 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 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; Wherein, 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; 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 period value is a first preset period value and whose path quality value is a first preset quality value, wherein the first preset period value indicates that the path is polled within a current polling period, 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: 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 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

  • Virtual tunnel endpoints for congestion-aware load balancing

    CN109314666A

  • Flow forwarding method, device, equipment and medium

    CN113746734A

  • Data transmission method, device and system based on interactive streaming media

    CN117880604A

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

    CN118318427A

Cited By

  • Data transmission method and system and electronic equipment

    CN120200961A

  • Data transmission method, system and electronic device

    CN120200961B

  • Data transmission system and method

    CN120200974A

  • Data transmission system and method

    CN120200974B

  • Congestion control method and apparatus, and electronic device

    CN120223634A