Congestion processing method and apparatus for communication network, device, medium and product
By detecting congested paths in the communication network and migrating data streams to uncongested paths, the problem of transmission delays caused by communication network congestion is solved, enabling rapid congestion relief and load balancing, and improving network stability and the service quality of cloud products.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- TENCENT TECHNOLOGY (SHENZHEN) CO LTD
- Filing Date
- 2025-10-10
- Publication Date
- 2026-06-04
AI Technical Summary
Congestion in communication networks can lead to increased data transmission delays and packet loss, affecting the smooth execution of upper-layer services. Existing technologies are unable to quickly alleviate network congestion.
By detecting congested paths in the communication network, obtaining migration control information, selecting non-congested paths, and migrating data streams, the control granularity of flow migration is realized. A single flow migration is used to migrate data streams on congested paths to non-congested paths for transmission.
Quickly detect and mitigate communication network congestion, reduce data stream transmission latency, improve network path load balancing capabilities, and ensure the stability of upper-layer services and the SLA of latency-sensitive cloud products.
Smart Images

Figure CN2025126782_04062026_PF_FP_ABST
Abstract
Description
Congestion handling method, device, equipment, medium and product of communication network
[0001] The present application claims priority to the Chinese patent application No. 202411708532.0, filed on November 26, 2024, and entitled "Congestion handling method, device, equipment, medium and product of communication network", the whole content of which is incorporated herein by reference. TECHNICAL FIELD
[0002] The present application relates to the technical field of computer, in particular to a congestion handling method of communication network, a congestion handling device of communication network, a computer device, a computer readable storage medium, and a computer program product. BACKGROUND
[0003] The communication network can be used to transmit data flow, and the data flow can be transmitted from one device in the communication network to another device in the communication network. The communication network is a physical network, and congestion of the physical network is inevitable. Once the physical network is congested, the transmission delay of the data flow will increase due to queuing or packet loss, which seriously affects the smooth execution of the upper-layer service based on the data flow. Therefore, how to quickly alleviate the congestion of the communication network after the congestion occurs in the communication network has become a research hotspot. SUMMARY
[0004] The embodiments of the present application provide a congestion handling method, device, equipment, medium and product of communication network, which can quickly alleviate the congestion of the communication network.
[0005] In one aspect, the embodiments of the present application provide a congestion handling method of communication network, the communication network comprising a first device and a second device, a plurality of network paths being provided between the first device and the second device, any one of the network paths being used to transmit data flow between the first device and the second device; the congestion handling method of the communication network being performed by the first device; the congestion handling method of the communication network comprising:
[0006] determining a first network path with congestion from the plurality of network paths;
[0007] obtaining preset migration control information, the migration control information being used to control migration granularity of flow migration; the flow migration refers to migrating the data flow transmitted in the congested network path to a non-congested network path for transmission, and the migration granularity is used to indicate migration flow of the flow migration;
[0008] selecting a second network path without congestion from the plurality of network paths;
[0009] Based on the control of the migration control information, a data stream with migration traffic is selected from the data streams transmitted on the first network path, and the selected data stream is migrated to the second network path for transmission.
[0010] Correspondingly, the embodiment of the application provides a congestion processing device of a communication network, the communication network comprising a first device and a second device, a plurality of network paths being arranged between the first device and the second device, any network path being used for transmitting a data stream between the first device and the second device; the congestion processing device of the communication network is arranged in the first device; the congestion processing device of the communication network comprises:
[0011] a processing unit configured to determine a first network path with congestion from the plurality of network paths;
[0012] the processing unit is further configured to obtain preset migration control information, the migration control information being used for controlling a migration granularity of flow migration; the flow migration refers to migrating a data stream transmitted on a congested network path to a non-congested network path for transmission, and the migration granularity is used for indicating migration traffic of the flow migration;
[0013] the processing unit is further configured to select a second network path without congestion from the plurality of network paths;
[0014] the processing unit is further configured to select, based on the control of the migration control information, a data stream with migration traffic from the data streams transmitted on the first network path;
[0015] a communication unit configured to migrate the selected data stream to the second network path for transmission.
[0016] Correspondingly, the embodiment of the application provides a computer device, the computer device comprising:
[0017] a processor adapted to implement a computer program;
[0018] a computer readable storage medium, the computer readable storage medium storing the computer program, the computer program being adapted to be loaded and executed by the processor to perform the above-mentioned congestion processing method of the communication network.
[0019] Correspondingly, the embodiment of the application provides a computer readable storage medium, the computer readable storage medium storing the computer program, the computer program being read and executed by the processor of the computer device to cause the computer device to perform the above-mentioned congestion processing method of the communication network.
[0020] Accordingly, the embodiment of the present application provides a computer program product, which comprises a computer program stored in a computer readable storage medium. The processor of the computer device reads the computer program from the computer readable storage medium, and the processor executes the computer program, so that the computer device executes the congestion processing method of the communication network.
[0021] In the embodiment of the present application, the first network path with congestion can be determined from the plurality of network paths between the first device and the second device. It can be seen that the embodiment of the present application has congestion detection capability and can timely find the network path with congestion, thereby facilitating the rapid solution of the congestion of the network path. After the first network path with congestion is determined from the plurality of network paths between the first device and the second device, the preset migration control information can be obtained. The migration control information can be used to control the migration granularity of the flow migration. The flow migration refers to migrating the data flow transmitted in the congested network path to the non-congested network path for transmission. The migration granularity can be used to indicate the migration traffic of the flow migration. It can be seen that the embodiment of the present application can realize controlled flow migration based on the migration control information. The controlled flow migration can avoid the congestion of the network path of the migrated data flow when the migration traffic is too much, or can avoid that the congestion of the network path of the migrated data flow cannot be relieved when the migration traffic is too little. After the migration control information is obtained, the data flow with the migration traffic can be selected from the data flow transmitted on the first network path based on the control of the migration control information, and the selected data flow is migrated to the second network path between the first device and the second device for transmission. It can be seen that for the congested network path in the communication network, the embodiment of the present application can migrate the data flow with the specified traffic (the specified traffic refers to the migration traffic) on the congested network path to the non-congested path through one flow migration. The number of flow migrations is one instead of multiple. The target of the flow migration is the non-congested network path instead of the congested network path. In this way, the congestion of the communication network can be quickly relieved. BRIEF DESCRIPTION OF DRAWINGS
[0022] FIG. 1 is an architecture schematic diagram of a communication network provided by an embodiment of the present application;
[0023] FIG. 2 is an architecture schematic diagram of a congestion processing system provided by an embodiment of the present application;
[0024] FIG. 3 is an application scenario schematic diagram of a congestion processing method provided by an embodiment of the present application;
[0025] FIG. 4 is a flow schematic diagram of a congestion processing method of a communication network provided by an embodiment of the present application;
[0026] FIG. 5 is a routing strategy schematic diagram of a communication network provided by an embodiment of the present application;
[0027] Fig. 6 is a schematic diagram of selecting a non-congested network path of a communication network according to an embodiment of the present application;
[0028] Fig. 7 is a schematic diagram of path allocation of traffic migration according to an embodiment of the present application;
[0029] Fig. 8 is a schematic diagram of path identification switching according to an embodiment of the present application;
[0030] Fig. 9 is a schematic diagram of traffic balancing strategy of a communication network according to an embodiment of the present application;
[0031] Fig. 10 is a schematic diagram of a flow of a congestion processing method of a communication network according to an embodiment of the present application;
[0032] Fig. 11 is a schematic diagram of path control strategy of a communication network according to an embodiment of the present application;
[0033] Fig. 12 is a schematic diagram of congestion detection strategy of a communication network according to an embodiment of the present application;
[0034] Fig. 13 is a schematic diagram of another congestion detection strategy of a communication network according to an embodiment of the present application;
[0035] Fig. 14 is a schematic diagram of a structure of a congestion detection device of a communication network according to an embodiment of the present application;
[0036] Fig. 15 is a schematic diagram of a structure of a computer device according to an embodiment of the present application. DETAILED DESCRIPTION
[0037] In order to make the technical solution provided by the embodiments of the present application more clearly understood, the technical terms related to the embodiments of the present application are introduced as follows:
[0038] I. Communication network
[0039] The communication network refers to a data center network, and specifically refers to a physical network for transmitting data flow. The physical network refers to a network constructed by physical devices (for example, servers, routers, and switches, etc.) and physical media (for example, optical cables, electrical cables, and twisted pairs, etc.) in a physical environment. Such a network environment is physically existing and can be directly accessed and managed.
[0040] As shown in FIG. 1, a plurality of devices can be included in the communication network, where the device refers to a server, and a plurality of network paths can be set between any two devices in the plurality of devices, and the network paths can be used to transmit a data flow between any two devices. The communication network shown in the embodiment of FIG. 1 is used to more clearly illustrate the technical solutions of the embodiments of the present application, and does not constitute a limitation on the technical solutions provided by the embodiments of the present application. Those skilled in the art can know that, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems.
[0041] The embodiments of the present application take, as an example, any two devices in the communication network as a first device and a second device, and a plurality of network paths can be set between the first device and the second device, and any network path between the first device and the second device can be used to transmit a data flow between the first device and the second device. Among the first device and the second device, the device that transmits the data flow can be referred to as a sending device, and the device that receives the data flow can be referred to as a receiving device; the embodiments of the present application take, as an example, the first device as the sending device that transmits the data flow, and the second device as the receiving device that receives the data flow, in which case the first device can send the data flow flowing to the first device to the second device. Alternatively, the first device can also be the receiving device that receives the data flow, and the second device can also be the sending device that transmits the data flow.
[0042] The server mentioned in the embodiments of the present application can be a standalone physical server, or a server cluster or distributed system composed of a plurality of physical servers, or a cloud server that provides cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and basic cloud computing services such as big data and artificial intelligence platforms, etc.
[0043] II. Data flow (Flow):
[0044] A data flow refers to a sequence of network packets continuously transmitted between a source (i.e., a sending device) and a destination (i.e., a receiving device), and a network packet refers to a data unit exchanged and transmitted in a communication network. For network packets in the same data flow, these network packets have the same packet information, where the packet information refers to a 5-tuple, and the 5-tuple can include an IP (Internet Protocol) source address, an IP destination address, a four-layer source port, a four-layer destination port, and a four-layer protocol type. The packet information can be used to uniquely identify a network connection in network communication, and ensure correct transmission and processing of network packets.
[0045] Based on the above introduction of the technical terms such as communication network and data flow, the application provides a congestion processing method (LBHarp) of a communication network, which can quickly relieve the congestion of the communication network. In detail, the congestion processing method of the communication network proposes a network congestion detection mechanism. The network congestion detection mechanism can detect the network path with congestion within a certain time by detecting the transmission delay of all network paths between any two devices in the communication network in real time. The congestion processing method of the communication network also proposes a low-overhead traffic balancing strategy. For the network path with congestion, the data flow transmitted on the congested network path can be migrated to the non-congested network path for transmission by one path switching (i.e. one flow migration). It can be seen that the congestion processing method of the communication network provided by the application has two advantages: the first advantage is that the network path with congestion can be detected within a certain time; the second advantage is that after the network path is congested, the data flow transmitted on the congested network path can be quickly migrated to the non-congested network path for transmission by one path switching (i.e. one flow migration), so that the transmission delay of the data flow can quickly recover from the congestion of the communication network.
[0046] In addition, the congestion processing method of the communication network is a software solution, which does not require special hardware support, so the congestion processing method of the communication network can be deployed in all communication networks. For example, it can be applied to a communication network using traditional devices, for example, a communication network not supporting IPv6 (Internet Protocol Version 6), and for example, a communication network supporting IPv6.
[0047] The congestion processing method of the communication network provided by the application can be executed by a computer device. The computer device can be a sending device (the first device in the application) that transmits data flow, and the first device transmits data flow to the second device through the network path set between the first device and the second device.
[0048] The congestion processing system in which the computer device is located is shown in FIG. 2. The congestion processing system can include a first device 201 and a second device 202. The first device 201 is a sending device that transmits data flow, and the second device 202 is a receiving device that receives data flow. A plurality of network paths can be provided between the first device 201 and the second device 202, and any network path between the first device 201 and the second device 202 can be used to transmit data flow flowing to the first device 201 to the second device 202.
[0049] In the congestion processing system composed of the first device 201 and the second device 202, the congestion processing method provided by the embodiment of the application manages all network paths between the first device 201 and the second device 202, and probes the congestion situation of the network paths in real time. The first device 201 can periodically send a probe message (the probe message refers to an RTT (Round Trip Time, round trip communication delay) probe message) to the network path being probed, the second device 202 can periodically return a response message (the response message refers to an RTT response message) to the first device 201, and the first device 201 can calculate the communication delay time (that is, the RTT value) of the network path being probed through the response message. If the RTT value of the network path being probed exceeds a time threshold, or the first device 201 does not receive the response message within a specified time, it can be determined that the network path being probed is congested; otherwise, if the first device 201 receives the response message within the specified time and the RTT value does not exceed the time threshold, it can be determined that the network path being probed is not congested. For the network path determined to be congested, the first device 201 can migrate the data flow of the specified traffic on the congested network path to a non-congested network path for transmission, thereby rebalancing the network load.
[0050] The first device 201 and the second device 202 can each include a path pool, a routing module, a congestion detection module, and a congestion recovery module. Among them:
[0051] The path pool can include the path identifiers (path IDs) of multiple network paths between the first device 201 and the second device 202, and the path identifier of any network path can uniquely identify the network path. The routing module can be used to select a non-congested network path for each data flow, and all network packets in the same data flow are forwarded through the network path selected for it. The congestion detection module can be used to periodically detect the congestion of each network path between the first device 201 and the second device 202; detecting the congestion of any network path means that the first device 201 sends an RTT probe message to the second device 202 through the network path, the second device 202 returns an RTT response message after receiving the RTT probe message, and the first device 201 can determine the congestion situation of the network path according to whether the RTT response message is received within a specified time, or can calculate the RTT value according to the time when the RTT response message is received within the specified time, and determine whether the network path is congested according to the RTT value. The congestion recovery module can be used to migrate the data flow transmitted on the congested network path to a non-congested network path for transmission after the network path is congested.
[0052] In the congestion handling system composed of the first device 201 and the second device 202, the congestion handling process can specifically include: ① For the data flow flowing to the first device 201, the routing module of the first device 201 can select a non-congestion network path for each data flow, and all network packets in the data flow are forwarded through the selected network path. ② The congestion detection module of the first device 201 can periodically send a detection message to the second device 202 through each network path between the first device 201 and the second device 202. ③ The congestion detection module of the second device 202 processes the received detection message and periodically returns a response message to the first device 201. In this process, the routing module of the second device 202 also selects a non-congestion network path for the response message to return the response message. ④ After the first device 201 receives the response message, the congestion detection module of the first device 201 can calculate the RTT value of each network path, and determine whether each network path is congested according to the RTT value of each network path; or if the first device 201 does not receive the response message within a specified time, it can be determined that the network path is congested. ⑤ If it is determined that a network path is congested for one or more times in succession, the congestion recovery module of the first device 201 can migrate the data flow transmitted on the network path to a non-congestion network path for transmission. After the migration of the data flow on the congested network path is completed, the congestion detection module of the first device 201 can start to detect the congestion of the network path again.
[0053] The congestion handling system shown in FIG. 2 can quickly migrate the data flow transmitted on the congested network path to a non-congestion network path through one-time path switching (i.e., one-time flow migration) after the network path is congested, and can quickly relieve the congestion. The congestion handling system of the embodiment shown in FIG. 2 is used to more clearly illustrate the technical solutions of the embodiments of the present application, and does not constitute a limitation on the technical solutions provided by the embodiments of the present application. Those skilled in the art can know that, with the evolution of system architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems.
[0054] The application scenarios of the congestion handling method of the communication network provided by the embodiments of the present application are introduced as follows.
[0055] As shown in FIG. 3, a plurality of virtual machines (VMs) can be included in a server (taking the first device and the second device as examples) in a communication network, the server can be referred to as a parent machine, the virtual machines can be referred to as child machines, and the virtual machines are processes in the server. A VM tenant (or can be referred to as a public cloud tenant) can purchase a virtual machine in the server through a VPC (Virtual Private Cloud) service, and create and manage a private virtual network on the public cloud based on the virtual machine, which can be referred to as a VPC network. The virtual machine is a unit of communication in the VPC network, similar to the server in the communication network. The VPC service is a cloud service, which refers to a network service based on cloud computing. The VPC service provides a logically isolated network environment, allowing the public cloud tenant to create a VPC network on the public cloud and customize the network configuration (for example, a network segment) of the created VPC network; that is, the VPC service can provide network customization capabilities for the public cloud tenant in the public cloud environment. The public cloud tenant refers to a user who accesses and uses computing resources and cloud services provided by a cloud service provider in a public cloud environment through the Internet.
[0056] Therefore, the VPC network is a virtual network created based on the communication network. The VPC network runs based on the communication network, which is specifically embodied in that the data flow in the VPC network is transmitted through the virtual machine into the communication network, the sending device (for example, the first device in FIG. 3) in the communication network allocates a non-congestion network path for the exit flow (that is, the data flow of the VPC network flowing in through the virtual machine) of the virtual machine after receiving the exit flow, and the data flow is transmitted to the receiving device (for example, the second device in FIG. 3) in the communication network, and then flows into the VPC network through the virtual machine. That is, the data flow transmitted in the communication network is the data flow in the VPC network.
[0057] The delay and throughput of the VPC network are the most important indicators for measuring the VPC service. However, congestion of the physical network cannot be avoided in the communication network. Once the physical network is congested, the delay of the VPC network will increase due to queuing or packet loss. In addition, with the emergence of cloud applications (for example, Redis, a cloud database) with extremely low network delay requirements, a low-delay VPC network has become one of the key factors to ensure the quality of service of cloud products. Therefore, after the physical network is congested, how to quickly recover the delay of the VPC network so as to quickly recover the public cloud tenant and the cloud application from the congestion has become a problem to be solved at present.
[0058] The congestion processing method of the communication network provided in the embodiments of the present application can quickly detect a network path in which congestion occurs in the communication network within a specified time, and after detecting the network path in which congestion occurs, quickly migrate the data stream transmitted on the network path in which congestion occurs to a non-congestion network path for transmission through one path switching (i.e., one flow migration), so as to quickly relieve the congestion of the communication network. Therefore, the VPC network based on the communication network can quickly recover from network congestion, and network load balancing of the VPC network is achieved (network load balancing refers to allocating the traffic load in the network in multiple network path resources, so as to optimize the use of network resources, maximize the throughput rate, minimize the response time, and avoid overload), and the public cloud tenant and cloud application can quickly recover from VPC network congestion. The congestion processing method of the communication network provided in the embodiments of the present application can make the VPC service and the delay-sensitive cloud product on the public cloud recover from network congestion within a certain and extremely short time, so that the upper-layer service has slight awareness or even zero awareness of network congestion, and not only the determinacy of the VPC network quality is ensured, but also the SLA (Service Level Agreement) of the delay-sensitive cloud product is improved.
[0059] In addition, the congestion processing method of the communication network provided in the embodiments of the present application works in the VPC virtual forwarding layer (i.e., the Virtual Switch layer), so that the method can support the application of the public cloud tenant using various network protocols (for example, TCP (Transmission Control Protocol) and UDP).
[0060] The embodiments of the present application provide a congestion processing method of a communication network, and the content introduced by the method includes a routing strategy of the communication network and a traffic balancing strategy of the communication network. The congestion processing method of the communication network is executed by a computer device, and the computer device may, for example, be a first device (a data stream is transmitted from the first device to a second device). As shown in FIG. 4, the congestion processing method of the communication network may, but not limited to, include the following steps S401-S404:
[0061] S401, determining a first network path in which congestion exists from multiple network paths provided between a first device and a second device.
[0062] In step S401, multiple network paths can be set between a first device and a second device included in a communication network, and any network path between the first device and the second device can be used to transmit a data flow between the first device and the second device. Embodiments of the present application take the first device as a sending device sending a data flow and the second device as a receiving device receiving the data flow as examples for description, and any network path between the first device and the second device can be used to transmit the data flow flowing to the first device to the second device. In the multiple network paths between the first device and the second device, the number of the determined first network paths with congestion can be one or more, and for any first network path with congestion, the data flow with the specified traffic transmitted on the first network path can be migrated from the first network path to a non-congestion path for transmission in a manner described in steps S402-S404 of embodiments of the present application, so as to achieve traffic balancing of the communication network.
[0063] In step S402, preset migration control information is acquired, and the migration control information is used to control a migration granularity of flow migration. The flow migration refers to migrating a data flow transmitted in a congestion network path to a non-congestion network path for transmission, and the migration granularity is used to indicate a migration traffic of the flow migration.
[0064] In step S402, the migration control information refers to information used to control a migration granularity of flow migration in a traffic balancing strategy of the communication network. The flow migration refers to migrating a data flow transmitted in a congestion network path to a non-congestion network path for transmission, and the migration granularity can be used to indicate a migration traffic of the flow migration. The migration traffic here is the specified traffic mentioned in the foregoing.
[0065] The migration control information can include a flow mapping group number N and a flow migration group number K. For the flow mapping group number N, each network path can correspond to N groups, and the flow mapping group number N refers to a group number of groups corresponding to each network path. For example, each network path corresponds to 8 groups, and the flow mapping group number N = 8. Any data flow mapped to any network path in the multiple network paths between the first device and the second device can be mapped to one group in the N groups corresponding to the network path. Here, the data flow mapping to the network path refers to establishing a mapping relationship between the data flow and the network path, and the data flow mapping to the group refers to establishing a mapping relationship between the data flow and the group. For the flow migration group number K, the flow migration group number K refers to a number of groups of data flows migrated in one flow migration. One flow migration can migrate data flows mapped to K groups in a congestion network path to a non-congestion network path for transmission. For example, one flow migration can migrate data flows mapped to one group in a congestion network path to a non-congestion network path for transmission, and the flow migration group number K = 1.
[0066] It can be seen that the flow mapping group number N can control the migration granularity of flow migration by controlling the flow mapped to one group, the smaller the flow mapping group number N, the fewer the group number, the more the flow mapped to one group, and vice versa, the larger the flow mapping group number N, the more the group number, the less the flow mapped to one group. The flow migration group number K can control the migration granularity of flow migration by controlling the migration group number of flow migration, the larger the flow migration group number K, the more the migration group number, the more the migration flow, and vice versa, the smaller the flow migration group number K, the less the migration group number, the less the migration flow. That is, the flow balancing strategy of the communication network can migrate K / N data flows on the congested network path to the non-congested network path for transmission, N is an integer greater than 1, and K is a positive integer less than or equal to N.
[0067] Optionally, the migration control information can be dynamically adjusted according to the congestion degree of the communication network. When the congestion degree of the communication network is high (for example, the number of congested network paths in the communication network is greater than or equal to the number threshold), the migration granularity controlled by the migration control information can be increased to quickly relieve the congestion of the communication network; when the congestion degree of the communication network is low (for example, the number of congested network paths in the communication network is less than the number threshold), the migration granularity controlled by the migration control information can be reduced to reduce the resource consumption of flow migration.
[0068] Wherein, increasing the migration granularity controlled by the migration control information can be realized by any one of the following ways: first, reducing the flow mapping group number N; second, increasing the flow migration group number K; third, reducing the flow mapping group number N and increasing the flow migration group number K. Reducing the migration granularity controlled by the migration control information can be realized by any one of the following ways: first, increasing the flow mapping group number N; second, reducing the flow migration group number K; third, increasing the flow mapping group number N and reducing the flow migration group number K.
[0069] Optionally, the group to which the data flow is mapped is specifically a hash slot in a hash bucket in a flow mapping table. Wherein, the flow mapping table is a hash table, which is a data structure for directly accessing data by key, which maps the key to a specific location in the table through a hash function, thereby quickly finding and accessing data. The hash bucket refers to the basic unit for storing data in the hash table. The hash slot refers to the basic unit for storing data in the hash bucket.
[0070] Specifically, the congestion processing method (LBHarp) of the communication network provided by the embodiment of the present application constructs a flow mapping table for a path pool between the first device and the second device, the flow mapping table can include a hash bucket corresponding to each network path between the first device and the second device, and the hash bucket corresponding to each network path can include N hash slots, and one hash slot corresponds to one packet. Any data flow mapped to each network path can be mapped to a hash slot in the hash bucket corresponding to the corresponding network path. Taking the first network path as an example, any data flow mapped to the first network path can be mapped to a hash slot in the hash bucket corresponding to the first network path.
[0071] The hash slot can be used to store a path identifier. Based on this, the routing strategy of the communication network means that the data flow mapped to the hash bucket corresponding to each network path can be transmitted through the network path identified by the path identifier stored in the hash slot in the corresponding hash bucket. Taking a target data flow flowing to the first device as an example, the routing strategy of the communication network can include: the target data flow flowing to the first device can be received, and a network path can be allocated to the target data flow according to the flow mapping table; and the target data flow can be transmitted by using the allocated network path.
[0072] In the routing strategy of the communication network, the process of allocating a network path to the target data flow according to the flow mapping table can include: performing hash bucket mapping on the target data flow to obtain a target hash bucket in which the target data flow is mapped in the flow mapping table; performing hash slot mapping on the target data flow in the target hash bucket to obtain a target hash slot in which the target data flow is mapped in the target hash bucket; and determining the network path identified by the path identifier stored in the target hash slot as the allocated network path.
[0073] The hash bucket mapping means determining the hash bucket to which the target data flow is mapped in the flow mapping table. Here, the mapping between the data flow and the hash bucket means establishing a mapping relationship between the data flow and the hash bucket. The process of hash bucket mapping can include: performing hash calculation on the packet information (for example, the packet information here can be the outer 4-tuple in the 5-tuple) of the target data flow to obtain a hash value corresponding to the target data flow; performing hash bucket index mapping (the hash bucket index mapping means determining the index of the hash bucket to which the target data flow is mapped) on the hash value corresponding to the target data flow according to the hash value corresponding to the target data flow and the total number of network paths (the total number of network paths means the total number of network paths between the first device and the second device) to obtain a target hash bucket index; and determining the hash bucket corresponding to the target hash bucket index as the target hash bucket to which the target data flow is mapped.
[0074] Similarly, the hash slot mapping refers to determining a hash slot to which the target data flow is mapped in the mapped hash bucket, and the mapping between the data flow and the hash slot refers to establishing a mapping relationship between the data flow and the hash slot. The process of the hash slot mapping can include: obtaining a hash value corresponding to the target data flow; performing hash slot index mapping on the hash value corresponding to the target data flow according to the hash value corresponding to the target data flow and the capacity of the target hash bucket (the capacity of the target hash bucket refers to the size of the target hash bucket, specifically refers to the number of hash slots contained in the target hash bucket), to obtain a target hash slot index; determining the hash slot corresponding to the target hash slot index in the target hash bucket as the target hash slot to which the target data flow is mapped in the target hash bucket.
[0075] That is, the congestion processing method (LBHarp) of the communication network provided by the embodiments of the present application constructs a flow mapping table for each network path in the path pool of each pair of communicating devices, for selecting a network path for the data flow sent out by the virtual machine of the sending device (i.e., transmitting). The flow mapping table is a hash table, and each network path is allocated a hash bucket in the hash table, and each hash bucket is a fixed-size array, which is the hash slot mentioned above, and the array elements are used to store the path identifier (path ID) of the available path. By default, the communication network is not congested, and the hash bucket corresponding to each network path stores only the path identifier of the network path itself, and at this time, the data flow mapped to the hash bucket of the network path i (the network path i refers to any network path) will be routed by the network path i.
[0076] Fig. 5 is an example of flow mapping with 8 network paths and a hash bucket size (i.e. a hash bucket capacity) of 8, wherein the path identifier of network path i is represented as i. For each data flow: ① LBHarp takes the outer 4-tuple of the data flow as input, calculates the hash value corresponding to the data flow, and the calculation method is: the hash value hv corresponding to the data flow = hash(4-tuple). LBHarp selects the mapped hash bucket for the data flow, and the calculation method of the index of the selected hash bucket is: hash bucket index = hv % total number of network paths. As shown in Fig. 5, Flow1 (data flow 1) selects the hash bucket corresponding to network path 1, and Flow2 (data flow 2) selects the hash bucket corresponding to network path 4. ② Select a network path in the hash bucket for the data flow, and the calculation method of the index of the selected network path is: hash slot index = hv % hash bucket capacity. As shown in Fig. 5, the hash value corresponding to Flow1 is finally mapped to the 1st hash slot in the hash bucket corresponding to network path 1, so all network packets of Flow1 are routed through the network path 1 stored in the hash slot; the hash value corresponding to Flow2 is finally mapped to the 5th hash slot in the hash bucket corresponding to network path 4, so all network packets of Flow2 are routed through the network path 4 stored in the hash slot. As can be seen, through the hash bucket mapping and hash slot mapping of the flow mapping table, the network path for routing the data flow to the first device can be quickly selected, and the routing efficiency of the communication network is improved.
[0077] S403, selecting a non-congested second network path from the plurality of network paths.
[0078] In step S403, the number of non-congested second network paths selected from the plurality of network paths can be one or more. In order to facilitate understanding, the number of second network paths can be represented as Q, Q being a positive integer. In detail, the way of selecting Q non-congested second network paths from the plurality of network paths can include any one of the following:
[0079] The first way is to select based on the hash bucket corresponding to the to-be-migrated path index.
[0080] Specifically, in the flow map table, the hash buckets corresponding to multiple network paths are arranged sequentially according to the path identifiers of the corresponding network paths. Specifically, the hash buckets can be arranged according to the size of the path identifiers. For example, in the flow map table shown in Figure 5, the path identifier of network path 1 is 0, the path identifier of network path 2 is 1, and the path identifier of network path 3 is 2. The hash bucket corresponding to network path 3 is arranged after the hash bucket corresponding to network path 2, and the hash bucket corresponding to network path 2 is arranged after the hash bucket corresponding to network path 1. Furthermore, each hash bucket corresponding to a network path has its own index of the path to be migrated. The index of the path to be migrated for each hash bucket can point to the hash bucket corresponding to any network path other than the hash bucket corresponding to the first network path. The first index of the path to be migrated is the index of the hash bucket corresponding to the first network path, and the first index of the path to be migrated can point to the hash bucket corresponding to any network path other than the first network path. Based on this, the process of selecting Q non-congested second network paths from multiple network paths can include:
[0081] Perform a congestion check on the network path corresponding to the current hash bucket pointed to by the first migration path index. If the network path corresponding to the current hash bucket is a non-congested network path, it can be determined as a second network path. Update the pointer of the first migration path index from the current hash bucket to the next hash bucket of the current hash bucket. The next hash bucket of the current hash bucket refers to the first hash bucket arranged after the current hash bucket in the flow mapping table. For example, in the flow mapping table shown in Figure 5, if the current hash bucket is the system corresponding to network path 2, then the next hash bucket is the hash bucket corresponding to network path 3. If the network path corresponding to the current hash bucket is a congested network path, update the pointer of the first migration path index from the current hash bucket to the next hash bucket of the current hash bucket. Repeat the above congestion check process and the process of updating the pointer of the first migration path index until the number of determined second network paths is Q.
[0082] Congestion checking refers to checking the results of P consecutive congestion probes on a network path. If the results of P consecutive congestion probes all indicate that the network path is a congested network path, then the network path can be determined to be a congested network path. If the results of P consecutive congestion probes all indicate that the network path is a non-congested network path, then the network path can be determined to be a non-congested network path, where P is a positive integer.
[0083] For example, as shown in Figure 6, suppose network path 1 is a congested first network path, and two non-congested second network paths are selected from multiple network paths. When network path 1 becomes congested, congestion checks can be performed starting from network path 2, which corresponds to the hash bucket currently pointed to by the migration path index of network path 1. If the check finds that network path 2 is a non-congested network path, then network path 2 can be determined as the first non-congested second network path, and the hash bucket pointed to by the migration path index of network path 1 can be updated from the hash bucket corresponding to network path 2 to the hash bucket corresponding to network path 3. Congestion checks can be performed on network path 3, which corresponds to the hash bucket currently pointed to by the migration path index of network path 1. If the check finds that network path 3 is a congested network path, then the hash bucket pointed to by the migration path index of network path 1 can be updated from the hash bucket corresponding to network path 3 to the hash bucket corresponding to network path 4. A congestion check can be performed on network path 4, which is the hash bucket currently pointed to by the migration path index of network path 1. If the check shows that network path 4 is a non-congested network path, then network path 4 can be determined as the second non-congested network path, and the selection of the non-congested second network path ends.
[0084] As can be seen, in the first method of selecting a non-congested second network path, by continuously updating the pointer of the path to be migrated and performing congestion checks on the network path corresponding to the hash bucket pointed to by the path to be migrated, duplicate checks can be avoided, thus avoiding repeated checks on already checked network paths and preventing waste of check resources.
[0085] The second method involves selecting based on communication delay times.
[0086] Specifically, communication latency refers to the RTT value, which is the time it takes for the probe message sent by the first device to be transmitted to the second device, plus the time it takes for the response message returned by the second device to be transmitted to the first device. A longer communication latency indicates a higher degree of network path congestion, while a shorter communication latency indicates a lower degree of network path congestion. Based on this, the process of selecting Q non-congested second network paths from multiple network paths can include: obtaining multiple reference network paths whose detection results from P consecutive congestion probes all indicate that they are non-congested network paths; sorting the multiple reference network paths according to their communication latency; and selecting Q second network paths from the sorted multiple reference network paths.
[0087] Optionally, the reference network paths can be sorted in ascending order of communication delay time. The top Q reference network paths can then be selected as the Q second network paths. It can be seen that in this second method of selecting non-congested second network paths, the selected Q second network paths are the Q non-congested network paths with the lowest congestion levels. This ensures that after flow migration, the data flow migrated to the non-congested network paths will not place excessive load on them.
[0088] S404, based on migration control information, selects a data stream whose traffic is migration traffic from the data streams transmitted on the first network path, and migrates the selected data stream to the second network path for transmission.
[0089] The traffic balancing strategy of the communication network can migrate K / N data streams on congested network paths to non-congested network paths for transmission. Therefore, in step S404, based on migration control information, the data streams selected as migration traffic from the data streams transmitted on the first network path are the K / N data streams transmitted on the first network path. Specifically, the selection process for the data streams as migration traffic transmitted on the first network path can include: any data stream mapped to the first network path can be mapped to one of the N packets corresponding to the first network path; K packets can be selected from the N packets mapped to the data streams mapped to the first network path based on the number of migration groups K; the data streams mapped to the selected K packets can be determined as the selected data streams; wherein, the traffic of the data streams mapped to the K packets is the migration traffic.
[0090] In the flow mapping table, groups correspond to hash slots. The process of selecting K groups from the N groups mapped to the data flow mapped to the first network path, based on the number of flow migration groups K, can include: determining the K groups corresponding to the K first hash slots in the hash bucket corresponding to the first network path as K groups; and determining the data flow mapped to the K first hash slots as the data flow mapped to the K groups. Here, the first hash slot is the hash slot in the hash bucket corresponding to the first network path that stores the path identifier corresponding to the first network path. In other words, K first hash slots with the path identifier corresponding to the first network path can be selected from the hash bucket corresponding to the first network path; the groups corresponding to the K first hash slots can be determined as the selected K groups; and the data flow mapped to the K first hash slots can be determined as the data flow mapped to the K groups.
[0091] In step S404, the selected data stream for migration refers to the data stream mapped to the selected K packets (i.e., K first hash slots). The data stream mapped to the K packets can be migrated to Q second network paths for transmission. The allocation method between the K packets and the Q second network paths can include: when Q = 1, all data streams mapped to the K packets can be migrated to the same second network path for transmission. When Q ∈ (1, K), the data streams mapped to the K packets can be allocated to Q second network paths according to the groups, and the data streams mapped to the K packets can be migrated to the allocated second network paths for transmission; wherein, at least two data streams mapped to the K packets are allocated to the same second network path. When Q = K, the data streams mapped to the K packets can be migrated to K second network paths for transmission, with different groups corresponding to different second network paths.
[0092] For example, as shown in Figure 7(a), in the hash bucket corresponding to network path 1, the data streams mapped to hash slots 1-3 are migrated to a non-congested network path for transmission. The non-congested network path is network path 2, so all data streams mapped to hash slots 1-3 are migrated to network path 2 for transmission. As shown in Figure 7(b), in the hash bucket corresponding to network path 1, the data streams mapped to hash slots 1-3 are migrated to a non-congested network path for transmission. The non-congested network paths are network path 2 and network path 3, so the data streams mapped to hash slots 1 and 2 are migrated to network path 2 for transmission, and the data stream mapped to hash slot 3 is migrated to network path 3 for transmission. As shown in Figure 7(c), in the hash bucket corresponding to network path 1, the data streams mapped to hash slot 1-hash slot 3 are migrated to the non-congested network path for transmission. The non-congested network path is network path 2-network path 4. Therefore, the data stream mapped to hash slot 1 is migrated to network path 2 for transmission, the data stream mapped to hash slot 2 is migrated to network path 3 for transmission, and the data stream mapped to hash slot 3 is migrated to network path 4 for transmission.
[0093] Furthermore, based on the routing strategy of the flow mapping table (i.e., data flows mapped to hash slots in the flow mapping table are transmitted through the network paths corresponding to the path identifiers stored in the mapped hash slots), the data flow migration method can include: switching the path identifiers stored in the K first hash slots to the path identifiers corresponding to the second network path. Specifically, the path identifiers stored in each first hash slot are switched to the path identifiers of the second network path to which the data flows mapped to each first hash slot are actually migrated. Taking the allocation method of the non-congested network path migration shown in Figure 7 as an example, Figure 8 shows the switching of the path identifiers stored in the mapped hash slots. Through this switching, the data flows in the K first hash slots originally mapped to the hash bucket corresponding to the first network path can be transmitted through the second network path.
[0094] In summary, based on the content described in steps S401-S404, taking the selection of a non-congested network path based on the path index to be migrated corresponding to the hash bucket as an example, the overall process of the traffic balancing strategy for a communication network can include: each network path, in addition to the hash bucket, has a path index to be migrated, which points to the network path to be checked for congestion. Initially, it points to the next hash bucket of the hash bucket corresponding to the current network path. For example, in Figure 9, the path index to be migrated for network path 1 points to the hash bucket corresponding to network path 2.
[0095] Taking the number of migration groups K=1 as an example, when network path i is detected to be congested, LBHarp can rebalance the traffic according to the following steps: (1) Start congestion checking from the network path pointed to by the path index to be migrated of network path i until the first non-congested network path j is found. (2) Find a hash slot in the hash bucket corresponding to network path i that stores the path identifier of network path i, and switch the path identifier stored in the hash slot to the path identifier of network path j; in this case, the data flow originally mapped to the hash slot will choose the new network path j for transmission. (3) Update the path index to be migrated of network path i so that it points to the next hash bucket of the hash bucket corresponding to network path j. Depending on the degree of congestion of the network path, the above 3 steps can be dynamically repeated to migrate more data flow on network path i to other non-congested network paths for transmission. If the size of the hash bucket is N, and the traffic in the K hash slots mapped to the hash bucket corresponding to network path i is migrated, then the traffic balancing strategy can migrate K / N data flow on the congested network path i to a non-congested network path.
[0096] In the example shown in Figure 9, N is 8, K is 1, and data flows 1 through 8 all choose network path 1 for routing. When network path 1 becomes congested, congestion checks can begin from network path 2, which is pointed to by the migration path index of network path 1. After finding a non-congested network path 2, the path identifier stored in a hash slot within the hash bucket corresponding to network path 1 (e.g., path identifier 1 in Figure 9) is updated to the path identifier corresponding to network path 2 (e.g., path identifier 2 in Figure 9). The migration path index of network path 1 is then updated to point to the hash bucket corresponding to network path 3. After these steps, data flow 1 will choose network path 2 for routing, while the remaining data flows will still choose network path 1. Therefore, 12.5% (K / N = 1 / 8 = 12.5%) of the data flow on network path 1 is migrated from network path 1 to network path 2.
[0097] It is worth noting that if the congestion of network path i is not resolved after one traffic balancing, the traffic balancing strategy of the communication network can quickly determine that there is congestion in network path i again, and can further migrate more data streams on network path i according to the above steps.
[0098] In this embodiment, the traffic balancing strategy of the communication network has four advantages: First, it can detect the congestion status of all network paths in real time, so a single route change (i.e., a single flow migration) can switch the data flow on a congested network path to a non-congested network path. Second, by controlling the hash bucket size of the network path (i.e., the number of flow mapping groups N) and the number of flow migration groups K for each flow migration, the migration granularity of the flow migration can be dynamically adjusted according to the congestion status of the communication network. Third, the LBHarp traffic balancing strategy only needs to modify the path identifier stored in the hash bucket corresponding to the network path, and its overhead is extremely low. Compared with the data flow-based traffic balancing strategy (which modifies the flow label of the data flow), LBHarp does not need to maintain a huge number of data flow states (e.g., millions of data flows to the device) and does not consume a large amount of device memory resources. Fourth, for the case where the number of non-congested network paths Q=1 for each flow migration, the LBHarp traffic balancing strategy ensures that each data flow will appear on at most 2 network paths, and the data flow switching network paths will at most be out of order once. Compared to packet-based traffic balancing strategies (which migrate data flows on congested network paths to multiple network paths), LBHarp does not cause severe packet out-of-order delivery, thus reducing the impact on upper-layer applications.
[0099] This application provides a congestion handling method for a communication network, which includes a congestion detection strategy and a path control strategy for the communication network. This congestion handling method is executed by a computer device, which may be, for example, a first device (data streams are transmitted from the first device to the second device). As shown in Figure 10, the congestion handling method for this data center network may include, but is not limited to, the following steps S1001-S1005:
[0100] S1001, according to the detection cycle, perform congestion detection on each of the multiple network paths between the first device and the second device, and obtain the detection result of each network path; perform congestion detection once for each network path in one detection cycle.
[0101] In this embodiment, the traffic balancing and congestion detection strategies of the communication network are both implemented at the network path level, and the network path is controlled by the path control strategy of the communication network. By utilizing the ECMP (Equal-Cost Multi-Path) routing strategy of the switches in the communication network and the Hash Dodging (a network path control method) technology, the network path traversed by the packet is controlled by setting the outer UDP source port of the packet and the network card port used by the sending device. This embodiment utilizes this technology to construct a path pool for each device in the communication network.
[0102] Specifically, the first device and the second device can be connected through two switch layers. Both the first and second devices are connected to switches in the first switch layer, and any two switches in the first switch layer are connected through switches in the second switch layer. The transmission path between the first or second device and the switches in the first switch layer is identified by port numbers under Type I ports, and the transmission path between any two switches in the first switch layer is identified by port numbers under Type II ports. Based on this, a transmission path identified by a port number under Type I ports can be combined with a transmission path identified by a port number under Type II ports to obtain a network path between the first and second devices.
[0103] For example, as shown in Figure 11, the switches in the first switch layer are represented as LA, and the switches in the second switch layer are represented as LC. Each LA-to-LA transmission path can be controlled by a unique UDP (User Datagram Protocol) source port. That is, the second type of port is the UDP source port, and the port number under the second type of port is the UDP source port number (srcport). The transmission path between the first device (or the second device) and LA can be determined by the port selected by the network interface card (NIC) of the first device for sending. That is, the first type of port is the NIC port, and the port number under the first type of port is the NIC port number (eth). Therefore, the network path between the first device and the second device can be controlled by (NIC port number, UDP source port number). Figure 11 shows an example of a path pool, where the first device and the second device are in the same module (communication module). This module has 4 LC switches, and there are a total of 16 network paths between the two devices. Each network path is uniquely identified by (ethi, srcportj). In addition, we assign a unique path identifier (path ID) to each network path in the path pool, as shown in Figure 11. The path identifiers for the 16 network paths between the first device and the second device are 1-16.
[0104] S1002, if the detection results of P consecutive congestion probes for any network path all indicate that any network path is a congested network path, then any network path is determined to be the first network path with congestion among multiple network paths, where P is a positive integer.
[0105] In steps S1001-S1002, the congestion detection strategy of the communication network may include: performing congestion detection on each of the multiple network paths between the first device and the second device according to a detection cycle, and obtaining the detection result of each network path; one detection cycle can perform one congestion detection on each network path; if the detection results of P consecutive congestion detections on any network path indicate that any network path is a congested network path, then any network path can be determined as the first congested network path among the multiple network paths, where P is a positive integer. In the congestion detection strategy of the communication network, the detection results of P consecutive congestion detections are used for congestion judgment. When P=1, the detection result of one congestion detection is used for congestion judgment, which can quickly determine the congestion status of the network path; when P>1, the detection results of multiple congestion detections are used for congestion judgment, which can avoid accidental erroneous detection results, thereby improving the accuracy of network path congestion judgment.
[0106] In detail, any network path can be represented as a target network path, and the process of performing a congestion probe on the target network path can include:
[0107] A probe message is sent to the second device via the target network path. If a response message is received from the second device within M probe cycles regarding the probe message for the target network path, the communication delay time of the target network path can be calculated based on the sending time of the probe message, the receiving time of the response message, and the response delay time of the second device carried in the response message. If the communication delay time of the target network path is greater than a time threshold, a probe result indicating that the target network path is a congested network path can be generated. Alternatively, communication delay information of other network paths among multiple network paths can be obtained. Other network paths refer to network paths among multiple network paths that are subjected to congestion probes in the same probe cycle as the target network path. If the communication delay time of the target network path is greater than the time threshold, and there is a network path among the other network paths whose communication delay information is less than or equal to the time threshold, a probe result indicating that the target network path is a congested network path can be generated.
[0108] The response delay time (reply_delay_time) refers to the time elapsed between the second device receiving the probe message and returning a response message. The response delay time is calculated as follows: the response delay time equals the time the second device returns the response message, minus the time the second device receives the probe message. Based on the sending time of the probe message, the receiving time of the response message, and the response delay time of the second device carried in the response message, the communication delay time of the target network path is calculated as follows: The probe delay time (rtt_total_time) is calculated based on the sending time of the probe message and the receiving time of the response message; the communication delay time (RTT value) is calculated based on the probe delay time and the response delay time. The communication delay time (RTT value) equals the probe delay time minus the response delay time, i.e., rtt_total_time - reply_delay_time. The probe delay time, on the other hand, refers to the time elapsed between the first device sending the probe message and receiving the response message. The probe delay time equals the time the first device receives the response message, minus the time the first device sends the probe message.
[0109] If no response message is received from the second device regarding the probe message for the target network path within M probe cycles, a probe result indicating that the target network path is a congested network path can be generated. Alternatively, if no response message is received from the second device regarding the probe message for the target network path within M probe cycles, and there are other network paths that receive corresponding response messages within M probe cycles, a probe result indicating that the target network path is a congested network path can be generated; other network paths refer to network paths that are subjected to congestion detection in the same probe cycle as the target network path.
[0110] For example, after the first probing period begins, the first device can send an RTT probe message to each network path. Each RTT probe message contains the path identifier of that network path. As shown in Figure 12, the first device sends RTT probe messages for network path 1 (represented as P1 in Figure 12) and network path 2 (represented as P2 in Figure 12) at times t1 and t3, respectively. After receiving the RTT probe messages, the second device records the path identifier carried in the RTT probe messages and the time of receiving the RTT probe messages.
[0111] After a probe cycle is reached, the second device returns an RTT response message to the first device. The response message may carry the identifiers of all congestion probed paths recorded in that probe cycle, as well as the time interval from receiving the RTT probe message for each network path to sending the RTT response message (denoted as the response delay time (reply_delay_time)). As shown in Figure 12, after a probe cycle is reached (i.e., at time t5), the second device sends an RTT response message. The RTT response message may contain the path identifier of network path 1, the reply_delay_time (t5-t2) of network path 1, the path identifier of network path 2, and the reply_delay_time (t5-t4) of network path 2.
[0112] After receiving the RTT response message, the first device calculates the time interval between receiving the RTT response message and each network path sending an RTT probe message (denoted as probe delay time (rtt_total_time)). The communication delay time (i.e., the RTT value) of each network path is calculated based on reply_delay_time and rtt_total_time, where RTT value = rtt_total_time - reply_delay_time. As shown in Figure 12, the second device receives the RTT response message at time t6. Therefore, the rtt_total_time of network path 1 is (t6-t1), and the RTT value of network path 1 is (t6-t1-(t5-t2)). The rtt_total_time of network path 2 is (t6-t3), and the RTT value of network path 2 is (t6-t3-(t5-t4)).
[0113] If the RTT value of a network path is greater than the preset congestion threshold (i.e., the time threshold mentioned earlier), the network path can be judged as congested. As shown in Figure 12, the first device sends an RTT probe message for network path 2 at time t9 of the second probe cycle. Since network path 2 is congested, its RTT probe message only arrives at the second device at time t12 of the third probe cycle. The second device returns an RTT response message for network path 2 at time t13. At time t14, the first device receives the RTT response message for network path 2. At this time, the RTT value of network path 2 is (t14-t9-(t13-t12)), which is greater than the congestion threshold (i.e., the time threshold mentioned earlier), therefore, network path 2 is judged to be congested.
[0114] It is worth noting that in the congestion detection strategy described above, the time when the first device can determine whether a network path is congested (i.e., rtt_total_time) depends on the degree of congestion in the communication network. When the communication network is severely congested, the time it takes for the first device to learn of the network path congestion will also be delayed (i.e., the rtt_total_time value increases), and the duration of this delay is unpredictable. In this case, the congestion detection strategy of the communication network cannot provide a definite time for detecting a congested path. As shown in Figure 13, the first device sends an RTT probe message for network path 2 at time t3 in the first probe cycle. However, network path 2 is severely congested, causing the first device to not receive an RTT response message from network path 2 for three probe cycles. To ensure that congestion is detected within a definite time, LBHarp also classifies network paths for which no RTT response messages have been received for M consecutive probe cycles (M is a positive integer) as congested. As shown in Figure 12, after three cycles (M=3) without receiving an RTT response message, the first device classifies network path 2 as a congested network path.
[0115] It is worth noting that in the examples of Figures 12 and 13, the second device returns a unified RTT response message at the end of a detection cycle. This RTT response message applies to all network paths that received the corresponding RTT detection message within the network paths detected during the congestion period, rather than returning an RTT response message for each individual RTT detection message. This saves congestion detection overhead. In the case of a unified RTT response message, if the network path through which the second device returns the RTT response message is congested, the calculated RTT value will also increase, even exceeding the threshold, while the network path detected by the first device is not congested. To distinguish this situation, if the RTT values of all detected network paths exceed the time threshold within a detection cycle, or if no RTT response message is received for any of the detected network paths within a detection cycle (M detection cycles), it can be assumed that the network path through which the RTT response message was received is congested, rather than the network path detected by the first device. In other words, if the RTT value of all network paths probed within a probe period exceeds the time threshold, or if all network paths probed within a probe period do not receive an RTT response message for M probe periods, the first device will not classify these network paths as congested.
[0116] In the case where the second device returns an RTT response message for each RTT probe message, the network path for sending the RTT probe message and returning the RTT response message is the same. If the network path becomes congested, the RTT value calculated by the first device will increase, or the first device may not receive an RTT response message for an extended period. In this situation, network path congestion can be determined directly by the RTT value, or by whether an RTT response message is received within M probe cycles, without considering other network paths, thus improving the accuracy of congestion detection results.
[0117] S1003, Obtain preset migration control information. The migration control information is used to control the migration granularity of the flow migration. Flow migration refers to migrating the data flow transmitted in the congested network path to the non-congested network path for transmission. The migration granularity is used to indicate the migration traffic of the flow migration.
[0118] In this embodiment, the execution process of step S1003 is the same as the execution process of step S402 in the embodiment shown in Figure 4 above. For details of the execution process of step S1003, please refer to the relevant description of step S402 in the embodiment shown in Figure 4 above, which will not be repeated here.
[0119] S1004: Select a non-congested second network path from multiple network paths.
[0120] In this embodiment, the execution process of step S1004 is the same as the execution process of step S403 in the embodiment shown in FIG4 above. For details of the execution process of step S1004, please refer to the relevant description of step S403 in the embodiment shown in FIG4 above, which will not be repeated here.
[0121] S1005, based on migration control information, selects a data stream whose traffic is migration traffic from the data streams transmitted on the first network path, and migrates the selected data stream to the second network path for transmission.
[0122] In this embodiment, the execution process of step S1005 is the same as the execution process of step S404 in the embodiment shown in FIG4 above. For details of the execution process of step S1005, please refer to the relevant description of step S404 in the embodiment shown in FIG4 above, which will not be repeated here.
[0123] In this embodiment, the advantages of the congestion detection strategy for the communication network are as follows: First, since network path congestion detection is performed according to a detection period, it can detect network path congestion on a periodic time scale and within a defined time period (up to M detection periods). Second, it detects the congestion status of all paths in real time, thus accurately identifying non-congested network paths for flow migration. Third, for any two devices in the communication network, congestion detection is performed at the physical network path level, and since a communication module typically has only 16 or 32 network paths, the congestion detection overhead is very low.
[0124] Please refer to Figure 14. Figure 14 is a schematic diagram of a congestion handling device for a communication network provided in an embodiment of this application. This congestion handling device can be installed in the computer device provided in this embodiment. The computer device can be a data transmission device (e.g., a first device) in the communication network. The communication network includes a first device and a second device, and multiple network paths are provided between the first device and the second device. Any one of the network paths is used to transmit a data stream between the first device and the second device. The congestion handling device for the communication network shown in Figure 14 can be a computer program running in the computer device. This congestion handling device can be used to execute some or all of the steps in the method embodiment shown in Figure 4 or Figure 10. Please refer to Figure 14. The congestion handling device for the communication network may include the following units:
[0125] Processing unit 1401 is used to determine the first network path that is congested from multiple network paths;
[0126] The processing unit 1401 is also used to acquire preset migration control information, which is used to control the migration granularity of the flow migration; flow migration refers to migrating the data flow transmitted in the congested network path to the non-congested network path for transmission, and the migration granularity is used to indicate the migration flow of the flow migration.
[0127] The processing unit 1401 is also configured to select a non-congested second network path from multiple network paths;
[0128] The processing unit 1401 is also used for control based on migration control information, selecting a data stream whose traffic is migration traffic from the data streams transmitted on the first network path;
[0129] The communication unit 1402 is used to migrate the selected data stream to a second network path for transmission.
[0130] In one implementation, the migration control information includes the number of flow mapping groups N and the number of flow migration groups K, where N is an integer greater than 1 and K is a positive integer less than or equal to N; any data flow mapped to any one of the multiple network paths is mapped to one of the N groups corresponding to the network path.
[0131] Processing unit 1401, used for control based on migration control information, specifically performs the following steps when selecting a data stream whose traffic is migration traffic from the data streams transmitted on the first network path:
[0132] Based on the number of flow migration groups K, select K groups from the N groups mapped to the data flow mapped to the first network path;
[0133] The data streams mapped to the selected K groups are determined as the selected data streams; the traffic of the data streams mapped to the selected K groups is the migration traffic.
[0134] In one implementation, when processing unit 1401 selects K packets from N packets mapped to the data stream of the first network path based on the number of flow migration groups K, it specifically performs the following steps:
[0135] Obtain the flow mapping table of the first device; the flow mapping table includes a hash bucket corresponding to each of the multiple network paths, each hash bucket corresponding to the network path includes N hash slots, one hash slot corresponds to one packet, and the hash slot is used to store the path identifier; any data flow mapped to the first network path is mapped to one hash slot in the hash bucket corresponding to the first network path;
[0136] The K packets corresponding to the first hash slots in the hash bucket corresponding to the first network path are determined as the K packets, and the data streams mapped to the K first hash slots are determined as the data streams mapped to the K packets;
[0137] The first hash slot is a hash slot in the hash bucket corresponding to the first network path, where the path identifier is the path identifier corresponding to the first network path.
[0138] In one implementation, the data stream mapped to the hash slot of the stream mapping table is transmitted through the network path corresponding to the path identifier stored in the mapped hash slot; the processing unit 1401 is used to migrate the selected data stream to a second network path for transmission, including:
[0139] The path identifiers stored in the K first hash slots are switched to the path identifiers corresponding to the second network path, so as to migrate the data streams mapped to the K first hash slots to the second network path for transmission.
[0140] In one implementation, the hash buckets corresponding to multiple network paths are arranged sequentially according to the path identifier; each hash bucket corresponding to a network path has its own index of the path to be migrated, the first index of the path to be migrated is the index of the hash bucket corresponding to the first network path, and the first index of the path to be migrated points to the hash bucket corresponding to any network path other than the first network path among the multiple network paths; the number of the second network paths is Q, where Q is a positive integer less than or equal to K.
[0141] Processing unit 1401, when selecting a non-congested second network path from multiple network paths, specifically performs the following steps:
[0142] Perform congestion checks on the network path corresponding to the current hash bucket pointed to by the first path to be migrated;
[0143] If the network path corresponding to the current hash bucket is a non-congested network path, then the network path corresponding to the current hash bucket is determined as a second network path, and the pointer of the first path to be migrated is updated from the current hash bucket to the next hash bucket of the current hash bucket.
[0144] If the network path corresponding to the current hash bucket is a congested network path, then the pointer of the first path to be migrated will be updated from the current hash bucket to the next hash bucket of the current hash bucket.
[0145] Repeat the congestion check process and the process of updating the pointer to the first path to be migrated until the number of determined second network paths is Q.
[0146] In one implementation, the communication unit 1402 is further configured to perform the following steps: receiving a target data stream flowing toward the first device;
[0147] Processing unit 1401 is also configured to perform the following steps: allocate a network path to the target data stream according to the stream mapping table;
[0148] The communication unit 1402 is also used to perform the following steps: transmitting the target data stream using an allocated network path.
[0149] In one implementation, when processing unit 1401 allocates a network path for a target data stream according to a stream mapping table, it specifically performs the following steps:
[0150] Perform hash bucket mapping on the target data stream to obtain the target hash bucket mapped to the stream mapping table;
[0151] Map the target data stream to hash slots within the target hash bucket to obtain the target hash slots mapped to the target data stream in the target hash bucket.
[0152] The network path identified by the path identifier stored in the target hash slot is determined as the assigned network path.
[0153] In one implementation, the number of second network paths is Q, where Q is a positive integer less than or equal to K; the communication unit 1402, when migrating the selected data stream to the second network path for transmission, specifically performs the following steps:
[0154] The data stream mapped to K packets is migrated to Q second network paths for transmission.
[0155] Specifically, the data streams mapped to the K packets are migrated to Q second network paths for transmission, including:
[0156] When Q=1, the data streams mapped to K packets will all be migrated to the same second network path for transmission;
[0157] When Q∈(1,K), the data streams mapped to K packets are allocated to Q second network paths according to the packets, and the data streams mapped to K packets are migrated to the allocated second network paths for transmission; the data streams mapped to at least two packets in the K packets are allocated to the same second network path;
[0158] When Q=K, the data streams mapped to K packets will be migrated to K second network paths for transmission, with different packets corresponding to different second network paths.
[0159] In one implementation, the processing unit 1401 is further configured to perform the following steps:
[0160] The migration control information is adjusted according to the congestion level of the communication network;
[0161] The number of flow mapping groups N controls the migration granularity of flow migration by controlling the traffic mapped to a group; the number of flow migration groups K controls the migration granularity of flow migration by controlling the number of migration groups in the flow migration.
[0162] In one implementation, when processing unit 1401 determines the first network path with congestion from multiple network paths, it specifically performs the following steps:
[0163] Congestion detection is performed on each of the multiple network paths according to the detection cycle, and the detection result of each network path is obtained; one congestion detection is performed on the network path in one detection cycle;
[0164] If the results of P consecutive congestion probes on any network path indicate that the network path is a congested network path, then the network path is determined to be the first network path with congestion among multiple network paths, where P is a positive integer.
[0165] In one implementation, any network path is represented as the target network path; the communication unit 1402, when performing a congestion detection on the target network path, specifically performs the following steps:
[0166] Send probe messages to the second device via the target network path;
[0167] If a response message is received from the second device regarding the probe message for the target network path within M probe cycles, the communication delay time of the target network path is calculated based on the sending time of the probe message for the target network path, the receiving time of the response message, and the response delay time of the second device carried in the response message. The response delay time refers to the time elapsed between the second device receiving the probe message and returning the response message; M is a positive integer.
[0168] If the communication delay of the target network path is greater than the time threshold, a detection result indicating that the target network path is a congested network path is generated; or, the communication delay information of other network paths among multiple network paths is obtained. Other network paths refer to network paths among multiple network paths that are subjected to congestion detection in the same detection period as the target network path. If the communication delay of the target network path is greater than the time threshold, and there are other network paths whose communication delay information is less than or equal to the time threshold, a detection result indicating that the target network path is a congested network path is generated.
[0169] In one implementation, the communication unit 1402 is further configured to perform the following steps:
[0170] If no response message is received from the second device for the probe message of the target network path within M probe cycles, a probe result indicating that the target network path is a congested network path is generated; or, if no response message is received from the second device for the probe message of the target network path within M probe cycles, and there is a network path among the other network paths that receives a corresponding response message within M probe cycles, a probe result indicating that the target network path is a congested network path is generated; other network paths refer to network paths among multiple network paths that are subjected to congestion detection in the same probe cycle as the target network path.
[0171] In one implementation, the first device and the second device are connected through two switch layers. Both the first device and the second device are connected to switches in the first switch layer. Any two switches in the first switch layer are connected through switches in the second switch layer. The transmission path between the first device or the second device and the switches in the first switch layer is identified by port numbers under the first type of port. The transmission path between any two switches in the first switch layer is identified by port numbers under the second type of port.
[0172] The processing unit 1401 is also configured to perform the following steps: combine the transmission path identified by a port number under the first type of port with the transmission path identified by a port number under the second type of port to obtain a network path between the first device and the second device.
[0173] According to one embodiment of this application, the various units in the congestion processing device of the communication network shown in FIG14 can be individually or entirely merged into one or more other units, or some of the units can be further divided into multiple functionally smaller units. This can achieve the same operation without affecting the technical effect of the embodiment of this application. The above-mentioned units are based on logical function division. In practical applications, the function of one unit can also be implemented by multiple units, or the function of multiple units can be implemented by one unit. In other embodiments of this application, the congestion processing device of the communication network may also include other units. In practical applications, these functions can also be implemented with the assistance of other units, and can be implemented by multiple units working together.
[0174] According to another embodiment of this application, a congestion handling apparatus for a communication network as shown in FIG14, and a congestion handling method for a communication network according to an embodiment of this application, can be constructed by running a computer program capable of performing some or all of the steps involved in the methods shown in FIG4 or FIG10 on a general-purpose computing device including processing elements and storage elements such as a central processing unit (CPU), random access storage medium (RAM), and read-only storage medium (ROM). The computer program can be recorded on, for example, a computer-readable storage medium, loaded into the aforementioned computing device through the computer-readable storage medium, and run therein.
[0175] In this embodiment, a congested first network path can be identified from multiple network paths between the first and second devices. This demonstrates that this embodiment possesses congestion detection capabilities, enabling timely identification of congested network paths and facilitating rapid resolution of network path congestion. After identifying the congested first network path from the multiple network paths between the first and second devices, preset migration control information can be obtained. This migration control information can be used to control the migration granularity of the flow migration. Flow migration refers to migrating data streams transmitted in a congested network path to a non-congested network path for transmission. The migration granularity can be used to indicate the migration traffic. This embodiment can achieve controlled flow migration based on migration control information. Controlled flow migration can prevent congestion in the network path of the migrated data stream when there is excessive migration traffic, or it can prevent unresolved congestion in the network path of the migrated data stream when there is insufficient migration traffic. After obtaining the migration control information, the data stream with the migration flow can be selected from the data streams transmitted on the first network path based on the control of the migration control information, and the selected data stream can be migrated to the non-congested second network path between the first device and the second device for transmission. It can be seen that for the congested network path in the communication network, the embodiments of this application can migrate the data stream with the specified flow (the specified flow refers to the migration flow) on the congested network path to the non-congested path through a single flow migration. The number of flow migrations is one rather than multiple times, and the target of the flow migration is the non-congested network path rather than the congested network path, which can quickly alleviate the congestion of the communication network.
[0176] Please refer to Figure 15, which is a schematic diagram of a computer device provided in an embodiment of this application. The computer device shown in Figure 15 includes at least a processor 1501, an input interface 1502, an output interface 1503, and a computer-readable storage medium 1504. The processor 1501, input interface 1502, output interface 1503, and computer-readable storage medium 1504 can be connected via a bus or other means.
[0177] The computer-readable storage medium 1504 can be stored in the memory of a computer device. The computer-readable storage medium 1504 is used to store computer programs, including computer instructions. The processor 1501 is used to execute the computer program stored in the computer-readable storage medium 1504. The processor 1501 (or CPU (Central Processing Unit)) is the computing and control core of the computer device, suitable for implementing computer programs, specifically for loading and executing computer programs to achieve corresponding method flows or functions.
[0178] This application also provides a computer-readable storage medium (Memory), which is a memory device in a computer device used to store programs and data. It is understood that the computer-readable storage medium here can include both built-in storage media in the computer device and extended storage media supported by the computer device. The computer-readable storage medium provides storage space for storing the operating system of the computer device. Furthermore, the storage space also stores computer programs suitable for loading and execution by a processor. It should be noted that the computer-readable storage medium here can be high-speed RAM or non-volatile memory, such as at least one disk storage device; optionally, it can also be at least one computer-readable storage medium located remotely from the aforementioned processor.
[0179] The computer device can be a data transmission device (e.g., a first device) in a communication network, which includes a first device and a second device. Multiple network paths are provided between the first device and the second device, and any one of these network paths is used to transmit the data stream between the first device and the second device. In a specific implementation, the processor 1501 can load and execute the computer program stored in the computer-readable storage medium 1504 to implement the corresponding steps in the methods shown in Figure 2 or Figure 6.
[0180] This application also provides a computer program product, which includes a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to perform the aforementioned congestion handling method for a communication network.
Claims
1. A method of congestion handling for a communication network, characterized by, The communication network comprises a first device and a second device, and a plurality of network paths are provided between the first device and the second device, any one of the network paths being used for transmitting a data flow between the first device and the second device; The method is executed by the first device, and the method comprises: determining a first network path with congestion from the plurality of network paths; obtaining preset migration control information, the migration control information being used for controlling a migration granularity of flow migration, the flow migration being migration of a data flow transmitted in a congested network path to a non-congested network path for transmission, and the migration granularity being used for indicating a migration flow of the flow migration; selecting a second network path without congestion from the plurality of network paths; based on control of the migration control information, selecting a data flow with the migration flow from data flows transmitted on the first network path, and migrating the selected data flow to the second network path for transmission.
2. The method of claim 1, wherein, The migration control information comprises a number N of flow mapping groups and a number K of flow migration groups, N is an integer greater than 1, and K is a positive integer less than or equal to N; any data flow mapped to any one of the plurality of network paths is mapped to one of N groups corresponding to the corresponding network path. The control based on the migration control information comprises: based on the number K of flow migration groups, selecting K groups from N groups to which data flows mapped to the first network path are mapped; determining data flows mapped to the selected K groups as the selected data flows, wherein the flow of the data flows mapped to the selected K groups is the migration flow.
3. The method of claim 1 or 2, wherein, The control based on the number K of flow migration groups comprises: obtaining a flow mapping table of the first device; the flow mapping table comprises a hash bucket corresponding to each of the plurality of network paths, the hash bucket corresponding to each of the plurality of network paths comprises N hash slots, one of the hash slots corresponding to one of the groups, and the hash slot being used for storing a path identifier; any data flow mapped to the first network path is mapped to one of the hash slots in the hash bucket corresponding to the first network path; determining groups corresponding to K first hash slots in the hash bucket corresponding to the first network path as the K groups, and determining data flows mapped to the K first hash slots as data flows mapped to the K groups; wherein the first hash slot is a hash slot in the hash bucket corresponding to the first network path, and a path identifier stored in the hash slot is a path identifier corresponding to the first network path.
4. The method according to any one of claims 1 to 3, characterized in that, The data flow mapped to the hash slot in the flow mapping table is transmitted through the network path corresponding to the path identifier stored in the mapped hash slot. The migration of the selected data flow to the second network path for transmission comprises: Switch the path identifier stored in the K first hash slots to the path identifier corresponding to the second network path, so as to migrate the data stream mapped to the K first hash slots to the second network path for transmission.
5. The method according to any one of claims 1 to 4, wherein The hash buckets corresponding to the multiple network paths are arranged in sequence according to path identifiers; each hash bucket corresponding to a network path has a respective to-be-migrated path index; the first to-be-migrated path index is the to-be-migrated path index of the hash bucket corresponding to the first network path, and the first to-be-migrated path index points to the hash bucket corresponding to any network path other than the first network path among the multiple network paths; the number of the second network paths is Q, Q being a positive integer less than or equal to K; The selecting, from the multiple network paths, a non-congested second network path comprises: performing congestion checking on the network path corresponding to the current hash bucket pointed to by the first to-be-migrated path index; if the network path corresponding to the current hash bucket is a non-congested network path, determining the network path corresponding to the current hash bucket as one of the second network paths, and updating the pointing of the first to-be-migrated path index from the current hash bucket to the next hash bucket of the current hash bucket; if the network path corresponding to the current hash bucket is a congested network path, updating the pointing of the first to-be-migrated path index from the current hash bucket to the current next hash bucket of the current hash bucket; repeating the processes of congestion checking and updating the pointing of the first to-be-migrated path index until the number of the determined second network paths is Q.
6. The method according to any one of claims 1 to 5, wherein, The method further comprises: receiving a target data stream flowing to the first device; allocating a network path for the target data stream according to the flow mapping table; transmitting the target data stream using the allocated network path.
7. The method according to any one of claims 1 to 6, wherein The allocating a network path for the target data stream according to the flow mapping table comprises: performing hash bucket mapping on the target data stream to obtain a target hash bucket to which the target data stream is mapped in the flow mapping table; performing hash slot mapping on the target data stream in the target hash bucket to obtain a target hash slot to which the target data stream is mapped in the target hash bucket; determining the network path identified by the path identifier stored in the target hash slot as the allocated network path.
8. The method according to any one of claims 1 to 7, wherein, The number of the second network paths is Q, Q being a positive integer less than or equal to the number K; and the migrating the selected data stream to the second network paths for transmission comprises: migrating the data stream mapped to the K groups to the Q second network paths for transmission; wherein the migrating the data stream mapped to the K groups to the Q second network paths for transmission comprises: when Q = 1, migrating the data stream mapped to the K groups to the same second network path for transmission; and when Q > 1, migrating the data stream mapped to the K groups to different second network paths for transmission. When Q∈(1, K), the data stream mapped to the K groups of packets is allocated to Q second network paths according to the groups, and the data stream mapped to the K groups of packets is migrated to the allocated second network paths for transmission; the data streams mapped to at least two groups of the K groups of packets are allocated to the same second network path; When Q=K, the data stream mapped to the K groups of packets is migrated to K second network paths respectively for transmission, and different groups correspond to different second network paths.
9. The method according to any one of claims 1 to 8, wherein, The method further comprises: adjusting the migration control information according to the congestion degree of the communication network; wherein the flow mapping group number N controls the migration granularity of the flow migration by controlling the flow mapped to one group; and the flow migration group number K controls the migration granularity of the flow migration by controlling the migration group number of the flow migration.
10. The method of any one of claims 1-9, wherein, The method further comprises: performing congestion detection on each of the network paths in the plurality of network paths according to a detection period to obtain a detection result of each of the network paths; and one detection period performs congestion detection on each of the network paths once. If the detection result of P consecutive congestion detections on any of the network paths indicates that any of the network paths is a congested network path, it is determined that the any of the network paths is the first network path in which congestion exists in the plurality of network paths, and P is a positive integer.
11. The method of any one of claims 1-10, wherein, Any of the network paths is referred to as a target network path; the process of performing congestion detection on the target network path comprises: sending a detection message to the second device through the target network path; if a response message returned by the second device in response to the detection message of the target network path is received within M detection periods, calculating a communication delay time of the target network path according to a sending time point of the detection message of the target network path, a receiving time point of the response message, and a response delay time of the second device carried in the response message; the response delay time refers to the time elapsed between the reception of the detection message by the second device and the return of the response message by the second device; and M is a positive integer; if the communication delay time of the target network path is greater than a time threshold, generating a detection result indicating that the target network path is a congested network path; or obtaining communication delay information of other network paths in the plurality of network paths, the other network paths referring to the network paths in the plurality of network paths that are detected for congestion in the same detection period as the target network path, if the communication delay time of the target network path is greater than a time threshold and there is a network path in the other network paths whose communication delay information is less than or equal to the time threshold, generating a detection result indicating that the target network path is a congested network path.
12. The method of any one of claims 1-11, wherein, The method further comprises: If the response message returned by the second device for the probe message of the target network path is not received within M probe periods, a probe result indicating that the target network path is a congested network path is generated; or If the response message returned by the second device for the probe message of the target network path is not received within M probe periods, and there is a network path in other network paths that receives a corresponding response message within the M probe periods, a probe result indicating that the target network path is a congested network path is generated; the other network paths refer to network paths in the multiple network paths that are subjected to congestion detection in the same probe period as the target network path.
13. The method of any one of claims 1-12, wherein, The first device and the second device are connected through two switch layers, the first device and the second device are connected with switches in a first switch layer, and any two switches in the first switch layer are connected through switches in a second switch layer; a transmission path between the first device or the second device and a switch in the first switch layer is identified by a port number under a first type of port, and a transmission path between any two switches in the first switch layer is identified by a port number under a second type of port; The method further comprises: Combining the transmission path identified by the port number under the first type of port with the transmission path identified by the port number under the second type of port to obtain a network path between the first device and the second device.
14. A congestion handling apparatus of a communication network, characterized by, The communication network comprises a first device and a second device, and multiple network paths are provided between the first device and the second device, and any network path is used for transmitting a data flow between the first device and the second device; The device is arranged in the first device, and the method comprises: A processing unit is configured to determine a first network path with congestion from the multiple network paths; The processing unit is further configured to obtain preset migration control information, the migration control information being used for controlling a migration granularity of flow migration, the flow migration referring to migrating a data flow transmitted in a congested network path to a non-congested network path for transmission, and the migration granularity being used for indicating a migration flow of the flow migration; The processing unit is further configured to select a second network path without congestion from the multiple network paths; The processing unit is further configured to select a data flow with the migration flow from data flows transmitted on the first network path based on the control of the migration control information; A communication unit is configured to migrate the selected data flow to the second network path for transmission.
15. A computer device, comprising: The computer device comprises: A processor adapted to implement a computer program; A computer readable storage medium storing a computer program, the computer program being adapted to be loaded and executed by the processor to perform the congestion processing method of the communication network according to any one of claims 1-13.
16. A computer readable storage medium characterized by: The computer readable storage medium stores a computer program, and the computer program is adapted to be loaded and executed by the processor to implement the congestion handling method of the communication network according to any one of claims 1-13.
17. A computer program product, characterised in that, The computer program product comprises a computer program, and the computer program is executed by the processor to implement the congestion handling method of the communication network according to any one of claims 1-13.