Flow congestion control method and device
By filtering out fault-free links in the routing network and adjusting bandwidth priorities, the problem of low bandwidth utilization in traffic congestion control is solved, achieving more efficient bandwidth utilization and traffic allocation.
Patent Information
- Application Number
- CN202410605225.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-15
- Publication Date
- 2025-11-18
AI Technical Summary
Existing technologies have low bandwidth utilization during traffic congestion control, especially in the event of link failure, leading to a decrease in traffic throughput.
By acquiring link information from routing nodes in the routing network, links that have not experienced failures are filtered out, and flow control information is determined based on the link number to maintain the bandwidth of links that have not experienced failures unchanged. With different priority levels for link bandwidth adjustment strategies, intelligent traffic allocation is achieved.
It improves the bandwidth utilization of the routing network during traffic congestion control, avoids the reduction in bandwidth utilization caused by link failures, and improves the overall traffic throughput.
Smart Images

Figure CN120980018A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of communication, and in particular to a traffic congestion control method and device. BACKGROUND
[0002] For a network with few flows and large packets (such as an artificial intelligence generated content (AIGC) network), a per-flow load balancing strategy usually cannot meet the requirements of traffic balancing, so a per-packet load balancing strategy can be used to meet the requirements of traffic balancing.
[0003] In addition, when the network is congested due to link failure, the congestion can be avoided by reducing the speed of the sending end (i.e., reducing the traffic sending rate of the sending end). For example, as shown in FIG. 1, if one link between the spine 1 and the leaf 2 is disconnected, there is only one 100G link between the spine 1 and the leaf 2. There are two links between the spine 2 and the leaf 2, which can still provide a bandwidth of 200G. The traffic from the leaf 1 to the leaf 2 through the spine 1 will trigger an egress congestion on the spine 1, and the leaf 1 ingress (or sending end) needs to be reduced to 100G to avoid congestion. Figure 1
[0004] However, the per-packet load balancing strategy will reduce the speed of all traffic sent by the sending end, i.e., the uplink traffic of the leaf 1 is reduced at the same time. For example, assuming that the traffic from the leaf 1 to the leaf 2 through the spine 1 and the spine 2 is balanced enough, since the bandwidth from the leaf 1 to the leaf 2 through the spine 1 is only 100G, the traffic from the leaf 1 to the leaf 2 through the spine 2 will also be reduced to 100G, i.e., the total bandwidth is only 200G.
[0005] As can be seen, although the spine 1 and the spine 2 can provide a bandwidth of 300G to the leaf 2, only a bandwidth of 200G can be used at most. Therefore, the above traffic congestion control method will cause the traffic throughput to decrease, thereby causing the bandwidth utilization to be low. SUMMARY
[0006] Embodiments of the present application provide a traffic congestion control method and device to improve the problem of low bandwidth utilization in traffic congestion control.
[0007] In a first aspect, embodiments of the present application provide a traffic congestion control method applied to a first routing node in a routing network, and the method comprises:
[0008] obtain link information of M links from the first routing node to a second routing node in the routing network, wherein the first routing node is an upper-level routing node of the second routing node, each link information is used to indicate whether a corresponding link fails, and M is an integer greater than 0;
[0009] determine, based on the M link information, traffic control information of a third routing node in the routing network, wherein the third routing node is a lower-level routing node of the first routing node, there are N links without link failure between the third routing node and a fourth routing node in the routing network, the fourth routing node is a same-level routing node of the first routing node, N is an integer greater than 0, and the traffic control information is used to indicate that bandwidths corresponding to the N links remain unchanged.
[0010] In a second aspect, an embodiment of the present application provides a traffic congestion control device applied to a first routing node in a routing network, and the device comprises:
[0011] an information obtaining module, configured to obtain link information of M links from the first routing node to a second routing node in the routing network, wherein the first routing node is an upper-level routing node of the second routing node, each link information is used to indicate whether a corresponding link fails, and M is an integer greater than 0;
[0012] an information processing module, configured to determine, based on the M link information, traffic control information of a third routing node in the routing network, wherein the third routing node is a lower-level routing node of the first routing node, there are N links without link failure between the third routing node and a fourth routing node in the routing network, the fourth routing node is a same-level routing node of the first routing node, N is an integer greater than 0, and the traffic control information is used to indicate that bandwidths corresponding to the N links remain unchanged.
[0013] In an optional embodiment, when the information obtaining module obtains the link information of the M links from the first routing node to the second routing node in the routing network, the information obtaining module is specifically configured to:
[0014] determine, from a load sharing group of the first routing node, the M links from the first routing node to the second routing node, and obtain the link information of the M links.
[0015] In an optional embodiment, the load sharing group further comprises at least one link between a fifth routing node and the first routing node in the routing network, wherein the fifth routing node is a same-level routing node of the second routing node.
[0016] In an optional embodiment, when the information processing module determines, based on the M link information, the traffic control information of the third routing node in the routing network, the information processing module is specifically configured to:
[0017] Based on the M link information, K links without link failure are selected from the M links; wherein K is an integer greater than 0 and less than or equal to M;
[0018] The M links are respectively numbered; wherein the link number of each of the K links is less than the link number of each of the M-K links other than the K links in the M links;
[0019] The traffic control information is determined based on the link number of each of the M links.
[0020] In an optional embodiment, when the traffic control information is determined based on the link number of each of the M links, the information processing module is specifically configured to:
[0021] For the link number of each of the M links, the following operations are respectively performed:
[0022] If the link number of the first link is less than or equal to the first number threshold, the link priority of the first link is determined as the first priority; wherein the first priority is used to indicate that the bandwidth corresponding to the first link remains unchanged, and the first link is any one of the M links;
[0023] If the link number of the first link is greater than the first number threshold, the link priority of the first link is determined as the second priority; wherein the second priority is used to indicate that the bandwidth corresponding to the first link is 0, and the second priority is lower than the first priority.
[0024] In an optional embodiment, the second priority is determined by the information processing module according to the routing attribute of the first routing node.
[0025] In an optional embodiment, when the traffic control information is determined based on the link number of each of the M links, the information processing module is specifically configured to:
[0026] For the link number of each of the M links, the following operations are respectively performed:
[0027] Based on the hash value generated based on the address prefix of the second routing node, the link number of the second link, and the second number threshold, the link priority of the second link is determined; wherein the second link is any one of the M links.
[0028] In an optional embodiment, when the traffic control information is determined based on the link number of each of the M links, the information processing module is specifically configured to:
[0029] For the link number of each of the M links, the following operations are respectively performed:
[0030] determine a link priority of a third link based on a link number of the third link, an interface tag of the second routing node, and a third number threshold, wherein the third link is any one of the M links, and the interface tag is used to indicate a group attribute of the second routing node.
[0031] In an optional embodiment, when determining the traffic control information of the third routing node in the routing network based on the M link information, the information processing module is specifically configured to:
[0032] determine the bandwidth corresponding to each of the M links based on the M link information;
[0033] perform descending arrangement on the obtained M bandwidths to obtain a bandwidth sequence of the M links;
[0034] determine the traffic control information based on the bandwidth sequence and a bandwidth threshold set for the N links.
[0035] In a third aspect, an electronic device is provided, which includes a processor and a memory. The memory stores a computer program. When the computer program is executed by the processor, the processor performs the steps of any of the above traffic congestion control methods.
[0036] In a fourth aspect, a computer readable storage medium is provided, which includes a computer program. When the computer program is run on an electronic device, the computer program is used to make the electronic device perform the steps of any of the above traffic congestion control methods.
[0037] In a fifth aspect, a computer program product is provided, which includes a computer program stored in a computer readable storage medium. When a processor of an electronic device reads the computer program from the computer readable storage medium, the processor executes the computer program, so that the electronic device performs the steps of any of the above traffic congestion control methods.
[0038] The present application has the following advantages:
[0039] In the traffic congestion control method provided in the present application, a first routing node in a routing network can acquire link information of M links from the first routing node to a second routing node in the routing network, wherein each link information is used to indicate whether a corresponding link fails; then, based on the M link information, traffic control information of a third routing node in the routing network can be determined. In this way, since the traffic control information can be used to indicate that the bandwidth corresponding to N links between the third routing node and a fourth routing node in the routing network, which do not fail, remains unchanged, the problem of low bandwidth utilization rate during traffic congestion control can be improved, thereby improving the bandwidth utilization rate in the routing network.
[0040] Other features and advantages of the present application will be set forth in the following description, and in part will become apparent to those skilled in the art from the description, or can be learned by practice of the present application. The objects and other advantages of the present application can be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings. BRIEF DESCRIPTION OF DRAWINGS
[0041] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiment description will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained from these drawings without creative labor. In the drawings:
[0042] Figure 1 A schematic diagram of a routing network architecture applicable to the embodiments of the present application;
[0043] Figure 2 A flowchart of a traffic congestion control method provided by the embodiments of the present application;
[0044] Figure 3 A schematic diagram of a link between a spine and a leaf provided by the embodiments of the present application;
[0045] Figure 4 A logic diagram for determining traffic control information provided by the embodiments of the present application;
[0046] Figure 5 A schematic diagram of a specific application scenario based on the traffic congestion control method provided by the embodiments of the present application; Figure 2
[0047] Figure 6 A schematic diagram of a traffic congestion control device provided by the embodiments of the present application;
[0048] Figure 7 A schematic diagram of an electronic device provided by the embodiments of the present application. DETAILED DESCRIPTION
[0049] In order to make the purposes, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments described in the present application document, all other embodiments obtained by a person of ordinary skill in the art without creative labor fall within the scope of protection of the technical solutions of the present application.
[0050] It should be noted that, in the description of the present application, “multiple” is understood as “at least two”. “And / or” describes the association relationship of the associated objects, which means that there can be three relationships, for example, A and / or B can represent the following three cases: A exists alone, A and B exist together, and B exists alone. A is connected with B, which means that A is directly connected with B and A is connected with B through C. In addition, in the description of the present application, “first”, “second”, etc. are used only for the purpose of distinguishing the description, and cannot be understood as indicating or implying relative importance, nor can it be understood as indicating or implying order.
[0051] In addition, in the technical solutions of the present application, the collection, transmission and use of data all meet the requirements of relevant national laws and regulations.
[0052] The following explains some technical terms in the embodiments of the present application, so as to facilitate the understanding of those skilled in the art.
[0053] (1) Border Gateway Protocol (BGP): It is a protocol used to exchange routing information in the Internet, which is used to exchange routing information between different autonomous systems (AS). It can help routers find the best path in the Internet so that data packets can be quickly and accurately transmitted to the destination.
[0054] (2) Greedy algorithm: It can also be called greedy algorithm, which is an algorithm that always makes the best choice at the moment when solving a problem.
[0055] (3) Multi-exit discriminator (MED): It is a routing attribute used in BGP, which is used to help AS choose the best path.
[0056] Further, based on the above explanations of the terms and related terms, the design idea of the embodiments of the present application will be briefly introduced as follows:
[0057] The flow congestion control method provided in the embodiments of the present application can be applied to a routing network as shown in Figure 1 The routing network includes two spines (spine 1 and spine 2), three leaves (leaf 1, leaf 2 and leaf 3) and three servers (server 1, server 2 and server 3). There are two links between each spine and each leaf, and each leaf is connected to one server.
[0058] The embodiments of the present application do not make any limitation on the number of communication devices involved in the above routing network and the specific connection relationship. For example, there can be more leaves, or fewer leaves, or other devices are also included. For another example, there can be three links between each spine and each leaf, that is, multiple links between the spine and the leaf provide bandwidth. As shown in Figure 1 The above communication devices and their respective functions are briefly introduced as follows.
[0059] The spine is a core switch in a data center network, and is usually used to build a high-performance and scalable network architecture. It has high bandwidth and low delay characteristics, and is used to connect multiple leaves and provide high-speed data transmission and forwarding functions horizontally. The spine is responsible for realizing the high availability and fault tolerance of the data center network, and realizes load balancing and redundancy through a multi-path network architecture.
[0060] The leaf is a next-level switch connected to the spine, and is used as an entry point to connect servers and other network devices. It is responsible for providing an interface to the data center network and providing network connections for servers and other devices. The leaf usually has more ports to support the connection of multiple servers and devices, and provides high-bandwidth and low-latency data forwarding capabilities.
[0061] The server can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms. The embodiments of the present application do not make any limitation on this.
[0062] It should be noted that the server can act as both a flow sending end and a flow receiving end, that is, the role of the server as a flow sending end or a flow receiving end is relative.
[0063] In an alternative implementation, the routing network described above can further include a non-leaf node that is not in the set of leaf nodes Figure 1 An access switch (i.e., access) is shown, which is the lowest level switch connected to the leaf, mainly used to connect to user devices and terminal devices (e.g., computers, printers, etc.). The access provides an access point for a local area network (LAN) and is responsible for transmitting data of the user device to the leaf or other network devices. It usually has a small number of ports and is suitable for connecting personal devices and small-scale networks.
[0064] The hierarchical design enables the data center network to achieve high performance, scalability and flexibility. The connection between the spine and the leaf utilizes multi-path technology, which can provide high throughput and redundancy to meet the needs of the data center network, and the access is responsible for connecting user devices to the network. In addition, the aforementioned spine, leaf or access and the server can be regarded as routing nodes in the routing network.
[0065] Further, when there is no link failure in the routing network, spine1 can normally advertise the route from leaf2 to leaf1 and leaf3 through 2 BGP neighbors (e.g. Figure 1 As shown, there are 2 links between each spine and each leaf and 2 BGP neighbors are established. After receiving the routes transmitted by spine1 and spine2, leaf1 can guide the traffic to leaf2 to be balanced on the 4 links of leaf1 and spine1\spine2, so as to achieve the purpose of maximum bandwidth utilization. For example, if it is assumed that each link in Figure 1 carries a load of 100G, a total load of 400G is carried. It should be understood that the aforementioned 100G link refers to a link standard with a transmission rate of 100 gigabits per second (100Gbps).
[0066] As shown in Figure 1 When one link between spine1 and leaf2 is disconnected (i.e., there is a partial link), since the 2 links between spine1 and leaf1 are not disconnected, leaf1 still attempts to publish 400G traffic to spine1 and spine2, at this time leaf1 publishes 200G traffic through spine1, but only 100G can be actually exported.
[0067] Optionally, when link failures such as optical module failures, switch port failures, etc. occur in the data center network, a switch (e.g., Figure 1downlink asymmetry, thus causing traffic congestion at the egress port of the switch.
[0068] After the adjustment of the per-packet load balancing strategy (i.e., traffic congestion control), the bandwidth of each link is simultaneously reduced, and the publishing traffic is reduced to 50G per link from leaf1 to spine, i.e., leaf1 only sends 100G traffic to spine1, to ensure that spine1 does not have traffic congestion.
[0069] However, using the above traffic congestion control method, although the link bandwidth from spine2 to leaf2 is normal, leaf1 still publishes only 50G per link to spine2 due to the per-packet balancing effect. It can be seen that although spine1 and spine2 can provide 300G bandwidth to leaf2, only 200G bandwidth can be used at most. Therefore, the traffic throughput is reduced, resulting in low bandwidth utilization.
[0070] Therefore, in order to improve the problem of low bandwidth utilization during traffic congestion control, the present application provides a traffic congestion control method, which can be applied to the first routing node (e.g., spine1) in the routing network as shown in Figure 1 The method can include the following steps: obtaining link information of M links from the first routing node to a second routing node (e.g., leaf2); wherein the first routing node can be the upper-level routing node of the second routing node, each link information is used to indicate whether the corresponding link fails, and M is an integer greater than 0; then, determining traffic control information of a third routing node (e.g., leaf1) based on the M link information; wherein the third routing node can be the lower-level routing node of the first routing node, and there are N links between the third routing node and a fourth routing node (e.g., spine2) that do not fail, the fourth routing node can be the same-level routing node as the first routing node, N is an integer greater than 0, and the traffic control information is used to indicate that the bandwidths corresponding to the N links remain unchanged.
[0071] The traffic congestion control method provided by the exemplary embodiments of the present application will be described below in conjunction with the above routing network and with reference to the accompanying drawings. It should be noted that the above routing network is only shown for the purpose of facilitating the understanding of the spirit and principles of the present application, and the embodiments of the present application are not limited in this respect.
[0072] Referring to Figure 2 Fig. 1 shows a flowchart of the traffic congestion control method provided by the embodiments of the present application, taking the first routing node in the routing network as the execution subject. The specific implementation process of the method is as follows:
[0073] S201: Obtain link information of M links from the first routing node to a second routing node in a routing network.
[0074] Optionally, the first routing node can be a higher-level routing node of the second routing node, for example, Figure 1 spine1 in the figure is a higher-level routing node of leaf2, each link information can be used to indicate whether the corresponding link fails, and M is an integer greater than 0.
[0075] For example, referring to Figure 3 the figure, taking the first routing node as spine A, the second routing device as leaf a, and there being four links (i.e., Link1-4) between spine A and leaf a as an example, spine A can obtain or perceive the link information of the four links respectively, so as to determine whether the four links respectively fail according to the obtained four link information, for example, spine A can determine that Link1, Link2 and Link4 are normal links (i.e., links that do not fail) and Link3 is an abnormal link (i.e., a link that fails) according to the obtained four link information; in this way, subsequent traffic congestion control information can be determined according to whether the four links fail.
[0076] In an optional implementation, when step S201 is performed, the first routing node can determine M links from the first routing node to the second routing node from a load sharing group of the first routing node, and then obtain the link information of the M links; wherein the load sharing group can include all links between the first routing node and the second routing node.
[0077] For example, if the first routing node is a spine and the second routing node is a leaf, the first routing node can set the BGP neighbors of the second routing node in the same load sharing group; for another example, if the first routing node is a leaf and the second routing node is a multi-homed server (for example, VM1 is dual-homed to leaf1 and leaf2), that is, in the case of server multi-homing leaf, the BGP neighbors corresponding to the multi-homed leaf (for example, one or more links between VM1 and leaf1 and one or more links between VM1 and leaf2) can be set in the same load sharing group, so optionally, in the embodiment of the application, the above-mentioned load sharing group can also include at least one link between the fifth routing node and the first routing node in the above-mentioned routing network; wherein the fifth routing node can be a peer routing node of the second routing node.
[0078] S202: Determine traffic control information of a third routing node in the routing network based on the M link information.
[0079] Optionally, the third routing node can be a next-level routing node of the first routing node, for example, Figure 1 leaf1 in the figure is a next-level routing node of spine1, and there are N links (i.e., N normal links) between leaf1 and a fourth routing node in the routing network, the fourth routing node and the first routing node can be sibling routing nodes, for example, Figure 1 spine1 and spine2 in the figure are sibling routing nodes, N is an integer greater than 0, and the traffic control information can be used to indicate that the bandwidths corresponding to the aforementioned N links remain unchanged.
[0080] Based on the above manner, since the traffic control information can be used to indicate that the bandwidths corresponding to the aforementioned N links remain unchanged, the problem of low bandwidth utilization rate during traffic congestion control can be improved, thereby improving the bandwidth utilization rate in the routing network during traffic congestion.
[0081] In order to ensure that the traffic control information determined by the first routing node can improve the utilization rate of bandwidth during traffic congestion control, referring to Figure 4 , the first routing node can filter out K links without link failure from M links based on M link information, i.e., filter out K links with normal links from the aforementioned M links, and then number the aforementioned M links respectively, so as to determine the traffic control information based on the link numbers of the aforementioned M links.
[0082] Wherein, K is an integer greater than 0 and less than or equal to M, and the link numbers of the K links are less than the link numbers of the M-K links other than the K links in the M links. For example, assuming that the link numbers of the K links are 1, 2,..., K in turn, the link numbers of the M-K links can be K+1, K+2,..., M in turn. In this way, the first routing node can automatically assign a unique number to each UP BGP neighbor member (i.e., each link) in the same load sharing group, for example, the number value can be from 1 to the total number M of UP neighbors in the load sharing group.
[0083] For the case that the next hop path of the routing is from the same load sharing group, when there is a BGP neighbor member disconnected in the load sharing group, the first routing node can publish the corresponding routing (i.e., the disconnected BGP neighbor) to other BGP neighbors, for example, BGP neighbor A.
[0084] Of course, in the embodiments of the present application, the links between any two adjacent routing nodes can also be numbered, which is not limited in the embodiments of the present application.
[0085] In an optional implementation, when determining the traffic control information based on the link numbers of the M links, the first routing node can perform the following operations for the link numbers of the M links respectively: if the link number of the first link is less than or equal to the first number threshold, the first routing node can determine that the link priority of the first link is the first priority; wherein the first priority is used to indicate that the bandwidth corresponding to the first link remains unchanged, and the first link can be any one of the M links.
[0086] Optionally, the first number threshold can be determined according to the number of links without link failure in the M links, for example, the first number threshold can be the number K of links without link failure in the M links. For example, assuming that there are 5 links between the first routing node and the second routing node, of which 3 links are normal links, the first number threshold can be 3.
[0087] For another example, assuming that there are 2 links between the first routing node and the second routing node, of which 1 link is a normal link, and since the second routing node is the next hop routing node of the first routing node, the first number threshold can be the number of routing next hops, i.e., 1.
[0088] If the link number of the first link is greater than the first number threshold, the first routing node can determine that the link priority of the first link is the second priority; wherein the second priority is used to indicate that the bandwidth corresponding to the first link is 0, and the second priority is lower than the first priority. Therefore, when the link priority of the first link is the second priority, the first link can be regarded as a low-priority route; similarly, when the link priority of the first link is the first priority, the first link can be regarded as a high-priority route or a normal-priority route.
[0089] For example, assuming that there are two BGP neighbors (i.e., two links) in the load sharing group, and the BGP neighbor A is included in the load sharing group, the first routing node can determine the link priority (or routing priority) of the BGP neighbor A according to the member number (i.e., the link number) i of the load sharing group where the BGP neighbor A is located. Optionally, if i <= the number of routing next hops, the first routing node can determine that the link priority of the BGP neighbor A is the first priority; otherwise, if i > the number of routing next hops, the first routing node can determine that the link priority of the BGP neighbor A is the second priority.
[0090] In an optional implementation, the second priority can be determined according to a routing attribute of the first routing node, where the routing attribute can be a local priority (local pref) or a MED attribute, etc. For example, if the link priority of the first link is the second priority, the first link can be a route (or link) with a lower local pref value or a route (or link) with a higher MED value. The embodiments of the present application do not make specific limitations on the routing attribute, i.e., the routing attribute can also be other parameters.
[0091] Based on the traffic congestion control method steps S201-S202 described above, referring to FIG. 2, taking the first routing node spine1, the second routing node leaf2, the third routing node leaf1, the fourth routing node spine2, and the leaf3 having two normal links with the spine1 and the spine2 as an example, the leaf1 can receive one low-priority (i.e., the second priority) route or link to the leaf2 from the spine1, one normal-priority (i.e., the first priority) route or link to the leaf2, and two normal routes or links to the leaf2 from the spine2. Further, the leaf1 can guide the traffic to the normal-priority route in a priority manner, at this time, the leaf1 can guide 100G traffic to the spine1 and 200G traffic to the spine2, so as to ensure that the leaf1 can still publish 100G traffic to each link of the spine2 to the leaf2, and is not inhibited due to the failure of the spine1 and the leaf2 (i.e., the failure link between the spine1 and the leaf2), thereby improving the bandwidth utilization of the routing network. Figure 5 In an optional implementation, when determining the traffic control information based on the link numbers of the M links, the first routing node can perform the following operations for the link numbers of the M links respectively: determining the link priority of the second link based on the hash value generated based on the address prefix of the second routing node, the link number of the second link, and the second number threshold, where the second link is any one of the M links. In this way, the link number can be determined according to the address prefix, so as to realize secondary balancing on the link where the traffic needs to be guided. It should be noted that the second link can be the first link, or the second link can not be the first link; and the determination manner of the second number threshold can be the same as the determination manner of the first number threshold, which is not limited in the embodiments of the present application.
[0092]
[0093] For example, for the case that there are multiple servers under the link failure leaf, for example, the routing node at the same level as the first routing node is a leaf, and the routing node at the same level as the second routing node is a server, the first routing node can distribute different server access traffic in different link combinations, and can generate a hash value (i.e., Hash value) according to the address prefix of the second routing node, so as to determine the link priority of the second link according to the hash value, the link number of the second link, and the second number threshold.
[0094] Specifically, still taking the case that there are two BGP neighbors (i.e., two links) in the load sharing group, and the BGP neighbor A is included in the load sharing group as an example, for example, if the link number of the foregoing BGP neighbor A satisfies ((i-1+Hash value) % total number of UP neighbors of the load sharing group where the BGP neighbor A is located +1) <= number of next hops of the route, the first routing node can determine that the link priority of the BGP neighbor A is the first priority; otherwise, the first routing node can determine that the link priority of the BGP neighbor A is the second priority.
[0095] Since the Hash value generated according to the address prefix of the second routing node may have a conflict situation, for example, the same Hash value may be generated according to the address prefix of the routing node at the same level as the second routing node, in order to be more balanced (i.e., to avoid the foregoing problem), in an optional implementation, the first routing node can perform the following operations for the link number of each of the M links respectively: determining the link priority of the third link based on the link number of the third link, the interface label of the second routing node, and the third number threshold; wherein the third link is any one of the M links, and the interface label is used to indicate the group attribute of the second routing node, that is, the community extended attribute of BGP. In this way, according to the interface label, secondary balancing can be realized on the link that needs to be offloaded. It should be noted that the third link can be the first link or the second link, or the third link can not be the first link or the second link; and the determination manner of the foregoing third number threshold can be the same as the determination manner of the first number threshold or the second number threshold, and the embodiments of the present application are not limited in this regard.
[0096] For example, assuming that the first routing node is a leaf and the second routing node is a server connected to the leaf, the leaf can assign a Tag value (i.e., an interface tag) to the interface of the server, and can carry the Tag value on the route corresponding to the address of the server by extending the community attribute, so that the interface tag can be used to indicate the community attribute of the server, to ensure that the leaf can subsequently determine the link priority of the third link according to the link number, the interface tag of the server, and the third number threshold. Alternatively, the determination of the link priority of the third link can be implemented by the upper spine of the leaf, to save the resource overhead of the leaf.
[0097] Specifically, still taking the case where there are two BGP neighbors (i.e., two links) in the load sharing group and the load sharing group includes BGP neighbor A as an example, and alternatively, if the link number of the BGP neighbor A satisfies ((i-1+Tag) % total number of UP neighbors of the load sharing group where the BGP neighbor A is located +1) <= number of next hops of the route, the first routing node can determine that the link priority of the BGP neighbor A is the first priority; otherwise, the first routing node can determine that the link priority of the BGP neighbor A is the second priority.
[0098] For the case where each link between the spine and the leaf is not of the same bandwidth, the interface bandwidth needs to be added to the calculation, for example, to calculate the neighbor combination of the routes to be announced (i.e., to implement the selection of the combination of links that need to be routed) by using the greedy algorithm. Therefore, in an alternative implementation, when determining the traffic control information of the third routing node in the routing network based on the M link information, the first routing node can determine the bandwidth corresponding to each of the M links based on the M link information, sort the obtained M bandwidths in descending order to obtain the bandwidth sorting of the M links, and determine the traffic control information based on the bandwidth sorting and the bandwidth threshold set for the N links.
[0099] For example, assuming that the first routing node is a spine and the second routing node is a leaf under the spine, the spine can arrange the link bandwidths corresponding to the BGP neighbor pairs in the load sharing group in descending order to obtain an ordered UP BGP neighbor list in the load sharing group; further, the spine can record the current total bandwidth of the announced load sharing group route as Cur_b, and traverse the ordered UP BGP neighbor list in the load sharing group. For a certain BGP neighbor, if the link bandwidth of the BGP neighbor + Cur_b <= the total bandwidth of the route next hop path (i.e., the bandwidth threshold), it can be determined and / or announced that the BGP neighbor is a normal priority route, and Cur_b is updated as Cur_b + the link bandwidth of the BGP neighbor; otherwise, it can be determined and / or announced that the BGP neighbor is a low priority route.
[0100] Based on the above four ways of determining the link priority according to the link number, the first routing node can assign a load sharing group to the BGP neighbor and automatically number the BGP neighbor according to the established BGP neighbor in the load sharing group. When the load sharing group of the route source has some member BGP neighbors disconnected or has a fault, and the route is distributed to other load sharing groups, the numbering of the BGP neighbor in this load sharing group can be used to determine whether to distribute normal priority routes to part of the BGP neighbors in this load sharing group or to distribute low priority routes (i.e., when the first routing node announces the route or the link priority to the second routing node, it is based on the load sharing group to determine whether to announce, whether to announce the route or the link priority to a certain load sharing group, and whether to announce normal priority routes or low priority routes to the BGP neighbors in the load sharing group), so that the other routing nodes can automatically perceive the link fault between the first routing node and the second routing node, and then intelligently share the proportion of traffic to different routing nodes to prevent the first routing node from having an egress congestion (i.e., traffic congestion) situation.
[0101] In an optional implementation, the first routing node can also not distribute or announce the link priority of the link between the first routing node and the second routing node, or after distributing or announcing the link priority, issue indication information indicating the revocation of the corresponding link priority (i.e., the route of the BGP neighbor).
[0102] Still as Figure 5As shown, based on the above manner, spine1 can advertise low-priority route and normal-priority route of the route from leaf2 (link priority of two links between spine1 and leaf2 respectively) to leaf1 and leaf3, so that leaf1 and leaf3 can share the traffic accessing the server under leaf2 to spine1 and spine2 at a ratio of 1:2, thereby ensuring that the traffic outlet of spine1 to leaf2 is not congested.
[0103] For the case of link failure between leaf and spine, the overall bandwidth utilization of the traffic of leaf1 to leaf2 through spine1 / spine2 is improved from 1 / 2 to 3 / 4, and this effect will be improved with the increase of the number of spines, for example, the bandwidth utilization can be improved from 3 / 6 to 5 / 6 when there are 3 spines; for another example, the bandwidth utilization can be improved from 4 / 8 to 7 / 8 when there are 4 spines, and so on.
[0104] In summary, in the traffic congestion control method provided in the present application, the first routing node in the routing network can obtain link information of M links from the first routing node to a second routing node in the routing network, wherein each link information is used to indicate whether the corresponding link fails; then, the traffic control information of a third routing node in the routing network can be determined based on the M link information. In this way, since the traffic control information can be used to indicate that the bandwidth corresponding to N links between the third routing node and a fourth routing node in the routing network, which do not fail, remains unchanged, the problem of low bandwidth utilization during traffic congestion control can be improved, thereby improving the bandwidth utilization in the routing network.
[0105] Further, based on the same technical concept, the present application provides a traffic congestion control device for implementing the above method flow of the present application. Referring to Figure 6 As shown, the traffic congestion control device includes an information acquisition module 601 and an information processing module 602, wherein:
[0106] The information acquisition module 601 is configured to obtain link information of M links from a first routing node to a second routing node in a routing network; wherein the first routing node is an upper-level routing node of the second routing node, each link information is used to indicate whether the corresponding link fails, and M is an integer greater than 0;
[0107] The information processing module 602 is configured to determine, based on the M pieces of link information, the traffic control information of a third routing node in the routing network; the third routing node is a next-level routing node of the first routing node, and there are N pieces of link information between the third routing node and a fourth routing node in the routing network, the fourth routing node is a same-level routing node of the first routing node, N is an integer greater than 0, and the traffic control information is used to indicate that bandwidths corresponding to the N pieces of link information remain unchanged.
[0108] In an optional embodiment, when the information acquisition module 601 acquires the link information of the M pieces of link information from the first routing node to a second routing node in the routing network, the information acquisition module 601 is specifically configured to:
[0109] determine, from the load sharing group of the first routing node, the M pieces of link information from the first routing node to the second routing node, and acquire the link information of the M pieces of link information.
[0110] In an optional embodiment, the load sharing group further includes at least one piece of link information between a fifth routing node and the first routing node in the routing network; the fifth routing node is a same-level routing node of the second routing node.
[0111] In an optional embodiment, when the information processing module 602 determines the traffic control information of the third routing node in the routing network based on the M pieces of link information, the information processing module 602 is specifically configured to:
[0112] filter, based on the M pieces of link information, K pieces of link information from the M pieces of link information, where K is an integer greater than 0 and less than or equal to M;
[0113] perform link numbering on the M pieces of link information respectively; where the link number of each of the K pieces of link information is less than the link number of each of the M-K pieces of link information other than the K pieces of link information in the M pieces of link information;
[0114] determine the traffic control information based on the link number of each of the M pieces of link information.
[0115] In an optional embodiment, when the information processing module 602 determines the traffic control information based on the link number of each of the M pieces of link information, the information processing module 602 is specifically configured to:
[0116] perform the following operations on the link number of each of the M pieces of link information respectively:
[0117] if the link number of the first link is less than or equal to a first number threshold, determine that the link priority of the first link is a first priority; where the first priority is used to indicate that the bandwidth corresponding to the first link remains unchanged, and the first link is any one of the M pieces of link information;
[0118] If the link number of the first link is greater than the first number threshold, the link priority of the first link is determined as a second priority; wherein the second priority is used to indicate that the bandwidth corresponding to the first link is 0, and the second priority is lower than the first priority.
[0119] In an optional embodiment, the second priority is determined by the information processing module 602 according to the routing attribute of the first routing node.
[0120] In an optional embodiment, when determining the traffic control information based on the link numbers of the M links respectively, the information processing module 602 is specifically configured to:
[0121] For the link numbers of the M links respectively, the following operations are performed respectively:
[0122] Based on the hash value generated based on the address prefix of the second routing node, the link number of the second link, and the second number threshold, the link priority of the second link is determined; wherein the second link is any one of the M links.
[0123] In an optional embodiment, when determining the traffic control information based on the link numbers of the M links respectively, the information processing module 602 is specifically configured to:
[0124] For the link numbers of the M links respectively, the following operations are performed respectively:
[0125] Based on the link number of the third link, the interface label of the second routing node, and the third number threshold, the link priority of the third link is determined; wherein the third link is any one of the M links, and the interface label is used to indicate the group attribute of the second routing node.
[0126] In an optional embodiment, when determining the traffic control information of the third routing node in the routing network based on the M link information, the information processing module 602 is specifically configured to:
[0127] Based on the M link information, the bandwidths respectively corresponding to the M links are determined;
[0128] The obtained M bandwidths are arranged in descending order to obtain a bandwidth ranking of the M links;
[0129] Based on the bandwidth ranking and the bandwidth threshold set for the N links, the traffic control information is determined.
[0130] Based on the same technical concept, the embodiments of the present application also provide an electronic device, which can implement the traffic congestion control method flow provided by the above-mentioned embodiments of the present application. In an embodiment, the electronic device can be a server, a terminal device, or other electronic devices. As shown in Figure 7 the electronic device can include:
[0131] The at least one processor 701 and the memory 702 connected with the at least one processor 701 are not limited to the specific connection medium between the processor 701 and the memory 702 in the embodiments of the present application, Figure 7 The connection between the processor 701 and the memory 702 in the embodiments of the present application is taken as an example of connection through the bus 700. The bus 700 is used to connect the processor 701 and the memory 702 in the embodiments of the present application, Figure 7 The connection mode between other components is only schematically illustrated, and is not limited. The bus 700 can be divided into an address bus, a data bus, a control bus, etc. For the convenience of representation, Figure 7 In the embodiments of the present application, the processor 701 can also be called a controller, and the name is not limited.
[0132] In the embodiments of the present application, the memory 702 stores instructions executable by the at least one processor 701. The at least one processor 701 can execute the instructions stored in the memory 702 to perform the flow congestion control method discussed above. The processor 701 can implement the functions of various modules in the apparatus shown in the Figure 6
[0133] The processor 701 is the control center of the apparatus, and can connect each part of the whole control device through various interfaces and lines. The apparatus performs various functions and processes data by running or executing the instructions stored in the memory 702 and calling the data stored in the memory 702, thereby monitoring the whole apparatus.
[0134] In a possible design, the processor 701 can include one or more processing units. The processor 701 can integrate an application processor and a modem processor, where the application processor mainly processes an operating system, a user interface, and an application program, etc., and the modem processor mainly processes wireless communication. It can be understood that the modem processor can also not be integrated into the processor 701. In some embodiments, the processor 701 and the memory 702 can be implemented on the same chip, and in some embodiments, they can also be implemented on independent chips respectively.
[0135] The processor 701 can be a general processor, such as a central processing unit (CPU), a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic component, a discrete hardware component, and can implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general processor can be a microprocessor or any conventional processor. The steps of the flow congestion control method disclosed in the embodiments of the present application can be directly embodied by a hardware processor for execution, or executed by a combination of hardware and software modules in the processor.
[0136] The memory 702 is a non-volatile computer readable storage medium, which can be used to store non-volatile software programs, non-volatile computer executable programs and modules. The memory 702 can include at least one type of storage medium, such as 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 storage, optical disk, etc. The memory 702 is any other medium capable of carrying or storing desired program code in the form of instructions or data structures and capable of being accessed by a computer, but is not limited to this. The memory 702 in the embodiments of the present application can also be a circuit or any other device capable of realizing a storage function, used for storing program instructions and / or data.
[0137] By designing and programming the processor 701, the code corresponding to the flow congestion control method introduced in the foregoing embodiments can be fixed in the chip, so that the chip can execute the steps of the flow congestion control method of the embodiments shown in the running time. Figure 2 How to design and program the processor 701 is a technology known to those skilled in the art, which will not be described here.
[0138] Based on the same inventive concept, the embodiments of the present application also provide a storage medium storing computer instructions, when the computer instructions run on a computer, the computer executes the flow congestion control method discussed above.
[0139] In some possible implementation, the various aspects of the method for flow congestion control provided by the present application can also be implemented as a program product in the form of a computer program product, which includes program codes for causing the control device to perform the steps of the method for flow congestion control according to various exemplary embodiments of the present application described above when the program product is run on an apparatus.
[0140] It should be noted that although several units or sub-units of the apparatus are mentioned in the above detailed description, such division is merely exemplary and not mandatory. Indeed, features and functions of two or more units described above can be embodied in one unit according to the embodiments of the present application. Conversely, a feature or function of one unit described above can be further divided into several sub-units to be embodied by several units.
[0141] Moreover, although the operations of the method(s) according to the present application are described in a particular, sequential order, this order is not meant to be a limitation and is not intended to imply that
[0142] Those of skill in the art would understand that information and signals can be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that can be referenced throughout the above description can be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
[0143] The computer program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flow diagrams and / or block diagrams. Figure 1 The computer program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flow diagrams and / or block diagrams. Figure 1 The computer program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flow diagrams and / or block diagrams.
[0144] The program code may, for example, be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's computing device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device or entirely on the remote computing device or server. The user computing device may be a mobile device, a desktop computer, a laptop computer, a tablet computer, a netbook computer, a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, switch or bridge, or any other computing device capable of executing the program code.
[0145] In the case of using a remote computing device, the remote computing device can be connected to the user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, by using an Internet service provider to connect to the Internet).
[0146] These computer program instructions may also be loaded into a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the operations specified in the flowchart block or blocks. Figure 1 The flowchart blocks or blocks in the flowcharts represent steps in a process or processes and / or functions specified in one or more blocks in the flowcharts. Figure 1 The flowchart blocks or blocks in the flowcharts represent steps in a process or processes and / or functions specified in one or more blocks in the flowcharts.
[0147] Obviously, numerous modifications and variations of the present application are possible in light of the above teachings. It is therefore to be understood that within the scope of the claims and their equivalents, the application can be practiced otherwise than as specifically described.
Claims
1. A flow congestion control method, characterized in that, The first routing node applied in the routing network includes: Obtain link information for M links from the first routing node to the second routing node in the routing network; wherein, the first routing node is the upstream routing node of the second routing node, each link information is used to indicate whether the corresponding link has failed, and M is an integer greater than 0; Based on M link information, the flow control information of the third routing node in the routing network is determined; wherein the third routing node is the next level routing node of the first routing node, and there are N links between it and the fourth routing node in the routing network that have not experienced link failures, the fourth routing node and the first routing node are at the same level, and N is an integer greater than 0, and the flow control information is used to indicate that the bandwidth corresponding to the N links remains unchanged.
2. The method as described in claim 1, characterized in that, The step of obtaining the link information of M links from the first routing node to the second routing node in the routing network includes: From the load-sharing group of the first routing node, determine the M links from the first routing node to the second routing node, and obtain the link information of the M links.
3. The method as described in claim 2, characterized in that, The load-sharing group also includes at least one link between the fifth routing node and the first routing node in the routing network; wherein the fifth routing node is a peer routing node of the second routing node.
4. The method as described in claim 1, 2, or 3, characterized in that, The process of determining the flow control information of the third routing node in the routing network based on M link information includes: Based on the M link information, K links that have not experienced link failures are selected from the M links; wherein, K is an integer greater than 0 and less than or equal to M; Each of the M links is assigned a link number; wherein the link number of each of the K links is less than the link number of each of the MK links other than the K links in the M links. The flow control information is determined based on the link number of each of the M links.
5. The method as described in claim 4, characterized in that, Determining the flow control information based on the link numbers of the M links includes: For each of the M links, perform the following operations: If the link number of the first link is less than or equal to the first number threshold, then the link priority of the first link is determined to be the first priority; wherein, the first priority is used to indicate that the bandwidth corresponding to the first link remains unchanged, and the first link is any one of the M links; If the link number of the first link is greater than the first number threshold, then the link priority of the first link is determined to be the second priority; wherein, the second priority is used to indicate that the bandwidth corresponding to the first link is 0, and the second priority is lower than the first priority.
6. The method as described in claim 5, characterized in that, The second priority is determined based on the routing attributes of the first routing node.
7. The method as described in claim 5, characterized in that, Determining the flow control information based on the link numbers of the M links includes: For each of the M links, perform the following operations: The link priority of the second link is determined based on the hash value generated by the address prefix of the second routing node, the link number of the second link, and the second number threshold; wherein the second link is any one of the M links.
8. The method as described in claim 5, characterized in that, Determining the flow control information based on the link numbers of the M links includes: For each of the M links, perform the following operations: The link priority of the third link is determined based on the link number of the third link, the interface label of the second routing node, and the third number threshold; wherein the third link is any one of the M links, and the interface label is used to indicate the community attribute of the second routing node.
9. The method as described in claim 4, characterized in that, The process of determining the flow control information of the third routing node in the routing network based on M link information includes: The bandwidth corresponding to each of the M links is determined based on the M link information; The obtained M bandwidths are sorted in descending order to obtain the bandwidth order of the M links; The traffic control information is determined based on the bandwidth sorting and the bandwidth thresholds set for the N links.
10. A flow congestion control device, characterized in that, The first routing node applied in the routing network includes: The information acquisition module is used to acquire link information of M links from the first routing node to the second routing node in the routing network; wherein, the first routing node is the upper-level routing node of the second routing node, each link information is used to indicate whether the corresponding link has failed, and M is an integer greater than 0; The information processing module is used to determine the flow control information of the third routing node in the routing network based on M link information; wherein the third routing node is the next-level routing node of the first routing node, and there are N links between it and the fourth routing node in the routing network that have not experienced link failures, the fourth routing node and the first routing node are peer routing nodes, the N is an integer greater than 0, and the flow control information is used to indicate that the bandwidth corresponding to the N links remains unchanged.