Data transmission method and device, communication equipment, storage medium and computer program product
By judging the flow type of traffic packets in the sending switch and dynamically adjusting the load balancing strategy, the problem of single load balancing strategy in the existing technology is solved, and more efficient and stable network transmission is achieved.
Patent Information
- Application Number
- CN202411869916.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-18
- Publication Date
- 2025-04-11
AI Technical Summary
In the prior art, the load balancing strategy based on flowlet is relatively single for network transmission of different types of stream data, and cannot effectively ensure network stability and efficiency.
By judging the flow type of the traffic message in the sending switch, obtaining the inbound congestion value feedback from the receiver switch, and determining the target load balancing strategy based on the preset congestion threshold, and dynamically adjusting the transmission strategy of the traffic message.
It realizes flexible determination of load balancing strategies, reduces system resource consumption, and improves system load balancing compatibility and efficiency.
Smart Images

Figure CN119814664A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the fields of network technology and security technology, and in particular to a data transmission method, apparatus, communication equipment, storage medium and computer program product. Background Art
[0002] With the high-speed and real-time requirements of data transmission services, data transmission needs to be able to quickly and accurately adjust the load sharing of traffic to improve its forwarding performance.
[0003] At present, when streaming data is transmitted, the sender and the receiver usually implement data transmission based on the flowlet (sub-flow) load balancing strategy. The flowlet mechanism can adaptively divide the streaming data into more sub-flows and distribute them to other links, thus avoiding performance bottlenecks.
[0004] However, different types of flow data are transmitted based on the load balancing strategy of flowlet. The traffic transmission strategy is relatively simple, and different types of traffic are diverted using flowlet, which cannot guarantee network stability and efficiency. Summary of the invention
[0005] Embodiments of the present application provide a data transmission method, apparatus, communication device, storage medium, and computer program product.
[0006] In a first aspect, a data transmission method is provided, the method being applied to a sending-end switch, the method comprising:
[0007] Obtaining a flow message from a sending end, and determining a flow type of the flow message;
[0008] When the flow type is the first flow type, obtaining an inbound congestion value fed back by the receiving end switch;
[0009] Determining a target load balancing strategy based on the inbound congestion value and a preset congestion threshold;
[0010] Based on the target load balancing strategy, the traffic message is sent to the receiving end.
[0011] In one of the embodiments, when the flow type is the first flow type, obtaining the inbound congestion value fed back by the receiving end switch includes:
[0012] When the flow type is the first flow type, obtaining the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message;
[0013] Maintaining a flow information collection table based on the queue length corresponding to the traffic message, the packet loss rate and the number of concurrent flows;
[0014] The flow message is transmitted to the receiving end, and the inbound congestion value fed back by the receiving end switch is received; the flow information collection table is used to verify the inbound congestion value.
[0015] In one embodiment, the preset congestion threshold includes a first congestion threshold and a second congestion threshold, the first congestion threshold is less than the second congestion threshold, and the determining the target load balancing strategy based on the inbound congestion value and the preset congestion threshold includes:
[0016] If the inbound congestion value is less than the first congestion threshold, determining an equal-cost multi-path transmission strategy;
[0017] If the inbound congestion value is greater than the first congestion threshold and less than the second congestion threshold, determining a probabilistic switching transmission strategy;
[0018] If the inbound congestion value is greater than the second congestion threshold, a flow load balancing transmission strategy is determined.
[0019] In one embodiment, the method further comprises:
[0020] When the flow type is the second flow type, it is determined that the target load balancing strategy for the traffic message transmission between the sending end and the receiving end is the equal-cost multi-path transmission strategy.
[0021] In a second aspect, a data transmission method is provided, the method being applied to a receiving-end switch, the method comprising:
[0022] Receive traffic packets sent by the sender;
[0023] Obtaining the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message;
[0024] Based on the queue length corresponding to the traffic message, the packet loss rate and the number of concurrent flows, the inbound congestion values of the sending end and the receiving end are calculated, and the inbound congestion values are fed back to the sending end switch, so that the sending end switch determines the target load balancing strategy based on the inbound congestion value and the preset congestion threshold.
[0025] In one of the embodiments, the calculating the inbound congestion value of the sending end and the receiving end based on the queue length corresponding to the traffic message, the packet loss rate and the number of concurrent flows includes:
[0026] Obtaining the switch queue length, packet loss rate, and number of concurrent flows of the receiving-end switch;
[0027] The inbound congestion values of the sending end and the receiving end are calculated according to the switch queue length, the switch buffer size, the number of concurrent flows of the receiving end switch, the concurrent flow number threshold, the packet loss rate and the preset weight factor.
[0028] In one embodiment, the method further comprises:
[0029] Based on the inbound congestion values of the sending end and the receiving end, an inbound congestion value index collection table is maintained, and the inbound congestion value index collection table is used to drive the receiving end switch to feed back the inbound congestion value.
[0030] In a third aspect, the present application provides a data transmission device, the device comprising:
[0031] A flow identification module, used to obtain the flow message of the sending end and determine the flow type of the flow message;
[0032] An acquisition module, configured to acquire an inbound congestion value fed back by a receiving-end switch when the flow type is a first flow type;
[0033] A first determination module, configured to determine a target load balancing strategy based on the inbound congestion value and a preset congestion threshold;
[0034] A transmission module is used to transmit the traffic message to the receiving end based on the target load balancing strategy.
[0035] In a fourth aspect, the present application provides a communication device, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
[0036] Obtaining a flow message from a sending end, and determining a flow type of the flow message;
[0037] When the flow type is the first flow type, obtaining an inbound congestion value fed back by the receiving end switch;
[0038] Determining a target load balancing strategy based on the inbound congestion value and a preset congestion threshold;
[0039] Based on the target load balancing strategy, the traffic message is sent to the receiving end.
[0040] A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the following steps:
[0041] Obtaining a flow message from a sending end, and determining a flow type of the flow message;
[0042] When the flow type is the first flow type, obtaining an inbound congestion value fed back by the receiving end switch;
[0043] Determining a target load balancing strategy based on the inbound congestion value and a preset congestion threshold;
[0044] Based on the target load balancing strategy, the traffic message is sent to the receiving end.
[0045] A computer program product includes a computer program. When the computer program is executed by a processor, the data transmission method provided by the embodiment of the present application is implemented. The method may be:
[0046] Obtaining a flow message from a sending end, and determining a flow type of the flow message;
[0047] When the flow type is the first flow type, obtaining an inbound congestion value fed back by the receiving end switch;
[0048] Determining a target load balancing strategy based on the inbound congestion value and a preset congestion threshold;
[0049] Based on the target load balancing strategy, the traffic message is sent to the receiving end.
[0050] The above-mentioned data transmission method, apparatus, communication equipment, storage medium and computer program product obtain the flow message of the sending end, determine the flow type of the flow message; when the flow type is the first flow type, obtain the inbound congestion value fed back by the receiving end switch; based on the inbound congestion value and the preset congestion threshold, determine the target load balancing strategy; based on the target load balancing strategy, transmit and send the flow message to the receiving end. By adopting this method, the flow type of the flow message is pre-determined, and different load balancing strategies are determined for different flow types. It can ensure the flexible determination of the load balancing strategy while reducing the consumption of system resources, and set a dynamic load balancing mechanism to improve the compatibility of system load balancing. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] Figure 1 is an application environment diagram of a data transmission method in an embodiment;
[0052] Figure 2 A schematic diagram of a flow chart of a data transmission method at a sending end switch side in an embodiment;
[0053] Figure 3 A schematic diagram of a flow chart of a step of obtaining an inbound congestion value in an embodiment;
[0054] Figure 4 A schematic diagram of a flow chart of a method for dynamically deciding a load balancing strategy in an embodiment;
[0055] Figure 5 A schematic flow chart of the steps of determining an equal-cost multi-path transmission strategy for a traffic message of a second flow type in one embodiment;
[0056] Figure 6 A schematic diagram of the structure of a traffic message transmission system in one embodiment;
[0057] Figure 7 A schematic diagram of a flow chart of a data transmission method at a receiving-end switch side in an embodiment;
[0058] Figure 8 A schematic diagram of a flow chart of a step of calculating an inbound congestion threshold value by a receiving-end switch in one embodiment;
[0059] Fig. 9 A flowchart of the steps of maintaining an inflow station congestion index collection table in one embodiment;
[0060] Fig.10 A schematic diagram of a specific example flow chart of a data transmission method in an embodiment;
[0061] Fig.11 is a structural block diagram of a data transmission device at a sending-end switch side in one embodiment;
[0062] Fig.12 is a structural block diagram of a data transmission device at a receiving-end switch side in one embodiment;
[0063] Fig.13 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0064] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0065] Figure 1 A schematic diagram of an application scenario of data transmission provided in an embodiment of the present application. Figure 1 As shown, the scenario includes: a sending end 100, a sending end switch 200, a receiving end switch 300 and a receiving end 400. The sending end 100 and the receiving end 400 perform data transmission through a network. Different data transmission protocols can be driven between the sending end 100 and the receiving end 400 for data transmission.
[0066] Optionally, a flow information collection table and a flow load balancing strategy table are maintained at the sending end switch 200, wherein the flow information collection table is used to record the queue length, packet loss rate and number of concurrent flows of the switch corresponding to the flow message. The flow load balancing strategy table is used to make a load balancing strategy decision based on the incast index fed back by the receiving end switch 300 and the classification of the flow.
[0067] The receiving-end switch 300 maintains an incast index collection table, which is used to drive the receiving-end switch to feed back the incast congestion value.
[0068] Among them, the sender-driven protocol (SDP) is a protocol in which the sender actively initiates a data transmission request during the data transmission process and follows certain rules and algorithms to reliably transmit data to the receiving end through the network. This type of protocol ensures reliable data transmission through connection-oriented, reliable transmission, flow control, error checking and full-duplex communication.
[0069] Receiver-driven Protocol (RDP): Receiver-driven Protocol transfers the scheduling right of data packets from the sender to the receiver. The sender sends the corresponding data packets through the relevant information of the driving message. Since it is impossible to increase bandwidth usage indefinitely like SDP flow, the receiver-driven protocol can prevent a large number of data packets from causing queue backlogs at the switch. This protocol more effectively meets the core requirements of low latency, high throughput and fast response through active control of the receiver.
[0070] The transmitting end 100 and the receiving end 400 may be wireless terminals, which may be devices that provide voice and / or other business data connectivity to users, or handheld devices with wireless connection functions, or other processing devices connected to wireless modems. The wireless terminal may communicate with one or more core networks via a radio access network (Radio Access Network, referred to as RAN). The wireless terminal may be a mobile terminal, such as a mobile phone (or "cellular" phone) and a computer with a mobile terminal, for example, a portable, pocket-sized, handheld, computer-built-in or vehicle-mounted mobile device, which exchanges language and / or data with the radio access network. The wireless terminal may also be referred to as a system, a subscriber unit, a subscriber station, a mobile station, a mobile station, a remote station, a remote terminal, an access terminal, a user terminal, a user agent, a user device or user equipment, which is not limited here.
[0071] In traditional technology, a load balancing solution based on flow granularity is used to transmit traffic packets. The load balancing solution based on flow granularity, Flowlet, can still maintain good performance when encountering an asymmetric topology. For example, when a link failure causes certain paths to be unavailable, the Flowlet mechanism can adaptively divide the flow into more sub-flows and distribute them to other links, thereby avoiding performance bottlenecks. However, the load balancing solution based on flow granularity forwards all data packets of a flow through this path, thereby avoiding the problem of data packet disorder. However, the load balancing solution based on flow granularity cannot dynamically adjust the forwarding strategy, and excessive adjustment can easily lead to insufficient link utilization.
[0072] Based on the above-mentioned traditional technology, the data transmission method provided in the embodiment of the present application can reduce system resource consumption while ensuring dynamic adjustment of load balancing strategy by pre-determining the flow type of the traffic message and determining different load balancing strategies for different flow types, and sets a dynamic load balancing mechanism to improve the compatibility of system load balancing.
[0073] It should be noted that the beneficial effects brought about by the embodiments of the present application or the technical problems solved are not limited to this one, but may also include other implicit or related problems. For details, please refer to the description of the following embodiments.
[0074] The technical solution of the present application and how the technical solution of the present application solves the above-mentioned technical problems are described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described below in conjunction with the accompanying drawings.
[0075] In one embodiment, Figure 2 As shown, a data transmission method is provided, which is applied to Figure 1 The example of the sending switch in the example includes the following steps:
[0076] Step 202: Obtain the traffic message from the sending end and determine the flow type of the traffic message.
[0077] In the implementation, in the actual data transmission application scenario, the switch of the downlink of the sender (i.e., the sender switch) will receive the traffic message transmitted by the sender. The traffic type of the traffic message may be the RDP traffic type, i.e., the traffic message transmitted based on the receiving end driving the transmission protocol, or it may be the TCP (Transmission Control Protocol) type of traffic message, i.e., the traffic message transmitted through the sender driving the transmission protocol (SDP). For these two different types of traffic messages, different load balancing transmission schemes can be used for transmission to ensure the stability and efficiency of the network. Therefore, after the sender switch obtains the traffic message of the sender, it first determines the flow type of the traffic message.
[0078] Step 204: When the flow type is the first flow type, an inbound congestion value fed back by the receiving-end switch is obtained.
[0079] In implementation, when the flow type of the traffic message is the first flow type, the inbound congestion value incast fed back by the receiving end interactive machine is obtained. Specifically, the first flow type can be a TCP type traffic message, or a TCP type variant traffic message, for example, SACK (Selective Acknowledgment), TCP Vegas, TCP Westwood, etc., and the first flow type of the traffic message is not limited in the present disclosure. Taking the case where the traffic message is of TCP type as an example, when the sender message flows through the sender switch, a flow information collection table and a flow load balancing strategy table are maintained at the sender interactive machine. Among them, the flow information collection table is used to collect three pieces of information: queue length, packet loss rate, and number of concurrent flows at the sender switch. The three pieces of information recorded in the flow information table are used to calculate the incast index of each message flow. The flow load balancing table is used to make decisions on the load balancing strategy based on the incast index fed back by the receiving end switch and the flow type (flow classification). Then, the sending switch transmits the traffic message to the switch of the receiving end downlink (i.e., the receiving switch), and transmits the traffic message to the receiving end through the receiving switch. When the traffic message flows through the receiving switch, the receiving switch also maintains an inflow station congestion value index collection table, which is used to calculate the corresponding incast value according to the incast index formula through the corresponding information of the information collection table transmitted from the sending switch. And the calculated incast value is fed back to the sending switch through the driving message. In this way, the sending switch obtains the incast value to make a decision on the load balancing strategy for subsequent traffic messages flowing through the sending switch.
[0080] Optionally, the three pieces of information maintained in the flow information collection table of the sending switch, namely, the queue length, packet loss rate, and number of concurrent flows at the switch, can be used to calculate the incast value, and the calculated incast value can be used to verify the incast value fed back by the receiving switch, that is, to verify whether the incast value fed back by the receiving switch is accurate.
[0081] Step 206: Determine a target load balancing strategy based on the inbound congestion value and a preset congestion threshold.
[0082] In the implementation, a congestion threshold is pre-set in the sending switch, which is used to determine the degree of congestion in the current transmission flow. In this way, after the sending switch obtains the incast value, the sending switch compares the incast value with the congestion threshold based on the feedback of the receiving switch, and determines the target load balancing strategy for traffic message transmission.
[0083] Step 208: Send the traffic message to the receiving end based on the target load balancing strategy.
[0084] In implementation, after determining the target load balancing strategy, the sending switch distributes the traffic messages based on the target load balancing strategy, and then sends the traffic messages to the receiving end via the receiving switch to complete efficient data transmission.
[0085] In the above data transmission method, the flow message of the sending end is obtained, and the flow type of the flow message is determined; when the flow type is the first flow type, the inbound congestion value fed back by the receiving end switch is obtained; based on the inbound congestion value and the preset congestion threshold, the target load balancing strategy is determined; based on the target load balancing strategy, the flow message is transmitted to the receiving end. By adopting this method, the flow type of the flow message is determined in advance, and different load balancing strategies are determined for different flow types. It can ensure the flexible determination of the load balancing strategy while reducing the consumption of system resources, and set a dynamic load balancing mechanism to improve the compatibility of system load balancing.
[0086] In one embodiment, for the traffic message of the first flow type, the corresponding load balancing strategy needs to be dynamically adjusted based on the different congestion levels of traffic transmission during the data transmission process. Therefore, Figure 3 As shown, the specific processing process of step 204 includes:
[0087] Step 301: When the flow type is the first flow type, the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message are obtained.
[0088] In implementation, during the transmission of a traffic message, when the sending switch identifies that the flow type of the traffic message is a first flow type, for example, when the flow type of the traffic message is a TCP type, the sending switch obtains the queue length, packet loss rate, and number of concurrent flows corresponding to the traffic message for determining the inbound congestion value of the current traffic message transmission process.
[0089] Step 302: maintain a flow information collection table based on the queue length, packet loss rate, and number of concurrent flows corresponding to the flow packets.
[0090] In implementation, a flow information collection table is pre-maintained in the sending end switch. Therefore, when the sending end receiver identifies the current flow message transmission, the queue length, packet loss rate and number of concurrent flows corresponding to the flow message are updated to the flow information collection table to maintain the flow information collection table.
[0091] Step 303: transmit the traffic message to the receiving end, and receive the inbound congestion value fed back by the receiving end switch.
[0092] Among them, the flow information collection table is used to verify the inbound congestion value.
[0093] In implementation, the sending end switch transmits the traffic message to the receiving end. During the traffic message transmission process, the traffic message is forwarded via the receiving end switch. The receiving end switch also identifies the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message during the traffic message transmission, calculates the inbound congestion value, and feeds back the inbound congestion value corresponding to the current traffic message transmission process to the sending end switch. The sending end switch receives the inbound congestion value incast value fed back by the receiving end switch for making a decision on the load balancing strategy during the next traffic message transmission.
[0094] In this embodiment, when the flow type of the traffic message is the first flow type, the inbound congestion value fed back by the receiving switch is obtained, and then a dynamic decision of the load balancing strategy is made based on the inbound congestion value, thereby ensuring the efficiency and stability of traffic message transmission.
[0095] In one embodiment, Figure 4 As shown, a congestion threshold is preset in the transmitting switch, and different congestion thresholds represent different congestion levels. For example, the preset congestion threshold may include a first congestion threshold and a second congestion threshold, and the first congestion threshold is less than the second congestion threshold. Thus, the specific processing process of step 206 may include:
[0096] Step 402: If the inbound congestion value is less than the first congestion threshold, determine an equal-cost multi-path transmission strategy.
[0097] In implementation, if the inbound congestion value is less than the first congestion threshold, the sending switch determines that the current traffic transmission scenario is suitable for the equal-cost multi-path transmission strategy when making a decision on the load balancing strategy. Specifically, when the first congestion threshold is 0.3, if the inbound congestion value fed back by the receiving switch is less than the first congestion threshold (0.3), it indicates that the congestion level during the current traffic message transmission process is low. Therefore, the sending switch determines that the load balancing strategy for the current traffic transmission scenario is the equal-cost multi-path transmission strategy ECMP (Equal-cost multi-path routing). Traffic messages are transmitted based on this ECMP transmission strategy to ensure maximum link utilization.
[0098] Step 404: If the inbound congestion value is greater than the first congestion threshold and less than the second congestion threshold, determine a probability switching transmission strategy.
[0099] In implementation, if the inbound congestion value is greater than the first congestion threshold and less than the second congestion threshold, the sending switch determines that the current traffic transmission scenario is suitable for the probabilistic switching transmission strategy when making a decision on the load balancing strategy. Specifically, the first congestion threshold is preset to 0.3 and the second congestion threshold is preset to 0.6. If the inbound congestion value of the current traffic transmission scenario fed back by the receiving switch is 0.4. The inbound congestion value is greater than the first congestion threshold but less than the second congestion threshold, indicating that the congestion level in the current traffic message transmission process is moderate. Therefore, the sending switch determines that the load balancing strategy for the current traffic transmission scenario is the probabilistic switching transmission strategy. The probabilistic switching transmission strategy represents the probabilistic selection of a target load balancing strategy, that is, based on the bias probability of the inbound congestion value within the interval between the first congestion threshold and the second congestion threshold, the corresponding adaptive load balancing strategy is determined. For example, the inbound congestion value is 0.4, the interval between the first congestion threshold and the second congestion threshold is [0.3, 0.6], the inbound congestion value 0.4 is 0.1 away from the first congestion threshold 0.3, and the inbound congestion value 0.4 is 0.2 away from the second congestion threshold 0.6. The inbound congestion value is closer to the first congestion threshold. Therefore, it is considered that the congestion level in the current traffic transmission path is closer to the traffic transmission situation corresponding to the first congestion threshold. Therefore, the sending switch determines that the current traffic transmission scenario is suitable for the target load balancing strategy corresponding to the first congestion threshold, that is, the equal-cost multi-path transmission strategy. For another example, the inbound congestion value is 0.55, and the interval between the first congestion threshold and the second congestion threshold is [0.3, 0.6]. The inbound congestion value of 0.55 is 0.25 away from the first congestion threshold of 0.3, and the inbound congestion value of 0.55 is 0.05 away from the second congestion threshold of 0.6. The inbound congestion value is closer to the traffic transmission situation corresponding to the second congestion threshold. Therefore, the sending switch determines that the current traffic transmission scenario is suitable for the target load balancing strategy corresponding to the second congestion threshold, that is, the Flowlet flow load balancing transmission strategy.
[0100] Step 406: If the inbound congestion value is greater than the second congestion threshold, determine a flow load balancing transmission strategy.
[0101] In implementation, if the inbound congestion value is greater than the second congestion threshold, the sending switch determines that the current traffic transmission scenario is suitable for the flow load balancing transmission strategy when making a decision on the load balancing strategy. Specifically, when the second congestion threshold is 0.6, if the inbound congestion value fed back by the receiving switch is greater than the second congestion threshold (0.6), it indicates that the current traffic message transmission process is highly congested. Therefore, the sending switch determines that the load balancing strategy for the current traffic transmission scenario is the Flowlet flow load balancing transmission strategy. The transmission of traffic messages based on the Flowlet flow load balancing transmission strategy can more effectively respond to burst traffic and reduce packet loss and delay.
[0102] In this embodiment, for the traffic packets of the protocol type driven by the sender and having significant burst characteristics, that is, the first type of traffic packets, based on the first congestion threshold and the second congestion threshold, the equivalent multi-path transmission strategy or the flow load balancing transmission strategy is probabilistically selected according to the congestion level of the current network, so as to more effectively cope with burst traffic, reduce packet loss and delay, and ensure the high efficiency and stability of traffic transmission.
[0103] In one of the embodiments, when the flow type of the traffic message is the first flow type, it is necessary to judge the congestion of the current network based on the inbound congestion value and the preset congestion threshold, and then adaptively adjust the load balancing strategy of the traffic message transmission. When the flow type of the traffic message is the second type, the present application also provides a corresponding target load balancing strategy, such as Figure 5 As shown, the method also includes:
[0104] Step 501: When the flow type is the second flow type, determine that the target load balancing strategy for the traffic message transmission between the sending end and the receiving end is an equal-cost multi-path transmission strategy.
[0105] In implementation, when the flow type is the second flow type, that is, for a non-burst transmission protocol driven by the receiving end, for example, certain types of storage or management protocols, the sending end switch determines that the target load balancing strategy for the traffic message transmission between the sending end and the receiving end is the equal cost multi-path transmission strategy (ECMP). Specifically, Figure 6 As shown, in the traffic message transmission system, the sending switch collects link information through the flow information collection module, the message processing module, etc. After collecting the traffic message, the traffic data is transmitted through the CrossBar transmission channel. During the traffic transmission process, the incast value is calculated and fed back based on the inflow station congestion value index collection table maintained by the incast index calculation module in the receiving switch. The routing decision module in the sending switch makes a routing decision based on the incast value and determines the target load balancing strategy of the traffic message. After determining the target load balancing strategy, the traffic message is transmitted to the receiving switch through the transmission channel CrossBar and the target load balancing strategy, and the receiving switch transmits the traffic message data to the receiving end.
[0106] In this embodiment, when the flow type of the traffic message is the second flow type, an efficient and stable equal-cost multi-path transmission strategy is adopted by default to perform load balancing during traffic message transmission, thereby improving the efficiency of traffic message transmission.
[0107] In one embodiment, a flow incast index collection table is maintained at the switch of the receiving end downlink (i.e., the receiving end switch), and the flow incast index collection table is used to calculate the incast value of the current network, and the calculated incast value is fed back to the sending end switch. The incast value calculated in the flow incast index collection table is calculated by the information corresponding to the flow message sent by the sending end switch. Therefore, the present application provides a data transmission method, such as Figure 7 As shown, the method is applied to a receiving-end switch, and the method includes:
[0108] Step 701, receiving a traffic message sent by a sending end.
[0109] In implementation, in a traffic message transmission system, a sending end sends traffic message data, which is transmitted to a switch on a downlink of the sending end (i.e., a sending end switch), and the flow information collection table and flow load balancing strategy table maintained in the sending end switch record the flow information, and transmit the flow information to a switch on a downlink of the receiving end (i.e., a receiving end switch) through the sending end switch, and the traffic message sent by the sending end is received by the receiving end switch.
[0110] Step 702, obtaining the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message.
[0111] In the implementation, the receiving switch obtains three important indicators, namely, the queue length, packet loss rate, and number of concurrent streams, in the receiving switch based on the traffic packets passing through. Among them, if the queue length of the receiving switch continues to remain at a high level and is close to or exceeds its buffer size, it means that the probability of incast congestion is high. If the buffer of the receiving switch overflows and the packet loss rate is high, it also indicates that incast congestion may have occurred in the current network, that is, if a high packet loss rate is observed, especially when the network load increases, this may be a direct consequence of incast. As for the number of concurrent streams, if the number of concurrent streams increases, the queue length of the switch will increase and the packet loss rate will rise, which also indicates that incast congestion may have occurred in the network. Therefore, through these three important indicators, the degree of congestion in the current network can be judged, so as to make dynamic decisions on load balancing strategies based on the degree of congestion in the current network.
[0112] Step 703, based on the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message, calculate the inbound congestion value of the sending end and the receiving end, and feed back the inbound congestion value to the sending end switch, so that the sending end switch determines the target load balancing strategy based on the inbound congestion value and the preset congestion threshold.
[0113] In the implementation, since the receiving switch maintains a flow incast index collection table, the receiving switch calculates the incast value (incast value) of the sending and receiving ends based on the queue length, packet loss rate and number of concurrent flows corresponding to the flow message, and updates the calculated incast value to the flow incast index collection table. At the same time, the receiving switch will feed back the incast value (incast value) to the sending switch, so that the sending switch makes a load balancing strategy decision based on the incast value, and determines the target load balancing strategy to be adopted when the next flow data passing through the sending switch is transmitted.
[0114] In this embodiment, the inbound congestion value is calculated based on the traffic message sent by the sending end, and the calculated inbound congestion value reflects the congestion level of the current network. Then, the inbound congestion value is fed back to the sending end switch, so that the sending end switch makes a decision on the target load balancing strategy based on the inbound congestion value, thereby realizing efficient transmission of traffic messages.
[0115] In one embodiment, if Figure 8 As shown, the specific processing process of step 703 may include:
[0116] Step 802: Obtain the switch queue length, packet loss rate, and number of concurrent flows of the receiving-end switch.
[0117] In implementation, the receiving switch obtains three indicators, namely, the length of its own switch queue QueueLength, the packet loss rate Loss Rate, and the number of concurrent streams Concurrent Streams of the receiving switch when the traffic message flows through, so as to calculate the network congestion degree when the current traffic message flows through based on these three indicators.
[0118] Step 804, calculate the inbound congestion values of the sending end and the receiving end according to the switch queue length, the switch buffer size, the number of concurrent flows of the receiving end switch, the concurrent flow number threshold, the packet loss rate and the preset weight factor.
[0119] In implementation, when the receiving switch obtains the switch queue length, packet loss rate, and number of concurrent flows of the receiving switch, it further calculates the inbound congestion value of the sending end and the receiving end based on the pre-stored switch buffer size, concurrent flow number threshold, and preset weight factor. Specifically, the formula for calculating the inbound congestion value is as follows:
[0120]
[0121] Among them, Incast Score represents the inbound congestion value, Queue Length represents the current switch queue length, Buffer Size represents the switch buffer size, Loss Rate represents the packet loss rate, Concurrent Streams represents the number of concurrent streams established by the current receiving switch and the receiving end at the same time, Threshold Streams represents the preset concurrent stream number threshold, and α, β, and γ are weight factors used to adjust the influence of different indicators on the final Incast value. Among them, α, β, and γ are all optional parameters. Usually, these three weight factors can be set to 1 / 3, which means that the corresponding three influencing factors have the same weight.
[0122] In this embodiment, an inbound congestion value is calculated based on the switch queue length, packet loss rate, and number of concurrent flows. The inbound congestion value can be used to reflect the degree of congestion in the current network. Thus, the inbound congestion value reflecting the degree of congestion is fed back to implement a decision on a load balancing strategy based on the inbound congestion value.
[0123] In one embodiment, if Fig. 9 As shown, the method also includes:
[0124] Step 902: maintaining an inbound congestion value index collection table based on the inbound congestion values of the sending end and the receiving end.
[0125] The inbound congestion value index collection table is used to drive the receiving-end switch to feed back the inbound congestion value.
[0126] In implementation, after the receiving end switch calculates the inbound congestion value between the sending end and the receiving end in the current network, it updates the inbound congestion value to the inbound congestion value index collection table, and maintains the inbound congestion value index collection table so that the inbound congestion value index collection table records the inbound congestion value of the current round of data transmission, and can feed back the inbound congestion value to the sending end switch.
[0127] In this embodiment, the inbound congestion value is recorded based on the inbound congestion value index collection table, so that the receiving end switch can query the inbound congestion value and promptly feedback to the sending end receiver to ensure that the sending end switch can determine the current network congestion level, thereby realizing dynamic decision-making of the load balancing strategy during data transmission.
[0128] In one embodiment, if Fig.10 As shown, a specific example of a data transmission method is provided, and the data transmission method is applied to a sending end switch. The process example of the data transmission method includes:
[0129] Step 1001, receiving a traffic message from a sending end.
[0130] Step 1002, determine the flow type of the traffic message, if the flow type of the traffic message is the first flow type, execute step 1003, if the flow type of the traffic message is the second flow type, execute step 1008. The first flow type may be a TCP flow type, and the second flow type may be an RDP flow type.
[0131] Step 1003: Obtain the incast value of the inbound congestion value calculated by the receiving-end switch.
[0132] Step 1004, judging the congestion level of the current network based on the incast value. If the incast value is less than the first congestion threshold (for example, the first congestion threshold = 0.3), executing step 1005; if the incast value is greater than the first congestion threshold but less than the second congestion threshold, executing step 1006; if the incast value is greater than the second congestion value, executing step 1007.
[0133] Step 1005: determine the target load balancing strategy as the equal-cost multi-path transmission strategy.
[0134] Step 1006: determine the target load balancing strategy as a probabilistic switching transmission strategy, where the probabilistic switching transmission strategy represents a probabilistic selection of a certain target load balancing strategy.
[0135] Step 1007: determine the target load balancing strategy as the flow load balancing transmission strategy.
[0136] Step 1008: determine the target load balancing strategy as the equal-cost multi-path transmission strategy.
[0137] Step 1009: Send the traffic message to the receiving end based on the target load balancing strategy.
[0138] Step 1010, determine whether there are subsequent traffic messages, if yes, execute step 1001, if not, execute step 1011.
[0139] Step 1011, end the processing.
[0140] It should be understood that although Figures 2 to 5 , Figures 7 to 10 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figures 2 to 5 , Figures 7 to 10At least part of the steps may include multiple steps or multiple stages. These steps or stages are not necessarily performed at the same time, but can be performed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed in turn or alternately with other steps or at least part of the steps or stages in other steps.
[0141] In one embodiment, Fig.11 As shown, a data transmission device 1100 is provided, and the device 1100 is applied to a receiving end switch. The device 1100 includes: a flow determination module 1101, an acquisition module 1102, a determination module 1103 and a transmission module 1104, wherein:
[0142] The flow determination module 1101 is used to obtain the flow message of the sending end and determine the flow type of the flow message;
[0143] An acquisition module 1102, configured to acquire an inbound congestion value fed back by a receiving-end switch when the flow type is a first flow type;
[0144] A first determination module 1103 is used to determine a target load balancing strategy based on an inbound congestion value and a preset congestion threshold;
[0145] The transmission module 1104 is used to send the traffic message to the receiving end based on the target load balancing strategy.
[0146] In one of the embodiments, the acquisition module 1102 is specifically used to obtain the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message when the flow type is the first flow type;
[0147] Maintain the flow information collection table based on the queue length, packet loss rate and number of concurrent flows corresponding to the traffic packets;
[0148] Transmit the traffic message to the receiving end, and receive the inbound congestion value fed back by the receiving end switch; the flow information collection table is used to verify the inbound congestion value.
[0149] In one of the embodiments, the preset congestion threshold includes a first congestion threshold and a second congestion threshold, the first congestion threshold is less than the second congestion threshold, and the first determination module 1103 is specifically used to determine an equal-cost multi-path transmission strategy if the inbound congestion value is less than the first congestion threshold;
[0150] If the inbound congestion value is greater than the first congestion threshold and less than the second congestion threshold, determining a probabilistic switching transmission strategy;
[0151] If the inbound congestion value is greater than the second congestion threshold, a flow load balancing transmission strategy is determined.
[0152] In one embodiment, the apparatus 1100 further includes:
[0153] The second determination module is used to determine that the target load balancing strategy for the traffic message transmission between the sending end and the receiving end is an equal-cost multi-path transmission strategy when the flow type is the second flow type.
[0154] In one embodiment, Fig.12 As shown, a data transmission device 1200 is provided, including: a receiving module 1201, an acquisition module 1202 and a calculation module 1203, wherein:
[0155] The receiving module 1201 is used to receive the traffic message sent by the sending end;
[0156] The acquisition module 1202 is used to obtain the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message;
[0157] The calculation module 1203 is used to calculate the inbound congestion value of the sending end and the receiving end based on the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message, and feed back the inbound congestion value to the sending end switch, so that the sending end switch determines the target load balancing strategy based on the inbound congestion value and the preset congestion threshold.
[0158] In one embodiment, the calculation module 1203 is specifically used to obtain the switch queue length, packet loss rate and number of concurrent flows of the receiving end switch;
[0159] The inbound congestion values of the sending and receiving ends are calculated based on the switch queue length, the switch buffer size, the number of concurrent flows of the receiving switch, the threshold of the number of concurrent flows, the packet loss rate, and the preset weight factor.
[0160] In one embodiment, the apparatus 1200 further includes:
[0161] The update module is used to maintain an inbound congestion value index collection table based on the inbound congestion values of the sending end and the receiving end. The inbound congestion value index collection table is used to drive the receiving end switch to feedback the inbound congestion value.
[0162] For the specific definition of the data transmission device, please refer to the definition of the data transmission method above, which will not be repeated here. Each module in the above-mentioned data transmission device can be implemented in whole or in part by software, hardware and a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
[0163] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:
[0164] Obtain the traffic message from the sender and determine the flow type of the traffic message;
[0165] When the flow type is the first flow type, obtaining an inbound congestion value fed back by the receiving end switch;
[0166] Determine the target load balancing strategy based on the inbound congestion value and the preset congestion threshold;
[0167] Based on the target load balancing strategy, the traffic message is sent to the receiving end.
[0168] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0169] When the flow type is the first flow type, the queue length, packet loss rate and number of concurrent flows corresponding to the flow message are obtained;
[0170] Maintain the flow information collection table based on the queue length, packet loss rate and number of concurrent flows corresponding to the traffic packets;
[0171] Transmit the traffic message to the receiving end, and receive the inbound congestion value fed back by the receiving end switch; the flow information collection table is used to verify the inbound congestion value.
[0172] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0173] If the inbound congestion value is less than the first congestion threshold, determining an equal-cost multi-path transmission strategy;
[0174] If the inbound congestion value is greater than the first congestion threshold and less than the second congestion threshold, determining a probabilistic switching transmission strategy;
[0175] If the inbound congestion value is greater than the second congestion threshold, a flow load balancing transmission strategy is determined.
[0176] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0177] When the flow type is the second flow type, it is determined that the target load balancing strategy for the traffic message transmission between the sending end and the receiving end is an equal-cost multi-path transmission strategy.
[0178] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:
[0179] Receive traffic packets sent by the sender;
[0180] Get the queue length, packet loss rate, and number of concurrent flows corresponding to the traffic packets;
[0181] Based on the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message, the inbound congestion value of the sender and the receiver is calculated, and the inbound congestion value is fed back to the sender switch so that the sender switch can determine the target load balancing strategy based on the inbound congestion value and the preset congestion threshold.
[0182] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:
[0183] Obtain the switch queue length, packet loss rate, and number of concurrent flows of the receiving switch;
[0184] The inbound congestion values of the sending and receiving ends are calculated based on the switch queue length, the switch buffer size, the number of concurrent flows of the receiving switch, the threshold of the number of concurrent flows, the packet loss rate, and the preset weight factor.
[0185] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:
[0186] Based on the inbound congestion values of the sending end and the receiving end, an inbound congestion value index collection table is maintained, and the inbound congestion value index collection table is used to drive the receiving end switch to feedback the inbound congestion value.
[0187] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
[0188] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0189] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), tape, floppy disk, flash memory or optical memory, etc. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).
[0190] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0191] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the attached claims.
Claims
1. A data transmission method, characterized in that: The method is applied to a sending end switch, and the method comprises: Obtaining a flow message from a sending end, and determining a flow type of the flow message; When the flow type is the first flow type, obtaining an inbound congestion value fed back by the receiving end switch; Determining a target load balancing strategy based on the inbound congestion value and a preset congestion threshold; Based on the target load balancing strategy, the traffic message is sent to the receiving end.
2. The method according to claim 1, characterized in that When the flow type is the first flow type, obtaining the inbound congestion value fed back by the receiving end switch includes: When the flow type is the first flow type, obtaining the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message; Maintaining a flow information collection table based on the queue length corresponding to the traffic message, the packet loss rate and the number of concurrent flows; The flow message is transmitted to the receiving end, and the inbound congestion value fed back by the receiving end switch is received; the flow information collection table is used to verify the inbound congestion value.
3. The method according to claim 1, characterized in that: The preset congestion threshold includes a first congestion threshold and a second congestion threshold, the first congestion threshold is less than the second congestion threshold, and the determining the target load balancing strategy based on the inbound congestion value and the preset congestion threshold includes: If the inbound congestion value is less than the first congestion threshold, determining an equal-cost multi-path transmission strategy; If the inbound congestion value is greater than the first congestion threshold and less than the second congestion threshold, determining a probabilistic switching transmission strategy; If the inbound congestion value is greater than the second congestion threshold, a flow load balancing transmission strategy is determined.
4. The method according to claim 3, characterized in that The method further comprises: When the flow type is the second flow type, it is determined that the target load balancing strategy for the traffic message transmission between the sending end and the receiving end is the equal-cost multi-path transmission strategy.
5. A data transmission method, characterized in that: The method is applied to a receiving-end switch, and the method comprises: Receive traffic packets sent by the sender; Obtaining the queue length, packet loss rate and number of concurrent flows corresponding to the traffic message; Based on the queue length corresponding to the traffic message, the packet loss rate and the number of concurrent flows, the inbound congestion values of the sending end and the receiving end are calculated, and the inbound congestion values are fed back to the sending end switch, so that the sending end switch determines the target load balancing strategy based on the inbound congestion value and the preset congestion threshold.
6. The method according to claim 5, characterized in that The calculating the inbound congestion value of the sending end and the receiving end based on the queue length corresponding to the traffic message, the packet loss rate and the number of concurrent flows includes: Obtaining the switch queue length, packet loss rate, and number of concurrent flows of the receiving-end switch; The inbound congestion values of the sending end and the receiving end are calculated according to the switch queue length, the switch buffer size, the number of concurrent flows of the receiving end switch, the concurrent flow number threshold, the packet loss rate and the preset weight factor.
7. The method according to claim 5 or 6, characterized in that: The method further comprises: Based on the inbound congestion values of the sending end and the receiving end, an inbound congestion value index collection table is maintained, and the inbound congestion value index collection table is used to drive the receiving end switch to feed back the inbound congestion value.
8. A data transmission device, characterized in that: The device is applied to a transmitter receiver, and the device comprises: A flow identification module, used to obtain the flow message of the sending end and determine the flow type of the flow message; An acquisition module, configured to acquire an inbound congestion value fed back by a receiving-end switch when the flow type is a first flow type; A first determination module, configured to determine a target load balancing strategy based on the inbound congestion value and a preset congestion threshold; A transmission module is used to transmit the traffic message to the receiving end based on the target load balancing strategy.
9. A communication device, comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.