Forwarding path adjusting method and device
By setting routing weights in the data tunnel and sensing congestion conditions, and adjusting the routing weights of the forwarding path, the network congestion problem caused by backbone network controller failure is solved, and the effect of quickly solving line congestion and avoiding packet loss is achieved.
Patent Information
- Application Number
- CN202510202514.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-21
- Publication Date
- 2025-05-30
AI Technical Summary
When the backbone network controller fails, the elastic scheduling fails, resulting in continuous congestion of WAN lines and even packet loss.
By setting routing weights in the data tunnel and interacting between the head routing node and the intermediate routing node, the congestion status is sensed and the routing weights of the forwarding path are adjusted to reduce traffic to the congested path.
It realizes the rapid resolution of line congestion without reducing the data transmission speed, avoids network packet loss, and realizes intelligent control and optimization of network traffic.
Smart Images

Figure CN120075116A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data transmission, and in particular, to a method and device for adjusting a forwarding path. Background Art
[0002] With the development of technologies such as cloud computing, the Internet of Things, and 5G, network traffic has increased sharply and the application scenarios have become more and more diverse. Such as high-definition video, real-time games, large-scale data transmission, etc. Therefore, traditional networks are difficult to meet the flexible and efficient traffic scheduling requirements.
[0003] Currently, the SRv6 backbone network relies on the backbone network controller to achieve elastic scheduling capabilities. When congestion occurs on the wide area network line, the controller automatically schedules the service traffic to other available lines. After the line is restored, the service traffic is automatically called back. However, when the backbone network controller fails, the elastic scheduling fails, which may lead to continuous congestion of the wide area network line and even problems such as packet loss.
[0004] In summary, how to avoid the aggravation of network congestion and the resulting packet loss is a technical problem that needs to be solved urgently at present. Summary of the Invention
[0005] Embodiments of the present invention provide a method and device for adjusting a forwarding path, which are used to solve the problems in the prior art that when the backbone network controller fails, the elastic scheduling fails, which may lead to continuous congestion of the wide area network line and even packet loss.
[0006] In a first aspect, an embodiment of the present invention provides a method for adjusting a forwarding path, which is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is set with a routing weight representing the transmission capacity; the method includes: the head routing node of the data tunnel distributes any data packet to any forwarding path according to the routing weights of the respective forwarding paths at the transmission rate set for the data tunnel; wherein, at least one data packet is set with a congestion enabling flag; after receiving a congestion response packet sent by the tail routing node of the data tunnel, the head routing node adjusts the routing weight of any forwarding path, and based on the updated routing weights of the respective forwarding paths, distributes any data packet to any forwarding path at the transmission rate; wherein, the congestion response packet carries a first forwarding path identifier, and the first forwarding path identifier is used to indicate that at least one intermediate routing node on the corresponding first forwarding path is congested; the congestion response packet is generated by the tail routing node based on the congestion indication in the data packet forwarded by the congested intermediate routing node.
[0007] In the above technical solution, this solution can sense the congestion status of the forwarding path without the head routing node relying on the backbone network controller. When it detects that a certain path is congested, it adjusts the routing weight of the corresponding forwarding path, reduces the traffic flowing to this path without reducing the transmission rate of this forwarding path, effectively prevents network packet loss caused by the aggravation of congestion, and realizes the intelligent regulation and optimization of network traffic.
[0008] Optionally, for the routing weights of each forwarding path, distributing any data packet to any forwarding path according to the transmission rate set by the data tunnel includes: for any data packet, based on the routing weights of each forwarding path, determining the second forwarding path corresponding to the data packet according to the transmission rate set by the data tunnel, and after setting the path identifier corresponding to the second forwarding path and the congestion enable flag in the data packet, sending the data packet.
[0009] Optionally, adjusting the routing weight of any forwarding path includes: reducing the routing weight of the first forwarding path; wherein, the transmission capacity of any forwarding path is determined by the proportion of the routing weight.
[0010] Optionally, reducing the routing weight of the first forwarding path includes: adopting the per-packet hashing method to adjust the routing weight of the first forwarding path according to the deceleration factor; or adopting the per-flow hashing method to set the routing weight of the first forwarding path to the lowest routing weight.
[0011] Optionally, after reducing the routing weight of the first forwarding path, it further includes: within a preset time threshold, if the head routing node does not receive a congestion response packet carrying the identifier of the first forwarding path, increasing the routing weight of the first forwarding path.
[0012] Optionally, increasing the routing weight of the first forwarding path includes: judging whether the routing weight of the first forwarding path is greater than the original routing weight of the first forwarding path. If so, stop adjusting the routing weight of the first forwarding path; if not, adjusting the routing weight of the first forwarding path according to the acceleration factor.
[0013] Second aspect, an embodiment of the present invention provides a forwarding path adjustment method, which is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is set with a routing weight representing the transmission capacity; the method includes: an intermediate routing node on any forwarding path receives a data packet distributed from the head routing node of the data tunnel; the head routing node distributes the data packet based on the routing weights of each forwarding path; after determining that the data packet carries a congestion enabling flag, the intermediate routing node determines whether it is in a congested state; if it is in a congested state, the data packet is set with a congestion indication and then sent to the tail routing node of the data tunnel; the congestion indication is used to notify the tail routing node to generate a congestion response packet for the forwarding path; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path.
[0014] Third aspect, an embodiment of the present invention provides a forwarding path adjustment method, which is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is set with a routing weight representing the transmission capacity; the method includes: the tail routing node of the data tunnel receives a data packet forwarded by an intermediate routing node on any forwarding path; when determining that the data packet carries a congestion indication, the tail routing node generates a congestion response packet for the forwarding path and sends the congestion response packet to the head routing node of the data tunnel; the congestion indication is added when at least one intermediate routing node on the forwarding path determines that there is congestion; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path.
[0015] Fourth aspect, an embodiment of the present invention provides a forwarding path adjustment device, which is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is set with a routing weight representing the transmission capacity; the device includes: a first obtaining unit is used to distribute any data packet to any forwarding path according to the transmission rate set by the data tunnel based on the routing weights of each forwarding path; wherein, at least one data packet is set with a congestion enabling flag; a first processing unit is used to adjust the routing weight of any forwarding path after receiving the congestion response packet sent by the tail routing node of the data tunnel, and distribute any data packet to any forwarding path according to the transmission rate based on the updated routing weights of each forwarding path; wherein, the congestion response packet carries a first forwarding path identifier, and the first forwarding path identifier is used to indicate that there is congestion in at least one intermediate routing node on the corresponding first forwarding path; the congestion response packet is generated by the tail routing node based on the congestion indication in the data packet forwarded by the congested intermediate routing node.
[0016] Fifth aspect, a forwarding path adjustment device provided by an embodiment of the present invention is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is provided with a routing weight representing the transmission capacity; the device includes: a second acquisition unit configured to receive a data packet distributed by a head routing node of the data tunnel; the head routing node distributes the data packet based on the routing weights of each forwarding path; a second processing unit configured to determine whether it is in a congested state after determining that the data packet carries a congestion enable flag; if in a congested state, set a congestion indication in the data packet and send it to a tail routing node of the data tunnel; the congestion indication is used to notify the tail routing node to generate a congestion response packet for the forwarding path; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path.
[0017] Sixth aspect, a forwarding path adjustment device provided by an embodiment of the present invention is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is provided with a routing weight representing the transmission capacity; the device includes: a third acquisition unit configured to receive a data packet forwarded by an intermediate routing node on any forwarding path; a third processing unit configured to generate a congestion response packet for the forwarding path and send the congestion response packet to a head routing node of the data tunnel when determining that the data packet carries a congestion indication; the congestion indication is added when at least one intermediate routing node on the forwarding path determines that there is congestion; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path.
[0018] Seventh aspect, an embodiment of the present invention further provides a computing device, including at least one processor and at least one memory, wherein the memory stores a computer program, and when the program is executed by the processor, the processor is caused to execute an abnormal index detection method according to the first aspect above.
[0019] Eighth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program executable by a computer device, and when the program runs on the computer device, the computer device is caused to execute a forwarding path adjustment method according to the first aspect above.
[0020] Ninth aspect, an embodiment of the present application provides a computer program product, the computer program product includes a computer program stored on a computer-readable storage medium, the computer program includes program instructions, and when the program instructions are executed by a computer device, the computer device is caused to execute the steps of any forwarding path adjustment method according to the first aspect above. Description of the Drawings
[0021] To more clearly illustrate the technical solutions in the embodiments of the present invention, the following briefly introduces the accompanying drawings required for the description of the embodiments. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other accompanying drawings can be obtained based on these drawings.
[0022] Figure 1 Flowchart of a forwarding path adjustment method provided by an embodiment of the present invention;
[0023] Figure 2 Schematic diagram of a data tunnel provided by an embodiment of the present invention;
[0024] Figure 3 Interaction schematic diagram among a head routing node, an intermediate routing node, and a tail routing node provided by an embodiment of the present invention;
[0025] Figure 4 Flowchart of a method for sending a congestion response packet provided by an embodiment of the present invention;
[0026] Figure 5 Flowchart of a method for adjusting the routing weight of any forwarding path provided by an embodiment of the present invention;
[0027] Figure 6 Schematic diagram of the structure of a forwarding path adjustment device provided by an embodiment of the present invention;
[0028] Figure 7 Schematic diagram of the structure of a forwarding path adjustment device provided by an embodiment of the present invention;
[0029] Figure 8 Schematic diagram of the structure of a forwarding path adjustment device provided by an embodiment of the present invention;
[0030] Figure 9 Schematic diagram of the structure of a computing device provided by an embodiment of the present invention. Detailed implementation manners
[0031] To make the objectives, technical solutions, and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, rather than all embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts belong to the scope of protection of the present invention.
[0032] The SRv6 backbone network is a backbone network built around the SRv6 (Segment Routing over IPv6) technology and is a new generation of IP bearer backbone network. There are also many application scenarios for the SRV6 backbone network. For example, the SRv6 backbone network is suitable for large enterprise networks. Large enterprises have many branches and data centers. The SRv6 backbone network can achieve efficient interconnection between branches and data centers, optimize traffic paths, ensure the quality of service for critical services, and support the global business expansion of enterprises. For another example, the SRV6 backbone network is also suitable for operator networks. Operators can use the SRv6 backbone network to provide customized services for different customers and services, implement network slicing, provide differentiated network guarantees for 5G services, Internet of Things services, etc., and improve network operation efficiency and service quality. During the process of traffic scheduling in the SRV6 backbone network, congestion problems often occur in one or more lines.
[0033] In one possible scenario, the SRv6 backbone network relies on the backbone network controller to achieve elastic scheduling capabilities. When congestion occurs on the wide area network line, the controller automatically schedules the service traffic to other available lines. After the line is restored, the service traffic is automatically recalled. Among them, the congestion awareness and traffic scheduling real-time of the controller are at the minute level, unable to reach the second-level adjustment, unable to quickly eliminate the risk of congestion, and when the backbone network controller fails, if congestion occurs on the wide area network line, in addition to ensuring critical services through Qos, it is impossible to schedule the over-limit service traffic to other idle lines, resulting in the problem of increased congestion and packet loss.
[0034] In another possible scenario, a traditional ECN congestion control scheme is used to solve the problem of wide area network line congestion. Specifically, when the source node senses congestion, it alleviates congestion by reducing the data transmission rate sent by the source end, but this will affect the data transmission speed.
[0035] In summary, an embodiment of the present invention provides a forwarding path adjustment method and device, so as to quickly solve the line congestion problem without sacrificing the data transmission speed.
[0036] As Figure 1 shown, it is a flowchart of a forwarding path adjustment method provided by an embodiment of the present invention. The method includes the following steps:
[0037] Step 101, the head routing node of the data tunnel distributes any data packet to any forwarding path according to the routing weights of each forwarding path and the transmission rate set by the data tunnel.
[0038] In the embodiment of the present invention, any data tunnel includes multiple forwarding paths. The head routing node and the tail routing node of any forwarding path in the same data tunnel are the same. See Figure 2 for details, whereFigure 2 A schematic diagram of a data tunnel provided by an embodiment of the present invention is shown. Any one of the forwarding paths includes at least one intermediate routing node. Each forwarding path is set with a routing weight characterizing the transmission capacity. Generally, the head routing node of the data tunnel determines the number of data packets to enter the corresponding forwarding path subsequently based on the routing weights of each forwarding path, and then the head routing node of the data tunnel distributes any data packet to any forwarding path according to the transmission rate of each forwarding path. At least one of the data packets is set with a congestion enabling flag, and the congestion enabling flag is used to instruct the intermediate routing node to determine whether it is in a congested state.
[0039] Step 102: After receiving the congestion response packet sent by the tail routing node of the data tunnel, the head routing node adjusts the routing weight of any forwarding path, and based on the updated routing weights of each forwarding path, distributes any data packet to any forwarding path according to the transmission rate.
[0040] In the embodiment of the present invention, after receiving the congestion response packet sent by the tail routing node of the data tunnel, the routing node determines that at least one intermediate routing node on the first path is congested according to the first forwarding path identifier carried in the congestion response packet. Therefore, in order to avoid the aggravation of congestion on the first path, the head routing node adjusts the routing weight of the first forwarding path, and based on the updated routing weights of each forwarding path, distributes any data packet to any forwarding path according to the transmission rate.
[0041] It can be seen from the above steps 101 to 102 that this solution does not require the head routing node to rely on the backbone network controller to sense the congestion status of the forwarding path. When a certain path is detected to be congested, by adjusting the routing weight of the corresponding forwarding path, the traffic flowing to this path is reduced without reducing the transmission rate of this forwarding path, effectively preventing network packet loss caused by the aggravation of congestion, and realizing the intelligent regulation and optimization of network traffic.
[0042] Optionally, the data tunnel includes multiple forwarding paths. To better implement traffic scheduling, the head routing node of the data tunnel distributes the data packets to each forwarding path based on the routing weights of each forwarding path. For example, if the first data tunnel includes three forwarding paths, namely forwarding path A, forwarding path B, and forwarding path C. Among them, the routing weight of forwarding path A is 5, the routing weight of forwarding path B is 3, and the routing weight of forwarding path C is 2. According to the routing weights of each forwarding path in the first data tunnel, the proportion of the routing weights of the traffic in each forwarding path is determined, and the head routing node forwards any data packet to the corresponding forwarding path according to the proportion of the routing weights of each forwarding path. In this way, by reducing the proportion of the routing weight of the congested forwarding path, the number of data packets on the congested forwarding path can be reduced, and the congestion problem can be quickly solved without reducing the transmission rate. For example, for data packet 1, according to the routing weights of each forwarding path in the first data tunnel, it is determined that the second forwarding path corresponding to data packet 1 is forwarding path A. Then, the path identifier corresponding to forwarding path A and the congestion enabling flag are set in data packet 1, and the head routing node distributes data packet 1 to forwarding path A according to the transmission rate set for forwarding path A.
[0043] The above describes how the head routing node distributes any data packet to any forwarding path, so as to select a suitable forwarding path for transmission without reducing the transmission rate. The following describes how to quickly solve the congestion problem without reducing the transmission rate when at least one intermediate routing node in the forwarding path is congested during the transmission process.
[0044] As Figure 3 shown, it is an interaction schematic diagram among a head routing node, an intermediate routing node, and a tail routing node provided by an embodiment of the present invention. The interaction diagram includes the following steps:
[0045] Step 301, the head routing node sends a data packet to the intermediate routing node.
[0046] In the embodiment of the present invention, for example, if the first data tunnel includes three forwarding paths, namely forwarding path A, forwarding path B, and forwarding path C. The head routing node determines to send data packet 2 to the intermediate routing node in forwarding path B based on the routing weights of each forwarding path. The path identifier corresponding to forwarding path B and the congestion enabling identifier are set in the data packet, and the congestion enabling identifier can be that the ECN in the header of the data packet is set to 10.
[0047] Step 302, the intermediate routing node receives the data packet distributed by the head routing node. After determining that the data packet carries a congestion enabling flag, it determines whether it is in a congested state. If so, it executes step 303. If not, it executes step 304.
[0048] In an embodiment of the present invention, an intermediate routing node receives a data packet distributed by a head routing node, and determines the number of data packets currently received by the intermediate routing node after determining that the data packet carries a congestion enabling flag. If the number of data packets is greater than a set threshold, it is determined that the intermediate routing node is in a congested state. If the number of data packets is less than the set threshold, it is determined that the intermediate routing node is not in a congested state.
[0049] Step 303: After setting a congestion indication in the data packet, the intermediate routing node sends it to the tail routing node.
[0050] In an embodiment of the present invention, after the intermediate routing node determines that it is in a congested state, the intermediate routing node sets a congestion instruction in the data packet and sends it to the tail routing node, so as to prompt the tail routing node that there is congestion in the forwarding path where the intermediate routing node is located. For example, the congestion indication can be to set the ECN in the header of the data packet from 10 to 11.
[0051] Step 304: The intermediate routing node sends the data packet to the tail routing node.
[0052] In an embodiment of the present invention, since the intermediate routing node itself is not in a congested state, the intermediate routing node only needs to send the data packet to the tail routing node.
[0053] Step 305: The tail routing node receives the data packet forwarded by the intermediate routing node on any forwarding path. When it determines that the data packet carries a congestion indication, it generates a congestion response packet for the forwarding path and sends the congestion response packet to the head routing node of the data tunnel.
[0054] In an embodiment of the present invention, the congestion indication is added when at least one intermediate routing node on the forwarding path determines that it has congestion; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path. When the tail routing node determines that the data packet carries a congestion indication, it will generate a congestion response packet for the forwarding path and send the congestion response packet to the head routing node of the data tunnel, so as to achieve second-level perception of the congestion problem, thereby improving the speed of subsequent congestion problem solving.
[0055] Step 306: After receiving the congestion response packet sent by the tail routing node of the data tunnel, the head routing node adjusts the routing weight of any forwarding path, and based on the updated routing weights of each forwarding path, distributes any data packet to any forwarding path according to the transmission rate.
[0056] In an embodiment of the present invention, the head routing node can determine which forwarding path is congested by receiving the congestion response packet sent by the tail routing node of the data tunnel. To avoid packet loss caused by aggravated congestion, the head routing node will adjust the routing weight of any forwarding path. In a possible case, the head routing node reduces the routing weight of the congested forwarding path, thereby reducing the weight ratio of the congested forwarding path among all forwarding paths in the data tunnel, so as to reduce the traffic flowing into the congested forwarding path subsequently.
[0057] In another possible case, the head routing node increases the routing weight of the non-congested forwarding path without adjusting the routing weight of the congested forwarding path, thereby reducing the weight ratio of the congested forwarding path among all forwarding paths in the data tunnel, so as to reduce the traffic flowing into the congested forwarding path subsequently.
[0058] In still another possible case, by increasing the routing weight of the non-congested forwarding path and reducing the routing weight of the congested forwarding path, the weight ratio of the congested forwarding path among all forwarding paths in the data tunnel is reduced, so as to reduce the traffic flowing into the congested forwarding path subsequently.
[0059] It can be seen from the above steps 301 to 306 that by the intermediate routing node determining whether it is in a congested state, the congestion of the forwarding path can be quickly sensed, and by the head routing node adjusting the routing weight of any forwarding path, without reducing the transmission rate of the forwarding path, traffic scheduling is performed by reducing the traffic flowing into the congested forwarding path.
[0060] Optionally, in step 305, when the tail routing node determines that the congestion indication is carried in the data packet, it needs to generate a congestion response packet for the forwarding path and send the congestion response packet to the head routing node of the data tunnel.
[0061] In a possible case, if the first forwarding path is congested, during the congestion period of the first forwarding path, the tail routing node will frequently send the congestion response packet of the first forwarding path to the head routing node, which will cause a large number of congestion response packets to be transmitted in the first forwarding path, occupying additional bandwidth resources, increasing the network load, making the already congested first forwarding path more congested, and reducing the data transmission rate of the first forwarding path.
[0062] Therefore, as Figure 4 shown, the flowchart of a method for sending a congestion response packet provided by an embodiment of the present invention includes the following steps:
[0063] Step 401: The tail routing node receives the data packet forwarded by the intermediate routing node on the first forwarding path. When it determines that the data packet carries a congestion indication, it generates a congestion response packet for the first forwarding path.
[0064] In the embodiment of the present invention, the tail routing node receives the data packet forwarded by the intermediate routing node on any forwarding path. When it determines that the data packet carries a congestion indication, it determines that the first forwarding path is congested. Therefore, the tail routing node generates a congestion response packet for the first forwarding path, which is used to instruct the head routing node to adjust the routing weight of any forwarding path, facilitating subsequent reduction of the traffic flowing into the first forwarding path.
[0065] Step 402: The tail routing node determines whether it has sent a congestion response packet for the first forwarding path to the head routing node within the detection period. If so, it proceeds to step 403; if not, it proceeds to step 404.
[0066] In the embodiment of the present invention, to prevent the tail routing node from frequently sending congestion response packets for the same forwarding path to the head routing node, after generating a congestion response packet for the first forwarding path, the tail routing node needs to determine whether it has sent a congestion response packet for the first forwarding path to the head routing node within the detection period. If so, it means that within the detection period, the tail routing node has already sent a congestion response packet for the first forwarding path to the head routing node, and there is no need to repeatedly send a congestion response packet for the first forwarding path to the head routing node. If not, it means that the tail routing node has not sent a congestion response packet for the first forwarding path to the head routing node within the detection period. Therefore, the tail routing node needs to send a congestion response packet for the first forwarding path to the head routing node, thereby instructing the head routing node to adjust the routing weight of any forwarding path.
[0067] Step 403: The tail routing node does not send a congestion response packet for the first forwarding path to the head routing node.
[0068] Step 404: The tail routing node sends a congestion response packet for the first forwarding path to the head routing node.
[0069] It can be seen from the above steps 401 to 404 that considering that if congestion response packets for the same forwarding path occur frequently, it will lead to aggravated congestion of the forwarding path. After generating a congestion response packet for the first forwarding path, the tail routing node first determines whether it has sent a congestion response packet for the same forwarding path to the head routing node within the detection period, thereby reducing the number of congestion response packets sent without affecting the head routing node's receipt of congestion response packets and avoiding the problem of aggravated congestion of the forwarding path caused by a large number of congestion response packets.
[0070] Optionally, in step 306, after receiving the congestion response packet sent by the tail routing node of the data tunnel, the head routing node adjusts the routing weight of any forwarding path to reduce the traffic to the congested forwarding path subsequently, thereby avoiding the problem of packet loss caused by aggravated congestion. To facilitate understanding of this solution, the following describes how the head routing node adjusts the routing weight of any forwarding path.
[0071] As Figure 5 shown, it is a flowchart of a method for adjusting the routing weight of any forwarding path provided by an embodiment of the present invention. The method includes the following steps:
[0072] Step 501, after receiving the congestion response packet sent by the tail routing node of the data tunnel, the head routing node determines the first forwarding path where congestion occurs.
[0073] In the embodiment of the present invention, after receiving the congestion response packet sent by the tail routing node of the data tunnel, the head routing node determines the first forwarding path where congestion occurs according to the first forwarding path identifier carried in the congestion response packet.
[0074] Step 502, the head routing node reduces the routing weight of the first forwarding path according to the hash policy, and distributes any data packet to any forwarding path according to the transmission rate based on the updated routing weights of each forwarding path.
[0075] In the embodiment of the present invention, the hash policy includes packet-by-packet hashing and flow-by-flow hashing. In a possible case, the head routing node adopts the packet-by-packet hashing method to adjust the routing weight of the first forwarding path according to the speed reduction factor. In another possible case, the head routing node adopts the flow-by-flow hashing method and sets the routing weight of the first forwarding path to the lowest routing weight.
[0076] Since the routing weight of the first forwarding path is reduced, the proportion of the routing weights of each forwarding path in the data tunnel will change. Among them, the proportion of the routing weight of the first forwarding path will become lower, so that the number of data packets entering the first forwarding path subsequently becomes smaller, thereby avoiding the aggravation of congestion in the first forwarding path.
[0077] It should be noted that although the number of data packets entering the first forwarding path becomes smaller, the transmission rate of the first forwarding path remains unchanged, and the head routing node will distribute any data packet to any forwarding path according to the set transmission rate.
[0078] Step 503, within a preset time threshold, determine whether the head routing node receives a congestion response packet carrying the first forwarding path identifier. If so, execute step 502; if not, execute step 504.
[0079] In an embodiment of the present invention, after the head routing node reduces the routing weight of the first forwarding path according to the hash policy, within a preset time threshold, it is determined whether the head routing node receives a congestion response packet carrying the first forwarding path identifier. If so, it indicates that within the preset time threshold, the first forwarding path is still in a congested state, and it is necessary to continue to reduce the routing weight of the first forwarding path to avoid further exacerbation of the congestion of the first forwarding path. If not, it indicates that within the preset time threshold, the congestion condition of the first forwarding path has been resolved.
[0080] Step 504: Increase the routing weight of the first forwarding path, and based on the updated routing weights of each forwarding path, distribute any data packet to any forwarding path according to the transmission rate.
[0081] In an embodiment of the present invention, after the congestion condition of the first forwarding path is resolved, the routing weight of the first forwarding path can be increased to achieve dynamic traffic adjustment.
[0082] It can be seen from the above steps 501 to 504 that after the head routing node determines that the forwarding path with congestion is the first forwarding path, by reducing the routing weight of the first forwarding path, the traffic on the first forwarding path is scheduled to other forwarding paths, so as to reduce the bandwidth utilization rate of the first forwarding path without reducing the data transmission rate of the first forwarding path, thereby solving the problem of reducing the impact of congestion on the first forwarding path.
[0083] Based on the same technical concept, an embodiment of the present application provides a schematic structural diagram of a forwarding path adjustment device, as Figure 6 shown. The device 600 is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is set with a routing weight representing the transmission capacity; the device 600 includes: a first acquisition unit 601 for distributing any data packet to any forwarding path according to the transmission rate set by the data tunnel based on the routing weights of each forwarding path; wherein, at least one data packet is set with a congestion enable flag; a first processing unit 602 for adjusting the routing weight of any forwarding path after receiving a congestion response packet sent by the tail routing node of the data tunnel, and based on the updated routing weights of each forwarding path, distributing any data packet to any forwarding path according to the transmission rate; wherein, the congestion response packet carries a first forwarding path identifier, and the first forwarding path identifier is used to indicate that there is congestion in at least one intermediate routing node on the corresponding first forwarding path; the congestion response packet is generated by the tail routing node based on the congestion indication in the data packet forwarded by the congested intermediate routing node.
[0084] Optionally, the first obtaining unit 601 is specifically configured to: for any data packet, determine a second forwarding path corresponding to the data packet based on the routing weights of each forwarding path according to the transmission rate set by the data tunnel, and after setting the path identifier corresponding to the second forwarding path and the congestion enabling flag in the data packet, send the data packet.
[0085] Optionally, the first processing unit 602 is specifically configured to: reduce the routing weight of the first forwarding path; wherein, the transmission capacity of any forwarding path is determined by the proportion of the routing weight.
[0086] Optionally, the first processing unit 602 is specifically configured to: adjust the routing weight of the first forwarding path according to a deceleration factor in a per-packet hashing manner; or set the routing weight of the first forwarding path to the lowest routing weight in a per-flow hashing manner.
[0087] Optionally, the first processing unit 602 is further configured to: within a preset time threshold, if the head routing node does not receive a congestion response packet carrying the identifier of the first forwarding path, increase the routing weight of the first forwarding path.
[0088] Optionally, the first processing unit 602 is specifically configured to: determine whether the routing weight of the first forwarding path is greater than the original routing weight of the first forwarding path, and if so, stop adjusting the routing weight of the first forwarding path; if not, adjust the routing weight of the first forwarding path according to an acceleration factor.
[0089] Based on the same technical concept, an embodiment of the present application provides a schematic structural diagram of a forwarding path adjustment device, as Figure 7 shown, the device 700 is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is provided with a routing weight representing the transmission capacity; the device 700 includes: a second obtaining unit 701 for receiving a data packet distributed by the head routing node of the data tunnel; the head routing node distributes data packets based on the routing weights of each forwarding path; a second processing unit 702 for determining whether it is in a congested state after determining that the data packet carries a congestion enabling flag; if in a congested state, set a congestion indication in the data packet and send it to the tail routing node of the data tunnel; the congestion indication is used to notify the tail routing node to generate a congestion response packet for the forwarding path; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path.
[0090] Based on the same technical concept, an embodiment of the present application provides a schematic structural diagram of a forwarding path adjustment device, as Figure 8As shown, the apparatus 800 is applied to a data tunnel including multiple forwarding paths; wherein, each forwarding path is set with a routing weight characterizing the transmission capacity; the apparatus 800 includes: a third obtaining unit 801 for receiving a data packet forwarded by an intermediate routing node on any one of the forwarding paths; a third processing unit 802 for generating a congestion response packet for the forwarding path and sending the congestion response packet to the head routing node of the data tunnel when it is determined that the data packet carries a congestion indication; the congestion indication is added when at least one intermediate routing node on the forwarding path determines that there is congestion in itself; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any one of the forwarding paths.
[0091] Based on the same technical concept, an embodiment of the present application provides a computing device 900, as Figure 9 shown, including at least one processor 901 and a memory 902 connected to the at least one processor. In the embodiment of the present application, the specific connection medium between the processor 901 and the memory 902 is not limited. Figure 9 Taking the example that the processor 901 and the memory 902 are connected by a bus. The bus can be divided into an address bus, a data bus, a control bus, etc.
[0092] In the embodiment of the present application, the memory 902 stores instructions executable by the at least one processor 901. The at least one processor 901 can execute the steps of the above forwarding path adjustment method by executing the instructions stored in the memory 902.
[0093] Wherein, the processor 901 is the control center of the computing device, and can connect various parts of the computing device by using various interfaces and lines. By running or executing the instructions stored in the memory 902 and calling the data stored in the memory 902, the processing of the forwarding path adjustment method can be realized.
[0094] Optionally, the processor 901 may include one or more processing units. The processor 901 may integrate an application processor and a modulation and demodulation processor. Among them, the application processor mainly processes the operating system, user interface, application programs, etc., and the modulation and demodulation processor mainly processes wireless communication. It can be understood that the above modulation and demodulation processor can also be integrated into the processor 901. In some embodiments, the processor 901 and the memory 902 can be implemented on the same chip, and in some embodiments, they can also be separately implemented on independent chips.
[0095] The processor 901 may be a general-purpose processor, such as a central processing unit (CPU), a digital signal processor, an application specific integrated circuit (ASIC), a field programmable gate array, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, and can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the method disclosed in combination with the embodiments of the present application may be directly embodied as being executed and completed by a hardware processor, or may be executed and completed by a combination of hardware and software modules in the processor.
[0096] The memory 902, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules. The memory 902 may include at least one type of storage medium, for example, it may include flash memory, hard disk, multimedia card, card-type memory, random access memory (RAM), static random access memory (SRAM), programmable read only memory (PROM), read only memory (ROM), electrically erasable programmable read-only memory (EEPROM), magnetic memory, magnetic disk, optical disc, and so on. The memory 902 is any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer device, but is not limited thereto. The memory 902 in the embodiments of the present application may also be a circuit or any other device capable of implementing a storage function, for storing program instructions and / or data.
[0097] Based on the same inventive concept, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program executable by a computer device. When the program runs on the computer device, it causes the computer device to execute the steps of the forwarding path adjustment method.
[0098] Based on the same inventive concept, an embodiment of the present application provides a computer program product, which stores a computer program executable by a computer device. When the program runs on the computer device, it causes the computer device to execute the steps of the forwarding path adjustment method.
[0099] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code.
[0100] The present application is described with reference to the flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, as well as the combination of flows and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing devices to generate a machine, such that the instructions executed by the processor of the computer or other programmable data processing devices generate means for implementing the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.
[0101] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, such that the instructions stored in the computer-readable memory generate a manufactured article including instruction means that implement the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.
[0102] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process, and thus the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.
[0103] Obviously, those skilled in the art can make various modifications and variations to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application is also intended to include these modifications and variations.
Claims
1. A forwarding path adjustment method, characterized in that: Applied to a data tunnel including a plurality of forwarding paths; wherein each forwarding path is provided with a routing weight representing a transmission capability; the method comprising: The head routing node of the data tunnel distributes any data packet to any forwarding path according to the transmission rate set by the data tunnel based on the routing weight of each forwarding path; wherein a congestion enabling flag is set in at least one data packet; After receiving the congestion response packet sent by the tail routing node of the data tunnel, the head routing node adjusts the routing weight of any forwarding path, and distributes any data packet to any forwarding path according to the transmission rate based on the updated routing weight of each forwarding path; wherein the congestion response packet carries a first forwarding path identifier, and the first forwarding path identifier is used to indicate that at least one intermediate routing node on the corresponding first forwarding path is congested; the congestion response packet is generated by the tail routing node based on the congestion indication in the data packet forwarded by the intermediate routing node with congestion.
2. The method according to claim 1, characterized in that Based on the routing weights of the forwarding paths, distributing any data packet to any forwarding path according to the transmission rate set by the data tunnel includes: For any data packet, based on the routing weights of each forwarding path, the second forwarding path corresponding to the data packet is determined according to the transmission rate set by the data tunnel, and the path identifier corresponding to the second forwarding path and the congestion enable flag are set in the data packet before sending the data packet.
3. The method according to claim 1, characterized in that Adjust the routing weight of any forwarding path, including: The routing weight of the first forwarding path is reduced; wherein the transmission capacity of any forwarding path is determined by the proportion of the routing weight.
4. The method according to claim 3, characterized in that Reducing the routing weight of the first forwarding path includes: Adopting a packet-by-packet hashing method to adjust the routing weight of the first forwarding path according to the speed reduction factor; or The routing weight of the first forwarding path is set to the lowest routing weight by adopting a flow-by-flow hashing method.
5. The method according to claim 3, characterized in that After reducing the routing weight of the first forwarding path, the method further includes: If the head routing node does not receive the congestion response packet carrying the first forwarding path identifier within a preset time threshold, the routing weight of the first forwarding path is increased.
6. The method according to claim 5, characterized in that Increasing the routing weight of the first forwarding path includes: Determine whether the routing weight of the first forwarding path is greater than the original routing weight of the first forwarding path. If so, stop adjusting the routing weight of the first forwarding path; if not, adjust the routing weight of the first forwarding path according to the speed-up factor.
7. A forwarding path adjustment method, characterized in that: Applied to a data tunnel including a plurality of forwarding paths; wherein each forwarding path is provided with a routing weight representing a transmission capability; the method comprising: An intermediate routing node on any forwarding path receives a data packet distributed from a head routing node of the data tunnel; the head routing node distributes the data packet based on the routing weight of each forwarding path; After determining that the data packet carries a congestion enable flag, the intermediate routing node determines whether the intermediate routing node is in a congested state; If it is in a congested state, a congestion indication is set in the data packet and sent to the tail routing node of the data tunnel; the congestion indication is used to notify the tail routing node to generate a congestion response packet for the forwarding path; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path.
8. A forwarding path adjustment method, characterized in that: Applied to a data tunnel including a plurality of forwarding paths; wherein each forwarding path is provided with a routing weight representing a transmission capability; the method comprising: The tail routing node of the data tunnel receives a data packet forwarded by an intermediate routing node on any forwarding path; When the tail routing node determines that the data packet carries a congestion indication, it generates a congestion response packet for the forwarding path and sends the congestion response packet to the head routing node of the data tunnel; the congestion indication is added when at least one intermediate routing node on the forwarding path determines that it is congested; the congestion response packet is used to instruct the head routing node to adjust the routing weight of any forwarding path.
9. A forwarding path adjustment device, characterized in that: Applicable to a data tunnel including a plurality of forwarding paths; wherein each forwarding path is provided with a routing weight representing a transmission capability; the device comprises: The first acquisition unit is used to distribute any data packet to any forwarding path according to the transmission rate set by the data tunnel based on the routing weight of each forwarding path; wherein a congestion enable flag is set in at least one data packet; The first processing unit is used to adjust the routing weight of any forwarding path after receiving a congestion response packet sent by the tail routing node of the data tunnel, and distribute any data packet to any forwarding path according to the transmission rate based on the updated routing weights of each forwarding path; wherein the congestion response packet carries a first forwarding path identifier, and the first forwarding path identifier is used to indicate that at least one intermediate routing node on the corresponding first forwarding path is congested; the congestion response packet is generated by the tail routing node based on the congestion indication in the data packet forwarded by the intermediate routing node with congestion.
10. A computing device, characterized in that include: Memory for storing computer programs; A processor, configured to call a computer program stored in the memory, and execute the steps of the method according to any one of claims 1 to 6 according to the obtained program.
Citation Information
Patent Citations
Packet routing method, system, device and method, system for selecting backup resource
CN101399746A
Route adjustment method and apparatus, and electronic device
CN117081984A
Negotiation method and device for preventing Hash polarization
CN117319299A
Communication method, source device, forwarding device, readable storage medium and program product
CN118869619A
Enhancement of explicit congestion notification (ECN) for wireless network applications
US6741555B1