Link congestion processing method, communication system, and related apparatus
By obtaining link quality information on the traffic inlet device and performing automatic traffic adjustment, the problem that the backbone network cannot automatically sense and handle link congestion is solved, and fast and effective traffic adjustment and network stability are achieved.
Patent Information
- Application Number
- PCT/CN2024/104294
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-17
- Filing Date
- 2024-07-08
- Publication Date
- 2025-05-22
AI Technical Summary
In the case where multiple links between the backbone core and the metropolitan core are congested but not all fail, the backbone network cannot automatically sense congestion or failure, resulting in the inability to automatically redistribute the load sharing ratio, resulting in traffic still being congested.
By acquiring link quality information on the traffic inlet device, it is determined based on the information whether the traffic adjustment condition is met, and when the conditions are met, the target traffic on the first link is adjusted to the second link. This method does not require additional configuration for all network devices, and does not rely on other devices, making it simple to deploy.
It effectively alleviates the problem of network congestion between domains, realizes automatic traffic adjustment, avoids inefficiency and errors in manual adjustment, and does not cause the entire network of routes to flood.
Smart Images

Figure CN2024104294_22052025_PF_FP_ABST
Abstract
Description
Link congestion processing method, communication system and related devices
[0001] This application claims priority to Chinese patent application number 202311548166.2, filed on November 17, 2023, entitled “Link congestion processing method, communication system and related devices”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a link congestion processing method, a communication system and related devices. Background Art
[0003] As networks continue to develop, users are placing increasing demands on network stability and reliability. To address this, network deployment often involves deploying multiple links to the same destination. If some of these links become congested or fail, traffic anomalies caused by the congestion or failure can be mitigated by diverting traffic from the congested or failed link to other links.
[0004] Taking the metropolitan area network (MAN) and backbone network as examples, the MAN includes multiple core devices, such as core routers (CRs), and the backbone network also includes multiple core devices. For ease of description, the core devices in the MAN are referred to as the metro core, and the core devices in the backbone network are referred to as the backbone core. Typically, the MAN is connected to multiple backbone cores in the backbone network via multiple MAN cores. One or more links can be deployed between each MAN core and each backbone core. Consequently, the multiple links between the MAN and the backbone network can be used to share traffic according to load balancing ratios. If some of these links become congested or fail, traffic on the congested or failed links can be diverted to other links.
[0005] However, if multiple links between a backbone core and a metro core are congested but not completely faulty, the backbone network cannot automatically detect the congestion or fault, and thus cannot automatically redistribute the load sharing ratio, resulting in continued traffic congestion between the backbone core and the metro core. Manually adjusting the load sharing ratio is inefficient and prone to errors. How to quickly alleviate inter-domain link congestion is a hot topic in the industry.
[0006] Summary of the Invention
[0007] This application provides a link congestion processing method, communication system, and related devices that can effectively alleviate inter-domain network congestion problems without requiring additional configuration of all network devices on the link. The method is simple to deploy and easy to promote and implement. Furthermore, traffic can be adjusted without requiring load balancing on multiple links, without causing network-wide flooding. The technical solution is as follows:
[0008] In a first aspect, a link congestion processing method is provided, which is applied to a first network device, the first network device belongs to a first network, the first network also includes a second network device, the first network device and the second network device are traffic entry devices of the first network, the first network device is connected to a third network device in the second network via a first link, and the second network device is connected to a fourth network device in the second network via a second link; the method includes: obtaining first quality information and second quality information, the first quality information includes quality information of the first link, and the second quality information includes quality information of the second link; if it is determined based on the first quality information and the second quality information that the traffic adjustment condition is met, the target traffic on the first link is adjusted to the second link.
[0009] The traffic entry device in the first network can obtain the quality information of the link between the first network and the second network, determine the congestion situation based on the quality information, and adjust the traffic in the event of link congestion. This solution does not require additional configuration of all network devices on the link, and only requires corresponding configuration of the traffic entry device in the first network. This solution does not rely on other devices, is simple to deploy, and is easy to promote and implement. This solution also does not require the routes on multiple links to form load sharing, which solves the problem that related technologies cannot adjust traffic in non-load-sharing scenarios. In addition, this solution does not require frequent changes in routes, so it will not cause network-wide flooding of routes.
[0010] Optionally, the first network device is further connected to a fourth network device via a third link, and the second network device is further connected to the third network device via a fourth link. The method further includes obtaining third quality information and fourth quality information, where the third quality information includes quality information of the third link, and the fourth quality information includes quality information of the fourth link. The third quality information and the fourth quality information are also used to determine whether the traffic adjustment condition is met. In other words, this solution is also applicable to more complex network architectures.
[0011] Optionally, the first network further includes a fifth network device, and the first network device is further connected to the fifth network device via a fifth link. The method further includes: obtaining fifth quality information, where the fifth quality information includes quality information of the fifth link, and the fifth quality information is also used to determine whether the traffic adjustment condition is met. In other words, the quality information of the links within the first network can also serve as reference information for traffic adjustment.
[0012] Optionally, an external border gateway protocol (EBGP) neighbor relationship is established between the first network device and the third network device, and between the second network device and the fourth network device; and / or, an internal border gateway protocol (IBGP) neighbor relationship is established between the first network device and the second network device, and between the third network device and the fourth network device.
[0013] Optionally, the second quality information is acquired through Border Gateway Protocol-Link State (BGP link state, LS) routing.
[0014] The quality information includes one or more of bandwidth information, packet loss rate, link delay, and link congestion status.
[0015] Optionally, the bandwidth information includes total bandwidth and / or bandwidth occupancy.
[0016] First, the flow adjustment conditions are introduced.
[0017] Optionally, the traffic adjustment condition includes that the first quality information exceeds a first threshold, that is, the link connected to the third network device is congested.
[0018] Optionally, the traffic adjustment condition includes that a difference between the first quality information and the second quality information exceeds a second threshold, that is, there is space on the second link that can share the traffic on the first link.
[0019] Optionally, the traffic adjustment condition includes the absence of a routing adjustment policy generated by the second network device on the first network device, the routing adjustment policy being used to alleviate congestion on the link between the first network and the second network through traffic adjustment, for example, adjusting part of the traffic on the second link to the first link. The routing adjustment policy is triggered to be generated by the second network device when the second link is congested. If the routing adjustment policy generated by the second network device exists on the first network device, then traffic will flow to the first network device according to the routing adjustment policy on the first network device, and the first network device will likely also adjust this traffic, thus causing a traffic adjustment conflict. Therefore, to prevent traffic adjustment conflicts, the traffic adjustment condition also includes the absence of a routing adjustment policy generated by the second network device on the first network device.
[0020] Next, we will introduce how to determine the target flow that needs to be adjusted.
[0021] Optionally, the quality information includes total bandwidth and bandwidth occupancy; the first network device adjusts the target traffic on the first link to the second link, including: determining a traffic adjustment value based on the total bandwidth and bandwidth occupancy in the first quality information and the second quality information; determining a first target flow based on the traffic adjustment value, wherein the traffic value of the first target flow matches the traffic adjustment value; and adjusting the first target flow to the second link. Specifically, the traffic adjustment value is first determined based on the link bandwidth information, and then the first target flow is determined based on the traffic adjustment value. The target traffic includes the traffic of the first target flow.
[0022] The first network device determines a traffic adjustment value based on the total bandwidth and bandwidth occupancy rate in the first quality information and the second quality information, including: determining a bandwidth ratio between the first link and the second link based on the total bandwidth in the first quality information and the second quality information; determining a first adjustment value based on the bandwidth ratio and the total bandwidth and bandwidth occupancy rate in the first quality information and the second quality information, wherein the first adjustment value satisfies that after adjusting the traffic on the first link with a total size of the first adjustment value to the second link, the traffic between the first link and the second link still satisfies the bandwidth ratio; and determining the traffic adjustment value based on the first adjustment value. Specifically, an adjustment target is first determined based on the bandwidth ratio, the adjustment target being the first adjustment value, and then the traffic adjustment value is determined based on the adjustment target.
[0023] The first network device determines the traffic adjustment value based on the first adjustment value, including: determining a second adjustment value corresponding to each link based on a first threshold and the total bandwidth and bandwidth occupancy of each link in at least one link connected to the fourth network device, where the first threshold is a threshold used to determine link congestion; and determining the minimum of the first adjustment value and the second adjustment value corresponding to the at least one link as the traffic adjustment value. That is, to avoid over-adjustment, the bandwidth information of each link should be considered when determining the second adjustment value, and the minimum adjustment value should be selected as the traffic adjustment value.
[0024] The first network device determines the first target flow based on the traffic adjustment value, including selecting N flows ranked first from the at least one flow in descending order of traffic volume as the first target flow, where the total traffic volume of the N flows does not exceed the traffic adjustment value, where N is a positive integer. Specifically, to adjust as few flows as possible, the flows to be adjusted may be selected in descending order of traffic volume, thereby minimizing the impact on the flows.
[0025] Optionally, the total size of the N flows does not exceed α times the flow adjustment value, where α is greater than 0 and less than 1. That is, to avoid over-adjustment, it is not necessary to adjust all flows that may need to be adjusted in one flow adjustment process.
[0026] Optionally, the first network device adjusting the target traffic on the first link to the second link includes: lowering the priority of a first target route sent by the first network device to the second network, where the prefix of the first target route is the destination address of the target traffic. In other words, the first network device adjusts the target traffic on the first link to the second link by lowering the routing priority of the flow corresponding to the target traffic on the first network device.
[0027] Optionally, the first network device adjusts the target traffic on the first network device to the second link, including: sending a route adjustment policy to the second network device, the route adjustment policy instructing the second network device to increase the priority of a second target route sent by the second network device to the second network, where the prefix of the second target route is the destination address of the target traffic. In other words, the first network device may also instruct the second network device to increase the route priority of the flow corresponding to the target traffic on the second network device through the route adjustment policy.
[0028] It can be seen that this solution can achieve traffic adjustment by modifying the routing priority. The link congestion handling function in this solution can be configured on the traffic entry device in the first network. There is no need to perform additional configuration on all network devices on the link. In related technologies, it is necessary to configure and publish the Link Bandwidth extended group attribute for each node device on the path through which the traffic passes. Therefore, this solution does not rely on other devices, is simple to deploy, and is easy to promote and implement.
[0029] The routing adjustment policy is sent via routing policy distribution (RPD).
[0030] Optionally, the target route is sent via Border Gateway Protocol (BGP) routing.
[0031] The above introduces the implementation process of the first network device performing traffic adjustment. In this application, the second network device can also implement traffic adjustment according to the principles of the above implementation process, which will not be repeated here.
[0032] When congestion on the first link is resolved, the first network device can restore some or all of the traffic that was redirected to the second link back to the first link, thereby reducing the burden on the second link. The following describes the traffic restoration process.
[0033] Optionally, the method further includes: if it is determined based on the first quality information and the second quality information that the traffic recovery condition is met, the first network device recovering part or all of the target traffic from the second link to the first link.
[0034] Optionally, the traffic recovery condition includes that the first quality information is lower than a third threshold, that is, the link connected to the third network device is no longer congested.
[0035] Optionally, the traffic recovery condition includes the second quality information exceeding a fourth threshold, and / or the difference between the second quality information and the first quality information exceeding a fifth threshold. In other words, the link connected to the fourth network device is congested, and / or there is space on the first link that can share traffic on the second link.
[0036] Among them, the first network device restores part or all of the target traffic from the second link to the first link, including: selecting the top M flows from the flows corresponding to the target traffic in order of traffic from small to large as the second target flows, where M is a positive integer; and restoring the second target flows from the second link to the first link. That is, considering that both the first link and the second link are not congested at this time, in order to prevent traffic oscillations caused by adjusting too much traffic, that is, to prevent large traffic fluctuations, the flows that need to be restored are selected in order of traffic from small to large. In addition, in order to avoid excessive restoration, part of the flows in the first target flow can be restored to the first link during a traffic recovery process. If the first link continues to be uncongested, the remaining flows in the first target flow can be gradually restored to the first link through subsequent traffic recovery processes.
[0037] Optionally, the total size of the M flows does not exceed a sixth threshold. That is, in order to avoid excessive restoration, the flow restoration value may be constrained by a threshold.
[0038] Optionally, the method further includes: if an abnormal situation occurs during the traffic adjustment process, exiting the traffic adjustment process; wherein the abnormal situation includes at least one of the following: traffic on the second link is being adjusted to the first link; or the connection between the first network device and the third network device is interrupted. In other words, the first network device can also promptly stop traffic adjustment in the event of a traffic adjustment conflict or device connection interruption to avoid wasting computing resources.
[0039] In a second aspect, a communication device is provided, comprising a processor and a memory, wherein the memory is configured to store a program for executing the link congestion handling method provided in the first aspect, as well as data used to implement the link congestion handling method provided in the first aspect. The processor is configured to execute the program stored in the memory. The communication device may further comprise a communication bus for establishing a connection between the processor and the memory. Optionally, the communication device is configured to implement part or all of a communication device (e.g., a network device).
[0040] In a third aspect, a link congestion processing device is provided, wherein the link congestion processing device has the function of implementing the link congestion processing method described in the first aspect. The link congestion processing device includes one or more modules, which are used to implement the link congestion processing method described in the first aspect.
[0041] In a fourth aspect, a communication system is provided, which includes a first network device and a second network device, wherein the first network device and the second network device are traffic entry devices of the first network, the first network device is connected to a third network device in the second network through a link, and the second network device is connected to a fourth network device in the second network through a link; the first network device is used to execute the steps of the link congestion handling method described in the first aspect above.
[0042] In a fifth aspect, a computer-readable storage medium is provided, wherein instructions are stored in the computer-readable storage medium. When the computer-readable storage medium is run on a computer, the computer executes the link congestion processing method described in the first aspect.
[0043] In a sixth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the link congestion processing method described in the first aspect.
[0044] The technical effects obtained in the above-mentioned second to sixth aspects are similar to the technical effects obtained by the corresponding technical means in the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] FIG1 is a system architecture diagram of a link congestion processing method provided in an embodiment of the present application;
[0046] FIG2 is a system architecture diagram of another link congestion processing method provided in an embodiment of the present application;
[0047] FIG3 is a system architecture diagram of another congestion handling method provided in an embodiment of the present application;
[0048] FIG4 is a system architecture diagram of another congestion handling method provided in an embodiment of the present application;
[0049] FIG5 is a system architecture diagram of another congestion handling method provided in an embodiment of the present application;
[0050] FIG6 is a flowchart of a link congestion processing method provided by an embodiment of the present application;
[0051] FIG7 is a system architecture diagram of another congestion handling method provided in an embodiment of the present application;
[0052] FIG8 is a flowchart of another link congestion processing method provided in an embodiment of the present application;
[0053] FIG9 is a flowchart of another link congestion processing method provided in an embodiment of the present application;
[0054] FIG10 is a schematic structural diagram of a link congestion processing device provided in an embodiment of the present application;
[0055] FIG11 is a schematic structural diagram of another link congestion processing device provided in an embodiment of the present application;
[0056] FIG12 is a schematic diagram of the structure of a network device provided in an embodiment of the present application;
[0057] FIG13 is a schematic diagram of the structure of another network device provided in an embodiment of the present application;
[0058] FIG14 is a schematic structural diagram of another network device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0059] In order to make the objectives, technical solutions and advantages of the embodiments of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0060] To facilitate understanding, the system architecture and implementation environment involved in the embodiments of the present application are first introduced.
[0061] Figure 1 is a diagram of the system architecture involved in a link congestion handling method provided in an embodiment of the present application. Referring to Figure 1 , the system architecture includes a first network and a second network. The first network includes a first network device and a second network device. The second network includes a third network device and a fourth network device. The first network device is connected to the third network device via a first link, and the second network device is connected to the fourth network device via a second link.
[0062] The first network device and the second network device are traffic ingress devices of the first network, that is, the first network device and the second network device are used to receive data streams (referred to as streams) from the second network. For example, the first network device is used to receive streams sent by the third network device via the first link, and the second network device is used to receive streams sent by the fourth network device via the second link. Correspondingly, the third network device and the fourth network device are traffic egress devices of the second network. For example, the third network device is used to send a portion of the second network stream to the first network device via the first link, and the fourth network device is used to send another portion of the second network stream to the second network device via the second link.
[0063] In some embodiments, the first network device and the second network device can also serve as traffic egress devices for the first network. That is, the first network device and the second network device are also used to forward flows from the first network to the second network. For example, the first network device is also used to send part of the flows from the first network to the third network device via the first link, and the second network device is also used to send another part of the flows from the first network to the fourth network device via the second link. Accordingly, the third network device and the fourth network device are also traffic ingress devices for the second network. For example, the third network device is also used to receive flows sent by the first network device via the first link, and the fourth network device is also used to receive flows sent by the second network device via the second link.
[0064] In the embodiments of the present application, when the first network device and the second network device are traffic ingress devices of the first network, both the first network device and the second network device can adopt this solution to alleviate congestion on the first link and the second link. Similarly, when the third network device and the fourth network device are traffic ingress devices of the second network device, the third network device and the fourth network device can also adopt a similar solution to alleviate congestion on the first link and the second link. Simply put, this solution is applied to traffic ingress devices in the network.
[0065] Optionally, the first link includes at least one link, and the second link also includes at least one link. For example, the first link includes five links, and the second link includes one link. In some embodiments, the multiple links included in the first link are used to load share traffic between the first network device and the third network device. The embodiments of the present application do not limit the load sharing method, and for example, it can be balanced load sharing or unequal cost multi-path (UCMP) load sharing.
[0066] Optionally, the first network device and the second network device are also connected via a link, and / or the third network device and the fourth network device are also connected via a link. In the case where the first network device and the second network device are also connected via a link, the second network device is used to obtain the first quality information sent by the first network device via the link, and the first network device is used to obtain the second quality information sent by the second network device via the link. Of course, regardless of whether a link is established between the first network device and the second network device, the first network device and the second network device can respectively obtain the second quality information and the first quality information through the management device or the control device in the first network. That is to say, in the case where the first network also includes a management device or a control device, the first network device and the second network device report the first quality information and the second quality information to the management device or the control device respectively, and the management device or the control device synchronizes the first quality information to the second network device, and synchronizes the second quality information to the first network device. Among them, the first quality information and the second quality information are quality information of the first link and the second link, respectively.
[0067] It can be seen that the system architecture shown in Figure 1 can be regarded as a U-shaped communication system. The embodiment of the present application can also be applied to a V-shaped communication system. Please refer to Figure 2 to understand the V-shaped communication system.
[0068] Figure 2 is a system architecture diagram of another link congestion handling method provided in an embodiment of the present application. The main difference between the V-shaped communication system shown in Figure 2 and the U-shaped communication system shown in Figure 1 is that the first network device is also connected to the fourth network device via a third link, and the second network device is also connected to the third network device via a fourth link.
[0069] When the first network device and the second network device are traffic ingress devices of the first network, the first network device is further configured to receive another portion of the flow sent by the fourth network device via the third link, and the second network device is further configured to receive another portion of the flow sent by the third network device via the fourth link. When the first network device and the second network device are traffic egress devices of the first network, the first network device is further configured to send another portion of the flow of the first network to the fourth network device via the third link, and the second network device is further configured to send another portion of the flow of the first network to the third network device via the fourth link.
[0070] In some embodiments, the first link and the fourth link are used to share the traffic sent to the third network device according to a first load sharing ratio, and / or the second link and the third link are used to share the traffic sent to the fourth network device according to a second load sharing ratio. The first load sharing ratio and the second load sharing ratio may be the same or different. The load sharing method may be balanced sharing or UCMP, etc. In other embodiments, the first network device and the second network device both send flows to the second network according to the configured routing information, rather than sending flows according to the load sharing ratio, and the configured routing information is used to indicate fixed flow information, that is, the first link, the second link, the third link and the fourth link are all used to send fixed flows.
[0071] Optionally, the third link includes at least one link, and the fourth link also includes at least one link. For example, the third link includes three links, and the fourth link includes one link. In some embodiments, the multiple links included in the third link are used to load share traffic between the first network device and the fourth network device. The embodiments of the present application do not limit the load sharing method, and for example, it can be balanced sharing or UCMP.
[0072] Optionally, the first network device is further configured to obtain third quality information and fourth quality information. The third quality information and the fourth quality information are quality information of the third link and the fourth link, respectively. The first network device may obtain the fourth quality information via the link between the first network device and the second network device, or may obtain the fourth quality information via a management device or a control device. Similarly, the second network device may obtain the third quality information via the link between the first network device and the second network device, or may obtain the third quality information via a management device or a control device.
[0073] An EBGP neighbor relationship is established between the first network device and the third network device, and between the second network device and the fourth network device; and / or an IBGP neighbor relationship is established between the first network device and the second network device, and between the third network device and the fourth network device. That is, the first network and the second network can be connected based on EBGP, and the first network can be connected based on IBGP. Of course, the first network and the second network can also be connected based on other protocols, and the first network can also be connected based on other protocols, which are not limited in this embodiment of the present application. In addition, the embodiment of the present application does not limit the connection method and connection relationship within the second network.
[0074] Taking the EBGP neighbor relationship as an example, the first network device can obtain the first quality information by enabling the BGP egress peer engineering (EPE) function on the third network device. Similarly, the second network device can also obtain the second quality information by enabling the BGP EPE function on the fourth network device, and exchange the second quality information to the first network device. Optionally, the first network device can also obtain the third quality information by enabling the BGP EPE function on the fourth network device. Similarly, the second network device can also obtain the fourth quality information by enabling the BGP EPE function on the third network device, and exchange the fourth quality information to the first network device. Among them, the BGP EPE function is a function defined by rfc9087 and will not be introduced in detail in this article.
[0075] In some embodiments, a BGP-LS address family neighbor relationship is established between the first network device and the second network device. The first network device can obtain the second quality information and / or the fourth quality information through BGP-LS routing. Similarly, the second network device can also obtain the first quality information and the third quality information through BGP-LS routing.
[0076] Optionally, a BGP RPD address family neighbor relationship is established between the first network device and the second network device. The first network device can send a routing adjustment policy to the second network device through RPD routing. The routing adjustment policy is used to alleviate congestion in the link between the first network and the second network.
[0077] The system architectures shown in Figures 1 and 2 can be viewed as a two-core U-shaped communication system and a two-core V-shaped communication system, respectively. That is, the first network device and the second network device are both core devices of the first network, and the third network device and the fourth network device are both core devices of the second network. In addition, this solution can also be applied to U-shaped communication systems with more cores and V-shaped communication systems with more cores, such as a four-core U-shaped communication system and a four-core V-shaped communication system. The specific implementation method of using this solution in a multi-core communication system to alleviate link congestion between core devices is similar to that of a two-core communication system.
[0078] In some embodiments, the first network and the second network may further include more network devices. For example, the first network further includes a fifth network device, which is connected to the first network device via a fifth link. The first network device is further configured to obtain fifth quality information, which is quality information of the fifth link. Optionally, the first network device may also synchronize the fifth quality information to the second network device. The synchronization method may be direct synchronization through the link between the first network device and the second network device, or indirect synchronization through a management device or a control device. For another example, the first network further includes a sixth network device, which is connected to the second network device via a sixth link. The first network device is further configured to obtain sixth quality information, which is quality information of the sixth link. Optionally, the second network device is configured to obtain sixth quality information via the sixth link and synchronize the sixth quality information to the first network device. The synchronization method is similar to the above-mentioned synchronization method and will not be described in detail here.
[0079] Any of the above network devices may be any form of router, switch, bridge or other communication device.
[0080] The first network and the second network can be any type of network, and are not limited in this embodiment of the present application. For example, in one embodiment, the first network is a metropolitan area network, and the second network is a backbone network. In another embodiment, the first network is a convergence network, and the second network is a metropolitan area network. In yet another embodiment, both the first network and the second network are metropolitan area networks.
[0081] For example, if the first network is a metropolitan area network (MAN) and the second network is a backbone network, the first and second network devices are the core devices of the MAN (referred to as the metro core), and the third and fourth network devices are the core devices of the backbone network (referred to as the backbone core). Refer to Figure 3 to understand the networking of the MAN and backbone networks.
[0082] FIG3 is a system architecture diagram of another congestion handling method provided in an embodiment of the present application. The system is a two-core, U-shaped system. Referring to FIG3 , the metropolitan area network includes two core devices, which are two CRs, designated CR1 and CR2. The backbone network also includes two core devices, designated C5 and C6. CR1 is connected to C5 via a link, CR2 is connected to C6 via a link, and CR1 and CR2 are also connected via a link. EBGP neighbor relationships are established between CR1 and C5, and between CR2 and C6. An IBGP neighbor relationship is established between CR1 and CR2.
[0083] In the embodiments of the present application, one of CR1 and CR2 serves as the first network device, and the other serves as the second network device. When CR1 and CR2 serve as the first and second network devices, respectively, C5 and C6 serve as the third and fourth network devices, respectively. When CR1 and CR2 serve as the second and first network devices, respectively, C5 and C6 serve as the fourth and third network devices, respectively. The following descriptions use CR1 and CR2 as the first and second network devices, respectively, and C5 and C6 as the third and fourth network devices, respectively, as examples.
[0084] Both CR1 and CR2 can use this solution to alleviate congestion on the link between the metropolitan area network and the backbone network. For example, if a first link is established between CR1 and C5 using the multiple optical fibers shown in Figure 3, and some of these fibers are disconnected, causing congestion on the first link, CR1 can use this solution to alleviate congestion on the first link.
[0085] In addition to CR1 and CR2, the metropolitan area network also includes other network devices, such as at least one broadband remote access server (BRAS), exemplarily including BRAS1 and BRAS2 as shown in Figure 3. CR1 is connected to both BRAS1 and BRAS2 via links, and CR2 is also connected to BRAS2 via links. In this embodiment of the present application, BRAS1 and BRAS2 serve as the fifth and sixth network devices, respectively.
[0086] In addition to C5 and C6, the backbone network also includes other network devices, such as network devices that have established EBGP neighbor relationships with other metropolitan area networks (MANs), illustratively including D1, D2, D3, and D4 as shown in Figure 3. Other MANs include CR3, CR4, CR5, CR6, and BRAS3 as shown in Figure 3. CR3 and CR4 belong to the same MAN, and CR5, CR6, and BRAS3 belong to the same MAN. This solution can also be applied to these MANs. The backbone network is used to transmit traffic between different MANs.
[0087] Figure 4 is a system architecture diagram for another congestion handling method provided in an embodiment of the present application. Figure 4 also illustrates a dual-core V-shaped communication system. The difference between Figure 4 and Figure 3 is that the backbone network in Figure 4 does not include D1 and D2. Instead, D3 and D4 form a V-shaped network structure with CR3 and CR4. Furthermore, CR3 and CR4 are both connected to BRAS4 and BRAS5.
[0088] Figure 5 is a system architecture diagram of another congestion handling method provided in an embodiment of the present application. Figure 5 differs from Figure 4 in that Figure 5 is a dual-core V-shaped communication system, i.e., CR1 in Figure 5 is also connected to C6 via a link, and CR2 is also connected to C5 via a link.
[0089] The above explains the system architecture involved in the embodiment of the present application using the networking architecture of the metropolitan area network and the backbone network. It should be understood that the network architecture and business scenarios described in the embodiment of the present application are for the purpose of more clearly illustrating the technical solutions of the embodiment of the present application, and do not constitute a limitation on the technical solutions provided in the embodiment of the present application. Ordinary technicians in this field know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiment of the present application are also applicable to similar technical problems.
[0090] Next, the relevant technologies are introduced.
[0091] Currently, multiple links are typically deployed on a network to reach the same destination. If one of these links becomes congested or fails, traffic on that link can be diverted to other links to alleviate the traffic anomaly caused by the congestion or failure.
[0092] Taking the metropolitan area network (MAN) and backbone network as an example, the metro core in the MAN and the backbone core in the backbone network are EBGP neighbors. Typically, the MAN is connected to the backbone cores in the backbone network via multiple MAN cores. One or more links can be deployed between each MAN core and each backbone core. Consequently, the multiple links between the MAN and the backbone network can be used to share traffic according to load balancing ratios. If some of these links become congested or fail, traffic on the congested or failed links can be diverted to other links.
[0093] However, if multiple links between a backbone core and a metro core are congested but not completely faulty, the backbone core and the metro core remain connected, meaning their EBGP neighbor relationship remains intact. Therefore, the backbone network cannot automatically detect the congestion or fault and cannot automatically redistribute the load balancing ratio, causing traffic congestion between the backbone core and the metro core. Manually adjusting the load balancing ratio is inefficient and prone to errors.
[0094] In related technologies, when there are multiple links between domains, each link uses the bandwidth information of the corresponding link as its cost value. The traffic between domains is distributed to multiple links based on the cost value.
[0095] draft-ietf-idr-link-bandwidth defines an extended community attribute called Link Bandwidth. When a route is received from an EBGP neighbor and sent to an IBGP neighbor, this attribute carries the cost value to the EBGP neighbor. This cost value can be based on the EBGP neighbor configuration or derived from the EBGP neighbor's bandwidth information. When there are multiple inter-domain paths and multiple EBGP neighbors between domains, these neighbors will all advertise EBGP routes. The route receiver will receive multiple routes with the same route prefix but different next hops. These routes form load balancing and carry the EBGP neighbor's cost value through the Link Bandwidth extended community attribute. On multiple network devices that are load-sharing, traffic with the same destination address can be load-shared onto multiple inter-domain paths based on the Link Bandwidth attribute and the load-sharing ratio.
[0096] However, in related technologies, each BGP route needs to carry the Link Bandwidth extended community attribute. When the number of routes is large and the link bandwidth changes frequently, it is easy to cause routing flooding throughout the network, resulting in network congestion and other problems. It depends on the nodes on the path through which the traffic passes (such as multiple network devices in the metropolitan area network and multiple devices in the backbone network) to configure and publish the extended community attribute function, and the load sharing node devices must support the function of proportionally sharing the load to multiple cross-domain paths based on the Link Bandwidth attribute. When the BGP routes on multiple paths cannot form load sharing, the traffic cannot be load shared in proportion to the bandwidth.
[0097] In order to solve the above-mentioned problems existing in the related art, the embodiment of the present application provides a new link congestion processing method, which will be introduced in detail below.
[0098] Figure 6 is a flowchart of a link congestion processing method provided in an embodiment of the present application, which is applied to a first network device. The first network device can be any first network device in the system architecture shown in Figures 1 to 5. In an embodiment of the present application, the first network device belongs to a first network, and the first network also includes a second network device. The first network device and the second network device are traffic inlet devices of the first network. The first network device is connected to a third network device in the second network via a first link, and the second network device is connected to a fourth network device in the second network via a second link. Please refer to Figure 6, the method includes the following steps.
[0099] Step 601: Acquire first quality information and second quality information, where the first quality information includes quality information of a first link, and the second quality information includes quality information of a second link.
[0100] The first quality information and the second quality information are used to determine whether the traffic adjustment condition is met. The implementation method for the first network device to obtain the first quality information and the second quality information can refer to the relevant content introduced above and will not be repeated here.
[0101] As can be seen from the above, in some embodiments, the first network device is also connected to the fourth network device via a third link, and the second network device is also connected to the third network device via a fourth link. Therefore, the first network device also obtains third quality information and fourth quality information. The third quality information includes quality information of the third link, and the fourth quality information includes quality information of the fourth link. The third quality information and the fourth quality information are also used to determine whether the traffic adjustment conditions are met. In other words, compared to a U-shaped network architecture, the first network device in a V-shaped network architecture can obtain quality information for more links.
[0102] As can be seen from the above, in some other embodiments, the first network further includes a fifth network device, and the first network device is further connected to the fifth network device via a fifth link. Optionally, the first network device further obtains fifth quality information, which includes quality information of the fifth link. The fifth quality information is also used to determine whether the traffic adjustment conditions are met. In other words, the quality information of the links within the first network can also serve as a basis for determining whether traffic adjustment is necessary.
[0103] In the embodiments of the present application, quality information includes one or more of bandwidth information, packet loss rate, link latency, and link congestion status. Bandwidth information includes total bandwidth and / or bandwidth occupancy. In other words, bandwidth information, packet loss rate, link latency, and link congestion status can all be used to determine whether traffic adjustment conditions are met.
[0104] Step 602: If it is determined based on the first quality information and the second quality information that the traffic adjustment condition is met, the target traffic on the first link is adjusted to the second link.
[0105] First, various implementation methods for determining whether traffic adjustment conditions are met are introduced.
[0106] In a first implementation manner of determining whether a flow adjustment condition is met, the flow adjustment condition includes that the first quality information exceeds a first threshold.
[0107] As can be seen from the above, quality information includes one or more types of information. Therefore, there are also many specific ways to determine whether the flow adjustment conditions are met, which will be introduced below.
[0108] Mode 111: The quality information includes bandwidth occupancy, and the traffic adjustment condition includes that the bandwidth occupancy in the first quality information exceeds a first threshold.
[0109] In the case that the first link includes multiple links, the traffic adjustment condition includes that the total bandwidth occupancy of the multiple links exceeds the first threshold, or includes that the bandwidth occupancy of any one or more links among the multiple links exceeds the first threshold.
[0110] The first threshold value is 80%, 85%, 90% or other values. In order to ensure reliability, the first threshold value can be set to be slightly larger, such as greater than 70%.
[0111] Mode 112: The quality information includes a packet loss rate, and the traffic adjustment condition includes that the packet loss rate in the first quality information exceeds a first threshold.
[0112] In the case that the first link includes multiple links, the traffic adjustment condition includes that the total packet loss rate of the multiple links exceeds the first threshold, or includes that the packet loss rate of any one or more links among the multiple links exceeds the first threshold.
[0113] The first threshold value is 20%, 25%, 30% or other values. In order to ensure reliability, the first threshold value can be set to be slightly smaller, such as greater than 10%.
[0114] It should be understood that the first threshold in method 111 may be different from the first threshold in method 112. For example, the first threshold in method 111 is larger than the first threshold in method 112. This is related to the physical meaning represented by bandwidth occupancy and packet loss rate.
[0115] Mode 113: The quality information includes link delay, and the traffic adjustment condition includes that the link delay in the first quality information exceeds a first threshold.
[0116] In the case that the first link includes multiple links, the traffic adjustment condition includes that the total delay of the multiple links exceeds the first threshold, or includes that the delay of any one or more links among the multiple links exceeds the first threshold.
[0117] The first threshold is 500 milliseconds (ms), 1 second (s) or other values. To ensure reliability, the first threshold can be set according to specific network requirements.
[0118] Mode 114: The quality information includes a link congestion status, and the traffic adjustment condition includes that the link congestion status in the first quality information exceeds a first threshold.
[0119] When the first link includes multiple links, the traffic adjustment condition includes that the congestion status of any one or more than P links among the multiple links exceeds a first threshold, where P is an integer greater than 1 and less than the total number of the multiple links. For example, if the number of the multiple links is 5, P can be set to 2.
[0120] The link congestion state is represented by a state value, such as a first state value or a second state value, where the first state value indicates link congestion and the second state value indicates link non-congestion. The first state value and the second state value can be 1 and 0, respectively, or can be represented by other values. In this case, the first threshold value can be 0.
[0121] Alternatively, the link congestion status is represented by the congestion degree, which is a number greater than 0 and less than 1. In this case, the first threshold is also a number greater than 0 and less than 1. For example, the first threshold here is set in the same way as the first threshold in method 11.
[0122] The quality information in methods 111 to 114 all include one type of information. Next, a case where the quality information includes at least two types of information will be introduced through method 115.
[0123] Mode 115: The quality information includes at least two of the aforementioned multiple types of information, such as bandwidth utilization and packet loss rate, packet loss rate and link delay, link delay and link congestion status, bandwidth utilization and link delay, bandwidth utilization, packet loss rate, and link delay, or other conditions, not listed here. The first network device determines weighted values of the multiple types of information in the first quality information by weighted summation, and the traffic adjustment condition includes the weighted value of the first quality information exceeding a first threshold.
[0124] When the first link includes multiple links, the traffic adjustment condition includes a total weighted value of the multiple links exceeding a first threshold, or includes the weighted value of any one or more of the multiple links exceeding the first threshold. The total weighted value is determined based on at least two pieces of information selected from the group consisting of total bandwidth usage, total packet loss rate, total link delay, and link congestion status.
[0125] The first threshold is 0.7, 0.75 or other values.
[0126] Of course, in addition to the above-described methods 111 to 115, the first network device may also determine whether the traffic adjustment condition is met based on the acquired quality information in other ways.
[0127] In the second implementation of determining whether a traffic adjustment condition is met, the traffic adjustment condition includes a difference between the first quality information and the second quality information exceeding a second threshold, i.e., the quality of the first link is worse than the quality of the second link. In this implementation, there are various specific methods for determining whether the traffic adjustment condition is met, which will be described below.
[0128] Mode 121: The quality information includes bandwidth occupancy, and the traffic adjustment condition includes that a difference between the bandwidth occupancy in the first quality information and the bandwidth occupancy in the second quality information exceeds a second threshold.
[0129] In the case where the first link and / or the second link includes multiple links, the first network device determines the total bandwidth occupancy of the first link based on the bandwidth occupancy of the multiple links in the first quality information, and determines the total bandwidth occupancy of the second link based on the bandwidth occupancy of the multiple links in the second quality information, and the traffic adjustment condition includes that the difference between the total bandwidth occupancy of the first link and the total bandwidth occupancy of the second link exceeds a second threshold, that is, the total bandwidth occupancy of the first link is greater than the total bandwidth occupancy of the second link by at least the second threshold.
[0130] The second threshold is 20%, 25% or other values.
[0131] Mode 122: The quality information includes a packet loss rate, and the traffic adjustment condition includes that a difference between the packet loss rate in the first quality information and the packet loss rate in the second quality information exceeds a second threshold.
[0132] In the case where the first link and / or the second link includes multiple links, the first network device determines the total packet loss rate of the first link based on the packet loss rates of the multiple links in the first quality information, and determines the total packet loss rate of the second link based on the packet loss rates of the multiple links in the second quality information, and the traffic adjustment condition includes that the difference between the total packet loss rate of the first link and the total packet loss rate of the second link exceeds a second threshold, that is, the total packet loss rate of the first link is greater than the total packet loss rate of the second link by at least the second threshold.
[0133] The second threshold is 15% or 20% or other values.
[0134] Mode 123: The quality information includes link delay, and the traffic adjustment condition includes that the difference between the link delay in the first quality information and the link delay in the second quality information exceeds a second threshold.
[0135] In the case where the first link and / or the second link includes multiple links, the first network device determines the total delay of the first link based on the delays of the multiple links in the first quality information, and determines the total delay of the second link based on the delays of the multiple links in the second quality information, and the traffic adjustment condition includes that the difference between the total delay of the first link and the total delay of the second link exceeds a second threshold, that is, the total delay of the first link is greater than the total delay of the second link by at least the second threshold.
[0136] The second threshold is 100ms or 500ms or other values.
[0137] Mode 124: The quality information includes a link congestion status, and the traffic adjustment condition includes that a difference between the link congestion status in the first quality information and the link congestion status in the second quality information exceeds a second threshold.
[0138] In the case where the first link and / or the second link includes multiple links, the first network device determines the total congestion status of the first link based on the congestion status of the multiple links in the first quality information, and determines the total congestion status of the second link based on the congestion status of the multiple links in the second quality information, and the traffic adjustment condition includes that the difference between the total congestion status of the first link and the total congestion status of the second link exceeds a second threshold, that is, the total congestion situation of the first link is higher than the total congestion situation of the second link by at least the second threshold.
[0139] The total congestion status refers to the ratio of the number of congested links in the corresponding multiple links to the total number of the multiple links, and the second threshold is 0.1, 0.2 or other values.
[0140] Alternatively, the total congestion state is represented by a third state value or a fourth state value, where the third state value indicates that any one link in the corresponding plurality of links is congested or any X links are congested, where X is greater than 1 and less than the total number of the plurality of links. For example, if the number of the plurality of links is 5, X is 2. The fourth state value indicates that no link in the corresponding plurality of links is congested or no more than Y links are congested, where Y is greater than 1 and less than the total number of the plurality of links. For example, if the number of the plurality of links is 4, Y is 2. In some embodiments, the third state value and the fourth state value are 1 and 0, respectively, and the second threshold is 1.
[0141] Mode 125: The quality information includes at least two of the aforementioned multiple types of information, such as bandwidth utilization and packet loss rate, or bandwidth utilization, packet loss rate, and link latency, or other conditions, not listed here. The first network device determines weighted values of the multiple types of information in the first quality information by weighted summation, and the traffic adjustment condition includes the weighted value of the first quality information and the weighted value corresponding to the second quality information exceeding a first threshold.
[0142] When the first link and / or the second link includes multiple links, the traffic adjustment condition includes the total weighted value of the quality information of the multiple links in the first quality information and the total weighted value of the quality information of the multiple links in the second quality information exceeding a second threshold, or includes the difference between the weighted value of the quality information of any one or more links in the first quality information and the weighted value of the quality information of any one or more links in the second quality information exceeding the second threshold. The total weighted value is determined based on at least two of the following information: total bandwidth usage, total packet loss rate, total link delay, and link congestion status.
[0143] The second threshold is 0.2, 0.3 or other values.
[0144] Of course, in addition to the above-described methods 121 to 125, the first network device may also determine whether the traffic adjustment condition is met based on the acquired quality information in other ways.
[0145] In some embodiments, the first and second implementations of determining whether a traffic adjustment condition is met may be applied separately or in combination. That is, in some embodiments, the traffic adjustment condition includes the first quality information exceeding a first threshold and the difference between the first quality information and the second quality information exceeding a second threshold. The first quality information exceeding the first threshold indicates congestion on the first link, and the difference between the first quality information and the second quality information exceeding the second threshold indicates that there is space on the second link to share the traffic on the first link.
[0146] In a third implementation method for determining whether traffic adjustment conditions are met, the traffic adjustment conditions, in addition to the traffic adjustment conditions in the first implementation method and / or the second implementation method described above, also include the absence of a routing adjustment policy generated by the second network device on the first network device. The routing adjustment policy is used to alleviate the congestion of the link between the first network and the second network through traffic adjustment. For example, part of the traffic on the second link is adjusted to the first link. The routing adjustment policy is triggered to be generated by the second network device when the second link is congested. For another example, the routing adjustment policy is used to adjust part of the traffic on the second link and / or the third link to the first link and / or the fourth link. Specifically, the routing adjustment policy instructs the first network device to perform corresponding traffic adjustment by modifying the routing priority. The routing adjustment policy is triggered to be generated by the second network device when the second link and / or the third link is congested. If a routing adjustment policy generated by a second network device exists on the first network device, then traffic will flow to the first network device according to the routing adjustment policy. The first network device is likely to adjust the traffic, which will cause a traffic adjustment conflict. Therefore, in order to prevent traffic adjustment conflicts, the traffic adjustment condition also includes the absence of a routing adjustment policy generated by the second network device on the first network device.
[0147] As can be seen from the above, in some embodiments, such as in a dual-core V-shaped communication system, the first network device can also obtain third quality information and fourth quality information, where the third quality information and the fourth quality information respectively include quality information of a third link and a fourth link, where the third link is the link between the first network device and the fourth network device, and the fourth link is the link between the second network device and the third network device. In this case, the above-mentioned traffic adjustment conditions include one or more of the following conditions:
[0148] The first quality information and / or the fourth quality information exceeds a first threshold, that is, the link connected to the third network device is congested;
[0149] The difference between the first quality information and the third quality information exceeds the second threshold, and / or the difference between the second quality information and the fourth quality information exceeds the second threshold; that is, there is space on the link connected to the fourth network device to share the traffic on the link connected to the third network device;
[0150] The routing adjustment policy generated by the second network device does not exist on the first network device.
[0151] It's worth noting that if the first and fourth links are used for load balancing according to the load sharing ratio, then if either link is congested, traffic on the congested link will be transferred to the other link, potentially causing congestion on the fourth link. That is, if the first link is congested, the fourth link is likely to be congested as well, causing both the first and fourth quality information to exceed the first threshold.
[0152] Among them, the specific implementation method of determining whether the third quality information exceeds the first threshold is similar to the specific implementation method of determining whether the first quality information exceeds the first threshold above. The specific implementation method of determining whether the difference between the first quality information and the third quality information exceeds the second threshold and determining whether the difference between the second quality information and the fourth quality information exceeds the second threshold are similar to the specific implementation method of determining whether the difference between the first quality information and the second quality information exceeds the second threshold above, and they will not be repeated here.
[0153] In other embodiments, the first network device can also obtain fifth quality information, which includes quality information of a fifth link, the fifth link being the link between the first network device and the fifth network device. In this case, the traffic adjustment condition, in addition to including one or more of the conditions in the above embodiments, also includes the fifth quality information exceeding a seventh threshold. The seventh threshold may be the same as or different from the first threshold. The specific implementation method for determining whether the fifth quality information exceeds the seventh threshold is similar to the specific implementation method for determining whether the first quality information exceeds the first threshold described above and will not be repeated here.
[0154] In some cases, more than one network device may meet the traffic shaping conditions. For example, if both a first network device and a second network device meet the traffic shaping conditions, in this case, to avoid traffic shaping conflicts, it is necessary to determine one network device from among the multiple network devices that meet the traffic shaping conditions to perform traffic shaping. For example, an election rule can be used to determine one network device from among the first and second network devices to perform traffic shaping. Specifically, the network device that meets the election rule performs traffic shaping. For example, if the first network device meets both the traffic shaping conditions and the election rule, the first network device performs traffic shaping.
[0155] Among them, the election rule includes that the network device with the smallest routing identifier (router-id) among multiple network devices that meet the traffic adjustment conditions performs traffic adjustment. For example, when the routing identifier of the first network device is smaller than the routing identifier of the second network device, the first network device performs traffic adjustment. Alternatively, the election rule includes that the network device with the largest routing identifier among multiple network devices that meet the traffic adjustment conditions performs traffic adjustment. For example, when the routing identifier of the first network device is larger than the routing identifier of the second network device, the first network device performs traffic adjustment. Alternatively, the election rule includes a random selection rule, that is, the network device that needs to perform traffic adjustment is randomly selected from multiple network devices that meet the traffic adjustment conditions. Alternatively, the election rule includes other rules, and the embodiments of the present application do not limit the specific election rules.
[0156] It should be understood that the routing identifier here may not have a special physical meaning. Comparing the size of the routing identifier is a basis for election. In some other embodiments, other information corresponding one-to-one to network devices can also be used as the basis for election. The embodiments of this application do not limit this.
[0157] After determining that traffic adjustment is required according to the method described above, the first network device adjusts the target traffic on the first link to the second link. This will be described below.
[0158] In one implementation, the first network device first determines a flow adjustment value, and then determines a first target flow based on the flow adjustment value. The target flow includes the flow of the first target flow. The flow value of the first target flow matches the flow adjustment value. For example, the flow value of the first target flow does not exceed the flow adjustment value. However, in some cases, the flow value of the first target flow may exceed the flow adjustment value.
[0159] First, the implementation method of determining the flow adjustment value is introduced.
[0160] Since this solution can be applied to various types of system architectures, including U-shaped communication systems and V-shaped communication systems, the following will take a two-core U-shaped communication system and a two-core V-shaped communication system as examples to introduce the implementation method of determining the traffic adjustment value.
[0161] First, the method for determining the flow adjustment value in the dual-core port-type communication system is introduced.
[0162] In a first implementation of determining the traffic adjustment value, the quality information includes total bandwidth and bandwidth occupancy, and the first network device determines the traffic adjustment value based on the total bandwidth and bandwidth occupancy in the first quality information and the second quality information.
[0163] Among them, one implementation method for the first network device to determine the traffic adjustment value based on the total bandwidth and bandwidth occupancy in the first quality information and the second quality information is: based on the total bandwidth in the first quality information and the second quality information, determine the bandwidth ratio between the first link and the second link; based on the bandwidth ratio, and the total bandwidth and bandwidth occupancy in the first quality information and the second quality information, determine the first adjustment value, the first adjustment value satisfying that after the traffic with a total size of the first adjustment value on the first link is adjusted to the second link, the traffic between the first link and the second link still satisfies the bandwidth ratio; based on the first adjustment value, determine the traffic adjustment value.
[0164] In the embodiment of the present application, the total bandwidth and bandwidth occupancy in the first quality information are recorded as X and a respectively, the total bandwidth and bandwidth occupancy in the second quality information are recorded as b and Y respectively, the bandwidth ratio is recorded as λ, and the first adjustment value is recorded as Z1. Then, λ=X / Y, Z1 satisfies (aX-Z1) / (bY+Z1)=λ, that is, Z1=(aXY-bXY) / (X+Y).
[0165] One implementation manner in which the first network device determines the traffic adjustment value based on the first adjustment value is as follows: based on a first threshold and the total bandwidth and bandwidth occupancy of each link in at least one link connected to the fourth network device, a second adjustment value corresponding to each link is determined, where the first threshold is a threshold used to determine link congestion, and the minimum value between the first adjustment value and the second adjustment value corresponding to the at least one link is determined as the traffic adjustment value.
[0166] The first network device multiplies a difference obtained by subtracting the bandwidth occupancy rate of each link from the first threshold by the total bandwidth of the corresponding link to obtain a second adjustment value corresponding to the corresponding link.
[0167] In the absence of the third link, the link connected to the fourth network device is the second link, the second adjustment value is recorded as Z2, the first threshold is recorded as T1, and the traffic adjustment value is recorded as Z. Then, Z2 = (T1-b)*Y, Z = min(Z1, Z2).
[0168] Another implementation manner in which the first network device determines the flow adjustment value based on the first adjustment value is: the first network device determines the first adjustment value as the flow adjustment value. That is, Z=Z1.
[0169] Another implementation manner in which the first network device determines the flow adjustment value based on the first adjustment value is: the first network device uses an average or median value of the second adjustment values corresponding to the first network device and the at least one link as the flow adjustment value.
[0170] Next, a method for determining the flow adjustment value in a dual-core V-shaped communication system is introduced.
[0171] In a dual-core V-shaped communication system, there are also a third link and a fourth link. The first network device determines the bandwidth ratio between the first plane and the second plane based on the total bandwidth in the first quality information, the second quality information, the third quality information, and the fourth quality information. The bandwidth of the first plane includes the sum of the bandwidths of the first link and the fourth link, and the bandwidth of the second plane includes the sum of the bandwidths of the second link and the third link. Based on the bandwidth ratio, as well as the total bandwidth and bandwidth occupancy rate in the first quality information, the second quality information, the third quality information, and the fourth quality information, a first adjustment value is determined.
[0172] Denote the total bandwidth and bandwidth occupancy in the first quality information as X1 and a1, respectively; the total bandwidth and bandwidth occupancy in the second quality information as Y2 and b2, respectively; the total bandwidth and bandwidth occupancy in the third quality information as X2 and a2, respectively; the total bandwidth and bandwidth occupancy in the fourth quality information as Y1 and b1, respectively; the bandwidth ratio as λ; and the first adjustment value as Z1. Then, λ = (X1 + Y1) / (X2 + Y2), and Z1 satisfies (a1X1 + b1Y1 - Z1 - Z2) / (a2X2 + b2Y2 + Z1 + Z2) = λ. That is, Z1 = (a1X12X2 + a1X12Y2 + b1X1X2Y1 + b1X1Y1Y2 - a2X12X2 - a2X1X2Y1 - b2X12Y2 - b2X1Y1Y2) / (X12+Y12+X1Y2+Y1Y2+X1X2+X2Y1+2X1Y1).
[0173] One implementation manner in which the first network device determines the traffic adjustment value based on the first adjustment value is as follows: based on a first threshold and the total bandwidth and bandwidth occupancy of each link in at least one link connected to the fourth network device, a second adjustment value corresponding to each link is determined, where the first threshold is a threshold used to determine link congestion, and the minimum value between the first adjustment value and the second adjustment value corresponding to the at least one link is determined as the traffic adjustment value.
[0174] The first network device multiplies a difference obtained by subtracting the bandwidth occupancy rate of each link from the first threshold by the total bandwidth of the corresponding link to obtain a second adjustment value corresponding to the corresponding link.
[0175] When a third link exists, the links connected to the fourth network device include the second link and the third link. The second adjustment values corresponding to the second link and the third link are respectively recorded as Z21 and Z22. Then, Z21 = (T1-b2)*Y2, Z22 = (T1-a2)*X2, and Z = min(Z1, Z21, Z22).
[0176] Another implementation manner in which the first network device determines the flow adjustment value based on the first adjustment value is: the first network device determines the first adjustment value as the flow adjustment value. That is, Z=Z1.
[0177] Another implementation manner in which the first network device determines the flow adjustment value based on the first adjustment value is: the first network device uses an average or median value of the second adjustment values corresponding to the first network device and the at least one link as the flow adjustment value.
[0178] In addition to the implementation methods described above, the first network device may also determine the traffic adjustment value based on the acquired quality information in other ways. The embodiments of the present application do not introduce all possible implementation methods one by one.
[0179] After determining the traffic adjustment value, the first network device determines a first target flow according to the traffic adjustment value, and the traffic value of the first target flow matches the traffic adjustment value. That is, the first network device determines the first target flow from at least one flow on the first network device.
[0180] One implementation method for the first network device to determine the first target flow based on the traffic adjustment value is to select, in descending order of traffic volume, N flows ranked first from the at least one flow as the first target flow, where the total traffic volume of these N flows does not exceed the traffic adjustment value, where N is a positive integer. Specifically, by selecting flows to be adjusted in descending order of traffic volume, a smaller number of flows can be adjusted while ensuring that link congestion is maintained, thereby minimizing the impact on flows.
[0181] In some other embodiments, the first network device may also determine the first target flow from the at least one flow in other ways, such as by random selection or selection according to a flow identifier.
[0182] Optionally, to ensure that the adjustment is not excessive, the total size of the N flows does not exceed α times the flow adjustment value, where α is greater than 0 and less than 1. For example, α is 0.5 or 0.7 or other values.
[0183] In addition to determining the first target flow by determining the flow adjustment value, the first network device can also determine the first target flow according to the set flow adjustment step (also called flow adjustment unit). For example, the first network device determines at least one flow on the first network device whose sum of flows is close to the flow adjustment step as the first target flow, wherein the absolute value of the difference between the sum of flows and the flow adjustment step is less than the first tolerance value. In addition, in order to adjust as few flows as possible, the number of first target flows should be as small as possible. Among them, when multiple flow combinations all meet the condition of the first tolerance value, the flow combination with the least number of flows among these multiple flow combinations is selected as the first target flow. Among them, these multiple flow combinations refer to different combinations of multiple flows on the first network device.
[0184] For example, the traffic adjustment step is 500M, the first tolerance value is 10M, there are 10 flows on the first network device, the sum of the flows of 3 of these 10 flows is 495M, and the sum of the flows of 5 of these 10 flows is 498M. Considering the principle of giving priority to the flow with fewer adjustments, these 3 flows are determined as the first target flows.
[0185] Before determining the first target flow, the first network device first obtains flow information of each flow in at least one flow on the first network device. The first network device can obtain the flow information of each flow in various ways, for example, the first network device obtains the flow information from a routing information base (RIB).
[0186] For a two-core, zigzag communication system, after determining the first target flow, the first network device adjusts the first target flow to the second link. For example, all first target flows can be adjusted to the second link through a single interaction process, or the N flows included in the first target flow can be adjusted sequentially to the second link through multiple interactions. Alternatively, after each flow in the first target flow is determined, the first network device adjusts the determined flow to the second link, thereby iteratively determining and adjusting each flow until the total flow of all determined flows matches the flow adjustment value.
[0187] Among them, one implementation method for the first network device to adjust the target traffic on the first link to the second link includes: lowering the priority of the first target route on the first network device to the second network, where the prefix of the first target route is the destination address of the target traffic. In other words, lowering the routing priority of the first target flow on the first network device. Among them, the next hop of the first target route is the first network device. This implementation method is more suitable for a U-shaped communication system, because congestion on the first link usually does not cause congestion on the second link at the same time. The first network device can transfer the target traffic of the first link to the second link by lowering the corresponding routing priority.
[0188] Another implementation method for the first network device to adjust the target traffic on the first link to the second link includes: sending a routing adjustment policy to the second network device, the routing adjustment policy is generated by the first device, and instructing the second network device to increase the priority of the second target route sent by the second network device to the second network, where the prefix of the second target route is the destination address of the target traffic. In other words, the routing priority of the first target flow on the second network device is increased. This implementation method is also more suitable for U-shaped communication systems, because congestion on the first link usually does not cause congestion on the second link at the same time. The second network device can transfer the target traffic of the first link to the second link by increasing the corresponding routing priority.
[0189] For a dual-core V-shaped communication system, after determining the first target flow, the first network device adjusts the first target flow to the second link and / or the third link. If both the third and fourth network devices have UCMP enabled, congestion on the first link may cause congestion on the fourth link due to UCMP, for example, resulting in a high bandwidth occupancy rate on the fourth link and the first link. In this case, the traffic on the first and fourth links needs to be adjusted to the second and third links. Therefore, both the first and second network devices need to adjust some of their routing priorities. In this case, the first network device lowers the priority of the first target route sent to the second network on the first network device, thereby adjusting the traffic on the first link to the second link and / or the third link. The first network device also sends a routing adjustment policy generated by the first device to the second network device, instructing the second network device to increase the priority of the second target route sent to the second network on the second network device, thereby adjusting the traffic on the fourth link to the second link and / or the third link. The prefix of the first target route includes the destination address of some or all of the target traffic, and the prefix of the second target route includes the destination address of some or all of the target traffic. This means that the routing priority of the first target flow on the first network device is lowered, while the routing priority of the first target flow on the second network device is raised. The next hop of the second target route is the second network device.
[0190] In some embodiments, the network device may modify the routing priority by modifying med or extending as-path.
[0191] In some embodiments, the route adjustment policy is sent via RPD routing. Optionally, the first target route and the second target route are sent via BGP routing.
[0192] Steps 601 to 602 may be performed periodically. For example, the first network device determines whether the traffic adjustment condition is met according to a first period. The first period may be one minute, two minutes, or another period. Of course, steps 601 to 602 may also be performed according to a first set time. For example, the first network device determines whether the traffic adjustment process is met when the first set time arrives. The first set time may be set based on experience, such as setting a time point that is prone to congestion as the first set time.
[0193] The above describes the implementation process of the first network device performing traffic adjustment. In the embodiment of the present application, the second network device can also implement traffic adjustment according to the principles of the above implementation process, which will not be repeated here.
[0194] When congestion on the first link is resolved, the first network device can restore some or all of the traffic that was redirected to the second link back to the first link, thereby reducing the burden on the second link. The following describes the traffic restoration process.
[0195] Still taking the example of the first network device obtaining the first quality information and the second quality information, if it is determined based on the first quality information and the second quality information that the traffic recovery condition is met, the first network device will restore part or all of the target traffic from the second link to the first link.
[0196] There are multiple ways to determine whether the traffic restoration conditions are met, which are introduced below.
[0197] In a first implementation manner of determining whether the traffic adjustment condition is met, the traffic recovery condition includes that the first quality information is lower than a third threshold.
[0198] As can be seen from the above, quality information includes one or more types of information. Therefore, there are also many specific ways to determine whether the traffic restoration conditions are met, which will be introduced below.
[0199] Mode 211: The quality information includes bandwidth occupancy, and the traffic recovery condition includes that the bandwidth occupancy in the first quality information is less than a third threshold.
[0200] In the case where the first link includes multiple links, the traffic recovery condition includes that the total bandwidth occupancy of the multiple links is less than the first threshold, or the bandwidth occupancy of the multiple links is less than the first threshold.
[0201] The third threshold value is 80%, 85%, 90%, or other values. To ensure reliability, the third threshold value can be set slightly larger, such as greater than 70%. Optionally, the third threshold value here is equal to the first threshold value in the above method 111. Of course, the third threshold value here can also be different from the first threshold value in the above method 111. For example, the third threshold value is equal to the difference between the first threshold value in the above method 111 (such as 90%) and the second threshold value in the method 121 (such as 20%).
[0202] Mode 212: The quality information includes a packet loss rate, and the traffic recovery condition includes that the packet loss rate in the first quality information is less than a third threshold.
[0203] In the case that the first link includes multiple links, the traffic recovery condition includes that the total packet loss rate of the multiple links is less than the third threshold, or that the packet loss rates of the multiple links are all less than the third threshold.
[0204] The third threshold value is 20%, 25%, 30%, or another value. To ensure reliability, the third threshold value can be set slightly smaller, such as greater than 10%. Optionally, the third threshold value here is equal to the first threshold value in the above method 112. Of course, the third threshold value here can also be different from the first threshold value in the above method 112. For example, the third threshold value is equal to the difference between the first threshold value in the above method 112 (e.g., 90%) and the second threshold value in the method 122 (e.g., 20%).
[0205] It should be understood that the third threshold in method 211 may be different from the third threshold in method 212. For example, the third threshold in method 211 is larger than the third threshold in method 212. This is related to the physical meaning represented by bandwidth occupancy and packet loss rate.
[0206] Mode 213: The quality information includes link delay, and the traffic recovery condition includes that the link delay in the first quality information is less than a third threshold.
[0207] In the case where the first link includes multiple links, the traffic recovery condition includes that the total delay of the multiple links is less than a third threshold, or that the delays of the multiple links are all less than the third threshold.
[0208] The third threshold value is 500ms, 1s or other values. To ensure reliability, the third threshold value can be set according to specific network requirements.
[0209] Mode 214: The quality information includes a link congestion status, and the traffic recovery condition includes that the link congestion status in the first quality information is less than a third threshold.
[0210] When the first link includes multiple links, the traffic adjustment condition includes that the congestion status of more than K links among the multiple links is less than the third threshold, or the congestion status of all the multiple links is less than the third threshold, where K is an integer greater than or equal to 1 and less than the total number of the multiple links. For example, if the number of the multiple links is 5, K can be set to 3 or 4.
[0211] The link congestion state is represented by a state value, such as a first state value or a second state value, where the first state value indicates link congestion and the second state value indicates link non-congestion. The first state value and the second state value can be 1 and 0, respectively, or can be represented by other values. In this case, the third threshold value can be 1.
[0212] Alternatively, the link congestion status is represented by the congestion degree, which is a number greater than 0 and less than 1. In this case, the third threshold is also a number greater than 0 and less than 1. For example, the third threshold here is set in the same way as the third threshold in method 211.
[0213] The quality information in methods 211 to 214 all include one type of information. Next, a case where the quality information includes at least two types of information will be introduced through method 215.
[0214] Method 215: The quality information includes at least two of the aforementioned multiple types of information, such as packet loss rate and link delay, or bandwidth utilization, packet loss rate, and link delay, or other conditions, not listed here. The first network device determines weighted values of the multiple types of information in the first quality information by weighted summation, and the traffic recovery condition includes the weighted value of the first quality information being less than a third threshold.
[0215] In the case where the first link includes multiple links, the traffic recovery condition includes that the total weighted value of the multiple links is less than a third threshold, or that the weighted value of each link in the multiple links is less than the third threshold, or that the weighted values of at least K links in the multiple links are less than the third threshold, where K can be equal to K in method 214. The total weighted value is determined based on at least two pieces of information including total bandwidth usage, total packet loss rate, total link delay, and link congestion status.
[0216] The third threshold is 0.7, 0.75 or other values.
[0217] Of course, in addition to the above-described methods 211 to 215, the first network device may also determine whether the traffic recovery condition is met based on the acquired quality information in other ways.
[0218] In a second implementation of determining whether a traffic recovery condition is met, the traffic recovery condition includes the second quality information exceeding a fourth threshold and / or the difference between the second quality information and the first quality information exceeding a fifth threshold, i.e., the quality of the second link is worse than the quality of the first link. The second quality information exceeding the fourth threshold indicates congestion on the second link, and the difference between the second quality information and the first quality information exceeding the fifth threshold indicates that there is room on the first link to share traffic on the second link.
[0219] The fourth threshold is equal to the first threshold or the third threshold, and the fifth threshold is equal to the second threshold. Of course, the fifth threshold may not be equal to the second threshold.
[0220] The specific implementation method for determining whether the second quality information exceeds the fourth threshold is similar to the specific implementation method for determining whether the first quality information exceeds the first threshold above. The specific implementation method for determining whether the difference between the second quality information and the first quality information exceeds the fifth threshold is similar to the specific implementation method for determining whether the difference between the first quality information and the second quality information exceeds the second threshold above. They will not be repeated here.
[0221] In an embodiment where the first network device is further capable of acquiring the third quality information and the fourth quality information, for example, in a dual-core V-shaped communication system, the traffic recovery condition includes one or more of the following conditions:
[0222] (1) Both the first quality information and the third quality information are less than a third threshold, that is, the link connected to the third network device is no longer congested;
[0223] (2) The difference between the first quality information and the third quality information exceeds the second threshold, and / or the difference between the fourth quality information and the second quality information exceeds the second threshold; that is, there is space on the link connected to the fourth network device to share the traffic on the link connected to the third network device;
[0224] (3) The first quality information and the third quality information are both less than the third threshold, and the second quality information and / or the third quality information exceeds the fourth threshold, that is, the link connected to the third network device is decongested, and the link connected to the fourth network device is congested.
[0225] Among them, the specific implementation method of determining whether the third quality information is less than the third threshold is similar to the specific implementation method of determining whether the first quality information is less than the third threshold above. The specific implementation method of determining whether the third quality information exceeds the fourth threshold is similar to the specific implementation method of determining whether the first quality information exceeds the first threshold above. The specific implementation method of determining whether the difference between the first quality information and the third quality information exceeds the second threshold and the specific implementation method of determining whether the difference between the fourth quality information and the second quality information exceeds the second threshold are similar to the specific implementation method of determining whether the difference between the first quality information and the second quality information exceeds the second threshold above. They will not be repeated here.
[0226] When the first network device also includes the fifth quality information, the traffic restoration condition, in addition to one or more of the conditions in the above embodiments, further includes the fifth quality information being less than an eighth threshold. The eighth threshold may be the same as or different from the third threshold. The specific implementation of determining whether the fifth quality information is less than the eighth threshold is similar to the specific implementation of determining whether the first quality information is less than the third threshold described above and will not be repeated here.
[0227] In a two-core, square-shaped communication system, the first network device, after determining that the traffic restoration conditions are met, restores part or all of the target traffic from the second link to the first link. In a two-core, V-shaped communication system, after determining that the traffic restoration conditions are met, the first network device, after determining that the traffic restoration conditions are met, restores part or all of the target traffic from the second or third link to the first or fourth link. The first network device can perform traffic restoration by modifying routing priorities as described in the traffic adjustment process.
[0228] In an embodiment of the present application, the first network device selects M flows ranked first among the flows corresponding to the target flow, in ascending order of flow rate, as second target flows, and restores the second target flows from the second link to the first link, where M is a positive integer. That is, considering that both the first link and the second link are not congested at this time, and to prevent flow fluctuations caused by adjusting excessive flow rates, i.e., to prevent large fluctuations in flow rate, the flows to be restored are selected sequentially in ascending order of flow rate. Of course, in other embodiments, the first network device may also select flows to be restored according to other rules.
[0229] The flow corresponding to the target traffic includes the first target flow mentioned above, and the first target flow includes N flows, where N is not less than M.
[0230] In order to avoid excessive recovery, during a traffic recovery process, part of the flow in the first target flow can be restored to the first link (or the fourth link). If the first link (or the fourth link) continues to be uncongested, the remaining flow in the first target flow can be gradually restored through subsequent traffic recovery processes.
[0231] Based on this, the total size of the M flows does not exceed the sixth threshold. The sixth threshold can be determined based on the total bandwidth of the first link. For example, the sixth threshold is β times the total bandwidth of the first link. β can be 5% or 10% or other values. The sixth threshold can also be determined according to the flow adjustment value described above. For example, the sixth threshold is half or another multiple of the flow adjustment value described above. The sixth threshold can also be determined according to the size of the target flow. For example, the sixth threshold is half or another multiple of the target flow. The sixth threshold can also be determined according to other principles, which are not listed here.
[0232] It is worth noting that before restoring the first target flow to the first link (or the fourth link), since the first target flow no longer exists on the first link (or the fourth link), then, in some cases, the first network device may not be able to obtain the current traffic size of each flow in the first target flow. Therefore, in this case, the first network device can select the above-mentioned M flows from the first target flow based on the traffic size when the first target flow is transferred away.
[0233] Of course, if the first network device is able to obtain the real-time traffic volume of each flow in the first target flow through some method, then the first network device can select the M flows from the first target flow based on the real-time traffic volume of each flow in the first target flow. Of course, since the traffic volume of the first target flow may not change much before and after the transfer, to simplify the process, even if the first network device is able to obtain the real-time traffic volume of each flow in the first target flow through some method, the first network device can also select the M flows from the first target flow based on the traffic volume of each flow in the first target flow at the time of the transfer.
[0234] In addition to determining the second target flow according to the above method, the first network device can also determine the second target flow according to the set flow recovery step (also known as the flow recovery unit). For example, the first network device determines at least one flow in the first target flow whose sum of flow is close to the flow recovery step as the second target flow, wherein the absolute value of the difference between the sum of flow and the flow recovery step is less than the second tolerance value. In addition, in order to adjust as few flows as possible, the number of second target flows should be as small as possible. Among them, when multiple flow combinations all meet the condition of the first tolerance value, the flow combination with the least number of flows in these multiple flow combinations is selected as the second target flow. Among them, these multiple flow combinations refer to different combinations of multiple flows in the first target flow.
[0235] In the embodiment of the present application, both the flow recovery step length and the flow adjustment step length can be set, or only one of them can be set. In the case where both the flow recovery step length and the flow adjustment step length are set, the flow recovery step length and the flow adjustment step length can be the same or different, for example, the flow recovery step length is half of the flow adjustment step length.
[0236] Optionally, the first network device determines whether the traffic recovery condition is met according to the second period. The duration of the second period can be one minute or two minutes or other duration. Optionally, the second period is the same as the first period mentioned above. Of course, the second period can also be different from the first period. Alternatively, the first network device can also be executed according to the second set time. For example, the first network device determines whether the traffic adjustment process is met when the second set time arrives. The second set time can be set according to the first set time mentioned above or experience, such as adding a certain time length (such as 10s, 30s or other duration) to the first set time as the second set time.
[0237] The above introduces the implementation process of traffic recovery by the first network device. In the embodiment of the present application, the second network device can also implement traffic recovery according to the principles of the above implementation process, which will not be repeated here.
[0238] Considering that abnormal situations may occur during the process of traffic adjustment, if an abnormal situation occurs during the process of traffic adjustment performed by the first network device, the first network device exits the process of traffic adjustment.
[0239] In an embodiment where the third link and the fourth link do not exist, the abnormal situation includes at least one of the following situations: traffic on the second link is being adjusted to the first link; and the connection between the first network device and the third network device is interrupted.
[0240] The fact that traffic on the second link is being redirected to the first link indicates that the second network device is performing traffic adjustment. To avoid traffic adjustment conflicts, the first network device must exit the traffic adjustment process. If the connection between the first and third network devices is interrupted, the second network device will detect the interruption and can use other methods to repair the network interruption.
[0241] In an embodiment where a third link and a fourth link exist, the abnormal situation includes at least one of the following situations: the traffic on the second link and / or the fourth link is being adjusted to the first link and / or the third link; the connection between the first network device and the third network device is interrupted; the connection between the first network device and the fourth network device is interrupted.
[0242] As can be seen from the above description, the core concept of the embodiments of this application is to monitor inter-domain link congestion in real time by collecting inter-domain link quality information. When congestion is detected, the amount of traffic that needs to be adjusted, as well as the specific traffic that needs to be adjusted, is determined based on the congestion situation and link bandwidth. This influences the path selection of data flows by modifying routing priorities, thereby achieving the goal of adjusting traffic and alleviating congestion.
[0243] Next, please refer to Figures 7 to 9 to further explain this solution.
[0244] FIG7 is a system architecture diagram related to another congestion handling method provided in an embodiment of the present application. FIG7 is a two-core U-shaped communication system similar to FIG4 . CR1 and CR2 in FIG7 and BRAS1 on the left belong to the first network. CR1 and CR2 are IBGP neighbors to each other, specifically BGP RPD neighbors and BGP-LS neighbors. ZJ-A1, ZJ-A2, C1, and C2 belong to the second network. ZJ-A1 and ZJ-A2 are connected to CR1 and CR2 respectively via links, that is, ZJ-A1 and ZJ-A2 have EBGP neighbor relationships with CR1 and CR2 respectively. ZJ-A1 and ZJ-A2 are also connected to C1 and C2 respectively, and are connected to CR3 and CR4 in the third network via C1 and C2 (or as shown in FIG7 , via more network devices). The second network is used to transmit traffic between the first network and the third network.
[0245] The BGP routes recorded in CR1 include 60.11.0.0 / 24MED100 and 60.12.0.0 / 24MED50. The BGP routes recorded in CR2 include 60.11.0.0 / 24MED50 and 60.12.0.0 / 24MED100. The BGP routes recorded in CR3 include 60.11.0.0 / 24MED50 and 60.12.0.0 / 24MED100. The BGP routes recorded in CR2 include 60.11.0.0 / 24MED100 and 60.12.0.0 / 24MED50. Here, 60.11.0.0 / 24 and 60.12.0.0 / 24 represent routing prefixes. MED stands for multi-exit discriminator, a BGP attribute. Different MED values are used to determine the optimal route for routes with the same destination address but different attributes (such as different next hops or other attributes). Network devices can modify the MED value to change the priority of the corresponding route. As can be seen, the MED values recorded on CR1 and CR2 for the same routing prefix are different. Similarly, the MED values recorded on CR3 and CR4 for the same routing prefix are also different.
[0246] In Figure 7, BGP EPE is enabled for EBGP neighbors on CR1 and CR2. This function obtains link quality information, including link congestion status, total bandwidth, and bandwidth utilization. BGP-LS routes are generated based on the EBGP neighbor relationship, and the quality information is exchanged through BGP-LS routes. Furthermore, BGP RPD address family neighborship and BGP-LS address family neighborship are established between CR1 and CR2.
[0247] CR1 and CR2 respectively obtain the traffic information corresponding to the RIB export routes from CR1 to ZJ-A1 and from CR2 to ZJ-A2, that is, obtain the traffic size of the flow corresponding to each RIB export route.
[0248] When a partial link failure or traffic burst between CR1 and ZJ-A1 causes link congestion, CR1 determines based on quality information that traffic adjustment conditions are met, determines a traffic adjustment value based on the total bandwidth and bandwidth utilization in the acquired quality information, and, based on the traffic adjustment value, determines the first target flow that needs to be adjusted on the link between CR1 and ZJ-A1. CR1 generates a tuning policy based on the first target flow and applies the tuning policy to the routing egress policy from CR1 to ZJ-A1. For example, the tuning policy may include lowering the BGP routing priority corresponding to a portion of the first target flow on CR1. Alternatively, CR1 may generate an RPD route, send the RPD route to CR2, and apply the RPD route to the routing egress policy from CR2 to ZJ-A2. The RPD route indicates that the BGP routing priority corresponding to a portion of the first target flow on CR2 should be increased. The adjusted BGP routing priority is propagated along the BGP route to the second and third networks.
[0249] Through the above process, the priorities of some routes received by ZJ-A1 and ZJ-A2 change, and ZJ-A2's routes are preferred in the second network, thereby achieving the purpose of adjusting the traffic path.
[0250] FIG8 is a flow chart of another link congestion processing method provided by an embodiment of the present application. The flow chart is based on the dual-core square-shaped system architecture shown in FIG4.
[0251] The basic configuration and prerequisites for the process shown in Figure 8 include the following:
[0252] 1. CR1-C5 and CR2-C6 establish EBGP neighbor relationships through loopback interfaces, and multiple physical links exist between the devices.
[0253] 2. Assume that bandwidth usage is greater than or equal to 90% and congestion occurs.
[0254] 3. When the difference in bandwidth utilization between different paths CR1-C5 and CR2-C6 is greater than 20%, there is room for traffic adjustment.
[0255] 4. The link status, total bandwidth, and bandwidth occupancy rate information of the CR1-C5 and CR2-C6 links are collected on CR1 through BGP-LS routing. At the same time, the incoming traffic information corresponding to the CR1->C5 BGP route prefix is collected.
[0256] 5. Denote X as the total bandwidth of CR1-C5, a as the bandwidth occupancy rate of CR1-C5; Y as the total bandwidth of CR2-C6, and b as the bandwidth occupancy rate of CR2-C6. The bandwidth ratio λ = X / Y.
[0257] The traffic adjustment conditions for the process shown in Figure 8 (taking the adjustment of CR1 as an example) include the following points:
[0258] 1. Some links of CR1-C5 fail and the EBGP neighbor does not interrupt, or traffic bursts, resulting in congestion (a >= 90%).
[0259] 2. There is traffic adjustment space on CR2-C6 (b < a - 20%), and there is no congestion (b < 90%).
[0260] 3. There is no RPD route on CR1 that originates from CR2 and is effective for the CR1->C5 EBGP neighbor.
[0261] When CR1 determines that the above traffic adjustment conditions are met, CR1 calculates the traffic adjustment value Z = min((aXY - bXY) / (X + Y), (90% - b)*Y), sorts the route prefixes of the traffic from CR1 to C5 in descending order according to the incoming traffic, traverses multiple flows from CR1 to C5 in turn, and calculates whether the sum of the traffic size Pn of the traversed flow and the sum of the traffic sizes of the already traversed flows (denoted as sum) exceeds Z. If sum exceeds Z, wait for the next adjustment period. If sum does not exceed Z, CR1 obtains the route prefix corresponding to Pn, which is the destination address dest corresponding to Pn, generates a route priority adjustment policy corresponding to this route prefix, generates an RPD route, and modifies the route priority corresponding to Pn according to the route priority adjustment policy and the RPD route, thereby causing a change in the traffic path of the destination address dest. Then calculate whether the current sum exceeds Z / 2 (set to prevent excessive adjustment). If sum exceeds Z / 2, wait for the next adjustment period. If sum does not exceed Z / 2, continue to traverse the next flow.
[0262] The corresponding traffic recovery conditions for the process shown in Figure 8 include:
[0263] 1. There is a locally generated RPD route on the CR1 device.
[0264] 2. CR1 congestion is relieved, i.e. a < 90% - 20%, and / or CR2 meets the traffic adjustment conditions, i.e. b > 90% and a <b–20%。
[0265] If CR1 determines that the above traffic restoration conditions are met, it sorts the route prefixes of the diverted traffic recorded by CR1 in ascending order of traffic volume at the time of diversion and restores some or all of the traffic. This can be done by, for example, deleting the corresponding information in the locally recorded route priority adjustment policy or deleting the RPD route for the corresponding flow in the route adjustment policy sent to CR2. To avoid excessive restoration, no more than 5% of the total bandwidth of the link between CR1 and C5 can be restored in a single adjustment process.
[0266] The corresponding abnormal situation handling measures in the process shown in Figure 8 include: If CR1 receives an RPD route from CR2 that is effective for CR1->C5 during the traffic shaping process, and CR1's route identifier is larger, CR1 exits the traffic shaping process and revokes the corresponding policy and the generated RPD route.
[0267] FIG9 is a flow chart of another link congestion processing method provided by an embodiment of the present application. This flow chart is based on the dual-core V-shaped system architecture shown in FIG5 .
[0268] The basic configuration and prerequisites for the process shown in Figure 9 include the following:
[0269] 1. CR1-C5, CR1-C6, CR2-C5, and CR2-C6 establish EBGP neighbor relationships through loopback interfaces. Assume that CR1-C5 and CR2-C5 are the upper plane, and CR1-C6 and CR2-C6 are the lower plane. Multiple physical links exist between the EBGP neighbors.
[0270] 2. C5 supports UCMP, which means that traffic on C5 is load-balanced based on the bandwidth ratio between C5-CR1 and C5-CR2. C6 also supports UCMP, which means that traffic on C6 is load-balanced based on the bandwidth ratio between C6-CR1 and C6-CR2.
[0271] 3. Assume that bandwidth occupancy is greater than or equal to 90% when congestion occurs.
[0272] 4. When the difference in bandwidth usage between the upper and lower planes is greater than 20%, there is room for traffic adjustment.
[0273] 5. CR1 uses BGP-LS routing to collect quality information for the CR1-C5, CR1-C6, CR2-C5, and CR2-C6 links, including link congestion status, total bandwidth, and bandwidth utilization. In addition, CR1 also collects inbound traffic information for the CR1-->C5 and CR1-->C6 BGP route prefixes.
[0274] 6. Let X1 be the total bandwidth of CR1-C5, and a1 be the bandwidth utilization ratio of CR1-C5; X2 be the total bandwidth of CR1-C6, and a2 be the bandwidth utilization ratio of CR1-C6; Y1 be the total bandwidth of CR2-C5, and b1 be the bandwidth utilization ratio of CR2-C5; Y2 be the total bandwidth of CR2-C6, and b2 be the bandwidth utilization ratio of CR2-C6. Bandwidth ratio λ = (X1 + Y1) / (X2 + Y2).
[0275] If a partial CR1-C5 link fails and the EBGP peer relationship is maintained, or if a traffic burst causes congestion (a1 >= 90%), traffic will be preferentially adjusted to the bandwidth ratio X1 / Y1 within the upper plane where CR1-C5 and CR2-C5 reside, as C5 supports UCMP. This will cause congestion on both the links corresponding to a1 and b1. Similarly, if a partial CR2-C5 link fails or is congested, the bandwidth ratio will be preferentially adjusted to X1 / Y1 within the upper plane where CR1-C5 and CR2-C5 reside.
[0276] Based on this, when CR1 determines that the above traffic adjustment conditions are met, CR1 calculates the traffic adjustment value Z = min((a1X12X2+a1X12Y2+b1X1X2Y1+b1X1Y1Y2-a2X12X2-a2X1X2Y1-b2X12Y2-b2X1Y1Y2) / (X12+Y12+X1Y2+Y1Y2+X1X2+X2Y1+2X1Y1), (90%-b2)*Y2, (90%-a2)*X2), sorts the routing prefixes of the traffic from CR1 to C5 from large to small according to the inbound traffic volume, traverses multiple flows from CR1 to C5 in sequence, and calculates whether the traffic size Pn of the traversed flow and the sum of the traffic sizes of the traversed flows (denoted as sum) exceeds Z. If sum exceeds Z, wait for the next adjustment cycle. If the sum does not exceed Z, CR1 obtains the routing prefix corresponding to Pn, which is the destination address dest corresponding to Pn. It generates a routing priority adjustment policy corresponding to this routing prefix, generates an RPD route, modifies the routing priority corresponding to Pn on CR1 according to the routing priority adjustment policy and the RPD route, and sends the RPD route to CR2, which modifies the routing priority corresponding to Pn on CR2, thereby changing the traffic path for the destination address dest. It then calculates whether the sum at this point exceeds Z / 2 (set to prevent over-adjustment). If so, it waits for the next adjustment cycle. If not, it continues to traverse the next flow.
[0277] The corresponding traffic restoration conditions for the process shown in Figure 9 include:
[0278] 1. The CR1 device has locally generated RPD routes.
[0279] 2. The upper plane is congested, that is, a1 < 90% - 20% and b1 < 90% - 20%; or the lower plane meets the traffic adjustment conditions, that is, a2 > 90%, b2 > 90%, a1 <a2–20%,b1<b2–20%。
[0280] If CR1 determines that the above traffic restoration conditions are met, it sorts the route prefixes of the diverted traffic recorded by CR1 in ascending order of traffic volume at the time of diversion and restores some or all of the traffic. This can be done by, for example, deleting the corresponding information in the locally recorded route priority adjustment policy or deleting the RPD route for the corresponding flow in the route adjustment policy sent to CR2. To avoid excessive restoration, no more than 5% of the total bandwidth of the link between CR1 and C5 can be restored in a single adjustment process.
[0281] The corresponding abnormal situation handling measures for the process shown in Figure 8 include:
[0282] 1. During traffic shaping, if CR1 receives an RPD route from CR2 that is valid for the CR1->C5 EBGP neighbor relationship and the CR1 route identifier is higher, CR1 exits the traffic shaping process and removes the generated RPD route.
[0283] 2. If the CR1-C5 and / or CR1-C6 connection is disconnected during CR1's traffic shaping process, CR1 exits the traffic shaping process and cancels the generated RPD route.
[0284] In summary, in the embodiment of the present application, the traffic entry device in the first network can obtain the quality information of the link between the first network and the second network, determine the congestion situation based on the quality information, and adjust the traffic in the case of link congestion. Among them, the present solution can achieve traffic adjustment by modifying the routing priority, and the link congestion processing function in the present solution can be configured for the traffic entry device in the first network. There is no need to perform additional configuration on all network devices on the link, while the related technology requires the configuration and publication of the Link Bandwidth extended group attribute for each node device on the path through which the traffic passes. Therefore, the present solution does not rely on other devices, is simple to deploy, and is easy to promote and implement. The present solution also does not require BGP routes on multiple links to form load balancing, which solves the problem that traffic cannot be adjusted based on the Link Bandwidth attribute in non-load balancing scenarios of BGP routes. The present solution does not require frequent changes to BGP routes, and therefore will not cause network-wide flooding of routes.
[0285] FIG10 is a schematic diagram of the structure of a link congestion processing device provided in an embodiment of the present application. The link congestion processing device can be implemented as part or all of a network device by software, hardware, or a combination of both. The network device can be any of the network devices shown in FIG1 . In an embodiment of the present application, the link congestion processing device is included in a first network device, the first network device belongs to a first network, the first network also includes a second network device, the first network device and the second network device are traffic entry devices of the first network, the first network device is connected to a third network device in the second network via a first link, and the second network device is connected to a fourth network device in the second network via a second link. Referring to FIG10 , the link congestion processing device includes: an acquisition module 1001 and a traffic adjustment module 1002.
[0286] An acquisition module 1001 is configured to acquire first quality information and second quality information, where the first quality information includes quality information of a first link and the second quality information includes quality information of a second link;
[0287] The traffic adjustment module 1002 is configured to adjust the target traffic on the first link to the second link if it is determined based on the first quality information and the second quality information that the traffic adjustment condition is met.
[0288] Optionally, the quality information includes one or more of bandwidth information, packet loss rate, link delay, and link congestion status.
[0289] Optionally, the bandwidth information includes total bandwidth and / or bandwidth occupancy.
[0290] Optionally, the flow adjustment condition includes that the first quality information exceeds a first threshold.
[0291] Optionally, the flow adjustment condition includes that a difference between the first quality information and the second quality information exceeds a second threshold.
[0292] Optionally, the traffic adjustment condition includes that a routing adjustment policy generated by the second network device does not exist on the first network device, and the routing adjustment policy is used to alleviate congestion of the link between the first network and the second network through traffic adjustment.
[0293] Optionally, the quality information includes total bandwidth and bandwidth occupancy;
[0294] The traffic adjustment module 1002 includes:
[0295] A first determining submodule, configured to determine a flow adjustment value based on the total bandwidth and bandwidth occupancy in the first quality information and the second quality information;
[0296] A second determining submodule is configured to determine a first target flow according to the flow adjustment value, wherein the flow value of the first target flow matches the flow adjustment value;
[0297] The traffic adjustment submodule is configured to adjust the first target flow to the second link.
[0298] Optionally, the first determining submodule is specifically configured to:
[0299] determining a bandwidth ratio between the first link and the second link based on the total bandwidth in the first quality information and the second quality information;
[0300] Determining a first adjustment value based on the bandwidth ratio and the total bandwidth and bandwidth occupancy in the first quality information and the second quality information, where the first adjustment value satisfies that after the traffic on the first link with a total size equal to the first adjustment value is adjusted to the second link, the traffic between the first link and the second link still satisfies the bandwidth ratio;
[0301] Based on the first adjustment value, a flow adjustment value is determined.
[0302] Optionally, the first determining submodule is specifically configured to:
[0303] Determining a second adjustment value corresponding to each link based on a first threshold and a total bandwidth and a bandwidth occupancy rate of each link in at least one link connected to the fourth network device, wherein the first threshold is a threshold used to determine link congestion;
[0304] A minimum value between the first adjustment value and the second adjustment value corresponding to at least one link is determined as the traffic adjustment value.
[0305] Optionally, the second determining submodule is specifically configured to:
[0306] In descending order of flow rate, select N flows ranked first from at least one flow as the first target flow. The total flow rate of these N flows does not exceed the flow adjustment value, where N is a positive integer.
[0307] Optionally, the total size of the N traffic flows does not exceed α times the traffic adjustment value, where α is greater than 0 and less than 1.
[0308] Optionally, the traffic adjustment module 1002 includes:
[0309] The priority modification submodule is used to reduce the priority of the first target route sent by the first network device to the second network, where the prefix of the first target route is the destination address of the target traffic.
[0310] Optionally, the traffic adjustment module 1002 includes:
[0311] The policy sending module is used to send a route adjustment policy to the second network device, wherein the route adjustment policy instructs the second network device to increase the priority of the second target route sent by the second network device to the second network, and the prefix of the second target route is the destination address of the target traffic.
[0312] Optionally, the routing adjustment policy is sent via RPD routing.
[0313] Optionally, the target route is sent via BGP routing.
[0314] Optionally, referring to FIG11 , the link congestion processing device further includes:
[0315] The traffic recovery module 1003 is configured to recover part or all of the target traffic from the second link to the first link if it is determined based on the first quality information and the second quality information that the traffic recovery condition is met.
[0316] Optionally, the traffic recovery condition includes that the first quality information is lower than a third threshold.
[0317] Optionally, the traffic recovery condition includes that the second quality information exceeds a fourth threshold, and / or that a difference between the second quality information and the first quality information exceeds a fifth threshold.
[0318] Optionally, the traffic recovery module 1003 includes:
[0319] A flow selection submodule is used to select M flows ranked first from the flows corresponding to the target flow in ascending order of flow as the second target flow, where M is a positive integer;
[0320] The traffic recovery submodule is used to restore the second target flow from the second link to the first link.
[0321] Optionally, the total size of the M streams does not exceed a sixth threshold.
[0322] Optionally, the link congestion processing device further includes:
[0323] An exit module is used to exit the flow adjustment process if an abnormal situation occurs during the flow adjustment process;
[0324] The above abnormal situations include at least one of the following:
[0325] Traffic on the second link is being adjusted to the first link;
[0326] The connection between the first network device and the third network device is interrupted.
[0327] Optionally, the first network device is further connected to the fourth network device via a third link, and the second network device is further connected to the third network device via a fourth link; and the obtaining module 1001 is further configured to:
[0328] Third quality information and fourth quality information are obtained, where the third quality information includes quality information of the third link and the fourth quality information includes quality information of the fourth link. The third quality information and the fourth quality information are also used to determine whether the traffic adjustment condition is met.
[0329] Optionally, the first network further includes a fifth network device, and the first network device is further connected to the fifth network device through a fifth link. The obtaining module 1001 is further configured to:
[0330] Acquire fifth quality information, where the fifth quality information includes quality information of the fifth link, and the fifth quality information is also used to determine whether the traffic adjustment condition is met.
[0331] Optionally, the second quality information is acquired through BGP-LS routing.
[0332] Optionally, an EBGP neighbor relationship is established between the first network device and the third network device, and between the second network device and the fourth network device; and / or,
[0333] An IBGP neighbor relationship is established between the first network device and the second network device, and between the third network device and the fourth network device.
[0334] In an embodiment of the present application, the traffic entry device in the first network can obtain the quality information of the link between the first network and the second network, determine the congestion situation based on the quality information, and adjust the traffic in the case of link congestion. Among them, this solution can achieve traffic adjustment by modifying the routing priority. It is sufficient to configure the link congestion processing function in this solution for the traffic entry device in the first network. There is no need to perform additional configuration on all network devices on the link. In the related art, it is necessary to configure and publish the Link Bandwidth extended group attribute for each node device on the path through which the traffic passes. Therefore, this solution does not rely on other devices, is simple to deploy, and is easy to promote and implement. This solution also does not require BGP routes on multiple links to form load sharing, which solves the problem that traffic cannot be adjusted based on the Link Bandwidth attribute in the non-load sharing scenario of BGP routes. This solution does not require frequent changes to BGP routes, so it will not cause network-wide flooding of routes.
[0335] It should be noted that the link congestion handling device provided in the above embodiment is merely an example of the division of the functional modules described above when handling link congestion. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the link congestion handling device provided in the above embodiment and the link congestion handling method embodiment are based on the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0336] The embodiment of the present application also provides a communication system, which includes a first network device and a second network device, wherein the first network device and the second network device are traffic entry devices of the first network, the first network device is connected to a third network device in the second network via a link, and the second network device is connected to a fourth network device in the second network via a link. The first network device is used to execute the steps of the link congestion handling method provided in the embodiment of the present application. The communication system and the link congestion handling method embodiment are based on the same concept. The specific implementation method is detailed in the embodiments of Figures 1 to 9 above and will not be repeated here.
[0337] The embodiment of the present application also provides a network device, and the structure and functions of the network device are introduced below.
[0338] Figure 12 is a schematic diagram of the structure of a network device provided in an embodiment of the present application. The network device 1200 can be the network device in any of the above embodiments. The network device 1200 can be a switch, a router, or other network device that forwards packets. In this embodiment, the network device 1200 includes: a main control board 1210, an interface board 1230, and an interface board 1240. In the case of multiple interface boards, a switching network board (not shown) can be included. The switching network board is used to complete data exchange between the interface boards (interface boards are also called line cards or service boards).
[0339] The main control board 1210 is used to perform functions such as system management, device maintenance, and protocol processing. Interface boards 1230 and 1240 are used to provide various service interfaces (e.g., POS interface, GE interface, ATM interface, etc.) and implement data flow forwarding. The main control board 1210 mainly contains three types of functional units: the system management and control unit, the system clock unit, and the system maintenance unit. The main control board 1210, interface board 1230, and interface board 1240 are connected to the system backplane via the system bus to achieve intercommunication. The interface board 1230 includes one or more processors 1231. Processors 1231 are used to control and manage the interface boards, communicate with the central processing unit on the main control board, and forward data flows. The memory 1232 on the interface board 1230 is used to store forwarding table entries. Processor 1231 forwards data flows by searching the forwarding table entries stored in memory 1232.
[0340] The interface board 1230 includes one or more network interfaces 1233 for receiving data streams or other information sent by a terminal or other network device, and processing these data streams or data according to the instructions of the processor 1231. The specific implementation process will not be described in detail here.
[0341] It can be understood that, as shown in Figure 12, the embodiment of the present application includes multiple interface boards and adopts a distributed forwarding mechanism. Under this mechanism, the operations on the interface board 1240 are basically similar to the operations of the interface board 1230. For the sake of brevity, they will not be described in detail. In addition, it can be understood that the processor 1231 in the interface board 1230 and / or the processor 1241 in the interface board 1240 in Figure 12 can be dedicated hardware or chips, such as a network processor or an application specific integrated circuit (ASIC) to implement the above functions. This implementation method is what is commonly referred to as the forwarding plane using dedicated hardware or chip processing. The specific implementation method using the network processor as a dedicated hardware or chip can refer to the embodiment shown in Figure 13 below. In another embodiment, the processor 1231 and / or 1241 can also use a general-purpose processor, such as a general-purpose CPU to implement the functions described above.
[0342] It should also be noted that there may be one or more main control boards, including a primary and backup main control board. There may also be one or more interface boards. The higher the data processing capability of the device, the more interface boards are provided. With multiple interface boards, they can communicate with each other through one or more switching fabric boards, and when there are multiple boards, they can collectively implement load balancing and redundant backup. In a centralized forwarding architecture, the device may not require a switching fabric board; the interface board handles the entire system's service data processing. In a distributed forwarding architecture, the device includes multiple interface boards, which can exchange data between them through the switching fabric board, providing high-capacity data exchange and processing capabilities. Therefore, network devices with a distributed architecture have greater data access and processing capabilities than those with a centralized architecture. The specific architecture to adopt depends on the specific network deployment scenario and is not limited here.
[0343] In some embodiments, memory 1232 and / or memory 1242 may be read-only memory (ROM), random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), optical disks (including compact disc read-only memory (CD-ROM), compact discs, laser discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Memory 1232 may exist independently and be connected to processor 1231 via a communication bus. Memory 1232 may also be integrated with processor 1231. Similarly, memory 1242 may exist independently and be connected to processor 1241 via a communication bus, or memory 1242 may be integrated with processor 1241.
[0344] In some embodiments, the network interface 1233 can be a device using any transceiver type for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area network (WLAN), etc. The network interface 1233 includes a wired network interface and may also include a wireless network interface. Among them, the wired network interface can be, for example, an Ethernet interface. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. The wireless network interface can be a WLAN interface, a cellular network communication interface, or a combination thereof. When the network device acts as any network device within a domain, the network interface 1233 is used to forward data packets to other network devices.
[0345] In some embodiments, the network device may include multiple processors, each of which may be a single-core processor or a multi-core processor. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0346] In some embodiments, the memory 1232 is used to store program codes for executing the scheme of the present application, and the processor 1231 can execute the program codes stored in the memory 1232, prompting the network device 1200 to execute the processing steps of the network device in the embodiments shown in Figures 1 to 11. The specific implementation can refer to the detailed description in the embodiments shown in Figures 1 to 11, which will not be repeated here.
[0347] In another embodiment, the program code may include one or more software modules. For example, when the acquisition module 1001 and the traffic adjustment module 1002 in the embodiment shown in FIG10 are implemented by software, the program code may include an acquisition module and a traffic adjustment module. The acquisition module is configured to obtain at least the first quality information and the second quality information, and the traffic adjustment module is configured to perform traffic adjustment based on the acquired quality information using the link congestion processing method provided in the embodiment of the present application. For specific implementation methods, please refer to the detailed description of the embodiments shown in FIG6 to FIG9 and will not be repeated here.
[0348] Figure 13 is a schematic diagram of the structure of another network device provided in an embodiment of the present application. Network device 1300 can be the network device of any of the above embodiments. In this embodiment, network device 1300 includes: a main control board 1310, an interface board 1330, a switching network board 1320, and an interface board 1340. The main control board 1310 is used to perform functions such as system management, device maintenance, and protocol processing. The switching network board 1320 is used to facilitate data exchange between various interface boards (interface boards are also called line cards or service boards). Interface boards 1330 and 1340 are used to provide various service interfaces (e.g., POS interfaces, GE interfaces, ATM interfaces, etc.) and implement data packet forwarding. The control plane is composed of the various control units on the main control board 1310 and the control units on the interface boards 1330 and 1340. The main control board 1310 mainly has three types of functional units: a system management and control unit, a system clock unit, and a system maintenance unit. The main control board 1310, interface boards 1330 and 1340, and switching network board 1320 are interconnected via a system bus and the system backplane. The central processing unit 1331 on the interface board 1330 controls and manages the interface board and communicates with the central processing unit on the main control board. The forwarding table memory 1334 on the interface board 1330 stores forwarding entries. The network processor 1332 forwards data streams by searching the forwarding table memory 1334 for entries.
[0349] The physical interface card 1333 of the interface board 1330 is used to receive data streams or other data sent by a terminal or other device. The specific implementation process will not be described in detail here.
[0350] The network processor 1332 is used to process received data streams, etc. The specific functions of the network processor 1332 are not described in detail here. For example, the network processor 1332 can execute program code to cause the network device 1300 to perform the processing steps of the network device or device in the embodiments shown in Figures 1 to 11. The specific implementation can be referred to the detailed description of the embodiments shown in Figures 1 to 11, and will not be described in detail here.
[0351] It will be appreciated that, as shown in FIG13 , the embodiment of the present application includes multiple interface boards and employs a distributed forwarding mechanism. Under this mechanism, the operations on interface board 1340 are substantially similar to those on interface board 1330 and, for the sake of brevity, will not be further described. Furthermore, as described above, the functions of network processors 1332 and 1342 in FIG13 can be implemented using application-specific integrated circuits (ASICs).
[0352] It should also be noted that there may be one or more main control boards (SCUs), which may include both active and standby SCUs. There may also be one or more interface boards. The higher the data processing capability of the device, the more interface boards are provided. Interface boards may also have one or more physical interface cards. There may be no SCUs, one or more SCUs, and multiple SCUs can be used to achieve load balancing and redundant backup. In a centralized forwarding architecture, the device may not require SCUs; the interface boards handle service data processing for the entire system. In a distributed forwarding architecture, the device may have at least one SCU, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, network devices with distributed architectures offer greater data access and processing capabilities than those with centralized architectures. The specific architecture to adopt depends on the specific network deployment scenario and is not defined here.
[0353] Please refer to Figure 14, which is a schematic diagram of the structure of a network device according to an embodiment of the present application. Optionally, the network device is the network device in the embodiments shown in Figures 1 to 10, and the network device includes one or more processors 1401, a communication bus 1402, a memory 1403, and one or more communication interfaces 1404.
[0354] Processor 1401 is a general-purpose central processing unit (CPU), a network processor (NP), a microprocessor, or one or more integrated circuits for implementing the solution of the present application, such as an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. Optionally, the PLD is a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. When the network device is any of the network devices in the embodiments of the present application, processor 1401 is used to implement the link congestion processing method provided by any of the embodiments shown in Figures 6 to 9.
[0355] Communication bus 1402 is used to transmit information between the above components. Optionally, communication bus 1402 is divided into an address bus, a data bus, a control bus, etc. For ease of illustration, FIG14 shows only one thick line, but this does not mean that there is only one bus or only one type of bus.
[0356] Optionally, the memory 1403 is a read-only memory (ROM), a random access memory (RAM), an electrically erasable programmable read-only memory (EEPROM), an optical disc (including a compact disc read-only memory (CD-ROM), a compact disc, a laser disc, a digital versatile disc, a Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited to these. The memory 1403 exists independently and is connected to the processor 1401 via the communication bus 1402, or the memory 1403 is integrated with the processor 1401.
[0357] The communication interface 1404 uses any transceiver-like device for communicating with other devices or communication networks. The communication interface 1504 includes a wired communication interface and, optionally, a wireless communication interface. The wired communication interface is, for example, an Ethernet interface. Optionally, the Ethernet interface is an optical interface, an electrical interface, or a combination thereof. The wireless communication interface is a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof. When the network device acts as any network device within a domain, the communication interface 1404 is used to forward data packets to other network devices.
[0358] Optionally, in some embodiments, the network device includes multiple processors, such as processor 1401 and processor 1405 shown in Figure 14. Each of these processors is a single-core processor or a multi-core processor. Optionally, the processor herein refers to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).
[0359] In some embodiments, the network device further includes an output device 1406 and an input device 1407. The output device 1406 communicates with the processor 1401 and can display information in a variety of ways. For example, the output device 1406 can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device 1407 communicates with the processor 1401 and can receive user input in a variety of ways. For example, the input device 1407 can be a mouse, a keyboard, a touch screen device, or a sensor device.
[0360] In some embodiments, the memory 1403 is used to store the program code 1410 for executing the solution of the present application. The processor 1401 can execute the program code 1410 stored in the memory 1403, prompting the network device to execute the processing steps of the network device in the embodiments shown in Figures 1 to 11. The specific implementation can refer to the detailed description in the embodiments shown in Figures 1 to 10, which will not be repeated here.
[0361] In another embodiment, the program code may include one or more software modules. For example, when the acquisition module 1001 and the traffic adjustment module 1002 in the embodiment shown in FIG10 are implemented by software, the program code may include an acquisition module and a traffic adjustment module. The acquisition module is configured to obtain at least the first quality information and the second quality information, and the traffic adjustment module is configured to perform traffic adjustment based on the acquired quality information using the link congestion processing method provided in the embodiment of the present application. For specific implementation methods, please refer to the detailed description of the embodiments shown in FIG6 to FIG9 and will not be repeated here.
[0362] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer, or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, or a magnetic tape), an optical medium (e.g., a digital versatile disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)). It is worth noting that the computer-readable storage medium mentioned in the embodiments of the present application may be a non-volatile storage medium, in other words, a non-transient storage medium.
[0363] It should be understood that the "at least one" mentioned herein refers to one or more, and "a plurality of" refers to two or more. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is merely a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in order to facilitate a clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit them to be different.
[0364] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in the embodiments of this application are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the quality information and flow information involved in the embodiments of this application are all obtained with full authorization.
[0365] The above description is an embodiment provided for this application and is not intended to limit this application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of this application should be included in the scope of protection of this application.
Claims
1. A link congestion processing method, characterized in that: Applied to a first network device, the first network device belongs to a first network, the first network also includes a second network device, the first network device and the second network device are traffic entry devices of the first network, the first network device is connected to a third network device in the second network through a first link, and the second network device is connected to a fourth network device in the second network through a second link; the method includes: Acquire first quality information and second quality information, where the first quality information includes quality information of the first link, and the second quality information includes quality information of the second link; If it is determined based on the first quality information and the second quality information that a traffic adjustment condition is met, the target traffic on the first link is adjusted to the second link.
2. The method according to claim 1, characterized in that The quality information includes one or more of bandwidth information, packet loss rate, link delay, and link congestion status.
3. The method according to claim 2, characterized in that The bandwidth information includes total bandwidth and / or bandwidth occupancy rate.
4. The method according to any one of claims 1 to 3, characterized in that: The traffic adjustment condition includes that the first quality information exceeds a first threshold.
5. The method according to any one of claims 1 to 4, characterized in that: The flow adjustment condition includes that a difference between the first quality information and the second quality information exceeds a second threshold.
6. The method according to any one of claims 1 to 5, characterized in that: The traffic adjustment condition includes that a route adjustment policy generated by the second network device does not exist on the first network device, and the route adjustment policy is used to alleviate congestion of the link between the first network and the second network through traffic adjustment.
7. The method according to any one of claims 1 to 6, characterized in that: The quality information includes total bandwidth and bandwidth occupancy rate; The step of adjusting the target traffic on the first link to the second link includes: Determine a traffic adjustment value based on the total bandwidth and the bandwidth occupancy rate in the first quality information and the second quality information; Determining a first target flow according to the flow adjustment value, wherein the flow value of the first target flow matches the flow adjustment value; The first target flow is adjusted to the second link.
8. The method according to claim 7, characterized in that The determining the traffic adjustment value based on the total bandwidth and the bandwidth occupancy rate in the first quality information and the second quality information includes: determining a bandwidth ratio between the first link and the second link based on the total bandwidth in the first quality information and the second quality information; Determine a first adjustment value based on the bandwidth ratio, and the total bandwidth and bandwidth occupancy in the first quality information and the second quality information, wherein the first adjustment value satisfies that after the traffic with a total size of the first adjustment value on the first link is adjusted to the second link, the traffic between the first link and the second link still satisfies the bandwidth ratio; Based on the first adjustment value, the flow adjustment value is determined.
9. The method according to claim 8, characterized in that The determining the flow adjustment value based on the first adjustment value includes: Determine a second adjustment value corresponding to each link based on a first threshold value, and a total bandwidth and a bandwidth occupancy rate of each link in at least one link connected to the fourth network device, wherein the first threshold value is a threshold value used to determine link congestion; The minimum value between the first adjustment value and the second adjustment value corresponding to the at least one link is determined as the traffic adjustment value.
10. The method according to any one of claims 7 to 9, characterized in that: The determining the first target flow according to the flow adjustment value includes: In descending order of flow, select N flows ranked first from at least one flow as the first target flow, the total flow value of the N flows does not exceed the flow adjustment value, and N is a positive integer.
11. The method according to claim 10, characterized in that The total size of the N traffic flows does not exceed α times the traffic adjustment value, where α is greater than 0 and less than 1.
12. The method according to any one of claims 1 to 11, characterized in that: The step of adjusting the target traffic on the first link to the second link includes: Lower the priority of a first target route sent by the first network device to the second network, where the prefix of the first target route is the destination address of the target traffic.
13. The method according to any one of claims 1 to 12, characterized in that: The step of adjusting the target traffic on the first link to the second link includes: A route adjustment policy is sent to the second network device, wherein the route adjustment policy instructs the second network device to increase the priority of a second target route sent by the second network device to the second network, wherein the prefix of the second target route is the destination address of the target traffic.
14. The method according to claim 13, characterized in that The routing adjustment policy is sent through routing policy allocation RPD routing.
15. The method according to any one of claims 12 to 14, characterized in that: The target route is sent via Border Gateway Protocol BGP routing.
16. The method according to any one of claims 1 to 15, characterized in that: The method further comprises: If it is determined based on the first quality information and the second quality information that a traffic restoration condition is met, part or all of the target traffic is restored from the second link to the first link.
17. The method according to claim 16, characterized in that The traffic recovery condition includes that the first quality information is lower than a third threshold.
18. The method according to claim 16 or 17, characterized in that The traffic recovery condition includes that the second quality information exceeds a fourth threshold, and / or that a difference between the second quality information and the first quality information exceeds a fifth threshold.
19. The method according to any one of claims 16 to 18, characterized in that: The restoring part or all of the target traffic from the second link to the first link includes: In order of flow rate from small to large, select M flows ranked first from the flows corresponding to the target flow rate as the second target flow rate, where M is a positive integer; The second target flow is restored from the second link to the first link.
20. The method of claim 19, wherein: The total size of the M streams does not exceed a sixth threshold.
21. The method according to any one of claims 1 to 20, characterized in that The method further comprises: If an abnormal situation occurs during the flow adjustment process, the flow adjustment process is exited; The abnormal situation includes at least one of the following situations: The traffic on the second link is being adjusted to the first link; The connection between the first network device and the third network device is interrupted.
22. The method according to any one of claims 1 to 21, characterized in that The first network device is further connected to the fourth network device via a third link, and the second network device is further connected to the third network device via a fourth link; the method further includes: Acquire third quality information and fourth quality information, wherein the third quality information includes quality information of the third link, and the fourth quality information includes quality information of the fourth link, and the third quality information and the fourth quality information are also used to determine whether the traffic adjustment condition is met.
23. The method according to any one of claims 1 to 22, characterized in that The first network further includes a fifth network device, the first network device is further connected to the fifth network device via a fifth link, and the method further includes: Acquire fifth quality information, where the fifth quality information includes quality information of the fifth link, and the fifth quality information is also used to determine whether the traffic adjustment condition is met.
24. The method according to any one of claims 1 to 23, characterized in that The second quality information is obtained through Border Gateway Protocol-Link State BGP-LS routing.
25. The method according to any one of claims 1 to 24, characterized in that An external Border Gateway Protocol EBGP neighbor relationship is established between the first network device and the third network device, and between the second network device and the fourth network device; and / or, An internal Border Gateway Protocol (IBGP) neighbor relationship is established between the first network device and the second network device, and between the third network device and the fourth network device.
26. A communication device, characterized in that: The device comprises a processor and a memory; The memory is used to store computer programs; The processor is configured to implement the steps of the method according to any one of claims 1 to 25 when executing the computer program.
27. A communication system, characterized in that: The system includes a first network device and a second network device, wherein the first network device and the second network device are traffic inlet devices of a first network, the first network device is connected to a third network device in a second network via a link, and the second network device is connected to a fourth network device in the second network via a link; The first network device is used to execute the steps of the method according to any one of claims 1-25.
28. A computer-readable storage medium, characterized in that: The storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 25 is implemented.
29. A computer program product, characterized in that The computer program product stores computer instructions, and when the computer instructions are executed by a processor, the steps of the method according to any one of claims 1 to 25 are implemented.
Citation Information
Patent Citations
Link congestion processing method, communication system and related device
CN120021221A
Data traffic processing method and related network equipment
CN110300431A
Network optimization method and system and network equipment
CN110661708A
Congested link processing method and device and network controller
CN115865812A
Transmission path adjustment method, storage medium and electronic device
CN116032843A
Cited By
Message forwarding method, apparatus and electronic device
US20260095430A1