Message forwarding method and apparatus, and device and readable storage medium

By adding path information to packets in the SRv6 network, the first node selects the transmission path based on the path information, which solves the problem of out-of-order packets at the tail node and achieves efficient order-preserving forwarding.

WO2026103383A1PCT designated stage Publication Date: 2026-05-21HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2025-10-09
Publication Date
2026-05-21

AI Technical Summary

Technical Problem

In SRv6 networks, the tail node experiences out-of-order packets due to delay differences in different transmission paths during multiple transmission and selective reception. Existing locking or reordering methods affect the forwarding rate, making it difficult to achieve ordered forwarding of packets without affecting the forwarding rate.

Method used

By carrying path information in the message, the first node distinguishes the transmission path based on the path information and selects a path to transmit the message, avoiding locking or reordering and achieving order-preserving forwarding.

Benefits of technology

Without affecting the message forwarding rate of the tail node, message forwarding in order is achieved, thus improving transmission reliability and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025126470_21052026_PF_FP_ABST
    Figure CN2025126470_21052026_PF_FP_ABST
Patent Text Reader

Abstract

The embodiments of the present application relate to the technical field of communications. Provided are a message forwarding method and apparatus, and a device and a readable storage medium. The method comprises: a plurality of messages sent by a second node to a first node all including multiple-sending and selective-receiving information and path information; after receiving the plurality of messages, the first node distinguishing transmission paths of the plurality of messages on the basis of the path information carried by the plurality of messages, wherein a message which carries first path information is a message transmitted in a first transmission path, and a message which carries second path information is a message transmitted in a second transmission path; and the first node selecting a message transmitted in one of the transmission paths for forwarding, for example, the first node determining, from among the plurality of messages, a plurality of first messages which include the first path information, and then forwarding the plurality of first messages. In the embodiments of the present application, the first node can implement order-preserving forwarding of messages without affecting the message forwarding rate.
Need to check novelty before this filing date? Find Prior Art

Description

Message forwarding methods, apparatus, devices and readable storage media

[0001] This application claims priority to Chinese Patent Application No. 202411650450.5, filed on November 18, 2024, entitled “Message Forwarding Method, Apparatus, Device and Readable Storage Medium”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of communication technology, and in particular to a message forwarding method, apparatus, device and readable storage medium. Background Technology

[0003] SRv6 networks typically use multiple-transmission-selective (MCR) technology for redundancy protection. Specifically, in a MCR configuration, multiple transmission paths exist between the head node and the tail node. After receiving a packet, the head node copies it to obtain multiple copies and then sends these copies to the tail node via multiple transmission paths. Upon receiving the multiple copies, the tail node identifies them based on characteristics such as identical flow identifiers and sequence numbers, and selects one to forward. This ensures that even if one transmission path fails, the tail node can still receive packets transmitted through other paths, achieving zero packet loss.

[0004] Different transmission paths have different transmission delays. Therefore, it's possible that a message with a later sequence number on transmission path A might arrive at the tail node before a message with an earlier sequence number on transmission path B. Since the tail node forwards messages in the order they arrive, in this situation, if the tail node selects both the earlier-arriving message from transmission path A (later sequence number) and the later-arriving message from transmission path B (earlier sequence number), it will forward the later-arriving message first, resulting in out-of-order message forwarding.

[0005] To address the out-of-order packet problem, locking or reordering methods are typically used to ensure that the tail node forwards packets in sequence. However, both of these methods increase packet processing time, thus affecting the packet forwarding rate. Therefore, how to achieve ordered packet forwarding without affecting the tail node's packet forwarding rate has become an urgent problem to be solved. Summary of the Invention

[0006] This application provides a message forwarding method, apparatus, device, and readable storage medium, which can achieve message forwarding in order without affecting the message forwarding rate of the tail node.

[0007] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:

[0008] Firstly, a message forwarding method is provided, applied to a first node, where multiple transmission paths exist between the first and second nodes. The first node receives multiple messages sent by the second node, each message including multiple-send selection information and path information. The multiple-send selection information indicates that the multiple messages are copies of the same original message stream. The first node selects which messages to receive based on the multiple-send selection information. The path information is either first path information or second path information; the first path information indicates a first transmission path between the first and second nodes, and the second path information indicates a second transmission path between the first and second nodes. Thus, the first node can distinguish between multiple first messages transmitted on the first transmission path and multiple second messages transmitted on the second transmission path based on the path information carried by each message. The first node then selects the multiple first messages transmitted on the first transmission path for forwarding.

[0009] In this embodiment, the first node distinguishes the transmission paths of each message based on the path information of each message, and then forwards only the first message transmitted via the first transmission path. It is understood that messages on a transmission path are transmitted in order, therefore the first node can achieve order-preserving forwarding of messages. In this way, the first node does not need to reorder the received messages, nor does it need to lock to control the output order of messages. Order-preserving forwarding of messages is achieved without affecting the message forwarding efficiency of the second node.

[0010] In an optional implementation, the method further includes: when the packet loss rate of multiple first packets is greater than or equal to a preset threshold, the first node determines multiple second packets including second path information; the first node forwards the multiple second packets. That is, the first node can determine the packet loss rate of multiple first packets. It is understood that the packet loss rate of multiple first packets reflects the path condition of the first transmission path. If the packet loss rate of multiple first packets is greater than or equal to the preset threshold, it indicates that the first transmission path has failed. Then, the first node can switch to forwarding the multiple second packets transmitted through the second transmission path. In this way, the first node can select packets to receive based on the transmission status of the transmission path, improving the transmission reliability of packets and reducing the probability of packet retransmission.

[0011] In one optional implementation, the first node can determine whether multiple first packets are consecutive based on their sequence numbers. This allows it to determine the number of lost packets between two adjacent first packets with non-consecutive sequence numbers, and thus the packet loss rate of the multiple first packets. By determining the packet loss rate of multiple first packets based on their sequence numbers, the first node can accurately identify lost packets, thereby obtaining a more precise packet loss rate.

[0012] In one optional implementation, the path information of each message can be carried in the message header of each message. In this way, the first node can easily and efficiently identify the first message carrying the first path information and the second message carrying the second path information among multiple messages.

[0013] In one optional implementation, the multiple packets received by the second node are SRv6 packets. The first path information or second path information carried by the SRv6 packets can be located in the segment routing header (SRH) or the destination option header (DOH) of the SRv6 packets. In this way, path information can be added to the SRv6 packets without affecting the packet format, thereby improving the forwarding efficiency of SRv6 packets in the process of multiple transmission and selective reception of SRv6 packets.

[0014] In an optional implementation, the first or second path information carried by the SRv6 message can be located in the flag field of the SRH or DOH. In this approach, using a portion of the bits in the flag field to carry the path information of the SRv6 message can improve the message's scalability.

[0015] In an optional implementation, the first or second path information carried by the SRv6 message can be located in the Type Length Value (TLV) field of the SRH or DOH. This allows the path information of the SRv6 message to be carried using existing field types, providing better compatibility with network protocols.

[0016] In an optional implementation, the method further includes: before forwarding a first message transmitted on a first transmission path, the first node may delete the first path information from the first message before forwarding it. This simplifies the message, reduces the resources consumed by the message, and improves transmission efficiency.

[0017] In one optional implementation, the multiple transmission and reception information of the multiple packets received by the first node includes a flow identifier and a sequence number. The flow identifiers of the multiple packets are identical and are the flow identifiers of the original packet flow. The sequence number is used to indicate the packet forwarding order of the multiple packets.

[0018] In one optional implementation, the first node can have different selection methods. The first node can configure different selection methods according to actual business needs. When the first node selects multiple packets based on packet path information, it can switch to other selection methods to select packets to be forwarded next when preset conditions are met. For example, the first node can be configured to ignore path information and determine multiple target packets from the received packets according to the packet reception order, where the multiple target packets are multiple packets with different sequence numbers. Alternatively, the first node can reorder the multiple target packets from the received packets according to their sequence numbers and then forward them sequentially. In this way, the first node can flexibly adapt to actual business needs, thereby improving forwarding performance.

[0019] Secondly, a message forwarding method is provided, applied to a second node. Multiple transmission paths exist between the second node and the first node. The second node obtains the message stream from the source node, i.e., the original message stream. The second node copies the original message stream to obtain a first message stream and a second message stream. The first message stream carries first path information, indicating a first transmission path between the second node and the first node. The second message stream carries second path information, indicating a second transmission path between the second node and the first node. The second node transmits the first message stream to the first node through the first transmission path and the second message stream to the first node through the second transmission path.

[0020] In this embodiment, the second node adds path information to the packets of the first and second packet streams. This allows the first node, upon receiving packets from both streams, to distinguish the transmission paths of each packet based on their path information and then forward only packets from a single transmission path. Consequently, the first node does not need to reorder the received packets or use locking mechanisms to control the output order; it only needs to process packets from one transmission path sequentially to achieve ordered forwarding.

[0021] In one optional implementation, the second node adds first path information to the packets of the first packet stream and adds second path information to the packets of the second packet stream.

[0022] In an optional implementation, path information can be added to the header of each message, which makes it easier for the first node to identify the first message carrying the first path information and the second message carrying the second path information from among multiple messages in a simple and efficient manner.

[0023] In one optional implementation, the second node sends multiple SRv6 packets. The second node can add first path information or second path information to the Segment Routing Header (SRH) or Destination Options Header (DOH) of the SRv6 packets. This allows path information to be added to the SRv6 packets without affecting their packet format.

[0024] In an optional implementation, the second node can add first or second path information to the flag field of the SRH or DOH. Adding path information to the SRv6 message using the new field can improve the message's scalability.

[0025] In an optional implementation, the second node can add first path information or second path information to the TLV field of the SRH or DOH, and add path information to the SRv6 message using the existing field, which can better adapt to other network protocols.

[0026] In an optional implementation, the second node further adds multiple-send selection information to the packets of the first and second packet streams. This multiple-send selection information indicates that the first and second packet streams are copies of the original packet streams. Thus, the first node can select and receive packets based on the multiple-send selection information.

[0027] In one optional implementation, the multiple-send / receive information includes a flow identifier and a sequence number. The flow identifier added by the second node to the packets of the first and second packet flows is the same as the flow identifier of the original packet flow. The sequence number indicates the forwarding order of each packet.

[0028] Thirdly, a message forwarding apparatus is provided, which serves as a first node and includes: a receiving unit for receiving multiple messages from a second node, wherein each message includes multiple send / receive information, the multiple send / receive information indicating that the multiple messages are obtained by copying the original message stream, and any message in the multiple messages includes first path information or second path information, the first path information indicating a first transmission path between the first node and the second node, and the second path information indicating a second transmission path between the first node and the second node; a processing unit for determining multiple first messages including the first path information from the multiple messages; and a sending unit for forwarding the multiple first messages.

[0029] In an optional implementation, the processing unit is further configured to: determine multiple second messages including second path information when the packet loss rate of multiple first messages is greater than or equal to a preset threshold; the sending unit is further configured to: forward multiple second messages.

[0030] In an optional implementation, the processing unit is specifically configured to: determine the packet loss rate of the plurality of first packets based on the sequence numbers of the plurality of first packets.

[0031] In one optional implementation, the header of each of the multiple messages carries either first path information or second path information.

[0032] In one optional implementation, multiple messages are SRv6 messages, with the message header being either a segment routing header (SRH) or a destination option header (DOH).

[0033] In an optional implementation, the first path information or the second path information is located in the flag field of the SRH or DOH.

[0034] In an optional implementation, the first path information or the second path information is located in the TLV field of the SRH or DOH.

[0035] In an optional implementation, the sending unit is further configured to: delete the first path information from a plurality of first messages.

[0036] In one optional implementation, the multiple send / receive information includes a flow identifier and a sequence number, where the flow identifier is the flow identifier of the original message flow.

[0037] In one optional implementation, the receiving unit is further configured to: continue receiving multiple messages from the second node, wherein each of the multiple messages received includes multiple-transmission selective-reception information, and any one of the multiple messages received includes first path information or second path information; the processing unit is further configured to: when a preset condition is met, determine multiple target messages from the multiple messages received in the order of message reception, wherein the multiple target messages include different sequence numbers; the sending unit is further configured to: forward the multiple target messages; or, the processing unit is further configured to: when a preset condition is met, reorder the multiple target messages in the multiple messages received in the multiple messages according to the sequence numbers, wherein the multiple target messages include different sequence numbers; the sending unit is further configured to forward the multiple target messages.

[0038] Fourthly, a message forwarding device is provided, wherein the second message forwarding device serves as a second node, comprising:

[0039] The receiving unit is used to: acquire the original message stream; the processing unit is used to: copy the original message stream to obtain a first message stream and a second message stream, wherein the messages of the first message stream carry first path information and the messages of the second message stream carry second path information, wherein the first path information is used to indicate a first transmission path between the second node and the first node, and the second path information is used to indicate a second transmission path between the second node and the first node; the sending unit is used to: transmit the first message stream through the first transmission path and transmit the second message stream through the second transmission path.

[0040] In an optional implementation, the processing unit is specifically configured to: add first path information to the packets of the first message stream, and add second path information to the packets of the second message stream.

[0041] In one optional implementation, the header of the first message stream carries first path information, and the header of the second message stream carries second path information.

[0042] In an optional implementation, the packets of the first packet flow and the packets of the second packet flow are SRv6 packets, and the packet header is either a segment routing header (SRH) or a destination option header (DOH).

[0043] In an optional implementation, the first path information or the second path information is located in the flag field of the SRH or DOH.

[0044] In an optional implementation, the first path information or the second path information is located in the TLV field of the SRH or DOH.

[0045] In an optional implementation, the processing unit is further configured to: add multiple-send-select-receive information to the packets of the first packet stream and the packets of the second packet stream, wherein the multiple-send-select-receive information is used to indicate that the first packet stream and the second packet stream are obtained by copying the original packet stream.

[0046] In one optional implementation, the multiple send / receive information includes a flow identifier and a sequence number, where the flow identifier is the flow identifier of the original message flow.

[0047] Fifthly, a routing and forwarding device is provided, the device comprising: a processor and a memory storing instructions that, when executed by the processor, cause the device to perform a message forwarding method as provided in the first aspect or any possible implementation thereof.

[0048] In a sixth aspect, a routing and forwarding device is provided, the device comprising: a processor and a memory storing instructions that, when executed by the processor, cause the device to perform a message forwarding method as provided in the second aspect or any possible implementation thereof.

[0049] In a seventh aspect, a chip is provided, the chip including a processor and an interface circuit, the processor and the interface circuit being configured to support the chip in performing a message forwarding method as provided in the first aspect or any possible implementation thereof.

[0050] Eighthly, a chip is provided, the chip including a processor and an interface circuit, the processor and the interface circuit being used to support the chip in performing a message forwarding method as provided in the second aspect or any possible implementation thereof.

[0051] A ninth aspect provides a computer-readable storage medium storing a computer program or instructions that, when executed, implement the message forwarding method provided by the first aspect or any possible implementation thereof.

[0052] In a tenth aspect, a computer-readable storage medium is provided, wherein a computer program or instructions are stored therein, which, when executed, implement the message forwarding method provided by the second aspect or any possible implementation thereof.

[0053] Eleventhly, a computer program product is provided, comprising: a computer program (or code, or instructions) that, when executed, causes a computer to perform a message forwarding method provided by the first aspect or any possible implementation thereof.

[0054] In a twelfth aspect, a computer program product is provided, comprising: a computer program (or code, or instructions) that, when executed, causes a computer to perform a message forwarding method provided by the second aspect or any possible implementation thereof.

[0055] It is understood that the beneficial effects achieved by any of the message forwarding devices, routing and forwarding equipment, chips, computer-readable storage media and computer program products provided above can be referred to in the context of the message forwarding methods provided above, and will not be repeated here. Attached Figure Description

[0056] Figure 1 is a schematic diagram of the path for forwarding packets from the head node to the tail node in an SRv6 network according to an embodiment of this application;

[0057] Figure 2A is a schematic diagram illustrating the sequence of messages arriving at the tail node according to an embodiment of this application;

[0058] Figure 2B is a schematic diagram illustrating another sequence of messages arriving at the tail node according to an embodiment of this application;

[0059] Figure 3 is a system architecture diagram of a routing and forwarding system according to an embodiment of this application;

[0060] Figure 4 is a scenario architecture diagram of a routing and forwarding system according to an embodiment of this application;

[0061] Figure 5A is a flowchart illustrating a message forwarding method provided in an embodiment of this application;

[0062] Figure 5B is a format diagram of the header of an SRv6 message provided in an embodiment of this application;

[0063] Figure 5C is a format diagram of a destination option header (DOH) provided in an embodiment of this application;

[0064] Figure 5D is a format diagram of a segment routing header (SRH) provided in an embodiment of this application;

[0065] Figure 6 is a flowchart illustrating another message forwarding method provided in an embodiment of this application;

[0066] Figure 7 is a flowchart illustrating another message forwarding method provided in an embodiment of this application;

[0067] Figure 8 is a schematic diagram of a message forwarding device provided in an embodiment of this application;

[0068] Figure 9 is a schematic diagram of another message forwarding device provided in an embodiment of this application;

[0069] Figure 10 is a schematic diagram of another message forwarding device provided in an embodiment of this application;

[0070] Figure 11 is a schematic diagram of another message forwarding device provided in an embodiment of this application. Detailed Implementation

[0071] The technical solutions in the embodiments of this application will be described below with reference to the accompanying drawings. In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between related objects, indicating that there are three relationships. For example, A and / or B means: A exists alone, A and B exist simultaneously, or B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c means: a, b, c, a and b, a and c, b and c, a, b, and c; where a, b, and c can be single or multiple.

[0072] The embodiments of this application use terms such as "first" and "second" to distinguish objects with similar names, functions, or roles. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or order of execution. In this application, words such as "exemplarily" or "for example" are used to indicate that something is being described as an example, illustration, or illustration. Any embodiment or design described as "exemplarily" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of words such as "exemplarily" or "for example" is intended to present the relevant concepts in a concrete manner.

[0073] In traditional IP networks, Fast Rerouting (FRR) schemes can be deployed to achieve rapid service flow switching. IP FRR, as a routing backup technology, is suitable for service flows in IP networks that are highly sensitive to packet loss and latency. The FRR scheme involves the upper-layer routing system, when determining the transmission path between two nodes in the IP network, first performing inter-protocol routing optimization to determine the primary path and a backup path based on protocol priority. Then, the upper-layer routing system simultaneously provides the primary and backup path information to both nodes. When transmitting packets between the two nodes, if the physical or link layer of the node forwarding the packet detects a primary path failure, it can report the failure to the upper-layer routing system. Upon receiving the primary path failure information, the upper-layer routing system can instruct the node to switch to the backup path for packet forwarding. Therefore, FRR enables IP networks to quickly respond to link failures, thereby restoring normal service flow transmission as quickly as possible.

[0074] Segment routing v6 (SRv6) technology, based on the IPv6 forwarding plane, is a bearer protocol in IP networks. In SRv6 networks, paths with Free Response Rate (FRR) are deployed. For example, taking the node sending the packet as the header node and the node receiving the packet as the tail node, with multiple transmission paths between the header and tail nodes, the header and tail nodes can utilize multiple-send-select-receive technology to achieve packet redundancy protection based on these multiple transmission paths. Specifically, after receiving a packet, the header node copies the packet to obtain multiple copies, and then sends these multiple copies to the tail node through different transmission paths. After receiving multiple copies, the tail node selects one packet to forward. In this way, even if one transmission path fails, the tail node can still receive the same packet from other transmission paths, thus achieving zero packet loss. For details, please refer to the description in draft-ietf-spring-sr-redundancy-protection-03.

[0075] Figure 1 illustrates a path diagram for forwarding packets from a head node to a tail node in an SRv6 network. As shown in Figure 1, there is a first transmission path and a second transmission path between the head node and the tail node. The head node receives the original packet stream and copies it to obtain the first packet stream and the second packet stream. The head node uses the first transmission path to sequentially transmit the packets of the first packet stream to the tail node, and uses the second transmission path to sequentially transmit the packets of the second packet stream to the tail node. The packets transmitted on each transmission path are transmitted in order; 1, 2, 3, and 4 in Figure 1 represent the packet sequence numbers.

[0076] In an ideal scenario, assuming the delay of the first transmission path is less than the delay of the second transmission path, the order in which the packets of the first and second message streams arrive at the tail node can be as shown in Figure 2A. In this ideal case, packets with earlier sequence numbers arrive at the tail node before packets with later sequence numbers in different transmission paths.

[0077] In reality, the transmission delays of each transmission path fluctuate, and the packets received by the tail node may be interleaved. In one example, the order in which packets from the first and second packet streams arrive at the tail node is shown in Figure 2B. In practice, packets with later sequence numbers may arrive at the tail node before packets with earlier sequence numbers. For example, in Figure 2B, the packet with sequence number 2 transmitted by the first transmission path arrives after the packet with sequence number 3 transmitted by the second transmission path.

[0078] The tail node processes and forwards messages sequentially according to their arrival order, and only one message with the same sequence number is forwarded at a time. In the scenario shown in Figure 2A, regardless of which message with the same sequence number the tail node selects, the message with the earlier sequence number always precedes the message with the later sequence number. This ensures that the tail node processes and forwards the earlier message first, followed by the later messages, preventing out-of-order forwarding. However, in the scenario shown in Figure 2B, if the tail node forwards both an earlier-arriving message with a later sequence number and a later-arriving message with an earlier sequence number, out-of-order forwarding will occur. Taking the message with sequence number 2 transmitted via the second transmission path, the message with sequence number 3 transmitted via the second transmission path, and the message with sequence number 2 transmitted via the first transmission path, as shown in Figure 2B, as an example, the three threads A, B, and C of the tail node process these messages in parallel. If thread C processes the message faster, the tail node will choose to process the message with sequence number 2 transmitted via the first transmission path, processed by thread C, instead of the message with sequence number 2 transmitted via the second transmission path, processed by thread A. Thus, after thread B forwards the message with sequence number 3 transmitted via the second transmission path, thread C then forwards the message with sequence number 2 transmitted via the first transmission path, resulting in out-of-order message forwarding.

[0079] In one implementation, locking or reordering can be used to solve the aforementioned out-of-order packet forwarding problem. Locking is a mechanism that preserves order when the tail node selects packets for processing. Reordering, on the other hand, is a mechanism that preserves order when the tail node forwards packets. The following is a brief introduction to these two order-preserving mechanisms:

[0080] In the locking mechanism, the tail node processes packets using a single thread. Specifically, the tail node processes one packet at a time, only processing the next packet after the previous one has been forwarded. Under this mechanism, the tail node will forward the first packet arriving among multiple packets with the same sequence number. Thus, in the case shown in Figure 2B, the tail node will choose to forward the packet with sequence number 2 transmitted via the second transmission path, instead of the packet with sequence number 2 transmitted via the first transmission path. This prevents out-of-order packet forwarding. However, while locking achieves ordered packet forwarding, the single-threaded processing mode severely impacts the tail node's packet processing capacity, significantly reducing the packet forwarding rate.

[0081] In the reordering method, when the tail node processes and selects the packets to be forwarded, it needs to send the packets to the buffer unit. The buffer unit then determines the forwarding order based on the packet sequence number and forwards them sequentially. Thus, in the case shown in Figure 2B, the tail node selects and forwards the packet with sequence number 3 transmitted via the second transmission path and the packet with sequence number 2 transmitted via the first transmission path, and sends them to the buffer unit. The buffer unit determines to forward the packet with sequence number 2 first, then the packet with sequence number 3, based on the sequence number, thus preventing out-of-order packet forwarding. However, this mechanism requires the buffer unit to reorder the packets before forwarding, which not only affects the packet forwarding rate but also increases processing overhead, impacting the tail node's forwarding performance.

[0082] It is evident that both of the above methods affect the packet forwarding rate. Therefore, how to achieve ordered packet forwarding without affecting the packet forwarding rate of the tail node has become an urgent problem to be solved.

[0083] Based on the above description, embodiments of this application provide a message forwarding method. In the scheme of this embodiment, a second node sends multiple message streams, copied from the original message stream, to a first node through multiple transmission paths. Each message stream carries its own path information. The first node distinguishes the transmission paths of the messages based on their path information and then selects messages transmitted along one of those paths for forwarding. In this way, the first node does not need to perform locking or reordering; it only needs to process messages along one transmission path sequentially to achieve ordered message forwarding, thus achieving the goal of ordered message forwarding without affecting the message forwarding rate of the second node.

[0084] The technical solutions provided in this application can be applied to various network architectures and different application scenarios. The network architecture and application scenarios of this application embodiment are described below. Figure 3 is a system architecture diagram of a routing and forwarding system shown in this application embodiment. As shown in Figure 3, the routing and forwarding system includes a source node 301, a destination node 302, and an FRR path 303. The message transmission path between the source node 301 and the destination node 302 includes the FRR path 303, which includes a header node 3031 and a tail node 3032. Between the header node 3031 and the tail node 3032, there are transmission paths A and B.

[0085] In this system, source node 301 sends messages, destination node 302 receives messages, and FRR path 303 implements message redundancy protection. For example, when source node 301 sends a message to destination node 302, and the message reaches the head node 3031 of FRR path 303, the head node 3031 copies the message to obtain multiple copies and forwards these copies to tail node 3032 via transmission paths A and B. Upon receiving the multiple copies, the tail node selects one message from the multiple copies for forwarding.

[0086] In one implementation, the hardware implementation of each node in the routing and forwarding system can be a router. In one example, the router includes a central processing unit (CPU) and a network processor (NP). The CPU is used to implement control plane functions, such as performing configuration management, calculating forwarding tables, and monitoring NPs. The NP is used to implement forwarding plane functions, mainly responsible for packet processing and forwarding. The NP typically operates in a multi-threaded mode to support high-performance forwarding by the router.

[0087] The network architecture described above will be explained below based on a specific application scenario. Figure 4 is a scenario architecture diagram of a routing and forwarding system according to an embodiment of this application. This routing and forwarding system is a vehicle-to-ground backhaul network, which is a communication network used for data transmission between vehicles and a ground control center. As shown in Figure 4, the vehicle-to-ground backhaul system includes an onboard router installed in the vehicle, a millimeter-wave base station and a ground router installed on the ground, and a core network. The onboard router is connected to the millimeter-wave base station via wireless transmission technology, the millimeter-wave base station is connected to the ground router, and the ground router is connected to the core network.

[0088] When the user terminal equipment on the vehicle communicates with the core network, the user terminal's data is transmitted to the onboard router via the in-vehicle wireless access network. The onboard router then transmits the data to the millimeter-wave base station, which in turn transmits it to the ground router, which then transmits the data to the core network. When the vehicle is long, wireless terminal access equipment (customer premises equipment, CPE) connected to the millimeter-wave base station can be installed at both the front and rear of the vehicle. In this way, the data from the onboard router can be transmitted via the CPE at the front of the vehicle to the millimeter-wave base station A, which is closer to the front, and then transmitted to the ground router. Similarly, the data can be transmitted via the CPE at the rear of the vehicle to the millimeter-wave base station B, which is closer to the rear, and then transmitted to the ground router. This means there are two transmission paths between the onboard router and the ground router. During vehicle operation, the distance and angle between the CPE and the ground millimeter-wave base station are constantly changing, and the wireless cell is constantly switching, causing the wireless signal to alternate between the two transmission paths at the front and rear of the vehicle. If data is transmitted through only one transmission path, data transmission will be frequently interrupted, severely affecting data transmission quality. Therefore, SRv6 redundancy protection technology can be deployed on both vehicle-mounted routers and ground routers, meaning that both vehicle-mounted routers and ground routers support multiple transmit and selective receive.

[0089] Taking data transmission from a ground router to a vehicle-mounted router as an example, the ground router can be the head node 3031 in the architecture shown in Figure 3, and the vehicle-mounted router can be the tail node 3032 in the architecture shown in Figure 3. The ground router copies the packet and transmits multiple packets to the vehicle-mounted router via the two transmission paths at the front and rear of the vehicle. The vehicle-mounted router then selects one of the multiple packets and sends it to the user terminal device. (The second paragraph is a repetition of the first and can be omitted.)

[0090] Based on the above network architecture and application scenarios, Figure 5A is a flowchart illustrating a packet forwarding method provided in an embodiment of this application. This packet forwarding method is applied to a second node; for example, the second node can be the head node in the above architecture. The method includes the following steps:

[0091] S501, The second node obtains the original message stream.

[0092] For example, the original message stream is the message stream sent by the source node. The source node sends the message stream to the destination node, and when the message stream is transmitted to the second node, the second node can obtain the original message stream. Multiple transmission paths exist between the second node and the first node, and the second node can transmit the message stream through these multiple paths. This embodiment uses the example of a first transmission path and a second transmission path between the second node and the first node for illustration.

[0093] S502, The second node copies the original message stream to obtain the first message stream and the second message stream.

[0094] Among them, the second node and the first node support multiple send and receive. After the second node obtains the original message stream, it copies the original message stream to obtain the first message stream and the second message stream.

[0095] For example, during the replication process, the second node can add path information to the packets of the first and second packet streams. The packets of the first packet stream include first path information, and the packets of the second packet stream include second path information. The first path information indicates a first transmission path, and the second path information indicates a second transmission path.

[0096] In one implementation, the second node can add path information to the message header so that the first node can determine the message's transmission path when parsing the header. Optionally, the message in this application can be a message of a different network protocol, such as an SRv4 message, an SRv6 message, or other messages.

[0097] Taking an SRv6 message as an example, Figure 5B is a format diagram of the header of an SRv6 message provided in an embodiment of this application. As shown in Figure 5B, the IPv6 header of the SRv6 message includes a segment routing header (SRH), and the second node can add path information to the SRH. For example, the IPv6 header of the SRv6 message also includes a destination options header (DOH), and the second node can also add path information to the DOH.

[0098] Figure 5C is a schematic diagram of the structure of a Destination Option Header (DOH) provided in an embodiment of this application. As shown in Figure 5C, the DOH includes a type-length-value (TLV) field, and path information can be located in the TLV field. The TLV field includes a flag field, and path information can be located in the flag field. For example, the DOH also includes a tag field, a flow ID field, etc.

[0099] Figure 5D is a schematic diagram of the structure of a segment routing header (SRH) provided in an embodiment of this application. As shown in Figure 5D, the SRH includes a flag field, a last entry field, a tag field, and a merging segment field. The flag field is located between the last entry field and the tag field. Path information can be located in the flag field. For example, the flag field includes a path field, which indicates path information.

[0100] For example, during the replication process, the second node can also add multiple-send selective reception information to the packets of the first and second packet streams. This multiple-send selective reception information indicates that the first and second packet streams are obtained by replicating the original packet streams, so as to instruct the first node to selectively receive packets from different paths. For example, the multiple-send selective reception information is located in the merging segment field shown in Figure 5D.

[0101] It is understood that the above are only a few ways to implement path information and multiple-send selective-receive information in SRv6 messages. The specific way to carry path information and multiple-send selective-receive information in messages can be designed based on the message type and format. This application does not limit the specific method.

[0102] For example, the second node can also add flow identifiers and sequence numbers to the packets of the first and second service flows. The flow identifiers of the first and second packet flows are the same as the flow identifiers of the original packet flows, and the sequence numbers are used to indicate the forwarding order of each packet.

[0103] S503, the second node transmits the first message stream to the first node through the first transmission path, and transmits the second message stream to the first node through the second transmission path.

[0104] In one possible embodiment, the second node transmits packets from the first message stream sequentially according to sequence numbers via the first transmission path, and transmits packets from the second message stream sequentially according to sequence numbers via the second transmission path. The second node achieves message redundancy protection by replicating and sending multiple message streams. In this way, the first node can receive multiple messages with the same sequence number. Since each message carries path information, the first node can select and receive multiple messages based on the path information. For example, the first node can select and receive only messages from one transmission path based on the path information. Because the second node transmits messages sequentially according to sequence numbers on a transmission path, the messages on that transmission path also arrive at the first node sequentially according to sequence numbers. Thus, by processing the messages transmitted from one transmission path sequentially, the first node achieves the purpose of message forwarding in order.

[0105] Based on the description of the method steps executed by the second node above, Figure 6 is a flowchart illustrating another message forwarding method provided in this embodiment of the application. This message forwarding method is applied to the first node. For example, the first node can be the tail node in the above architecture. The method includes the following steps: S601, the first node receives multiple messages from the second node.

[0106] Understandably, the second node and the first node support multiple transmit / receive, and there are multiple transmission paths between the two nodes. After the second node obtains the original packet stream from the source node, it copies the original packet stream to obtain the first packet stream and the second packet stream, and transmits the first packet stream to the second node through the first transmission path, and transmits the second packet stream to the second node through the second transmission path.

[0107] In this way, the first node receives multiple messages from the second node, including messages from the first message stream and messages from the second message stream sent by the second node. Any of these messages can be referred to as described in S502 above, and will not be repeated here.

[0108] In one possible embodiment, the first node determines which of the multiple packets to receive based on the multiple transmission and reception information carried by the multiple packets. For example, the first node can select multiple packets based on the flow id carried in the merging segment field of the SRH of the SRv6 packet.

[0109] S602, The first node determines multiple first messages that include first path information from multiple messages.

[0110] In one possible embodiment, when the first node receives multiple packets, it determines whether a packet is transmitted via a first transmission path or a second transmission path based on the path information carried by each packet. Then, the first node selects a packet to be transmitted via one of the transmission paths. In another implementation, the first node selects multiple first packets that include first path information.

[0111] S603, the first node forwards multiple first messages.

[0112] In one possible implementation, the first node processes and forwards multiple first packets sequentially. For example, the first node may remove the first path information from the first packet before forwarding it.

[0113] It is understandable that messages on a transmission path are transmitted in order. The first node only selects messages transmitted on the first transmission path for forwarding, which can achieve message-preserving forwarding without affecting the message forwarding rate of the first node.

[0114] In the above embodiments, the first node selects to forward the first packet transmitted on the first transmission path. However, when the first packet on the first transmission path experiences packet loss, and the packet loss is severe, it can switch to forwarding the second packet transmitted on the second transmission path. Based on this, Figure 7 is a flowchart illustrating another packet forwarding method provided by an embodiment of this application. As shown in Figure 7, the method includes the following steps:

[0115] S701, the first node forwards multiple first messages.

[0116] In this process, when the first node receives multiple messages from the second node, it selects and receives multiple messages based on the multiple-send-selection information of the messages. For example, the first node selects a message transmitted on a transmission path for forwarding. For instance, the first node selects the first message transmitted on the first transmission path for forwarding.

[0117] S702, The first node determines the packet loss rate of multiple first messages.

[0118] In one possible embodiment, the first node can determine the packet loss rate of multiple first packets based on their sequence numbers. For example, the first node can determine the number of lost packets based on the difference between the sequence numbers of two adjacent first packets, and then determine the packet loss rate of the multiple first packets based on the number of lost packets and the total number of packets. For instance, if the sequence number of the previous first packet processed by the first node is 4, and the sequence number of the currently processed first packet is 8, then it can be determined that there are 3 lost packets in the first 8 first packets, and the packet loss rate of the first 8 packets is 37.5%.

[0119] S703. When the packet loss rate of multiple first messages is greater than or equal to a preset threshold, the first node determines multiple second messages including second path information.

[0120] When the packet loss rate of multiple first packets is greater than or equal to a preset threshold, it indicates that the packet loss on the first transmission path is severe, a network failure has occurred on the first transmission path, and the data integrity of the packet stream cannot be guaranteed. In one possible embodiment, the first node switches to the second transmission path and forwards multiple second packets that include second path information. This can effectively reduce the possibility of packet loss, improve the reliability of packet transmission, and thus reduce the probability of packet retransmission.

[0121] The multiple second messages of the second path information may include the second messages received by the first node during the process of receiving multiple first messages of the first transmission path, and may also include the second messages received by the first node after receiving the multiple first messages.

[0122] Furthermore, the sequence numbers of the multiple second messages determined by the first node can be greater than the sequence number of the last sent first message. In the example above, the sequence number of the previous first message processed by the first node is 4, the sequence number of the currently processed first message is 8, and the first node determines that the packet loss rate of the first message is 37.5%. If this packet loss rate is greater than a preset threshold, then the first node determines multiple second messages among the multiple received messages. The multiple second messages determined by the first node can be the received second messages with sequence number 5 and the second messages after 5. In this way, after forwarding the message with sequence number 4, the first node continues to forward the second message with sequence number 5, then forwards the second message with sequence number 6, and so on. For example, if the first node also does not receive the second message with sequence number 5, then the first node can determine the second message with the sequence number closest to sequence number 4 and start processing it, thus ensuring minimal packet loss.

[0123] S704, the first node forwards multiple second messages.

[0124] The first node switches to forwarding multiple second messages on the second transmission path to achieve reliable message transmission.

[0125] For example, when forwarding a second message, the first node may also delete the second path information of the second message before forwarding it.

[0126] In the above embodiments, the first node can select and forward packets based on the path information of multiple packets from the second node. In practical applications, the first node can also forward packets using other selection methods. For example, the first node can also be configured with the following selection methods:

[0127] Example 1: The first node can select and receive multiple packets based on their sequence numbers, regardless of the packet's transmission path. This selection method is suitable for scenarios where strict ordering is not required. The first node selects and forwards multiple target packets from among multiple packets according to the packet reception order, based on the flow identifier and sequence number. The sequence numbers of the multiple target packets are different; that is, the first node selects one packet from multiple packets with the same sequence number for forwarding.

[0128] Example 2: The first node can reorder multiple received packets and select multiple target packets for forwarding based on the reordered reception. This selection method is suitable for scenarios that require strict packet ordering but do not consider forwarding performance.

[0129] In one possible embodiment, when the first node is selecting multiple messages from the second node based on path information, if a preset condition is met, the first node can use other selection methods to select and receive subsequent messages from the second node. For example, the first node continues to receive multiple messages from the second node, and each of these messages includes multiple selection information and path information. However, when the preset condition is met, the first node switches to another selection method to receive the remaining messages. For instance, if the first node receives a non-order-preserving instruction, it determines multiple target messages with different sequence numbers from the remaining messages according to the message reception order and forwards these target messages. Alternatively, if the first node receives a reordering instruction, it reorders the target messages with different sequence numbers from the remaining messages according to their sequence numbers and then forwards them sequentially.

[0130] It is understood that the above embodiments all assume that there is a first transmission path and a second transmission path between the first node and the second node. For example, when there are multiple transmission paths between the first node and the second node, the second node transmits multiple message streams through these multiple transmission paths, where each message stream carries different path information. When the second node receives multiple messages from multiple message streams, it can also distinguish the transmission paths of the messages based on the path information, and thus select one of the transmission paths for forwarding. It is understood that the method by which the first node selects and receives multiple messages transmitted through multiple transmission paths is similar to the selection process described in the above embodiments, except that the number of transmission paths corresponding to the multiple messages is different, and this application embodiment does not limit this.

[0131] The above mainly describes the solution provided by the embodiments of this application from the perspective of the interaction between the first node and the second node. It is understood that, in order to achieve the above functions, the first node and the second node include corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0132] This application embodiment can divide the first node and the second node into functional modules according to the above method example. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. The following description uses the division of functional modules according to each function as an example.

[0133] Figure 8 shows a schematic diagram of a message forwarding device according to the above embodiments, in the case of using integrated units. The device can be a first node or a chip applied to a first node, and includes a receiving unit 801, a processing unit 802, and a sending unit 803. In one possible embodiment, the receiving unit 801 supports the device in executing S601 of the above method embodiments, the processing unit 802 supports the device in executing S602 of the above method embodiments, and the sending unit 802 supports the device in executing S603 of the above method embodiments. In another possible embodiment, the sending unit supports the device in executing S701 and S704 of the above method embodiments, and the processing unit 802 supports the device in executing S702 and S703 of the above method embodiments.

[0134] All relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here in the embodiments of this application.

[0135] Based on hardware implementation, the receiving unit 801 in this application embodiment can be the receiver of the device, the processing unit 802 can be the processor of the device, and the sending unit 803 can be the transmitter of the device. The transmitter can usually be integrated with the receiver as a transceiver. The specific transceiver can also be called a communication interface or interface circuit.

[0136] Figure 9 shows a schematic diagram of another message forwarding device involved in the above embodiments provided in this application. The device can be used as a routing forwarding device or a chip applied to a routing forwarding device. The device includes a processor 912 and a transceiver 913. Further, the device also includes a memory 911 and a bus 914. The processor 912, the memory 911 and the transceiver 913 are connected through the bus 914.

[0137] The processor 912 is used to control and manage the operation of the device. In one possible embodiment, the processor 912 is used to support the device in executing S602 of the above method embodiment, and / or other technical processes described herein. In another possible embodiment, the processor 912 is used to support the device in executing S702 of the above method embodiment, which determines the packet loss rate of multiple first messages, and S703, which determines multiple second messages, and / or other technical processes described herein. The transceiver 913 is used to support the device in communication, such as supporting the device in communicating with a second node.

[0138] In this embodiment, the processor 912 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, etc. The bus 914 may include an address bus, a data bus, a control bus, etc.

[0139] Figure 10 shows a schematic diagram of another message forwarding device involved in the above embodiments, using an integrated unit. This device can be a second node or a chip applied to a second node, and includes a receiving unit 1001, a processing unit 1002, and a sending unit 1003. In one possible embodiment, the receiving unit 1001 supports the device in executing S501 of the above method embodiments, the processing unit 1002 supports the device in executing S502 of the above method embodiments, and the sending unit 1002 supports the device in executing S503 of the above method embodiments.

[0140] All relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here in the embodiments of this application.

[0141] Based on hardware implementation, the receiving unit 1001 in this application embodiment can be the receiver of the device, the processing unit 1002 can be the processor of the device, and the sending unit 1003 can be the transmitter of the device. The transmitter can usually be integrated with the receiver as a transceiver. The specific transceiver can also be called a communication interface or interface circuit.

[0142] Figure 11 shows a schematic diagram of another message forwarding device involved in the above embodiments provided in this application. The device can be used as a routing forwarding device or a chip applied to a routing forwarding device. The device includes a processor 1112 and a transceiver 1113. Furthermore, the device also includes a memory 1111 and a bus 1114. The processor 1112, the memory 1111, and the transceiver 1113 are connected through the bus 1114.

[0143] The processor 1112 is used to control and manage the operation of the device. In one possible embodiment, the processor 1112 is used to support the device in executing S502 of the above method embodiment, and / or other technical processes described herein. The transceiver 1113 is used to support the device in communication, such as supporting the device in communicating with the first node.

[0144] In this embodiment, processor 1112 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, etc. The aforementioned bus 1114 may include an address bus, a data bus, a control bus, etc.

[0145] In another embodiment of this application, a routing and forwarding system is provided, which includes a first node and a second node; wherein the first node may be or include the apparatus provided in FIG8 or FIG9 above, for performing the steps performed by the first node in the above-provided method embodiment; the second node may be or include the apparatus provided in FIG10 or FIG11 above, for performing the steps performed by the second node in the above-provided method embodiment.

[0146] It is understood that all relevant content of each step involved in the above method embodiments can be referenced in the embodiments of the message forwarding device and the embodiments of the routing forwarding system, and will not be repeated here.

[0147] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules or units is merely a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another apparatus, or some features may be ignored or not executed.

[0148] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0149] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. This readable storage medium may include various media capable of storing program code, such as a USB flash drive, external hard drive, read-only memory, random access memory, magnetic disk, or optical disk. Based on this understanding, the technical solution of the embodiments of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product.

[0150] In another embodiment of this application, a chip is provided, which includes a processor and an interface circuit. The processor and the interface circuit are used to support the chip in performing one or more steps executed by the first node in the method embodiments provided above.

[0151] In another embodiment of this application, a different chip is provided, which includes a processor and an interface circuit. The processor and the interface circuit are used to support the chip in performing one or more steps of the second node in the method embodiments provided above.

[0152] In another embodiment of this application, a computer-readable storage medium is provided, which stores a computer program or instructions that, when executed, implement one or more steps performed by the first node in the method embodiment provided above.

[0153] In another embodiment of this application, a different computer-readable storage medium is provided, which stores a computer program or instructions that, when executed, implement one or more steps performed by the second node in the method embodiments provided above.

[0154] In another embodiment of this application, a computer program product is provided, comprising: a computer program (or code, or instructions) that, when run, causes a computer to perform one or more steps as performed by the first node in the method embodiments provided above.

[0155] In another embodiment of this application, a computer program product is provided, comprising: a computer program (or code, or instructions) that, when run, causes a computer to perform one or more steps as performed by the second node in the method embodiments provided above.

[0156] Finally, it should be noted that the above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A packet forwarding method, characterized by, The method includes: The first node receives multiple messages from the second node; each of the multiple messages includes multiple send / receive information, which indicates that the multiple messages are obtained by copying the original message stream; any one of the multiple messages includes first path information or second path information; the first path information indicates a first transmission path between the first node and the second node, and the second path information indicates a second transmission path between the first node and the second node; The first node determines multiple first messages that include the first path information from the multiple messages; The first node forwards the multiple first messages.

2. The method of claim 1, wherein, The method further includes: When the packet loss rate of the plurality of first messages is greater than or equal to a preset threshold, the first node determines a plurality of second messages including the second path information; The first node forwards the multiple second messages.

3. The method of claim 2, wherein, The method further includes: The first node determines the packet loss rate of the plurality of first packets based on the sequence numbers of the plurality of first packets.

4. The method according to any one of claims 1 to 3, characterized in that, The header of each of the multiple messages carries either the first path information or the second path information.

5. The method of claim 4, wherein, The multiple messages are SRv6 messages, and the message header is either a segment routing header (SRH) or a destination option header (DOH).

6. The method of claim 5, wherein, The first path information or the second path information is located in the flag field of the SRH or the DOH.

7. The method of claim 5, wherein, The first path information or the second path information is located in the TLV field of the SRH or the DOH.

8. The method according to any one of claims 1 to 7, characterized in that, Before the first node forwards the plurality of first packets, the method further includes: The first node deletes the first path information from the plurality of first messages.

9. The method according to any one of claims 1 to 8, characterized in that, The multiple-send-select information includes a flow identifier and a sequence number; the flow identifier is the flow identifier of the original message flow.

10. The method according to any one of claims 1 to 9, characterized in that, After the first node forwards the plurality of first packets, the method further includes: The first node continues to receive multiple messages from the second node, and each of the multiple messages received includes the multiple transmit / receive information. Any one of the multiple messages received includes either the first path information or the second path information. When the preset conditions are met: The first node determines multiple target messages from the continuously received multiple messages according to the message reception order, the multiple target messages including different sequence numbers, and forwards the multiple target messages; or, The first node reorders multiple target messages among the received multiple messages according to the sequence number, the multiple target messages including different sequence numbers, and forwards the multiple target messages.

11. A method of forwarding a packet, the method comprising: The method includes: The second node obtains the original message stream; The second node copies the original message stream to obtain a first message stream and a second message stream; the messages in the first message stream carry first path information, and the messages in the second message stream carry second path information. The first path information is used to indicate a first transmission path between the second node and the first node, and the second path information is used to indicate a second transmission path between the second node and the first node. The second node transmits the first message stream through the first transmission path and the second message stream through the second transmission path.

12. The method of claim 11, wherein, The second node replicates the original message stream to obtain the first message stream and the second message stream, and further includes: The second node adds the first path information to the packets of the first message stream and adds the second path information to the packets of the second message stream.

13. The method according to claim 11 or 12, characterized in that, The header of the first message stream carries the first path information, and the header of the second message stream carries the second path information.

14. The method of claim 13, wherein, The packets in the first packet stream and the packets in the second packet stream are SRv6 packets, and the packet header is either a segment routing header (SRH) or a destination option header (DOH).

15. The method of claim 14, wherein, The first path information or the second path information is located in the flag field of the SRH or the DOH.

16. The method of claim 15, wherein, The first path information or the second path information is located in the TLV field of the SRH or the DOH.

17. The method according to any one of claims 11 to 16, characterized in that, The second node replicates the original message stream to obtain the first message stream and the second message stream, and further includes: The second node adds multiple transmission and selective reception information to the packets of the first packet stream and the packets of the second packet stream. The multiple transmission and selective reception information is used to indicate that the first packet stream and the second packet stream are obtained by copying the original packet stream.

18. The method of claim 17, wherein, The multiple-send-select information includes a flow identifier and a sequence number; the flow identifier is the flow identifier of the original message flow.

19. A packet forwarding device, comprising: The message forwarding device, as the first node, includes: A receiving unit is configured to receive multiple messages from a second node; each of the multiple messages includes multiple-send selective-receive information, which indicates that the multiple messages are obtained by copying the original message stream; any one of the multiple messages includes first path information or second path information; the first path information indicates a first transmission path between the first node and the second node, and the second path information indicates a second transmission path between the first node and the second node; A processing unit is configured to determine, from the plurality of packets, a plurality of first packets including the first path information; The sending unit is used to forward the plurality of first messages.

20. The packet forwarding device of claim 19, wherein, The processing unit is further configured to determine a plurality of second packets including the second path information when the packet loss rate of the plurality of first packets is greater than or equal to a preset threshold. The sending unit is also used to forward the plurality of second messages.

21. The packet forwarding device of claim 20, wherein, The processing unit is specifically used to determine the packet loss rate of the plurality of first packets based on the sequence numbers of the plurality of first packets.

22. The packet forwarding device of any of claims 19 to 21, wherein, The header of each of the multiple messages carries either the first path information or the second path information.

23. The packet forwarding device of claim 22, wherein, The multiple messages are SRv6 messages, and the message header is either a segment routing header (SRH) or a destination option header (DOH).

24. The packet forwarding device of claim 23, wherein, The first path information or the second path information is located in the flag field of the SRH or the DOH.

25. The packet forwarding device of claim 23, wherein, The first path information or the second path information is located in the TLV field of the SRH or the DOH.

26. The packet forwarding device of any of claims 19-25, wherein, The sending unit is further configured to delete the first path information from the plurality of first messages.

27. The packet forwarding device of any of claims 19-26, wherein, The multiple-send-select information includes a flow identifier and a sequence number; the flow identifier is the flow identifier of the original message flow.

28. The packet forwarding device of any of claims 19-27, wherein, The receiving unit is further configured to continue receiving multiple messages from the second node, wherein each of the multiple messages received includes the multiple transmit / receive information, and any one of the multiple messages received includes the first path information or the second path information. The processing unit is further configured to, when a preset condition is met, determine multiple target messages from the multiple messages received in the order of message reception, wherein the multiple target messages include different sequence numbers; The sending unit is also used to forward the plurality of target messages; or, The processing unit is further configured to reorder multiple target messages among the continuously received multiple messages according to the sequence number, wherein the multiple target messages include different sequence numbers; The sending unit is also used to forward the plurality of target messages.

29. A packet forwarding device, comprising: The message forwarding device, as the second node, includes: The receiving unit is used to acquire the raw message stream; The processing unit is configured to copy the original message stream to obtain a first message stream and a second message stream; the messages of the first message stream carry first path information, and the messages of the second message stream carry second path information, wherein the first path information is used to indicate a first transmission path between the second node and the first node, and the second path information is used to indicate a second transmission path between the second node and the first node. The sending unit is configured to transmit the first message stream through the first transmission path and the second message stream through the second transmission path.

30. The packet forwarding device of claim 29, wherein, The processing unit is specifically used to add the first path information to the packets of the first packet stream and to add the second path information to the packets of the second packet stream.

31. The packet forwarding device of claim 29 or 30, wherein, The header of the first message stream carries the first path information, and the header of the second message stream carries the second path information.

32. The packet forwarding device of claim 31, wherein, The packets in the first packet stream and the packets in the second packet stream are SRv6 packets, and the packet header is either a segment routing header (SRH) or a destination option header (DOH).

33. The packet forwarding device of claim 32, wherein, The first path information or the second path information is located in the flag field of the SRH or the DOH.

34. The packet forwarding device of claim 33, wherein, The first path information or the second path information is located in the TLV field of the SRH or the DOH.

35. The packet forwarding device of any of claims 29 to 34, wherein, The processing unit is further configured to add multiple-send selective-receive information to the packets of the first packet stream and the packets of the second packet stream, wherein the multiple-send selective-receive information is used to indicate that the first packet stream and the second packet stream are obtained by copying the original packet stream.

36. The packet forwarding device of claim 35, wherein, The multiple-send-select information includes a flow identifier and a sequence number; the flow identifier is the flow identifier of the original message flow.

37. A routing and forwarding device, comprising: The routing and forwarding device includes a processor and a memory, wherein the memory stores instructions, and when the processor executes the instructions, the routing and forwarding device performs the packet forwarding method as described in any one of claims 1-10.

38. A routing and forwarding device, comprising: The routing and forwarding device includes a processor and a memory, wherein the memory stores instructions that, when executed by the processor, cause the routing and forwarding device to perform the packet forwarding method as described in any one of claims 11-18.

39. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed on the device, cause the device to perform the message forwarding method as described in any one of claims 1-10 or 11-18.