A SRv6 packet transmission method, device, node and storage medium

By setting the destination address field of the target header compression indicator and the tag SID in the SRv6 message, the problems of SRH length growth and low compression efficiency in complex environments are solved, achieving efficient message transmission and saving overhead.

CN116827860BActive Publication Date: 2026-06-23CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER +1

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER
Filing Date
2023-07-27
Publication Date
2026-06-23

Smart Images

  • Figure CN116827860B_ABST
    Figure CN116827860B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a SRv6 packet transmission method and device, a node and a storage medium. The method is applied to a head node of a target tunnel, and includes: setting a first indication in a SRH of a packet as an indication of target header compression, and setting a label SID in a destination address field of the packet; sending the packet to an intermediate forwarding node of the target tunnel, so that any intermediate forwarding node determines a forwarding SID corresponding to the intermediate forwarding node based on the label SID in the packet and announcement information corresponding to the target tunnel, and forwards the packet based on the forwarding SID; the announcement information corresponding to any tunnel includes a label SID corresponding to the tunnel and a forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different label SIDs. Since the forwarding SID does not depend on the SID list in the packet, the SID list of the SRH does not need to carry the forwarding SID of the intermediate forwarding node, and even if the number of SID encapsulation layers is large, the length of the SRH will not be affected, and the method is suitable for complex forwarding environments.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to an SRv6 message transmission method, apparatus, node, and storage medium. Background Technology

[0002] In Internet Protocol version 6 (IPv6) segment routing (SRv6), the header node encapsulates the packet with an outer IPv6 header and a Segment Routing Header (SRH) before forwarding. The SRH contains a list of Segment Identifiers (SIDs). When the number of SIDs in the list is large, the length of the SRH increases. This results in a smaller packet payload, increased packet overhead, and increased processing pressure on the device.

[0003] In related technologies, it is necessary to extract the common prefix, remove these common prefix parts from the SID list, carry only the changed information, and use a shorter ID to replace the 128-bit SID, thereby achieving compression.

[0004] However, the above method requires extracting the common prefix. When the forwarding environment is complex, the common prefix of the SID list is small, resulting in low compression efficiency. Summary of the Invention

[0005] This application provides an SRv6 message transmission method, apparatus, node, and storage medium to improve the compression efficiency of SRH and reduce the impact of the forwarding environment.

[0006] In a first aspect, embodiments of this application provide a first SRv6 message transmission method, applied to the head node of a target tunnel, the method comprising:

[0007] The first indicator in the SRH of the message is identified as the target header compression indicator, and the tag SID is placed in the destination address field of the message;

[0008] The message is sent to the intermediate forwarding node of the target tunnel, so that any intermediate forwarding node can determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forward the message based on the forwarding SID.

[0009] The notification information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0010] In some optional implementations, the first indicator in the SRH of the message is used to indicate the target header compression, and the tag SID is placed in the destination address field of the message, further comprising:

[0011] The service SID of the target tunnel is placed in the SID list of the SRH, so that after the last intermediate forwarding node receives the message, it replaces the label SID in the destination address field with the service SID and sends the replaced message to the tail node of the target tunnel.

[0012] In some alternative implementations, the notification information is generated by the head node or the controller.

[0013] In some alternative implementations, the tag SID is generated based on the address information of the head node.

[0014] Secondly, embodiments of this application provide a second SRv6 message transmission method, applied to an intermediate forwarding node of a target tunnel, the method comprising:

[0015] Receive a message containing a first indication; wherein the first indication is used to instruct target header compression; if the intermediate forwarding node is a first-hop intermediate forwarding node, the message is sent to the intermediate forwarding node by the header node of the target tunnel; otherwise, the message is forwarded to the intermediate forwarding node by the previous-hop intermediate forwarding node.

[0016] Based on the label SID carried in the destination address field of the message and the announcement information corresponding to the target tunnel, the forwarding SID corresponding to the intermediate forwarding node is determined; wherein, the announcement information corresponding to any tunnel includes the label SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different label SIDs.

[0017] The message is forwarded based on the forwarding SID.

[0018] In some optional implementations, before determining the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the message and the announcement information corresponding to the target tunnel, the method further includes:

[0019] Receive the notification information corresponding to the target tunnel sent by the head node or controller;

[0020] Determine the tag SID corresponding to the target tunnel and the forwarding SID corresponding to the intermediate forwarding node carried in the notification information.

[0021] In some optional implementations, after receiving the notification information corresponding to the target tunnel sent by the head node or controller, the method further includes:

[0022] Based on the notification information, determine whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel;

[0023] If so, then target marking is performed on the intermediate forwarding node.

[0024] In some optional implementations, the SRH SID list of the message includes the service SID; forwarding the message based on the forwarding SID includes:

[0025] If the intermediate forwarding node is determined to be the last hop intermediate forwarding node of the target tunnel based on the target tag, then the service SID is obtained from the packet; the tag SID in the destination address field is replaced with the service SID, and the replaced packet is sent to the tail node of the target tunnel based on the forwarding SID.

[0026] Otherwise, the message is sent to the next-hop intermediate forwarding node of the target tunnel based on the forwarding SID.

[0027] Thirdly, embodiments of this application provide a first SRv6 message transmission device applied to the head node of a target tunnel, the device comprising:

[0028] The message generation module is used to compress the first indicator identifier in the SRH of the message as the target header and to place the tag SID in the destination address field of the message.

[0029] The first sending module is used to send the message to the intermediate forwarding node of the target tunnel, so that any intermediate forwarding node can determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forward the message based on the forwarding SID.

[0030] The notification information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0031] In some optional implementations, the message generation module is also used for:

[0032] The service SID of the target tunnel is placed in the SID list of the SRH, so that after the last intermediate forwarding node receives the message, it replaces the label SID in the destination address field with the service SID and sends the replaced message to the tail node of the target tunnel.

[0033] In some alternative implementations, the notification information is generated by the head node or the controller.

[0034] In some alternative implementations, the tag SID is generated based on the address information of the head node.

[0035] Fourthly, embodiments of this application provide a second SRv6 message transmission device, applied to an intermediate forwarding node of a target tunnel, the device comprising:

[0036] A receiving module is configured to receive a message containing a first indication; wherein the first indication is used to instruct target header compression; if the intermediate forwarding node is a first-hop intermediate forwarding node, then the message is sent to the intermediate forwarding node by the header node of the target tunnel; otherwise, the message is forwarded to the intermediate forwarding node by the previous-hop intermediate forwarding node.

[0037] The forwarding SID determination module is used to determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the packet and the announcement information corresponding to the target tunnel; wherein, the announcement information corresponding to any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0038] The second sending module is used to forward the message based on the forwarding SID.

[0039] In some optional implementations, the receiving module is further configured to:

[0040] Receive the notification information corresponding to the target tunnel sent by the head node or controller;

[0041] Determine the tag SID corresponding to the target tunnel and the forwarding SID corresponding to the intermediate forwarding node carried in the notification information.

[0042] In some optional implementations, after receiving the notification information corresponding to the target tunnel sent by the head node or controller, the receiving module is further configured to:

[0043] Based on the notification information, determine whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel;

[0044] If so, then target marking is performed on the intermediate forwarding node.

[0045] In some optional implementations, the SID list of the SRH of the message includes the service SID; the second sending module is specifically used for:

[0046] If the intermediate forwarding node is determined to be the last hop intermediate forwarding node of the target tunnel based on the target tag, then the service SID is obtained from the packet; the tag SID in the destination address field is replaced with the service SID, and the replaced packet is sent to the tail node of the target tunnel based on the forwarding SID.

[0047] Otherwise, the message is sent to the next-hop intermediate forwarding node of the target tunnel based on the forwarding SID.

[0048] Fifthly, embodiments of this application provide a header node, including at least one processor and at least one memory, wherein the memory stores a computer program, and when the program is executed by the processor, the processor performs the SRv6 message transmission method described in any of the first aspects above.

[0049] In a sixth aspect, embodiments of this application provide an intermediate forwarding node, including at least one processor and at least one memory, wherein the memory stores a computer program, and when the program is executed by the processor, the processor performs the SRv6 message transmission method described in any of the second aspects above.

[0050] In a seventh aspect, embodiments of this application provide a computer-readable storage medium storing a computer program executable by a processor, which, when run on the processor, causes the processor to perform the SRv6 message transmission method described in either the first or second aspect.

[0051] In the above scheme, intermediate forwarding nodes of the target tunnel (any tunnel) receive announcement information containing a unique tag SID that identifies the tunnel, as well as the forwarding SID corresponding to each intermediate forwarding node. Therefore, the forwarding SID does not depend on the SID list in the packet. Thus, when the header node generates the packet, the SRH SID list does not need to carry the forwarding SIDs of the intermediate forwarding nodes. By placing the tag SID in the destination address field of the packet, the intermediate forwarding nodes can determine the corresponding forwarding SID based on the tag SID in the packet and the announcement information corresponding to the tunnel. Even with a large number of SID encapsulation layers, the length of the SRH will not be affected, saving packet overhead. Furthermore, compression efficiency will not be affected when the forwarding environment is complex. Additionally, a first indicator in the packet indicates whether it is a packet with a target header compression, thus distinguishing it from the transmission of regular packets. Attached Figure Description

[0052] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0053] Figure 1 An interactive flowchart of the first SRv6 message transmission method provided in the embodiments of this application;

[0054] Figure 2 This is a schematic diagram of the Flag field in the SRH provided in the embodiments of this application;

[0055] Figure 3 An interactive flowchart of the second SRv6 message transmission method provided in the embodiments of this application;

[0056] Figure 4 This is a schematic diagram of the message forwarding process provided in an embodiment of this application;

[0057] Figure 5 A flowchart illustrating the first SRv6 message transmission method provided in this application embodiment;

[0058] Figure 6 A flowchart illustrating the second SRv6 message transmission method provided in this application embodiment;

[0059] Figure 7 A schematic diagram of the structure of the first SRv6 message transmission device provided in the embodiments of this application;

[0060] Figure 8 A schematic diagram of the structure of the second SRv6 message transmission device provided in the embodiments of this application;

[0061] Figure 9 This is a schematic diagram of the structure of the head node provided in an embodiment of this application. Detailed Implementation

[0062] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0063] The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0064] In the description of this application, it should be noted that, unless otherwise expressly specified and limited, the term "connection" should be interpreted broadly. For example, it can refer to a direct connection, an indirect connection through an intermediate medium, or a connection within two devices. Those skilled in the art can understand the specific meaning of the above term in this application based on the specific circumstances.

[0065] In SRv6, the header node encapsulates the packet with an outer IPv6 header and an SRH before forwarding. The SRH contains a list of SIDs; when the number of SIDs in the list is large, the length of the SRH will increase accordingly. This results in a smaller payload carried by the packet, increased packet overhead, and increased processing pressure on the device.

[0066] In related technologies, it is necessary to extract the common prefix, remove these common prefix parts from the SID list, carry only the changed information, and use a shorter ID to replace the 128-bit SID, thereby achieving compression.

[0067] However, the above method requires extracting the common prefix. When the forwarding environment is complex, the common prefix of the SID list is small, resulting in low compression efficiency.

[0068] In view of this, embodiments of this application propose an SRv6 message transmission method, apparatus, node, and storage medium. The method is applied to the head node of a target tunnel, whereby the first indicator in the SRH of the message is used to indicate target header compression, and the tag SID is placed in the destination address field of the message. The message is sent to intermediate forwarding nodes of the target tunnel, so that any intermediate forwarding node determines its corresponding forwarding SID based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forwards the message based on the forwarding SID. The announcement information corresponding to any tunnel includes the tag SID corresponding to the tunnel and the forwarding SIDs corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0069] In the above scheme, intermediate forwarding nodes of the target tunnel (any tunnel) receive announcement information containing a unique tag SID that identifies the tunnel, as well as the forwarding SID corresponding to each intermediate forwarding node. Therefore, the forwarding SID does not depend on the SID list in the packet. Thus, when the header node generates the packet, the SRH SID list does not need to carry the forwarding SIDs of the intermediate forwarding nodes. By placing the tag SID in the destination address field of the packet, the intermediate forwarding nodes can determine the corresponding forwarding SID based on the tag SID in the packet and the announcement information corresponding to the tunnel. Even with a large number of SID encapsulation layers, the length of the SRH will not be affected, saving packet overhead. Furthermore, compression efficiency will not be affected when the forwarding environment is complex. Additionally, a first indicator in the packet indicates whether it is a packet with a target header compression, thus distinguishing it from the transmission of regular packets.

[0070] The technical solution of this application and how it solves the above-mentioned technical problems will be described in detail below with reference to the accompanying drawings and specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.

[0071] Figure 1 The interactive flowchart of the first SRv6 message transmission method provided in the embodiments of this application is as follows: Figure 1 As shown, it includes the following steps:

[0072] Step S101: The head node of the target tunnel sets the first indicator in the SRH of the message as indicating target header compression, and places the tag SID in the destination address field of the message.

[0073] The target tunnel mentioned above can be any tunnel, that is, any path. Each path includes a head node, a tail node, and intermediate forwarding nodes between the head node and the tail node.

[0074] In this embodiment, the intermediate forwarding nodes of the tunnel receive notification information, which includes a unique identifier for the tunnel, a tag SID, and a forwarding SID corresponding to each intermediate forwarding node. Therefore, the forwarding SID does not depend on the SID list in the packet. Thus, when the header node generates a packet, the SRH's SID list does not need to carry the forwarding SIDs of the intermediate forwarding nodes. By placing the tag SID in the destination address field of the packet, the intermediate forwarding nodes can determine the corresponding forwarding SID based on the tag SID in the packet and the notification information corresponding to the tunnel.

[0075] Since this embodiment uses a target header compression message that is different from a regular message, the header node uses a first indication to indicate whether it is a target header compression message, thereby distinguishing it from a regular message.

[0076] See Figure 2 As shown, a portion of the bits in the Flag field of the SRH can be used as the first indicator. The Flag field includes K bits, ..., 0 bits, and also includes the Reserved flag. In practice, K bits can be selected as the first indicator. For example, if K bits are 0, it indicates a normal message; if K bits are 1, it indicates a message with a compressed target header.

[0077] Since the Flag field currently only defines the third bit and the others are undefined, any of the remaining bits can be selected as the first indicator. Examples will not be provided here.

[0078] Step S102: The head node sends the message to the intermediate forwarding node of the target tunnel.

[0079] The intermediate forwarding node of the target tunnel is the forwarding node between the head node and the tail node of the target tunnel.

[0080] In practice, the above message needs to be forwarded through each intermediate forwarding node of the target tunnel. Therefore, after generating the above message, the head node needs to send the message to the intermediate forwarding node of the target tunnel.

[0081] Specifically, if the target tunnel has multiple intermediate forwarding nodes, the head node sends the message to the first-hop intermediate forwarding node of the target tunnel. After receiving the message, each intermediate forwarding node forwards it to the next node (the next-hop intermediate forwarding node or the tail node). If the target tunnel has only one intermediate forwarding node, the head node sends the message to that intermediate forwarding node. After receiving the message, that intermediate forwarding node forwards it to the tail node.

[0082] Step S103: The intermediate forwarding node determines the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the packet and the announcement information corresponding to the target tunnel.

[0083] The notification information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0084] As described above, the intermediate forwarding nodes of the tunnel receive notification information, which includes a unique tag SID that identifies the tunnel, as well as the forwarding SID corresponding to each intermediate forwarding node. Therefore, the forwarding SID does not depend on the SID list in the packet. Thus, when the header node generates a packet, the SRH's SID list does not need to carry the forwarding SIDs of the intermediate forwarding nodes. By placing the tag SID in the destination address field of the packet, the intermediate forwarding nodes can determine the corresponding forwarding SID based on the tag SID in the packet and the notification information corresponding to the tunnel.

[0085] Based on this, after receiving a packet, each intermediate forwarding node obtains the label SID carried in the destination address field of the packet. Based on the label SID and the announcement information corresponding to the target tunnel, it can know the corresponding forwarding SID.

[0086] This embodiment does not specifically limit the information to be announced, such as information announced through the Border Gateway Protocol (BGP) / Interior Gateway Protocol (IGP).

[0087] Step S104: The intermediate forwarding node forwards the packet based on the forwarding SID.

[0088] In practice, once the intermediate forwarding node determines the forwarding SID, it can forward the packet based on the forwarding SID.

[0089] In the above scheme, intermediate forwarding nodes of the target tunnel (any tunnel) receive announcement information containing a unique tag SID that identifies the tunnel, as well as the forwarding SID corresponding to each intermediate forwarding node. Therefore, the forwarding SID does not depend on the SID list in the packet. Thus, when the header node generates the packet, the SRH SID list does not need to carry the forwarding SIDs of the intermediate forwarding nodes. By placing the tag SID in the destination address field of the packet, the intermediate forwarding nodes can determine the corresponding forwarding SID based on the tag SID in the packet and the announcement information corresponding to the tunnel. Even with a large number of SID encapsulation layers, the length of the SRH will not be affected, saving packet overhead. Furthermore, compression efficiency will not be affected when the forwarding environment is complex. Additionally, a first indicator in the packet indicates whether it is a packet with a target header compression, thus distinguishing it from the transmission of regular packets.

[0090] In some alternative implementations, the tag SID is generated based on the address information of the head node.

[0091] Since each tunnel has a different SID (Signature ID), and the address information of different head nodes is also different, the corresponding SID can be generated based on the address information of the head node. By ensuring that the same head node is generated using different combinations of address information in different tunnels, it is possible to guarantee that the SIDs for all tunnels are different. This address information can be the Locator address.

[0092] The above scheme, based on the address information of the head node in the tunnel, can accurately and efficiently generate a unique SID for each tunnel, ensuring that the SID corresponding to each tunnel is different.

[0093] In some alternative implementations, the notification information is generated by the head node or the controller.

[0094] Correspondingly, before step S101, the intermediate forwarding node also performs the following steps:

[0095] Receive the notification information corresponding to the target tunnel sent by the head node or controller;

[0096] Determine the tag SID corresponding to the target tunnel and the forwarding SID corresponding to the intermediate forwarding node carried in the notification information.

[0097] In this embodiment, after receiving each notification message, the intermediate forwarding node will obtain the tag SID of the tunnel corresponding to the notification message, as well as the forwarding SID corresponding to the intermediate forwarding node in that tunnel.

[0098] For example, a simple mapping between the label SID of each tunnel and the corresponding forwarding SID is established at the intermediate forwarding node; after receiving a packet, the mapping containing the label SID in the packet is determined, and the forwarding SID in the mapping is further determined (for the target tunnel, the forwarding SID corresponding to the intermediate forwarding node).

[0099] In some optional implementations, after receiving the notification information corresponding to the target tunnel sent by the head node or controller, the method further includes:

[0100] Based on the notification information, determine whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel;

[0101] If so, then target marking is performed on the intermediate forwarding node.

[0102] For example, after receiving the notification information from each tunnel, the intermediate forwarding node can establish a simple mapping between the label SID of each tunnel and the corresponding forwarding SID. If the intermediate forwarding node is the last hop intermediate forwarding node of a certain tunnel, it can be specially marked in the simple mapping corresponding to that tunnel.

[0103] In the above scheme, each intermediate forwarding node determines whether it is the last-hop intermediate forwarding node of the target tunnel based on the announcement information; and when it determines that it is the last-hop intermediate forwarding node of the target tunnel, it marks itself as the target. Subsequently, when forwarding packets, it can accurately determine whether it is the last-hop intermediate forwarding node of the target tunnel based on the target mark.

[0104] Correspondingly, Figure 3 The interactive flowchart of the second SRv6 message transmission method provided in the embodiments of this application is as follows: Figure 3 As shown, it includes the following steps:

[0105] Step S301: The head node of the target tunnel sets the first indicator in the SRH of the packet to indicate target header compression, places the tag SID in the destination address field of the packet, and places the service SID of the target tunnel in the SID list of the SRH.

[0106] Step S302: The head node sends the message to the intermediate forwarding node of the target tunnel.

[0107] Step S303: The intermediate forwarding node determines the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the packet and the announcement information corresponding to the target tunnel.

[0108] The specific implementation of steps S301 to S303 can be found in the above embodiments, and will not be repeated here.

[0109] Step S304: The intermediate forwarding node determines whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel based on the target marker.

[0110] As mentioned above, each intermediate forwarding node will determine whether it is the last-hop intermediate forwarding node of the tunnel based on the announcement information of each tunnel; if it is the last-hop intermediate forwarding node of the tunnel, it will mark itself as the target in the tunnel.

[0111] Based on this, each intermediate forwarding node can determine whether it is the last-hop intermediate forwarding node of the target tunnel based on the target marker for the target tunnel. For example, if an intermediate forwarding node has the target marker for the target tunnel, it determines that it is the last-hop intermediate forwarding node of the target tunnel and executes steps S306 to S307; otherwise, it determines that it is not the last-hop intermediate forwarding node of the target tunnel and executes step S305.

[0112] Step S305: The intermediate forwarding node sends the replaced message to the next hop intermediate forwarding node based on the forwarding SID.

[0113] In practice, if the intermediate forwarding node is not the last hop intermediate forwarding node, it means that the next hop in the target tunnel is still an intermediate forwarding node. There is no need to modify the packet; the packet can be directly forwarded to the next hop intermediate forwarding node.

[0114] Step S306: The intermediate forwarding node obtains the service SID from the packet and replaces the label SID in the destination address field with the service SID.

[0115] In practice, if the intermediate forwarding node is the last hop intermediate forwarding node, it means that its next hop in the target tunnel is the tail node, that is, the intermediate forwarding node is the penultimate hop of the target tunnel, and the packet needs to be modified before forwarding.

[0116] For example, the last-hop intermediate forwarding node performs operations such as the penultimate segment pop (PSP) feature to copy the service SID from the SID list in the SRH to the IPv6 destination address (DA) field.

[0117] Step S307: The intermediate forwarding node sends the replaced message to the tail node based on the forwarding SID.

[0118] In practice, the last-hop intermediate forwarding node processes the packet to obtain the replaced packet, and then sends the replaced packet to the tail node based on the corresponding forwarding SID.

[0119] For example, if the last-hop intermediate forwarding node performs a PSP operation, then the message received by the tail node will not contain an SRH header.

[0120] In the above scheme, each intermediate forwarding node can accurately determine whether it is the last-hop intermediate forwarding node of the target tunnel based on the target marker of the target tunnel. If the intermediate forwarding node is not the last-hop intermediate forwarding node, it means that its next hop in the target tunnel is still an intermediate forwarding node. There is no need to modify the packet, and the packet is directly forwarded to the next-hop intermediate forwarding node. If the intermediate forwarding node is the last-hop intermediate forwarding node, it means that its next hop in the target tunnel is the tail node, that is, the intermediate forwarding node is the penultimate hop of the target tunnel. The packet needs to be modified before forwarding, thereby realizing packet forwarding between different intermediate forwarding nodes.

[0121] See Figure 4 As shown below, a specific example will be used to illustrate this:

[0122] The forwarding path (target tunnel) is R1 (head node) --> R2 (first-hop intermediate forwarding node) --> R3 (second-hop intermediate forwarding node) --> R4 (third-hop intermediate forwarding node) --> R5 (last-hop intermediate forwarding node) --> R6 (tail node). The target tunnel's label SID is denoted as... <a::a>The forwarding SIDs corresponding to each intermediate forwarding node are 2::, 3::, 4::, and 5:: respectively, and the forwarding SID corresponding to the tail node is A::6, where A::6 is the service SID.

[0123] The controller or head node advertises the label SID (A::A) and the forwarding SIDs corresponding to each intermediate forwarding node to all routers (intermediate forwarding nodes) in the path, generating a simplified mapping table in the routers. Taking the target tunnel mentioned above as an example, A::A-->2:: is generated in R2, A::A-->3:: is generated in R3, ..., and A::A-->5:: is generated in R5. Simultaneously with generating the mapping table in R5, target marking is performed, that is, marking this node as the penultimate hop (last hop intermediate forwarding node) of the target tunnel.

[0124] Header node R1 generates a packet structure as shown in the figure (setting the K value in the Flag field to 1, carrying A::A in the IPv6DA, and carrying A::6 in the SID list), and passes it to R2. After receiving the packet, R2 checks that the K value in the Flag field is 1, and then finds that the forwarding SID mapped to A::A carried in the IPv6DA is 2::. Based on 2::, the packet is forwarded to R3 without modification.

[0125] Messages are consistently passed to R5 in a similar manner.

[0126] After receiving the packet, R5 checks that the K value in the Flag field is 1, then looks up the forwarding SID 5:: that is mapped to A::A carried in the IPv6 DA, and determines itself to be the penultimate hop of the target tunnel based on the target label. It then performs operations such as PSP according to the action, copies A::6 from the SID list in the SRH to the IPv6 DA, and forwards it to R6.

[0127] After receiving the message, if R5 performed a PSP operation, the received message will not contain an SRH header. It will look up A::6 to determine the local SID and instruct forwarding accordingly. If the PSP operation was not performed, the message will behave as follows: Figure 4 As shown, if K is determined to be 1, A::6 is found to be the local SID, and forwarding is guided according to the local SID.

[0128] The above Figure 4 This is merely an illustrative example and is not intended to limit the specific implementation. For example, more or fewer intermediate forwarding nodes may be set.

[0129] The SRv6 message transmission method executed by the head node in this application embodiment is as follows: Figure 5 As shown, it includes the following steps:

[0130] Step S501: Compress the first indicator in the SRH of the message as the target header and place the tag SID in the destination address field of the message;

[0131] Step S502: Send the message to the intermediate forwarding node of the target tunnel, so that any intermediate forwarding node can determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forward the message based on the forwarding SID.

[0132] The notification information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0133] In some optional implementations, the first indicator in the SRH of the message is used to indicate the target header compression, and the tag SID is placed in the destination address field of the message, further comprising:

[0134] The service SID of the target tunnel is placed in the SID list of the SRH, so that after the last intermediate forwarding node receives the message, it replaces the label SID in the destination address field with the service SID and sends the replaced message to the tail node of the target tunnel.

[0135] In some alternative implementations, the notification information is generated by the head node or the controller.

[0136] In some alternative implementations, the tag SID is generated based on the address information of the head node.

[0137] In this embodiment of the application, the SRv6 message transmission method executed by the intermediate forwarding node is as follows: Figure 6 As shown, it includes the following steps:

[0138] Step S601: Receive a message containing a first indication; wherein the first indication is used to indicate target header compression; if the intermediate forwarding node is a first-hop intermediate forwarding node, then the message is sent by the header node of the target tunnel to the intermediate forwarding node; otherwise, the message is forwarded to the intermediate forwarding node by the previous-hop intermediate forwarding node.

[0139] Step S602: Based on the tag SID carried in the destination address field of the message and the announcement information corresponding to the target tunnel, determine the forwarding SID corresponding to the intermediate forwarding node; wherein, the announcement information corresponding to any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0140] Step S603: Forward the message based on the forwarding SID.

[0141] In some optional implementations, before determining the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the message and the announcement information corresponding to the target tunnel, the method further includes:

[0142] Receive the notification information corresponding to the target tunnel sent by the head node or controller;

[0143] Determine the tag SID corresponding to the target tunnel and the forwarding SID corresponding to the intermediate forwarding node carried in the notification information.

[0144] In some optional implementations, after receiving the notification information corresponding to the target tunnel sent by the head node or controller, the method further includes:

[0145] Based on the notification information, determine whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel;

[0146] If so, then target marking is performed on the intermediate forwarding node.

[0147] In some optional implementations, the SRH SID list of the message includes the service SID; forwarding the message based on the forwarding SID includes:

[0148] If the intermediate forwarding node is determined to be the last hop intermediate forwarding node of the target tunnel based on the target tag, then the service SID is obtained from the packet; the tag SID in the destination address field is replaced with the service SID, and the replaced packet is sent to the tail node of the target tunnel based on the forwarding SID.

[0149] Otherwise, the message is sent to the next-hop intermediate forwarding node of the target tunnel based on the forwarding SID.

[0150] Figures 5-6 For details on the specific implementation of the embodiments, please refer to the implementation of the above-described interaction method; repeated details will not be repeated here.

[0151] like Figure 7 As shown, based on and Figure 5 Using the same inventive concept as the SRv6 message transmission method shown, this application provides a first SRv6 message transmission device 700, applied to the head node of a target tunnel. This device includes:

[0152] The message generation module 701 is used to compress the first indication identifier in the SRH of the message as the indication target header and to place the tag SID in the destination address field of the message;

[0153] The first sending module 702 is used to send the message to the intermediate forwarding node of the target tunnel, so that any intermediate forwarding node can determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forward the message based on the forwarding SID.

[0154] The notification information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0155] In some optional implementations, the message generation module 701 is further configured to:

[0156] The service SID of the target tunnel is placed in the SID list of the SRH, so that after the last intermediate forwarding node receives the message, it replaces the label SID in the destination address field with the service SID and sends the replaced message to the tail node of the target tunnel.

[0157] In some alternative implementations, the notification information is generated by the head node or the controller.

[0158] In some alternative implementations, the tag SID is generated based on the address information of the head node.

[0159] like Figure 8 As shown, based on and Figure 6 Using the same inventive concept as the SRv6 message transmission method shown, this application provides a second SRv6 message transmission device 800, applied to an intermediate forwarding node of a target tunnel. This device includes:

[0160] The receiving module 801 is configured to receive a message containing a first indication; wherein the first indication is used to instruct target header compression; if the intermediate forwarding node is a first-hop intermediate forwarding node, then the message is sent to the intermediate forwarding node by the header node of the target tunnel; otherwise, the message is forwarded to the intermediate forwarding node by the previous-hop intermediate forwarding node.

[0161] The forwarding SID determination module 802 is used to determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the packet and the announcement information corresponding to the target tunnel; wherein, the announcement information corresponding to any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0162] The second sending module 803 is used to forward the message based on the forwarding SID.

[0163] In some optional implementations, the receiving module 801 is further configured to:

[0164] Receive the notification information corresponding to the target tunnel sent by the head node or controller;

[0165] Determine the tag SID corresponding to the target tunnel and the forwarding SID corresponding to the intermediate forwarding node carried in the notification information.

[0166] In some optional implementations, after receiving the notification information corresponding to the target tunnel sent by the head node or controller, the receiving module 801 is further configured to:

[0167] Based on the notification information, determine whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel;

[0168] If so, then target marking is performed on the intermediate forwarding node.

[0169] In some optional implementations, the SRH SID list of the message includes the service SID; the second sending module 803 is specifically used for:

[0170] If the intermediate forwarding node is determined to be the last hop intermediate forwarding node of the target tunnel based on the target tag, then the service SID is obtained from the packet; the tag SID in the destination address field is replaced with the service SID, and the replaced packet is sent to the tail node of the target tunnel based on the forwarding SID.

[0171] Otherwise, the message is sent to the next-hop intermediate forwarding node of the target tunnel based on the forwarding SID.

[0172] Figures 7-8 For details on the specific implementation of the embodiments, please refer to the implementation of the above-described interaction method; repeated details will not be repeated here.

[0173] Based on the same technical concept, this application also provides a head node 900, such as... Figure 9 As shown, it includes at least one processor 901 and a memory 902 connected to at least one processor. In this embodiment, the specific connection medium between the processor 901 and the memory 902 is not limited. Figure 9 Taking the connection between processor 901 and memory 902 via bus 903 as an example, the bus can be divided into path bus, data bus, control bus, etc. For ease of illustration, Figure 9 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0174] The processor 901 is the control center of the head node, capable of connecting to various parts of the head node via various interfaces and lines. It performs data processing by running or executing instructions stored in the memory 902 and accessing data stored in the memory 902. Optionally, the processor 901 may include one or more processing units. The processor 901 may integrate an application processor and a modem processor. The application processor primarily handles the operating system, user interface, and applications, while the modem processor primarily handles issuing instructions. It is understood that the modem processor may not be integrated into the processor 901. In some embodiments, the processor 901 and the memory 902 may be implemented on the same chip; in other embodiments, they may be implemented on separate chips.

[0175] The processor 901 can be a general-purpose processor, such as a central processing unit (CPU), digital signal processor, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component, capable of implementing or executing the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of the SRv6 message transmission method can be directly manifested as being executed by a hardware processor, or executed by a combination of hardware and software modules within the processor.

[0176] Memory 902, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules. Memory 902 may include at least one type of storage medium, such as flash memory, hard disk, multimedia card, card-type memory, random access memory (RAM), static random access memory (SRAM), programmable read-only memory (PROM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), magnetic storage, magnetic disk, optical disk, etc. Memory 902 can be any other medium capable of carrying or storing desired program code in the form of instructions or data structures that can be accessed by a computer, but is not limited thereto. In the embodiments of this application, memory 902 can also be a circuit or any other device capable of implementing storage functions for storing program instructions and / or data.

[0177] In this embodiment, the memory 902 stores a computer program, which, when executed by the processor 901, causes the processor 901 to perform the following:

[0178] The first indicator in the SRH of the message is identified as the target header compression indicator, and the tag SID is placed in the destination address field of the message;

[0179] The message is sent to the intermediate forwarding node of the target tunnel, so that any intermediate forwarding node can determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forward the message based on the forwarding SID.

[0180] The notification information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs.

[0181] In some alternative implementations, processor 901 also performs:

[0182] The service SID of the target tunnel is placed in the SID list of the SRH, so that after the last intermediate forwarding node receives the message, it replaces the label SID in the destination address field with the service SID and sends the replaced message to the tail node of the target tunnel.

[0183] In some alternative implementations, the notification information is generated by the head node or the controller.

[0184] In some alternative implementations, the tag SID is generated based on the address information of the head node.

[0185] Based on the same technical concept, embodiments of this application also provide an intermediate forwarding node, including at least one processor and at least one memory, wherein the memory stores a computer program, and when the program is executed by the processor, the processor performs the following:

[0186] Receive a message containing a first indication; wherein the first indication is used to instruct target header compression; if the intermediate forwarding node is a first-hop intermediate forwarding node, the message is sent to the intermediate forwarding node by the header node of the target tunnel; otherwise, the message is forwarded to the intermediate forwarding node by the previous-hop intermediate forwarding node.

[0187] Based on the label SID carried in the destination address field of the message and the announcement information corresponding to the target tunnel, the forwarding SID corresponding to the intermediate forwarding node is determined; wherein, the announcement information corresponding to any tunnel includes the label SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different label SIDs.

[0188] The message is forwarded based on the forwarding SID.

[0189] In some optional implementations, before determining the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the message and the announcement information corresponding to the target tunnel, the processor further executes:

[0190] Receive the notification information corresponding to the target tunnel sent by the head node or controller;

[0191] Determine the tag SID corresponding to the target tunnel and the forwarding SID corresponding to the intermediate forwarding node carried in the notification information.

[0192] In some optional implementations, after receiving the notification information corresponding to the target tunnel sent by the head node or controller, the processor further executes:

[0193] Based on the notification information, determine whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel;

[0194] If so, then target marking is performed on the intermediate forwarding node.

[0195] In some optional implementations, the SID list of the SRH of the message contains the service SID; the processor specifically executes:

[0196] If the intermediate forwarding node is determined to be the last hop intermediate forwarding node of the target tunnel based on the target tag, then the service SID is obtained from the packet; the tag SID in the destination address field is replaced with the service SID, and the replaced packet is sent to the tail node of the target tunnel based on the forwarding SID.

[0197] Otherwise, the message is sent to the next-hop intermediate forwarding node of the target tunnel based on the forwarding SID.

[0198] Based on the same technical concept, embodiments of this application also provide a computer-readable storage medium storing a computer program executable by a processor, which, when run on the processor, causes the processor to perform the steps of the SRv6 message transmission method described above.

[0199] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0200] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0201] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0202] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0203] Although preferred embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.

[0204] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.< / a::a>

Claims

1. A segment routing SRv6 message transmission method for Internet Protocol version 6 (IP6), applied to the head node of a target tunnel, characterized in that, The method includes: The first indication identifier in the segmented routing extension header (SRH) of the message is set as the target header compression, and the label segment identifier (SID) is placed in the destination address field of the message; wherein, the label SID is used to identify the tunnel; The message is sent to the intermediate forwarding node of the target tunnel, so that any intermediate forwarding node can determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forward the message based on the forwarding SID. The announcement information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs; each intermediate forwarding node establishes a mapping relationship between the tag SID and its own forwarding SID based on the announcement information. The tag SID is generated based on the address information of the head node; wherein, the same head node is generated using different combinations of address information in different tunnels.

2. The method as described in claim 1, characterized in that, The method further includes setting the first indicator in the SRH of the message as the target header compression indicator and placing the tag SID in the destination address field of the message. The service SID of the target tunnel is placed in the SID list of the SRH, so that after the last intermediate forwarding node receives the message, it replaces the label SID in the destination address field with the service SID and sends the replaced message to the tail node of the target tunnel.

3. The method as described in claim 1, characterized in that, The notification information is generated by the head node or the controller.

4. A segment routing SRv6 message transmission method for Internet Protocol version 6 (IP6), applied to intermediate forwarding nodes of a target tunnel, characterized in that, The method includes: Receive a message containing a first indication; wherein the first indication is used to instruct target header compression; if the intermediate forwarding node is a first-hop intermediate forwarding node, the message is sent to the intermediate forwarding node by the header node of the target tunnel; otherwise, the message is forwarded to the intermediate forwarding node by the previous-hop intermediate forwarding node. Based on the SID (Segment Identifier) ​​carried in the destination address field of the message and the announcement information corresponding to the target tunnel, the forwarding SID corresponding to the intermediate forwarding node is determined; wherein, the announcement information corresponding to any tunnel includes the tag SID corresponding to the tunnel and the forwarding SIDs corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs; the tag SID is used to identify the tunnel; the intermediate forwarding node establishes a mapping relationship between the tag SID and its own forwarding SID based on the announcement information; The message is forwarded based on the forwarding SID; The tag SID is generated based on the address information of the head node; wherein, the same head node is generated using different combinations of address information in different tunnels.

5. The method as described in claim 4, characterized in that, Before determining the forwarding SID corresponding to the intermediate forwarding node based on the label SID carried in the destination address field of the message and the announcement information corresponding to the target tunnel, the process further includes: Receive the notification information corresponding to the target tunnel sent by the head node or controller; Determine the tag SID corresponding to the target tunnel and the forwarding SID corresponding to the intermediate forwarding node carried in the notification information.

6. The method as described in claim 5, characterized in that, After receiving the notification information corresponding to the target tunnel sent by the head node or controller, the method further includes: Based on the notification information, determine whether the intermediate forwarding node is the last hop intermediate forwarding node of the target tunnel; If so, then target marking is performed on the intermediate forwarding node.

7. The method as described in claim 6, characterized in that, The SID list in the segmented routing extension header (SRH) of the message contains the service SID; Forwarding the packet based on the forwarding SID includes: If the intermediate forwarding node is determined to be the last hop intermediate forwarding node of the target tunnel based on the target tag, then the service SID is obtained from the packet; the tag SID in the destination address field is replaced with the service SID, and the replaced packet is sent to the tail node of the target tunnel based on the forwarding SID. Otherwise, the message is sent to the next-hop intermediate forwarding node of the target tunnel based on the forwarding SID.

8. A segment routing SRv6 message transmission device for Internet Protocol version 6 (IP6), applied to the head node of a target tunnel, characterized in that, The device includes: The message generation module is used to compress the first indication identifier in the segmented routing extension header (SRH) of the message into an indication destination header and to place the label segment identifier (SID) in the destination address field of the message; wherein, the label SID is used to identify the tunnel; The first sending module is used to send the message to the intermediate forwarding node of the target tunnel, so that any intermediate forwarding node can determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID in the message and the announcement information corresponding to the target tunnel, and forward the message based on the forwarding SID. The announcement information for any tunnel includes the tag SID corresponding to the tunnel and the forwarding SID corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs; each intermediate forwarding node establishes a mapping relationship between the tag SID and its own forwarding SID based on the announcement information. The tag SID is generated based on the address information of the head node; wherein, the same head node is generated using different combinations of address information in different tunnels.

9. A segment routing SRv6 message transmission device for Internet Protocol version 6 (IP6), applied to an intermediate forwarding node of a target tunnel, characterized in that, The device includes: A receiving module is configured to receive a message containing a first indication; wherein the first indication is used to instruct target header compression; if the intermediate forwarding node is a first-hop intermediate forwarding node, then the message is sent to the intermediate forwarding node by the header node of the target tunnel; otherwise, the message is forwarded to the intermediate forwarding node by the previous-hop intermediate forwarding node. The forwarding segment identifier (SID) determination module is used to determine the forwarding SID corresponding to the intermediate forwarding node based on the tag SID carried in the destination address field of the packet and the announcement information corresponding to the target tunnel; wherein, the announcement information corresponding to any tunnel includes the tag SID corresponding to the tunnel and the forwarding SIDs corresponding to each intermediate forwarding node of the tunnel; different tunnels correspond to different tag SIDs; the tag SID is used to identify the tunnel; the intermediate forwarding node establishes a mapping relationship between the tag SID and its own forwarding SID based on the announcement information; The second sending module is used to forward the message based on the forwarding SID; The tag SID is generated based on the address information of the head node; wherein, the same head node is generated using different combinations of address information in different tunnels.