Communication method and related node, storage medium and computer program product
Patent Information
- Application Number
- PCT/CN2026/080032
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-26
- Filing Date
- 2026-02-26
- Publication Date
- 2026-09-03
Smart Images

Figure CN2026080032_03092026_PF_FP_ABST
Abstract
Description
Communication methods and related nodes, storage media, and computer program products
[0001] Cross-references to related applications
[0002] This disclosure claims priority to Chinese Patent Application No. 202510217508.5, filed in China on February 26, 2025, the entire contents of which are incorporated herein by reference. Technical Field
[0003] This disclosure relates to the field of wireless communication technology, and in particular to a communication method and related nodes, storage media, and computer program products. Background Technology
[0004] Segment Routing IPv6 (SRv6), based on Internet Protocol Version 6 (IPv6), is a protocol designed based on the source routing concept to forward IPv6 packets over a network.
[0005] Currently, SRv6 / Generalized SRv6 (G-SRv6) policies are commonly used in wide area networks (WANs) for intelligent computing interconnection. With the development of intelligent computing services, scenarios such as storage-compute separation and real-time inference require the lossless transmission of large amounts of high-burst data. Once network congestion occurs in the interconnected WAN, data needs to be quickly transmitted to front-end network devices and edge devices to reduce the data transmission rate.
[0006] Priority-based flow control (PFC), as a fundamental flow control technology, can precisely control traffic. However, in wide area networks (WANs) for intelligent computing interconnection, which are carried out using SRv6 / G-SRv6 policies, directly using PFC after traffic is introduced into the policy may present the following problems: First, PFC is propagated via Ethernet frames in a multicast manner. WAN network topologies are complex; if multicast is used directly to send congestion control messages, accurate notification may not be possible, potentially causing incorrect traffic suppression and damaging other unrelated services. Second, WAN transmission paths are long, and network latency is high. If all congestion messages are returned to the data center or even the endpoint, the time for traffic loss will be prolonged. Third, there are many SRv6 paths at the same head node in a WAN; if all congestion messages are returned to the head node, the head node's processing may become a bottleneck. Summary of the Invention
[0007] This disclosure provides a communication method and related nodes, storage media, and computer program products. When congestion occurs in the buffer channel of an intermediate node in a wide area network SRv6 path, a message is used to notify the upstream node in the SRv6 path, and the upstream node performs congestion control. This not only ensures high accuracy and low latency in congestion notification, but also reduces the processing requirements of the head node.
[0008] The technical solution of this disclosure embodiment is implemented as follows:
[0009] This disclosure provides a communication method applied to a first node, which is an intermediate node in an Internet Protocol version 6 (IP6) segment routing path. The method includes:
[0010] In the event of congestion in the first buffer channel of the first node, a first message is sent to the second node;
[0011] Wherein, the second node is the node preceding the first node in the SRv6 path;
[0012] The first message is used to indicate that the first buffer channel is congested.
[0013] In the above method, the first message carries one or more of the following information:
[0014] The source address of the SRv6 path;
[0015] The segment routing header (SRH) of the SRv6 path; wherein, the SRH includes a list of segment identifiers (SIDs) of the SRv6 path, and a field pointing to the SID of the first node;
[0016] The identification information of the first buffer channel;
[0017] The size and / or utilization of the first buffer channel;
[0018] Action information for congestion control actions.
[0019] In the above method, the SRH also includes the path segment identifier PSID of the SRv6 path.
[0020] In the above method, the action information includes action type and action data;
[0021] The action type is to pause traffic transmission, and the action data includes the duration of the paused traffic transmission;
[0022] Alternatively, the action type is to reduce the traffic transmission rate, and the action data includes: the duration of the reduced traffic transmission rate, and / or data indicating the reduced traffic transmission rate.
[0023] In the above method, the first message is an Internet Control Message Protocol version 6 (ICMPv6) message or a User Datagram Protocol (UDP) message.
[0024] This disclosure provides a communication method applied to a second node, wherein the second node is the preceding node of a first node in an SRv6 segment routing path based on Internet Protocol version 6 (IP6), and the first node is an intermediate node in the SRv6 path. The method includes:
[0025] Receive a first message sent by the first node; wherein the first message is used to indicate that the first buffer channel of the first node is congested;
[0026] Based on the first message, congestion control of the first buffer channel is performed.
[0027] In the above method, the first message carries one or more of the following information:
[0028] The source address of the SRv6 path;
[0029] The segment routing header (SRH) of the SRv6 path; wherein, the SRH includes a list of segment identifiers (SIDs) of the SRv6 path, and a field pointing to the SID of the first node;
[0030] The identification information of the first buffer channel;
[0031] The size and / or utilization of the first buffer channel;
[0032] Action information for congestion control actions.
[0033] In the above method, the SRH also includes the path segment identifier PSID of the SRv6 path.
[0034] In the above method, the action information includes action type and action data;
[0035] The action type is to pause traffic transmission, and the action data includes the duration of the paused traffic transmission;
[0036] Alternatively, the action type is to reduce the traffic transmission rate, and the action data includes: the duration of the reduced traffic transmission rate, and / or data indicating the reduced traffic transmission rate.
[0037] In the above method, the step of performing congestion control on the first buffer channel based on the first message includes:
[0038] Based on the first message, locate the second buffer channel of the second node, and if the buffering capacity of the second buffer channel meets the requirements, adjust the second buffer channel to achieve congestion control of the first buffer channel;
[0039] The second buffer channel corresponds to the first buffer channel, and the traffic of the first buffer channel comes from the second buffer channel.
[0040] In the above method, adjusting the second buffer channel to achieve congestion control of the first buffer channel includes:
[0041] Suspend traffic transmission in the second buffer channel, or reduce the traffic transmission rate of the second buffer channel.
[0042] The above method also includes:
[0043] If the buffering capacity of the second buffer channel is insufficient, the first message continues to be sent to the previous node in the SRv6 path, and the node that supports the execution of congestion control of the first buffer channel is searched level by level until the first message is sent to the head node in the SRv6 path.
[0044] The above method also includes:
[0045] Before sending the first message to the previous node, update the action information of the congestion control action carried in the first message.
[0046] In the above method, the first message is an Internet Control Message Protocol version 6 (ICMPv6) message or a User Datagram Protocol (UDP) message.
[0047] This disclosure provides a first node, which is an intermediate node in a segment routing SRv6 path of Internet Protocol version 6, and includes: a first processor, a first memory, and a first communication bus;
[0048] The first communication bus is used to establish a communication connection between the first processor and the first memory;
[0049] The first processor is configured to execute one or more computer programs stored in the first memory to implement a communication method applied to the first node.
[0050] This disclosure provides a second node, which is the preceding node of a first node in a segment routing SRv6 path based on Internet Protocol version 6 (IP6), and the first node is an intermediate node in the SRv6 path, including: a second processor, a second memory, and a second communication bus.
[0051] The second communication bus is used to establish a communication connection between the second processor and the second memory;
[0052] The second processor is configured to execute one or more computer programs stored in the second memory to implement a communication method applied to the second node.
[0053] This disclosure provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements steps in a communication method applied to a first node, or steps in a communication method applied to a second node.
[0054] This disclosure provides a computer program product, including a computer program that, when executed by a processor, implements steps in a communication method applied to a first node, or steps in a communication method applied to a second node.
[0055] This disclosure provides a communication method and related nodes, storage media, and computer program products. The communication method applied to a first node includes: sending a first message to a second node when the first node's first buffer channel is congested; wherein the second node is the node preceding the first node in the SRv6 path; the first message is used to indicate congestion in the first buffer channel. The technical solution provided by this disclosure, when congestion occurs in the buffer channel of an intermediate node in a wide area network SRv6 path, uses a message to notify the upstream node in the SRv6 path, allowing the upstream node to perform congestion control. This not only ensures high accuracy and low latency in congestion notification but also reduces the processing requirements of the head node. Attached Figure Description
[0056] Figure 1 is a schematic diagram of the SRH format in related technologies;
[0057] Figure 2 is a schematic diagram of the SRv6 TE Policy model in related technologies;
[0058] Figure 3 is a schematic flowchart of a communication method provided in an embodiment of this disclosure;
[0059] Figure 4 is a schematic diagram of an exemplary communication scenario provided by an embodiment of this disclosure;
[0060] Figure 5 is a schematic diagram of an exemplary ICMPv6 message format provided in an embodiment of this disclosure;
[0061] Figure 6 is a schematic diagram of the format of an exemplary message SRH provided in an embodiment of this disclosure;
[0062] Figure 7 is a schematic diagram of the format of an exemplary message in an embodiment of this disclosure;
[0063] Figure 8 is a schematic diagram of an exemplary UDP packet format provided in an embodiment of this disclosure;
[0064] Figure 9 is a schematic flowchart of a communication method provided in an embodiment of this disclosure;
[0065] Figure 10 is a schematic diagram of an exemplary communication scenario provided by an embodiment of this disclosure;
[0066] Figure 11 is a schematic diagram of the structure of a first node provided in an embodiment of this disclosure;
[0067] Figure 12 is a schematic diagram of the structure of a first node provided in an embodiment of this disclosure;
[0068] Figure 13 is a schematic diagram of the structure of a second node provided in an embodiment of this disclosure;
[0069] Figure 14 is a schematic diagram of the structure of a second node provided in an embodiment of this disclosure. Detailed Implementation
[0070] To make the objectives, technical solutions, and advantages of this disclosure clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this disclosure.
[0071] The technical solutions of this disclosure and how they solve the aforementioned technical problems will be described in detail below through embodiments and in conjunction with the accompanying drawings. The embodiments below can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.
[0072] Furthermore, the technical solutions described in the embodiments of this disclosure can be combined arbitrarily without conflict.
[0073] The communication method provided in this disclosure is applicable to wide area network SRv6 path forwarding scenarios.
[0074] SRv6 is designed based on the source routing concept. SRv6, based on the IPv6 forwarding plane, inserts a Segment Routing Header (SRH) into IPv6 packets. The SRH format, as shown in Figure 1, includes the Next Header, Extension Length (Hdr Ext Len), Routing Type, Segments Left, Last Entry, Flags, Tags, Segment List, and variable optional Type-Length-Value (TLV) objects or variables. The Segment List can be a 128-bit IPv6 address. An explicit IPv6 address stack is pushed onto the SRH, and hop-by-hop forwarding is achieved by intermediate nodes continuously updating the destination address and offset address stack.
[0075] SRv6 operates in two modes: Best Effort (BE) and Traffic Engineering Policy (TE Policy). SRv6 BE calculates the optimal SRv6 path based on the Interior Gateway Protocol (IGP) shortest path algorithm, using only a single Segment Identifier (SID) to guide packet forwarding along the link; it is a best-effort mode. SRv6 TE Policy utilizes source routing, encapsulating an ordered list of instructions (path information) at the header node to guide packets across the network. SRv6 TE Policy is used to implement traffic engineering, improve network quality, and meet end-to-end service requirements.
[0076] Referring to the SRv6 TE Policy model shown in Figure 2, an SRv6 TE Policy can contain multiple candidate paths (CPs), each carrying a priority attribute. The highest-priority valid candidate path serves as the primary path of the SRv6 TE Policy. A candidate path can contain multiple segment lists (SLs), each carrying a weight attribute; these segment lists are also called fragment lists. Each SL is an explicit SID stack, instructing network devices to forward packets. Load balancing can be achieved among multiple SLs. An SRv6 Policy may have multiple candidate paths. A candidate path can be represented as a single SL or a group of SLs, and traffic routing and weighted equal-cost multi-path routing (W-ECMP) are performed based on the relative weight of each valid SL.
[0077] The communication method provided in this disclosure notifies upstream nodes in the SRv6 path when the buffer channel of an intermediate node in the SRv6 path is congested, and optimizes the congestion traffic handling capacity, with the upstream node performing congestion control. The buffer channel can also be described as a slice queue, buffer area, etc.
[0078] Based on the above, the communication method provided in the embodiments of this disclosure is described in detail below.
[0079] In the embodiments of this disclosure, the first node is an intermediate node in the SRv6 path. Figure 3 is a schematic flowchart of a communication method provided in an embodiment of this disclosure. As shown in Figure 3, in the embodiments of this disclosure, the communication method applied to the first node mainly includes the following steps:
[0080] S101. In the event of congestion in the first buffer channel of the first node, a first message is sent to the second node; wherein the second node is the node preceding the first node in the SRv6 path; the first message is used to indicate that the first buffer channel is congested.
[0081] In an embodiment of this disclosure, the first node is configured with a first buffer channel. When the first buffer channel is congested, the first node sends a first message to the second node, indicating that the first buffer channel is congested.
[0082] It should be noted that, in the embodiments of this disclosure, the first buffer channel may also be described as a first slice, a first queue, a first buffer area, etc., and the embodiments of this disclosure do not limit it.
[0083] It should be noted that, in the embodiments disclosed herein, when the first node is congested in the first buffer channel, it sends a first message to its predecessor node, namely the second node, to notify that the first buffer channel is congested.
[0084] For example, in an embodiment of this disclosure, referring to Figure 4, if intelligent computing centers A and B forward traffic via the SRv6 path R1->R2->R3->R4->R5, R1, R2, R3, R4, and R5 are all nodes in the SRv6 path, and R2, R3, and R4 are each an intermediate node. The head node R1 encapsulates a list of SIDs, meaning the SRv6 path includes R2->R3->R4->R5, and optionally carries the path segment identifier (PSID) of the SRv6 path segment, thus initiating traffic forwarding. The source address is R1, and the destination address is the SID of R2, where the source address may optionally carry a slice ID. Intermediate nodes R2, R3, and R4 look up their local SID tables based on the SIDs of each node in the SID list for forwarding, where the SID information corresponds to a local forwarding queue or slice, or corresponds to a local slice based on the slice ID carried in the source address. In the SRv6 path forwarding process, if the forwarding exit of R4 (the first node) experiences queue congestion (first buffer channel), R4 will send a congestion notice to R3 (the second node), that is, send the first message indicating that the first buffer channel is congested.
[0085] In embodiments of this disclosure, the first message is used to indicate congestion in the first buffer channel, and the first message may carry one or more of the following information:
[0086] The source address of the SRv6 path;
[0087] The SRH of the SRv6 path; where the SRH includes a list of SIDs of the SRv6 path, and a field pointing to the SID of the first node (Segments Left);
[0088] Identification information for the first buffer channel;
[0089] Size and / or utilization of the first buffer channel;
[0090] Action information for congestion control actions.
[0091] It should be noted that, in the embodiments of this disclosure, the first buffer channel can be described as a first slice, a first queue, a first buffer area, etc., and correspondingly, the identification information, size, usage rate, etc. of the first buffer channel can be described as the identification information, size, usage rate, etc. of the first slice, the first queue, the first buffer area, etc.
[0092] It should be noted that, in the embodiments disclosed herein, the SRH includes at least a list of SIDs for the SRv6 path and a Segments Left field, and optionally, it may also include the PSIDs for the SRv6 path.
[0093] It should be noted that, in the embodiments of this disclosure, the congestion control action is an action used to alleviate or resolve congestion in the first buffer channel, and can be used as a reference when executing congestion control for the first buffer channel. The congestion control action can be determined by the first node based on relevant information such as the buffer status of the first buffer channel, and the specific congestion control action is not limited in the embodiments of this disclosure.
[0094] It should be noted that, in the embodiments of this disclosure, the action information of the congestion control action is used to describe the specific behavior of the congestion control action, including the action type and action data. Specifically, the action type is to pause the flow transmission volume, and the action data includes the duration of the paused flow transmission; or, the action type is to reduce the flow transmission rate, and the action data includes: the duration of the reduced flow transmission rate, and / or data indicating the reduced flow transmission rate. The data indicating the reduced flow transmission rate can be the absolute value of the reduced flow transmission rate, or it can be a reduction ratio relative to the current flow transmission rate, etc., and this disclosure does not limit this.
[0095] It should be noted that, in the embodiments of this disclosure, the first message may carry one or more of the above-mentioned information. Of course, it may also carry other information items related to the congestion of the first buffer channel, which is not limited in the embodiments of this disclosure.
[0096] In embodiments of this disclosure, the first message may be an Internet Control Message Protocol version 6 (ICMPv6) message or a User Datagram Protocol (UDP) message.
[0097] In the embodiments of this disclosure, the first message can be an ICMPv6 message. For example, taking a queue sliced from the first congested buffer channel as an example, the message format is shown in Figure 5, and the relevant explanations are as follows:
[0098] Type: 1 byte, message type. The new Type value identifies the message for congestion announcement;
[0099] Code: 1 byte, dependent on the Type field, identifies a more detailed message type, in this disclosure it identifies the message of congestion announcement in the SRv6 path;
[0100] Checksum: 2 bytes, checksum;
[0101] Flags: 1 byte, special flag bit. This disclosure only uses the S bit. If set, it indicates that the slice identifier (Slice ID) is carried.
[0102] SRv6 Source Address: 128 bits, the source address of the SRv6 path;
[0103] Segment Routing Header: Variable length, the original SRH header of the SRv6 path, see Figure 6 for details. The Segments Left field points to the current node where congestion occurred, which is the SID of the first node. If it carries PSID, see Figure 7 for the specific format.
[0104] Slice ID: 4 bytes, slice identifier;
[0105] Flow Queue Size: 4 bytes, indicating the size of the queue space where traffic congestion occurs;
[0106] Flow Utilized Ratio: 4 bytes, indicating the size or ratio of space occupied when traffic congestion occurs (utilization rate);
[0107] Behavior TLVs: Variable length, used to define the action type and action data of congestion control actions, such as reducing the traffic transmission rate or pausing traffic transmission, the reduced traffic transmission rate, and the duration for which traffic transmission is continuously reduced or stopped.
[0108] In embodiments of this disclosure, the first message can be a UDP message. For example, taking a queue sliced from the first congested buffer channel as an example, the message format is shown in Figure 8, and the relevant explanations are as follows:
[0109] UDP destination port: 4 bytes, a newly added port number to identify congestion announcement messages;
[0110] Flags: Special flags. This disclosure uses only the S bit. If set, it indicates that the Slice ID is carried.
[0111] SRv6 Source Address: 128 bits, the source address of the SRv6 path;
[0112] Segment Routing Header: Variable length, the original SRH header of the SRv6 path, see existing protocols for details. The Segments Left field points to the current node where congestion occurred, i.e., the SID of the first node. If it carries a PSID, see existing protocols for the specific format.
[0113] Slice ID: 4 bytes, slice identifier;
[0114] Flow Queue Size: 4 bytes, indicating the size of the queue space where traffic congestion occurs;
[0115] Flow Utilized Ratio: 4 bytes, indicating the size or ratio of space occupied when traffic congestion occurs (utilization rate);
[0116] Behavior TLVs: Variable length, used to define the action type and action data of congestion control actions, such as reducing the traffic transmission rate or pausing traffic transmission, the reduced traffic transmission rate, and the duration for which traffic transmission is continuously reduced or stopped.
[0117] It should be noted that, in the embodiments of this disclosure, the first message can be not only the two types of messages mentioned above, but other messages can also be selected as the first message according to actual needs and application scenarios. This disclosure does not impose any limitations. Regardless of the encapsulation method used, the source address is the address of the first node where congestion occurred, and the destination address is the address of the previous node in the SRv6 path.
[0118] In the embodiments of this disclosure, the second node is the node preceding the first node in the SRv6 path. Figure 9 is a schematic flowchart of a communication method provided in an embodiment of this disclosure. As shown in Figure 9, in the embodiments of this disclosure, the communication method applied to the second node mainly includes the following steps:
[0119] S201, Receive the first message sent by the first node; wherein the first message is used to indicate that the first buffer channel of the first node is congested.
[0120] In the embodiments of this disclosure, corresponding to the method on the first node side described above, the second node can receive the first message sent by the first node.
[0121] In embodiments of this disclosure, the first message carries one or more of the following information:
[0122] The source address of the SRv6 path;
[0123] The SRH of the SRv6 path; where the SRH includes a list of SIDs of the SRv6 path and a field pointing to the SID of the first node;
[0124] Identification information for the first buffer channel;
[0125] Size and / or utilization of the first buffer channel;
[0126] Action information for congestion control actions.
[0127] In embodiments of this disclosure, the SRH may optionally include the PSID of the SRv6 path.
[0128] In embodiments of this disclosure, the action information for the congestion control action includes the action type and action data; the action type is to pause traffic transmission, and the action data includes the duration of the paused traffic transmission; or, the action type is to reduce the traffic transmission rate, and the action data includes the duration of the reduced traffic transmission rate, and / or data indicating the reduced traffic transmission rate.
[0129] In the embodiments of this disclosure, the first message is an ICMPv6 message or a UDP message, and may also be other messages; this disclosure does not limit the scope of the embodiments.
[0130] It should be noted that, in the embodiments disclosed herein, the explanation of the first message and the various information it carries can be found in the relevant content on the first node side above, and will not be repeated here.
[0131] S202. Based on the first message, perform congestion control on the first buffer channel.
[0132] In the embodiments of this disclosure, after the second node receives the first message, it can perform congestion control of the first buffer channel based on the first message.
[0133] In the embodiments of this disclosure, the second node performs congestion control of the first buffer channel based on the first message, including: finding the second buffer channel of the second node based on the first message, and adjusting the second buffer channel to achieve congestion control of the first buffer channel when the buffering capacity of the second buffer channel meets the requirements; wherein, the second buffer channel corresponds to the first buffer channel, and the traffic of the first buffer channel comes from the second buffer channel.
[0134] It should be noted that, in the embodiments of this disclosure, as described above, the first message may carry the source address of the SRv6 path, the SRH of the SRv6 path, the identification information of the first buffer channel, etc. Based on this information, the second node may look up the buffer channel forwarding queue or slice (buffer channel) corresponding to the local SID in the path, or the forwarding queue or slice (buffer channel) corresponding to the PSID, or the slice (buffer channel) carried by the SRv6 source address, and determine the second buffer channel corresponding to the first buffer channel.
[0135] It is understood that in the embodiments of this disclosure, the traffic of the first buffer channel originates from the second buffer channel. Based on this, the second node can influence the first buffer channel by adjusting the second buffer channel, thereby achieving congestion control of the first buffer channel. Of course, before adjusting the second buffer channel, the second node must first consider its buffering capacity to determine if it meets the requirements and assess whether congestion can be resolved. If the buffering capacity meets the requirements, for example, if the remaining buffer space of the second buffer channel is below a threshold, then there is greater leeway in adjusting the second buffer channel, and therefore adjustment can be made; otherwise, adjustment cannot be made. Specific requirements can be set according to actual needs and application scenarios, and are not limited in the embodiments of this disclosure.
[0136] In embodiments of this disclosure, the second node adjusts the second buffer channel to achieve congestion control of the first buffer channel, including: suspending traffic transmission of the second buffer channel, or reducing the traffic transmission rate of the second buffer channel.
[0137] It is understood that in the embodiments of this disclosure, the traffic of the first buffer channel comes from the second buffer channel. Pausing the traffic transmission of the second buffer channel or reducing the traffic transmission rate of the second buffer channel can reduce the traffic reaching the first buffer channel, while the first buffer channel can transmit traffic normally at the same time. In this way, the traffic backlog in the first buffer channel can be reduced, and congestion control of the first buffer channel can be achieved.
[0138] It should be noted that, in the embodiments of this disclosure, as described above, the first message may carry the size and / or utilization rate of the first buffer channel, congestion control action information, etc. Based on the first message, if the second node finds and determines that the buffering capacity of the second buffer channel meets the requirements, it may refer to the size and / or utilization rate of the first buffer channel, the congestion control action information, etc. carried in the first message, and combine the buffering status of the second buffer channel, etc., to suspend traffic transmission of the second buffer channel, or reduce the traffic transmission rate of the second buffer channel. For example, the first message carries congestion control action information, the action type is suspend traffic transmission, and the action data includes the duration T1 of suspending traffic transmission. The second node, combined with the buffering status of the second buffer channel, decides to suspend traffic transmission of the second buffer channel for a duration T2, wherein T2 is less than T1.
[0139] It should be noted that, in the embodiments of this disclosure, the first message may carry the size and / or utilization rate of the first buffer channel, but not the action information of congestion control actions. In this case, the second node may, based on the size and / or utilization rate of the first buffer channel and in combination with the buffer status of the second buffer channel, decide to execute traffic transmission of the second buffer channel, or reduce the traffic transmission rate of the second buffer channel, as well as action data such as the specific duration. Of course, the second node may also execute traffic transmission of the second buffer channel or reduce the traffic transmission rate of the second buffer channel based on predetermined data or rules. This disclosure does not limit this.
[0140] In the embodiments of this disclosure, as described above, the second node adjusts the second buffer channel to implement congestion control of the first buffer channel when the buffering capacity of the second buffer channel meets the requirements. Of course, the buffering capacity of the second buffer channel may not meet the requirements. In this case, the second node can continue to send the first message to the previous node in the SRv6 path, and search for nodes that support the execution of congestion control of the first buffer channel step by step until the first message is sent to the head node in the SRv6 path.
[0141] It should be noted that, in the embodiments disclosed herein, if the second node is unable to perform congestion control on the first buffer channel, it needs to continue sending the first message to the preceding node according to the SID list until a node capable of handling congestion on this SRv6 path is found, and then the aforementioned congestion control process is executed. For example, as shown in Figure 4, after R4 (the first node) becomes congested, it notifies R3 (the second node) via a message. If R3 is unable to perform congestion control, it continues to send a congestion notification to R2, i.e., sends the first message, and searches upwards level by level for a node capable of congestion control.
[0142] It should be noted that, in the embodiments of this disclosure, as described above, the first message may carry action information of congestion control actions. Based on this, the second node may also update the action information of congestion control actions carried in the first message before sending the first message to the preceding node. Specifically, the second node may appropriately update the action information of congestion control actions carried in the first message based on latency and data traffic. Of course, it may also be updated based on other information, which is not limited in the embodiments of this disclosure.
[0143] It should be noted that if congestion cannot be resolved after reaching the head node, the weights can be reset to distribute the load if there are multiple segment lists, or if there are alternative candidate paths, the candidate paths can be re-selected and switched, or the controller can be directly reported to readjust the SRv6 path. This disclosure does not limit the implementation of the embodiments.
[0144] Based on the communication methods of the first and second nodes described above, and in conjunction with the specific scenario shown in Figure 10, the technical solution of this disclosure is explained in a illustrative and complete manner.
[0145] As shown in Figure 10, the SID configuration of each node is as follows:
[0146] The END.X SIDs of nodes R1-R5 are A::1:1, A::2:1, A::3:1, A::4:1, and A::5:1, respectively. Each SID corresponds to a slice ID of 1.
[0147] The VPN SID for node R5 is A::5:F;
[0148] The operation process of each node is as follows:
[0149] The data packets sent by R1 are encapsulated with SRv6 Policy, with the SID list being {A::2:1, A::3:1, A::4:1, A::5:F}, the source address being A::1::, and the destination address being A::2:1.
[0150] The message is forwarded according to the SID list of the SRv6 path. The destination address of the message forwarded at the R4 node is replaced with A::5:F. However, the queue of slice 1 of the outgoing interface of the R4 node is congested. The queue size of slice 1 is 200Mb, and it is currently occupied by 75%, which exceeds the set threshold. It is necessary to notify the previous hop of the SRv6 path of the congestion message.
[0151] R4 (the first node) encapsulates a congestion notice message (the first message) in ICMPv6 format, with a source address of A::4:1 and a destination address of A::3:1. It carries the source address of the original SRv6 message A::1:: and the entire SRH header, and encapsulates congestion information, including a slice ID of 1, a queue size of 200Mb where congestion occurred, a utilization rate of 75%, and a suggested congestion control method, such as reducing the sending rate by 30%.
[0152] When R3 (the second node) receives a congestion notice message, it checks that the destination address is local. Based on the SID list in the SRH, it searches for the forwarding queue or slice corresponding to its local SID, or the forwarding queue or slice corresponding to its PSID. In this example, since slice 1 information is already included, a further search is unnecessary. Based on the fact that the 200Mb congestion queue is 75% occupied, and considering the local queue buffer capacity, it reduces its local transmission rate. The congestion control action carried in the message, such as reducing the transmission rate by 30% in this example, is used as a reference.
[0153] If R3 receives and parses a congestion notification message but is unable to perform congestion control (e.g., due to insufficient local queue buffer capacity), it needs to continue sending congestion notification messages to the previous hop on the SRv6 path, encapsulated in ICMPv6 format. The source address remains unchanged at R4's A::4:1, but the destination address changes to A::2:1. Other information carried in the message remains the same, but the congestion control action can be adjusted. Since the congestion notification path is longer, the congestion situation may worsen; for example, it could recommend reducing the sending rate by at least 50%.
[0154] Based on the above explanation of the communication method provided in the embodiments of this disclosure and related examples, it can be seen that the technical solution provided in the embodiments of this disclosure mainly has the following advantages: For wide area networks with complex network topologies, the upstream nodes of the SRv6 path are accurately notified using messages indicating traffic congestion, without affecting other unrelated nodes in the wide area network. Furthermore, the notification is performed level by level starting from the nearest preceding node, and congestion control is carried out at intermediate nodes of the path to minimize the notification delay and reduce the processing overhead of the head node.
[0155] This disclosure provides a first node, which is an intermediate node in an SRv6 path. Figure 11 is a schematic diagram of the structure of a first node provided in this disclosure. As shown in Figure 11, in this embodiment, the first node 1 includes:
[0156] The first communication module 11 is used to send a first message to the second node when the first buffer channel of the first node is congested.
[0157] Wherein, the second node is the node preceding the first node in the SRv6 path;
[0158] The first message is used to indicate that the first buffer channel is congested.
[0159] In one embodiment of this disclosure, the first message carries one or more of the following information:
[0160] The source address of the SRv6 path;
[0161] The SRH of the SRv6 path; wherein the SRH includes a list of SIDs of the SRv6 path, and a field pointing to the SID of the first node;
[0162] The identification information of the first buffer channel;
[0163] The size and / or utilization of the first buffer channel;
[0164] Action information for congestion control actions.
[0165] In one embodiment of this disclosure, the SRH further includes the PSID of the SRv6 path.
[0166] In one embodiment of this disclosure, the action information includes action type and action data;
[0167] The action type is to pause traffic transmission, and the action data includes the duration of the paused traffic transmission;
[0168] Alternatively, the action type is to reduce the traffic transmission rate, and the action data includes: the duration of the reduced traffic transmission rate, and / or data indicating the reduced traffic transmission rate.
[0169] In one embodiment of this disclosure, the first message is an ICMPv6 message or a UDP message.
[0170] Based on the same inventive concept, Figure 12 is a second structural schematic diagram of a first node provided in an embodiment of this disclosure. As shown in Figure 12, in the embodiment of this disclosure, the first node 1 includes: a first processor 12, a first memory 13, and a first communication bus 14;
[0171] The first communication bus 14 is used to realize the communication connection between the first processor 12 and the first memory 13;
[0172] The first processor 12 is used to execute one or more computer programs stored in the first memory 13 to implement a communication method applied to the first node 1.
[0173] This disclosure provides a second node, which is the node preceding the first node in the SRv6 path, and the first node is an intermediate node in the SRv6 path. Figure 13 is a schematic diagram of the structure of a second node provided in this disclosure. As shown in Figure 13, in this embodiment, the second node 2 includes:
[0174] The second communication module 21 is used to receive a first message sent by the first node; wherein the first message is used to indicate that the first buffer channel of the first node is congested;
[0175] The message processing module 22 is used to perform congestion control of the first buffer channel based on the first message.
[0176] In one embodiment of this disclosure, the first message carries one or more of the following information:
[0177] The source address of the SRv6 path;
[0178] The SRH of the SRv6 path; wherein the SRH includes a list of SIDs of the SRv6 path, and a field pointing to the SID of the first node;
[0179] The identification information of the first buffer channel;
[0180] The size and / or utilization of the first buffer channel;
[0181] Action information for congestion control actions.
[0182] In one embodiment of this disclosure, the SRH further includes the PSID of the SRv6 path.
[0183] In one embodiment of this disclosure, the action information includes action type and action data;
[0184] The action type is to pause traffic transmission, and the action data includes the duration of the paused traffic transmission;
[0185] Alternatively, the action type is to reduce the traffic transmission rate, and the action data includes: the duration of the reduced traffic transmission rate, and / or data indicating the reduced traffic transmission rate.
[0186] In one embodiment of this disclosure, the message processing module 22 is used to locate the second buffer channel of the second node based on the first message, and adjust the second buffer channel to achieve congestion control of the first buffer channel when the buffering capacity of the second buffer channel meets the requirements.
[0187] The second buffer channel corresponds to the first buffer channel, and the traffic of the first buffer channel comes from the second buffer channel.
[0188] In one embodiment of this disclosure, the message processing module 22 is used to pause the traffic transmission of the second buffer channel, or to reduce the traffic transmission rate of the second buffer channel.
[0189] In one embodiment of this disclosure, the second communication module 21 is used to continue sending the first message to the previous node in the SRv6 path when the buffering capacity of the second buffer channel does not meet the requirements, and to search for nodes that support the execution of congestion control of the first buffer channel step by step until the first message is sent to the head node in the SRv6 path.
[0190] In one embodiment of this disclosure, the message processing module 22 is used to update the action information of the congestion control action carried in the first message before the second communication module 21 sends the first message to the previous node.
[0191] In one embodiment of this disclosure, the first message is an ICMPv6 message or a UDP message.
[0192] Based on the same inventive concept, Figure 14 is a schematic diagram of the structure of a second node provided in an embodiment of this disclosure. As shown in Figure 14, in the embodiment of this disclosure, the second node 2 includes: a second processor 23, a second memory 24, and a second communication bus 25;
[0193] The second communication bus 25 is used to realize the communication connection between the second processor 23 and the second memory 24;
[0194] The second processor 23 is used to execute one or more computer programs stored in the second memory 24 to implement a communication method applied to the second node 2.
[0195] This disclosure provides a computer program product, including a computer program that, when executed by a processor, implements steps in a communication method applied to a first node, or steps in a communication method applied to a second node.
[0196] This disclosure provides a computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program implements steps in a communication method applied to a first node, or steps in a communication method applied to a second node. The computer-readable storage medium may be volatile memory, such as random-access memory (RAM); or non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state drive (SSD); or it may be a device including one or any combination of the above-mentioned memories, such as a mobile phone, computer, tablet device, personal digital assistant, etc.
[0197] Those skilled in the art will understand that embodiments of this disclosure can be provided as methods, systems, or computer program products. Therefore, this disclosure can take the form of hardware embodiments, software embodiments, or embodiments combining software and hardware aspects. Furthermore, this disclosure can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0198] This disclosure is described with reference to schematic and / or block diagrams of implementations of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block of the schematic and / or block diagrams, and combinations thereof, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in one or more blocks of the schematic and / or block diagrams.
[0199] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means that implement the functions specified in one or more flowcharts and / or one or more block diagrams.
[0200] These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide steps for implementing the functions specified in one or more flowcharts and / or one or more blocks in a block diagram.
[0201] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this utility application should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.
Claims
1. A communication method applied to a first node, the first node being an intermediate node in an Internet Protocol version 6 (IP6) segment routing SRv6 path, the method comprising: In the event of congestion in the first buffer channel of the first node, a first message is sent to the second node; Wherein, the second node is the node preceding the first node in the SRv6 path; The first message is used to indicate that the first buffer channel is congested.
2. The method according to claim 1, wherein, The first message carries one or more of the following information: The source address of the SRv6 path; The segment routing header (SRH) of the SRv6 path; wherein, the SRH includes a list of segment identifiers (SIDs) of the SRv6 path, and a field pointing to the SID of the first node; The identification information of the first buffer channel; The size and / or utilization of the first buffer channel; Action information for congestion control actions.
3. The method according to claim 2, wherein, The SRH also includes the path segment identifier PSID of the SRv6 path.
4. The method according to claim 2, wherein, The action information includes action type and action data; The action type is to pause traffic transmission, and the action data includes the duration of the paused traffic transmission; Alternatively, the action type is to reduce the traffic transmission rate, and the action data includes: the duration of the reduced traffic transmission rate, and / or data indicating the reduced traffic transmission rate.
5. The method according to claim 1, wherein, The first message is an Internet Control Message Protocol version 6 (ICMPv6) message or a User Datagram Protocol (UDP) message.
6. A communication method applied to a second node, the second node being the preceding node of a first node in a segment routing SRv6 path based on Internet Protocol version 6 (IP6), the first node being an intermediate node in the SRv6 path, the method comprising: Receive a first message sent by the first node; wherein the first message is used to indicate that the first buffer channel of the first node is congested; Based on the first message, congestion control of the first buffer channel is performed.
7. The method according to claim 6, wherein, The first message carries one or more of the following information: The source address of the SRv6 path; The segment routing header (SRH) of the SRv6 path; wherein, the SRH includes a list of segment identifiers (SIDs) of the SRv6 path, and a field pointing to the SID of the first node; The identification information of the first buffer channel; The size and / or utilization of the first buffer channel; Action information for congestion control actions.
8. The method according to claim 7, wherein, The SRH also includes the path segment identifier PSID of the SRv6 path.
9. The method according to claim 7, wherein, The action information includes action type and action data; The action type is to pause traffic transmission, and the action data includes the duration of the paused traffic transmission; Alternatively, the action type is to reduce the traffic transmission rate, and the action data includes: the duration of the reduced traffic transmission rate, and / or data indicating the reduced traffic transmission rate.
10. The method according to claim 6, wherein, The congestion control of the first buffer channel based on the first message includes: Based on the first message, locate the second buffer channel of the second node, and if the buffering capacity of the second buffer channel meets the requirements, adjust the second buffer channel to achieve congestion control of the first buffer channel; The second buffer channel corresponds to the first buffer channel, and the traffic of the first buffer channel comes from the second buffer channel.
11. The method according to claim 10, wherein, The adjustment of the second buffer channel to achieve congestion control of the first buffer channel includes: Suspend traffic transmission in the second buffer channel, or reduce the traffic transmission rate of the second buffer channel.
12. The method according to claim 10, further comprising: If the buffering capacity of the second buffer channel is insufficient, the first message continues to be sent to the previous node in the SRv6 path, and the node that supports the execution of congestion control of the first buffer channel is searched level by level until the first message is sent to the head node in the SRv6 path.
13. The method according to claim 11, further comprising: Before sending the first message to the previous node, update the action information of the congestion control action carried in the first message.
14. The method according to claim 6, wherein, The first message is an Internet Control Message Protocol version 6 (ICMPv6) message or a User Datagram Protocol (UDP) message.
15. A first node, wherein the first node is an intermediate node in an Internet Protocol version 6 (IP6) segment routing SRv6 path, comprising: A first processor, a first memory, and a first communication bus; The first communication bus is used to establish a communication connection between the first processor and the first memory; The first processor is configured to execute one or more computer programs stored in the first memory to implement the communication method according to any one of claims 1-5.
16. A second node, wherein the second node is the preceding node of a first node in a segment routing SRv6 path based on Internet Protocol version 6 (IP6), and the first node is an intermediate node in the SRv6 path, comprising: Second processor, second memory, and second communication bus; The second communication bus is used to establish a communication connection between the second processor and the second memory; The second processor is configured to execute one or more computer programs stored in the second memory to implement the communication method according to any one of claims 6-14.
17. A computer-readable storage medium having a computer program stored thereon, wherein, When the computer program is executed by a processor, it implements the communication method as described in any one of claims 1-14.
18. A computer program product comprising a computer program, wherein, When the computer program is executed by a processor, it implements the communication method as described in any one of claims 1-14.