Congestion control method, system, device, computer equipment and storage medium
By obtaining switch performance parameters to calculate the path congestion weight and selecting the optimal transmission path, the network congestion problem is solved and the network transmission efficiency and stability is improved.
Patent Information
- Application Number
- CN202411379218.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2025-02-11
- Estimated Expiration
- 2044-09-30
AI Technical Summary
The prior art is difficult to effectively reduce network congestion, resulting in a decrease in network transmission efficiency and stability.
By obtaining the switch performance parameters in the transmission path to be selected, the path congestion weight is calculated, and the optimal transmission path is selected in response to the data scheduling instruction to achieve data transmission.
By dynamically evaluating and optimizing network traffic, reducing latency and packet loss, improving data processing efficiency, and improving overall network performance and stability.
Smart Images

Figure CN118900253B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of Internet technology, and in particular to a congestion control method, system, device, computer equipment and storage medium. Background Art
[0002] In the field of network communications, especially in the field of data exchange and routing, congestion control has always been a key technology to ensure network reliability and efficiency. Network congestion usually describes a situation where the flow of data packets exceeds the processing capacity of network components (such as routers, switches, etc.), causing data packets to start queuing for processing, thereby causing network performance to deteriorate, manifested as transmission delays, data packet loss, and reduced throughput.
[0003] In order to effectively manage network congestion, researchers and engineers have developed a variety of congestion control mechanisms, including congestion window adjustment, which controls the sending rate by dynamically changing the window size of data transmission, traffic management strategies such as traffic scheduling and routing strategies to ensure that traffic in the network is evenly distributed; queuing algorithms such as first-in-first-out, priority queues, and fair queues are used to optimize packet management in network devices. The implementation of these methods aims to improve the overall transmission efficiency and stability of the network by reducing congestion, which is particularly critical for optimizing network performance under high load conditions. However, with the increasing complexity of the network environment and the growth of data traffic, how to develop and implement more efficient congestion control strategies will become an important area of innovation in network technology. Summary of the invention
[0004] In view of this, the present invention provides a congestion control method, system, apparatus, computer device and storage medium to solve the problem that congestion cannot be reduced to improve the overall transmission efficiency and stability of the network.
[0005] In a first aspect, the present invention provides a congestion control method, the method comprising:
[0006] Acquire a transmission path to be selected, and acquire performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission;
[0007] Based on the performance parameter, determining a path congestion weight of the candidate transmission path;
[0008] In response to the data scheduling instruction, the candidate transmission path whose path congestion weight meets the transmission condition is determined as the target transmission path, so as to perform data transmission through the target transmission path.
[0009] In an optional embodiment, the performance parameters of the switch include at least one of the following: switch identifier, switch port identifier, data volume in the sending end buffer, sending end buffer capacity, data volume in the receiving end buffer, receiving end buffer capacity, total network bandwidth in the sending direction, network occupied bandwidth in the sending direction, total network bandwidth in the receiving direction, network occupied bandwidth in the receiving direction, amount of data sent, amount of data received, data sending rate, and data receiving rate.
[0010] In an embodiment of the present invention, a corresponding congestion table can be maintained at each switch end, and the congestion table is used to store the performance parameters of the switch, so as to allow the system to quickly and accurately obtain network congestion data based on the congestion table, thereby realizing the basis for dynamic congestion evaluation and path optimization.
[0011] In an optional implementation, determining the path congestion weight of the candidate transmission path based on the performance parameter includes:
[0012] Calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path;
[0013] Based on the switch congestion weight, a path congestion weight of the to-be-selected transmission path is determined.
[0014] In an embodiment of the present invention, the path congestion weight of the candidate transmission path can be calculated based on the congestion weight of each switch in the candidate transmission path. The congestion table is used to store the performance parameters of the switch, so as to allow the system to quickly and accurately obtain network congestion data according to the congestion table, thereby improving the accuracy of the assessment of the congestion degree of the candidate transmission path.
[0015] In an optional implementation, calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path includes:
[0016] Calculate the first sub-congestion weight of the sending end of the current switch based on the data volume and the sending end buffer capacity of the sending end of the current switch;
[0017] Calculate the second sub-congestion weight of the receiving end of the current switch based on the data volume and the receiving end buffer capacity of the receiving end of the current switch;
[0018] Calculate the third sub-congestion weight of the sending end of the current switch based on the total network bandwidth in the sending direction and the network occupied bandwidth in the sending direction of the current switch;
[0019] Calculate the fourth sub-congestion weight of the receiving end of the current switch based on the total network bandwidth in the receiving direction and the network occupied bandwidth in the receiving direction of the current switch;
[0020] Determine a sending direction weight of the current switch based on the first sub-congestion weight and the third sub-congestion weight, and determine a receiving direction weight of the current switch based on the second sub-congestion weight and the fourth sub-congestion weight;
[0021] The sending direction weight and the receiving direction weight are adjusted based on the switch congestion weights of the adjacent switches of the current switch in the selected transmission path to obtain the switch congestion weight of the current switch.
[0022] In an optional implementation, calculating the first sub-congestion weight of the current switch sending end based on the data volume of the sending end buffer and the sending end buffer capacity of the current switch includes:
[0023] Determine a first difference in the amount of data in the sending end buffer of the current switch within a preset time interval;
[0024] Based on the ratio of the first difference to the buffer capacity of the sending end, a first sub-congestion weight of the sending end of the current switch is determined.
[0025] In an optional implementation, calculating the second sub-congestion weight of the receiving end of the current switch based on the amount of data in the receiving end buffer and the receiving end buffer capacity of the current switch includes:
[0026] Determine a second difference value of the amount of data in the receiving end buffer of the current switch within a preset time interval;
[0027] Based on the ratio of the second difference to the buffer capacity of the receiving end, a second sub-congestion weight of the receiving end of the current switch is determined.
[0028] In an optional implementation, calculating the third sub-congestion weight of the sending end of the current switch based on the total network bandwidth in the sending direction and the network occupied bandwidth in the sending direction of the current switch includes:
[0029] Determine a third difference value of the network bandwidth occupied in the sending direction of the current switch within a preset time interval;
[0030] Based on the ratio of the third difference to the total bandwidth of the network in the sending direction, a third sub-congestion weight of the sending end of the current switch is determined.
[0031] In an optional implementation, calculating the fourth sub-congestion weight of the receiving end of the current switch based on the total network bandwidth in the receiving direction and the network occupied bandwidth in the receiving direction of the current switch includes:
[0032] Determine a fourth difference value of the network bandwidth occupied in the receiving direction of the current switch within a preset time interval;
[0033] Based on the ratio of the fourth difference to the total bandwidth of the receiving direction network, a fourth sub-congestion weight of the receiving end of the current switch is determined.
[0034] In an optional implementation, determining the sending direction weight of the current switch based on the first sub-congestion weight and the third sub-congestion weight, and determining the receiving direction weight of the current switch based on the second sub-congestion weight and the fourth sub-congestion weight includes:
[0035] Obtaining a first weight coefficient of a sending direction, a second weight coefficient of a receiving direction, and a bandwidth weight coefficient of the current switch;
[0036] Determine a first product of the first sub-congestion weight and the first weight coefficient, determine a second product of the second sub-congestion weight and the bandwidth weight coefficient, and determine the sending direction weight according to the sum of the first product and the second product;
[0037] A third product of the third sub-congestion weight and the bandwidth weight coefficient is determined, and a fourth product of the fourth sub-congestion weight and the bandwidth weight coefficient is determined, and the receiving direction weight is determined according to the sum of the third product and the fourth product.
[0038] In an optional implementation, adjusting the sending direction weight and the receiving direction weight based on the switch congestion weights of the adjacent switches of the current switch in the selected transmission path to obtain the switch congestion weight of the current switch includes:
[0039] Obtaining an adjustment coefficient corresponding to the adjacent switch;
[0040] Determine a fifth product of the sending direction weight of the adjacent switch and the adjustment coefficient, and obtain an adjusted sending direction weight based on the sum of the fifth product and the sending direction weight of the current switch;
[0041] Determine a sixth product of the receiving direction weight of the adjacent switch and the adjustment coefficient, and obtain an adjusted receiving direction weight based on the sum of the sixth product and the receiving direction weight of the current switch;
[0042] The switch congestion weight of the current switch is determined according to the adjusted sending direction weight and the adjusted receiving direction weight.
[0043] In the embodiment of the present invention, the switch congestion weight of each switch in the candidate transmission path can be calculated based on the performance parameters of the adjacent switches in the candidate transmission path, so as to realize the congestion level evaluation at the switch level, thereby improving the evaluation accuracy of the congestion level of the candidate transmission path.
[0044] In an optional implementation, determining the path congestion weight of the candidate transmission path based on the switch congestion weight includes:
[0045] Determine switches included in the candidate transmission path based on the source switch and the destination switch of the candidate transmission path;
[0046] The path congestion weight of the candidate transmission path is determined based on the sum of the switch congestion weights of the switches in the candidate transmission path.
[0047] In the embodiment of the present invention, the path congestion weight of the candidate transmission path may be determined based on the sum of the switch congestion weights of the switches in the candidate transmission path, thereby improving the accuracy of the evaluation of the congestion degree of the candidate transmission path.
[0048] In an optional implementation manner, obtaining performance parameters of switches in a candidate transmission path corresponding to the data packet during data transmission includes:
[0049] Monitor the change of data volume in the sending end buffer, the change of sending end bandwidth occupancy, the change of data volume in the receiving end buffer and the change of receiving end bandwidth occupancy in the switch during data transmission to obtain congestion data;
[0050] Based on the congestion data, a performance parameter table of the switch is determined, and performance parameters of the switch are acquired according to the performance parameter table.
[0051] In the embodiment of the present invention, by updating and querying the congestion table in real time, the congestion level of each network path can be accurately evaluated in real time, and the changes in network status can be responded to quickly. This real-time data update and analysis ensures that congestion control measures can be executed immediately and accurately, greatly reducing the delay and packet loss problems caused by untimely response.
[0052] In an optional implementation, in response to the data scheduling instruction, determining the candidate transmission path whose path congestion weight satisfies the transmission condition as the target transmission path includes:
[0053] When congestion is detected during the data transmission process, generating a data scheduling instruction;
[0054] At least one acquired candidate transmission path with the lowest path congestion weight is determined as the target transmission path.
[0055] In an embodiment of the present invention, when congestion is detected during data transmission, a data scheduling instruction may be generated to reselect a target transmission path for data packets to be transmitted, thereby achieving optimal traffic scheduling.
[0056] In a second aspect, the present invention provides a congestion control system, the system comprising: a transmitting end, a receiving end, a path selection component and a central controller;
[0057] The sending end is used to send data packets;
[0058] The central controller is used to obtain a transmission path to be selected, and obtain performance parameters of a switch in the transmission path to be selected during data transmission, and determine a path congestion weight of the transmission path to be selected based on the performance parameters, wherein the performance parameters are used to indicate the occupancy of the switch during data transmission;
[0059] The path selection component is used to determine, in response to the data scheduling instruction, a candidate transmission path whose path congestion weight meets the transmission condition as a target transmission path, so as to transmit the data packet through the target transmission path.
[0060] In an optional implementation, the system further includes: a switch;
[0061] The switch is used to monitor the change of data volume in the sending end buffer, the change of sending end bandwidth occupancy, the change of data volume in the receiving end buffer and the change of receiving end bandwidth occupancy during data transmission of the switch, obtain congestion data, and determine the performance parameter table of the switch based on the congestion data.
[0062] In an optional implementation, the path selection component includes: a first path selection component corresponding to the sending end and a second path selection component corresponding to the switch;
[0063] The second path selection component is used to store and update the performance parameter table of the switch;
[0064] The first path selection component is used to obtain the performance parameters of the target transmission path based on the performance parameter table, and evaluate the target transmission path in real time based on the performance parameters to obtain an evaluation result.
[0065] In a third aspect, the present invention provides a congestion control device, the device comprising:
[0066] An acquisition module, used to acquire a transmission path to be selected, and to acquire performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission;
[0067] A first determination module, configured to determine a path congestion weight of the candidate transmission path based on the performance parameter;
[0068] The second determination module is used to determine, in response to the data scheduling instruction, a candidate transmission path whose path congestion weight meets the transmission condition as a target transmission path, so as to perform data transmission through the target transmission path.
[0069] In a fourth aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the congestion control method of the first aspect or any corresponding embodiment thereof by executing the computer instructions.
[0070] In a fifth aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the congestion control method of the first aspect or any corresponding embodiment thereof.
[0071] In a sixth aspect, the present invention provides a computer program product, comprising computer instructions, wherein the computer instructions are used to enable a computer to execute the congestion control method of the first aspect or any corresponding embodiment thereof. BRIEF DESCRIPTION OF THE DRAWINGS
[0072] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0073] Figure 1 is a flow chart of a congestion control method according to an embodiment of the present invention;
[0074] Figure 2 is a flow chart of another congestion control method according to an embodiment of the present invention;
[0075] Figure 3 is a flow chart of another congestion control method according to an embodiment of the present invention;
[0076] Figure 4 is an architecture diagram of a congestion control system provided by this embodiment;
[0077] Figure 5 is an architecture diagram of another congestion control system provided by this embodiment;
[0078] Figure 6is a schematic diagram of path selection based on an architectural diagram of another congestion control system;
[0079] Figure 7 is a structural block diagram of a congestion control device according to an embodiment of the present invention;
[0080] Figure 8 It is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION
[0081] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.
[0082] In conjunction with the application scenarios on which the execution of the congestion control method depends, the application scenarios are described here.
[0083] In network communication scenarios, especially in the field of data exchange and routing, congestion control has always been a key technology to ensure network reliability and efficiency. Network congestion usually describes a situation where the flow of data packets exceeds the processing capacity of network components (such as routers, switches, etc.), causing data packets to start queuing for processing, thereby causing network performance to degrade, manifested as transmission delays, data packet loss, and reduced throughput.
[0084] In order to effectively manage network congestion, researchers and engineers have developed a variety of congestion control mechanisms, including congestion window adjustment, which controls the sending rate by dynamically changing the window size of data transmission, traffic management strategies such as traffic scheduling and routing strategies to ensure that traffic in the network is evenly distributed; queuing algorithms such as first-in-first-out, priority queues, and fair queues are used to optimize packet management in network devices. The implementation of these methods aims to improve the overall transmission efficiency and stability of the network by reducing congestion, which is particularly critical for optimizing network performance under high load conditions. However, with the increasing complexity of the network environment and the growth of data traffic, how to develop and implement more efficient congestion control strategies will become an important area of innovation in network technology.
[0085] Specifically, in network communication scenarios, especially in data exchange and routing applications, PLB (Protective Load Balancing) and SWIFT (Scalable Wireless Fairness and Efficiency Transport Method) represent two advanced congestion control technologies. PLB mainly prevents and alleviates overloads of network nodes and links by dynamically adjusting the routing allocation of network traffic. It continuously monitors the traffic and load status of each link in the network, predicts potential congestion points, and transfers traffic from high-load links to low-load links in real time. This method not only balances the network load, but also enhances the overall throughput and stability of the network. It is particularly suitable for traffic-intensive data centers and wide area network environments.
[0086] Complementing this is SWIFT technology, which dynamically adjusts the data transmission rate through a sliding window mechanism to cope with the immediate congestion of the network. SWIFT adjusts the window size according to real-time changes in network conditions (such as round-trip time RTT and packet loss rate) to optimize data transmission rate and reduce latency. When the network is in good condition and the packet loss rate is low, SWIFT increases the window to allow more data packets to be transmitted in parallel. Conversely, it reduces the window to reduce the transmission rate, effectively avoiding data loss caused by congestion.
[0087] In order to effectively manage its huge network traffic and reduce delays and packet loss during data transmission, a congestion control solution combining SWIFT and PLB can be used. This combination utilizes the dynamic window adjustment mechanism of SWIFT and the traffic allocation strategy of PLB, and ensures the efficient flow of data between nodes by monitoring the network status in real time and dynamically adjusting the transmission strategy. This not only improves the network's responsiveness and performance, but also enhances the adaptability and stability of the network under different load conditions.
[0088] The strategy of combining PLB and SWIFT not only improves the responsiveness and performance of the network, but also enhances the adaptability and stability of the network under different load conditions. Through this preventive traffic management and real-time traffic control, the network system can handle large-scale data more efficiently and ensure the consistency and security of data transmission, which is crucial for modern large-scale network environments. This collaborative congestion control scheme provides a flexible and effective method for network management, especially in the face of highly dynamic and highly changing network traffic, which can significantly reduce network congestion and optimize the overall performance of the network.
[0089] Although PLB combined with SWIFT's congestion control strategy provides multi-faceted network performance optimization, the implementation of these technologies still has some obvious shortcomings, mainly concentrated in the randomness of resource allocation and environmental adaptability.
[0090] First, the above-mentioned PLEB combined with SWIFT's strategy has problems with uneven resource allocation and random path selection. Specifically, PLB reroutes traffic through random path selection to prevent and reduce overload of network links. However, this randomness may not always achieve the best or most efficient path allocation, and sometimes may even increase the burden on other links, resulting in inefficiency and increased latency. Random routing lacks support for in-depth analysis of network status and may not accurately reflect the current network status in real time, leading to decision-making errors, such as data packets may not pass through the shortest or lowest-load path, thereby reducing overall network performance.
[0091] Secondly, the above-mentioned PLEB combined with SWIFT strategy has environmental adaptability issues. The effectiveness of PLB and SWIFT is highly dependent on the physical and logical topology of the network and their ability to adapt to changes in network conditions. In the case of rapid changes in network topology or traffic patterns, these technologies may require frequent configuration and parameter adjustments, increasing the complexity of management. In addition, compatibility issues with emerging technologies such as SDN may also limit the scope of application and effectiveness of these strategies, especially in modern data centers and complex network environments. Failure to adapt to these technological changes in a timely manner may lead to performance degradation.
[0092] Based on this, an embodiment of the present invention provides a congestion control method. First, a data packet to be transmitted can be obtained, and the performance parameters of the switch in the candidate transmission path corresponding to the data packet during the data transmission process can be obtained, wherein the performance parameters are used to indicate the occupancy of the switch during the data transmission process. Next, the path congestion weight of the candidate transmission path can be determined based on the performance parameters, and in response to the data scheduling instruction, the candidate transmission path whose path congestion weight meets the transmission condition can be determined as the target transmission path, so as to transmit data through the target transmission path, thereby improving the above-mentioned PLEB combined with SWIFT strategy, optimizing the data transmission path by evaluating and adjusting the network traffic in real time and dynamically, reducing delays and packet loss, and improving the efficiency of data processing.
[0093] According to an embodiment of the present invention, a congestion control method embodiment is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0094] In this embodiment, a congestion control method is provided, which can be used for data center equipment. Figure 1 is a flow chart of a congestion control method according to an embodiment of the present invention. Figure 1 As shown, the process includes the following steps:
[0095] Step S101, obtaining a transmission path to be selected, and obtaining performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission.
[0096] The congestion control method in the embodiment of the present invention can be used in a data interaction scenario between a sending host and a receiving host, wherein the sending host and the receiving host include multiple data nodes for data forwarding, and the data nodes can be linked through a switch to achieve data transmission. Here, the data packet to be transmitted can be a data packet sent by the sending host and routed to the receiving host.
[0097] After obtaining the data packet to be transmitted, the candidate transmission path corresponding to the data packet can be determined, wherein the switches included in each candidate transmission path can be at least partially the same. When determining the target transmission path for transmitting the data packet in the candidate transmission path, the congestion of each switch in the candidate transmission path can be comprehensively considered to determine the target transmission path with the best transmission performance. Here, data congestion refers to the situation in which the network transmission performance is reduced due to the excessive number of data packets transmitted and the limited resources of the data nodes in the data exchange network.
[0098] Specifically, the performance parameters of each switch in the selected transmission path can be obtained. The performance parameters can be related to the occupancy of the buffer at the sending end and the receiving end of the switch, as well as the occupancy of the bandwidth at the sending end and the receiving end, so that the congestion of the switch can be analyzed based on the performance parameters.
[0099] Step S102: determining the path congestion weight of the transmission path to be selected based on the performance parameter.
[0100] In the embodiment of the present invention, firstly, the switch congestion weight of each switch in the transmission path to be selected may be determined based on the performance parameters of the switch, and then the path congestion weight of the transmission path to be selected may be calculated according to the switch congestion weight.
[0101] Specifically, considering that the candidate transmission path usually has more than one transmission direction, when calculating the path congestion weight of the candidate transmission path, the bidirectional congestion weight of the switch path can be calculated, that is, the data sending direction weight and the data receiving direction weight are calculated respectively.
[0102] For example, if the candidate transmission path path 1 includes switch 1, switch 2, switch 3, and switch 4, then when calculating the path congestion weight of the candidate transmission path, the data transmission direction weight It can be expressed as the switch congestion weight of switch 1, switch 2, switch 3 and switch 4 in the data sending direction and the data receiving direction weight It can be expressed as the switch congestion weights of switch 1, switch 2, switch 3, and switch 4 in the data receiving direction.
[0103] Step S103 , in response to the data scheduling instruction, determining a candidate transmission path whose path congestion weight meets the transmission condition as a target transmission path, so as to perform data transmission through the target transmission path.
[0104] In the embodiment of the present invention, the transmission performance of the data exchange network can be monitored in real time, and if the transmission performance is monitored to continue to decline, a data scheduling instruction can be generated to instruct to change the target transmission path. Alternatively, the target transmission path can be changed in response to the data scheduling instruction sent by the administrator.
[0105] Specifically, when determining the target transmission path, the path with the lowest congestion weight among the candidate transmission paths can be determined as the target transmission path. Here, the target transmission path with the lowest path congestion weight can be the candidate transmission path with the lowest comprehensive evaluation of path congestion weights in all transmission directions, so that network traffic can be evenly distributed on various paths through intelligent path selection and traffic scheduling strategies, effectively avoiding congestion caused by overload of certain links.
[0106] In summary, a congestion control method is provided in an embodiment of the present invention. First, a data packet to be transmitted can be obtained, and the performance parameters of the switch in the selected transmission path corresponding to the data packet during the data transmission process can be obtained, wherein the performance parameters are used to indicate the occupancy of the switch during the data transmission process. Next, the path congestion weight of the selected transmission path can be determined based on the performance parameters, and in response to the data scheduling instruction, the selected transmission path whose path congestion weight meets the transmission condition is determined as the target transmission path, so as to transmit data through the target transmission path, thereby improving the above-mentioned PLEB combined with SWIFT strategy, optimizing the data transmission path by real-time and dynamic evaluation and adjustment of network traffic, reducing delay and packet loss, and improving the efficiency of data processing. This optimization not only improves the throughput of the network, but also maximizes the utilization efficiency of existing network resources and reduces resource waste. Furthermore, by reducing and preventing network congestion, the stability and reliability of the network are significantly improved, and a stable network environment reduces the situation of disconnection and service unavailability, especially for those application scenarios requiring high reliability, such as online transactions, cloud computing services, etc., and the present invention provides strong technical support for this.
[0107] On this basis, the present invention supports the network to quickly adapt to topology changes and dynamic changes in traffic, and adjusts congestion control strategies and routing selection by updating congestion query tables in real time. This high degree of adaptability enables the network to effectively respond to emergencies, such as link failures, traffic surges, etc., to ensure the continuity and stability of network services. At the same time, it is easier to expand the network scale and support more complex network architectures and higher data traffic requirements. By providing flexible congestion control and load balancing mechanisms, the present invention ensures that the network can still maintain efficient operation and management during the expansion process, meeting the growing network service and user needs.
[0108] Therefore, these improvements not only greatly improve the overall performance of the network, but also optimize the efficiency of network management and operation, and provide strong technical support for coping with the current and future complex and changeable network environment. Through these beneficial effects, the present invention shows a wide range of application potential and important practical value in the field of network technology.
[0109] In some optional embodiments, the performance parameters of the above-mentioned switch include at least one of the following: switch identifier, switch port identifier, data volume in the sending end buffer, sending end buffer capacity, data volume in the receiving end buffer, receiving end buffer capacity, total network bandwidth in the sending direction, network occupied bandwidth in the sending direction, total network bandwidth in the receiving direction, network occupied bandwidth in the receiving direction, amount of data sent, amount of data received, data sending rate, and data receiving rate.
[0110] In the embodiment of the present invention, a congestion table can be maintained at each switch end, and the congestion table is used to store the performance parameters of the switch, so as to count the congestion of the switch according to the congestion table. Here, the congestion table can be mutually transmitted and shared between the sending host end, the switch end and the receiver end.
[0111] Specifically, the performance parameters in the congestion table may include at least one of the following: a switch identifier (ie, a switch ID, represented as ), the switch port identifier (also known as port ID, expressed as )、The amount of data in the sender buffer ( )、sender buffer capacity( ), the amount of data in the receiving end buffer ( ), receiving end buffer capacity ( )、Total network bandwidth in the sending direction( )、The network bandwidth occupied in the sending direction ( )、Total network bandwidth in receiving direction( )、Receive direction network bandwidth occupied ( )、The amount of data sent( ), the amount of data received ( )、Data transmission rate( )、Data receiving rate( ).
[0112] Here, the total size of the receiving end buffer can be recorded, the space used by the receiving end buffer can be collected, and at the receiver end, the total amount of received data can be recorded. Specifically, the script can be used to regularly collect data from the sending host end and the switch end, including the use of the sending buffer, the bandwidth use and the amount of data sent, and send these data to the central controller. The central controller receives data from each end, integrates all congestion tables, and performs analysis and processing so that the central controller can calculate the path congestion weight of the selected transmission path.
[0113] In an embodiment of the present invention, a corresponding congestion table can be maintained at each switch end, and the congestion table is used to store the performance parameters of the switch, so as to allow the system to quickly and accurately obtain network congestion data based on the congestion table, thereby realizing the basis for dynamic congestion evaluation and path optimization.
[0114] In this embodiment, another congestion control method is provided, which can be used for data center equipment. Figure 2 is a flow chart of another congestion control method according to an embodiment of the present invention. Figure 2 As shown, the process includes the following steps:
[0115] Step S201, obtaining a transmission path to be selected, and obtaining performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission.
[0116] Specifically, the above step S201 includes:
[0117] Step S2011, monitoring the change of data volume in the sending end buffer, the change of sending end bandwidth occupancy, the change of data volume in the receiving end buffer and the change of receiving end bandwidth occupancy in the switch during data transmission, and obtaining congestion data.
[0118] Step S2012: determining a performance parameter table of the switch based on the congestion data, and acquiring performance parameters of the switch according to the performance parameter table.
[0119] In the embodiment of the present invention, the performance parameter table is the above-mentioned congestion table. In the present invention, the change of the switch performance parameter can be monitored in real time, and the congestion table corresponding to the switch can be maintained. Here, the change of the data volume in the sender buffer, the change of the sender bandwidth occupancy, the change of the data volume in the receiver buffer and the change of the receiver bandwidth occupancy in the data transmission process of the switch can be monitored to obtain congestion data, so as to update the above-mentioned sender buffer data volume ( )、sender buffer capacity( ), the amount of data in the receiving end buffer ( ), receiving end buffer capacity ( )、Total network bandwidth in the sending direction( )、The network bandwidth occupied in the sending direction ( )、Total network bandwidth in receiving direction( ) and the network bandwidth occupied in the receiving direction ( ) and other performance parameters.
[0120] Step S202: Determine the path congestion weight of the candidate transmission path based on the performance parameter. Figure 1 Step S102 of the illustrated embodiment will not be described in detail here.
[0121] Step S203, in response to the data scheduling instruction, determine the candidate transmission path whose path congestion weight meets the transmission condition as the target transmission path, so as to transmit data through the target transmission path. Figure 1 Step S103 of the illustrated embodiment will not be described in detail here.
[0122] In the embodiment of the present invention, by updating and querying the congestion table in real time, the congestion level of each network path can be accurately evaluated in real time, and the changes in network status can be responded to quickly. This real-time data update and analysis ensures that congestion control measures can be executed immediately and accurately, greatly reducing the delay and packet loss problems caused by untimely response.
[0123] In this embodiment, another congestion control method is provided, which can be used for data center equipment. Figure 3 is a flow chart of another congestion control method according to an embodiment of the present invention. Figure 3 As shown, the process includes the following steps:
[0124] Step S301, obtaining a transmission path to be selected, and obtaining performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission. Figure 1 Step S101 of the illustrated embodiment will not be described in detail here.
[0125] Step S302: determining the path congestion weight of the transmission path to be selected based on the performance parameter.
[0126] Specifically, the above step S3302 includes:
[0127] Step S3021, based on the performance parameters of the adjacent switches in the transmission path to be selected, the switch congestion weight of each switch in the transmission path to be selected is calculated.
[0128] Step S3022: Determine the path congestion weight of the transmission path to be selected based on the switch congestion weight.
[0129] In the embodiment of the present invention, considering that during the data transmission process, whether the path congestion of the switch is highly correlated with the next-hop switch, assuming that the next-hop switch is very busy will lead to a higher probability of congestion of the current switch. Therefore, the adjacent switches include the current switch and the next-hop switch of the current switch on the selected transmission path.
[0130] Specifically, the switch congestion weight of the current switch may be calculated, and based on the switch congestion weight of the next-hop switch of the current switch, the switch congestion weight of the current switch may be adjusted to make the switch congestion weight more reliable.
[0131] Step S203, in response to the data scheduling instruction, determine the candidate transmission path whose path congestion weight meets the transmission condition as the target transmission path, so as to transmit data through the target transmission path. Figure 1 Step S103 of the illustrated embodiment will not be described in detail here.
[0132] In an embodiment of the present invention, the path congestion weight of the candidate transmission path can be calculated based on the congestion weight of each switch in the candidate transmission path. The congestion table is used to store the performance parameters of the switch, so as to allow the system to quickly and accurately obtain network congestion data according to the congestion table, thereby improving the accuracy of the assessment of the congestion degree of the candidate transmission path.
[0133] In some optional implementations, step S3021 includes:
[0134] Step a1, based on the data volume and the buffer capacity of the current switch, calculate the first sub-congestion weight of the current switch's sender.
[0135] Step a2: Calculate the second sub-congestion weight of the receiving end of the current switch based on the data volume and the receiving end buffer capacity of the current switch.
[0136] Step a3, calculating the third sub-congestion weight of the sending end of the current switch based on the total network bandwidth in the sending direction and the network occupied bandwidth in the sending direction of the current switch.
[0137] Step a4, calculating the fourth sub-congestion weight of the receiving end of the current switch based on the total network bandwidth in the receiving direction and the network occupied bandwidth in the receiving direction of the current switch.
[0138] Step a5: determining the sending direction weight of the current switch based on the first sub-congestion weight and the third sub-congestion weight, and determining the receiving direction weight of the current switch based on the second sub-congestion weight and the fourth sub-congestion weight.
[0139] Step a6: adjusting the sending direction weight and the receiving direction weight based on the switch congestion weights of the adjacent switches of the current switch in the selected transmission path to obtain the switch congestion weight of the current switch.
[0140] In the embodiment of the present invention, when calculating the switch congestion weight of the current switch, the calculation can be divided into two directions: receiving direction weight and sending direction weight. When calculating the congestion weight of each direction, the buffer congestion weight and the bandwidth congestion weight can also be specifically included.
[0141] Here, the buffer congestion weight of the current switch sending end is the first sub-congestion weight, and the bandwidth congestion weight is the third sub-congestion weight. That is, the sending direction weight of the current switch includes the first sub-congestion weight and the third sub-congestion weight.
[0142] Specifically, when determining the first sub-congestion weight, the step a1 includes:
[0143] (1) Determine a first difference in the amount of data in the sending end buffer of the current switch within a preset time interval.
[0144] (2) Based on the ratio of the first difference to the buffer capacity of the sending end, determine the first sub-congestion weight of the sending end of the current switch.
[0145] In the embodiment of the present invention, the congestion weight of the switch can be calculated according to the preset time interval, thereby saving computing resources. Specifically, if the starting time point of the preset time interval is t1 and the ending time point is t2, the amount of data in the sender buffer of the current switch at time t1 can be obtained. , and obtain the amount of data in the sender buffer of the current switch at time t2 .
[0146] Then, the first difference value of the amount of data in the sending end buffer of the current switch within the preset time interval can be calculated Next, if the sender buffer capacity is , then the first sub-congestion weight It can be expressed as .
[0147] In addition, when determining the third sub-congestion weight, the step a3 includes:
[0148] (1) Determine a third difference value of the network bandwidth occupied in the sending direction of the current switch within a preset time interval.
[0149] (2) Based on the ratio of the third difference to the buffer capacity of the sending end, determine the third sub-congestion weight of the sending end of the current switch.
[0150] Taking the preset time interval [t1, t2] as an example in the embodiment of the present invention, the network bandwidth occupied by the current switch in the sending direction at time t1 can be obtained first. , and obtain the network bandwidth occupied by the current switch in the sending direction at time t2 .
[0151] Then, the third difference of the network bandwidth occupied by the current switch in the sending direction within the preset time interval can be calculated. Next, if the total network bandwidth in the sending direction is , then the third sub-congestion weight It can be expressed as .
[0152] Similarly, the receiving direction weight of the current switch includes the second sub-congestion weight and the fourth sub-congestion weight. Specifically, when determining the second sub-congestion weight, the above step a2 includes:
[0153] (1) Determine a second difference value of the amount of data in the receiving end buffer of the current switch within a preset time interval.
[0154] (2) Based on the ratio of the second difference to the buffer capacity of the receiving end, determine the second sub-congestion weight of the receiving end of the current switch.
[0155] Taking the preset time interval [t1, t2] as an example in the embodiment of the present invention, the network bandwidth occupied by the current switch in the sending direction at time t1 can be obtained first. , and obtain the network bandwidth occupied by the current switch in the sending direction at time t2 .
[0156] Then, the second difference value of the amount of data in the receiving end buffer of the current switch within the preset time interval can be calculated. Next, if the receiving end buffer capacity is , then the second sub-congestion weight It can be expressed as .
[0157] In addition, when determining the fourth sub-congestion weight, the step a4 includes:
[0158] (1) Determine a fourth difference value of the network bandwidth occupied in the receiving direction of the current switch within a preset time interval.
[0159] (2) Based on the ratio of the fourth difference to the total bandwidth of the network in the receiving direction, determine the fourth sub-congestion weight of the receiving end of the current switch.
[0160] Taking the preset time interval [t1, t2] as an example in the embodiment of the present invention, firstly, the network bandwidth occupied by the receiving direction of the current switch at time t1 can be obtained. , and obtain the network bandwidth occupied by the current switch in the receiving direction at time t2 .
[0161] Then, the fourth difference value of the network bandwidth occupied by the current switch in the receiving direction within the preset time interval can be calculated. Next, if the total network bandwidth in the receiving direction is , then the fourth sub-congestion weight It can be expressed as .
[0162] Next, the above step a5 may be performed to determine the sending direction weight of the current switch based on the first sub-congestion weight and the third sub-congestion weight, and to determine the receiving direction weight of the current switch based on the second sub-congestion weight and the fourth sub-congestion weight. The step a5 specifically includes:
[0163] (1) Obtain the first weight coefficient of the sending direction, the second weight coefficient of the receiving direction, and the bandwidth weight coefficient of the current switch.
[0164] (2) Determine a first product of the first sub-congestion weight and the first weight coefficient, determine a second product of the second sub-congestion weight and the bandwidth weight coefficient, and determine a sending direction weight according to the sum of the first product and the second product.
[0165] (3) Determine a third product of the third sub-congestion weight and the bandwidth weight coefficient, determine a fourth product of the fourth sub-congestion weight and the bandwidth weight coefficient, and determine the receiving direction weight according to the sum of the third product and the fourth product.
[0166] In an embodiment of the present invention, the historical network data can be analyzed according to a machine learning algorithm to determine the first weight coefficient , the second weight coefficient And the bandwidth weight coefficient Here, the machine learning algorithm can run on the central controller mentioned above to analyze historical network data and dynamically adjust and optimize these coefficients in a timely manner.
[0167] After determining the first sub-congestion weight , the second sub-congestion weight , the third sub-congestion weight and the fourth child congestion weight Based on the first weight coefficient , the second weight coefficient And the bandwidth weight coefficient Calculate the sending direction weight of the current switch and receiving direction weight , to obtain the current mitigation and bidirectional congestion weight of the switch ( , ).
[0168] Specifically, the sending direction weight , receiving direction weight .here, That is, the first product mentioned above, That is, the second product mentioned above, That is, the third product mentioned above, This is the fourth product mentioned above.
[0169] Next, the above step a6 may be performed to adjust the sending direction weight and the receiving direction weight based on the switch congestion weights of the adjacent switches of the current switch in the selected transmission path to obtain the switch congestion weight of the current switch. The step a6 specifically includes:
[0170] (1) Obtain the adjustment coefficients corresponding to adjacent switches.
[0171] (2) Determine the fifth product of the transmission direction weight of the adjacent switch and the adjustment coefficient, and obtain the adjusted transmission direction weight based on the sum of the fifth product and the transmission direction weight of the current switch.
[0172] (3) Determine the sixth product of the receiving direction weight of the adjacent switch and the adjustment coefficient, and obtain the adjusted receiving direction weight based on the sum of the sixth product and the receiving direction weight of the current switch.
[0173] (4) Determine the switch congestion weight of the current switch according to the adjusted sending direction weight and the adjusted receiving direction weight.
[0174] In the embodiment of the present invention, it can be seen from the above that the adjacent switch is the next hop switch of the current switch in the transmission path to be selected, and the above adjustment coefficient can be expressed as Based on this, the adjustment factor can be For the above switch bidirectional congestion weight ( , ) is adjusted to obtain the switch congestion weight of the current switch.
[0175] Specifically, if the sending direction weight of the adjacent switch is , the receiving direction weight is , then the adjusted sending direction weight , the adjusted receiving direction weight .here, is the fifth product mentioned above, is the sixth product mentioned above. Based on this, the switch congestion weight of the current switch can be expressed as ( , )
[0176] In the embodiment of the present invention, the switch congestion weight of each switch in the candidate transmission path can be calculated based on the performance parameters of the adjacent switches in the candidate transmission path, so as to realize the congestion level evaluation at the switch level, thereby improving the evaluation accuracy of the congestion level of the candidate transmission path.
[0177] In some optional implementations, the above step S3022 includes:
[0178] Step b1: determining switches included in the transmission path to be selected based on the source switch and the destination switch of the transmission path to be selected.
[0179] Step b2: determining the path congestion weight of the transmission path to be selected based on the sum of the switch congestion weights of each switch in the transmission path to be selected.
[0180] In the embodiment of the present invention, the source switch src is the starting point for the data packet to be transmitted in the transmission network, and the destination switch dst is the end point for the data packet to be transmitted in the transmission network. The path congestion weight can be expressed as ( , ), , Where i is the transmission path to be selected is the index of the switch on i, and j is the index of the port used on switch i.
[0181] For example, for the candidate transmission path , the source switch src of the selected transmission path is, , , then the congestion weight of the sending direction corresponding to the candidate transmission path can be expressed as = , the congestion weight in the receiving direction can be expressed as = Therefore, the candidate transmission path The path congestion weight can be expressed as ( , ).
[0182] In the embodiment of the present invention, the path congestion weight of the candidate transmission path may be determined based on the sum of the switch congestion weights of the switches in the candidate transmission path, thereby improving the accuracy of the evaluation of the congestion degree of the candidate transmission path.
[0183] In some optional implementations, the above step S103 includes:
[0184] Step S1031, when congestion is detected during data transmission, a data scheduling instruction is generated.
[0185] Step S1032: determine at least one of the candidate transmission paths with the lowest path congestion weight as the target transmission path.
[0186] In an embodiment of the present invention, the central controller may periodically collect congestion data at different time points, calculate the path congestion weight of each transmission path in the transmission network, and synchronously update the congestion weight to the path selection component corresponding to each switch.
[0187] When congestion is detected during data transmission, the central controller can generate a data scheduling instruction to enable the above-mentioned SWIFT and PLB to start the adjustment mechanism. Specifically, when the PLB needs to reselect a path, the path selection component selects the path with the lowest current path congestion weight based on the latest path congestion weight to achieve the best traffic scheduling. Here, the candidate transmission path with the lowest combined congestion weight of the sending direction and the congestion weight of the receiving direction can be determined as the target transmission path.
[0188] In an embodiment of the present invention, when congestion is detected during data transmission, a data scheduling instruction may be generated to reselect a target transmission path for data packets to be transmitted, thereby achieving optimal traffic scheduling.
[0189] In summary, a congestion control method is provided in an embodiment of the present invention. First, a data packet to be transmitted can be obtained, and the performance parameters of the switch in the candidate transmission path corresponding to the data packet during the data transmission process can be obtained, wherein the performance parameters are used to indicate the occupancy of the switch during the data transmission process. Next, the path congestion weight of the candidate transmission path can be determined based on the performance parameters, and in response to the data scheduling instruction, the candidate transmission path whose path congestion weight meets the transmission condition is determined as the target transmission path, so as to transmit data through the target transmission path, thereby improving the above-mentioned PLEB combined with SWIFT strategy, optimizing the data transmission path by real-time and dynamic evaluation and adjustment of network traffic, reducing delays and packet loss, and improving the efficiency of data processing.
[0190] In this embodiment, a congestion control system is also provided, which is used to implement the above embodiments and preferred implementations, and the details that have been described will not be repeated. Figure 4 The figure shows an architecture diagram of a congestion control system provided by this embodiment. The system includes: a sending end, a receiving end, a path selection component and a central controller.
[0191] The sender is used to send data packets.
[0192] The central controller is used to obtain a candidate transmission path and performance parameters of a switch in the candidate transmission path during data transmission, and determine a path congestion weight of the candidate transmission path based on the performance parameters, wherein the performance parameters are used to indicate the occupancy of the switch during data transmission.
[0193] The path selection component is used to determine, in response to the data scheduling instruction, a candidate transmission path whose path congestion weight meets the transmission condition as a target transmission path, so as to transmit the data packet through the target transmission path.
[0194] In the embodiment of the present invention, further functional descriptions of the above-mentioned functional units are as follows: Figure 1 The corresponding embodiments are the same and will not be described again here.
[0195] In some optional implementations, the above system further includes: a switch;
[0196] The switch is used to monitor the changes in the amount of data in the sender buffer, the change in the sender bandwidth occupancy, the change in the amount of data in the receiver buffer and the change in the receiver bandwidth occupancy during data transmission, obtain congestion data, and determine the performance parameter table of the switch based on the congestion data.
[0197] In the embodiment of the present invention, Figure 5 The diagram shows an architecture of another congestion control system provided by this embodiment, wherein the switch can be used to forward data packets, generate and maintain the above performance parameter table, i.e., the above congestion table. It should be understood that the switch needs to support the above SWIFT, PLB algorithm, and can interact with the path selection component to select a transmission path for each data path.
[0198] In some optional implementations, the path selection component includes: a first path selection component corresponding to the sending end and a second path selection component corresponding to the switch;
[0199] The second path selection component is used to store and update the performance parameter table of the switch.
[0200] The first path selection component is used to obtain the performance parameters of the target transmission path based on the performance parameter table, and evaluate the target transmission path in real time based on the performance parameters to obtain an evaluation result.
[0201] In the embodiment of the present invention, Figure 5 It can be seen that a first path selection component can be set for the sending host, and a second path selection component can be set for each switch in the transmission network. Figure 6 Shown is a schematic diagram of path selection based on an architecture diagram of another congestion control system, wherein a second path selection component can be tightly integrated with a congestion table to use real-time data to evaluate and select an optimal path for data transmission.
[0202] In addition, the first path selection component can be used to evaluate the congestion of each target transmission path when there are multiple target transmission paths to obtain an evaluation result, and determine the optimal transmission path according to the evaluation result. The specific path selection method is the same as the above Figure 1 The corresponding embodiments are the same and will not be described again here.
[0203] In summary, a congestion control system is provided in an embodiment of the present invention. First, a data packet to be transmitted can be obtained, and the performance parameters of the switch in the candidate transmission path corresponding to the data packet during the data transmission process can be obtained, wherein the performance parameters are used to indicate the occupancy of the switch during the data transmission process. Next, the path congestion weight of the candidate transmission path can be determined based on the performance parameters, and in response to the data scheduling instruction, the candidate transmission path whose path congestion weight meets the transmission condition can be determined as the target transmission path, so as to transmit data through the target transmission path, thereby improving the above-mentioned PLEB combined with SWIFT strategy, optimizing the data transmission path by real-time and dynamic evaluation and adjustment of network traffic, reducing delays and packet loss, and improving data processing efficiency.
[0204] In this embodiment, a congestion control device is also provided, which is used to implement the above embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware of a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.
[0205] This embodiment provides a congestion control device, such as Figure 7 As shown, including:
[0206] The acquisition module 701 is used to acquire a transmission path to be selected, and acquire performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission;
[0207] A first determination module 702, configured to determine a path congestion weight of a candidate transmission path based on a performance parameter;
[0208] The second determination module 703 is configured to, in response to the data scheduling instruction, determine a candidate transmission path whose path congestion weight satisfies the transmission condition as a target transmission path, so as to perform data transmission through the target transmission path.
[0209] In some optional embodiments, the performance parameters of the above-mentioned switch include at least one of the following: switch identifier, switch port identifier, data volume in the sending end buffer, sending end buffer capacity, data volume in the receiving end buffer, receiving end buffer capacity, total network bandwidth in the sending direction, network occupied bandwidth in the sending direction, total network bandwidth in the receiving direction, network occupied bandwidth in the receiving direction, amount of data sent, amount of data received, data sending rate, and data receiving rate.
[0210] In some optional implementations, the first determining module 702 is further configured to:
[0211] Calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path;
[0212] Based on the switch congestion weight, a path congestion weight of the to-be-selected transmission path is determined.
[0213] In some optional implementations, the first determining module 702 is further configured to:
[0214] Calculate the first sub-congestion weight of the sending end of the current switch based on the data volume and the sending end buffer capacity of the sending end of the current switch;
[0215] Calculate the second sub-congestion weight of the receiving end of the current switch based on the data volume and the receiving end buffer capacity of the receiving end of the current switch;
[0216] Calculate the third sub-congestion weight of the sending end of the current switch based on the total network bandwidth in the sending direction and the network occupied bandwidth in the sending direction of the current switch;
[0217] Calculate the fourth sub-congestion weight of the receiving end of the current switch based on the total network bandwidth in the receiving direction and the network occupied bandwidth in the receiving direction of the current switch;
[0218] Determine a sending direction weight of the current switch based on the first sub-congestion weight and the third sub-congestion weight, and determine a receiving direction weight of the current switch based on the second sub-congestion weight and the fourth sub-congestion weight;
[0219] The sending direction weight and the receiving direction weight are adjusted based on the switch congestion weights of the adjacent switches of the current switch in the selected transmission path to obtain the switch congestion weight of the current switch.
[0220] In some optional implementations, the first determining module 702 is further configured to:
[0221] Determine a first difference in the amount of data in the sending end buffer of the current switch within a preset time interval;
[0222] Based on the ratio of the first difference to the buffer capacity of the sending end, a first sub-congestion weight of the sending end of the current switch is determined.
[0223] In some optional implementations, the first determining module 702 is further configured to:
[0224] Determine a second difference value of the amount of data in the receiving end buffer of the current switch within a preset time interval;
[0225] Based on the ratio of the second difference to the buffer capacity of the receiving end, a second sub-congestion weight of the receiving end of the current switch is determined.
[0226] In some optional implementations, the first determining module 702 is further configured to:
[0227] Determine a third difference value of the network bandwidth occupied in the sending direction of the current switch within a preset time interval;
[0228] Based on the ratio of the third difference to the total bandwidth of the network in the sending direction, a third sub-congestion weight of the sending end of the current switch is determined.
[0229] In some optional implementations, the first determining module 702 is further configured to:
[0230] Determine a fourth difference value of the network bandwidth occupied in the receiving direction of the current switch within a preset time interval;
[0231] Based on the ratio of the fourth difference to the total bandwidth of the receiving direction network, a fourth sub-congestion weight of the receiving end of the current switch is determined.
[0232] In some optional implementations, the first determining module 702 is further configured to:
[0233] Obtaining a first weight coefficient of a sending direction, a second weight coefficient of a receiving direction, and a bandwidth weight coefficient of the current switch;
[0234] Determine a first product of the first sub-congestion weight and the first weight coefficient, determine a second product of the second sub-congestion weight and the bandwidth weight coefficient, and determine the sending direction weight according to the sum of the first product and the second product;
[0235] A third product of the third sub-congestion weight and the bandwidth weight coefficient is determined, and a fourth product of the fourth sub-congestion weight and the bandwidth weight coefficient is determined, and the receiving direction weight is determined according to the sum of the third product and the fourth product.
[0236] In some optional implementations, the first determining module 702 is further configured to:
[0237] Obtaining an adjustment coefficient corresponding to the adjacent switch;
[0238] Determine a fifth product of the sending direction weight of the adjacent switch and the adjustment coefficient, and obtain an adjusted sending direction weight based on the sum of the fifth product and the sending direction weight of the current switch;
[0239] Determine a sixth product of the receiving direction weight of the adjacent switch and the adjustment coefficient, and obtain an adjusted receiving direction weight based on the sum of the sixth product and the receiving direction weight of the current switch;
[0240] The switch congestion weight of the current switch is determined according to the adjusted sending direction weight and the adjusted receiving direction weight.
[0241] In some optional implementations, the first determining module 702 is further configured to:
[0242] Determine switches included in the candidate transmission path based on the source switch and the destination switch of the candidate transmission path;
[0243] The path congestion weight of the candidate transmission path is determined based on the sum of the switch congestion weights of the switches in the candidate transmission path.
[0244] In some optional implementations, the acquisition module 701 is further used to:
[0245] Monitor the change of data volume in the sending end buffer, the change of sending end bandwidth occupancy, the change of data volume in the receiving end buffer and the change of receiving end bandwidth occupancy in the switch during data transmission to obtain congestion data;
[0246] Based on the congestion data, a performance parameter table of the switch is determined, and performance parameters of the switch are acquired according to the performance parameter table.
[0247] In some optional implementations, the second determining module 703 is further configured to:
[0248] When congestion is detected during the data transmission process, generating a data scheduling instruction;
[0249] At least one acquired candidate transmission path with the lowest path congestion weight is determined as the target transmission path.
[0250] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.
[0251] The congestion control device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.
[0252] The embodiment of the present invention also provides a computer device having the above Figure 7 The congestion control device shown.
[0253] See also Figure 8 , Figure 8 is a schematic diagram of the structure of a computer device provided by an optional embodiment of the present invention, such as Figure 8 As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 8 A processor 10 is taken as an example.
[0254] The processor 10 may be a central processing unit, a network processor or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic or any combination thereof.
[0255] The memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.
[0256] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0257] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.
[0258] The computer device further comprises a communication interface 30 for the computer device to communicate with other devices or a communication network.
[0259] The embodiment of the present invention also provides a computer-readable storage medium. The method according to the embodiment of the present invention can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium through a network download, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state hard disk, etc.; further, the storage medium can also include a combination of the above types of memories. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.
[0260] A part of the present invention may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present invention through the operation of the computer. Those skilled in the art should understand that the existence of the computer program instruction in a computer-readable medium includes, but is not limited to, a source file, an executable file, an installation package file, etc., and accordingly, the way in which the computer program instruction is executed by the computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium may be any available computer-readable storage medium or communication medium accessible to the computer.
[0261] Although the embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations are all within the scope defined by the appended claims.
Claims
1. A congestion control method, characterized in that: The method comprises: Acquire a transmission path to be selected, and acquire performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission; Based on the performance parameter, determining a path congestion weight of the candidate transmission path; In response to the data scheduling instruction, determining the candidate transmission path whose path congestion weight meets the transmission condition as the target transmission path, so as to perform data transmission through the target transmission path; Wherein, determining the path congestion weight of the candidate transmission path based on the performance parameter includes: Calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path; Determining the path congestion weight of the candidate transmission path based on the switch congestion weight; The step of calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path includes: The sending direction weight and the receiving direction weight are adjusted based on the switch congestion weight of the adjacent switch of the current switch in the candidate transmission path to obtain the switch congestion weight of the current switch, wherein the adjacent switch is the next hop switch of the current switch in the candidate transmission path.
2. The method according to claim 1, characterized in that The performance parameters of the switch include at least one of the following: switch identifier, switch port identifier, data volume in the sending end buffer, sending end buffer capacity, data volume in the receiving end buffer, receiving end buffer capacity, total network bandwidth in the sending direction, network occupied bandwidth in the sending direction, total network bandwidth in the receiving direction, network occupied bandwidth in the receiving direction, amount of data sent, amount of data received, data sending rate, and data receiving rate.
3. The method according to claim 1, characterized in that The calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path includes: Calculate the first sub-congestion weight of the sending end of the current switch based on the data volume and the sending end buffer capacity of the sending end of the current switch; Calculate the second sub-congestion weight of the receiving end of the current switch based on the data volume and the receiving end buffer capacity of the receiving end of the current switch; Calculate the third sub-congestion weight of the sending end of the current switch based on the total network bandwidth in the sending direction and the network occupied bandwidth in the sending direction of the current switch; Calculate the fourth sub-congestion weight of the receiving end of the current switch based on the total network bandwidth in the receiving direction and the network occupied bandwidth in the receiving direction of the current switch; The sending direction weight of the current switch is determined based on the first sub-congestion weight and the third sub-congestion weight, and the receiving direction weight of the current switch is determined based on the second sub-congestion weight and the fourth sub-congestion weight.
4. The method according to claim 3, characterized in that The calculating, based on the amount of data in the sender buffer of the current switch and the sender buffer capacity, the first sub-congestion weight of the sender of the current switch comprises: Determine a first difference in the amount of data in the sending end buffer of the current switch within a preset time interval; Based on the ratio of the first difference to the buffer capacity of the sending end, a first sub-congestion weight of the sending end of the current switch is determined.
5. The method according to claim 3, characterized in that: The calculating, based on the amount of data in the receiving end buffer of the current switch and the receiving end buffer capacity, the second sub-congestion weight of the receiving end of the current switch comprises: Determine a second difference value of the amount of data in the receiving end buffer of the current switch within a preset time interval; Based on the ratio of the second difference to the buffer capacity of the receiving end, a second sub-congestion weight of the receiving end of the current switch is determined.
6. The method according to claim 3, characterized in that The calculating the third sub-congestion weight of the sending end of the current switch based on the total network bandwidth in the sending direction and the network occupied bandwidth in the sending direction of the current switch includes: Determine a third difference value of the network bandwidth occupied in the sending direction of the current switch within a preset time interval; Based on the ratio of the third difference to the total bandwidth of the network in the sending direction, a third sub-congestion weight of the sending end of the current switch is determined.
7. The method according to claim 3, characterized in that The calculating, based on the total network bandwidth in the receiving direction of the current switch and the network occupied bandwidth in the receiving direction, the fourth sub-congestion weight of the receiving end of the current switch comprises: Determine a fourth difference value of the network bandwidth occupied in the receiving direction of the current switch within a preset time interval; Based on the ratio of the fourth difference to the total bandwidth of the receiving direction network, a fourth sub-congestion weight of the receiving end of the current switch is determined.
8. The method according to claim 3, characterized in that The determining the sending direction weight of the current switch based on the first sub-congestion weight and the third sub-congestion weight, and determining the receiving direction weight of the current switch based on the second sub-congestion weight and the fourth sub-congestion weight, includes: Obtaining a first weight coefficient of a sending direction, a second weight coefficient of a receiving direction, and a bandwidth weight coefficient of the current switch; Determine a first product of the first sub-congestion weight and the first weight coefficient, determine a second product of the second sub-congestion weight and the bandwidth weight coefficient, and determine the sending direction weight according to the sum of the first product and the second product; A third product of the third sub-congestion weight and the bandwidth weight coefficient is determined, and a fourth product of the fourth sub-congestion weight and the bandwidth weight coefficient is determined, and the receiving direction weight is determined according to the sum of the third product and the fourth product.
9. The method according to claim 3, characterized in that: The adjusting the sending direction weight and the receiving direction weight based on the switch congestion weights of the adjacent switches of the current switch in the selected transmission path to obtain the switch congestion weight of the current switch includes: Obtaining an adjustment coefficient corresponding to the adjacent switch; Determine a fifth product of the sending direction weight of the adjacent switch and the adjustment coefficient, and obtain an adjusted sending direction weight based on the sum of the fifth product and the sending direction weight of the current switch; Determine a sixth product of the receiving direction weight of the adjacent switch and the adjustment coefficient, and obtain an adjusted receiving direction weight based on the sum of the sixth product and the receiving direction weight of the current switch; The switch congestion weight of the current switch is determined according to the adjusted sending direction weight and the adjusted receiving direction weight.
10. The method according to claim 1, characterized in that The determining the path congestion weight of the to-be-selected transmission path based on the switch congestion weight includes: Determine switches included in the candidate transmission path based on the source switch and the destination switch of the candidate transmission path; The path congestion weight of the candidate transmission path is determined based on the sum of the switch congestion weights of the switches in the candidate transmission path.
11. The method according to claim 1, characterized in that: The obtaining of the performance parameters of the switches in the selected transmission path during the data transmission process includes: Monitor the change of data volume in the sending end buffer, the change of sending end bandwidth occupancy, the change of data volume in the receiving end buffer and the change of receiving end bandwidth occupancy in the switch during data transmission to obtain congestion data; Based on the congestion data, a performance parameter table of the switch is determined, and performance parameters of the switch are acquired according to the performance parameter table.
12. The method according to claim 1, characterized in that The step of determining, in response to the data scheduling instruction, the candidate transmission path whose path congestion weight satisfies the transmission condition as the target transmission path comprises: When congestion is detected during the data transmission process, generating a data scheduling instruction; At least one candidate transmission path with the lowest path congestion weight is determined as the target transmission path.
13. A congestion control system, characterized in that: The system comprises: a transmitting end, a receiving end, a path selection component and a central controller; The sending end is used to send data packets; The central controller is used to obtain a transmission path to be selected, and obtain performance parameters of a switch in the transmission path to be selected during data transmission, and determine a path congestion weight of the transmission path to be selected based on the performance parameters, wherein the performance parameters are used to indicate the occupancy of the switch during data transmission; The path selection component is used to determine, in response to the data scheduling instruction, a candidate transmission path whose path congestion weight meets the transmission condition as a target transmission path, so as to transmit the data packet through the target transmission path, wherein the determining the path congestion weight of the candidate transmission path based on the performance parameter comprises: calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path; determining the path congestion weight of the candidate transmission path based on the switch congestion weight; wherein the calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of the adjacent switches in the candidate transmission path comprises: adjusting the sending direction weight and the receiving direction weight based on the switch congestion weight of the adjacent switch of the current switch in the candidate transmission path to obtain the switch congestion weight of the current switch, wherein the adjacent switch is the next hop switch of the current switch in the candidate transmission path.
14. The system according to claim 13, characterized in that The system further comprises: a switch; The switch is used to monitor the change of data volume in the sending end buffer, the change of sending end bandwidth occupancy, the change of data volume in the receiving end buffer and the change of receiving end bandwidth occupancy during data transmission of the switch, obtain congestion data, and determine the performance parameter table of the switch based on the congestion data.
15. The system according to claim 14, characterized in that The path selection component includes: a first path selection component corresponding to the sending end and a second path selection component corresponding to the switch; The second path selection component is used to store and update the performance parameter table of the switch; The first path selection component is used to obtain the performance parameters of the target transmission path based on the performance parameter table, and evaluate the target transmission path in real time based on the performance parameters to obtain an evaluation result.
16. A congestion control device, characterized in that: The device comprises: An acquisition module, used to acquire a transmission path to be selected, and to acquire performance parameters of switches in the transmission path to be selected during data transmission, wherein the performance parameters are used to indicate the occupancy of the switches during data transmission; A first determination module, configured to determine a path congestion weight of the candidate transmission path based on the performance parameter; A second determination module is configured to determine, in response to a data scheduling instruction, a candidate transmission path whose path congestion weight satisfies a transmission condition as a target transmission path, so as to transmit data through the target transmission path; wherein, determining the path congestion weight of the candidate transmission path based on the performance parameter comprises: calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of adjacent switches in the candidate transmission path; determining the path congestion weight of the candidate transmission path based on the switch congestion weight; wherein, calculating the switch congestion weight of each switch in the candidate transmission path based on the performance parameters of adjacent switches in the candidate transmission path comprises: adjusting the sending direction weight and the receiving direction weight based on the switch congestion weight of the adjacent switch of the current switch in the candidate transmission path to obtain the switch congestion weight of the current switch, wherein the adjacent switch is the next hop switch of the current switch in the candidate transmission path.
17. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the congestion control method according to any one of claims 1 to 12 by executing the computer instructions.
18. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the congestion control method according to any one of claims 1 to 12.
19. A computer program product, characterized in that The method comprises computer instructions, wherein the computer instructions are used to cause a computer to execute the congestion control method according to any one of claims 1 to 12.
Citation Information
Patent Citations
Data packet transmission control method and device
CN116055415A
Network congestion control method, device, system and equipment and storage medium
CN117834538A