A message forwarding method and device, a network device and a storage medium
Patent Information
- Application Number
- CN202480000511.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-14
- Publication Date
- 2026-08-21
- Estimated Expiration
- 2044-03-14
AI Technical Summary
[0094]采用上述技术方案,第一节点获取的第一报文包括第一IPv6选项头和第二报文,第一IPv6选项头包括第一带宽,第一带宽为SRv6转发路径中节点的最小可用带宽的带宽值,SRv6转发路径中节点包括第一节点以及第一节点的全部上一跳节点。进而,第一报文被按照SRv6转发路径转发,使得尾节点能够获知SRv6转发路径中全部节点的最小可用带宽的最小值,从而能够上报该最小值。如此,使得控制器或源节点能够及时获取到SRv6转发路径中全部节点的最小可用带宽的最小值。该最小值能够反映SRv6转发路径的最小可用带宽,进而能够避免因无法感知到SRv6转发路径的最小可用带宽而导致的丢包问题。
Smart Images

Figure CN121195486B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a message forwarding method, apparatus, network device, and storage medium. Background Technology
[0002] The Internet Protocol Version 6 (IPv6) Segment Routing Traffic Engineering Policy (SRv6 TE Policy) is a new tunneling redirection technique developed based on Internet Protocol Version 6 (IPv6) Segment Routing (SRv6) technology. Using this tunneling redirection technique, service packets can be redirected to an appropriate SRv6 TE Policy, and then forwarded using the forwarding paths specified in the SRv6 TE Policy.
[0003] To enhance the reliability of forwarding paths, the controller deploys multiple candidate paths on the source node simultaneously. When all high-priority primary candidate paths become unavailable, it can switch to low-priority backup candidate paths. Summary of the Invention
[0004] In view of this, this application provides a message forwarding method, apparatus, network device, and storage medium to timely obtain the minimum available bandwidth of nodes on the forwarding path. The specific technical solution is as follows:
[0005] In a first aspect, embodiments of this application provide a message forwarding method applied to a first node, the method comprising:
[0006] Obtain a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path, the nodes in the SRv6 forwarding path including the first node and all the previous hop nodes of the first node;
[0007] The first message is sent on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
[0008] In one possible implementation, when the first node is the source node, obtaining the first message includes:
[0009] Receive the second message;
[0010] Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node;
[0011] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second packet to obtain the first packet.
[0012] In one possible implementation, when the first node is an intermediate node, obtaining the first message includes:
[0013] Receive a third message, the third message including a second IPv6 option header, the second IPv6 option header including a second bandwidth, the second bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the first node;
[0014] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained, and the first message is obtained;
[0015] If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
[0016] In one possible implementation, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and all previous-hop nodes include endpoint nodes and / or relay nodes; or...
[0017] The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous hop nodes are endpoint nodes.
[0018] In one possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
[0019] In one possible implementation, the second message is a data message or an active performance measurement message.
[0020] Secondly, embodiments of this application provide a message forwarding method applied to a second node, the method comprising:
[0021] Receive a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the second node, all of which are located in the SRv6 forwarding path;
[0022] The third bandwidth is reported, which is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.
[0023] In one possible implementation, the first message is encapsulated within a data message; the reporting of the third bandwidth includes:
[0024] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or,
[0025] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
[0026] In one possible implementation, the first message is encapsulated with an active performance measurement message; the reporting of the third bandwidth includes:
[0027] A response message to the active performance measurement message is sent to the source node. The response message includes a TLV structure, which is used to carry the third bandwidth.
[0028] In one possible implementation, the active performance measurement message is a STAMP message, and the TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry the third bandwidth, and the STAMP TLV flag bit includes a U flag, the value of which is 1.
[0029] In one possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and all previous-hop nodes include endpoint nodes and / or relay nodes; or...
[0030] The first IPv6 option header is the destination option header, and all the previous hop nodes are endpoint nodes.
[0031] In one possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
[0032] Thirdly, embodiments of this application provide a message forwarding device applied to a first node, the device comprising:
[0033] The acquisition module is used to acquire a first packet, the first packet including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path, the nodes in the SRv6 forwarding path including the first node and all the previous hop nodes of the first node.
[0034] The sending module is configured to send the first message on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
[0035] In one possible implementation, when the first node is the source node, the acquisition module is specifically used for:
[0036] Receive the second message;
[0037] Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node;
[0038] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second packet to obtain the first packet.
[0039] In one possible implementation, when the first node is an intermediate node, the acquisition module is specifically used for:
[0040] Receive a third message, the third message including a second IPv6 option header, the second IPv6 option header including a second bandwidth, the second bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the first node;
[0041] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained, and the first message is obtained;
[0042] If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
[0043] In one possible implementation, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and all previous-hop nodes include endpoint nodes and / or relay nodes; or...
[0044] The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous hop nodes are endpoint nodes.
[0045] In one possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
[0046] In one possible implementation, the second message is a data message or an active performance measurement message.
[0047] Fourthly, embodiments of this application provide a message forwarding device applied to a second node, the device comprising:
[0048] The receiving module is configured to receive a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum of the minimum available bandwidth of all the previous hop nodes of the second node, all of which are located in the SRv6 forwarding path;
[0049] The reporting module is used to report a third bandwidth, which is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.
[0050] In one possible implementation, the first message is encapsulated within a data message; the reporting module is specifically used for:
[0051] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or,
[0052] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
[0053] In one possible implementation, the first message is encapsulated within an active performance measurement message; the reporting module is specifically used for:
[0054] A response message to the active performance measurement message is sent to the source node. The response message includes a TLV structure, which is used to carry the third bandwidth.
[0055] In one possible implementation, the active performance measurement message is a STAMP message, and the TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry the third bandwidth, and the STAMP TLV flag bit includes a U flag, the value of which is 1.
[0056] In one possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and all previous-hop nodes include endpoint nodes and / or relay nodes; or...
[0057] The first IPv6 option header is the destination option header, and all the previous hop nodes are endpoint nodes.
[0058] In one possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
[0059] Fifthly, embodiments of this application provide a network device applied to a first node, the network device comprising:
[0060] processor;
[0061] transceiver;
[0062] A machine-readable storage medium storing machine-executable instructions that can be executed by the processor; the machine-executable instructions cause the processor to perform the following steps:
[0063] Obtain a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path, the nodes in the SRv6 forwarding path including the first node and all the previous hop nodes of the first node;
[0064] The first message is sent on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
[0065] In one possible implementation, when the first node is the source node, the machine-executable instructions further cause the processor to perform the following steps:
[0066] Receive the second message;
[0067] Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node;
[0068] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second packet to obtain the first packet.
[0069] In one possible implementation, when the first node is an intermediate node, the machine-executable instructions further cause the processor to perform the following steps:
[0070] Receive a third message, the third message including a second IPv6 option header, the second IPv6 option header including a second bandwidth, the second bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the first node;
[0071] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained, and the first message is obtained;
[0072] If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
[0073] In one possible implementation, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and all previous-hop nodes include endpoint nodes and / or relay nodes; or...
[0074] The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous hop nodes are endpoint nodes.
[0075] In one possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
[0076] In one possible implementation, the second message is a data message or an active performance measurement message.
[0077] Sixthly, embodiments of this application provide a network device applied to a second node, the network device comprising:
[0078] processor;
[0079] transceiver;
[0080] A machine-readable storage medium storing machine-executable instructions that can be executed by the processor; the machine-executable instructions cause the processor to perform the following steps:
[0081] Receive a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the second node, all of which are located in the SRv6 forwarding path;
[0082] The third bandwidth is reported, which is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.
[0083] In one possible implementation, the first message is encapsulated within a data message; the machine-executable instructions further cause the processor to perform the following steps:
[0084] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or,
[0085] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
[0086] In one possible implementation, the first message is encapsulated within an active performance measurement message; the machine-executable instructions further cause the processor to perform the following steps:
[0087] A response message to the active performance measurement message is sent to the source node. The response message includes a TLV structure, which is used to carry the third bandwidth.
[0088] In one possible implementation, the active performance measurement message is a STAMP message, and the TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry the third bandwidth, and the STAMP TLV flag bit includes a U flag, the value of which is 1.
[0089] In one possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and all previous-hop nodes include endpoint nodes and / or relay nodes; or...
[0090] The first IPv6 option header is the destination option header, and all the previous hop nodes are endpoint nodes.
[0091] In one possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
[0092] In a seventh aspect, embodiments of this application provide a machine-readable storage medium storing machine-executable instructions, which, when invoked and executed by a processor, cause the processor to perform the method described in the first aspect above.
[0093] Eighthly, embodiments of this application provide a computer program product containing instructions that, when run on a computer, cause the computer to perform the method described in the first aspect above.
[0094] Using the above technical solution, the first packet obtained by the first node includes a first IPv6 option header and a second packet. The first IPv6 option header includes a first bandwidth, which is the bandwidth value of the minimum available bandwidth of the nodes in the SRv6 forwarding path. The nodes in the SRv6 forwarding path include the first node and all its upstream nodes. Then, the first packet is forwarded according to the SRv6 forwarding path, enabling the tail node to know the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, and thus report this minimum value. This allows the controller or source node to obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path in a timely manner. This minimum value reflects the minimum available bandwidth of the SRv6 forwarding path, thereby avoiding packet loss problems caused by the inability to perceive the minimum available bandwidth of the SRv6 forwarding path. Attached Figure Description
[0095] The accompanying drawings, which are provided to further understand this application and constitute a part of this application, illustrate exemplary embodiments of this application and are used to explain this application, but do not constitute an undue limitation of this application.
[0096] Figure 1 An exemplary schematic diagram of an SRv6 message forwarding process provided for an embodiment of this application;
[0097] Figure 2 A flowchart of a message forwarding method provided in an embodiment of this application;
[0098] Figure 3 A schematic diagram of an IPv6 option header provided for an embodiment of this application;
[0099] Figure 4 A flowchart illustrating another message forwarding method provided in this application embodiment;
[0100] Figure 5A schematic diagram of a TLV structure provided in an embodiment of this application;
[0101] Figure 6 This is a schematic diagram of a multi-path scenario provided in an embodiment of this application;
[0102] Figure 7 This is a schematic diagram of the structure of a message forwarding device provided in an embodiment of this application;
[0103] Figure 8 A schematic diagram of another message forwarding device provided in the embodiments of this application;
[0104] Figure 9 This application provides a schematic diagram of the structure of a network device according to an embodiment of the present application.
[0105] Figure 10 This is a schematic diagram of another network device provided in an embodiment of this application. Detailed Implementation
[0106] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided with reference to the accompanying drawings and embodiments. Obviously, the described embodiments are merely some embodiments of this application, and not all embodiments. All other embodiments obtained by those skilled in the art based on the embodiments in this application are within the scope of protection of this application.
[0107] To facilitate understanding, the relevant concepts involved in the embodiments of this application will be explained.
[0108] 1. Introduction to SRv6.
[0109] The development of cloud computing has presented new challenges to wide area networks (WANs), demanding a transformation of traditional WANs. Software-defined networking in a wide area network (SD-WAN), as a core technology for reconstructing WANs, accelerates network delivery, optimizes application experience, improves bandwidth utilization, and simplifies network operation and maintenance through automatic deployment, centralized control, intelligent scheduling, and visualization, thus meeting the demands of cloud computing on WANs. Intelligent scheduling is a key capability of next-generation WANs, crucial for ensuring application quality and optimizing bandwidth resources. Existing traffic engineering technologies such as Multi-Protocol Label Switching (MPLS) and Resource Reservation Protocol-Traffic Engineering (RSVP-TE) can meet the differentiated bandwidth guarantee needs of applications, but they suffer from problems such as multiple protocol types, complex deployment, difficult management, and poor scalability, failing to meet the requirements of next-generation WANs for dynamic deployment, flexible scheduling, speed, and scalability. Therefore, a new protocol segment routing (SR) has emerged.
[0110] SR employs a source node path selection mechanism, pre-encapsulating the segment identifier (SID) of the segments the forwarding path will traverse at the source node. When a packet passes through an SR node, the SR node forwards the packet based on the packet's SID. Except for the source node, other nodes do not need to maintain path state.
[0111] IPv6 Segment Routing IPv6 (SRv6) refers to the implementation of SR based on the IPv6 forwarding plane. The source node in SRv6 can insert a routing extension header, namely the Segment Routing Header (SRH), into the IPv6 packet. The SRH contains a list of SIDs (Segment IDs) of all segments the forwarding path will traverse, thus explicitly specifying the forwarding path for the IPv6 packet. SRv6 provides a flexible and efficient control method for SD-WAN, featuring simple deployment, easy expansion, better traffic scheduling and path optimization, ensuring the quality of critical services, balancing traffic distribution, improving leased line utilization, and reducing line costs.
[0112] Based on their functions, nodes in the SRv6 network are divided into the following roles:
[0113] Source node: Responsible for inserting an SRH into the IPv6 header of an IPv6 packet, or encapsulating an IPv6 header on the outer layer of the packet and inserting an SRH. The source node is used to direct packet flows into the SRv6 path defined by the SRH segment list.
[0114] Intermediate nodes: Located on the SRv6 path of the packet, they do not participate in SRv6 processing and only perform ordinary IPv6 packet forwarding. Intermediate nodes can be nodes that support SRv6 or nodes that do not support SRv6.
[0115] Endpoint node: If the IPv6 destination address of the received SRv6 message is the SRv6 SID configured on the Endpoint node, then process it according to the instructions of the SRv6 SID and update the SRH.
[0116] Tail node: The last Endpoint node in the SRv6 forwarding path.
[0117] The same node can play different roles in different SRv6 paths. For example, a node may be a source node in one SRv6 path, but a relay node or an endpoint node in other SRv6 paths.
[0118] 2. SRv6 message forwarding process.
[0119] like Figure 1 As shown, Figure 1 In this diagram, device A is the source node, devices C and E are endpoint nodes, and devices B and D are relay nodes. The SRv6 packet forwarding process includes the following steps:
[0120] Step 1: After receiving the IPv6 packet as the source node, device A encapsulates the IPv6 packet with an SRH and an IPv6 header. Then, it looks up the routing table based on the destination address in the encapsulated IPv6 header and forwards the encapsulated packet to device B.
[0121] Since the path from device A to device D needs to pass through two Endpoint nodes, device C and device E, the SL in the SRH is 2-1, that is, SL=1. The SID list encapsulated in the SRH includes Segment List[0]=E and Segment List[1]=C.
[0122] The source address in the IPv6 header is an address of device A, and the destination address is the address indicated by SL, that is, the address of the Segment List[1] indicated by SL=1, which is the address of device C.
[0123] Step 2: After receiving the packet, device B looks up the routing table based on the destination address in the IPv6 header and forwards the packet to device C.
[0124] Step 3: Device C checks the SL in the SRH. If SL > 0, it decrements the SL value by 1 and updates the destination address in the IPv6 header to the address indicated by SL. That is, the Segment List [0] corresponding to SL = 0 is the address of device E. Then, device C looks up the routing table based on the destination address in the IPv6 header and forwards the packet to device D.
[0125] Step 4: After receiving the packet, device D looks up the routing table based on the destination address in the IPv6 header and forwards the packet to device E.
[0126] Step 5: Device E, acting as the tail node, receives the packet, checks the SL value in the SRH header, and finds that SL=0. Then, it decapsulates the packet, removes the encapsulated IPv6 header and SRH, and forwards the packet according to the destination address of the original IPv6 packet.
[0127] To enhance the reliability of forwarding paths, the controller pre-deploys multiple candidate paths on the source node. The source node prioritizes forwarding traffic via high-priority primary candidate paths. When all high-priority primary candidate paths become unavailable, traffic can be switched to low-priority backup candidate paths.
[0128] The nodes in a forwarding path carry different services and have varying forwarding capabilities. When traffic is high, some nodes in the forwarding path may experience congestion, causing the actual maximum forwardable traffic of that path to be less than the expected forwardable traffic. If the source node does not adjust the forwarding path in time and continues to forward packets on the original path according to the preset bandwidth when this happens, packet loss due to insufficient bandwidth will occur.
[0129] To solve this problem, it is necessary to obtain the minimum available bandwidth of each node in the current forwarding path. This minimum value reflects the minimum available bandwidth of the current forwarding path. If the minimum available bandwidth of the current forwarding path is insufficient, traffic can be switched to a forwarding path with sufficient bandwidth in a timely manner, thereby avoiding packet loss.
[0130] However, neither the controller nor the source node can currently obtain the minimum available bandwidth of each node in the current forwarding path, thus failing to detect whether the minimum available bandwidth of the current forwarding path is insufficient, and consequently failing to perform path switching in a timely manner, resulting in packet loss issues.
[0131] To address the aforementioned problems, this application provides a message forwarding method. This method is applied to a first node, which is either a source node or an intermediate node in the SRv6 forwarding path. Figure 2 As shown, the method includes:
[0132] S201. Obtain the first message. The first message includes a first IPv6 option header. The first IPv6 option header includes a first bandwidth. The first bandwidth is the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path. The nodes in the SRv6 forwarding path include the first node and all the previous hop nodes of the first node.
[0133] The SRv6 forwarding path is the forwarding path from the source node to the tail node in the SRv6 network. The intermediate nodes in the SRv6 forwarding path can be relay nodes or endpoint nodes.
[0134] For example, in Figure 1 In this context, the SRv6 forwarding path consists of device A, device B, device C, device D, and device E.
[0135] S202. Send the first message on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
[0136] Understandably, the first IPv6 option header of the packet received by the tail node includes the minimum minimum available bandwidth of all the upstream nodes of the tail node (referred to as bandwidth A). The tail node can compare bandwidth A with its own minimum available bandwidth. If its own minimum available bandwidth is less than bandwidth A, then it uses its own minimum available bandwidth as the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path; if its own available bandwidth is greater than or equal to bandwidth A, then it still uses bandwidth A as the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
[0137] Using this method, the first packet obtained by the first node includes a first IPv6 option header and a second packet. The first IPv6 option header includes a first bandwidth, which is the bandwidth value of the minimum available bandwidth of the nodes in the SRv6 forwarding path. The nodes in the SRv6 forwarding path include the first node and all its upstream nodes. Then, the first packet is forwarded according to the SRv6 forwarding path, enabling the tail node to know the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, and thus report this minimum value. This allows the controller or source node to obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path in a timely manner. This minimum value reflects the minimum available bandwidth of the SRv6 forwarding path, thereby avoiding packet loss problems caused by the inability to perceive the minimum available bandwidth of the SRv6 forwarding path.
[0138] Understandably, once the controller or source node obtains the minimum available bandwidth of all nodes in the SRv6 forwarding path, it can use this minimum value as the minimum available bandwidth of the SRv6 forwarding path. This allows for timely path switching when the minimum available bandwidth of the currently used SRv6 forwarding path is insufficient, avoiding packet loss due to insufficient bandwidth.
[0139] In addition to the minimum available bandwidth, other factors can be considered when making a decision on path switching, such as transmission latency. This application does not limit the method of path switching.
[0140] In the embodiments of this application, the first node can be a source node or an intermediate node, which will be described separately below.
[0141] When the first node is the source node, S201, obtaining the first message, can be implemented as follows:
[0142] Receive the second message; obtain the first bandwidth, carry the first bandwidth in the first IPv6 option header, and encapsulate the first IPv6 option header in the outer layer of the second message to obtain the first message.
[0143] The first bandwidth is the minimum available bandwidth of the outgoing interface of the first node, which is the outgoing interface of the first node on the SRv6 forwarding path.
[0144] The second message is either a data message or an active performance measurement message. For example, an active performance measurement message could be a Simple Two-Way Active Measurement Protocol (STAMP) or a Two-Way Active Measurement Protocol (TWAMP).
[0145] It is understandable that before forwarding the second packet using the SRv6 network, the source node needs to encapsulate the second packet with an IPv6 header and an SRH. In this embodiment, an additional first IPv6 option header for carrying the first bandwidth is encapsulated. The first IPv6 option header is located between the IPv6 header and the SRH. Since the source node is the first node in the SRv6 forwarding path, the first bandwidth encapsulated by the source node is the minimum available bandwidth of the source node's outgoing interface. The SRH includes a list of SIDs, which includes the SIDs of each endpoint node traversed by the SRv6 forwarding path.
[0146] Using this method, when the source node adds SRv6 encapsulation to the second packet, it additionally encapsulates a first IPv6 option header to carry the minimum available bandwidth. This allows nodes in the SRv6 forwarding path to update the minimum available bandwidth carried by the first IPv6 option header according to their own minimum available bandwidth after receiving the first packet. Consequently, the tail node can obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path. Furthermore, the source node or controller can refer to this minimum value when performing path switching, avoiding packet loss due to insufficient bandwidth.
[0147] When the first node is an intermediate node, S201, obtaining the first message, can be implemented as follows:
[0148] The third message is received. The third message includes a second IPv6 option header. The second IPv6 option header includes a second bandwidth, which is the minimum of the minimum available bandwidth of all previous hop nodes of the first node.
[0149] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained and the first message is obtained;
[0150] If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
[0151] Understandably, after receiving the third message, the first node can compare the second bandwidth with its own minimum available bandwidth.
[0152] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, it means that the minimum value of the minimum available bandwidth has not changed. Therefore, the second bandwidth is maintained, which means the second bandwidth is used as the first bandwidth, thus obtaining the first message.
[0153] If the second bandwidth is greater than the minimum available bandwidth of the first node, it means that the minimum value of the minimum available bandwidth has changed. Therefore, the second bandwidth is updated to the minimum available bandwidth of the first node, that is, the minimum available bandwidth of the first node is used as the first bandwidth, thus obtaining the first message.
[0154] Understandably, when the first node is an endpoint node, after receiving the third packet, the first node needs to update the destination address in the IPv6 header and the SL in the SRH, then obtain the first packet, and then continue to forward the first packet along the SRv6 forwarding path.
[0155] Using this method, after receiving a third packet, an intermediate node in the SRv6 forwarding path can compare the second bandwidth carried in the third packet with its own minimum available bandwidth. If the second bandwidth is smaller, it maintains the second bandwidth; otherwise, it updates the second bandwidth in the third packet to its own minimum available bandwidth. Through this comparison and update of minimum available bandwidth by each intermediate node, the tail node obtains the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path. Furthermore, the source node or controller can refer to this minimum value when performing path switching, avoiding packet loss due to insufficient bandwidth.
[0156] In this embodiment of the application, the minimum available bandwidth of each node in the SRv6 forwarding path is encapsulated as an IPv6 option in the first IPv6 option header. This IPv6 option can be named the Minimum Available Bandwidth Option.
[0157] The encapsulation location of the minimum available bandwidth option depends on the measurement requirements. If it is necessary to measure the minimum minimum available bandwidth of all IPv6 nodes (including relay nodes and endpoint nodes) in the SRv6 forwarding path, then the minimum available bandwidth option is encapsulated in a hop-by-hop options header. In this case, the first IPv6 options header is a hop-by-hop options header, and the intermediate nodes in the above embodiment are endpoint nodes or relay nodes. Accordingly, all previous-hop nodes include endpoint nodes and / or relay nodes. For example, for Figure 1 For device B, its only preceding node is device A, which is an endpoint node. Therefore, all preceding nodes of device B are endpoint nodes. For another example, for... Figure 1 For device C, all its upstream nodes include device A and device B. Device A is the endpoint node and device B is the relay node. In other words, all upstream nodes of device C include the endpoint node and the relay node.
[0158] Alternatively, if it is necessary to measure the minimum available bandwidth of each segment (i.e., each endpoint node) in the SRv6 forwarding path, the minimum available bandwidth option is encapsulated in the Destination Options header. In this case, the first IPv6 option header is the destination option header, and the intermediate nodes in the above embodiment are endpoint nodes. Correspondingly, all upstream nodes are endpoint nodes. Since the destination option header is used to carry optional information that only the node where the destination address of the packet is located needs to process, when the first packet is forwarded along the SRv6 forwarding path, the destination address in the IPv6 header can only be updated to the IP address of the endpoint node indicated by the SID list, and will not be updated to the IP address of the relay node. Therefore, only the endpoint nodes can recognize the minimum available bandwidth option included in the destination option header and compare and update the bandwidth value carried in the minimum available bandwidth option. In this case, the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path reported by the tail node refers to the minimum minimum available bandwidth of all endpoint nodes in the SRv6 forwarding path.
[0159] like Figure 3 As shown, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry the first bandwidth.
[0160] The option type field and option data length field each occupy 1 byte, and the minimum available bandwidth field is a 4-byte integer.
[0161] Corresponding to the above method embodiments, this application embodiment also provides a message forwarding method applied to a second node, which can be the tail node in the SRv6 forwarding path, such as... Figure 4 As shown, the method includes:
[0162] S401. Receive the first message. The first message includes a first IPv6 option header. The first IPv6 option header includes a first bandwidth. The first bandwidth is the minimum of the minimum available bandwidth of all upstream nodes of the second node. All upstream nodes are located in the SRv6 forwarding path.
[0163] The SRv6 forwarding path is the forwarding path from the source node to the tail node in the SRv6 network. The tail node has received the first message, so the first bandwidth is the minimum of the minimum available bandwidth of each node in the SRv6 forwarding path except the tail node.
[0164] S402. Report the third bandwidth, which is the minimum available bandwidth between the first and second bandwidths. The second bandwidth is the minimum available bandwidth of the second node.
[0165] Specifically, if the minimum available bandwidth of the second node is less than or equal to the second bandwidth, the third bandwidth is the minimum available bandwidth of the second node; if the minimum available bandwidth of the second node is greater than the first bandwidth, the third bandwidth is the first bandwidth.
[0166] Understandably, the third bandwidth is the minimum of the minimum available bandwidth of all upstream nodes of the tail node. After receiving the first packet, the tail node first obtains the first bandwidth from the first IPv6 option header before removing the SRv6 encapsulation, and then compares the first bandwidth with the minimum available bandwidth of the local link to determine the third bandwidth.
[0167] Using this method, the first packet received by the second node includes a first IPv6 option header, which includes a first bandwidth. The first bandwidth is the minimum of the minimum available bandwidth of all previous hops of the second node. The second node then uses its own minimum available bandwidth and the minimum bandwidth in the first bandwidth as a third bandwidth and reports this third bandwidth. This allows the controller or source node to promptly obtain the minimum of the minimum available bandwidth of all nodes in the SRv6 forwarding path. This minimum value reflects the minimum available bandwidth of the SRv6 forwarding path, thus avoiding packet loss problems caused by the inability to perceive the minimum available bandwidth of the SRv6 forwarding path.
[0168] Understandably, once the controller or source node obtains the minimum available bandwidth of all nodes in the SRv6 forwarding path, it can use this minimum value as the minimum available bandwidth of the SRv6 forwarding path. This allows for timely path switching when the minimum available bandwidth of the currently used SRv6 forwarding path is insufficient, avoiding packet loss due to insufficient bandwidth.
[0169] In this embodiment of the application, the second node reports the third bandwidth, specifically including the following three cases:
[0170] Case 1: If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller.
[0171] After obtaining the minimum available bandwidth of all nodes in the SRv6 forwarding path, the second node records this minimum value locally. When the second node determines the third bandwidth, if it hasn't already recorded the minimum available bandwidth of all nodes in the SRv6 forwarding path locally, it determines the third bandwidth to be the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path. Conversely, if it has already recorded the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path locally, it compares the third bandwidth with the recorded minimum value. If they differ, it indicates a change in the minimum available bandwidth, and the second node reports the third bandwidth; if they are the same, it indicates no change in the minimum available bandwidth, and the second node doesn't need to re-report the third bandwidth, saving transmission and processing overhead.
[0172] Scenario 2: If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
[0173] The IP packets are packets with a custom format, and the format of the IP packets is not limited in this embodiment of the application.
[0174] It should be noted that in cases 1 and 2, the inner layer of the first message is encapsulated with a data packet. That is, the source node encapsulates the first IPv6 option header on the outer layer of the ordinary data packet, so that the tail node can obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, and then report the third bandwidth to the controller or source node according to the configuration.
[0175] Scenario 3: The first message is encapsulated with an active performance measurement message. In this case, the second node sends a response message to the source node containing the active performance measurement message. This response message includes a TLV structure, which is used to carry the third bandwidth.
[0176] In one implementation, the active performance measurement message is a STAMP message. Accordingly, as... Figure 5 As shown, the TLV structure includes STAMP TLV flags, a Type field, a Length field, and a Minimum available bandwidth field. The Minimum available bandwidth field is used to carry a third bandwidth. The STAMP TLV flags include a U flag, which has a value of 1. A U flag of 1 indicates that this TLV is an extended TLV that needs to be identified by the peer.
[0177] The STAMP TLV flag occupies 1 byte.
[0178] The type field occupies 1 byte;
[0179] The length field indicates the length of the content carried by this TLV structure, occupies 2 bytes, and has a value of 4;
[0180] The minimum available bandwidth field is a 4-byte integer.
[0181] In this embodiment, the tail node acts as a STAMP session reflector. When the tail node supports bandwidth measurement, after obtaining the minimum available bandwidth (i.e., the third bandwidth) of the SRv6 forwarding path, the tail node needs to encapsulate the minimum available bandwidth in the TLV of the response message, so that the minimum available bandwidth is transmitted to the source node as reflected data.
[0182] In this way, the STAMP protocol can be used to measure the minimum available bandwidth of the SRv6 forwarding path. The tail node, as a session reflector, extends the STAMP TLV of the acknowledgment message so that the STAMP TLV carries the minimum available bandwidth. This allows the session sender (i.e., the source node) to obtain the minimum available bandwidth of the SRv6 forwarding path, so that path switching can be performed in a timely manner when the minimum available bandwidth is insufficient, avoiding packet loss caused by insufficient bandwidth.
[0183] The following will illustrate this with specific examples, such as... Figure 6 As shown, Figure 6 The example illustrates an SRv6 policy multipath scenario. For service traffic from node A to node E, the controller issues two candidate paths (CPs) to the source node A, namely CP1 and CP2.
[0184] CP1 is the primary candidate path, and CP2 is the backup candidate path. The preset bandwidth of the segmentlist paths of CP1 and CP2 is 100Mbps.
[0185] The SRv6 forwarding path configuration on source node A is as follows:
[0186] SRv6 policy POL1 (Policy 1)
[0187] Candidate Path CP1
[0188] Preference 200 (Priority 200)
[0189] Segment List 11<SID-A,SID-B,SID-E> Weight 1, 100Mbps
[0190] Segment List 12<SID-A,SID-B,SID-D,SID-E> Weight 1, 100Mbps
[0191] Candidate Path CP2
[0192] Preference 100
[0193] Segment List 21<SID-A,SID-C,SID-F,SID-E> Weight 1, 100Mbps
[0194] Segment List 22<SID-A,SID-F,SID-E> Weight 1, 100Mbps
[0195] That is, candidate path 1 has a priority of 200, and candidate path 1 includes two segment list paths. Among them, the path composed of node A, node B and node E has a weight of 1 and a bandwidth of 100Mbps; the path composed of node A, node B, node D and node E has a weight of 2 and a bandwidth of 100Mbps.
[0196] Candidate path 2 has a priority of 100 and includes two segment list paths. The path consisting of nodes A, C, F and E has a weight of 1 and a bandwidth of 100Mbps. The path consisting of nodes A, F and E has a weight of 1 and a bandwidth of 100Mbps.
[0197] Under normal circumstances, the primary candidate path CP1 can forward 200Mbps of traffic. When CP1 becomes congested and no longer meets the forwarding requirements, source node A needs to promptly switch the traffic to the backup candidate path CP2. For example, the forwarding requirement is that the bandwidth of the candidate path must be greater than 150Mbps.
[0198] To address this switching requirement, the minimum available bandwidth measurement function can be enabled on the SRv6 forwarding path according to the method in this application embodiment. If there is traffic congestion on node D, and the actual bandwidth that node D can forward (i.e., the minimum available bandwidth) drops below 50Mbps, for example, 43Mbps, the minimum available bandwidth of the other nodes remains 100Mbps. When node D receives an SRv6 packet, it encapsulates its own minimum available bandwidth in the IPv6 option header and forwards the SRv6 packet to node E. Node E can determine that the minimum available bandwidth in the path currently composed of A, B, D, and E is 43Mbps, and feeds back this minimum available bandwidth to the source node A. The source node A can calculate that the minimum available bandwidth of the two segmentlist paths of CP1 is 143Mbps, which is less than the 150Mbps required for forwarding, thus allowing for a rapid switch of candidate paths, switching the service flow to the uncongested CP2.
[0199] As can be seen, the actual minimum available bandwidth of the SRv6 forwarding path can be measured through the embodiments of this application. When the actual minimum available bandwidth of the SRv6 forwarding path does not meet the forwarding requirements, the controller or source node can quickly detect this and select a new forwarding path for the service flow in a timely manner.
[0200] It should be noted that the above method for switching paths is only an example. In actual implementation, path switching can be performed by taking into account the minimum available bandwidth of the SRv6 forwarding path and other factors. This application embodiment does not limit this.
[0201] Corresponding to the above method embodiments, this application embodiment also provides a message forwarding device, which is applied to a first node, such as... Figure 7 As shown, the device includes:
[0202] The acquisition module 701 is used to acquire a first packet. The first packet includes a first IPv6 option header. The first IPv6 option header includes a first bandwidth. The first bandwidth is the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path. The nodes in the SRv6 forwarding path include the first node and all the previous hop nodes of the first node.
[0203] The sending module 702 is used to send a first message on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
[0204] Optionally, when the first node is the source node, module 701 is used specifically for:
[0205] Receive the second message;
[0206] Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node;
[0207] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second message to obtain the first message.
[0208] Optionally, when the first node is an intermediate node, module 701 is used to obtain:
[0209] Receive a third message, which includes a second IPv6 option header. The second IPv6 option header includes a second bandwidth, which is the minimum of the minimum available bandwidth of all previous hop nodes of the first node.
[0210] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained and the first message is obtained;
[0211] If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
[0212] Optionally, the first IPv6 option header is a Hop-by-Hop option header, the intermediate nodes are endpoint nodes or relay nodes, and all previous hop nodes include endpoint nodes and / or relay nodes; or,
[0213] The first IPv6 option header is the destination option header, the intermediate nodes are endpoint nodes, and all previous hop nodes are endpoint nodes.
[0214] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, the minimum available bandwidth field being used to carry the first bandwidth.
[0215] Optionally, the second message is a data message or an active performance measurement message.
[0216] Corresponding to the above method embodiments, this application also provides a message forwarding device, which is applied to a second node, such as... Figure 8 As shown, the device includes:
[0217] The receiving module 801 is used to receive a first message. The first message includes a first IPv6 option header. The first IPv6 option header includes a first bandwidth. The first bandwidth is the minimum of the minimum available bandwidth of all the previous hop nodes of the second node. All the previous hop nodes are located in the SRv6 forwarding path.
[0218] The reporting module 802 is used to report the third bandwidth, which is the minimum bandwidth between the first bandwidth and the second bandwidth. The second bandwidth is the minimum available bandwidth of the second node.
[0219] Optionally, the first message is encapsulated with a data message in its inner layer; the reporting module 802 is specifically used for:
[0220] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or,
[0221] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
[0222] Optionally, the first message is encapsulated with an active performance measurement message; the reporting module 802 is specifically used for:
[0223] A response message is sent to the source node to initiate performance measurement messages. The response message includes a TLV structure, which is used to carry the third bandwidth.
[0224] Optionally, the active performance measurement message is a STAMP message. The TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry a third bandwidth. The STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.
[0225] Optionally, the first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or relay nodes; or,
[0226] The first IPv6 option header is the destination option header, and all previous hop nodes are endpoint nodes.
[0227] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, the minimum available bandwidth field being used to carry the first bandwidth.
[0228] Corresponding to the above method embodiments, this application also provides a network device, which should be a first node, such as... Figure 9 As shown, the network device includes:
[0229] Processor 901;
[0230] Transceiver 904;
[0231] Machine-readable storage medium 902 stores machine-executable instructions that can be executed by processor 901; the machine-executable instructions cause processor 901 to perform the following steps:
[0232] Obtain the first message, which includes the first IPv6 option header. The first IPv6 option header includes the first bandwidth, which is the minimum of the minimum available bandwidth of the nodes in the SRv6 forwarding path. The nodes in the SRv6 forwarding path include the first node and all the previous hop nodes of the first node.
[0233] Send the first message on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
[0234] Optionally, when the first node is the source node, the machine-executable instructions also cause the processor 901 to perform the following steps:
[0235] Receive the second message;
[0236] Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node;
[0237] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second message to obtain the first message.
[0238] Optionally, when the first node is an intermediate node, the machine-executable instructions also cause the processor 901 to perform the following steps:
[0239] Receive a third message, which includes a second IPv6 option header. The second IPv6 option header includes a second bandwidth, which is the minimum of the minimum available bandwidth of all previous hop nodes of the first node.
[0240] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained and the first message is obtained;
[0241] If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
[0242] Optionally, the first IPv6 option header is a Hop-by-Hop option header, the intermediate nodes are endpoint nodes or relay nodes, and all previous hop nodes include endpoint nodes and / or relay nodes; or,
[0243] The first IPv6 option header is the destination option header, the intermediate nodes are endpoint nodes, and all previous hop nodes are endpoint nodes.
[0244] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, the minimum available bandwidth field being used to carry the first bandwidth.
[0245] Optionally, the second message is a data message or an active performance measurement message.
[0246] like Figure 9 As shown, the network device may also include a communication bus 903. The processor 901, machine-readable storage medium 902, and transceiver 904 communicate with each other via the communication bus 903. The communication bus 903 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This communication bus 903 can be divided into an address bus, a data bus, a control bus, etc.
[0247] Transceiver 904 can be a wireless communication module. Under the control of processor 901, transceiver 904 interacts with other devices for data exchange.
[0248] Machine-readable storage medium 902 may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Alternatively, machine-readable storage medium 902 may also be at least one storage device located remotely from the aforementioned processor.
[0249] The processor 901 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0250] Corresponding to the above method embodiments, this application embodiment also provides a network device, which is a second node, such as... Figure 10 As shown, the network device includes:
[0251] Processor 1001;
[0252] Transceiver 1004;
[0253] Machine-readable storage medium 1002 stores machine-executable instructions that can be executed by processor 1001; the machine-executable instructions cause processor 1001 to perform the following steps:
[0254] Receive the first message, which includes a first IPv6 option header. The first IPv6 option header includes a first bandwidth, which is the minimum of the minimum available bandwidth of all upstream nodes of the second node. All upstream nodes are located in the SRv6 forwarding path.
[0255] The third bandwidth is reported. The third bandwidth is the minimum bandwidth between the first bandwidth and the second bandwidth. The second bandwidth is the minimum available bandwidth of the second node.
[0256] Optionally, the first message is encapsulated within a data message; the machine-executable instructions also cause the processor 1001 to perform the following steps:
[0257] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or,
[0258] If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
[0259] Optionally, the first message is encapsulated with an active performance measurement message; the machine-executable instructions also cause the processor 1001 to perform the following steps:
[0260] A response message is sent to the source node to initiate performance measurement messages. The response message includes a TLV structure, which is used to carry the third bandwidth.
[0261] Optionally, the active performance measurement message is a STAMP message. The TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry a third bandwidth. The STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.
[0262] Optionally, the first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or relay nodes; or,
[0263] The first IPv6 option header is the destination option header, and all previous hop nodes are endpoint nodes.
[0264] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, the minimum available bandwidth field being used to carry the first bandwidth.
[0265] like Figure 10 As shown, the network device may also include a communication bus 1003. The processor 1001, machine-readable storage medium 1002, and transceiver 1004 communicate with each other via the communication bus 1003. The communication bus 1003 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This communication bus 1003 can be divided into an address bus, a data bus, a control bus, etc.
[0266] The transceiver 1004 can be a wireless communication module, which interacts with other devices under the control of the processor 1001.
[0267] Machine-readable storage medium 1002 may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Alternatively, machine-readable storage medium 1002 may also be at least one storage device located remotely from the aforementioned processor.
[0268] The processor 1001 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0269] Based on the same inventive concept, and according to the message forwarding method provided in the above embodiments of this application, this application also provides a machine-readable storage medium storing machine-executable instructions that can be executed by a processor. The processor is prompted by the machine-executable instructions to implement the steps of any of the above message forwarding methods.
[0270] In another embodiment provided in this application, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to perform the steps of any of the message forwarding methods described in the above embodiments.
[0271] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes the element.
[0272] The above description is only a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A message forwarding method, characterized in that, Applied to the first node, the method includes: Obtain a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path, the nodes in the SRv6 forwarding path including the first node and all the previous hop nodes of the first node; The first message is sent on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
2. The method according to claim 1, characterized in that, When the first node is the source node, obtaining the first message includes: Receive the second message; Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node; The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second packet to obtain the first packet.
3. The method according to claim 1, characterized in that, When the first node is an intermediate node, obtaining the first message includes: Receive a third message, the third message including a second IPv6 option header, the second IPv6 option header including a second bandwidth, the second bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the first node; If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained, and the first message is obtained; If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
4. The method according to claim 3, characterized in that, The first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and all previous hop nodes include endpoint nodes and / or relay nodes; or, The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous hop nodes are endpoint nodes.
5. The method according to any one of claims 1-4, characterized in that, The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
6. The method according to claim 2, characterized in that, The second message is a data message or an active performance measurement message.
7. A message forwarding method, characterized in that, Applied to the second node, the method includes: Receive a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the second node, all of which are located in the SRv6 forwarding path; The third bandwidth is reported, which is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.
8. The method according to claim 7, characterized in that, The first message contains an inner encapsulation of a data message; The reported third bandwidth includes: If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or, If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
9. The method according to claim 7, characterized in that, The first message contains an inner encapsulation of an active performance measurement message; The reported third bandwidth includes: A response message to the active performance measurement message is sent to the source node. The response message includes a TLV structure, which is used to carry the third bandwidth.
10. The method according to claim 9, characterized in that, The active performance measurement message is a STAMP message. The TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry the third bandwidth. The STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.
11. The method according to any one of claims 7-10, characterized in that, The first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes endpoint nodes and / or relay nodes; or, The first IPv6 option header is the destination option header, and all the previous hop nodes are endpoint nodes.
12. The method according to claim 11, characterized in that, The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
13. A message forwarding device, characterized in that, Applied to the first node, the device includes: The acquisition module is used to acquire a first packet, the first packet including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path, the nodes in the SRv6 forwarding path including the first node and all the previous hop nodes of the first node. The sending module is configured to send the first message on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
14. The apparatus according to claim 13, characterized in that, When the first node is the source node, the acquisition module is specifically used for: Receive the second message; Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node; The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second packet to obtain the first packet.
15. The apparatus according to claim 13, characterized in that, When the first node is an intermediate node, the acquisition module is specifically used for: Receive a third message, the third message including a second IPv6 option header, the second IPv6 option header including a second bandwidth, the second bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the first node; If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained, and the first message is obtained; If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
16. The apparatus according to claim 15, characterized in that, The first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and all previous hop nodes include endpoint nodes and / or relay nodes; or, The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous hop nodes are endpoint nodes.
17. The apparatus according to any one of claims 13-16, characterized in that, The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
18. The apparatus according to claim 14, characterized in that, The second message is a data message or an active performance measurement message.
19. A message forwarding device, characterized in that, Applied to the second node, the device includes: The receiving module is configured to receive a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum of the minimum available bandwidth of all the previous hop nodes of the second node, all of which are located in the SRv6 forwarding path; The reporting module is used to report a third bandwidth, which is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.
20. The apparatus according to claim 19, characterized in that, The first message is encapsulated within a data message; the reporting module is specifically used for: If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or, If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
21. The apparatus according to claim 19, characterized in that, The first message contains an inner encapsulated active performance measurement message; the reporting module is specifically used for: A response message to the active performance measurement message is sent to the source node. The response message includes a TLV structure, which is used to carry the third bandwidth.
22. The apparatus according to claim 21, characterized in that, The active performance measurement message is a STAMP message. The TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry the third bandwidth. The STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.
23. The apparatus according to any one of claims 19-22, characterized in that, The first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes endpoint nodes and / or relay nodes; or, The first IPv6 option header is the destination option header, and all the previous hop nodes are endpoint nodes.
24. The apparatus according to claim 23, characterized in that, The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
25. A network device, characterized in that, Applied to the first node, the network device includes: processor; transceiver; A machine-readable storage medium storing machine-executable instructions that can be executed by the processor; the machine-executable instructions cause the processor to perform the following steps: Obtain a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum value of the minimum available bandwidth of the nodes in the SRv6 forwarding path, the nodes in the SRv6 forwarding path including the first node and all the previous hop nodes of the first node; The first message is sent on the SRv6 forwarding path so that the tail node reports the minimum minimum available bandwidth of all nodes in the SRv6 forwarding path.
26. The network device according to claim 25, characterized in that, When the first node is the source node, the machine-executable instructions also cause the processor to perform the following steps: Receive the second message; Obtain the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node; The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second packet to obtain the first packet.
27. The network device according to claim 25, characterized in that, When the first node is an intermediate node, the machine-executable instructions also cause the processor to perform the following steps: Receive a third message, the third message including a second IPv6 option header, the second IPv6 option header including a second bandwidth, the second bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the first node; If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, then the second bandwidth is maintained, and the first message is obtained; If the second bandwidth is greater than the minimum available bandwidth of the first node, then the second bandwidth is updated to the minimum available bandwidth of the first node, and the first message is obtained.
28. The network device according to claim 27, characterized in that, The first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and all previous hop nodes include endpoint nodes and / or relay nodes; or, The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous hop nodes are endpoint nodes.
29. The network device according to any one of claims 25-28, characterized in that, The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
30. The network device according to claim 26, characterized in that, The second message is a data message or an active performance measurement message.
31. A network device, characterized in that, Applied to the second node, the network device includes: processor; transceiver; A machine-readable storage medium storing machine-executable instructions that can be executed by the processor; the machine-executable instructions cause the processor to perform the following steps: Receive a first message, the first message including a first IPv6 option header, the first IPv6 option header including a first bandwidth, the first bandwidth being the minimum of the minimum available bandwidth of all previous hop nodes of the second node, all of which are located in the SRv6 forwarding path; The third bandwidth is reported, which is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.
32. The network device according to claim 31, characterized in that, The first message is encapsulated within a data message; the machine-executable instructions further cause the processor to perform the following steps: If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then the third bandwidth is reported to the controller; or, If the third bandwidth is the minimum of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or if the third bandwidth is different from the minimum of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, then an IP packet is sent to the source node, and the IP packet includes the third bandwidth.
33. The network device according to claim 31, characterized in that, The first message contains an inner encapsulated active performance measurement message; the machine-executable instructions further cause the processor to perform the following steps: A response message to the active performance measurement message is sent to the source node. The response message includes a TLV structure, which is used to carry the third bandwidth.
34. The network device according to claim 33, characterized in that, The active performance measurement message is a STAMP message. The TLV structure includes a STAMP TLV flag bit, a type field, a length field, and a minimum available bandwidth field. The minimum available bandwidth field is used to carry the third bandwidth. The STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.
35. The network device according to any one of claims 31-34, characterized in that, The first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes endpoint nodes and / or relay nodes; or, The first IPv6 option header is the destination option header, and all the previous hop nodes are endpoint nodes.
36. The network device according to claim 35, characterized in that, The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, wherein the minimum available bandwidth field is used to carry the first bandwidth.
37. A machine-readable storage medium, characterized in that, The device stores machine-executable instructions that, when invoked and executed by a processor, cause the processor to: implement the method of any one of claims 1-12.
38. A computer program product, characterized in that, The computer program product causes the processor to implement the method of any one of claims 1-12.
Citation Information
Patent Citations
Method and system for transmitting control information in VXLAN transmission
CN111917624A
Communication method and related equipment
CN112468403A