Tunnel selection method and device, network equipment and program product

By receiving link detection result packets in the SRv6 network and calculating the tunnel bandwidth utilization rate, the new tunnel is selected to solve the problems of high controller pressure and network congestion in the SD-WAN centralized control scheme, and the balanced utilization of network bandwidth and improved service stability are achieved.

CN119835115AActive Publication Date: 2025-04-15MAIPU COMM TECH CO LTD
View PDF 12 Cites 0 Cited by

Patent Information

Application Number
CN202411973280.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-30
Publication Date
2025-04-15
Estimated Expiration
2044-12-30

AI Technical Summary

Technical Problem

In the SD-WAN centralized control scheme, the controller has high processing pressure, high resource requirements, and the network nodes are far away from the controller, and the real-time and effectiveness of scheduling are poor, resulting in the risk of congestion in the network and affecting the stability of the service.

Method used

By receiving link detection result messages sent by non-head nodes in the SRv6 network, the bandwidth utilization rate of each link in the traffic preferred tunnel is calculated. If the preset threshold is exceeded, a new preferred tunnel is selected from the preset available tunnels to realize tunnel selection based on bandwidth utilization.

Benefits of technology

It realizes balanced utilization of network bandwidth, avoids network congestion, improves service stability, and reduces dependence on controllers, improving network reliability and real-time scheduling.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119835115A_ABST
    Figure CN119835115A_ABST
Patent Text Reader

Abstract

The present invention relates to the technical field of data communication, and provides a tunnel selection method and apparatus, a network device and a program product, applied to a head node in an SRv6 network, the method comprising: receiving a link detection result message sent by a non-head node; and according to the link detection information in the link detection result message, calculating the bandwidth utilization rate of each section of link in the optimal tunnel of the service, and if the bandwidth utilization rate of any section of link in the optimal tunnel is greater than a preset scheduling threshold, selecting a new optimal tunnel from the preset available tunnels. According to the invention, the link bandwidth can be fully utilized, and the network processing efficiency and reliability are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of data communication technology, and in particular to a tunnel selection method, device, network equipment and program product. Background Art

[0002] With the development of network technology, WAN scenarios are gradually evolving towards SD-WAN (Software Defined Wide Area Network) and SRv6 (Segment Routing IPv6, segment routing based on IPv6 forwarding plane). SD-WAN uses the principles of SDN (Software Defined Network) to manage and optimize the performance of WANs. As an innovative technology application based on IPv6, SRv6 has the advantages of high network programmability and strong scalability. The combination of SD-WAN and SRv6 can provide enterprises with more flexible and efficient WAN solutions.

[0003] The centralized control solution is a typical SD-WAN SRv6 implementation solution. The controller collects information such as link quality (such as packet loss, latency, jitter) and link bandwidth utilization of the entire network through technologies such as In-situ Flow Information Telemetry (IFIT) and Telemetry (remote telemetry). The controller centrally calculates and dynamically adjusts the tunnel path of the service traffic. This solution requires the controller to detect and control all devices in real time, resulting in a high degree of dependence of the entire network on the controller, high processing pressure on the controller, and high resource requirements for the controller. In addition, some network nodes are far away from the controller, and the scheduling real-time and effectiveness are poor, which makes the network congestion risk and affects service stability. Summary of the invention

[0004] The present invention aims to provide a tunnel selection method, device, network equipment and program product, which can make balanced use of network bandwidth, avoid network congestion risks and improve service stability.

[0005] The embodiments of the present invention can be implemented as follows:

[0006] In a first aspect, the present invention provides a tunnel selection method, which is applied to a head node in an SRv6 network, and the method includes:

[0007] Receiving a link detection result message sent by the non-head node;

[0008] The bandwidth utilization of each link in the preferred tunnel of the service is calculated according to the link detection information in the link detection result message. If the bandwidth utilization of any link in the preferred tunnel is greater than a preset scheduling threshold, a new preferred tunnel is selected from the preset available tunnels.

[0009] In an optional implementation manner, the link detection information includes interface bandwidth and interface rate, and the step of calculating the bandwidth utilization of each link in the preferred tunnel of the service according to the link detection information in the link detection result message includes:

[0010] Determining the link bandwidth of each link in the preferred tunnel according to the interface bandwidth of each link in the preferred tunnel;

[0011] Determining the transmission rate of each link segment in the preferred tunnel according to the interface rate of each link segment in the preferred tunnel;

[0012] The ratio of the transmission rate of each link segment in the preferred tunnel to the link bandwidth is calculated to obtain the bandwidth utilization of each link segment in the preferred tunnel.

[0013] In an optional implementation manner, there are multiple preset available tunnels, and the step of selecting a new preferred tunnel from the preset available tunnels includes:

[0014] Acquire link transmission information of each preset available tunnel, where the link transmission information represents the transmission capacity of the preset available tunnel;

[0015] A new preferred tunnel is selected from the preset available tunnels according to the link transmission information of each preset available tunnel and the preset service requirements.

[0016] In an optional implementation manner, the preset service requirement includes a service requirement bandwidth, and the step of selecting a new preferred tunnel from the preset available tunnels according to the link transmission information of each preset available tunnel and the preset service requirement includes:

[0017] A candidate tunnel is determined from the preset available tunnels in order of priority from high to low, and the remaining bandwidth of all segment links in the candidate tunnel is calculated according to the link transmission information of the candidate tunnel; if the remaining bandwidth of all segment links in the candidate tunnel is greater than or equal to the service demand bandwidth, the candidate tunnel is used as a new preferred tunnel for the service.

[0018] The step of calculating the remaining bandwidth of all segment links in the candidate tunnel according to the link transmission information of the candidate tunnel comprises:

[0019] According to the link bandwidth and transmission rate of all the segment links in the candidate tunnel, the remaining bandwidth of all the segment links in the candidate tunnel is calculated.

[0020] In an optional implementation manner, before the step of receiving the link detection result message sent by the non-head node, the method further includes:

[0021] An SRv6 message is sent to a non-head node, where the SRv6 message carries a flag bit for enabling link detection, so that the non-head node obtains link detection information based on the flag bit.

[0022] In a second aspect, the present invention provides a tunnel selection method, which is applied to a non-head node in an SRv6 network, and the method includes:

[0023] Receive an SRv6 message sent by a head node, the SRv6 message carrying a flag bit for enabling link detection, create a flow detection instance based on the flag bit for enabling link detection, and send a link detection result message to the head node based on the flow detection instance, wherein the link detection result message includes link detection information; or

[0024] Pre-configure and enable the link detection function, and when detecting that the change amplitude of its own bandwidth utilization exceeds a preset amplitude threshold, send a link detection result message to the head node, wherein the link detection result message includes link detection information; or

[0025] According to a preset period, a link detection result message is sent to the head node, wherein the link detection result message includes link detection information.

[0026] In a third aspect, the present invention provides a tunnel selection device, applied to a head node in an SRv6 network, the device comprising:

[0027] A receiving module, used to receive the link detection result message sent by the non-head node;

[0028] The selection module is used to calculate the bandwidth utilization of each link in the preferred tunnel of the service according to the link detection information in the link detection result message, and if the bandwidth utilization of any link in the preferred tunnel is greater than a preset scheduling threshold, a new preferred tunnel is selected from the preset available tunnels.

[0029] In a fourth aspect, the present invention provides a tunnel selection device, applied to a non-head node in an SRv6 network, the device comprising:

[0030] A detection module, configured to receive an SRv6 message sent by a head node, the SRv6 message carrying a flag bit for enabling link detection, creating a flow detection instance based on the flag bit for enabling link detection, and sending a link detection result message to the head node based on the flow detection instance, wherein the link detection result message includes link detection information; or

[0031] A detection module, used for pre-configuring and enabling a link detection function, and sending a link detection result message to the head node when detecting that the change amplitude of its own bandwidth utilization exceeds a preset amplitude threshold, wherein the link detection result message includes link detection information; or

[0032] The detection module is used to send a link detection result message to the head node according to a preset period, wherein the link detection result message includes link detection information.

[0033] In a fifth aspect, the present invention provides a network device, comprising a processor and a memory, wherein the memory is used to store a program, and the processor is used to implement the tunnel selection method as described in the first aspect above, or implement the tunnel selection method as described in the second aspect above, when executing the program.

[0034] In a sixth aspect, the present invention provides a program product, which, when executed by a processor, implements the tunnel selection method as described in the first aspect above, or implements the tunnel selection method as described in the second aspect above.

[0035] Compared with the prior art, the present invention calculates the bandwidth utilization of each link in the preferred tunnel of the service based on the link detection information in the link detection result message sent by the non-head node. If the bandwidth utilization of any link in the preferred tunnel is greater than the preset scheduling threshold, a new preferred tunnel is selected from the preset available tunnels, thereby realizing tunnel selection based on bandwidth utilization, thereby achieving balanced utilization of network bandwidth, avoiding the risk of network congestion, and improving service stability. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for use in the embodiments are briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present invention and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without creative work.

[0037] Figure 1 This is an example diagram of an application scenario provided by this embodiment.

[0038] Figure 2 This is a block diagram of an example network device provided in this embodiment.

[0039] Figure 3 This is a flowchart of a tunnel selection method provided in this embodiment.

[0040] Figure 4 This is a flowchart of a tunnel selection method provided in this embodiment.

[0041] Figure 5 This is a block diagram of an example of a tunnel selection device provided in this embodiment.

[0042] Figure 6 This is a block diagram of an example of a tunnel selection device provided in this embodiment.

[0043] Icons: 10 - network device; 11 - processor; 12 - memory; 13 - bus; 100 - tunnel selection device; 110 - receiving module; 120 - selection module; 130 - notification module; 200 - tunnel selection device; 210 - detection module. DETAILED DESCRIPTION

[0044] In order to make the purpose, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Generally, the components of the embodiments of the present invention described and shown in the drawings here can be arranged and designed in various different configurations.

[0045] Therefore, the following detailed description of the embodiments of the present invention provided in the accompanying drawings is not intended to limit the scope of the invention claimed for protection, but merely represents selected embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0046] It should be noted that similar reference numerals and letters denote similar items in the following drawings, and therefore, once an item is defined in one drawing, further definition and explanation thereof is not required in subsequent drawings.

[0047] In the description of the present invention, it should be noted that if the terms "upper", "lower", "inside", "outside", etc. appear to indicate an orientation or position relationship, they are based on the orientation or position relationship shown in the accompanying drawings, or are the orientation or position relationship in which the product of the invention is usually placed when used. They are only for the convenience of describing the present invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore cannot be understood as a limitation on the present invention.

[0048] In addition, the terms “first”, “second”, etc., if used, are merely used to distinguish between the descriptions and should not be understood as indicating or implying relative importance.

[0049] It should be noted that, in the absence of conflict, the features in the embodiments of the present invention may be combined with each other.

[0050] In order to solve the problem of high pressure on the controller in the SD-WAN centralized control solution, a distributed traffic scheduling method can be adopted. The solution based on SPR (Smart Policy Route) is a distributed traffic scheduling implementation method. In this solution, the controller sends business-related demands to the device, and the device independently selects the path according to business needs and network status. The tunnel head node device can collect link quality information including packet loss rate, delay and jitter in the tunnel path through flow detection, and select the tunnel that meets the service quality requirements. Although this solution can alleviate the pressure on the controller to a certain extent, it cannot schedule the tunnel path based on bandwidth utilization and cannot avoid network congestion.

[0051] In view of this, the present embodiment provides a tunnel selection method, apparatus, network device and program product, which can select a tunnel path based on bandwidth utilization, thereby achieving balanced utilization of network bandwidth, avoiding network congestion and improving service stability. It will be described in detail below.

[0052] Please refer to Figure 1 , Figure 1 This is an example diagram of an application scenario provided in this embodiment. Figure 1 In the process, CE (Customer Edge) and PE (Provider Edge) communicate, two PEs communicate through the provider (P) equipment, and the controller communicates with PE ( Figure 1 (The communication relationship between the two is not shown in the figure), CE1 is connected to PE1 and PE2 for communication, CE2 is connected to PE3 and PE4 for communication, PE1 and PE3 communicate through P1 equipment, and PE2 and PE4 communicate through P2 equipment.

[0053] Figure 1 In the example, there are two tunnels between PE1 and PE3: Tunnel 1 and Tunnel 2. When PE1 forwards the message from CE1, it receives the flow detection results sent by P1, P2, PE2, PE3, and PE4. The detection results include, but are not limited to, packet loss, delay, interface bandwidth (i.e., the maximum bandwidth of the interface), interface rate, etc., and judges whether the bandwidth utilization of tunnel 1 for currently forwarding messages exceeds the preset scheduling threshold based on its own detection results and the detection results sent by other devices. If the bandwidth utilization of tunnel 1 exceeds the preset scheduling threshold and tunnel 2 can meet the service requirements of the message to be forwarded, the message to be forwarded is scheduled from tunnel 1 to tunnel 2.

[0054] Figure 1In the network, CE devices are located at the edge of PE devices, close to the boundary of the user network. CE devices are usually part of the user network and can be routers, switches or other network devices, etc., responsible for connecting the user's traffic to the operator's network. PE devices are devices in the operator's network that are directly connected to CE devices or user networks. PE devices are usually responsible for implementing the operator's routing policies, QoS (quality of service) guarantees, security controls, etc. PE devices can be routers, multilayer switches (L2 / L3 Switches) or dedicated edge routers, etc. P devices refer to devices located in the operator's network. P devices are responsible for forwarding traffic within the network and usually have high capacity and high performance to ensure efficient operation of the network. P devices can be high-speed routers, core switches or label switching routers (LSRs), etc.

[0055] In an SRv6 network, PE devices are responsible for applying SRv6 encapsulation to traffic entering and leaving the user network, while P devices are responsible for processing SRv6 paths and forwarding traffic in the carrier network. CE devices are usually not directly involved in SRv6 processing, but they may configure some SRv6-compatible parameters to ensure compatibility with the carrier network and correct traffic forwarding.

[0056] According to the direction of message transmission, a message is sent from a user edge device and passes through at least one operator edge device before reaching another user edge device. When passing through multiple operator edge devices, it may also pass through operator devices connected to multiple operator edge devices. In this embodiment, the first operator edge device that the message passes through is called the head node, the last operator edge device that the message passes through is called the tail node, and the device between the head node and the tail node is called the intermediate node. Figure 1 After the message is sent from CE1, PE1 is the head node, PE3 is the tail node, and PE2, P1, P2 and PE4 are all intermediate nodes.

[0057] It should be noted that the above-mentioned head node, tail node and intermediate node are only exemplary descriptions. In fact, PE2 can also be the head node, PE4 can also be the tail node, and the remaining nodes are intermediate nodes.

[0058] Based on user service requirements and the entire network topology, the controller plans multiple SRv6 tunnels for each service, sends the SRv6 tunnels to the head node, and sets the preferred order of the target service among multiple tunnels (for example, setting the priority). The controller also needs to set a preset scheduling threshold on the head node. Optionally, the controller can also send the service demand bandwidth to the head node for the target service.

[0059] based on Figure 1 This embodiment also provides a schematic diagram of a network device, and the network device may be Figure 1 The device as the head node implements the tunnel selection method applied to the head node in this embodiment, and can also be Figure 1 The device serving as a non-head node implements the tunnel selection method applied to the non-head node in this embodiment, and the non-head node includes an intermediate node and a tail node.

[0060] Please refer to Figure 2 , Figure 2 This is a block diagram of a network device 10 provided in this embodiment. The network device 10 includes a processor 11, a memory 12 and a bus 13. The processor 11 and the memory 12 are connected via the bus 13.

[0061] The processor 11 may be an integrated circuit chip having signal processing capability. In the implementation process, each step of the tunnel selection method of this embodiment may be completed by an integrated logic circuit of hardware in the processor 11 or by instructions in the form of software. The above-mentioned processor 11 may be a general-purpose processor, including a CPU (Central Processing Unit), a NP (Network Processor), etc.; it may also be a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Logic Gate Array) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc.

[0062] The memory 12 is used to store a program for implementing the tunnel selection method. The program may be a software function module stored in the memory 12 in the form of software or firmware or solidified in the OS (Operating System) of the network device 10.

[0063] After receiving the execution instruction, the processor 11 executes the program to implement the tunnel selection method of this embodiment.

[0064] This embodiment first combines Figure 1 Application scenarios and Figure 2 The example block diagram of the network device 10 is shown in FIG. 1 , and the tunnel selection method applied to the head node in the SRv6 network is introduced. Please refer to Figure 3 , Figure 3 The following is a flow chart of a tunnel selection method provided in this embodiment. The method includes the following steps:

[0065] Step S101: receiving a link detection result message sent by a non-head node.

[0066] In this embodiment, the non-head node includes an intermediate node and a tail node. In some network structures, the non-head node is only a tail node without an intermediate node, and in other network structures, it may include at least one intermediate node and one tail node.

[0067] Step S102, based on the link detection information in the link detection result message, calculate the bandwidth utilization of each link in the preferred tunnel of the service. If the bandwidth utilization of any link in the preferred tunnel is greater than the preset scheduling threshold, select a new preferred tunnel from the preset available tunnels.

[0068] In this embodiment, the link detection information includes, but is not limited to, packet loss, delay, interface bandwidth, and interface rate. The non-head node may send the link detection information based on the notification of the head node, may send the link detection information periodically, or may send the link detection information when a preset condition is met, so as to avoid sending the link detection information to occupy bandwidth and affect the normal sending of the service message.

[0069] In this embodiment, in addition to the non-head node collecting its own link detection information, the head node also collects its own link detection information. The determination of whether the bandwidth utilization of each link in the preferred tunnel is greater than the preset scheduling threshold can be based on the link detection information of the non-head node or the link detection information of the head node and the non-head node.

[0070] In this embodiment, the bandwidth utilization rate represents the usage of the bandwidth, and the higher the bandwidth utilization rate, the greater the bandwidth pressure. The preset scheduling threshold can be set according to business needs, so as to select a tunnel according to business needs and realize the flexibility of tunnel selection.

[0071] The above method provided in this embodiment can perform tunnel selection based on bandwidth utilization, thereby achieving balanced utilization of network bandwidth, avoiding network congestion, and improving service stability.

[0072] In an optional implementation manner, a method for calculating the bandwidth utilization of each link in the preferred tunnel of the service is:

[0073] (1) determining the link bandwidth of each link in the preferred tunnel according to the interface bandwidth of each link in the preferred tunnel;

[0074] In this embodiment, the interface bandwidth includes the outbound interface bandwidth and / or the inbound interface bandwidth. The outbound interface bandwidth may be used as the link bandwidth, the inbound interface bandwidth may be used as the link bandwidth, or the average of the outbound interface bandwidth and the inbound interface bandwidth may be used as the link bandwidth.

[0075] (2) determining the transmission rate of each link segment in the preferred tunnel according to the interface rate of each link segment in the preferred tunnel;

[0076] In this embodiment, the interface rate includes the outgoing interface rate and / or the incoming interface rate. The outgoing interface rate can be used as the transmission rate, the incoming interface rate can be used as the transmission rate, or the average of the outgoing interface rate and the incoming interface rate can be used as the transmission rate.

[0077] (3) Calculate the ratio of the transmission rate of each link in the preferred tunnel to the link bandwidth, and obtain the bandwidth utilization of each link in the preferred tunnel.

[0078] In this embodiment, the controller presets available tunnels and preferred tunnels for each service plan according to the topology of the SRv6 network, and sends them to the head node. When the bandwidth utilization of the preferred tunnel is greater than the preset scheduling threshold, the head node can select a new preferred tunnel from the preset available tunnels. One implementation method is:

[0079] The link transmission information of each preset available tunnel is obtained, where the link transmission information represents the transmission capacity of a preset available tunnel.

[0080] A new preferred tunnel is selected from the preset available tunnels according to the link transmission information of each preset available tunnel and the preset service requirements.

[0081] In this embodiment, the new preferred tunnel is a tunnel whose transmission capacity can meet the preset service demand. The preset service demand can be a demand for the service sent by the controller to the head node, and the preset service demand includes, but is not limited to, the service demand bandwidth, delay demand, preset scheduling threshold, preset utilization threshold, etc. of the service, and can be at least one of them, for example, the required bandwidth is 20Mbps, the delay demand is 10 milliseconds, and the preset scheduling threshold and the preset utilization threshold are both set to 80%.

[0082] In this embodiment, the controller may also set a priority for each available tunnel so as to select a new preferred tunnel from the preset available tunnels according to the priority order. When the preset service requirement includes the service requirement bandwidth, a method for selecting a new preferred tunnel from the preset available tunnels according to the priority is as follows:

[0083] (1) A candidate tunnel is determined from the preset available tunnels in descending order of priority, and the remaining bandwidth of all segment links in the candidate tunnel is calculated based on the link transmission information of the candidate tunnel.

[0084] In this embodiment, the link transmission information includes link bandwidth and transmission rate. According to the link transmission information of each preset available tunnel, the remaining bandwidth of all segment links in each preset available tunnel can be calculated by: according to the link bandwidth and transmission rate of all segment links in each preset available tunnel, the remaining bandwidth of all segment links in each preset available tunnel is calculated.

[0085] Specifically, the remaining bandwidth of each link segment may be calculated based on the difference between the link bandwidth and the transmission rate of each link segment. Alternatively, the link effective bandwidth of each link segment may be calculated based on the link bandwidth of each link segment and a preset utilization threshold, and the remaining bandwidth of each link segment may be calculated based on the difference between the link effective bandwidth and the transmission rate of each link segment. The method for calculating the transmission rate has been described in the previous implementation manner and will not be repeated here. This embodiment provides two implementation methods for calculating the remaining bandwidth of any link segment: Method 1: Remaining bandwidth = link bandwidth - transmission rate; Method 2: Remaining bandwidth = link bandwidth * preset utilization threshold - transmission rate. The preset utilization threshold may be set in advance by the controller according to business requirements, and may be set to be the same as the preset scheduling threshold. For example, the preset utilization threshold may be set to 80%.

[0086] (2) If the remaining bandwidths of all segment links in the candidate tunnel are greater than or equal to the required bandwidth of the service, the candidate tunnel is used as a new preferred tunnel for the service.

[0087] In this embodiment, a tunnel is selected from the preset available tunnels in order of priority from high to low as a candidate tunnel, and the remaining bandwidth of all segment links in the candidate tunnel is calculated. When the remaining bandwidth of all segment links of the candidate tunnel is greater than or equal to the service demand bandwidth, the calculation is stopped and the candidate tunnel is used as a new preferred tunnel for the service. In this way, a new preferred tunnel that meets the priority requirements can be quickly determined. For example, the available tunnels and their priorities are shown in Table 1:

[0088] Table 1

[0089] Preset available tunnels Priority Tunnel 1 3 Tunnel 2 2 Tunnel 3 4 Tunnel 4 1 Tunnel 5 5

[0090] First, tunnel 5 with the highest priority (priority 5) is selected as the candidate tunnel, and the remaining bandwidth of all segment links in tunnel 5 is calculated. If the remaining bandwidth of any segment link in tunnel 5 does not meet the service demand bandwidth, tunnel 3 with a priority of 4 is selected as the candidate tunnel, and the remaining bandwidth of all segment links in tunnel 3 is continued to be calculated. If the remaining bandwidth of any segment link in tunnel 3 does not meet the service demand bandwidth, tunnel 1 with a priority of 3 is selected as the candidate tunnel, and the remaining bandwidth of all segment links in tunnel 1 is continued to be calculated. If the remaining bandwidth of all segment links in tunnel 1 meets the service demand bandwidth, the calculation is stopped and tunnel 1 is used as the new preferred tunnel for the service.

[0091] In an optional implementation manner, in order to enable the non-head node to send the link detection information to the head node, so that the head node can perform correct tunnel selection according to the link detection information of all nodes to determine the preferred tunnel that best matches the current service, this embodiment also provides an implementation method for notifying the non-head node to send the link detection information:

[0092] An SRv6 message is sent to a non-head node, where the SRv6 message carries a flag bit for enabling link detection, so that the non-head node obtains link detection information based on the flag bit.

[0093] In this embodiment, the SRv6 message is a message with SRv6 encapsulation, which may be a data message or a detection message actively sent by the head node.

[0094] In this embodiment, when the head node sends a message through the SRv6 tunnel, the head node will add a flow detection message header to the SRH (Segment Routing Header) or DOH (Destination Options Header) when performing SRv6 tunnel encapsulation, and then forward the message along the SRv6 tunnel path. The purpose of inserting the flow detection message header is to collect information such as packet loss and latency. SRv6 tunnel encapsulation uses the head node IPv6 address as the destination address of the outer IPv6 message header.

[0095] This embodiment is expanded based on this method, and a flag for enabling bandwidth rate detection is carried in the added flow detection message header in the message. The non-head node receives the SRv6 message with SRv6 tunnel encapsulation, and the non-head node parses the SRv6 message. When it is identified that the SRv6 message carries the IFIT message header and the flag to enable bandwidth rate detection, the non-head node creates a flow detection instance and obtains the source address of the outer IPv6 header of the SRv6 message as the tunnel head node address of the flow detection instance. In this way, the non-head node can encapsulate the link detection information detected by each node in the link detection result message and send the link detection result message to the head node.

[0096] In this embodiment, in order to send the link detection information to the head node, the non-head node also provides a tunnel selection method applied to the non-head node. Figure 4 , Figure 4 The following is a flow chart of a tunnel selection method provided in this embodiment. The method includes the following steps:

[0097] Step S201: Receive an SRv6 message sent by a head node, where the SRv6 message carries a flag bit for enabling link detection.

[0098] In this embodiment, the SRv6 message is a message with SRv6 encapsulation, which may be a data message or a detection message actively sent by the head node.

[0099] Step S202: Create a flow detection instance based on the flag bit that enables link detection, and send a link detection result message to the head node based on the flow detection instance; wherein the link detection result message includes link detection information.

[0100] In this embodiment, the manner in which the non-head node sends the link detection result message to the head node based on the flow-following detection instance has been described above and will not be repeated here.

[0101] In addition to passively sending a link detection result message to the head node based on the SRv6 message sent by the head node, the non-head node also includes at least two ways of actively sending a link detection result message, which are as follows:

[0102] In this embodiment, a method is provided in which a non-head node actively sends a link detection result message:

[0103] The link detection function is pre-configured to enable, and when it is detected that the change range of its own bandwidth utilization exceeds the preset range threshold, a link detection result message is sent to the head node, wherein the link detection result message includes link detection information.

[0104] In this embodiment, in order to prevent the non-head node from sending link detection information and occupying bandwidth to affect the sending of service messages, the non-head node sends a link detection result message to the head node only when it detects that the change in its own bandwidth utilization exceeds a preset threshold.

[0105] In this embodiment, the preset amplitude threshold can be set according to the actual scenario needs. The non-head node can periodically collect link detection information, and calculate the bandwidth utilization of the relevant segment link of the non-head node in this period based on the collected link detection information. The calculation method of bandwidth utilization has been introduced in the previous article and will not be repeated here. According to the bandwidth utilization of this period and the previous period, the bandwidth utilization change amplitude is calculated, and then the bandwidth utilization change amplitude is compared with the preset amplitude threshold to determine whether to send a link detection result message. For example, the preset amplitude threshold is 1%. When the bandwidth utilization of the link segment changes from 50% to 51% (change amplitude 1%), the link detection result message is sent. Or when the bandwidth utilization of the link segment changes from 65% to 60% (change amplitude 5%), the link detection result message is sent; it is not sent at other times. When the bandwidth utilization of the link is relatively stable, there is no need to send link detection information, reducing the network overhead caused by sending link detection information.

[0106] In this embodiment, another method for a non-head node to actively send a link detection result message is provided: sending a link detection result message to the head node according to a preset period, wherein the link detection result message includes link detection information.

[0107] In order to exemplify the tunnel selection method provided in this embodiment from the whole process, this embodiment takes Figure 1 As an example, Figure 1 The entire process is introduced by taking PE1 as the head node, PE3 as the tail node, and the remaining PE devices and P devices as intermediate nodes.

[0108] (1) The controller deploys flow detection on all nodes in the SRv6 network and sets the maximum bandwidth of each interface (corresponding to the interface bandwidth in the above embodiment). For example, the maximum bandwidth of PE1-P1, P1-PE3, PE2-P2, and P2-PE4 is set to 100Mbps.

[0109] (2) The controller first sends the service requirements to the head node device, including: preset scheduling threshold, preset utilization threshold, service demand bandwidth, and network quality requirements such as latency, jitter, and packet loss. For example, for a certain service, the service demand bandwidth is set to 20Mbps and the latency threshold is set to 10 milliseconds. The preset scheduling threshold is 80%.

[0110] (3) The controller plans multiple SRv6 tunnel paths based on the network topology and user service requirements, and creates SRv6 tunnels to the head node. At the same time, for the target service, the controller sends the preset available tunnels and their preferred order to the head node. For example, the controller creates two SRv6 tunnels on the head node PE1: Tunnel 1 and Tunnel 2. For a certain service, the preset available tunnels include Tunnel 1 and Tunnel 2, and the preferred tunnel is Tunnel 1.

[0111] (4) When the head node sends a message through the SRv6 tunnel, it adds a flow detection message header to the message, and the flow detection message header carries a flag for enabling bandwidth rate detection. Therefore, when PE1 sends a message through tunnel 1 and tunnel 2, it will carry the flow detection message header and the flag for enabling bandwidth rate detection. The source address of the outer IPv6 header of the message after SRv6 tunnel encapsulation is the address of PE1.

[0112] (5) The intermediate node and the tail node receive the message with SRv6 tunnel encapsulation. The intermediate node and the tail node parse the message. When they recognize that the message carries the flow detection message header and the flag bit that enables bandwidth rate detection, they create a flow detection instance and obtain the source address of the outer IPv6 header of the message as the tunnel head node address of the flow detection instance. The flow detection instances created by each intermediate node and the tail node are shown in Table 2:

[0113] Table 2

[0114]

[0115] (6) The intermediate node and the tail node perform bandwidth rate detection and network quality detection for the flow detection instance. Then, they send a link detection result message containing bandwidth and rate information to the head node. The link detection result message is sent with the tunnel head node address, i.e., PE1, as the destination address, and carries link detection information.

[0116] This embodiment adopts a method of sending a link detection result message once in each fixed measurement period, performs bandwidth rate detection and delay measurement once every 30 seconds, and sends a link detection result message to the head node once.

[0117] For bandwidth rate detection, this embodiment adopts a solution combining the receiving rate and the sending rate of the interface.

[0118] The specific action of the bandwidth rate detection of the intermediate node is: obtaining the maximum bandwidth and current receiving rate of the incoming interface of the flow detection instance, and the maximum bandwidth and current sending rate of the outgoing interface of the flow detection instance.

[0119] The specific action of the bandwidth rate detection of the tail node is: obtaining the maximum bandwidth and current receiving rate of the incoming interface of the flow detection instance.

[0120] (7) The head node receives the link detection result message containing link detection information such as bandwidth rate from the intermediate node and the tail node, and calculates the link bandwidth, transmission rate, and bandwidth utilization of each link in the SRv6 tunnel. The calculation method is as follows:

[0121] (7.1) The link detection result messages sent by the intermediate node and the tail node are used to obtain the maximum bandwidth of the outbound interface, the current sending rate of the outbound interface, the maximum bandwidth of the inbound interface, and the current receiving rate of the inbound interface of each link in the tunnel.

[0122] (7.2) The head node obtains the maximum bandwidth and current sending rate of the outbound interface of the first link from the directly connected outbound interface of the flow detection instance of the device.

[0123] (7.3) Calculate the average value of the maximum bandwidth of the outbound interface and the maximum bandwidth of the inbound interface of each link segment as the link bandwidth of the link segment; calculate the average value of the current sending rate of the outbound interface and the current receiving rate of the inbound interface of each link segment as the transmission rate of the link segment.

[0124] (7.4) Calculate the ratio of the transmission rate of each link segment to the link bandwidth as the bandwidth utilization of the link segment.

[0125] (8) When the bandwidth utilization of any link of the tunnel exceeds the preset scheduling threshold, the tunnel scheduling action is executed to try to select other tunnels that meet the service bandwidth requirements for the target service.

[0126] In this embodiment, the selected tunnel should meet the following requirements: the bandwidth utilization of each link segment does not exceed a preset scheduling threshold, and the remaining bandwidth of each link segment is greater than or equal to the service demand bandwidth.

[0127] In the initial state, the head node PE1 selects tunnel 1 as the SRv6 forwarding tunnel for the target service according to the set priority order.

[0128] Assuming that there is traffic from other services in the network, the bandwidth utilization of the link in tunnel 1 may exceed the preset scheduling threshold. For example, at a certain moment, the head node calculates the link transmission information and network quality of the two tunnels as shown in Table 3:

[0129] Table 3

[0130]

[0131]

[0132] In this case, the bandwidth utilization of the P1-PE3 link of Tunnel 1 is 85%, which exceeds the preset scheduling threshold, so the tunnel scheduling action is triggered, and an attempt is made to select other tunnels that meet the service bandwidth requirements for the target service. Since there is another available tunnel, namely Tunnel 2, for the target service, the bandwidth utilization of each link is less than the preset scheduling threshold, and the remaining bandwidth of each link is greater than or equal to the service demand bandwidth. In the case of latency requirements at the same time, Tunnel 2 also meets the service latency requirements, that is, the latency is less than 10ms. Therefore, Tunnel 2 is selected as the new SRv6 forwarding tunnel for the target service.

[0133] Through the above steps, when the bandwidth utilization of any link of the preferred tunnel exceeds the preset scheduling threshold, the target service can be automatically switched to other tunnels, thereby avoiding network congestion and ensuring service reliability.

[0134] As another implementation method, (4)-(6) in the above process can also be implemented in the following way:

[0135] The intermediate node and the tail node determine through configuration that the bandwidth rate detection needs to be performed on the flow detection instance. The timing for the intermediate node and the tail node to send the link detection result message containing the interface bandwidth and interface rate to the head node is when the change range of the current bandwidth utilization of the link compared with the bandwidth utilization when the link detection result message was sent last exceeds a preset change range threshold.

[0136] As another implementation, in the above process (8), when trying to select other tunnels that meet the service bandwidth requirements for the target service, in addition to the remaining bandwidth meeting the requirements, the priority order of multiple available tunnels for the target service defined on the head node can also be followed, with the priority being given to the lower the bandwidth utilization. If the bandwidth utilization of a certain link of the current forwarding tunnel of the target service exceeds the preset scheduling threshold, the tunnel with the remaining bandwidth meeting the conditions and the lowest bandwidth utilization is selected as the target tunnel from the preset available tunnels.

[0137] In order to execute the corresponding steps in the above embodiment and each possible implementation method, the implementation method of the tunnel selection device applied to the head node is given below. Figure 5 , Figure 5 A block diagram of a tunnel selection device provided in this embodiment. It should be noted that the basic principle and technical effect of the tunnel selection device 100 provided by the present invention are the same as those of the corresponding above-mentioned embodiments, which are not mentioned in this embodiment for the sake of brief description.

[0138] The tunnel selection device 100 includes a receiving module 110 and a selecting module 120 .

[0139] The receiving module 110 is configured to receive link detection information sent by a non-head node.

[0140] The selection module 120 is used to calculate the bandwidth utilization of each link in the preferred tunnel of the service based on the link detection information in the link detection result message. If the bandwidth utilization of any link in the preferred tunnel is greater than a preset scheduling threshold, a new preferred tunnel is selected from the preset available tunnels.

[0141] In an optional implementation manner, the link detection information includes interface bandwidth and interface rate, and the selection module 120 is specifically configured to:

[0142] Determining the link bandwidth of each link in the preferred tunnel according to the interface bandwidth of each link in the preferred tunnel;

[0143] Determining the transmission rate of each link segment in the preferred tunnel according to the interface rate of each link segment in the preferred tunnel;

[0144] The ratio of the transmission rate of each link segment in the preferred tunnel to the link bandwidth is calculated to obtain the bandwidth utilization of each link segment in the preferred tunnel.

[0145] In an optional implementation manner, there are multiple preset available tunnels.

[0146] The selection module 120 is further configured to:

[0147] Acquire link transmission information of each preset available tunnel, where the link transmission information represents the transmission capacity of the preset available tunnel;

[0148] A new preferred tunnel is selected from the preset available tunnels according to the link transmission information of each preset available tunnel and the preset service requirements.

[0149] In an optional implementation manner, the preset service requirement includes a service requirement bandwidth, and the selection module 120 is further configured to:

[0150] A candidate tunnel is determined from the preset available tunnels in order of priority from high to low, and the remaining bandwidth of all segment links in the candidate tunnel is calculated according to the link transmission information of the candidate tunnel; if the remaining bandwidth of all segment links in the candidate tunnel is greater than or equal to the service demand bandwidth, the candidate tunnel is used as a new preferred tunnel for the service.

[0151] In an optional implementation, the link transmission information includes link bandwidth and transmission rate, and the selection module 120 is further specifically used to calculate the remaining bandwidth of all segment links in the candidate tunnel according to the link bandwidth and transmission rate of all segment links in the candidate tunnel.

[0152] In an optional implementation, the tunnel selection device 100 further includes a notification module 130, which is used to: send an SRv6 message to a non-head node, wherein the SRv6 message carries a flag bit for enabling link detection, so that the non-head node obtains link detection information based on the flag bit.

[0153] In order to execute the corresponding steps in the above embodiment and each possible implementation method, another implementation method of the tunnel selection device applied to the non-head node is given below. Figure 6 , Figure 6 A block diagram of another tunnel selection device provided for this embodiment. It should be noted that the basic principle and technical effect of the tunnel selection device 200 provided by the present invention are the same as those of the corresponding above-mentioned embodiments, which are not mentioned in this embodiment for the sake of brief description.

[0154] In a possible implementation, the tunnel selection device 200 includes a detection module 210 .

[0155] The detection module 210 is configured to receive an SRv6 message sent by a head node, the SRv6 message carrying a flag bit for enabling link detection, create a flow detection instance based on the flag bit for enabling link detection, and send a link detection result message to the head node based on the flow detection instance. The link detection result message includes link detection information.

[0156] In a possible implementation, the tunnel selection device 200 includes a detection module 210, which is used to pre-configure and enable a link detection function, and when detecting that the change in its own bandwidth utilization exceeds a preset amplitude threshold, sends a link detection result message to the head node, wherein the link detection result message includes link detection information.

[0157] In a possible implementation, the tunnel selection device 200 includes a detection module 210, which is used to send a link detection result message to the head node according to a preset period, wherein the link detection result message includes link detection information.

[0158] This embodiment provides a program product to implement the tunnel selection method applied to the head node in the above embodiment, or to implement the tunnel selection method applied to the non-head node in the above embodiment.

[0159] This embodiment provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the tunnel selection method described in the above-mentioned embodiment is implemented.

[0160] In summary, the embodiments of the present invention provide a tunnel selection method, apparatus, network device and program product, the method comprising: receiving a link detection result message sent by a non-head node; calculating the bandwidth utilization of each link in the preferred tunnel of the service based on the link detection information in the link detection result message, if the bandwidth utilization of any link in the preferred tunnel is greater than a preset scheduling threshold, selecting a new preferred tunnel from the preset available tunnels. Compared with the prior art, this embodiment has at least the following advantages: (1) when the bandwidth utilization of any link in the preferred tunnel based on the link detection information sent by the non-head node is greater than the preset scheduling threshold, a new preferred tunnel is selected from the preset available tunnels to implement tunnel scheduling based on bandwidth utilization, thereby achieving balanced utilization of network bandwidth, avoiding the risk of network congestion, and improving business stability; (2) reducing dependence on the controller, improving network reliability, and improving scheduling real-time performance; (3) selecting the preferred tunnel in a manner of giving priority to the lower the bandwidth utilization, thereby reducing the probability of the selected preferred tunnel being scheduled again in a short period of time; (4) sending the link detection result message only when the change in the current bandwidth utilization of the link compared to the bandwidth utilization when the link detection result message was last sent exceeds a certain preset change range threshold. When the bandwidth utilization of the link is relatively stable, there is no need to send the link detection result message, thereby reducing the network overhead caused by sending the link detection result message.

[0161] The above are only various embodiments of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by the present invention, which should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention should be based on the protection scope of the claims.

Claims

1. A tunnel selection method, characterized in that: Applied to a head node in an SRv6 network, the method comprises: Receive link detection result message sent by non-head node; The bandwidth utilization of each link in the preferred tunnel of the service is calculated according to the link detection information in the link detection result message. If the bandwidth utilization of any link in the preferred tunnel is greater than a preset scheduling threshold, a new preferred tunnel is selected from the preset available tunnels.

2. The tunnel selection method according to claim 1, characterized in that: The link detection information includes interface bandwidth and interface rate, and the step of calculating bandwidth utilization of each link in the preferred tunnel of the service according to the link detection information in the link detection result message includes: Determining the link bandwidth of each link in the preferred tunnel according to the interface bandwidth of each link in the preferred tunnel; Determining the transmission rate of each link segment in the preferred tunnel according to the interface rate of each link segment in the preferred tunnel; The ratio of the transmission rate of each link segment in the preferred tunnel to the link bandwidth is calculated to obtain the bandwidth utilization of each link segment in the preferred tunnel.

3. The tunnel selection method according to claim 2, characterized in that: There are multiple preset available tunnels, and the step of selecting a new preferred tunnel from the preset available tunnels includes: Acquire link transmission information of each preset available tunnel, where the link transmission information represents the transmission capacity of the preset available tunnel; A new preferred tunnel is selected from the preset available tunnels according to the link transmission information of each preset available tunnel and the preset service requirements.

4. The tunnel selection method according to claim 3, characterized in that: The preset service requirement includes a service requirement bandwidth, and the step of selecting a new preferred tunnel from the preset available tunnels according to the link transmission information of each preset available tunnel and the preset service requirement includes: A candidate tunnel is determined from the preset available tunnels in order of priority from high to low, and the remaining bandwidth of all segment links in the candidate tunnel is calculated according to the link transmission information of the candidate tunnel; if the remaining bandwidth of all segment links in the candidate tunnel is greater than or equal to the service demand bandwidth, the candidate tunnel is used as a new preferred tunnel for the service.

5. The tunnel selection method according to claim 4, characterized in that: The link transmission information includes link bandwidth and transmission rate. The step of calculating the remaining bandwidth of all segment links in the candidate tunnel according to the link transmission information of the candidate tunnel includes: According to the link bandwidth and transmission rate of all the segment links in the candidate tunnel, the remaining bandwidth of all the segment links in the candidate tunnel is calculated.

6. The tunnel selection method according to any one of claims 1 to 5, characterized in that: Before the step of receiving the link detection result message sent by the non-head node, the method further includes: An SRv6 message is sent to a non-head node, where the SRv6 message carries a flag bit for enabling link detection, so that the non-head node obtains link detection information based on the flag bit.

7. A tunnel selection method, characterized in that: Applied to a non-head node in an SRv6 network, the method comprises: Receive an SRv6 message sent by a head node, the SRv6 message carrying a flag bit for enabling link detection, create a flow detection instance based on the flag bit for enabling link detection, and send a link detection result message to the head node based on the flow detection instance, wherein the link detection result message includes link detection information; or Pre-configure and enable the link detection function, and when detecting that the change amplitude of its own bandwidth utilization exceeds a preset amplitude threshold, send a link detection result message to the head node, wherein the link detection result message includes link detection information; or According to a preset period, a link detection result message is sent to the head node, wherein the link detection result message includes link detection information.

8. A tunnel selection device, characterized in that: A head node in an SRv6 network, the device comprising: A receiving module, used for receiving a link detection result message sent by a non-head node; The selection module is used to calculate the bandwidth utilization of each link in the preferred tunnel of the service according to the link detection information in the link detection result message, and if the bandwidth utilization of any link in the preferred tunnel is greater than a preset scheduling threshold, a new preferred tunnel is selected from the preset available tunnels.

9. A tunnel selection device, characterized in that: Applied to a non-head node in an SRv6 network, the device comprises: A detection module, configured to receive an SRv6 message sent by a head node, the SRv6 message carrying a flag bit for enabling link detection, create a flow detection instance based on the flag bit for enabling link detection, and send a link detection result message to the head node based on the flow detection instance, wherein the link detection result message includes link detection information; or A detection module, used for pre-configuring and enabling a link detection function, and sending a link detection result message to the head node when detecting that the change amplitude of its own bandwidth utilization exceeds a preset amplitude threshold, wherein the link detection result message includes link detection information; or The detection module is used to send a link detection result message to the head node according to a preset period, wherein the link detection result message includes link detection information.

10. A network device, characterized in that: The method comprises a processor and a memory, wherein the memory is used to store a computer program, and the processor is used to implement the tunnel selection method according to any one of claims 1 to 6, or implement the tunnel selection method according to claim 7 when executing the computer program.

11. A program product, characterized in that When the program product is executed by a processor, the tunnel selection method according to any one of claims 1 to 6 is implemented, or the tunnel selection method according to claim 7 is implemented.

Citation Information

Patent Citations

  • Message forwarding method and device

    CN112804148A

  • Message forwarding method and system in SRv6, electronic equipment and storage medium

    CN114124781A

  • Secure and trusted path node compression method

    CN115643311A

  • Message forwarding method and device, storage medium and electronic equipment

    CN116266822A

  • Apparatus and method for load balancing

    CN116547956A