Communication method and related equipment

By receiving the load sharing quantity in network shards and determining the equivalent route, the problem of insufficient flexibility of forwarding nodes is solved, and fine-grained load sharing is achieved, meeting the transmission needs of different services, and improving packet forwarding efficiency and service adaptability.

CN120301831APending Publication Date: 2025-07-11HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410034398.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-01-09
Publication Date
2025-07-11

AI Technical Summary

Technical Problem

In the prior art, the forwarding node uniformly processes all packets after the load sharing quantity is configured, resulting in poor flexibility and inability to meet the transmission needs of different services. Especially when transmitting PTP and non-PTP services, it may lead to a decrease in synchronization accuracy or inability to meet the service needs.

Method used

By receiving the load sharing quantity in network shards, determining the equivalent route, and achieving fine-grained load sharing, allowing different services to configure the corresponding load sharing quantity in different network shards, improving the flexibility of the solution implementation.

Benefits of technology

It improves the flexibility and efficiency of message forwarding, can meet the transmission needs of different services, ensures the synchronization accuracy of PTP services and the normal forwarding of non-PTP services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120301831A_ABST
    Figure CN120301831A_ABST
Patent Text Reader

Abstract

A communication method and related equipment, in the method, a first node may be a node supporting a network fragment, and the first node may determine a routing table entry for forwarding a message in the network fragment based on a load sharing number of at least one node after receiving the load sharing number of the at least one node. In other words, the first node may determine the number of load shares in the network fragment based on information sent by other nodes. Therefore, compared with a mode that the forwarding node processes any message forwarded by the forwarding node based on the same load sharing quantity, the first node serves as forwarding equipment in the network fragment; the first node can realize message forwarding in the network fragment based on the routing table item determined by the load sharing number corresponding to the network fragment, and the flexibility of scheme realization can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communications, and in particular, to a communication method and related devices. Background Art

[0002] In a communication network, forwarding nodes such as switches are usually configured with multiple outgoing interfaces, and different outgoing interfaces can correspond to different packet forwarding paths. To avoid traffic congestion on a certain path, when forwarding a packet, the forwarding node can select a path with the lightest current load from different paths to send the packet, and this process is load sharing. The purpose of load sharing is to achieve load balancing between each path and avoid network congestion.

[0003] Currently, the forwarding node can determine the load sharing quantity of the packets forwarded by the forwarding node through configuration information configured by a controller or manually. Thereafter, the forwarding node can process all the packets forwarded by the forwarding node based on the load sharing quantity.

[0004] However, in the above implementation process, after the forwarding node configures the load sharing quantity, the forwarding node will forward and process any packet forwarded by the forwarding node based on the same load sharing quantity, and this implementation method has poor flexibility. Summary of the Invention

[0005] This application provides a communication method and related devices, which are used to enable a node to implement packet forwarding in a network slice based on an equivalent route determined by a load sharing quantity corresponding to the network slice, which can improve the flexibility of the solution implementation. At the same time, by flexibly configuring the load sharing quantities of different network slices, the service transmission requirements of different services can be met.

[0006] In a first aspect of this application, a communication method is provided. This method is executed by a first node, or by some components (such as a processor, a chip, or a chip system, etc.) in the first node, or this method can also be implemented by a logic module or software that can implement all or part of the functions of the first node. In the first aspect and its possible implementation manners, taking the case where this method is executed by the first node as an example for description, the first node can be a communication device such as a router, a switch, a virtual switch, a virtual router, or a smart network card. Among them, the first node can be a node that supports network slicing. In this method, the first node receives the load sharing quantities of at least one node, and the load sharing quantity is used to indicate the number of equivalent routes in the network slice in the load sharing mode; the first node determines the equivalent route based on the load sharing quantities of the at least one node; wherein, the equivalent route is used to forward packets in the network slice.

[0007] Based on the above technical solution, the first node is a node that supports network slicing. Moreover, after receiving the load sharing quantity of at least one node, the first node can determine an equivalent route for forwarding packets in the network slice based on the load sharing quantity of the at least one node. In other words, the first node can determine the load sharing quantity in the network slice based on the information sent by other nodes. Thus, compared with the method in which a forwarding node processes any packet forwarded by the forwarding node based on the same load sharing quantity, as a forwarding device in the network slice, the first node can determine an equivalent route based on the load sharing quantity corresponding to the network slice. Subsequently, the first node can implement packet forwarding in the network slice based on the equivalent route determined by the fine-grained load sharing quantity, which can improve the flexibility of the solution implementation.

[0008] In addition, since different services can be carried by different network slices, and the service transmission requirements of different services may be different. Therefore, through the above method, corresponding load sharing quantities can be configured for different network slices corresponding to different services. By flexibly configuring the load sharing quantities of different network slices, the service transmission requirements of different services can be met.

[0009] In this application, the equivalent route can be replaced by other terms. For example, route, routing table entry, equivalent routing table entry, etc. In other words, the equivalent route in the load sharing mode can be understood as (or replaced by) the route in the load sharing mode, the routing table entry in the load sharing mode, the equivalent routing table entry in the load sharing mode, etc.

[0010] In this application, the load sharing quantity can be used to indicate the maximum number of equivalent routes in the load sharing mode. Among them, terms such as load sharing quantity, maximum load balancing number, and load sharing quantity can be replaced with each other.

[0011] It should be noted that the nodes supporting the above network slicing can include N (N>1) nodes, or the service transmission nodes of the network slice include N nodes. Among them, the N nodes at least include the above first node and the above at least one node. In addition, the at least one node is a node configured with a load sharing quantity and sending a load sharing quantity. The priorities of these nodes may be nodes with lower priorities or nodes with higher priorities, which are not limited here.

[0012] Optionally, in the above technical solution, the number of the at least one node is N-1.

[0013] Optionally, in the above technical solution, the number of nodes of the at least one node is less than N-1. In other words, among the N nodes, in addition to including the first node and the at least one node, other nodes may also be included. In this case, the other nodes may not send the load sharing quantity of the other nodes (for example, the priority of the other nodes is relatively low or the load sharing quantity within the network shard is not configured for the other nodes). In this way, the load sharing quantity can be configured and sent for some nodes among the N nodes (i.e., the at least one node above), so that the N nodes can determine the load sharing quantity in the network shard based on the load sharing quantity indicated by the some nodes, which can simplify the configuration to reduce the configuration overhead and can also prevent different nodes from configuring different load sharing quantities.

[0014] Optionally, the first node may determine an equivalent route based on the load sharing quantity of the at least one node, and the number of the equivalent routes is determined based on the load sharing quantity of the at least one node; for example, the number of the equivalent routes may be the same as the load sharing quantity of the at least one node.

[0015] Optionally, any one of the at least one node (or one of the nodes) may be the second node described later.

[0016] In a possible implementation manner of the first aspect, the first node determines an equivalent route based on the load sharing quantity of the at least one node, including: the first node determines an equivalent route based on the load sharing quantity of the node with the highest priority among the load sharing quantities of the at least one node.

[0017] Based on the above technical solution, in the process of determining the equivalent route, the first node may determine the equivalent route based on the load sharing quantity of the node with the highest priority among the at least one node. In this way, the N nodes corresponding to the network shard can all determine the equivalent route based on the load sharing quantity of the node with the highest priority, and different nodes can be prevented from configuring different load sharing quantities.

[0018] In a possible implementation manner of the first aspect, the first node determines an equivalent route based on the load sharing quantity of the at least one node, including: the first node determines an equivalent route based on the load sharing quantity of the at least one node and the load sharing quantity of the node with the highest priority among the load sharing quantities of the first node.

[0019] Based on the above technical solution, during the process of determining equivalent routes, when the load sharing quantity of the first node is configured, the first node can determine equivalent routes based on the load sharing quantity of the first node and the node with the highest priority among at least one node. In this way, it can be adapted to the scenario where the first node itself is configured with a load sharing quantity, and it can enable all N nodes corresponding to the network sharding to determine equivalent routes based on the load sharing quantity of the node with the highest priority, which can prevent different nodes from being configured with different load sharing quantities.

[0020] In a possible implementation manner of the first aspect, the first node determines equivalent routes based on the load sharing quantity of the at least one node, including: when the priorities of the at least one node are all lower than the priorities of at least one other node in the network sharding, the first node determines the equivalent routes based on the load sharing quantity of the first node.

[0021] Based on the above technical solution, the first node can receive the load sharing quantities of at least one node. When the priorities of the at least one node are all lower than the priorities of at least one other node in the network sharding, since the first node can determine that there is no need to follow the load sharing quantity indicated by the low-priority nodes (i.e., the at least one node), for this reason, the first node can determine the equivalent routes based on the load sharing quantity of the first node configured locally. In this way, when the load sharing quantity of the low-priority nodes is misconfigured or the high-priority nodes are not configured with a load sharing quantity, the first node can still determine the equivalent routes based on the load sharing quantity of the first node configured locally.

[0022] Optionally, the load sharing quantity of the first node can be the number of equivalent routes of the first node in the network sharding in the load sharing mode, or it can be a default value, which is not limited here.

[0023] In a possible implementation manner of the first aspect, the method further includes: the first node sends the load sharing quantity of the first node.

[0024] Based on the above technical solution, when the load sharing quantity of the first node is configured, the first node can also send the load sharing quantity of the first node, so that other nodes can use the load sharing quantity of the first node as one of the bases for determining equivalent routes.

[0025] In a possible implementation manner of the first aspect, the network sharding is a network sharding based on a flexible algorithm (flex-algorithm), a network sharding based on topology, or a network sharding based on instances.

[0026] Based on the above technical solutions, network slicing can be implemented in the above-mentioned various ways to improve the flexibility of solution implementation.

[0027] Optionally, when the network slice is a network slice sliced based on flex-algorithm, the load sharing quantities of the at least one node are respectively carried in the sub-type length values (Sub-TLVs) of at least one flexible algorithm definition type length value (FAD TLV). For example, the load sharing quantity of a certain node is carried in the field included in one of the Sub-TLVs of the FAD TLV of the packet sent by this node.

[0028] Optionally, the packet carrying the at least one FAD TLV is an intermediate system to intermediate system (IS-IS) packet, an open shortest path first (OSPF) packet, or a border gateway protocol - shortest path first (BGP-SPF) packet.

[0029] In a possible implementation manner of the first aspect, at least one of the load sharing quantities of the at least one node is 1.

[0030] Based on the above technical solutions, when the equivalent route for forwarding packets in the network slice is determined based on a load sharing quantity of 1, the packets transmitted within the network slice can be transmitted through the same path. Compared with the implementation manner of using hash operations to transmit different flows through the same path, since there is no need to perform hash operations, the packet processing delay can be reduced, thereby improving the packet forwarding efficiency.

[0031] In a possible implementation manner of the first aspect, the network slice is a slice associated with a clock.

[0032] Based on the above technical solutions, when the network slice is a slice associated with a clock, the network slice can be used to carry clock services. Correspondingly, the above implementation manner can meet the load sharing requirements in the clock service scenario.

[0033] Optionally, the packets associated with clock-based sharded transmission may include two-step packets, such as Sync packets and Follow_Up packets, etc. Optionally, the packets associated with clock-based sharded transmission may include one-step packets, such as Sync packets and Announce packets carrying accuracy TLV, etc.

[0034] In a second aspect of the present application, a communication method is provided. This method is executed by a second node, or by some components in the second node (such as a processor, a chip, or a chip system, etc.), or this method can also be implemented by a logic module or software that can implement all or part of the functions of the second node. In the second aspect and its possible implementation manners, taking the case where this method is executed by the second node as an example for description, the first node may be a communication device such as a router, a switch, a virtual switch, a virtual router, or a smart network card. Among them, the second node may be a node that supports network sharding. In this method, the second node determines the load sharing quantity of the second node, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing manner in the network shard; wherein, the load sharing quantity of the second node is used to determine the equivalent route, and the equivalent route is used to forward packets in the network shard; the second node sends the load sharing quantity of the second node.

[0035] Based on the above technical solution, the second node is a node that supports network sharding, and moreover, the second node can send the load sharing quantity of the second node, so that the receiving party (such as the first node) can determine the equivalent route for forwarding packets in the network shard based on the load sharing quantity of the second node. In other words, the receiving party can determine the load sharing quantity in the network shard based on the information sent by other nodes. Thus, compared with the method in which the forwarding node processes any packet forwarded by the forwarding node based on the same load sharing quantity, the receiving party can determine the equivalent route based on the load sharing quantity corresponding to the network shard, and subsequently, the receiving party can implement packet forwarding in the network shard based on the equivalent route determined by the fine-grained load sharing quantity, which can improve the flexibility of the solution implementation.

[0036] In addition, since different services can be carried by different network shards, and the service transmission requirements of different services may be different. For this reason, through the above method, the corresponding load sharing quantity can be configured for different network shards corresponding to different services. By flexibly configuring the load sharing quantities of different network shards, the service transmission requirements of different services can be met.

[0037] In a possible implementation of the second aspect, the second node is the node with the highest priority among the multiple nodes corresponding to the network slice.

[0038] Optionally, the second node is any one of the K (K is a positive integer) nodes with relatively high priority among the multiple nodes corresponding to the network slice.

[0039] Based on the above technical solution, the second node for sending the load sharing quantity can be the node with the highest (or relatively high) priority among the multiple nodes corresponding to the network slice, so that some of the multiple nodes corresponding to the network slice send the load sharing quantity. In this way, some nodes among the N nodes (i.e., the above-mentioned second nodes) can be configured to send the load sharing quantity, so that the N nodes can determine the load sharing quantity in the network slice based on the load sharing quantity indicated by these nodes. It can simplify the configuration to reduce the configuration overhead, and at the same time, it can prevent different nodes from configuring different load sharing quantities.

[0040] In a possible implementation of the second aspect, the network slice is a network slice sliced based on flex - algorithm, a network slice sliced based on topology, or a network slice sliced based on instance.

[0041] Based on the above technical solution, the network slice can be implemented in the above - mentioned multiple ways to improve the flexibility of the solution implementation.

[0042] Optionally, when the network slice is a network slice sliced based on flex - algorithm, the load sharing quantity of the second node is carried in the Sub - TLV of the FAD TLV.

[0043] Optionally, the message carrying the FAD TLV is an IS - IS message, an OSPF message, or a BGP - SPF message.

[0044] In a possible implementation of the second aspect, at least one of the load sharing quantities of the at least one node is 1.

[0045] Based on the above technical solution, when the equal - cost routes for forwarding messages in the network slice are determined based on the load sharing quantity of 1, the messages transmitted within the network slice can be transmitted through the same path. Compared with the implementation method of transmitting different flows through the same path by hash operation, since there is no need to perform hash operation, the message processing delay can be reduced, and thus the message forwarding efficiency can be improved.

[0046] In a possible implementation of the second aspect, the network slice is a slice associated with a clock.

[0047] Based on the above technical solution, in the case where the network slice is a slice associated with a clock, the network slice can be used to carry clock services. Correspondingly, the above implementation method can meet the load sharing requirements in the clock service scenario.

[0048] Optionally, the packets transmitted by the slice associated with the clock may include two-step mode packets, such as Sync packets and Follow_Up packets, etc. Optionally, the packets transmitted by the slice associated with the clock may include one-step mode packets, such as Sync packets and Announce packets carrying accuracy TLV, etc.

[0049] A third aspect of the present application provides a communication method. This method is executed by a third node, or by some components in the third node (such as a processor, a chip, or a chip system, etc.), or this method can also be implemented by a logic module or software that can implement all or part of the functions of the third node. In the third aspect and its possible implementation manners, taking the case where this method is executed by the third node as an example for description, the third node may be a communication device such as a router, a switch, a virtual switch, a virtual router, or a smart network card. Among them, the third node may be a node that supports network slicing. In this method, the third node obtains configuration information, and the configuration information is used to configure the load sharing quantity, and the load sharing quantity is used to indicate the number of equivalent routes in the network slice under the load sharing mode; the network slice is a network slice sliced based on flex-algorithm; the third node determines equivalent routes based on the load sharing quantity, and the routes are used to forward packets in the network slice.

[0050] Based on the above technical solution, as a node that supports network slicing based on flex-algorithm, the third node can obtain the load sharing quantity of the third node in the network slice based on the configuration information, and determine the equivalent routes for forwarding packets in the network slice based on the load sharing quantity of the third node in the network slice. In other words, the third node can determine the load sharing quantity in the network slice corresponding to flex-algorithm based on the configuration information. Thus, compared with the method in which the forwarding node processes any packet forwarded by the forwarding node based on the same load sharing quantity, the third node can determine the equivalent routes based on the load sharing quantity corresponding to the network slice. Subsequently, the third node can implement packet forwarding based on the equivalent routes determined by the fine-grained load sharing quantity in the network slice corresponding to flex-algorithm, which can improve the flexibility of the scheme implementation.

[0051] In addition, since different services can be carried by different flex - algorithm network slices, and the service transmission requirements of different services may be different. Therefore, through the above - mentioned method, the corresponding load - sharing quantity can be configured for different flex - algorithm network slices corresponding to different services. By flexibly configuring the load - sharing quantity of different flex - algorithm network slices, the service transmission requirements of different services can be met.

[0052] In a possible implementation manner of the third aspect, the third node obtains configuration information, including: the third node receives configuration information from a network management device or a controller.

[0053] Based on the above - mentioned technical solution, the third node can receive configuration information from other devices (such as a network management device or a controller, etc.) to obtain the configuration information.

[0054] Optionally, the third node can obtain the configuration information in the way of manual configuration by network operation and maintenance personnel.

[0055] In the fourth aspect of this application, a communication device is provided. This device can implement the method in the first aspect or any possible implementation manner of the first aspect. The device includes corresponding units or modules for executing the above - mentioned method. The units or modules included in the device can be implemented in software and / or hardware ways. For example, the device can be the first node, or the device can be a component in the first node (such as a processor, a chip, or a chip system, etc.), or the device can also be a logical module or software that can implement all or part of the functions of the first node.

[0056] The device includes a transceiver unit and a processing unit; the transceiver unit is used to receive the load - sharing quantity of at least one node, and the load - sharing quantity is used to indicate the number of equivalent routes in the load - sharing mode in the network slice; the processing unit is used to determine equivalent routes based on the load - sharing quantity of at least one node; wherein, the equivalent routes are used to forward packets in the network slice.

[0057] In the fifth aspect of this application, a communication device is provided. This device can implement the method in the second aspect or any possible implementation manner of the second aspect. The device includes corresponding units or modules for executing the above - mentioned method. The units or modules included in the device can be implemented in software and / or hardware ways. For example, the device can be the second node, or the device can be a component in the second node (such as a processor, a chip, or a chip system, etc.), or the device can also be a logical module or software that can implement all or part of the functions of the second node.

[0058] The device includes a transceiver unit and a processing unit; the processing unit is used to determine the load sharing quantity of a second node, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing mode in the network slice; wherein, the load sharing quantity of the second node is used to determine equivalent routes, and the equivalent routes are used to forward packets in the network slice; the transceiver unit is used to send the load sharing quantity of the second node.

[0059] A sixth aspect of this application provides a communication device, which can implement the method in the above-mentioned third aspect or any possible implementation manner of the third aspect. The device includes corresponding units or modules for executing the above method. The units or modules included in the device can be implemented in software and / or hardware. For example, the device can be a third node, or the device can be a component in the third node (such as a processor, a chip, or a chip system, etc.), or the device can also be a logical module or software that can implement all or part of the functions of the third node.

[0060] The device includes a processing unit; the transceiver unit is used to obtain configuration information, and the configuration information is used to configure the load sharing quantity, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing mode in the network slice; the network slice is a network slice sliced based on flex-algorithm; the processing unit is further used to determine equivalent routes based on the load sharing quantity, and the equivalent routes are used to forward packets in the network slice.

[0061] A seventh aspect of this application provides a communication device. The communication device includes at least one processor, and the at least one processor is used to execute a program or instruction stored in a memory, so that the device implements the method described in any one of the foregoing first aspect to third aspect and any possible implementation manner thereof.

[0062] An eighth aspect of this application provides a communication device, including at least one logic circuit and an input / output interface; the logic circuit is used to execute the method described in any one of the foregoing first aspect to third aspect and any possible implementation manner thereof.

[0063] A ninth aspect of this application provides a computer-readable storage medium for storing computer instructions; when the computer instructions are executed by a processor, the processor executes the method described in any one of the above-mentioned first aspect to third aspect and any possible implementation manner thereof.

[0064] A tenth aspect of this application provides a computer program product (or computer program), and the computer program product includes instructions. When the instructions in the computer program product are executed by a processor, the processor executes the method described in any one of the above-mentioned first aspect to third aspect and any possible implementation manner thereof.

[0065] The eleventh aspect of the present application provides a chip system, which includes a communication interface and a processor. The communication interface and the processor are coupled to support a communication device to implement the method described in any one of the first aspect to the third aspect and any possible implementation manner thereof.

[0066] In a possible design, the chip system may further include a memory for storing necessary program instructions and data of the communication device. The chip system may be composed of chips or may include chips and other discrete devices. Optionally, the chip system further includes an interface circuit that provides program instructions and / or data for the at least one processor.

[0067] The twelfth aspect of the present application provides a communication system, which includes the above-mentioned first node and second node.

[0068] Optionally, the communication system further includes other nodes among the above N nodes except the second node.

[0069] The thirteenth aspect of the present application provides a communication system, which includes the above-mentioned third node.

[0070] Among them, for the technical effects brought by any one of the design manners in the fourth aspect to the thirteenth aspect, reference may be made to the technical effects brought by different implementation manners in the first aspect to the third aspect, which will not be elaborated herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0071] Figure 1 It is a schematic diagram of a communication system involved in the present application;

[0072] Figure 2a It is a schematic diagram of clock message transmission involved in the present application;

[0073] Figure 2b It is another schematic diagram of clock message transmission involved in the present application;

[0074] Figure 3a It is a schematic diagram of a message format involved in the present application;

[0075] Figure 3b It is another schematic diagram of a message format involved in the present application;

[0076] Figure 4 It is a schematic diagram of a communication scenario involved in the present application;

[0077] Figure 5 It is a schematic diagram of a communication method provided by the present application;

[0078] Figure 6aAnother schematic diagram of the communication scenario provided by this application;

[0079] Figure 6b A schematic diagram of the message format provided by this application;

[0080] Figure 7 Another schematic diagram of the communication method provided by this application;

[0081] Figure 8 A schematic diagram of the communication device provided by this application;

[0082] Figure 9 Another schematic diagram of the communication device provided by this application. Detailed implementation manners

[0083] Next, the technical solutions in the embodiments of this application will be described with reference to the accompanying drawings in the embodiments of this application.

[0084] In the embodiments of this application, the terms "system" and "network" can be used interchangeably. "At least one" means one or more, and "a plurality" means two or more. "And / or" describes the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after. "At least one (item)" or its similar expression refers to any combination of these items, including any combination of single item (item) or plural items (items). For example, "at least one of A, B, and C" includes A, B, C, AB, AC, BC, or ABC. Also, unless otherwise specified, the ordinal numbers such as "first" and "second" mentioned in the embodiments of this application are used to distinguish multiple objects and do not limit the order, time sequence, priority, or importance degree of multiple objects.

[0085] It should be noted that in this application, words such as "exemplary" or "for example" are used to represent examples, illustrations, or explanations. Any embodiment or design solution described as "exemplary" or "for example" in this application should not be construed as being more preferred or having more advantages than other embodiments or design solutions. Exactly speaking, using words such as "exemplary" or "for example" aims to present relevant concepts in a specific manner.

[0086] It should be understood that in this application, "when...", "if", and "in case" all refer to that the device will perform corresponding processing under a certain objective situation, which does not limit the time, and it is not required that the device must have a judgment action when implemented, nor does it mean that there are other limitations.

[0087] In this application, unless otherwise specified, the same or similar parts among various embodiments or implementation manners can be referred to each other. In each embodiment of this application, and in each implementation manner / implementation method / realization method in each embodiment, if there is no special specification and logical conflict, the terms and / or descriptions among different embodiments, and among the various implementation manners / implementation methods / realization methods in each embodiment are consistent and can be cited mutually. The technical features in different embodiments, and in the various implementation manners / implementation methods / realization methods in each embodiment can be combined to form new embodiments, implementation manners, implementation methods or realization methods according to their internal logical relationships. The implementation manners of this application described below do not constitute a limitation on the protection scope of this application.

[0088] To facilitate the understanding of the method provided by the embodiments of this application, the system architecture of the method provided by the embodiments of this application will be described below. It can be understood that the system architecture described in the embodiments of this application is for more clearly explaining the technical solution of the embodiments of this application, and does not constitute a limitation on the technical solution provided by the embodiments of this application.

[0089] See Figure 1 , which is a schematic diagram of the architecture of the communication system provided by the embodiments of this application. As Figure 1 shown, the system includes multiple customer edge (CE) devices, such as customer edge device 101 and customer edge device 102, and other possible customer edge devices; the system also includes multiple network devices, such as network device 103, network device 104, network device 105 and network device 106, and other possible network devices.

[0090] In Figure 1 , the customer edge device can be used as the ingress device of the message flow (or data flow) transmitted by the communication system; correspondingly, this customer edge device can be called the source device, source node, etc. Alternatively, the customer edge device can be used as the egress device of the message flow transmitted by the communication system. In this case, this customer edge device can be connected to the receiving end of the message flow; correspondingly, this customer edge device can be called the destination device, destination node, etc. Among them, the sending end of the message flow or the receiving end of the message flow can be a terminal device, server, virtual machine and other devices with data sending and receiving requirements.

[0091] In addition, Figure 1 as shown, when each of the network devices forwards a message or a message flow, it can distribute the load (i.e., the message or the message flow) to multiple links for forwarding. That is, through the load sharing method, traffic, requests, data, etc. are distributed, thereby improving the availability, reliability and performance of the system.

[0092] To facilitate the understanding of the solution of this application, some terms of this application will be explained below to facilitate the understanding of those skilled in the art.

[0093] (1) Precision Time Protocol (PTP). In a communication network, the normal operation of most telecommunications services requires that the frequency or time difference between network devices be kept within a reasonable error level, that is, network clock synchronization. PTP is a time protocol for network measurement and control systems, which can achieve a high network time synchronization accuracy and realize high-precision time synchronization. PTP itself can be used for high-precision time synchronization between devices, or can be borrowed for frequency synchronization between devices.

[0094] Among them, the 1588 protocol is defined by the IEEE, and its full name is "Precision Clock Synchronization Protocol for Networked Measurement and Control Systems", abbreviated as the PTP protocol.

[0095] In addition, the PTP protocol supports hop-by-hop time synchronization, and the PTP message encapsulation supports multiple methods, including the three-layer unicast method. The three-layer unicast message forwarding depends on the path calculated by the routing protocol.

[0096] (2) Basic concepts of PTP.

[0097] ① PTP domain: The network to which the PTP protocol is applied can be called a PTP domain.

[0098] Optionally, there is one and only one synchronization clock in the PTP domain, and the devices in the PTP domain are all synchronized with this clock.

[0099] ② PTP port: The port on which the PTP protocol runs on a device can be called a PTP port. Generally, PTP ports can include a master port, a slave port, and a passive port.

[0100] (3) Clock node: The nodes in the PTP domain are called clock nodes. The PTP protocol defines the following three types of basic clock nodes:

[0101] Ordinary clock (OC): This clock node has only one PTP port participating in time synchronization within the same PTP domain, and synchronizes time from the upstream clock node through this port. In addition, when the clock node is used as a clock source, it can publish time to the downstream clock node only through one PTP port, and it is also called OC.

[0102] Boundary Clock (BC): This clock node has multiple PTP ports within the same PTP domain participating in time synchronization. It synchronizes time from the upstream clock node through one of its ports and distributes time to the downstream clock nodes through the remaining ports. Additionally, when a clock node serves as a clock source and can distribute time to downstream clock nodes through multiple PTP ports, it can also be referred to as a BC, such as Figure 1 BC 1 in

[0103] Transparent Clock (TC): Compared with BC / OC, BC / OC needs to maintain time synchronization with other clock nodes, while TC does not need to. Generally, TC has multiple PTP ports, but it only forwards PTP protocol messages between these ports and corrects the forwarding delay, without synchronizing time through any port.

[0104] Generally, the BC type can be used to recover time, and the TC type can be used to transfer time.

[0105] (4) The way TC nodes forward messages.

[0106] Among them, TC includes the following two types:

[0107] End-to-End transparent clock (E2E TC): It can forward non-Peer-to-Peer (P2P) type protocol messages in the network and participate in calculating the delay of the entire link.

[0108] Peer-to-Peer transparent clock (P2PTC): It can directly forward messages such as Sync messages, Follow_Up messages, and Announce messages, while terminating other PTP protocol messages and participating in calculating the delay of each segment of the entire link.

[0109] Such as Figure 2a The example shown is an implementation example of an E2E TC node forwarding messages.

[0110] For example, this E2E TC node can receive Announce messages, Sync messages, etc. on port 1 and forward Announce messages and Sync messages on port 2. Among them, these two messages can come from a reference clock (which can be called a grandmaster clock, simply referred to as grandmaster or GM) and be sent to an OC node.

[0111] For another example, the E2E TC node can receive a Delay_Req message etc. on port 2, and forward the Delay_Req message on port 1. Among them, the Delay_Req message can come from the OC and be sent to the GM.

[0112] For another example, the E2E TC node can receive a Delay_Resp message etc. on port 1, and forward the Delay_Resp message on port 2. Among them, the Delay_Resp message can come from the GM and be sent to the OC.

[0113] As Figure 2b shown in the example, it is an implementation example of the P2P TC node forwarding messages. It can include Announce messages, Sync messages, point-to-point delay request (Pdelay_Req) messages, point-to-point delay response (PDelay_Resp) messages, and point-to-point delay response follow-up (PDelay_Resp_Follow_Up) messages.

[0114] As an example, for the received 1588 Announce message, the E2E TC and P2P TC can make no changes and then send the Announce message to other devices from the exit port.

[0115] As another example, for the received 1588 Sync message, the TC can have the following multiple processing methods.

[0116] For the E2E TC device, it can record the reception timestamp t1 of the Sync message at the entrance, and record the transmission timestamp t2 when sending the message at the exit.

[0117] Optionally, if the exit port of the E2E TC device is in one-step mode, the E2E TC accumulates t2 - t1 into the correction field of the Sync message.

[0118] Optionally, if the exit port of the E2E TC device is in two-step mode, the E2E TC accumulates t2 - t1 into the correction field of the Follow_Up message. This Follow_Up message is associated with the Sync message one by one. The IEEE1588v2 standard has defined that by identifying the source port identity and sequence ID fields of the received Follow_Up message and Sync message, if both fields are the same, then this Follow_Up message and Sync message are associated one by one.

[0119] For a P2P TC device, it can record the reception timestamp t1 of the Sync message at the ingress. And when sending a message at the egress, it records the transmission timestamp t2. And the P2P TC device calculates the link delay D between the ingress and the upstream-connected port in real time according to the Pdelay message.

[0120] Optionally, if the egress port of the P2P TC device is in the one-step mode, the P2P TC accumulates t2 - t1 and D into the correctionField of the Sync message.

[0121] Optionally, if the egress port of the P2P TC device is in the two-step mode, the P2P TC accumulates t2 - t1 and D into the correctionField of the Follow_Up message, and this Follow_Up message is associated with the Sync message one by one.

[0122] Optionally, the link delay D can be the link delay between the port that receives the Sync message and the port that sends the Sync message. For example, this delay is calculated through the Pdelay message, and the Pdelay message and the Sync message share the same path.

[0123] As another example, for the received 1588 Delay_Req message, the TC can have the following multiple processing methods.

[0124] For an E2E TC device, it can record the reception timestamp t3 of the Delay_Req message at the ingress. And when sending a message at the egress, it records the transmission timestamp t4.

[0125] Optionally, if the egress port of the E2E TC device is in the one-step mode, the E2E TC accumulates t4 - t3 into the correctionField of the Delay_Req message.

[0126] Optionally, if the egress port of the E2E TC device is in the two-step mode, the E2E TC accumulates t4 - t3 into the correctionField of the Delay_Resp message, and this Delay_Resp message is associated with the Delay_Req message one by one.

[0127] In addition, the P2P TC device does not process the Delay_Req message and the Delay_Resp message.

[0128] (5) Basic concept of the Flex-Algorithm.

[0129] Among them, Flex-Algorithm is defined in the IGP Flexible Algorithm of Request for Comments (RFC) 9350, and the corresponding forwarding plane can be Segment Routing (SR).

[0130] In addition, the use of Flex-Algorithm is also defined in draft-ietf-lsr-ip-flexalgo, and the forwarding plane is IP.

[0131] The following concepts are described based on RFC9350. Traditionally, IGP protocols calculate the best path on the network based on the IGP metric assigned to the link. Many network deployments use Resource Reservation Protocol Traffic Engineering (RSVP-TE) or Segment Routing (SR)-based traffic engineering to force traffic on paths calculated using metrics or constraints different from the shortest IGP path. Flex-Algorithm proposes a solution by defining a combination of a set of constraints to flood within the IGP domain, enabling nodes within the IGP domain to calculate constraint-based paths based on the same constraints, thereby achieving the ability of distributed TE.

[0132] In addition, the Flexible Algorithm Definition (FAD) can be flooded within the IGP domain as the capability information of nodes. For example, FAD can include information such as (a) Calculation Type (Calc-Type), (b) Metric Type, and (c) Constraints.

[0133] In an implementation example, for (a) Calculation Type (Calc-Type), different values can correspond to different meanings. For example, a value of 0 indicates that the calculation type is SPF. Another example is that a value of 1 indicates that the calculation type is strict SPF.

[0134] In an implementation example, for (b) Metric Type, different values can correspond to different meanings. For example, a value of 0 indicates that the metric type is IGP metric. Another example is that a value of 1 indicates that the metric type is link delay (i.e., the minimum one-way link delay, defined in RFC7810). Another example is that a value of 2 indicates that the metric type is Traffic Engineering metric (TE metric) (i.e., the default metric value of TE, defined in RFC5305).

[0135] In one implementation example, for the (c) constraint, it can be understood as a link constraint. Specifically, it can be described by including / excluding the administrative group (attribute) (include / exclude admin-group (color)).

[0136] Generally, the combination of constraints defined in each Flexible - Algorithm can be represented by a Flexible - Algorithm ID. For example, according to the protocol definition, the Flexible - Algorithm ID can be a numeric identifier in the range of 128 - 255, which is associated with the FAD through configuration.

[0137] Exemplarily, as Figure 3a shown, taking the ISIS protocol as an example, in the ISIS Flexible Algorithm Definition Sub - TLV, it can include one or more of the following fields:

[0138] Type: Indicates the type of the Sub - TLV.

[0139] Length: Indicates the length of the Sub - TLV.

[0140] Flex - Algorithm: Identifies the Flexible - Algorithm ID value.

[0141] Metric - Type: Identifies the Metric type used in the calculation process of this Flexible - Algorithm.

[0142] Calc - Type: Defined in the "IGP algorithm type" registry. Generally, when used to specify the Calc - Type in the FAD Sub - TLV, the calculation type defined for the specified IGP algorithm is used, and the metric / constraint cannot be inherited.

[0143] Sub - TLVs: This is an optional part, such as Figure 2aThe Exclude Admin Group Sub-TLV values shown, or Include-Any Admin Group Sub-TLV or Include-All Admin Group Sub-TLV, etc. Among them, by configuring different link attributes (color) for different links, different constraints of the Flex-Algorithm can be configured by including different link attributes carried in the Admin Group Sub-TLV in the definition of each Flex-Algorithm.

[0144] Optionally, the flexible algorithm can be defined by the operator itself. For the free combination of metric-type, calc-type, and link constraints. For example, the device assigns different prefix segment identifiers (prefix-SID) to each Flex-Algo definition (where one flexible-algorithm id can correspond to one or more prefix-ids), and generates different adjacent segment identifiers (adj-SID) for different sub-interfaces for forwarding of different flexible algorithms. In addition, each flexible algorithm can be an algorithm with defined constraints, and each device supporting the SR capability needs to assign different prefix-Sids for this algorithm. Different prefix-Sids can be used to distinguish the forwarding paths calculated by different Flex-Algo algorithms during data forwarding.

[0145] Optionally, in Figure 3b for the "Algorithm" field: When calculating the reachability to other nodes or prefixes, the router may select different algorithms. Different Flex-Algorithm algorithms are assigned to different Prefix-SIDs here. That is, the node assigns different Prefix-SIDs to each Flex-Algo definition.

[0146] (6) Network slicing. Network slicing can be customized for services. For example, low-latency slicing is customized for services with latency requirements, and high-bandwidth slicing is customized for services with bandwidth requirements. Network slicing requires that the service packets of each slice can only use the forwarding resources of that slice and be forwarded within the topology of that slice, so as to achieve resource isolation for different services.

[0147] Exemplarily, the 5G system is expected to be able to provide different customized optimization capabilities for different services simultaneously. The logically isolated network partition (LINP) becomes the key concept to achieve this goal. A network slice means "in a physical network, organizing related service functions and network resources together to form a complete, autonomous, and independently operated and maintained logical network to meet specific user and service requirements" (3GPP). For example, one network slice provides video services, one network slice provides M2M services, and one slice provides ultra-low latency (e.g., less than 1 millisecond) autonomous driving services, etc.

[0148] Optionally, network slicing can be implemented based on a flexible algorithm. Using the Flex-Algorithm ID as the identifier for each slice, one Flex-Algorithm ID represents one network slice. Among all devices in the domain where Flex-Algorithm floods, all nodes that meet the constraint conditions of the Flex-Algorithm algorithm automatically form the topology of the Flex-Algorithm, that is, each slice has its own independent topology. Each node in the topology of the slice calculates the forwarding path based on the constraint conditions defined by the Flex-Algorithm and generates a forwarding table for the slice.

[0149] (7) The concept of load sharing. "Load sharing" means that if there are multiple equivalent forwarding paths for the data stream sent to a certain destination, the data will be forwarded on these multiple paths to achieve the purpose of traffic splitting. When forwarding data, the amount of data traffic forwarded on each path is not necessarily the same, and the amount of forwarded traffic needs to be determined according to the load sharing method.

[0150] Optionally, when a network device performs load sharing, it usually adopts a flow-based method to distribute different flows to different forwarding paths. For example, for layer 3 flows, it usually adopts a five-tuple method, such as the IP protocol number, source and destination addresses, and source and destination port numbers.

[0151] Optionally, when there are multiple routes to the same destination address in the routing table and the same routing protocol (such as ISIS, OSPF protocol) discovers multiple routes, as long as the cost values of these routes are also the same, then load sharing can be performed. Due to the constraints of system resources, generally, the maximum number of equivalent routes for load sharing is controlled.

[0152] In a communication network (such as Figure 1In the system shown, forwarding nodes such as switches and network devices are usually configured with multiple outgoing interfaces, and different outgoing interfaces can correspond to different packet forwarding paths. To avoid traffic congestion on a certain path, when forwarding a packet, the forwarding node can select a path with the lightest load at the current time from different paths to send the packet, and this process is load sharing. The purpose of load sharing is to achieve load balancing among various paths and avoid network congestion.

[0153] Currently, the forwarding node can determine the load sharing quantity of the packets forwarded by the forwarding node through the configuration information configured by the controller or manually. Thereafter, the forwarding node can process all the packets forwarded by the forwarding node based on the load sharing quantity. However, after the forwarding node configures the load sharing quantity, the forwarding node will forward and process any packet forwarded by the forwarding node based on the same load sharing quantity. This relatively coarse-grained configuration method of the load sharing quantity results in poor flexibility of this implementation method.

[0154] In addition, this implementation method may also cause the process of the forwarding node forwarding and processing packets to fail to meet the service requirements, which will be introduced below in combination with some examples. As an example, the network where the forwarding node is located may transmit multiple services, and different services may have different requirements.

[0155] For example, the network can be used to transmit PTP services and non-PTP services. Among them, for PTP services, there are multiple types of PTP precise clock protocol packets. When L3 forwarding is supported, the user datagram protocol (UDP) port number of the Sync packet is 319, and the UDP port number of the Signaling / Announce / Follow_Up packet is 320. The PTP protocol supports the Two-Step method, that is, the Sync packet does not carry the timestamp of the sending moment of this packet, but only records the time when this packet is sent, and the subsequent Follow_Up packet carries the timestamp of the sending moment of this packet on the packet. When this method is supported, it is required that the Sync packet and the Follow_Up packet share the same path, that is, they are forwarded through the same path, but the UDP port numbers of these two packets are different. If there is load sharing on the forwarding path and the five-tuple-based method is used for load sharing, the Sync and Follow_Up packets may be forwarded through different paths.

[0156] Exemplarily, in Figure 4In the scenario shown, the GM can provide time synchronization for the OC, that is, the OC can obtain time synchronization through the GM. This scenario takes the case where BC1 can be routed through k (k > 2) paths as an example. For BC1, if BC1 is configured with a load sharing number greater than 1, then when BC1 forwards Sync messages and Follow - up messages, it may split these two messages to different paths. This will result in the Sync message and the Follow - Up message not sharing the same path, which may affect the accuracy of the time synchronization obtained by the OC and the performance of the PTP service.

[0157] As can be seen from the above example, PTP messages may not be load - balanced based on the five - tuple. However, in addition to forwarding PTP services, the forwarding node may also forward other services (such as dedicated line services). For example, when the forwarding node forwards non - PTP services, it may still need to perform load - balancing based on the five - tuple.

[0158] In the above implementation process, after the forwarding node configures the load sharing number, the forwarding node will process any message it forwards based on this load sharing number. This implementation method has poor flexibility. Moreover, the above implementation process may cause the transmission requirements of some services not to be met. For example, when a forwarding node is configured with a load sharing number of 1, when the forwarding node forwards PTP services, the transmission requirements of the PTP service can be met, but the transmission requirements of non - PTP services may not be met. Another example is that when a forwarding node is configured with a load sharing number greater than 1, when the forwarding node forwards PTP services, the transmission requirements of the PTP service may not be met.

[0159] Please refer to Figure 5 , which is a schematic diagram of the communication method provided by this application. The method includes the following steps. The method at least includes Figure 5 the steps S501 and S502 shown.

[0160] It should be noted that in the following method, network devices such as the first node and at least one node are used as the execution subjects of each step to illustrate the method, but this application does not limit the execution subjects of this interaction illustration. For example, in Figure 5 the method shown, each step can also be executed by some components of the network device (such as a processor, a chip, or a chip system, etc.), or each step can also be executed by a logic module or software of the network device. Among them, the network device can be a router, a switch, a virtual switch, a virtual router, a smart network card, etc.

[0161] S501. The first node receives the load sharing quantity of at least one node. Herein, the first node may be a node that supports network sharding, and the load sharing quantity is used to indicate the number of equivalent routes in the network shard under the load sharing mode.

[0162] In this application, the load sharing quantity can be used to indicate the maximum number of equivalent routes under the load sharing mode. Herein, terms such as load sharing quantity, maximum load balancing number, and load sharing quantity can be replaced with each other.

[0163] It should be noted that the nodes supporting the above network sharding may include N (N>1) nodes, or the service transmission nodes of the network shard include N nodes. Herein, the N nodes at least include the above first node and the above at least one node. In addition, the at least one node is a node that configures and sends the load sharing quantity, and the priorities of these nodes may be nodes with lower priorities or nodes with higher priorities, which are not limited herein.

[0164] As an implementation example, the number of the at least one node is N-1. In other words, the other N-1 nodes among the N nodes can send their local load sharing quantities to the first node.

[0165] As another implementation example, the number of the at least one node is less than N-1. In other words, among the N nodes, in addition to including the first node and the at least one node, other nodes may also be included. In this case, the other nodes may not send the load sharing quantities of the other nodes (for example, the priorities of the other nodes are lower or the other nodes are not configured with the load sharing quantities within the network shard). In this way, the load sharing quantity can be configured and sent on some of the N nodes (i.e., the above at least one node), so that the N nodes can determine the load sharing quantity in the network shard based on the load sharing quantities indicated by these partial nodes. While simplifying the configuration to reduce the configuration overhead, it can also prevent different nodes from configuring different load sharing quantities.

[0166] In a possible implementation, any one of the at least one node (or one of the nodes) may be the second node, or in other words, the at least one node includes the second node. Wherein, the second node is the node with the highest priority among the multiple nodes corresponding to the network slice; or, the second node is any one of the K (K is a positive integer) nodes with relatively high priority among the multiple nodes corresponding to the network slice. Specifically, the second node for sending the load sharing quantity may be the node with the highest (or relatively high) priority among the multiple nodes corresponding to the network slice, so that some nodes among the multiple nodes corresponding to the network slice send the load sharing quantity. In this way, the load sharing quantity can be configured and sent on some nodes (i.e., the above-mentioned second nodes) among the N nodes, so that the N nodes can determine the load sharing quantity in the network slice based on the load sharing quantity indicated by these nodes, which can simplify the configuration to reduce the configuration overhead and can also prevent different nodes from configuring different load sharing quantities.

[0167] Optionally, taking the second node among the at least one node as an example, the load sharing quantity of the second node may be the load sharing quantity obtained by the second node through manual configuration (or controller / network management configuration), and this load sharing quantity can be configured on the second node and sent (or spread) to other nodes in the network slice in step S501; or, this load sharing quantity may not be configured on the second node, but sent (or spread) to other nodes in the network slice in step S501.

[0168] Optionally, taking the second node among the at least one node as an example, the load sharing quantity sent by the second node to the first node in step S501 may be the load sharing quantity locally configured by the second node or the load sharing quantity received from other nodes by the second node, which is not limited here. In a possible implementation, the above-mentioned network slice is a network slice sliced based on a flexible algorithm (flex-algorithm), a network slice sliced based on topology, or a network slice sliced based on an instance. Among them, the network slice can be implemented in the above multiple ways to improve the flexibility of the solution implementation.

[0169] Exemplarily, in the case where the network slice is a network slice sliced based on a flex-algorithm, the load sharing quantities of the at least one node are respectively carried in the sub-type length values (Sub-TLV) of at least one flexible algorithm definition type length value (FAD TLV). In other words, the protocol of Flex-algo can be extended to add a new field for carrying the load sharing quantities of the at least one node.

[0170] Generally, a Flex-algorithm value can correspond to a network shard, that is, different Flex-algorithm values can correspond to different network shards. Correspondingly, nodes in the same network shard can advertise FAD TLvs carrying the same Flex-algorithm value. Among them, nodes in the same network shard can select a certain node of this shard according to the preference rules defined in the Flex-algorithm standard, and the Flex-algorithm shards of these nodes all adopt the information in the FAD TLV advertised by this node, such as the algorithm, Metric type, and maximum load sharing number.

[0171] Take Figure 6a as an example. Sub-TLVs can be added to the FAD TLV, including the following fields: Type, Length, and Value. Among them, this Value can be used to carry the "load sharing number", which is represented as the "MaxLoad-balance Number" field in Figure 6a .

[0172] For example, in the Sub-TLV of the FAD TLV carried in the packet sent by a certain node, when the value of the "Max Load-balanceNumber" field is 1, it can be understood that this node indicates that the load sharing number in the network shard indicated by the "Flex-algorithm" field in the FAD TLV is 1. Generally, since a load sharing number of 1 means that this node transmits packets with the same destination address based on the same path in this network shard, therefore, when the value of the "Max Load-balance Number" field is 1, it can also be understood that this node indicates that load sharing is not supported in the network shard indicated by the "Flex-algorithm" field in the FAD TLV.

[0173] Another example is that in the Sub-TLV of the FAD TLV carried in the packet sent by a certain node, when the value of the "Max Load-balanceNumber" field is greater than 1, it can be understood that this node indicates that the load sharing number in the network shard indicated by the "Flex-algorithm" field in the FAD TLV is greater than 1, and the load sharing number does not exceed the value of this field.

[0174] It can be understood that among the N nodes, when the number of nodes of at least one node is N - 1, all N - 1 nodes can carry the Sub-TLV of the FAD TLV in the sent message, and carry the "Max Load-balance Number" field in this Sub-TLV.

[0175] In addition, among the N nodes, when the number of nodes of at least one node is less than N - 1, some of the N - 1 nodes can carry the Sub-TLV of the FAD TLV in the sent message, and carry the "MaxLoad-balance Number" field in this Sub-TLV; while the other nodes among the N - 1 nodes can not carry the Sub-TLV containing the "Max Load-balance Number" field in the FAD TLV of the sent message. In this way, while simplifying the configuration to reduce the configuration overhead, it can also prevent different nodes from configuring different load sharing numbers.

[0176] Optionally, the message carrying the at least one FAD TLV is an Intermediate System to Intermediate System (IS-IS) message, an Open Shortest Path First (OSPF) message, or a Border Gateway Protocol - Shortest Path First (BGP-SPF) message.

[0177] S502. The first node determines an equivalent route based on the load sharing numbers of the at least one node. Among them, the equivalent route is used to forward messages in the network slice.

[0178] Optionally, in step S502, the first node can determine an equivalent route based on the load sharing numbers of the at least one node, and the number of this route is determined based on the load sharing numbers of the at least one node; for example, the number of the equivalent route and the load sharing numbers of the at least one node can be the same.

[0179] In a possible implementation manner, in step S502, the first node can determine an equivalent route based on multiple methods, which will be described below in combination with some implementation examples.

[0180] Implementation example one, in step S502, the first node determines an equivalent route based on the load sharing number of the node with the highest priority among the load sharing numbers of the at least one node.

[0181] In Implementation Example 1, during the process of determining equivalent routes, the first node can determine equivalent routes based on the load sharing quantity of the node with the highest priority among at least one node. In this way, the N nodes corresponding to the network sharding can all determine equivalent routes based on the load sharing quantity of the node with the highest priority, which can prevent different nodes from configuring different load sharing quantities.

[0182] It should be noted that taking the network sharding based on flex - algorithm as an example, the priority of the node can follow the judgment rules of flex - algorithm. For example, the priority of a node can be determined by the value of the "Priority" field carried in the FAD TLV carried in the packet sent by the node. For example, the larger the value of this field, the higher the priority of the node.

[0183] As a configuration example, taking the IS - IS protocol as an example, when the configuration information in the node with the highest priority (or higher priority) configures the load sharing quantity, the configuration information can include the following content shown in Table 1.

[0184] Table 1

[0185]

[0186] As another configuration example, taking the IS - IS protocol as an example, when the configuration information in the node with a lower priority does not configure the load sharing quantity, the configuration information can include the following content shown in Table 2.

[0187] Table 2

[0188]

[0189] Optionally, if the priorities of two or more nodes are the same, then the priority can be judged according to the node identifier. For example, the smaller the node identifier, the higher the node priority (or the larger the node identifier, the higher the node priority). In this way, the devices in the same flex - algorithm network sharding can all adopt the load sharing quantity indicated by the node with the highest priority.

[0190] In Implementation Example 2, in step S502, the first node determines equivalent routes based on the load sharing quantity of the at least one node and the load sharing quantity of the node with the highest priority among the load sharing quantities of the first node.

[0191] In Implementation Example 2, during the process of determining equivalent routes, when the load sharing quantity of the first node is configured, the first node can determine the equivalent routes based on the load sharing quantity of the first node and the node with the highest priority among at least one node. In this way, it can adapt to the scenario where the first node itself is configured with a load sharing quantity, and it can enable all N nodes corresponding to the network sharding to determine the equivalent routes based on the load sharing quantity of the node with the highest priority, which can prevent different nodes from being configured with different load sharing quantities.

[0192] Implementation Example 3: In step S502, when the priorities of at least one node are all lower than the priorities of at least one other node in the network sharding, the first node determines the equivalent routes based on the load sharing quantity of the first node.

[0193] In Implementation Example 3, the first node can receive the load sharing quantities of at least one node. When the priorities of at least one node are all lower than the priorities of at least one other node in the network sharding, since the first node can determine that there is no need to follow the load sharing quantity indicated by the low-priority nodes (i.e., the at least one node), therefore, the first node can determine the equivalent routes based on the load sharing quantity of the first node configured locally. In this way, when the load sharing quantity of the low-priority nodes is configured incorrectly or the high-priority nodes are not configured with a load sharing quantity, the first node can still determine the equivalent routes based on the load sharing quantity of the first node configured locally.

[0194] Optionally, the load sharing quantity of the first node can be the number of equivalent routes of the first node in the network sharding in the load sharing mode, or it can be a default value, which is not limited here.

[0195] Optionally, in step S502, in addition to the above Implementation Modes 1 to 3, the first node can also determine the equivalent routes based on other methods. For example, the first node can determine the equivalent routes based on the arithmetic operation result of the load sharing quantities of at least one node. Another example is that the first node can determine the equivalent routes based on the arithmetic operation result of the load sharing quantities of at least one node and the load sharing quantity of the first node. Among them, the arithmetic operation result can be the minimum value, the maximum value, the median, the mode, etc.

[0196] In a possible implementation mode, Figure 5 The method shown also includes: The first node sends the load sharing quantity of the first node. Specifically, when the load sharing quantity of the first node is configured, the first node can also send the load sharing quantity of the first node, so that other nodes can use the load sharing quantity of the first node as one of the bases for determining equivalent routes.

[0197] In a possible implementation, at least one of the load sharing quantities of the at least one node is 1. Specifically, when the equivalent route for forwarding packets in a network slice is determined based on a load sharing quantity of 1, the packets transmitted within this network slice can be transmitted through the same path. Compared with the implementation method of using hash operations to transmit different flows through the same path, since there is no need to perform hash operations, the packet processing delay can be reduced, thereby improving the packet forwarding efficiency.

[0198] Optionally, the network slices supported by the above-mentioned first node (or N nodes) are slices associated with a clock. Specifically, when the network slice is a slice associated with a clock, this network slice can be used to carry clock services. In the above implementation, when the equivalent route for forwarding packets in a network slice is determined based on a load sharing quantity of 1, the packets transmitted within this network slice can be transmitted through the same path. As shown in the scenario Figure 4 described above, each node (such as BC1) will transmit clock packets through the same path, enabling the Sync packet and the Follow_Up packet to be transmitted over the same path. Correspondingly, the above implementation can meet the load sharing requirements in this clock service scenario. Among them, the packets transmitted by the slice associated with the clock can include two-step mode packets, such as Sync packets and Follow_Up packets, etc. Optionally, the packets transmitted by the slice associated with the clock can include one-step mode packets, such as Sync packets and Announce packets carrying precision TLV, etc.

[0199] Exemplarily, as Figure 6b shown, compared with the Figure 4 implementation process shown, BC 1 can act as the first node to execute the above implementation process. And, Figure 6b each node in can be the aforementioned N nodes located in the same network slice. Through the above implementation process, the maximum load sharing quantity can be configured to be 1 for the highest priority node (or some or all nodes) among the N nodes. BC 1 can receive the load sharing quantities of other nodes to determine the equivalent route for forwarding packets within this network slice, enabling BC 1 to transmit Sync packets and Follow_Up packets based on one path. And, in other network slices, BC 1 can follow the load sharing quantity configuration in other network slices and determine the equivalent route in other network slices based on the load sharing quantity in other network slices, enabling the packet transmission process of BC 1 within this other network slice to meet the service requirements of this other network slice.

[0200] Based on Figure 5 the technical solution shown, the first node is a node supporting network slicing. In step S501, after the first node receives the load sharing quantities of at least one node, in step S502, it determines an equivalent route for forwarding packets in the network slice based on the load sharing quantities of the at least one node. In other words, the first node can determine the load sharing quantity in the network slice based on the information sent by other nodes. Thus, compared with the method in which the forwarding node processes any packet forwarded by the forwarding node based on the same load sharing quantity, as a forwarding device in the network slice, the first node can determine an equivalent route based on the load sharing quantity corresponding to the network slice. Subsequently, the first node can implement packet forwarding in the network slice based on the equivalent route determined by the fine-grained load sharing quantity, which can improve the flexibility of the solution implementation.

[0201] In addition, since different services can be carried by different network slices, and the service transmission requirements of different services may be different. Therefore, through the above method, corresponding load sharing quantities can be configured for different network slices corresponding to different services. By flexibly configuring the load sharing quantities of different network slices, the service transmission requirements of different services can be met.

[0202] Please refer to Figure 7 for another schematic diagram of the communication method provided by this application. The method includes the following steps.

[0203] S701. The third node obtains configuration information. Among them, the configuration information is used to configure the load sharing quantity, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing mode in the network slice; the network slice is a network slice sliced based on flex-algorithm.

[0204] In a possible implementation manner, as shown in the implementation process of the dotted line in Figure 7 , the third node can receive configuration information from other devices (such as network management devices or controllers, etc.) to obtain the configuration information.

[0205] Optionally, the third node can obtain the configuration information by means of manual configuration by network operation and maintenance personnel.

[0206] Exemplarily, the configuration information of the third node can refer to the configuration content shown in Table 1 above.

[0207] S702. The third node determines an equivalent route based on the load sharing quantity, and the equivalent route is used to forward packets in the network slice.

[0208] Based on Figure 7In the technical solution shown, the third node serves as a node that supports network slices that are sliced ​​based on the flex-algorithm. In step S701, the third node can obtain the load sharing quantity of the third node in the network slice based on the configuration information, and determine the equivalent route for forwarding messages in the network slice based on the load sharing quantity of the third node in the network slice in step S702. In other words, the third node can determine the load sharing quantity in the network slice corresponding to the flex-algorithm based on the configuration information. Thus, compared to the method in which the forwarding node processes any message forwarded by the forwarding node based on the same load sharing quantity, the third node can determine the equivalent route based on the load sharing quantity corresponding to the network slice, and subsequently the third node can implement message forwarding based on the equivalent route determined by the fine-grained load sharing quantity in the network slice corresponding to the flex-algorithm, which can improve the flexibility of the solution implementation.

[0209] In addition, since different services can be carried by different flex-algorithm network slices, and the service transmission requirements of different services may be different, through the above method, the corresponding load sharing quantity can be configured for different flex-algorithm network slices corresponding to different services, and the service transmission requirements of different services can be met by flexibly configuring the load sharing quantity of different flex-algorithm network slices.

[0210] See also Figure 8 An embodiment of the present application provides a communication device, and the communication device 800 can implement the functions of the communication device (i.e., the first node, the second node or the third node, etc.) in the above method embodiment, and thus can also achieve the beneficial effects possessed by the above method embodiment.

[0211] When the communication device 800 is used to implement the function of the aforementioned first node, the communication device includes a transceiver unit 801 and a processing unit 802; the transceiver unit 801 is used to receive the load sharing number of at least one node, and the load sharing number is used to indicate the number of equivalent routes in the network slice under the load sharing mode; the processing unit 802 is used to determine an equivalent route based on the load sharing number of the at least one node; wherein the equivalent route is used to forward messages in the network slice.

[0212] When the communication device 800 is used to implement the functions of the foregoing second node, the communication device includes a transceiver unit 801 and a processing unit 802; the processing unit 802 is used to determine the load sharing quantity of the second node, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing mode in the network slice; wherein, the load sharing quantity of the second node is used to determine the equivalent route, and the equivalent route is used to forward packets in the network slice; the transceiver unit 801 is used to send the load sharing quantity of the second node.

[0213] When the communication device 800 is used to implement the functions of the foregoing third node, the communication device includes a transceiver unit 801 and a processing unit 802; the transceiver unit 801 is used to obtain configuration information, and the configuration information is used to configure the load sharing quantity, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing mode in the network slice; the network slice is a network slice sliced based on flex - algorithm; the processing unit 802 is further used to determine the equivalent route based on the load sharing quantity, and the equivalent route is used to forward packets in the network slice.

[0214] It should be noted that for the information execution process and other contents of each unit of the foregoing communication device 800, specifically, reference can be made to the description in the method embodiments shown in the foregoing of this application, which will not be elaborated here.

[0215] Please refer to Figure 9 , an embodiment of the present application provides a communication device. The communication device 900 can implement the functions of the communication device (i.e., the first node, the second node, or the third node, etc.) in the foregoing method embodiment, and thus can also achieve the beneficial effects possessed by the foregoing method embodiment.

[0216] Appendix Figure 9 The shown communication device 900 includes a memory 902 and at least one processor 901.

[0217] Optionally, the processor 901 implements the method in the foregoing embodiment by reading the instructions stored in the memory 902, or the processor 901 can also implement the method in the foregoing embodiment by the instructions stored internally. In the case where the processor 901 implements the method in the foregoing embodiment by reading the instructions stored in the memory 902, the memory 902 stores the instructions for implementing the method provided in the foregoing embodiment of the present application.

[0218] Optionally, at least one processor 901 is one or more CPUs, or a single - core CPU, or can also be a multi - core CPU.

[0219] Further optionally, at least one processor 901 may also be used to execute the implementation process corresponding to the processing unit 602 in the foregoing embodiment shown in FIG. 6, and achieve the corresponding beneficial effects, which will not be elaborated herein.

[0220] The memory 902 includes but is not limited to RAM, ROM, EPROM, flash memory, or optical memory, etc. Instructions of the operating system are stored in the memory 902.

[0221] After the program instructions stored in the memory 902 are read by the at least one processor 901, the communication device performs the corresponding operations in the foregoing embodiments.

[0222] Optionally, Figure 9 The communication device shown further includes a network interface 903. The network interface 903 may be a wired interface, such as an FDDI or GE interface; the network interface 903 may also be a wireless interface. The network interface 903 is used to perform data reception and transmission in FIG. 3 and related embodiments.

[0223] Further optionally, the network interface 903 may also be used to execute the implementation process corresponding to the transceiver unit 601 in the foregoing embodiment shown in FIG. 6, and achieve the corresponding beneficial effects, which will not be elaborated herein.

[0224] It should be understood that the network interface 903 has the functions of receiving data and sending data. The functions of "receiving data" and "sending data" may be implemented in the same transceiver interface, or the functions of "receiving data" and "sending data" may be implemented in different interfaces respectively, which is not limited herein. In other words, the network interface 903 may include one or more interfaces for implementing the functions of "receiving data" and "sending data".

[0225] For other functions that the communication device 900 can perform after the processor 901 reads the program instructions in the memory 902, please refer to the descriptions in the foregoing method embodiments.

[0226] Optionally, the communication device 900 further includes a bus 904. The foregoing processor 901 and memory 902 are generally connected to each other through the bus 904, and may also be connected to each other in other ways.

[0227] Optionally, the communication device 900 further includes an input / output interface 905. The input / output interface 905 is used to connect to an input device to receive relevant configuration information input by a user or other devices that can be linked with the communication device 900 through the input device. The input device includes but is not limited to a keyboard, a touch screen, a microphone, etc.

[0228] The communication device 900 provided by an embodiment of the present application is used to execute the methods performed by the communication devices (the first communication device or the second communication device) provided in the above respective method embodiments, and achieve corresponding beneficial effects.

[0229] As an implementation example, the communication device 900 performs the functions of the first node in the foregoing embodiments; wherein, the communication device 1000 performs the functions of other devices (such as at least one node, including the second node). The communication device 900 is used to receive the load sharing quantity from the communication device 1000, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing mode in the network slice; the communication device 900 is further used to determine the equivalent routes based on the load sharing quantity of the at least one node; wherein, the equivalent routes are used to forward packets in the network slice.

[0230] As another implementation example, the communication device 900 performs the functions of the second node in the foregoing embodiments; wherein, the communication device 1000 performs the functions of other devices (such as the first node). The communication device 900 is used to determine the load sharing quantity of the second node, and the load sharing quantity is used to indicate the number of equivalent routes in the load sharing mode in the network slice; wherein, the load sharing quantity of the second node is used to determine the equivalent routes, and the equivalent routes are used to forward packets in the network slice; the communication device 900 is further used to send the load sharing quantity of the second node to the communication device 1000.

[0231] Figure 9 For the specific implementation manners of the shown communication devices, reference can be made to the descriptions in the foregoing respective method embodiments, and details are not described herein again.

[0232] An embodiment of the present application further provides a computer-readable storage medium, which is used to store one or more computer instructions. When the computer instructions are executed by a processor, the processor executes the methods described in various implementation manners related to the communication devices (such as the first node, at least one node (including the second node), the third node, etc.) in the foregoing embodiments.

[0233] An embodiment of the present application further provides a computer program product (or computer program), which includes one or more computer instructions. When the computer instructions are executed by a processor, the processor executes the methods described in various implementation manners related to the above communication devices (such as the first node, at least one node (including the second node), the third node, etc.).

[0234] The embodiments of the present application further provide a chip system, which includes at least one processor for supporting a communication device to implement the functions involved in the above implementation manners. Optionally, the chip system further includes an interface circuit, and the interface circuit provides program instructions and / or data for the at least one processor. In a possible design, the chip system may further include a memory for storing necessary program instructions and data of the communication device. The chip system may be composed of chips or may include chips and other discrete devices. Among them, the communication device may specifically be the first node, at least one node (including the second node), the third node, etc. in the foregoing method embodiments.

[0235] The embodiments of the present application further provide a communication system, which at least includes a first communication device for executing the foregoing method embodiments, or the communication system includes a first communication device and a second communication device for executing the foregoing method embodiments.

[0236] It should be understood that in this communication system, each network device may also apply other methods involved in the foregoing embodiments and achieve corresponding technical effects, which will not be elaborated here.

[0237] In several embodiments provided in the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units is only a logical function division, and there may be other division methods in actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Another point is that the displayed or discussed couplings or direct couplings or communication connections to each other may be through some interfaces, and the indirect couplings or communication connections of devices or units may be in electrical, mechanical, or other forms.

[0238] As described above, the above embodiments are only used to illustrate the technical solutions of the present application and are not intended to limit them. Although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments or perform equivalent replacements for some of the technical features. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A communication method, characterized in that, The method is applied to a first node supporting network slicing, and the method includes: Receiving the load sharing quantity of at least one node, where the load sharing quantity is used to indicate the number of equal-cost routes in the network slice under the load sharing mode; Determining the equal-cost routes based on the load sharing quantity of the at least one node; wherein, the equal-cost routes are used to forward packets in the network slice.

2. The method according to claim 1, characterized in that, The determining the equal-cost routes based on the load sharing quantity of the at least one node includes: Determining the equal-cost routes based on the load sharing quantity of the node with the highest priority among the load sharing quantities of the at least one node.

3. The method according to claim 1, characterized in that, The determining the equal-cost routes based on the load sharing quantity of the at least one node includes: Determining the equal-cost routes based on the load sharing quantity of the at least one node and the load sharing quantity of the node with the highest priority among the load sharing quantities of the first node.

4. The method according to claim 1, wherein The determining the equal-cost routes based on the load sharing quantity of the at least one node includes: In the case where the priorities of the at least one node are all lower than the priorities of at least one other node in the network slice, determining the equal-cost routes based on the load sharing quantity of the first node.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Sending the load sharing quantity of the first node.

6. The method according to any one of claims 1 to 5, characterized in that The network slice is a network slice sliced based on a flexible algorithm (flex-algorithm), a network slice sliced based on topology, or a network slice sliced based on an instance.

7. The method according to any one of claims 1 to 6, characterized in that In the case where the network slice is a network slice sliced based on flex-algorithm, the load sharing quantities of the at least one node are respectively carried in the sub-type length values (Sub-TLVs) of at least one flexible algorithm defined type length value (FAD TLV).

8. The method according to claim 7, wherein The packet carrying the at least one FAD TLV is an Intermediate System to Intermediate System (IS-IS) packet, an Open Shortest Path First (OSPF) packet, or a Border Gateway Protocol - Shortest Path First (BGP-SPF) packet.

9. The method according to any one of claims 1 to 8, characterized in that, At least one of the load sharing quantities of the at least one node is 1.

10. The method according to claim 9, characterized in that, The network slice is a slice associated with a clock.

11. A communication method, characterized in that, The method is applied to a second node supporting network slicing, and the method includes: Determining the load sharing quantity of the second node, where the load sharing quantity is used to indicate the number of equal-cost routes in the network slice under the load sharing mode; wherein, the load sharing quantity of the second node is used to determine the equal-cost routes, and the equal-cost routes are used to forward packets in the network slice; Sending the load sharing quantity of the second node.

12. The method according to claim 11, characterized in that, The second node is the node with the highest priority among the multiple nodes corresponding to the network slice.

13. The method according to claim 11 or 12, characterized in that, The network slice is a network slice sliced based on a flexible algorithm (flex-algorithm), a network slice sliced based on topology, or a network slice sliced based on an instance.

14. The method according to any one of claims 11 to 13, characterized in that, In the case where the network sharding is the network sharding performed based on the flex-algorithm, the load sharing quantity of the second node is carried in the sub-type length value Sub-TLV of the flexible algorithm defined type length value FAD TLV.

15. The method according to claim 14, wherein The message carrying the FAD TLV is an Intermediate System to Intermediate System (IS-IS) message, an Open Shortest Path First (OSPF) message, or a Border Gateway Protocol - Shortest Path First (BGP-SPF) message.

16. The method according to any one of claims 11 to 15, characterized in that, At least one of the load sharing quantities of the at least one node is 1.

17. The method according to claim 16, wherein The network sharding is sharding associated with a clock.

18. A communication method, characterized in that, The method is applied to a third node supporting network sharding, and the method includes: Obtaining configuration information, where the configuration information is used to configure the load sharing quantity, and the load sharing quantity is used to indicate the number of equal-cost routes in the network sharding under the load sharing mode, and the network sharding is the network sharding performed based on the flexible algorithm flex-algorithm; Determining the equal-cost routes based on the load sharing quantity, where the equal-cost routes are used to forward messages in the network sharding.

19. The method according to claim 18, characterized in that, The obtaining of the configuration information includes: Receiving the configuration information from a network management device or a controller.

20. A communication system, characterized in that: The system includes a first node and a second node, the first node is configured to execute the method according to any one of claims 1 to 10, and the second node is configured to execute the method according to any one of claims 11 to 17; and / or, The system includes a third node, and the third node is configured to execute the method according to claim 18 or 19.

21. A communication device, characterized in that, Comprising at least one processor; The at least one processor is configured to execute the method according to any one of claims 1 to 10, or the method according to any one of claims 11 to 17, or the method according to any one of claims 18 to 19.

22. The communication device according to claim 21, wherein, The communication device is a chip or a chip system.

23. A computer program product, characterized in that, Comprising instructions, when the instructions run on a processor, implementing the method according to any one of claims 1 to 19.