Message processing method, device, equipment, product and storage medium

By monitoring link health values ​​during network transmission and dynamically selecting the optimal path for SRv6 header encapsulation and forwarding of packets, the problems of packet loss and inflexible path specification in network transmission are solved, achieving efficient and reliable multi-path packet replication transmission.

CN118802724BActive Publication Date: 2026-01-06CHINA MOBILE COMM LTD RES INST +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410544422.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-04-30
Publication Date
2026-01-06
Estimated Expiration
2044-04-30

AI Technical Summary

Technical Problem

Existing network transmission technologies are prone to packet loss when network quality is poor, and SD-WAN solutions increase packet overhead and cannot flexibly specify forwarding paths, resulting in low transmission efficiency and poor reliability.

Method used

When the robustness value of the initial forwarding link deteriorates, at least two optimal target links are determined based on multiple forwarding links. The original service packets and the replicated packets are encapsulated with SRv6 headers respectively, and forwarded through these links to achieve multi-path packet replication and path selection.

Benefits of technology

It saves message overhead, improves transmission efficiency, and ensures high service reliability through high robustness path selection, achieving multiple protections against packet loss.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118802724B_ABST
    Figure CN118802724B_ABST
Patent Text Reader

Abstract

The application discloses a message processing method, device, equipment, product and storage medium. The method comprises the following steps: when it is monitored that the health value of an initial forwarding link is deteriorated, determining at least two optimal target links based on multiple forwarding links; encapsulating an original service message and a copy message corresponding to the original service message respectively to obtain an encapsulated first message and a second message; and forwarding the first message and the second message through the target links respectively.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of network transmission technology, and in particular to a message processing method, apparatus, electronic device, product and storage medium. Background Technology

[0002] When the amount of data transmitted over a network is too large, network congestion will occur, causing data packets to fail to reach their destination in a timely manner. Quality of Service (QoS) technology and Software Defined Wide Area Network (SD-WAN) solutions are traditional methods to solve congestion.

[0003] However, QoS technology can only rely on existing network quality and cannot proactively improve it. When network quality is poor, it can only guarantee the operation quality of some important services. In addition, network equipment failures, excessive transmission distances, and network signal interference can lead to packet loss. SD-WAN is a dual-transmit and selective-receive technology based on a Virtual Extended Local Area Network (VXLAN). At the sending end, the original service packets are copied and sent out through two links. At the receiving end, the original service packets and the copied packets are integrated into the original packet stream through redundancy removal and out-of-order reordering. The VXLAN header is followed by a User Datagram Protocol (UDP) header and a multiple-transmit selective-receive header to achieve the multiple-transmit selective-receive function.

[0004] However, the existing solutions have the following main problems, specifically: 1) When transmitting data based on QoS technology, packet loss may occur; 2) The SD-WAN solution adds extra overhead to the original packets, cannot flexibly specify forwarding paths, and the receiving end needs to handle packet redundancy and out-of-order reordering, which is quite cumbersome. Summary of the Invention

[0005] To address the existing technical problems, embodiments of this application provide a message processing method, apparatus, device, product, and storage medium.

[0006] The technical solution of this application embodiment is implemented as follows:

[0007] This application provides a message processing method, including:

[0008] When the robustness of the initial forwarding link is detected to be deteriorating, at least two optimal target links are determined based on multiple forwarding links.

[0009] The original service message and the corresponding copy message are encapsulated to obtain the encapsulated first message and second message.

[0010] The first message and the second message are forwarded through the target link respectively.

[0011] In the above scheme, determining at least two optimal target links based on multiple forwarding links includes:

[0012] Obtain the first robustness of each forwarding link in the multiple forwarding links and the second robustness of each device in each forwarding link;

[0013] The robustness value of each forwarding link is determined based on the first robustness and the second robustness.

[0014] Based on the robustness value of each forwarding link, at least two optimal target links are determined.

[0015] In the above scheme, each forwarding link includes at least a first device, a second device, and a third device; obtaining the first robustness of each forwarding link among the multiple forwarding links includes:

[0016] A first value of the robustness of the first device, a second value of the robustness of the second device, a third value of the robustness of the third device, a fourth value of the robustness of the link formed by the first device and the second device, and a fifth value of the robustness of the link formed by the second device and the third device are determined.

[0017] A first average value is determined based on the first value, the second value, and the third value, and a second average value is determined based on the fourth value and the fifth value;

[0018] The first robustness of each forwarding link is determined based on the first average value and the second average value.

[0019] In the above scheme, obtaining the second robustness of each device in each forwarding link includes:

[0020] Obtain the chip robustness, hardware robustness, and software robustness of each device;

[0021] The second robustness is determined based on the chip robustness, the hardware robustness, and the software robustness.

[0022] The method in the above scheme further includes:

[0023] The original service message is subjected to application type identification to obtain the identification result;

[0024] If the identification result indicates that the original service message meets the classification of the application type, the original service message is mirrored to obtain the copied message.

[0025] In the above scheme, the encapsulation of the original service message and the corresponding copy message to obtain the encapsulated first message and second message includes:

[0026] The original service message and the copied message are encapsulated with Internet Protocol version 6 (IP6) segment routing (SRv6) headers to obtain the first message and the second message after SRv6 header encapsulation.

[0027] In the above scheme, the fields of the SRv6 header include at least one of the following:

[0028] Segment Identifier (SRv6 Segment Identifier, SID); the SID is a wide-area optimization marker bit; the SID is used to carry the original service message;

[0029] Application Response Network Identifier (ARNID); the ARNID identifies the instance number of the original service packet and the replicated packet; the ARNID is used to distinguish the real-time traffic of the forwarding link;

[0030] Wide Area Optimization Identifier (Dup); the Dup identifier identifies the wide area optimization message;

[0031] Seq ID (within the group); the Seq ID is used to identify the sequence number within the group of the original service message and the replicated message;

[0032] Group sequence number (Group Id); the Group Id is used to identify the group sequence number of the original service message and the replicated message.

[0033] The method in the above scheme further includes:

[0034] The number of packets sent by the initial forwarding link is counted; the number of packets is based on the ARNID.

[0035] Based on the number of packets, determine whether the robustness of the initial forwarding link has deteriorated;

[0036] When the number of packets decreases, the robustness of the initial forwarding link is determined to have deteriorated.

[0037] In the above scheme, the step of encapsulating the original service message and the copied message with SRv6 headers to obtain the first message and the second message after SRv6 header encapsulation includes:

[0038] The original service message and the copied message are respectively encapsulated with the SID, the ARNID, the Dup, the SeqId, and the Group Id to obtain the first message and the second message after SRv6 header encapsulation.

[0039] The method in the above scheme further includes:

[0040] The first and second packets encapsulated with the SRv6 header are parsed to obtain the sequence numbers of the first and second packets; the sequence number includes the intra-group sequence number and the group sequence number.

[0041] The first and second messages are sorted using the sequence numbers to obtain sorted messages.

[0042] This application also provides a message processing apparatus, including:

[0043] The determination unit is used to determine at least two optimal target links based on multiple forwarding links when the robustness value of the initial forwarding link is detected to deteriorate.

[0044] The encapsulation unit encapsulates the original service message and the corresponding copy message of the original service message to obtain the encapsulated first message and second message.

[0045] The forwarding unit is used to forward the first message and the second message through the target link respectively.

[0046] This application also provides a message processing device, including:

[0047] Memory, used to store executable instructions;

[0048] A processor, when executing executable instructions stored in the memory, implements any step of the method described above.

[0049] This application also provides a computer program product, which, when executed by a processor, implements any step of the method described above.

[0050] This application also provides a computer-readable storage medium storing executable instructions for implementing any step of the method described above when executed by a processor.

[0051] The message processing method, apparatus, electronic device, product, and storage medium provided in this application include: when a deterioration in the robustness value of an initial forwarding link is detected, determining at least two optimal target links based on multiple forwarding links; encapsulating the original service message and the corresponding copied message to obtain encapsulated first and second messages; and forwarding the first and second messages through the target links respectively. The solution in this application, by determining at least two optimal target links based on multiple forwarding links when a deterioration in the robustness value of the initial forwarding link is detected; encapsulating the original service message and the corresponding copied message to obtain encapsulated first and second messages; and forwarding the first and second messages through the target links respectively, saves message overhead and improves forwarding efficiency by carrying multi-path packet replication information in the copied messages; and ensures high service reliability and achieves multiple protections against packet loss through high robustness path selection and coordinated multi-path packet replication. Attached Figure Description

[0052] Figure 1 This is a schematic diagram of multiple transmit / receive selection based on VXLAN;

[0053] Figure 2 This is a schematic diagram of a VXLAN-based message format.

[0054] Figure 3 This is a schematic diagram of a message processing method provided in an embodiment of this application;

[0055] Figure 4 This is a schematic diagram of the message format based on SRv6 in an embodiment of this application;

[0056] Figure 5 This is a schematic diagram of the SRv6-based Smart WAN system according to an embodiment of this application;

[0057] Figure 6 This is a schematic diagram of the controller module in an embodiment of this application;

[0058] Figure 7 This is a schematic diagram illustrating the dual-link processing flow for sending CPE data in an embodiment of this application.

[0059] Figure 8 This is a schematic diagram of the intermediate device processing flow in an embodiment of this application;

[0060] Figure 9 This is a schematic diagram of the CPE receiving process in an embodiment of this application;

[0061] Figure 10 This is a schematic diagram illustrating the two-dimensional serial number sorting of embodiments of this application;

[0062] Figure 11 This is a schematic diagram of a message processing device according to an embodiment of this application;

[0063] Figure 12 This is a schematic diagram of the hardware entity structure of an electronic device in an embodiment of this application. Detailed Implementation

[0064] When the amount of data transmitted over a network is too large, network congestion occurs, causing data packets to fail to reach their destinations in a timely manner. The traditional solution to congestion is QoS (Quality of Service) technology. However, QoS technology relies solely on existing network quality and cannot proactively improve it. When network quality is poor, QoS technology sacrifices essential services for less important ones, ultimately ensuring only a portion of critical services maintain their operational quality. Furthermore, network equipment failures, excessive transmission distances, and network signal interference can also lead to packet loss. Packet loss significantly impacts both network transmission speed and data transmission quality. In online games, high packet loss rates cause lag and latency, affecting the gaming experience. In video conferencing and online education, high packet loss rates can cause video and audio to become desynchronized, hindering learning and communication. These issues cannot be mitigated by ordinary QoS technology.

[0065] To improve data transmission reliability, current SD-WAN solutions employ dual-transmit / selective-receive based on VXLAN. At the sending end, the original service packets are copied and sent across two links. At the receiving end, the original and copied packets are mutually supplemented, and through redundancy removal and out-of-order reordering, they are integrated into the original packet stream. This effectively reduces or even resolves service interruptions caused by packet loss on a single link. Figure 1 As shown, Figure 1 This is a diagram illustrating multiple transmission and selective reception based on VXLAN. The branch CPE device replicates user A's packets and sends them to the enterprise headquarters CPE device together through two fixed WAN links. If one of the two links experiences packet loss, the headquarters CPE recovers the service through redundant packets on the other link to ensure a smooth service experience.

[0066] Existing SD-WAN solutions implement multi-transmission selective reception functionality by adding a proprietary header to the VXLAN packet. For example, this is achieved by adding a proprietary UDP header and a multi-transmission selective reception header after the VXLAN header. Figure 2 As shown, Figure 2 This is a schematic diagram of a VXLAN-based message format; the UDP header identifies multiple-send selective reception, and the source or destination port identifies the message type. The multiple-send selective reception header includes information such as sequence numbers for out-of-order reordering in multiple-send selective reception. In existing solutions, message forwarding paths are fixed and cannot be dynamically specified at the source.

[0067] Existing packet loss prevention technologies have the following drawbacks:

[0068] When network quality is poor, QoS technology only sacrifices some critical services to ensure their quality. For packet loss due to poor link quality, QoS is ineffective. VXLAN-based multiplexing solutions require UDP headers and multiple-send-select-receive headers, adding overhead to the original packets. Furthermore, VXLAN-based multiplexing can only forward packets along fixed paths; the CPE at the end cannot perceive the end-to-end path and cannot flexibly specify forwarding paths. At the receiving end, VXLAN-based multiplexing solutions need to handle packet redundancy and out-of-order reordering.

[0069] In summary, the existing solution needs further improvement due to issues with cost, inflexibility, and functionality.

[0070] Based on this, embodiments of this application provide a message processing method applied to a message processing device. The functions implemented by this method can be achieved by a processor in an electronic device calling program code. Of course, the program code can be stored in a computer storage medium. Therefore, the electronic device includes at least a processor and a storage medium. As an example, the electronic device can be a mobile phone, computer, terminal, information transceiver, tablet device, personal digital assistant, etc.

[0071] Figure 3 This application provides a schematic diagram of a message processing method flow according to an embodiment of the present application; as shown below. Figure 3 As shown, the method includes:

[0072] Step 301: When the robustness value of the initial forwarding link is detected to deteriorate, at least two optimal target links are determined based on multiple forwarding links;

[0073] Step 302: Encapsulate the original service message and the corresponding copy message to obtain the encapsulated first message and second message.

[0074] Step 303: Forward the first message and the second message through the target link respectively.

[0075] In this embodiment, the message processing method can be applied to a WAN system and / or a cloud private network system. The WAN system can be determined according to the actual situation and is not limited here. As an example, the WAN system can be an SD-WAN system and / or an SRv6-based intelligent WAN system. The WAN system may include customer premises equipment (CPE), gateway equipment (POP), provider edge equipment (PE), and controller. In practical applications, the source CPE can be denoted as CPE1; the POPs connected to CPE1 can be denoted as POP1, POP2, etc.; the PEs connected to POP1 can be denoted as PE1; the PEs connected to POP2 can be denoted as PE3; the end CPE can be denoted as CPE2; the POPs connected to CPE2 can be denoted as POP3, POP4, etc.; the PEs connected to POP3 can be denoted as PE2; the PEs connected to POP4 can be denoted as PE4; PE1 can be connected to PE2 and PE4 respectively; PE3 can be connected to PE2; the controller is connected to CPE1, POP1, POP2, PE1, PE3, PE2, PE4, POP3, POP4, and CPE2 respectively. The controller can be divided into a message statistics module, a calculation module, a path distribution module, and a message storage module. Among them, the message statistics module mainly completes the message collection of CPE, POP, and PE based on ARN ID. The message storage module is used for message storage and recovery. The path distribution module analyzes and compares the overall robustness of each forwarding path.

[0076] In step 301, the initial forwarding link can be determined according to the actual situation, and is not limited here. As an example, the initial forwarding link can be the current forwarding link.

[0077] The robustness value can be determined according to the actual situation and is not limited here. As an example, the robustness value may include the health value and the stability value.

[0078] The specific circumstances under which the robustness value of the initial forwarding link is detected to deteriorate can be determined based on the actual situation and are not limited here. As an example, the detection of a deterioration in the robustness value of the initial forwarding link may indicate that packet loss has occurred in the initial forwarding link.

[0079] The specific determination process for identifying at least two optimal target links based on multiple forwarding links can be determined according to actual circumstances and is not limited here. As an example, the process of identifying at least two optimal target links based on multiple forwarding links may include: obtaining the first robustness of each forwarding link and the second robustness of each device in each forwarding link; determining the robustness value of each forwarding link based on the first robustness and the second robustness; and determining at least two optimal target links based on the robustness value of each forwarding link.

[0080] In step 302, the original service message and the corresponding copy message can be determined according to the actual situation, and are not limited here. As an example, the original service message can be the message corresponding to the original data packet at the source CPE, which can be simply referred to as the original message; the corresponding copy message can be the message copied from the original data packet at the source CPE.

[0081] The original service message and its corresponding copy message are encapsulated separately to obtain the encapsulated first and second messages. The specific encapsulation process can be determined according to the actual situation and is not limited here. As an example, encapsulating the original service message and its corresponding copy message to obtain the encapsulated first and second messages may include: encapsulating the original service message and the copy message with Internet Protocol version 6 (IP6) segment routing SRv6 headers to obtain the SRv6 header-encapsulated first and second messages. Here, the original service message can be abbreviated as the original message; the first message can be understood as the encapsulated original message; and the second message can be understood as the encapsulated copy message.

[0082] In step 303, forwarding the first packet and the second packet through the target link can be understood as forwarding the first packet and the second packet through the optimal path respectively; wherein, the target link can be determined according to the actual situation, and is not limited here. As an example, the target link can be understood as the optimal path.

[0083] This application, when the robustness value of the initial forwarding link is detected to deteriorate, determines at least two optimal target links based on multiple forwarding links; encapsulates the original service packet and the corresponding copy packet to obtain the encapsulated first packet and second packet; forwards the first packet and second packet through the target links respectively, that is, by carrying multi-path packet replication information through the copy packet, message overhead is saved and forwarding efficiency is improved; and through path selection with high robustness value and coordinated multi-path packet replication, the high reliability of the service is guaranteed, and multiple protections against packet loss are achieved.

[0084] In one embodiment, determining at least two optimal target links based on multiple forwarding links includes:

[0085] Obtain the first robustness of each forwarding link in the multiple forwarding links and the second robustness of each device in each forwarding link;

[0086] The robustness value of each forwarding link is determined based on the first robustness and the second robustness.

[0087] Based on the robustness value of each forwarding link, at least two optimal target links are determined.

[0088] In this embodiment, the specific process of obtaining the first robustness of each of the multiple forwarding links can be determined according to the actual situation and is not limited here. As an example, each forwarding link includes at least a first device, a second device, and a third device; obtaining the first robustness of each of the multiple forwarding links may include: determining a first value of the robustness of the first device, a second value of the robustness of the second device, a third value of the robustness of the third device, a fourth value of the robustness of the link formed by the first device and the second device, and a fifth value of the robustness of the link formed by the second device and the third device; determining a first average value based on the first value, the second value, and the third value, and determining a second average value based on the fourth value and the fifth value; and determining the first robustness of each forwarding link according to the first average value and the second average value.

[0089] The specific process for obtaining the second robustness of each device in each forwarding link can be determined according to the actual situation and is not limited here. As an example, obtaining the second robustness of each device in each forwarding link may include: obtaining the chip robustness, hardware robustness, and software robustness of each device; and determining the second robustness based on the chip robustness, hardware robustness, and software robustness.

[0090] The specific determination process for determining the robustness value of each forwarding link based on the first robustness and the second robustness can be determined according to the actual situation and is not limited here. As an example, determining the robustness value of each forwarding link based on the first robustness and the second robustness can be done by adding the value of the first robustness and the value of the second robustness to obtain the robustness value of each forwarding link.

[0091] The specific determination process for identifying at least two optimal target links based on the robustness value of each forwarding link can be determined according to actual circumstances and is not limited here. As an example, the process of identifying at least two optimal target links based on the robustness value of each forwarding link can be to sort the robustness values ​​of each forwarding link to obtain at least two optimal target links with good robustness values; wherein, the sorting includes sorting from low to high or from high to low.

[0092] As an example, the robustness of links and devices in the SD-WAN system and cloud private network system is dynamically monitored. The original data packets are copied into original and replicated packets at the source CPE. The controller dynamically selects the two most robust links based on the actual physical network status to distribute the original and replicated packets.

[0093] In one embodiment, each forwarding link includes at least a first device, a second device, and a third device; obtaining the first robustness of each forwarding link among the plurality of forwarding links includes:

[0094] A first value of the robustness of the first device, a second value of the robustness of the second device, a third value of the robustness of the third device, a fourth value of the robustness of the link formed by the first device and the second device, and a fifth value of the robustness of the link formed by the second device and the third device are determined.

[0095] A first average value is determined based on the first value, the second value, and the third value, and a second average value is determined based on the fourth value and the fifth value;

[0096] The first robustness of each forwarding link is determined based on the first average value and the second average value.

[0097] In this embodiment, each forwarding link includes at least a first device, a second device, and a third device; wherein the first device, the second device, and the third device can be determined according to actual conditions, and are not limited here. As an example, the first device can be referred to as Device1; the first device can be referred to as Device2; and the first device can be referred to as Device3.

[0098] The first value of the robustness of the first device, the second value of the robustness of the second device, and the third value of the robustness of the third device can all be determined according to the actual situation, and are not limited here. As an example, the first value of the robustness of the first device can be denoted as HealthD1; the second value of the robustness of the second device can be denoted as HealthD2; and the third value of the robustness of the third device can be denoted as HealthD3.

[0099] The fourth value of the robustness of the link formed by the first device and the second device, and the fifth value of the robustness of the link formed by the second device and the third device, can be determined according to the actual situation and are not limited here. As an example, the fourth value of the robustness of the link formed by the first device and the second device can be denoted as HealthL12; the fifth value of the robustness of the link formed by the second device and the third device can be denoted as HealthL23.

[0100] Determining the first average value based on the first value, the second value, and the third value can be understood as calculating the average value of HealthD1, HealthD2, and HealthD3, and using this average value as the first average value.

[0101] Determining the second average value based on the fourth and fifth values ​​can be understood as calculating the average value of HealthL12 and HealthL23, and using this average value as the second average value.

[0102] The specific determination process for determining the first robustness of each forwarding link based on the first average value and the second average value can be determined according to the actual situation and is not limited here. As an example, determining the first robustness of each forwarding link based on the first average value and the second average value can be done by adding the first average value and the second average value to obtain the first robustness of each forwarding link; wherein, the first robustness can be denoted as HealthS1; the determination process of HealthS1 can refer to the following formula (1):

[0103] HealthS1=(HealthD1+HealthD2+HealthD3) / 3+(HealthL12+HealthL23) / 2 (1)

[0104] In practical applications, it is assumed that the total forwarding path S1 consists of Device1-Device2-Device3. Then the overall forwarding path robustness is determined by formula (1); where the full score is 100 points. The link robustness score of 100 points can be determined by factors such as the status of the link cable and congestion. For example, if there is packet loss in the link, the robustness score will be deducted.

[0105] In one embodiment, obtaining the second robustness of each device in each forwarding link includes:

[0106] Obtain the chip robustness, hardware robustness, and software robustness of each device;

[0107] The second robustness is determined based on the chip robustness, the hardware robustness, and the software robustness.

[0108] In this embodiment, the specific determination process for the second robustness based on the chip robustness, hardware robustness, and software robustness can be determined according to actual circumstances and is not limited here. As an example, assuming that the device robustness score of 100 points can be composed of 30 points for core chip robustness, 30 points for other hardware robustness, and 40 points for software robustness, for example, if the main core chip experiences packet loss based on ARN ID, points will be deducted.

[0109] In one embodiment, the method further includes:

[0110] The original service message is subjected to application type identification to obtain the identification result;

[0111] If the identification result indicates that the original service message meets the classification of the application type, the original service message is mirrored to obtain the copied message.

[0112] In this embodiment, the application type identification of the original service message, and the resulting identification, can be understood as performing application type identification on the original service message to obtain a classification result indicating whether the original service message meets or does not meet the application type classification. The application type can be determined according to actual circumstances and is not limited here. As an example, the application type may include a 5-tuple classification based on Layer 3 and 4 header information and / or a DPI application type classification based on Layer 7 content information. The 5-tuple classification may include source IP, destination IP, protocol type, source port, and destination port.

[0113] If the identification result indicates that the original service message meets the classification of the application type, then mirroring the original service message to obtain the copied message can be understood as mirroring the original service message to obtain the copied message, provided that the identification result indicates that the original service message meets the classification of the application type.

[0114] In practical applications, ports that selectively send and receive data need to perform application identification on received service packets. Application identification supports 5-tuple classification based on Layer 3 and 4 header information (source IP, destination IP, protocol type, source port, destination port) and DPI application type classification based on Layer 7 content information. Then, an ARN ID, GroupID, and Seq are assigned to the packet. Only packets that meet the application classification requirements are copied within the device. The sending end copies and mirrors the original service packets that meet the conditions. The device then has two copies of the packet: one original packet and one copied packet.

[0115] In one embodiment, the step of encapsulating the original service message and the corresponding copy message to obtain the encapsulated first message and second message includes:

[0116] The original service message and the copied message are encapsulated with Internet Protocol version 6 (IP6) segment routing SRv6 headers to obtain the first message and the second message after SRv6 header encapsulation.

[0117] The message format of the SRv6 header can be determined according to the actual situation and is not limited here. As an example, the message format of the SRv6 header may include version, TC, escape sequence, Flowable escape sequence to ARN ID, payload, next header, hop count limit, source IP address, destination IP address, SRv6 SRH header, SRv6 Segment List, and payload.

[0118] The fields of the SRv6 header can be determined according to the actual situation and are not limited here. As an example, the fields of the SRv6 header may include at least one of the following: SID; the SID is a wide area optimization flag bit; the SID is used to carry the original service packet; ARNID; the ARNID identifies the instance number of the original service packet and the replicated packet; the ARNID is used to distinguish the real-time traffic of the forwarding link; Dup; the Dup identifies the wide area optimization packet; Seq Id; the Seq Id is used to identify the intra-group sequence number of the original service packet and the replicated packet; Group Id; the Group Id is used to identify the group sequence number of the original service packet and the replicated packet.

[0119] The specific encapsulation process of performing SRv6 segment routing header encapsulation on the original service message and the replicated message to obtain the first and second messages after SRv6 header encapsulation can be determined according to the actual situation and is not limited here. As an example, the SRv6 header encapsulation on the original service message and the replicated message to obtain the first and second messages after SRv6 header encapsulation may include: encapsulating the SID, ARNID, Dup, Seq Id, and Group Id on the original service message and the replicated message respectively to obtain the first and second messages after SRv6 header encapsulation.

[0120] In one embodiment, the fields of the SRv6 header include at least one of the following:

[0121] SID; the SID is a wide-area optimized marker bit; the SID is used to carry the original service message;

[0122] ARNID; the ARNID identifies the instance number of the original service message and the replicated message; the ARNID is used to distinguish the real-time traffic of the forwarding link;

[0123] Dup; the Dup identifier is the wide-area optimized message;

[0124] Seq ID; The Seq ID is used to identify the group sequence number of the original service message and the replicated message;

[0125] Group ID; The Group ID is used to identify the group sequence number of the original service message and the replicated message.

[0126] In this embodiment, the SID can be determined according to the actual situation, and is not limited here. As an example, the SID can be a 128-bit SID; the 128-bit SID can include Locator, Function, Dup, Seq, and GroupID; wherein, Dup, Seq, and GroupID are collectively referred to as Arguments.

[0127] The original service message can be understood as the source message information; as an example, 30 bits of the SID can be used as a wide-area optimization marker bit to carry the source message information.

[0128] The ARNID identifies the instance number of the original service packet and the replicated packet; the ARNID identifier is 20 bits long. The 20 bits of the flow label are reused. The ARNID is used to distinguish real-time traffic on the forwarding link; different ARNIDs plus the assigned sequence number can uniquely identify a packet. As an example, the ARN ID can be identified as a packet instance number, with a length of 20 bits. The 20 bits of the flow label are reused. The ARNID is mainly used to distinguish real-time traffic; different ARNIDs plus the assigned sequence number can uniquely identify a packet. In practical applications, the ARNID can also be written as ARN ID.

[0129] The Dup identifier is a wide area optimization (WAN) message; its length is 2 bits, with 11 indicating a WAN optimization message, for example, bits 31 and 30. As an example, Dup: length is 2 bits, WAN optimization flag, 11 indicates a WAN optimization message, for example, bits 31 and 30.

[0130] The Seq Id is used to identify the intra-group sequence number of the original service message and the replicated message; the intra-group sequence number can be determined according to the actual situation and is not limited here. As an example, the intra-group sequence number can be denoted as 1-N, which is configurable and has a length of 12 bits, representing the intra-group sequence number of the message. It is used for the intra-group sorting of received messages. In practical applications, the Seq Id can also be written as SeqId.

[0131] The Group Id is used to identify the group sequence number of the original service message and the replicated message. The group sequence number can be determined according to actual circumstances and is not limited here. As an example, the group sequence number can be denoted as 1-M, with a length of 16 bits, and is used for sorting the received message groups. In practical applications, the Group Id can also be written as GroupID.

[0132] In practical applications, 30 bits of the SID can be used as a wide-area optimization flag bit to carry source message information.

[0133] ARN ID: Can be used as a packet instance number, with a length of 20 bits. It reuses the 20 bits of the flow label. The ARN ID is mainly used to distinguish real-time traffic; a different ARN ID plus the assigned sequence number can uniquely identify a packet.

[0134] Dup: The length is 2 bits, which is the wide area optimization flag. 11 indicates a wide area optimization message, such as bit31 or bit30.

[0135] SeqId: Group sequence number (configurable from 1 to N), 12 bits in length, the group sequence number of the message. Used for group ordering of received messages.

[0136] GroupID: Group sequence number (1-M), 16 bits in length, the group sequence number of the message. Used for sorting received message groups.

[0137] In one embodiment, the method further includes:

[0138] The number of packets sent by the initial forwarding link is counted; the number of packets is based on the ARNID.

[0139] Based on the number of packets, determine whether the robustness of the initial forwarding link has deteriorated;

[0140] When the number of packets decreases, the robustness of the initial forwarding link is determined to have deteriorated.

[0141] In this embodiment, the number of messages is based on the ARNID statistics, which can be understood as the message statistics module in the controller mainly completing the collection of messages from CPE, POP and PE based on ARN ID.

[0142] The reduction in the number of messages can be determined based on the actual situation and is not limited here. As an example, the reduction in the number of messages can be understood as the existence of packet loss.

[0143] In practical applications, the sending and receiving end devices CPE1 and CPE2 enable dual-path forwarding and begin sending and receiving multiple packets. CPE1 and CPE2 periodically report packet statistics based on ARN ID (including packet loss and forwarding statistics within the device's chip based on ARN ID) and robustness values ​​to the controller. Intermediate POP and PE devices enable packet loss mitigation as needed and periodically report packet statistics and robustness values ​​based on ARN ID. The sending CPE reports the number of packets based on ARN ID and its own robustness value (default maximum score of 100) to the controller. Simultaneously, the CPE mirrors some critical packets to the Smart WAN controller for critical packet recovery.

[0144] In one embodiment, the step of encapsulating the original service message and the copied message with SRv6 headers to obtain the first message and the second message after SRv6 header encapsulation includes:

[0145] The original service message and the copied message are respectively encapsulated with the SID, the ARNID, the Dup, the SeqId, and the Group Id to obtain the first message and the second message after SRv6 header encapsulation.

[0146] In this embodiment of the application, for ease of understanding, examples are provided, such as two optimal forwarding paths CPE1-PoP1-PE1-PE2-PoP3-CPE2 and CPE1-PoP1-PE1-PE4-PoP4-CPE2. These form (SIDCPE1, SIDPOP1, SIDPE1, SIDPE2, SIDPOP3, SIDCPE2) and (SIDCPE1, SIDPOP1, SIDPE1, SIDPE4, SIDPOP4, SIDCPE2). The original message encapsulates the multiple-send selection information and the forwarding path in the SRv6 header and sends it through the forwarding path (i.e., the link corresponding to the routing outgoing interface). The first message contains Id1 Dup Seq1 GroupID SIDCPE1, SIDPOP1, SIDPE1, SIDPE2, SIDPOP3, and SIDCPE2. The duplicate message encapsulates the multiple-send / select-receive information and flexible forwarding path in the SRv6 header and sends it through the duplicate packet forwarding path (i.e., other links besides the lookup forwarding path). The second message contains Id1Dup Seq1 GroupID SIDCPE1, SIDPOP1, SIDPE1, SIDPE4, SIDPOP4, and SIDCPE2.

[0147] In one embodiment, the method further includes:

[0148] The first and second packets encapsulated with the SRv6 header are parsed to obtain the sequence numbers of the first and second packets; the sequence number includes the intra-group sequence number and the group sequence number.

[0149] The first and second messages are sorted using the sequence numbers to obtain sorted messages.

[0150] In this embodiment, the sequence number includes the intra-group sequence number and the group sequence number; the intra-group sequence number can be denoted as Seq Id, which can also be denoted as SeqID; the group sequence number can be denoted as Group Id, which can also be denoted as GroupID.

[0151] Parsing the first and second messages encapsulated with the SRv6 header to obtain their sequence numbers can be understood as parsing the first and second messages encapsulated with the SRv6 header to obtain their intra-group sequence number and group sequence number.

[0152] The sorting of the first and second messages using the sequence number to obtain the sorted messages can be understood as sorting the first and second messages using the intra-group sequence number and group sequence number of the first and second messages to obtain the sorted messages.

[0153] In practical applications, with packet loss immunity enabled, the system identifies the SRv6 and IPv6 headers. By parsing the wide area optimization Dup tag (bits 31 and 30) to be 11, it obtains the ARN ID field of the flow label and bits 2-29 of the SID to get the Seq and GroupID sequence number information. It then reports the number of packets based on the ARN ID and the robustness value of the device (default maximum score of 100) to the controller.

[0154] Since the WAN-optimized originating message carries an SRv6 header identifying it as WAN-optimized, during SRv6 packet reception, by parsing the WAN-optimized Dup flag bits 31 and 30 as 11, the ARN ID field of the flow label and bits 2-29 of the SID are obtained, yielding the Seq intra-group sequence number M and group sequence number N. The received message is first sorted inter-group, then intra-group, and finally the message PACKET[M][N] is sent from the transmitting port; where M and N can be determined according to actual conditions and are not limited here.

[0155] For ease of understanding, the example message processing method here is specifically a wide-area optimization method based on SRv6 flexible path forwarding.

[0156] This application proposes a dynamic wide-area optimization technology based on SRv6 and high-robustness path forwarding. It dynamically monitors the link and device robustness of the SD-WAN system and cloud private network system. At the source CPE, the original data packet is copied into original and copied packets. The controller dynamically selects two links with better robustness based on the actual physical network status to distribute the original and copied packets. The receiving CPE rearranges the sequences using two-dimensional sequence numbers, thus achieving a streamlined and flexible wide-area optimization technology. The Smart WAN controller's storage module can also store the original packets to recover lost packets.

[0157] The entire system requires CPE, POP, and PE devices to periodically report their respective statistical information, while achieving end-to-end system connectivity through SRv6. The entire solution fully utilizes existing fields in the IP and SRv6 headers, giving meaning to multi-path packet replication. Compared to the VXLAN solution, it reduces packet overhead and packet processing steps, while enabling flexible path selection. Furthermore, the entire solution is orthogonal to the original QoS guarantee function and does not conflict with it.

[0158] The entire solution is based on ARNID and has advantages such as privacy, security, scalability and maintainability.

[0159] 1. Message format.

[0160] The message format based on SRv6 is as follows: Figure 4 As shown, Figure 4 This is a schematic diagram of the message format based on SRv6 in an embodiment of this application.

[0161] 30 bits of the SID can be used as a wide-area optimization marker to carry source message information.

[0162] ARN ID: Can be used as a packet instance number, with a length of 20 bits. It reuses the 20 bits of the flow label. The ARN ID is mainly used to distinguish real-time traffic; a different ARN ID plus the assigned sequence number can uniquely identify a packet.

[0163] Dup: The length is 2 bits, which is the wide area optimization flag. 11 indicates a wide area optimization message, such as bit31 or bit30.

[0164] SeqId: Group sequence number (configurable from 1 to N), 12 bits in length, the group sequence number of the message. Used for group ordering of received messages.

[0165] GroupID: Group sequence number (1-M), 16 bits in length, the group sequence number of the message. Used for sorting received message groups.

[0166] 2. Implementation Process. This implementation process can be combined with... Figure 5 To understand, Figure 5 This is a schematic diagram of the SRv6-based Smart WAN system according to an embodiment of this application.

[0167] The sending and receiving end devices CPE1 and CPE2 enable dual-path forwarding and begin sending and receiving multiple packets. CPE1 and CPE2 periodically report packet statistics (including packet loss and forwarding statistics within the device's chip based on ARN ID) and robustness values ​​to the controller. Intermediate POP and PE devices enable packet loss mitigation as needed and periodically report packet statistics and robustness values ​​based on ARN ID. Finally, the receiving end CPE sorts packets using the carried sequence number. The controller completes packet collection and robustness value assessment for each network element. Based on high robustness, the controller calculates the optimal path and issues an SRv6 policy to the CPE to adjust the path. CPE, POP, PE, and the controller achieve optimal packet forwarding based on ARN ID, reducing packet loss. The Smart WAN controller can also store original packets for recovery of lost packets.

[0168] First, the robustness of the overall forwarding path.

[0169] Assume the total forwarding path S1 consists of Device1-Device2-Device3. Then the total forwarding path robustness HealthS1 = (HealthD1 + HealthD2 + HealthD3) / 3 + (HealthL12 + HealthL23) / 2, with a maximum score of 100. Device robustness, out of 100, can be composed of 30 points for core chip robustness, 30 points for other hardware robustness, and 40 points for software robustness. For example, if the main core chip experiences packet loss based on ARN ID, points will be deducted. Link robustness, also out of 100, can be determined by factors such as link cable status and congestion. For example, if the link experiences packet loss, points will be deducted.

[0170] Second, the controller.

[0171] The controller can be divided into a message statistics module, a calculation module, a path distribution module, and a message storage module. This content can be combined with... Figure 6 To understand, Figure 6 This is a schematic diagram of the controller module in an embodiment of this application.

[0172] The message statistics module primarily collects messages from CPE, POP, and PE based on ARN ID. The message storage module is used for message storage and recovery.

[0173] The path assignment module analyzes and compares the overall robustness of each forwarding path to find the two forwarding paths with the most ideal robustness. For example, the two optimal forwarding paths are CPE1-PoP1-PE1-PE2-PoP3-CPE2 and CPE1-PoP1-PE1-PE4-PoP4-CPE2, forming (SIDCPE1, SIDPOP1, SIDPE1, SIDPE2, SIDPOP3, SIDCPE2) and (SIDCPE1, SIDPOP1, SIDPE1, SIDPE4, SIDPOP4, SIDCPE2).

[0174] Third, the sending end CPE device.

[0175] This includes original packet identification, in-device replication of the original packets, and SRv6 packet encapsulation and forwarding. The CPE reports the number of packets based on the ARN ID and the device's robustness score (default maximum of 100) to the controller. Simultaneously, the CPE mirrors some critical packets to the SmartWAN controller for critical packet recovery. This content can be combined with... Figure 7 To understand, Figure 7 This is a schematic diagram illustrating the dual-link processing flow for sending CPEs according to an embodiment of this application.

[0176] (1) Original message identification.

[0177] For ports that selectively send and receive data, application identification is required for received service packets. Application identification supports 5-tuple classification based on Layer 3 and 4 header information (source IP, destination IP, protocol type, source port, destination port) and DPI application type classification based on Layer 7 content information. Then, an ARN ID, GroupID, and Seq are assigned to the packet.

[0178] (2) Copying the original message within the device.

[0179] Only messages that meet the application classification requirements will be copied within the device. The sending end will mirror the original service messages that meet the conditions. The device will have two copies of the messages: one original message and one copied message.

[0180] (3) SRv6 message encapsulation and forwarding.

[0181] The original message and the copied message are encapsulated with SRv6 headers and then sent.

[0182] a) The original message encapsulates the multiple selection information and forwarding path in the SRv6 header and sends it through the forwarding path (i.e., the link corresponding to the outgoing interface of the route).

[0183] Id1 Dup Seq1 GroupID SIDCPE1, SIDPOP1, SIDPE1, SIDPE2, SIDPOP3, SIDCPE2.

[0184] b) The duplicate message encapsulates the multiple selectable information and flexible forwarding path in the SRv6 header and sends it through the duplicate packet forwarding path (i.e., other links besides the lookup forwarding path).

[0185] Id1 Dup Seq1 GroupID SIDCPE1, SIDPOP1, SIDPE1, SIDPE4, SIDPOP4, SIDCPE2.

[0186] Fourth, intermediate POP and PE equipment.

[0187] With packet loss immunity enabled, the system identifies the SRv6 and IPv6 headers. By parsing the WAN-optimized Dup tag (bits 31 and 30) to be 11, it obtains the ARN ID field of the flow label and bits 2-29 of the SID to get the Seq and GroupID sequence number information. It then reports the number of packets based on the ARN ID and the device's robustness score (default maximum 100) to the controller. This content can be combined with... Figure 8 To understand, Figure 8 This is a schematic diagram of the intermediate device processing flow in an embodiment of this application.

[0188] Fifth, the receiving end CPE.

[0189] The receiving CPE completes packet loss prevention message identification, direct message storage, and message transmission. It also reports the number of messages based on the ARN ID and the device's robustness score (default maximum of 100) to the controller. This content can be combined with... Figure 9 To understand, Figure 9 This is a schematic diagram of the CPE receiving process in an embodiment of this application.

[0190] Since the WAN-optimized originating message carries an SRv6 header identifying it as WAN-optimized, during SRv6 packet reception, by parsing the WAN-optimized Dup flag bits 31 and 30 as 11, the ARN ID field of the flow label and bits 2-29 of the SID are obtained, yielding the Seq intra-group sequence number M and group sequence number N. Received messages are first sorted inter-group, then intra-group, and finally the PACKET[M][N] message is sent from the transmitting port. This content can be combined with... Figure 10 To understand, Figure 10 This is a schematic diagram illustrating the two-dimensional numbering of embodiments of this application.

[0191] In this application, the sending CPE calculates the robustness value of its device and supports a flexible packet loss mitigation scheme for SRv6. The sending CPE performs intra-device packet replication at the source end, obtaining the original packet and the replicated packet. At the source end, it dynamically specifies two forwarding paths with optimal robustness using the list in the SRv6 SRH header, and encapsulates and sends the original packet and replicated packet separately. Simultaneously, it reports the packet count based on the ARN ID and the robustness value of its device to the controller.

[0192] In this application, intermediate devices POP and PE, when packet loss resistance is enabled, support reporting ARNID-based packet counts and the robustness value of the device to the controller.

[0193] In this application, the end-point CPE supports the SRv6 anti-packet loss scheme, supports the reordering of two-dimensional sequence number messages, and reports the message count based on ARN ID and the robustness value of the device to the controller.

[0194] In this application, the controller supports collecting packet statistics of ARN IDs sent by CPE, POP, and PE, and also supports full-path robustness calculation and tuning. It can also be used as a packet storage to recover lost packets.

[0195] In this application, by utilizing existing IPv6 header and SRv6 header information, multiplexed packet replication information is carried, saving packet overhead and improving forwarding efficiency.

[0196] In this application, the overall solution provides multiple safeguards against packet loss. Highly robust path selection and controller-coordinated multi-path packet replication ensure high service reliability.

[0197] In this application, the overall solution is based on ARNID and has advantages such as privacy, security, scalability, and maintainability.

[0198] To implement the method of this application embodiment, this application embodiment also provides a message processing apparatus 1100, which is disposed on a message processing device. Figure 11 This is a schematic diagram of a message processing device according to an embodiment of this application; as shown Figure 11 As shown, it includes:

[0199] The determination unit 1101 is used to determine at least two optimal target links based on multiple forwarding links when the robustness value of the initial forwarding link is detected to deteriorate.

[0200] Encapsulation unit 1102 encapsulates the original service message and the copy message corresponding to the original service message respectively to obtain the encapsulated first message and second message.

[0201] The forwarding unit 1103 is used to forward the first message and the second message through the target link respectively.

[0202] Here, in one embodiment, the determining unit 1101 is further configured to obtain a first robustness of each forwarding link in the plurality of forwarding links and a second robustness of each device in each forwarding link; determine a robustness value of each forwarding link based on the first robustness and the second robustness; and determine at least two optimal target links based on the robustness value of each forwarding link.

[0203] Here, in one embodiment, each forwarding link includes at least a first device, a second device, and a third device; the determining unit 1101 is further configured to determine a first value of the robustness of the first device, a second value of the robustness of the second device, a third value of the robustness of the third device, a fourth value of the robustness of the link formed by the first device and the second device, and a fifth value of the robustness of the link formed by the second device and the third device; determine a first average value based on the first value, the second value, and the third value, and determine a second average value based on the fourth value and the fifth value; and determine a first robustness of each forwarding link based on the first average value and the second average value.

[0204] In one embodiment, the device 1100 further includes an identification unit and a copying unit; wherein,

[0205] The identification unit is used to identify the application type of the original service message and obtain the identification result;

[0206] The copying unit is used to mirror copy the original service message to obtain the copied message when the identification result indicates that the original service message meets the classification of the application type.

[0207] Here, in one embodiment, the encapsulation unit 1102 is further configured to encapsulate the original service message and the copied message with Internet Protocol version 6 (IP6) segment routing SRv6 headers respectively, to obtain the first message and the second message after SRv6 header encapsulation.

[0208] Here, in one embodiment, the fields of the SRv6 header include at least one of the following:

[0209] SID; the SID is a wide-area optimized marker bit; the SID is used to carry the original service message;

[0210] ARNID; the ARNID identifies the instance number of the original service message and the replicated message; the ARNID is used to distinguish the real-time traffic of the forwarding link;

[0211] Dup; the Dup identifier is the wide-area optimized message;

[0212] Seq ID; The Seq ID is used to identify the group sequence number of the original service message and the replicated message;

[0213] Group ID; The Group ID is used to identify the group sequence number of the original service message and the replicated message.

[0214] In one embodiment, the device 1100 further includes a statistical unit and a judgment unit; wherein,

[0215] The statistics unit is used to count the number of packets sent by the initial forwarding link; the number of packets is based on the ARNID.

[0216] The judgment unit is used to determine whether the robustness value of the initial forwarding link has deteriorated based on the number of packets.

[0217] The determining unit 1101 is further configured to determine that the robustness value of the initial forwarding link deteriorates when the number of packets decreases.

[0218] Here, in one embodiment, the encapsulation unit 1102 is further configured to encapsulate the SID, ARNID, Dup, Seq Id, and Group Id into the original service message and the copied message respectively, to obtain the first message and the second message after SRv6 header encapsulation.

[0219] Here, in one embodiment, the device 1100 further includes a parsing unit and a sorting unit; wherein,

[0220] The parsing unit is used to parse the first and second packets encapsulated with the SRv6 header to obtain the sequence numbers of the first and second packets; the sequence number includes the intra-group sequence number and the group sequence number;

[0221] The sorting unit is used to sort the first message and the second message using the sequence number to obtain sorted messages.

[0222] It should be noted that the message processing device provided in the above embodiments is only illustrated by the division of the above program modules. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device can be divided into different program modules to complete all or part of the processing described above. In addition, the message processing device and message processing method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process can be found in the method embodiments, which will not be repeated here.

[0223] Based on the hardware implementation of the above program modules, this application embodiment also provides an electronic device, including a memory and a processor. The memory stores a computer program that can run on the processor. When the processor executes the program, it implements the steps in the message processing method provided in the above embodiments.

[0224] Correspondingly, this application provides a computer program product, which, when executed by a processor, implements the steps in the message processing method provided in the above embodiments.

[0225] Correspondingly, embodiments of this application provide a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the steps in the message processing method provided in the above embodiments.

[0226] It should be noted that the descriptions of the storage medium and device embodiments above are similar to the descriptions of the method embodiments above, and have similar beneficial effects. For technical details not disclosed in the storage medium and device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.

[0227] It should be noted that, Figure 12 This is a schematic diagram of a hardware entity structure of an electronic device in an embodiment of this application, such as... Figure 12 As shown, the hardware entity of the electronic device 1200 includes a processor 1201 and a memory 1203. Optionally, the electronic device 1200 may also include a communication interface 1202.

[0228] It is understood that memory 1203 can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memory 1203 described in the embodiments of this application is intended to include, but is not limited to, these and any other suitable types of memory.

[0229] The methods disclosed in the embodiments of this application can be applied to or implemented by the processor 1201. The processor 1201 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in the processor 1201 or by instructions in the form of software. The processor 1201 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor 1201 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in the memory 1203. The processor 1201 reads the information in the memory 1203 and completes the steps of the aforementioned method in conjunction with its hardware.

[0230] In an exemplary embodiment, the device may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.

[0231] It should be understood that the phrase "one embodiment" or "an embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments are merely descriptive and do not represent the superiority or inferiority of the embodiments.

[0232] It should be noted that, in this application, 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 limitation, 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 that element.

[0233] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0234] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0235] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.

[0236] The above description is merely an embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology 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 method of processing a packet, the method comprising: The method comprises the steps of: determining at least two optimal target links based on a plurality of forwarding links when it is monitored that the health value of the initial forwarding link is deteriorated; encapsulating the original service packet and the copy packet corresponding to the original service packet respectively to obtain the first packet and the second packet after encapsulation; forwarding the first packet and the second packet through the target link respectively.

2. The method of claim 1, wherein, The step of determining at least two optimal target links based on a plurality of forwarding links comprises the steps of: obtaining a first health value of each forwarding link in the plurality of forwarding links and a second health value of each device in each forwarding link; determining a health value of each forwarding link based on the first health value and the second health value; determining at least two optimal target links according to the health value of each forwarding link.

3. The method of claim 2, wherein, The each forwarding link at least comprises a first device, a second device and a third device; the step of obtaining the first health value of each forwarding link in the plurality of forwarding links comprises the steps of: determining a first value of the health value of the first device, a second value of the health value of the second device, a third value of the health value of the third device, a fourth value of the health value of the link formed by the first device and the second device, and a fifth value of the health value of the link formed by the second device and the third device; determining a first average value based on the first value, the second value and the third value, and determining a second average value based on the fourth value and the fifth value; determining the first health value of each forwarding link according to the first average value and the second average value.

4. The method of claim 2, wherein, The step of obtaining the second health value of each device in each forwarding link comprises the steps of: obtaining a chip health value, a hardware health value and a software health value of each device; determining the second health value based on the chip health value, the hardware health value and the software health value.

5. The method of claim 1, wherein, The method further comprises the steps of: performing application type identification on the original service packet to obtain an identification result; in a case where the identification result represents that the original service packet meets the classification of the application type, performing mirror copying on the original service packet to obtain the copy packet.

6. The method according to any one of claims 1 to 5, characterized in that, The step of encapsulating the original service packet and the copy packet corresponding to the original service packet respectively to obtain the first packet and the second packet after encapsulation comprises the step of: performing segment routing SRv6 header encapsulation on the original service packet and the copy packet respectively to obtain the first packet and the second packet after SRv6 header encapsulation.

7. The method of claim 6, wherein, The fields of the SRv6 header comprise at least one of the following: a segment identifier SID; the SID is a wide-area optimization flag bit; the SID is used to carry the original service packet; an application response network identifier ARNID; the ARNID identifies an instance number of the original service packet and the copy packet; the ARNID is used to distinguish real-time traffic of the forwarding link; a wide-area optimization identifier Dup; the Dup identifies a wide-area optimization packet; a group sequence number Seq Id; the Seq Id is used to identify the group sequence number of the original service packet and the copy packet; Group Id; the Group Id is used for identifying the group sequence number of the original service packet and the copy packet.

8. The method of claim 7, wherein, The method further comprises: counting the number of packets sent by the initial forwarding link; the number of packets is counted based on the ARNID; judging whether the health value of the initial forwarding link is deteriorated based on the number of packets; in the case that the number of packets is reduced, determining that the health value of the initial forwarding link is deteriorated.

9. The method of claim 7, wherein, The SRv6 header encapsulation of the original service packet and the copy packet respectively to obtain the first packet and the second packet after SRv6 header encapsulation comprises: encapsulating the SID, the ARNID, the Dup, the Seq Id and the Group Id for the original service packet and the copy packet respectively to obtain the first packet and the second packet after SRv6 header encapsulation.

10. The method of claim 9, wherein, The method further comprises: analyzing the first packet and the second packet after SRv6 header encapsulation to obtain the sequence number of the first packet and the second packet; the sequence number comprises the intra-group sequence number and the group sequence number; sorting the first packet and the second packet based on the sequence number to obtain the sorted packet.

11. A packet processing device, characterized by, comprise: a determining unit configured to determine at least two optimal target links based on a plurality of forwarding links when it is monitored that the health value of the initial forwarding link is deteriorated; an encapsulating unit configured to encapsulate an original service packet and a copy packet corresponding to the original service packet respectively to obtain an encapsulated first packet and a second packet; a forwarding unit configured to forward the first packet and the second packet through the target links respectively.

12. A packet processing device, characterized by, comprise: a memory configured to store executable instructions; a processor configured to execute the executable instructions stored in the memory to implement the packet processing method in any one of claims 1 to 10.

13. A computer program product comprising a computer program, characterized in that, The computer program, when executed by the processor, implements the packet processing method in any one of claims 1 to 10.

14. A computer-readable storage medium, characterized in that, The computer program, when executed by the processor, implements the packet processing method in any one of claims 1 to 10. The computer program, when executed by the processor, implements the packet processing method in any one of claims 1 to 10.

Citation Information

Patent Citations

  • Message forwarding method and device

    CN110061914A

  • Message forwarding method and device and electronic equipment

    CN115695340A