Traffic scheduling method and system, and storage medium
By dynamically adjusting the priority and path selection of SR-TE path scheduling groups by the controller, the problem of uneven resource utilization in SR-TE traffic scheduling is solved, and more efficient service quality and network resource utilization are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ZTE CORP
- Filing Date
- 2021-05-06
- Publication Date
- 2026-08-04
AI Technical Summary
The existing Segmented Routing Traffic Engineering (SR-TE) cannot dynamically adjust traffic scheduling based on changes in network resources and node load, resulting in uneven resource utilization and decreased service quality.
The controller obtains network resource utilization, dynamically adjusts the load status of each service node in the SR-TE path scheduling group, sets the highest scheduling priority and normal scheduling priority, updates the SR-TE path group, and the headend node performs dynamic scheduling based on service flow characteristic information to ensure that service flows are forwarded on the appropriate path.
It achieves balanced utilization of network resources and load balancing of service nodes, improves service quality, and enables dynamic traffic scheduling to adapt to changes in network resources.
Smart Images

Figure CN115314440B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of mobile communications, and in particular to a traffic scheduling method, system, and storage medium. Background Technology
[0002] With the development and popularization of 5G, the demand for edge computing power will increase significantly. Edge computing and cloud computing work together to enable the digital transformation of industries. Specifically, cloud computing focuses on the analysis of non-real-time, long-cycle data, thus excelling in areas such as periodic maintenance and business decision support; while edge computing focuses on the analysis of real-time, short-cycle data, thus better supporting the real-time intelligent processing and execution of local businesses. Combined with the future trend of ubiquitous cloud-edge-device computing, the integration of computing and networks will become closer. Due to the limited computing power of a single node, large-scale computing services often need to be implemented through computing networks, the so-called "computing power networks." Computing power networks require a high degree of collaboration between the network and computing, embedding computing units and computing capabilities into the network to improve the utilization of computing resources. In a computing power network, users access the network through a computing power gateway. Device nodes, based on the needs of application services and considering the real-time network and computing resource conditions, schedule different applications to appropriate computing nodes for processing to ensure a good service experience.
[0003] Segment routing (SR) is a source routing protocol, also known as a segmented routing protocol. The source node (also called the headend node, referred to as the headend node in this paper) specifies the path for data packets in the network. A specific algorithm encodes the service path into an ordered list of segments, which is then encapsulated in the packet header to explicitly identify the path. Nodes along the forwarding path do not need to maintain state information for all possible flows passing through them; that is, "state is in the packet." Because the instructions are encoded in the packet header, nodes in the network only need to match the forwarding table and perform the operation after receiving the packet. Intermediate nodes in the path only need to forward the packet according to the path specified in the corresponding packet header. Based on this characteristic of segment routing, current Segment Routing Traffic Engineering (SR-TE) has advantages over traditional Resource Reservation Protocol Traffic Engineering (RSVP-TE) and is better suited for existing "computing power networks," such as Software Defined Networks (SDN).
[0004] However, current SR-TE systems, once the highest-priority path is determined during traffic scheduling, will only schedule traffic through that path regardless of changes in network resources. The entire traffic scheduling process completely ignores changes in the utilization of various network resources and the load on nodes forwarding data packets. Alternatively, traffic scheduling can map packets to SR-TE paths of the same priority within a set of SR-TE paths. However, the problem remains the same: all traffic can only be scheduled through the mapped path, and the entire traffic scheduling process still doesn't consider changes in the utilization of various network resources. Summary of the Invention
[0005] The purpose of this application is to provide a traffic scheduling method, system, and storage medium, which aims to perform dynamic traffic scheduling based on dynamically changing network resources and the load of nodes forwarding data packets in the network, thereby improving service quality.
[0006] To address the aforementioned technical problems, embodiments of this application provide a traffic scheduling method applied to a controller, comprising:
[0007] Obtain the utilization rate of preset resources in the network;
[0008] Based on the usage rate, determine the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created segmented routing traffic engineering SR-TE path scheduling group;
[0009] If, based on the load status of each service node, it is determined that there is an overloaded service node on the first SR-TE path, a second SR-TE path is determined based on the first SR-TE path, and the scheduling priority of the second SR-TE path is set to the highest scheduling priority, and the scheduling priority of the first SR-TE path is set to the normal scheduling priority, the updated SR-TE path scheduling group is obtained.
[0010] The updated SR-TE path scheduling group is sent to the headend node on the network side so that when the headend node receives a service flow that needs to be scheduled, it will guide the first service flow that meets the preset conditions to the first SR-TE path, guide the second service flow that meets the preset conditions to the second SR-TE path, and maintain the mapping relationship between the first service flow and the first SR-TE path, and between the second service flow and the second SR-TE path.
[0011] Wherein, the first service flow is the service flow that has been guided to the first SR-TE path before the creation of the second SR-TE path, and the second service flow is the new service flow received by the headend node after the creation of the second SR-TE path.
[0012] To achieve the above objectives, embodiments of this application also provide a traffic scheduling method applied to a headend node, comprising:
[0013] The receiver sends a segmented routing traffic engineering SR-TE path scheduling group, wherein the SR-TE path scheduling group includes at least one SR-TE path with the highest scheduling priority.
[0014] Upon receiving a service flow that needs to be scheduled, the service flow that meets the preset conditions is matched;
[0015] If the SR-TE path scheduling group includes only one SR-TE path with the highest scheduling priority, the matched service flow will be guided to the SR-TE path with the highest scheduling priority, and the mapping relationship between the service flow and the SR-TE path will be maintained.
[0016] Otherwise, based on the feature information of the matched service flow that meets the preset conditions and the scheduling priority corresponding to each SR-TE path in the SR-TE path scheduling group, the service flow that meets the preset conditions is guided to the matched SR-TE path.
[0017] To achieve the above objectives, embodiments of this application also provide a traffic scheduling system, including: a controller and a headend node;
[0018] The controller obtains the utilization rate of preset resources in the network;
[0019] The controller determines the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created segmented routing traffic engineering SR-TE path scheduling group based on the usage rate.
[0020] If, based on the load status of each service node, the controller determines that there is an overloaded service node on the first SR-TE path, determines a second SR-TE path based on the first SR-TE path, sets the scheduling priority of the second SR-TE path to the highest scheduling priority, and sets the scheduling priority of the first SR-TE path to the normal scheduling priority, the updated SR-TE path scheduling group is obtained.
[0021] The controller sends the updated SR-TE path scheduling group to the head node;
[0022] When the headend node receives a service flow that needs to be scheduled, it guides the first service flow that meets the preset conditions to the first SR-TE path, guides the second service flow that meets the preset conditions to the second SR-TE path, and maintains the mapping relationship between the first service flow and the first SR-TE path, and between the second service flow and the second SR-TE path.
[0023] Wherein, the first service flow is the service flow that has been guided to the first SR-TE path before the creation of the second SR-TE path, and the second service flow is the new service flow received by the headend node after the creation of the second SR-TE path.
[0024] To achieve the above objectives, embodiments of this application also provide a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it implements any of the traffic scheduling methods described above.
[0025] The traffic scheduling method, system, and storage medium proposed in this application aim to ensure resource balance in the network and load balancing of service nodes providing service functions. By setting a controller to obtain the utilization rate of preset resources in the network, and then determining the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created SR-TE path scheduling group based on the utilization rate, and when there are overloaded service nodes on the first SR-TE path, a second SR-TE path is determined based on the first SR-TE path. The scheduling priority of the second SR-TE path is set to the highest scheduling priority, and the scheduling priority of the first SR-TE path is set to a normal scheduling priority, thereby ensuring that the updated SR-TE path... There are multiple available SR-TE paths in the path scheduling group. Finally, the updated SR-TE path scheduling group is sent to the headend node on the network side. The headend node is configured to, when receiving a service flow that needs to be scheduled, before creating the second SR-TE path, continue to guide the service flow that has already been guided to the first SR-TE path to the first SR-TE path. After the creation of the second SR-TE path, the headend node will guide the new service flow received by the headend node to the second SR-TE path. The mapping relationship between the first service flow and the first SR-TE path, and between the second service flow and the second SR-TE path is maintained. In this way, the SR-TE path can be selected according to actual needs, that is, dynamic traffic scheduling is realized, thereby improving the quality of service. Attached Figure Description
[0026] One or more embodiments are illustrated by way of example with reference to the accompanying drawings, and these illustrative descriptions do not constitute a limitation on the embodiments.
[0027] Figure 1 This is a flowchart of the traffic scheduling method applied to the controller provided in this embodiment;
[0028] Figure 2 This is a schematic diagram of the message information encapsulated in the packet header of the service flow to be scheduled by the head node according to the SR-TE path scheduling group issued by the controller in the traffic scheduling method applied to the controller provided in the embodiments of this application.
[0029] Figure 3 This is a schematic diagram of another message information encapsulated by the head-end node in the packet header of the service flow that needs to be scheduled, according to the SR-TE path scheduling group issued by the controller in the traffic scheduling method applied to the controller provided in the embodiments of this application.
[0030] Figure 4 This application provides a schematic diagram of another message information encapsulated in the header of the service flow to be scheduled by the head node according to the SR-TE path scheduling group issued by the controller in the traffic scheduling method applied to the controller.
[0031] Figure 5 This is another flowchart of the traffic scheduling method applied to the controller provided in the embodiments of this application;
[0032] Figure 6 This is a flowchart of a traffic scheduling method applied to a headend node provided in an embodiment of this application;
[0033] Figure 7 This is another flowchart of the traffic scheduling method applied to the head-end node provided in the embodiments of this application;
[0034] Figure 8 This is a schematic diagram of the traffic scheduling system provided in the implementation of this application;
[0035] Figure 9 It is aimed at Figure 8 The diagram shown is a schematic representation of the actual network structure used for traffic scheduling. Detailed Implementation
[0036] In the embodiments of this application, the term "and / or" describes the relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. The character " / " generally indicates that the preceding and following associated objects have an "or" relationship.
[0037] In the embodiments of this application, the term "multiple" refers to two or more, and other quantifiers are similar.
[0038] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the various embodiments of this application will be described in detail below with reference to the accompanying drawings. However, those skilled in the art will understand that many technical details have been provided in the various embodiments of this application to help readers better understand this application. However, the technical solutions claimed in this application can be implemented even without these technical details and various changes and modifications based on the following embodiments. The division of the various embodiments below is for the convenience of description and should not constitute any limitation on the specific implementation of this application. The various embodiments can be combined with and referenced by each other without contradiction.
[0039] See Figure 1 , Figure 1 This is a flowchart of a traffic scheduling method provided in an embodiment of this application. In this embodiment, the method is mainly applied to a controller.
[0040] Understandably, in one example, the controller may be a centralized controller, i.e., one controller can control multiple headend nodes located on the network side.
[0041] Furthermore, the head-end node mentioned in this embodiment specifically refers to the edge device located in the core network layer, commonly known as the Provider Edge (PE), such as the edge router of the service provider backbone network.
[0042] Specifically, the headend node located on the network side is equivalent to a label edge router (LER, also known as an edge LSR), which is used to connect customer edge devices (CE) and carrier network backbone routers (P routers).
[0043] In one example, the CE router sends the traffic (traffic in the service flow) that the connected user equipment needs to forward to the PE router. The traffic flows into the user network through the PE router, or to the Internet Protocol (IP) backbone or Multi-Protocol Label Switching (MPLS) backbone.
[0044] Furthermore, it is worth mentioning that, in one example, the aforementioned CE router provides user access to the service by connecting to one or more PE routers.
[0045] Specifically, in one example, the CE router can be an Internet Protocol (IP) router that establishes an adjacency relationship with the connected PE router, thereby enabling the traffic that users need to forward to flow into the user network or to the IP / MPLS backbone through the adjacent PE router.
[0046] The working principles of the CE router, PE router, and P router mentioned above can be found in relevant materials by those skilled in the art, and will not be elaborated upon in this embodiment.
[0047] like Figure 1 As shown, the traffic scheduling method provided in this embodiment includes the following steps:
[0048] Step 101: Obtain the utilization rate of preset resources in the network.
[0049] Specifically, when user traffic flows into the network through the PE router, i.e., the headend node in this embodiment, it causes changes in the resource utilization of the service nodes used to provide service functions. Therefore, in order to achieve load balancing of the service nodes providing service functions and thus provide better service, in one embodiment, preset resources that affect the load status of service nodes can be predetermined, and then the utilization rate of the preset resources can be collected in time periods or according to preset cycles based on the determined preset resources.
[0050] Step 102: Based on the usage rate, determine the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created segmented routing traffic engineering SR-TE path scheduling group.
[0051] It should be noted that, in one example, if the SR-TE path is a segmented routing traffic tunnel path (hereinafter referred to as an SR-TE tunnel), then the pre-built SR-TE path scheduling group is formed by multiple SR-TE tunnels; if the SR-TE path is a segmented routing traffic engineering policy path (hereinafter referred to as an SR-TE policy), then the pre-built SR-TE path scheduling group is formed by multiple SR-TE policies; if the SR-TE path is a sub-path within an SR-TE tunnel, then the pre-built SR-TE path scheduling group is essentially an SR-TE tunnel; if the SR-TE path is a candidate path within an SR-TE policy, then the pre-built SR-TE path scheduling group is essentially an SR-TE policy; if the SR-TE path is a segment list within a CandidatePath within an SR-TE policy, then the pre-built SR-TE path scheduling group is essentially that Candidate Path.
[0052] In another example, the SR-TE paths included in the SR-TE path scheduling group can also be a combination of SR-TE tunnels and SR-TE policies.
[0053] Furthermore, it should be noted that the highest scheduling priority mentioned in this embodiment, and the subsequent ordinary scheduling priority, are not the same as the priority attributes defined for SR-TE paths in the prior art. Although both are priorities, the priority attributes set for SR-TE paths in the prior art specifically mean that only the SR-TE path with the highest priority can take effect and forward the service flow. That is, if the existing priority attributes are used to configure the priority of SR-TE paths in the SR-TE path scheduling group, only one SR-TE path is available, and the other SR-TE paths in the SR-TE path scheduling group are unusable. In this embodiment, however, all SR-TE paths in the SR-TE path scheduling group can be used. The SR-TE path with the highest scheduling priority will correspond to the newly received service flow, while the old service flow will generally correspond to the SR-TE path with the ordinary scheduling priority. In some cases, the old service flow may also correspond to the SR-TE path with the highest scheduling priority, for example, if the scheduling priority of the SR-TE path it was previously mapped to has changed.
[0054] To distinguish whether an SR-TE path in an SR-TE path scheduling group has the highest scheduling priority or a normal scheduling priority, in one embodiment, a switch flag can be used, such as setting it to on for the highest scheduling priority and off for a normal scheduling priority; numerical comparisons can also be used, such as the larger one having the highest scheduling priority or the smaller one having the highest scheduling priority; timestamps can also be used, such as the newest one having the highest scheduling priority; or sequence numbers can also be used, such as incrementing sequence numbers and the larger one having the highest scheduling priority, etc.
[0055] It should be understood that the above examples are merely examples listed for the purpose of better understanding the technical solutions of this embodiment, and are not intended to be the only limitation of this embodiment.
[0056] Step 103: If, based on the load status of each service node, it is determined that there is an overloaded service node on the first SR-TE path, a second SR-TE path is determined based on the first SR-TE path, and the scheduling priority of the second SR-TE path is set to the highest scheduling priority, while the scheduling priority of the first SR-TE path is set to the normal scheduling priority, thus obtaining the updated SR-TE path scheduling group.
[0057] Regarding the method of determining the second SR-TE path based on the first SR-TE path, in one example, it can be by creating a new SR-TE path that can meet the same user needs as the second SR-TE path. In another example, it can be by selecting an existing SR-TE path from the SR-TE path scheduling group as the second SR-TE path.
[0058] Specifically, in order to ensure that SR-TE paths in the same SR-TE path scheduling group provide the same service functions and that the headend node and the destination node are the same, when determining the second SR-TE path based on the first SR-TE path, the user requirements corresponding to the first SR-TE path can be obtained, and then a new SR-TE path from the headend node to the destination node can be created based on the same user requirements as the second SR-TE path. That is, a new SR-TE path that can meet the same user requirements can be created as the second SR-TE path.
[0059] To better understand, this embodiment provides a specific method for creating a new second SR-TE path:
[0060] (1) Based on the first SR-TE path, determine the head node and destination node of the second SR-TE path to be created, as well as the constraints that the path to be calculated needs to meet, such as including an ordered list of Service Functions, selecting a link with specific bandwidth or a low-latency link, etc. These will not be listed here, and this embodiment does not impose any restrictions on them.
[0061] (2) Calculate and create the second SR-TE path.
[0062] This ensures that the newly created second SR-TE path is designed for the same user needs as the first SR-TE path.
[0063] It should be understood that in the specific implementation, the nodes or links contained in the second SR-TE path and the first SR-TE path are not necessarily related. They may happen to have some overlapping nodes or links, or they may not intersect at all.
[0064] Furthermore, in one example, there may be multiple SR-TE paths in the pre-created SR-TE path scheduling group. That is, in addition to the first SR-TE path with the highest scheduling priority, the pre-created SR-TE path scheduling group may also include multiple SR-TE paths with normal scheduling priorities. In order to distinguish them from the first SR-TE path and the second SR-TE path mentioned above, they are referred to as the third SR-TE path below. That is, the third SR-TE path is the SR-TE path in the pre-built SR-TE path scheduling group other than the first SR-TE path.
[0065] Accordingly, after performing the above steps (1) and (2), if the creation of a new second SR-TE path fails, it is possible to search for a suitable third SR-TE path in the SR-TE path scheduling group.
[0066] Specifically, if, based on the load status of each service node on the third SR-TE path, it is determined that there are no overloaded service nodes on the third SR-TE path, meaning that the processing capacity of each service node still has spare capacity, then the third SR-TE path is determined as the second SR-TE path with the highest scheduling priority; otherwise, no processing is performed.
[0067] It is worth mentioning that whether to decide to redetermine the second SR-TE path with the highest scheduling priority based on the change rate of preset resources in the network can be determined in advance according to the triggering conditions based on business needs, and the triggering conditions can be configured locally on the controller.
[0068] In another example, when the head node requests path calculation from the controller, it can explicitly tell the controller to determine the new second SR-TE path with the highest scheduling priority for the SR-TE path scheduling group based on the preset rate of change of resources in the network.
[0069] As can be seen from the above description, in the updated SR-TE path scheduling group, the first SR-TE path no longer has the highest scheduling priority compared to the second SR-TE path, but has become the same ordinary scheduling priority as the third SR-TE path.
[0070] Step 104: The updated SR-TE path scheduling group is sent to the head node on the network side.
[0071] Specifically, in one example, when the controller sends the updated SR-TE path scheduling group to the head node on the network side, it can do so by sending the SR-TE paths in the SR-TE path scheduling group to the head node one by one. For example, it can traverse the SR-TE path scheduling group and then send the traversed SR-TE paths to the head node until all SR-TE paths in the SR-TE path scheduling group have been sent to the head node.
[0072] In another example, when the controller sends the updated SR-TE path scheduling group to the headend node on the network side, it can also send the SR-TE path scheduling group as a whole directly to the headend node. For example, the SR-TE path scheduling group can be encapsulated according to a preset format, and then the encapsulated SR-TE path scheduling group can be sent directly to the headend node. After receiving the encapsulated SR-TE path scheduling group, the headend node can decapsulate it according to the agreed decapsulation method, thereby obtaining an SR-TE path scheduling group that includes at least the first SR-TE path and the second SR-TE path mentioned above.
[0073] In another example, to ensure that the headend node knows which SR-TE paths belong to the same SR-TE path scheduling group, and thus manage them on a group basis, it is possible to quickly distinguish which SR-TE path in which SR-TE path scheduling group can meet which type of user needs and business scenarios, so as to better provide high-quality services.
[0074] Before performing step 104 above, the same path scheduling group identifier can be assigned to each SR-TE path in the SR-TE path scheduling group, so that the head-end node can manage the received SR-TE path according to the path scheduling group identifier, so that it can quickly distinguish which SR-TE path in which SR-TE path scheduling group can adapt to which type of user needs and business scenarios, thereby providing high-quality services.
[0075] Furthermore, it should be noted that after the controller sends the updated SR-TE path scheduling group, which includes at least one first SR-TE path and one second SR-TE path, to the headend node, the headend node can directly match the first and second service flows that meet the preset conditions from the received service flows when it receives the service flows that need to be scheduled (which can also be understood as the traffic that needs to be scheduled), based on preset conditions such as "all packets destined for server1-IP". The headend node will then guide the first service flow that meets the preset conditions to the first SR-TE path mentioned above, and guide the second service flow that meets the preset conditions to the second SR-TE path mentioned above. The headend node will also maintain the mapping relationship between the first service flow and the first SR-TE path, and the mapping relationship between the second service flow and the second SR-TE path.
[0076] Specifically, in this embodiment, the mapping relationship between any SR-TE path maintained by the headend node and the corresponding service flow follows the following logic:
[0077] For service flows that have not yet generated a mapping relationship, they will be guided to the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group. For service flows that have already generated a mapping relationship, they will continue to be guided to the previous SR-TE path, that is, the current corresponding SR-TE path. The scheduling priority of this SR-TE path may be the highest or ordinary.
[0078] Based on this logic, the first business flow mentioned above specifically refers to the business flow that has been guided to the first SR-TE path before the creation of the second SR-TE path, that is, the business flow that has already generated a mapping relationship; the second business flow specifically refers to the new business flow received by the head-end node after the creation of the second SR-TE path, that is, the business flow that has not yet generated a mapping relationship.
[0079] Furthermore, it is worth mentioning that, in order to ensure that the pre-created SR-TE path scheduling group can be applied to various use cases, including computing power networks, after obtaining the SR-TE path scheduling group, the current network topology can be determined periodically, and then the SR-TE path scheduling group can be maintained according to the current network topology.
[0080] Regarding the method of determining the network topology, it can be determined actively by the controller periodically, or it can be determined passively by receiving information about changes in the network topology when changes occur. This embodiment does not impose any restrictions on this method.
[0081] Furthermore, in this embodiment, maintaining the SR-TE path scheduling group mentioned above can be either updating the forwarding information of a certain SR-TE path in the SR-TE path scheduling group or deleting a certain SR-TE path.
[0082] Furthermore, after updating or deleting SR-TE paths in the SR-TE path scheduling group, it is also necessary to reset the scheduling priority of the remaining SR-TE paths according to the actual situation.
[0083] Regarding the operation of updating SR-TE paths in the SR-TE path scheduling group mentioned above, the specific implementation is as follows in one example:
[0084] For each SR-TE path in the SR-TE path scheduling group, if the service functions provided by all service nodes on the SR-TE path are not invalid, the forwarding information corresponding to the SR-TE path is updated according to the network topology so that the head-end node forwards the service flow according to the updated forwarding information of the SR-TE path.
[0085] It should be noted that since updating the SR-TE path only updates the forwarding information of the new service function to the corresponding service node, the original service functions provided by each service node remain effective. Therefore, updating the SR-TE path will usually not change the scheduling priority of the SR-TE path.
[0086] Accordingly, regarding the operation of deleting SR-TE paths from the SR-TE path scheduling group mentioned above, in one example, the specific implementation is as follows:
[0087] For each SR-TE path in the SR-TE path scheduling group, if there is a service node on the SR-TE path whose provided service function has failed, the SR-TE path is deleted according to the network topology, and the head node is notified to delete the SR-TE path and the mapping relationship between the SR-TE path and the forwarded service flow.
[0088] Furthermore, when deleting an SR-TE path, to ensure that there is always one SR-TE path with the highest scheduling priority in the SR-TE path scheduling group after deletion, it is necessary to first determine whether the scheduling priority of the SR-TE path to be deleted is the highest scheduling priority.
[0089] Accordingly, if the scheduling priority of the SR-TE path to be deleted is the highest scheduling priority, a new SR-TE path that also meets the user's needs is created as the second SR-TE path. Alternatively, if creating a new path fails, a suitable third SR-TE path is selected from the SR-TE path scheduling group as the second SR-TE path, and the scheduling priority of the second SR-TE path is set to the highest scheduling priority. Then, the operation of deleting the SR-TE path according to the network topology is executed. If the scheduling priority of the SR-TE path to be deleted is not the highest scheduling priority, the operation of deleting the SR-TE path according to the network topology is executed directly.
[0090] Therefore, by monitoring whether all the service functions provided by the service nodes on the SR-TE path have failed, the SR-TE path where the service node is located can be updated or deleted, thereby achieving the maintenance of the obtained SR-TE path scheduling group, so that the SR-TE paths in the SR-TE path scheduling group can provide better services.
[0091] As described above, SR-TE paths and SR-TE path scheduling groups have various specific forms. To better understand the traffic scheduling method provided in this embodiment, the following examples illustrate this: "An SR-TE path is a Candidate Path within an SR-TE policy, and an SR-TE path scheduling group is that SR-TE policy," and "An SR-TE path is an SR-TE tunnel, and an SR-TE path scheduling group is a group formed by multiple SR-TE tunnels." Figures 2 to 3 Please provide a detailed explanation:
[0092] Method 1: An SR-TE path is a Candidate Path within an SR-TE policy, and the SR-TE path scheduling group is that SR-TE policy.
[0093] Specifically, draft-ietf-idr-segment-routing-te-policy-11 describes how the controller distributes SR-TE policies to network-side head nodes via the Border Gateway Protocol (BGP) channel. An SR-TE policy can contain multiple Candidate Paths, and each Candidate Path may contain multiple Segment Lists to distribute load. When an SR-TE policy is advertised via BGP, it is actually done on a Candidate Path basis, using the key value of the SR Policy SAFI NLRI.<Distinguisher,Policy Color,Endpoint> It actually represents a Candidate Path.<Policy Color,Endpoint> An SR-TE policy is identified, and the Distinguisher identifies a Candidate Path within that SR-TE policy. The Candidate Path's attributes are carried in the Tunnel Encaps Attribute. In existing technologies, among multiple Candidate Paths included in an SR-TE policy, only the Candidate Path with the highest priority indicated by its priority attribute (specified by the Preference Sub-TLV) takes effect. Clearly, this activation logic does not meet the requirements of this embodiment.
[0094] Therefore, this embodiment will add a scheduling field (which can be represented by a Scheduling Flag, occupying 1 bit, denoted as S-Flag) to the Flags field of the Candidate Path's Preference Sub-TLV, as a switch flag to indicate whether the Candidate Path has the highest scheduling priority or a normal scheduling priority. See also Figure 2 When S-Flag is set to 1, it indicates that the Candidate Path has the highest scheduling priority within its SR-TE policy; when set to 0, it indicates a normal scheduling priority.
[0095] The rules for setting and processing S-Flags for the controller and headend nodes are as follows:
[0096] The controller internally maintains SR-TE path scheduling groups (here, SR-TE policies). Whenever a new SR-TE path (here, a Candidate Path) is calculated within an SR-TE path scheduling group, the controller sets this new Candidate Path to the highest scheduling priority, while simultaneously setting other existing Candidate Paths in the SR-TE policy to normal scheduling priorities. The controller then sends this new Candidate Path separately to the headend node, setting its S-Flag to 1, or it can send the entire updated SR-TE path scheduling group to the headend node. Upon receiving the new Candidate Path, the headend node adds it to the corresponding locally stored SR-TE policy instance, sets its scheduling priority to the highest priority in the SR-TE policy instance, and sets the scheduling priorities of other existing Candidate Paths in the SR-TE policy instance to normal scheduling priorities.
[0097] Regarding updates to SR-TE paths within an SR-TE path scheduling group: When the controller updates the forwarding information of an existing SR-TE path (here, a Candidate Path) within an SR-TE path scheduling group (SR-TE policy), it does not change the scheduling priority of that Candidate Path. When sending the update to the head node, its S-Flag is set according to the scheduling priority of that Candidate Path. Upon receiving the update, the head node updates the forwarding information of the existing Candidate paths in its locally stored SR-TE policy.
[0098] Furthermore, since the headend node is unsure whether the update sent to it by the controller involves only a change in forwarding information or a change in scheduling priority, it also sets the scheduling priority of each candidate path within the group based on the received Candidate Path's S-Flag. Specifically, if the received Candidate Path's S-Flag is 1, that candidate path is set to have the highest scheduling priority, and all other candidate paths in the group are set to normal scheduling priorities; if the received Candidate Path's S-Flag is 0, that candidate path is set to normal scheduling priority.
[0099] Regarding the deletion of SR-TE paths from the SR-TE path scheduling group: When the controller deletes an existing SR-TE path (Candidate Path) within the SR-TE path scheduling group (SR-TE policy in this case), there are two scenarios:
[0100] If the deleted Candidate Path is not the one with the highest scheduling priority, the scheduling priority of other Candidate Paths in the group will not be changed. When the Candidate Path issues a deletion order to the head node, its S-Flag is set to 0. After receiving the order, the head node simply deletes the Candidate Path from its locally stored SR-TE policy.
[0101] If the candidate path to be deleted has the highest scheduling priority, its S-Flag can be set to either 1 or 0 when the deletion order is sent to the head node. Upon receiving this, the head node simply deletes the candidate path from its locally stored SR-TE policy. Next, the controller should recalculate a new candidate path for the group (note: this may reuse an existing candidate path within the group) and set it to have the highest scheduling priority. When this new candidate path is sent to the head node, its S-Flag is set to 1. Upon receiving this, the head node adds the new candidate path to its locally stored corresponding SR-TE policy (note: this may reuse an existing candidate path within the group), sets the new candidate path to the highest scheduling priority in the SR-TE policy, and sets other existing candidate paths in the SR-TE policy to normal scheduling priorities.
[0102] As mentioned earlier, there are many other ways besides using switch flags to represent the scheduling priority of SR-TE paths. This embodiment does not limit these methods. The specific implementation of other methods to represent the scheduling priority of SR-TE paths will not be elaborated here, as will the types of switch flags mentioned above.
[0103] Method 2: An SR-TE path is an SR-TE tunnel, and an SR-TE path scheduling group is a group formed by multiple SR-TE tunnels.
[0104] RFC 8664 and draft-ietf-pce-segment-routing-ipv6-08 describe how the controller distributes SR-TE tunnels to headend nodes via the Path Computation Element Communication Protocol (PCEP) channel. RFC 8697 defines an ASSOCIATION Object, which can be used to group multiple SR-TE tunnels into a group. This embodiment adds a new association type to the ASSOCIATION Object, called a "Flow Scheduling Group." The value in the AssociationID field is managed and set by the controller, representing the identifier of the SR-TE path scheduling group. The value in the IPv4 AssociationSource or IPv6 Association Source field is the headend node of the SR-TE tunnel. When multiple SR-TE tunnels distributed by the controller to the headend node via PCEP contain the same Association Source and Association ID, it indicates that these SR-TE tunnels belong to the same SR-TE path scheduling group.
[0105] Additionally, to support explicit requests from head-end nodes to the controller to calculate new SR-TE paths for the SR-TE path scheduling group based on network resource changes during path calculation, the PCEP capability negotiation information needs to be extended. A new flag, G-Flag, needs to be added to the Flags field of either the SR-PCE-CAPABILITY Sub-TLV or the SRv6-PCE-CAPABILITY sub-TLV. See also Figure 3If the value of G-Flag is 1, it indicates that the Path Computation Element (PCE) or Path Computation Client (PCC) of the notifying party supports maintaining the SR-TE path scheduling group provided in this embodiment, and selects paths from the group for traffic scheduling based on scheduling priority.
[0106] Taking SR-PCE-CAPABILITY Sub-TLV as an example, such as Figure 3 As shown. Only when both PCC and PCE set G-Flag to 1 in the capability announcement information does it indicate that the established PCEP session supports the SR-TE path scheduling group provided in this embodiment.
[0107] Additionally, RFC 8231 defines an LSP Object, which can be used to identify the key-value pairs and attributes of an SR-TE tunnel. The `draft-ietf-pce-lsp-extended-flags-00` class defines an LSP-EXTENDED-FLAG TLV for the LSP Object, used to set richer flag information. This embodiment adds a G-Flag to the LSP-EXTENDED-FLAG TLV. When the PCC requests path calculation from the PCE, setting it to 1 requires the PCE to calculate a new SR-TE path for the SR-TE path scheduling group based on changes in network resources; setting it to 0 means no such requirement.
[0108] Additionally, a new Scheduling Flag has been added. When the PCE assigns a path to the PCC, setting it to 1 indicates that the SR-TE tunnel has the highest scheduling priority within its SR-TE path scheduling group, while setting it to 0 indicates a normal scheduling priority. For details, please refer to [link to relevant documentation]. Figure 4 .
[0109] In addition, it is worth mentioning that the rules for setting S-Flag between the controller and the headend node are similar to the aforementioned SR-TE policyCandidate Path method, and will not be repeated here.
[0110] It should be understood that the above examples are merely examples listed for the purpose of better understanding the technical solutions of this embodiment, and are not intended to be the only limitation of this embodiment.
[0111] Furthermore, the aforementioned English technical terms do not have specific explanations in this field. In specific implementations, those skilled in the art can consult draft documents related to segmented routing, such as draft-ietf-idr-segment-routing-te-policy-11, draft-ietf-pce-lsp-extended-flags-00, RFC8664, and draft-ietf-pce-segment-routing-ipv6-08. This embodiment will not elaborate further on these aspects.
[0112] As can be seen from the above description, the traffic scheduling method provided in this embodiment always identifies that the service functions provided by certain service nodes in the network are overloaded based on the collected utilization rates of various preset resources in the network. Then, it checks whether the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group contains service nodes of these service functions. If it does, a new SR-TE path is calculated for the SR-TE path scheduling group, namely the second SR-TE path mentioned above, so that the head-end node can serve the new service flow that meets the preset conditions through the second SR-TE path. That is, the new service flow is always matched to the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group, while the old service flow (the first service flow mentioned above) is still guided to the original SR-TE path. In this way, it not only ensures the balanced utilization of resources in the network and the load balance of service nodes that provide service functions, but also selects SR-TE paths according to actual needs, that is, realizes dynamic traffic scheduling, and thus improves service quality.
[0113] See Figure 5 , Figure 5 This is a flowchart of a traffic scheduling method provided in an embodiment of this application. In this embodiment, the method is mainly applied to a controller.
[0114] like Figure 5 As shown, the traffic scheduling method involved in this embodiment includes the following steps:
[0115] Step 501: If there is no SR-TE path scheduling group locally, create at least one SR-TE path from the head node on the network side to the destination node on the network side.
[0116] Specifically, regarding the creation of SR-TE paths, in one example, the controller can create them based on user needs and business scenarios.
[0117] Furthermore, it is understood that the operation of creating an SR-TE path can be initiated by the controller upon receiving the appropriate trigger, or it can be created by the controller upon receiving a request from the head node. This embodiment does not impose any restrictions on this.
[0118] Step 502: Select one of the at least one SR-TE paths as the first SR-TE path, set the scheduling priority of the first SR-TE path to the highest scheduling priority, and set the scheduling priority of the remaining SR-TE paths to the normal scheduling priority.
[0119] Understandably, if only one SR-TE path is created, then this SR-TE path is the first SR-TE path, and its scheduling priority is the highest scheduling priority.
[0120] If there are multiple SR-TE paths, the optimal SR-TE path can be dynamically selected as the first SR-TE path based on the actual situation, such as the current load status of the service nodes on each SR-TE path. The first SR-TE path is given the highest scheduling priority, and the remaining SR-TE paths in the SR-TE path scheduling group are given normal scheduling priorities.
[0121] Step 503: Generate the SR-TE path scheduling group based on the first SR-TE path with the set scheduling priority and the remaining SR-TE paths.
[0122] Specifically, the SR-TE path scheduling group mentioned in this embodiment refers to a group that manages SR-TE paths that can be applied to the same user needs and business scenarios. That is, any SR-TE path in the same SR-TE path scheduling group is for the same user needs and business scenarios.
[0123] Step 504: Send the SR-TE path scheduling group to the headend node.
[0124] Regarding the method of issuing SR-TE path scheduling groups by the lower-end node, and Figure 1 Step 104 in the corresponding method embodiment is roughly the same, and will not be repeated here.
[0125] Step 505: Obtain the utilization rate of preset resources in the network.
[0126] Step 506: Based on the usage rate, determine the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created segmented routing traffic engineering SR-TE path scheduling group.
[0127] Step 507: If, based on the load status of each service node, it is determined that there is an overloaded service node on the first SR-TE path, a second SR-TE path is determined based on the first SR-TE path, and the scheduling priority of the second SR-TE path is set to the highest scheduling priority, while the scheduling priority of the first SR-TE path is set to the normal scheduling priority, thus obtaining the updated SR-TE path scheduling group.
[0128] Step 508: The updated SR-TE path scheduling group is sent to the head node on the network side.
[0129] It is not difficult to see that steps 505 to 508 in this embodiment are similar to... Figure 1 Steps 101 to 104 in the corresponding method embodiments are largely the same, and will not be described again here.
[0130] Therefore, the traffic scheduling method provided in this embodiment ensures that the controller using the traffic scheduling method provided in this embodiment for the first time can provide available SR-TE paths for the headend node, and also ensures that during the traffic scheduling process, the number of SR-TE paths in the SR-TE path scheduling group and the scheduling priority of each SR-TE path can be dynamically adjusted according to the dynamically changing network resources and the load of the service node, so that the headend node can provide better services based on the SR-TE paths in the dynamically changing SR-TE path scheduling group.
[0131] See Figure 6 The figure is a flowchart of the traffic scheduling method provided in an embodiment of this application. In this embodiment, the method is mainly applied to the headend node.
[0132] Understandably, in practical applications, the headend node of the traffic scheduling method provided in this embodiment needs to cooperate with the aforementioned controller to achieve traffic scheduling. Therefore, the relevant technical details described in the above embodiment of the traffic scheduling method applied to the controller are also applicable to this embodiment.
[0133] like Figure 6 As shown, the traffic scheduling method involved in this embodiment includes the following steps:
[0134] Step 601: Receive the segmented routing traffic engineering SR-TE path scheduling group issued by the controller.
[0135] Specifically, an SR-TE path scheduling group must include at least one SR-TE path with the highest scheduling priority.
[0136] Step 602: When a service flow that needs to be scheduled is received, the service flow that meets the preset conditions is matched.
[0137] Step 603: Guide the matched service flow to the SR-TE path with the highest scheduling priority, and maintain the mapping relationship between the service flow and the SR-TE path.
[0138] To facilitate understanding, the following examples will be used to illustrate the point:
[0139] Assuming the preset condition is "all packets destined for server1-IP", then an enabled policy route that can match packets that meet the above preset condition is configured in advance in the user-side interface corresponding to the headend node. So when the user-side interface receives user packets, the received user packets are matched based on the configured enabled policy route, such as matching the five-tuple of the user packets, to match user packets that meet the preset condition.
[0140] If there are 10 matched service flows, such as flow1 to flow10, the headend node will guide all 10 service flows to the SR-TE path with the highest scheduling priority, and establish a mapping relationship between flow1 to flow10 and the SR-TE path with the highest scheduling priority. At the same time, it will monitor the forwarding of these service flows and maintain these mapping relationships based on the monitoring results, such as updating or deleting them.
[0141] The maintenance operations performed by the headend node on the mapping relationship between the service flow and the SR-TE path are as follows:
[0142] Establish a mapping relationship between business flows and SR-TE paths, and count the traffic count value of the business flows corresponding to the SR-TE paths;
[0143] If the traffic count value does not change within the preset time, the mapping relationship between the service flow and the SR-TE path will be deleted.
[0144] In another example, if the headend node receives a deletion notification for the SR-TE path from the controller, the mapping relationship between the service flow and the SR-TE path is deleted.
[0145] Furthermore, if a service flow is received again after the mapping relationship between a service flow and an SR-TE path is deleted, the service flow is directed to the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group, and the mapping relationship between the service flow and the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group is maintained.
[0146] In addition, if the deleted SR-TE path is the best within the SR-TE path scheduling group, i.e. the SR-TE path with the highest scheduling priority, the head node will also receive an update of the SR-TE path scheduling group from the controller, which includes a new SR-TE path with the highest scheduling priority, or a reuse of an old SR-TE path with the highest scheduling priority.
[0147] In another example, if the head node receives an update message for a certain SR-TE path from the controller, it updates the SR-TE path according to the update message.
[0148] Therefore, the traffic scheduling method provided in this embodiment enables the head-end node to perform traffic scheduling using the SR-TE path generated by the controller based on dynamically changing network resources and service node load. By actively monitoring the usage of a certain SR-TE path during the traffic scheduling process and receiving update information for a certain SR-TE path from the controller, the mapping relationship between service flows and SR-TE paths is dynamically maintained. This allows the head-end node to select SR-TE paths according to actual needs, thus achieving dynamic traffic scheduling and improving service quality.
[0149] See Figure 7 The figure is a flowchart of the traffic scheduling method provided in an embodiment of this application. In this embodiment, the method is mainly applied to the headend node.
[0150] like Figure 7 As shown, the traffic scheduling method involved in this embodiment includes the following steps:
[0151] Step 701: Receive the segmented routing traffic engineering SR-TE path scheduling group issued by the controller.
[0152] Specifically, an SR-TE path scheduling group must include at least one SR-TE path with the highest scheduling priority.
[0153] Step 702: When a service flow that needs to be scheduled is received, the service flow that meets the preset conditions is matched.
[0154] It is not difficult to see that steps 701 and 702 in this embodiment are similar to... Figure 6 Steps 601 and 602 in the corresponding method embodiments are largely the same, and will not be described again here.
[0155] Step 703: Determine whether the SR-TE path scheduling group includes only one SR-TE path with the highest scheduling priority.
[0156] Specifically, if so, proceed to step 704; otherwise, proceed to step 705.
[0157] Furthermore, in one example, the method for determining whether an SR-TE path scheduling group includes only one SR-TE path with the highest scheduling priority can be determined by determining the number of SR-TE paths in the SR-TE path scheduling group. That is, if the number of SR-TE paths included in the SR-TE path scheduling group is 1, then the SR-TE path scheduling group includes only one SR-TE path with the highest scheduling priority. If the number of SR-TE paths is greater than 1, it means that the SR-TE path scheduling group includes not only one SR-TE path with the highest scheduling priority but also SR-TE paths with normal scheduling priorities.
[0158] Step 704: Guide the matched service flow to the SR-TE path with the highest scheduling priority, and maintain the mapping relationship between the service flow and the SR-TE path.
[0159] It is not difficult to see that step 704 in this embodiment is the same as... Figure 6 Step 603 in the corresponding method embodiment is roughly the same, so it will not be described again here.
[0160] Step 705: Based on the feature information of the matched service flows that meet the preset conditions and the scheduling priority of each SR-TE path in the SR-TE path scheduling group, the service flows that meet the preset conditions are guided to the matched SR-TE path.
[0161] Specifically, when there are at least two SR-TE paths (one with the highest scheduling priority and one with a normal scheduling priority) in the SR-TE path scheduling group, the operation described in step 705 above is as follows:
[0162] First, based on the feature information of the matched service flows that meet the preset conditions and the scheduling priority of each SR-TE path in the SR-TE path scheduling group, the new service flows received after determining the SR-TE path with the highest scheduling priority at the current time in the SR-TE path scheduling group are selected from the service flows that meet the preset conditions.
[0163] Then, the new service flow is directed to the SR-TE path with the highest scheduling priority at the current time, and the remaining service flows are directed to the corresponding SR-TE paths according to the previously maintained mapping relationship between the service flows and the SR-TE paths.
[0164] For example, as mentioned earlier, the headend node has already created corresponding mapping entries for flows 1 to 10. When the headend node continues to receive flows 1 to 10 from the user-side interface, the logic based on the mapping will guide them to the first SR-TE path for forwarding, even if the second SR-TE path has the highest scheduling priority in the SR-TE path scheduling group at this time. Suppose that afterwards, the headend node continues to receive multiple new service flows that meet the above preset conditions from the user-side interface, such as flows 11 to 20, then the headend node will guide flows 11 to 20 to the second SR-TE path and generate corresponding mapping relationships for these flows to guide them to specific SR-TE paths.
[0165] Therefore, the traffic scheduling method provided in this embodiment establishes and dynamically maintains a mapping relationship between each received service flow that meets preset conditions and its corresponding SR-TE path. By using the scheduling priority set by the controller for each SR-TE path, it guides old service flows to SR-TE paths with existing mapping relationships and guides new service flows to SR-TE paths with the highest scheduling priority. Thus, it achieves reasonable selection of each SR-TE path in the SR-TE path scheduling group according to actual needs, making traffic scheduling more reasonable and further improving service quality.
[0166] Furthermore, it should be understood that the step divisions of the various methods described above are only for clarity. In practice, they can be combined into one step or some steps can be split into multiple steps. As long as they include the same logical relationship, they are all within the scope of protection of this patent. Adding insignificant modifications or introducing insignificant designs to the algorithm or process, but without changing the core design of the algorithm and process, are also within the scope of protection of this patent.
[0167] See Figure 8 The figure is a schematic diagram of the structure of the traffic scheduling system provided in an embodiment of this application. In this embodiment, the traffic scheduling system includes a controller 801 and a headend node 802.
[0168] The controller 801 is used to obtain the utilization rate of preset resources in the network, and based on the utilization rate, to determine the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created segmented routing traffic engineering SR-TE path scheduling group.
[0169] Accordingly, based on the load status of each service node, the controller 801 is also used to determine that there is an overloaded service node on the first SR-TE path, determine the second SR-TE path based on the first SR-TE path, set the scheduling priority of the second SR-TE path to the highest scheduling priority, set the scheduling priority of the first SR-TE path to the normal scheduling priority, obtain the updated SR-TE path scheduling group, and send the updated SR-TE path scheduling group to the headend node.
[0170] The headend node 802 is used to guide the first service flow that meets the preset conditions to the first SR-TE path and the second service flow that meets the preset conditions to the second SR-TE path when it receives the service flow that needs to be scheduled, and to maintain the mapping relationship between the first service flow and the first SR-TE path, and between the second service flow and the second SR-TE path.
[0171] It should be noted that in this embodiment, the first service flow is the service flow that has been guided to the first SR-TE path before the creation of the second SR-TE path, and the second service flow is the new service flow received by the headend node after the creation of the second SR-TE path.
[0172] To better understand the cooperation between the controller and the headend node during traffic scheduling, this embodiment combines... Figure 9 Please provide a detailed explanation:
[0173] like Figure 9 In the network shown, the host of CE1 needs to send service traffic to the server on the remote CE2 side. According to the service requirements, the controller needs to calculate an SR-TE policy from the headend node PE1 to the destination node PE2 in the bearer network, and the corresponding Segment List needs to contain three service functions in order: Service Function 1, Service Function 2, and Service Function 3, to perform corresponding service function processing for the packets.
[0174] Assume the controller has collected Service Function information provided by all nodes (or agents) in the network through some mechanism, and continuously senses changes in the utilization of these Service Functions through some mechanism. In this embodiment, nodes SF1 and SF11 both provide Service Function 1, with corresponding Service SIDs of SID-SF1 and SID-SF11, respectively; nodes SF2 and SF22 both provide Service Function 2, with corresponding Service SIDs of SID-SF2 and SID-SF22, respectively; and nodes SF3 and SF33 both provide Service Function 3, with corresponding Service SIDs of SID-SF3 and SID-SF33, respectively.
[0175] Additionally, assuming that the SRv6 SID of type END for PE2 is SID1-PE2, the SRv6 VPN SID of type END.DX6 assigned to the CE2 customer is SID100-PE2.
[0176] To address this user requirement, assume the controller creates the SR-TE policy instance as follows:<Headend=PE1,Color=1000,Endpoint=PE2> Based on the idle status of each Service Function in the network, the initially calculated Candidate Path is as follows: Figure 9 The SR-TE path-1 in the code corresponds to the SID List {SID-SF1, SID-SF2, SID-SF3, SID1-PE2}. The controller internally maintains the following data:
[0177] SR-TE policy<Headend=PE1,Color=1000,Endpoint=PE2>
[0178] Candidate Path Name:SR-TE path-1
[0179] Scheduling priority: highest
[0180] SID List: {SID-SF1, SID-SF2, SID-SF3, SID1-PE2}
[0181] The controller sends the above Candidate Path to the headend node PE1 via BGP, and sets the S-Flag in Preference Sub-TLV to 1.
[0182] After receiving information about the SR-TE path scheduling group from the controller, the head node PE1 performs controller-like operations internally to maintain the following data:
[0183] SR-TE policy<Headend=PE1,Color=1000,Endpoint=PE2>
[0184] Candidate Path Name:SR-TE path-1
[0185] Scheduling priority: highest
[0186] SID List: {SID-SF1, SID-SF2, SID-SF3, SID1-PE2}
[0187] Header node PE1 configures an Access Control List (ACL) on the link connecting to CE1 and directs traffic that meets preset conditions to the aforementioned SR-TE policy. In this embodiment, it is assumed that the matching condition is "all packets destined for server1-ip", where server1-ip is the IP address of a server1 on the CE2 side. It is assumed that header node PE1 uses the <source IP, destination IP> tuple to maintain the mapping table entries between traffic flows and SR-TE paths. At this time, it is assumed that PE1 receives the following three traffic flows from the CE1 side:
[0188] <Source IP=host1-ip, Destination IP=server1-ip>
[0189] <Source IP = host2-ip, Destination IP = server1-ip>
[0190] <Source IP=host3-ip, Destination IP=server1-ip>
[0191] Here, host1-ip, host2-ip, and host3-ip are different hosts on the CE1 side, all of which access server1 on the CE2 side. PE1 then directs this traffic to the aforementioned SR-TE policy and selects the Candidate Path with the highest scheduling priority from the SR-TE policy to apply to these flows. At this point, the service flow mapping table maintained by PE1 is as follows:
[0192] <Source IP = host1-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0193] <Source IP = host2-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0194] <Source IP = host3-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0195] Based on this, these service flows will encapsulate the SRv6 SID List {SID-SF1, SID-SF2, SID-SF3, SID1-PE2, SID100-PE2} and transmit it in the network, applying corresponding service functions along the way through SF1, SF2, and SF3.
[0196] It should be noted that, in practice, the SID (SRv6VPN SID) of the virtual private network based on the IPv6 extended SR solution needs to be inserted at the end of the SID List.
[0197] After service traffic is transmitted in the network, if the controller detects that the utilization rate of the corresponding Server Function provided by one or more nodes of SF1, SF2, and SF3 in the network is too high, while there are actually other nodes in the network providing the same Server Function, the controller begins to calculate a new CandidatePath for the aforementioned SR-TE policy for the new service flow. In this embodiment, it is assumed that the calculated new CandidatePath is... Figure 9 The corresponding SID List for SR-TEpath-2 is {SID-SF11, SID-SF22, SID-SF33, SID1-PE2}. The data maintained internally by the controller becomes as follows:
[0198] SR-TE policy<Headend=PE1,Color=1000,Endpoint=PE2>
[0199] Candidate Path Name:SR-TE path-1
[0200] Scheduling priority: Normal
[0201] SID Lis: {SID-SF1, SID-SF2, SID-SF3, SID1-PE2}
[0202] Candidate Path Name:SR-TE path-2
[0203] Scheduling priority: highest
[0204] SID List: {SID-SF11, SID-SF22, SID-SF33, SID1-PE2}
[0205] In addition, it is worth noting that while the controller sets the scheduling priority of the new Candidate Path to the highest, it also needs to reduce the scheduling priority of other Candidate Paths to normal.
[0206] Accordingly, the controller sends the aforementioned Candidate Path to the headend node PE1 via BGP, and sets the S-Flag in PreferenceSub-TLV to 1.
[0207] After receiving information about the SR-TE path scheduling group from the controller, the head node PE1 performs controller-like operations internally to maintain the following data:
[0208] SR-TE policy<Headend=PE1,Color=1000,Endpoint=PE2>
[0209] Candidate Path Name:SR-TE path-1
[0210] Scheduling priority: Normal
[0211] SID List: {SID-SF1, SID-SF2, SID-SF3, SID1-PE2}
[0212] Candidate Path Name:SR-TE path-2
[0213] Scheduling priority: highest
[0214] SID List: {SID-SF11, SID-SF22, SID-SF33, SID1-PE2}
[0215] In addition, it is worth noting that if the head node PE1 discovers a new Candidate Path with the highest scheduling priority, it will automatically reduce the scheduling priority of other Candidate Paths to normal.
[0216] Suppose that afterwards, the head node PE1 receives the following 3 traffic streams from the CE1 side:
[0217] <Source IP=host4-ip, Destination IP=server1-ip>
[0218] <Source IP = host5-ip, Destination IP = server1-ip>
[0219] <Source IP = host6-ip, Destination IP = server1-ip>
[0220] Among them, host4-ip, host5-ip, and host6-ip are different hosts on the CE1 side, all of which access server1 on the CE2 side. PE1 then directs this traffic to the aforementioned SR-TE policy and selects the Candidate Path with the highest scheduling priority from the SR-TE policy to apply to these flows. At this point, the service flow mapping table maintained by PE1 becomes as follows:
[0221] <Source IP = host1-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0222] <Source IP = host2-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: R-TE path-1.
[0223] <Source IP = host3-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0224] <Source IP = host4-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0225] <Source IP = host5-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0226] <Source IP = host6-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0227] Based on this, these new service flows will encapsulate the SRv6 SID List {SID-SF11, SID-SF22, SID-SF33, SID1-PE2, ID100-PE2} for transmission in the network, applying corresponding service functions along the way through SF11, SF22, and SF33. Meanwhile, older service flows will still encapsulate the SRv6 SID List {SID-SF1, SID-SF2, SID-SF3, SID1-PE2, SID100-PE2} for transmission in the network, applying corresponding service functions along the way through SF1, SF2, and SF3, thereby achieving a more balanced utilization of resources across nodes in the network.
[0228] In another example, after creating the mapping entries for the aforementioned service flows on the headend node PE1, it begins counting the packets for these service flows. Assuming that within a certain period, no more service flows corresponding to <source IP = host1-ip, destination IP = server1-ip> are received from the CE1 side, PE1 can age out and delete the corresponding service flow mapping entries to reduce the table size. That is, the service flow mapping entries maintained by PE1 become:
[0229] <Source IP = host2-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0230] <Source IP = host3-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0231] <Source IP = host4-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0232] <Source IP = host5-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0233] <Source IP = host6-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0234] Furthermore, if subsequently, the headend node PE1 suddenly receives a service flow from CE1 corresponding to <source IP = host1-ip, destination IP = server1-ip>, then a new mapping entry is created for this service flow, guiding it to the aforementioned SR-TE policy, and selecting the Candidate path with the highest scheduling priority from the SR-TE policy, i.e., SR-TEpath-2. Therefore, the service flow mapping entry maintained by PE1 becomes:
[0235] <Source IP = host1-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0236] <Source IP = host2-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0237] <Source IP = host3-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-1.
[0238] <Source IP = host4-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0239] <Source IP = host5-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0240] <Source IP = host6-ip, Destination IP = server1-ip> is mapped to the SR-TE policy.<Headend=PE1,Color=1000,Endpoint=PE2> Candidate Path: SR-TE path-2.
[0241] It should be understood that the above examples are merely examples listed for the purpose of better understanding the technical solutions of this embodiment, and are not intended to be the only limitation of this embodiment.
[0242] Therefore, in the traffic scheduling system provided in this embodiment, the controller always identifies that the service functions provided by certain service nodes in the network are overloaded based on the collected utilization rates of various preset resources in the network. Then, it checks whether the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group contains service nodes of these service functions. If it does, a new SR-TE path is calculated for that SR-TE path scheduling group, namely the second SR-TE path mentioned above, so that the head-end node can serve the new service flow that meets the preset conditions through the second SR-TE path. That is, the new service flow is always matched to the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group, while the old service flow (the first service flow mentioned above) is still guided to the original SR-TE path. In this way, the balance of resources in the network and the load balance of the service nodes providing service functions are ensured, and the SR-TE path can be selected according to actual needs, that is, dynamic traffic scheduling is realized, thereby improving the quality of service.
[0243] It should be noted that although this application describes the traffic scheduling method using SR-TE paths, in fact, all paths represented by source routing similar to SR-TE are applicable to the method described in this application.
[0244] Embodiments of this application relate to a computer-readable storage medium storing a computer program. When executed by a processor, the computer program implements the traffic scheduling method for a controller or a traffic scheduling method for a headend node as described in the above-described method embodiments.
[0245] That is, those skilled in the art will understand that all or part of the steps in the methods of the above embodiments can be implemented by a program instructing related hardware. This program is stored in a storage medium and includes several instructions to cause a device (which may be a microcontroller, chip, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0246] Those skilled in the art will understand that the above embodiments are specific embodiments for implementing this application, and in practical applications, various changes can be made to them in form and detail without departing from the spirit and scope of this application.
Claims
1. A traffic scheduling method, characterized in that, Applied to a controller, the traffic scheduling method includes: Obtain the utilization rate of preset resources in the network; Based on the usage rate, determine the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created segmented routing traffic engineering SR-TE path scheduling group; If, based on the load status of each service node, it is determined that there is an overloaded service node on the first SR-TE path, a second SR-TE path is determined based on the first SR-TE path, and the scheduling priority of the second SR-TE path is set to the highest scheduling priority, and the scheduling priority of the first SR-TE path is set to the normal scheduling priority, the updated SR-TE path scheduling group is obtained. The updated SR-TE path scheduling group is sent to the headend node on the network side so that when the headend node receives a service flow that needs to be scheduled, it will guide the first service flow that meets the preset conditions to the first SR-TE path, guide the second service flow that meets the preset conditions to the second SR-TE path, and maintain the mapping relationship between the first service flow and the first SR-TE path, and between the second service flow and the second SR-TE path. Wherein, the first service flow is the service flow that has been guided to the first SR-TE path before the creation of the second SR-TE path, and the second service flow is the new service flow received by the headend node after the creation of the second SR-TE path.
2. The traffic scheduling method according to claim 1, characterized in that, Before obtaining the utilization rate of preset resources in the network, the method further includes: If the SR-TE path scheduling group is not available locally, create at least one SR-TE path from the head node on the network side to the destination node on the network side. Select one of the at least one SR-TE paths as the first SR-TE path, set the scheduling priority of the first SR-TE path to the highest scheduling priority, and set the scheduling priority of the remaining SR-TE paths to the normal scheduling priority. Based on the first SR-TE path with the set scheduling priority and the remaining SR-TE paths, the SR-TE path scheduling group is generated; The SR-TE path scheduling group is sent to the headend node so that when the headend node receives a service flow that needs to be scheduled, it guides the first service flow that meets the preset conditions to the first SR-TE path and maintains the mapping relationship between the first service flow and the first SR-TE path.
3. The traffic scheduling method according to claim 2, characterized in that, The step of sending the SR-TE path scheduling group to the headend node includes: The SR-TE path scheduling group is traversed, and the traversed SR-TE paths are sent to the head node; or, The SR-TE path scheduling group is encapsulated according to a preset format, and the encapsulated SR-TE path scheduling group is sent to the headend node.
4. The traffic scheduling method according to claim 3, characterized in that, Before the SR-TE path scheduling group is sent to the headend node, the method further includes: Each SR-TE path in the SR-TE path scheduling group is assigned the same path scheduling group identifier, so that the headend node manages the received SR-TE path according to the path scheduling group identifier.
5. The traffic scheduling method according to claim 1, characterized in that, After obtaining the SR-TE path scheduling group, the method further includes: Determine the current network topology; The SR-TE path scheduling group is maintained according to the network topology.
6. The traffic scheduling method according to claim 5, characterized in that, Maintaining the SR-TE path scheduling group according to the network topology includes: For each SR-TE path in the SR-TE path scheduling group, if the service functions provided by all service nodes on the SR-TE path are not invalid, the forwarding information corresponding to the SR-TE path is updated according to the network topology, so that the headend node forwards the service flow according to the updated forwarding information of the SR-TE path.
7. The traffic scheduling method according to claim 5, characterized in that, Maintaining the SR-TE path scheduling group according to the network topology includes: For each SR-TE path in the SR-TE path scheduling group, if there is a service node on the SR-TE path whose provided service function has failed, the SR-TE path is deleted according to the network topology, and the head-end node is notified to delete the SR-TE path and the mapping relationship between the SR-TE path and the forwarded service flow.
8. The traffic scheduling method according to claim 7, characterized in that, Before deleting the SR-TE path according to the network topology, the method further includes: Determine whether the scheduling priority corresponding to the SR-TE path is the highest scheduling priority; If so, determine the second SR-TE path based on the SR-TE path, set the scheduling priority of the second SR-TE path to the highest scheduling priority, and execute the step of deleting the SR-TE path according to the network topology. If not, then directly execute the step of deleting the SR-TE path according to the network topology.
9. The traffic scheduling method according to claim 2, characterized in that, The step of determining the second SR-TE path based on the first SR-TE path includes: Obtain the user requirements corresponding to the first SR-TE path; Based on the user's requirements, a new SR-TE path is created from the head node to the destination node as the second SR-TE path; or, Select an existing SR-TE path from the SR-TE path scheduling group as the second SR-TE path.
10. A traffic scheduling method, characterized in that, Applied to headend nodes, the traffic scheduling method includes: The receiver sends a segmented routing traffic engineering SR-TE path scheduling group, wherein the SR-TE path scheduling group includes at least one SR-TE path with the highest scheduling priority. Upon receiving a service flow that needs to be scheduled, the service flow that meets the preset conditions is matched; If the SR-TE path scheduling group includes only one SR-TE path with the highest scheduling priority, the matched service flow will be guided to the SR-TE path with the highest scheduling priority, and the mapping relationship between the service flow and the SR-TE path will be maintained. Otherwise, based on the feature information of the matched service flow that meets the preset conditions and the scheduling priority corresponding to each SR-TE path in the SR-TE path scheduling group, the service flow that meets the preset conditions is guided to the matched SR-TE path.
11. The traffic scheduling method according to claim 10, characterized in that, The step of guiding the service flow that meets the preset conditions to the matched SR-TE path based on the feature information of the matched service flow that meets the preset conditions and the scheduling priority corresponding to each SR-TE path in the SR-TE path scheduling group includes: Based on the feature information of the matched service flows that meet the preset conditions and the scheduling priority corresponding to each SR-TE path in the SR-TE path scheduling group, a new service flow is received after the SR-TE path with the highest scheduling priority at the current time is determined from the service flows that meet the preset conditions. The new service flow is directed to the SR-TE path with the highest scheduling priority at the current time, and the remaining service flows are directed to the corresponding SR-TE paths according to the previously maintained mapping relationship between service flows and SR-TE paths.
12. The traffic scheduling method according to claim 10, characterized in that, Maintaining the mapping relationship between the service flow and the SR-TE path includes: Establish a mapping relationship between the service flow and the SR-TE path, and count the traffic count value of the service flow corresponding to the SR-TE path; If the traffic count value does not change within a preset time, the mapping relationship between the service flow and the SR-TE path is deleted.
13. The traffic scheduling method according to claim 10, characterized in that, Maintaining the mapping relationship between the service flow and the SR-TE path includes: If a deletion notification for the SR-TE path is received from the controller, the mapping relationship between the service flow and the SR-TE path is deleted.
14. The traffic scheduling method according to claim 12 or 13, characterized in that, After deleting the mapping relationship between the service flow and the SR-TE path, the method further includes: If the service flow is received again, the service flow is directed to the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group, and the mapping relationship between the service flow and the SR-TE path with the highest scheduling priority in the SR-TE path scheduling group is maintained.
15. A traffic scheduling system, characterized in that, include: Controller and headend node; The controller obtains the utilization rate of preset resources in the network; The controller determines the load status of each service node on the first SR-TE path with the highest scheduling priority in the pre-created segmented routing traffic engineering SR-TE path scheduling group based on the usage rate. If, based on the load status of each service node, the controller determines that there is an overloaded service node on the first SR-TE path, determines a second SR-TE path based on the first SR-TE path, sets the scheduling priority of the second SR-TE path to the highest scheduling priority, and sets the scheduling priority of the first SR-TE path to the normal scheduling priority, the updated SR-TE path scheduling group is obtained. The controller sends the updated SR-TE path scheduling group to the head node; When the headend node receives a service flow that needs to be scheduled, it guides the first service flow that meets the preset conditions to the first SR-TE path, guides the second service flow that meets the preset conditions to the second SR-TE path, and maintains the mapping relationship between the first service flow and the first SR-TE path, and between the second service flow and the second SR-TE path. Wherein, the first service flow is the service flow that has been guided to the first SR-TE path before the creation of the second SR-TE path, and the second service flow is the new service flow received by the headend node after the creation of the second SR-TE path.
16. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the traffic scheduling method of any one of claims 1 to 9, or the traffic scheduling method of any one of claims 10 to 14.