Packet transmission method, communication apparatus, and storage medium

By using a combination of partial bits and full address segment elements in a deterministic forwarding path, the problems of excessive message length and network scenario limitations are solved, achieving more efficient message transmission and adaptability.

WO2025200393A1PCT designated stage Publication Date: 2025-10-02ZTE CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/126194
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-28
Filing Date
2024-10-21
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

In a deterministic forwarding path, the existing technology contains multiple 128-bit IPv6 addresses in the segment list, resulting in longer message lengths and increased transmission overhead. In addition, the existing solution is limited to scenarios where all intermediate nodes have the same prefix and cannot be applied to complex networks.

Method used

A combination of first-type segment elements and second-type segment elements is adopted. The first-type segment elements only include partial bits of the address, and the second-type segment elements include the complete address. The address of the next segment element is determined by the common prefix and partial bits to adapt to different network scenarios.

Benefits of technology

It reduces message transmission overhead, adapts to various complex network scenarios, supports offline tool parsing, and reduces the size of routing headers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024126194_02102025_PF_FP_ABST
    Figure CN2024126194_02102025_PF_FP_ABST
Patent Text Reader

Abstract

Provided are a packet transmission method, a communication apparatus, and a storage medium. The packet transmission method comprises: receiving a deterministic packet, wherein the routing header of the deterministic packet comprises a segment list; the segment list comprises at least one segment element; the type of the at least one segment element includes a first-type segment element and a second-type segment element; the first-type segment element comprises some bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to a previous segment element of the first-type segment element in the segment list; the second-type segment element comprises all bits of the corresponding address.
Need to check novelty before this filing date? Find Prior Art

Description

Message transmission method, communication device and storage medium

[0001] This disclosure claims priority to Chinese patent application No. 202410378353.9, filed on March 28, 2024, the entire contents of which are incorporated herein by reference. Technical Field

[0002] The present disclosure relates to the field of communication technology, and in particular to a message transmission method, a communication device, and a storage medium. Background Art

[0003] A deterministic forwarding path is a path that instructs multiple nodes to forward packets hop by hop along a predetermined path during packet transmission. When forwarding packets based on a deterministic forwarding path, a source node can encapsulate a segment list containing multiple segment elements in a routing header, where each segment element includes a 128-bit Internet Protocol version 6 (IPv6) address corresponding to a node or link. This allows nodes to forward packets based on the IPv6 addresses in the segment elements.

[0004] Summary of the Invention

[0005] In one aspect, an embodiment of the present disclosure provides a message transmission method. The message transmission method includes: receiving a deterministic message; the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the at least one segment element includes a first-type segment element and a second-type segment element; the first-type segment element includes partial bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element of the first-type segment element in the segment list; and the second-type segment element includes all bits of the corresponding address.

[0006] On the other hand, an embodiment of the present disclosure provides a message transmission device. The message transmission device includes: a receiving unit; the receiving unit is configured to receive a deterministic message; the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the types of the at least one segment element include a first-type segment element and a second-type segment element; the first-type segment element includes partial bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element of the first-type segment element in the segment list; and the second-type segment element includes all bits of the corresponding address.

[0007] In another aspect, an embodiment of the present disclosure provides a message transmission method. The message transmission method includes: sending a deterministic message; the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the types of the at least one segment element include a first-type segment element and a second-type segment element; the first-type segment element includes partial bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element of the first-type segment element in the segment list; and the second-type segment element includes all bits of the corresponding address.

[0008] In another aspect, an embodiment of the present disclosure provides a message transmission device. The message transmission device includes: a sending unit; the sending unit is configured to send a deterministic message; the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the at least one segment element includes a first-type segment element and a second-type segment element; the first-type segment element includes partial bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element of the first-type segment element in the segment list; and the second-type segment element includes all bits of the corresponding address.

[0009] In another aspect, an embodiment of the present disclosure provides a communication device comprising: a memory and a processor; the memory and the processor are coupled; the memory is configured to store a computer program; and the processor implements the message transmission method described in any of the above embodiments when executing the computer program.

[0010] On the other hand, an embodiment of the present disclosure provides a computer-readable storage medium, on which computer program instructions are stored. When the computer program instructions are executed by a processor, the message transmission method described in any of the above embodiments is implemented.

[0011] On the other hand, an embodiment of the present disclosure provides a computer program product, which includes computer program instructions, and when the computer program instructions are executed by a processor, implements the message transmission method described in any of the above embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] To more clearly illustrate the technical solutions of the present disclosure, the following briefly introduces the drawings required for use in some embodiments of the present disclosure. Obviously, the drawings described below are only drawings of some embodiments of the present disclosure, and those skilled in the art can also derive other drawings based on these drawings.

[0013] FIG1 is a diagram of a system architecture according to some embodiments.

[0014] FIG2 is a flow chart of a message transmission method according to some embodiments.

[0015] FIG3 is a flowchart of another message transmission method according to some embodiments.

[0016] FIG4 is a schematic flow chart of another message transmission method according to some embodiments.

[0017] FIG5 is a flowchart of another message transmission method according to some embodiments.

[0018] FIG6 is a flowchart of another message transmission method according to some embodiments.

[0019] FIG7 is a schematic diagram of the structure of a routing header in a deterministic message according to some embodiments.

[0020] FIG8 is a flowchart of another message transmission method according to some embodiments.

[0021] FIG9 is a schematic flow chart of another message transmission method according to some embodiments.

[0022] FIG10 is a flowchart of another message transmission method according to some embodiments.

[0023] FIG11 is a flowchart of another message transmission method according to some embodiments.

[0024] FIG12 is a diagram illustrating a path structure using time slot resources according to some embodiments.

[0025] FIG13 is a structural diagram of a RH-TR using time slot resources according to some embodiments.

[0026] FIG14 is a structural diagram of a RH-TR using delay resources according to some embodiments.

[0027] FIG15 is a schematic structural diagram of a communication device according to some embodiments.

[0028] FIG16 is a schematic structural diagram of another communication device according to some embodiments.

[0029] FIG17 is a schematic structural diagram of yet another communication device according to some embodiments. DETAILED DESCRIPTION

[0030] The following will clearly and completely describe the technical solutions of this disclosure in conjunction with the accompanying drawings. Obviously, the embodiments described are only some of the embodiments of this disclosure, not all of them. All other embodiments derived by persons of ordinary skill in the art based on the embodiments of this disclosure without inventive effort are within the scope of protection of this disclosure.

[0031] It should be noted that in this disclosure, expressions such as "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described in this disclosure as "exemplarily" or "for example" should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of expressions such as "exemplarily" or "for example" is intended to present the relevant concepts in a detailed manner.

[0032] In the following, the terms "first," "second," etc. are used for descriptive purposes only and should not be understood to indicate or imply relative importance or implicitly specify the quantity of the technical features indicated. Therefore, a feature specified as "first" or "second" may explicitly or implicitly include one or more of the features.

[0033] In the description of this disclosure, unless otherwise specified, " / " means "or." For example, A / B can mean A or B. "And / or" herein is simply a description of an association relationship between associated objects, indicating that three possible relationships exist. For example, A and / or B can mean: only A, only B, and A and B. Furthermore, "at least one" means one or more, and "a plurality" means two or more.

[0034] A deterministic forwarding path is a path that instructs multiple nodes to forward packets hop by hop along a predetermined path during packet transmission. When forwarding packets based on a deterministic forwarding path, a source node can encapsulate a segment list containing multiple segment elements in a routing header, where each segment element includes a 128-bit Internet Protocol version 6 (IPv6) address corresponding to a node or link. This allows intermediate nodes to forward packets based on the IPv6 addresses in the segment elements.

[0035] However, when there are many nodes in the deterministic forwarding path, the segment list will include multiple 128-bit IPv6 addresses, which will result in a longer length of the deterministic message and increase the overhead of message transmission.

[0036] If each segment element includes a 128-bit IPv6 address, the message length will be longer, increasing the message transmission overhead. For example, in the scenario where segment routing is applied to an IPv6 network (also known as SRv6), there is a routing header with a routing type field value of 4 (also known as RH4). In RH4, each segment element in the segment list includes a 128-bit IPv6 address. However, this will result in a longer message length encapsulating the segment list, reducing the message payload efficiency and thus increasing the message transmission overhead.

[0037] If multiple intermediate nodes have the same prefix, the segment element only needs to include some bits other than the prefix. However, this is only applicable to scenarios where multiple intermediate nodes have the same prefix, which has high limitations and cannot be applied to complex scenarios.

[0038] For example, in a routing header (also known as RH3) with a routing type field value of 3, the addresses corresponding to all segment elements in the segment list have a common prefix. Therefore, only the difference part that is different from the prefix needs to be stored in the segment element, and the common prefix is ​​stored in the destination address (DA) field of the IPv6 Header in the message. In this way, when transmitting a message, the message transmission address can be determined by the difference part stored in the segment element and the common prefix in the DA field, thereby reducing the size of the routing header and reducing the overhead of message transmission. However, RH3 requires that the addresses corresponding to all segment elements in the segment list have the same common prefix, and the length of the difference part in all segment elements is the same, which has high limitations and is only applicable to a single scenario.

[0039] To address the above technical issues, embodiments of the present disclosure provide a message transmission method. In a segment list of a deterministic message, the types of segment elements may include first-type segment elements and second-type segment elements. Because the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element, the first-type segment element only needs to include some bits other than the prefix, thereby reducing the message length and message transmission overhead.

[0040] Furthermore, the second-type segment element includes all bits of the corresponding address, and the corresponding address does not need to have the same prefix as the address corresponding to the previous segment element. This allows the first node to directly determine the corresponding address from the second-type segment element, enabling deterministic messages to be transmitted over a path without duplicate prefixes while reducing overhead, making it applicable to a variety of scenarios.

[0041] The message transmission method provided by the embodiment of the present disclosure can be applied to the communication system as shown in Figure 1. As shown in Figure 1, the communication system includes: multiple nodes. Figure 1 takes a first node 101 and a second node 102 as an example for description.

[0042] The first node 101 is in communication with the second node 102. The second node 102 is the previous node of the first node 101.

[0043] In one implementation, when the second node 102 is the head node, the first node 101 is the notification node of the first segment element in the logical segment list corresponding to the forwarding path (the notification node of a segment element is the host node that generates and allocates the segment element). When the second node 102 is the notification node of a segment element in the logical segment list corresponding to the forwarding path, the first node 101 can be the notification node of the next segment element in the logical segment list corresponding to the forwarding path, or can be the tail node in the logical segment list corresponding to the forwarding path. The first node 101 and the second node 102 can be terminals, servers, or other types of electronic devices, which are not limited in this embodiment of the present disclosure. The logical segment list is the original segment list determined based on the forwarding path.

[0044] It should be understood that the notification node is the host node of a segment element, on which the segment element is configured and generated. All nodes in the network will generate their corresponding segment identifiers (ie, corresponding addresses).

[0045] The routing header in the implementation of the present disclosure may also be referred to as a routing extension header.

[0046] In an embodiment of the present disclosure, first node 101 can receive a deterministic message sent by second node 102. The routing header in the deterministic message includes a segment list corresponding to a deterministic forwarding path. The segment list includes first-type segment elements and second-type segment elements. In this way, first node 101 can determine the address corresponding to the next segment element based on the segment list in the deterministic message and then transmit the deterministic message based on this address. The address corresponding to a segment element is the local address assigned to the node announcing the segment element.

[0047] It should be noted that FIG1 is only an exemplary framework diagram. The number of devices included in FIG1 and the names of the devices are not limited. In addition to the devices shown in FIG1 , the communication system may also include other devices (such as base stations).

[0048] The application scenarios of the embodiments of the present disclosure are not limited. The system architecture and business scenarios described in the embodiments of the present disclosure are intended to more clearly illustrate the technical solutions of the embodiments of the present disclosure and do not constitute a limitation on the technical solutions provided by the embodiments of the present disclosure. It is known to those skilled in the art that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present disclosure are also applicable to similar technical problems.

[0049] The message transmission method provided by the embodiment of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0050] The message transmission method provided by the embodiment of the present disclosure can be applied to the first node 101 in the communication system shown in Figure 1. Figure 2 shows a flow chart of a message transmission method. As shown in Figure 2, the message transmission method includes S201.

[0051] S201: A first node receives a deterministic message.

[0052] The routing header of a deterministic message includes a segment list. The segment list includes at least one segment element. The at least one segment element includes a first-type segment element and a second-type segment element. The first-type segment element includes partial bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the segment element preceding the first-type segment element in the segment list. The second-type segment element includes all bits of the corresponding address.

[0053] In some implementations, the first node may receive a deterministic message sent by the second node. The deterministic message is a message encapsulated by the head node (also referred to as the source node) based on the deterministic forwarding path. Therefore, the routing header of the deterministic message includes a segment list indicating the deterministic forwarding path. In the deterministic forwarding path, a segment element in the segment list corresponds to a node or link (that is, the message forwarded along the segment element will be sent to the notification node of the segment element, or to the unidirectional link of the notification node of the segment element), and the segment element includes some or all bits of the address corresponding to the segment element. In this way, the first node can determine the address corresponding to the next segment element based on some or all bits in the next segment element in the segment list, and thus can transmit the deterministic message based on the address corresponding to the next segment element. The partial bits include multiple consecutive bits.

[0054] In one implementation, multiple segment elements in the segment list in the routing header can be stored in the order of the logical segment list corresponding to the deterministic forwarding path. For example, for a logical segment list corresponding to a deterministic forwarding path, <S1,S2,S3,...,S n >, S1 is the first segment element in the logical segment list, S n is the last segment element in the logical segment list. In this case, in the segment list in the routing header, S1 is the segment element closest to the basic routing header. Alternatively, multiple segment elements in the segment list in the routing header can be stored in the reverse order of the logical segment list corresponding to the deterministic forwarding path. In this case, in the segment list in the routing header, S1 is the segment element farthest from the basic routing header. It should be understood that when multiple segment elements are stored in reverse order, the order in which the segment elements are read is also reversed.

[0055] In another implementation, when the head node sends a message to the first segment element in the logical segment list, it does not need to store the first segment element in the logical segment list in the segment list in the routing header. In this way, the bytes corresponding to the first segment element can be saved in the routing header. For example, for a deterministic forwarding path corresponding to the logical segment list Segment List <S1,S2,S3,...,S n >, the segment list in the routing header contains only <S2,S3,...,S n >.

[0056] The logical segment list is the original segment list corresponding to the forwarding path, that is, the logical segment list includes segment elements corresponding to all the notifying nodes in the forwarding path, and each segment element includes all bits in the corresponding address.

[0057] Since the type of segment element may include two types of segment elements, the two types of segment elements will be described separately below.

[0058] Type 1: First type segment element:

[0059] In some implementations, when the next segment element is determined to be a first-type segment element, the address corresponding to the next segment element and the address corresponding to the current segment element (i.e., the address corresponding to the current segment element with the first node as the notification node) share a common prefix. Therefore, the first node can determine the address corresponding to the next segment element based on the common prefix and a portion of the bits in the next segment element (excluding the common prefix), and thus can transmit a deterministic message based on the address. In this way, because the segment element only includes a portion of the address bits, the routing header is smaller, which can reduce the overhead of message transmission.

[0060] In some embodiments, the first-type segment element further includes at least one of the following: the position of the partial bits in the address, a reset flag, and a forwarding information flag corresponding to the segment element. The reset flag is used to indicate whether the next segment element is a second-type segment element. After determining that the next segment element is a first-type segment element, the first node may determine the address corresponding to the next segment element based on the position of the partial bits in the address and the address corresponding to the current segment element. This eliminates the need to include a common prefix in the routing header, thereby saving fields.

[0061] In some other embodiments, the first-type segment element includes multiple structures, and the lengths of some bits in the first-type segment elements of different structures in the multiple structures are different. In this way, multiple addresses of multiple nodes in a deterministic forwarding path can include common prefixes of different lengths. For example, the common prefix between node A and node B is 32 bits, and the common prefix between node B and node C is 64 bits. This allows deterministic messages to adapt to scenarios where the common prefix lengths vary in the deterministic forwarding path.

[0062] Type 2: Second type segment element:

[0063] In some implementations, when it is determined that the next segment element is a second-type segment element, the address corresponding to the next segment element and the address corresponding to the current segment element (i.e., the address corresponding to the current segment element with the first node as the notification node) have no common prefix, and therefore, the next segment element includes all bits of the corresponding address. The first node can directly transmit the deterministic message based on the address corresponding to the next segment element. In this way, during the transmission of the deterministic message on the deterministic forwarding path, the first-type segment element can be used between multiple adjacent nodes with the same prefix to represent the address of the next notification node, and the second-type segment element can be used between adjacent nodes without the same prefix to represent the address of the next notification node. The first-type segment element with a different structure (i.e., different lengths of some bits) can also be used between nodes with different common prefix lengths to represent the address of the next notification node, thereby adapting to a variety of complex scenarios (for example, a combination of the above-mentioned multiple scenarios).

[0064] In addition, the method in the embodiment of the present disclosure does not need to rely on the local segment identification table entry or the local index table entry in the network node to determine the address corresponding to the next segment element. Each node can determine the address corresponding to the next segment element by itself, and since it does not need to rely on the network node, it can also support offline tools to parse the message.

[0065] In some embodiments, the second type segment element further includes at least one of the following: a next segment element type, and a forwarding information identifier corresponding to the segment element.

[0066] In one implementation, the second-type segment element may further include a reserved bit.

[0067] In the disclosed embodiment, the routing header also includes a next segment element type. Thus, the first node can determine the type of the next segment element in the segment list based on the next segment element type in the routing header, thereby resolving the segment element from the segment list based on the pre-defined structure of different types of segment elements. For example, if the next segment element is determined to be a second-type segment element based on the next segment element type in the routing header, the first node can determine that the bits of the resolved address are all the bits of the address.

[0068] Figure 3 shows a flow chart of another message transmission method. In combination with Figure 2, as shown in Figure 3, after the above S201, the message transmission method further includes S301 and S302.

[0069] S301: The first node determines the length of the next segment element in the segment list based on the next segment element type in the routing header, and reads the next segment element from the segment list as the active segment element.

[0070] In some implementations, after receiving a deterministic message, the first node needs to determine the address corresponding to the next segment element. Therefore, the first node needs to determine the type of the next segment element in the segment list based on the next segment element type in the routing header. The first node can then determine the length of the next segment element based on a pre-stored correspondence between segment element types.

[0071] The segment element type correspondence includes a segment element type and the length of each field (eg, partial bits, forwarding information identifier, etc.) in the segment element. The length of each field may be the number of bits.

[0072] S302: The first node updates the number of units to be processed based on the length of the active segment element.

[0073] The routing header also includes the number of units to be processed, which is used to indicate the total number of data units occupied by the segment elements to be processed in the segment list, and the data unit includes a preset number of bytes.

[0074] In some implementations, after determining the length of the next segment element, the first node may update the number of units to be processed after parsing the next segment element (i.e., the active segment element is updated to the next segment element), so that the notification node of the active segment element can determine whether the routing header has been processed. For example, when the length of the active segment element is 8 bytes and the preset number of bytes is 4 bytes, the first node may reduce the number of units to be processed by two after updating the active segment element.

[0075] Alternatively, before updating the active segment element, the first node can decrement the number of units to be processed by one, and then parse the next segment element from the segment list as the active segment element. The first node can then perform additional subtraction based on the length of the active segment element to indicate whether the notification node segment list for the active segment element has been processed. For example, if the first node decrements the number of units to be processed by one and determines that the length of the next segment element is 8 bytes and the preset number of bytes is 4 bytes, since the number of units to be processed has already been decremented by one, it only needs to decrement the number of units to be processed by one after parsing the next segment element.

[0076] In one implementation, the first node may determine from which part of the segment list to start parsing the next segment element based on the number of units to be processed.

[0077] It is understandable that when the number of units to be processed in the routing header of the received message is 0, the first node can determine that there are no segment elements to be parsed, and therefore can directly process the inner payload. The inner payload can be determined based on the Next Header in the routing header.

[0078] Figure 4 shows a flow chart of another message transmission method. In combination with Figure 2, as shown in Figure 4, when the next segment element type is a first type segment element, after the above S201, the message transmission method further includes S401.

[0079] S401: A first node updates a destination address based on some bits in an address corresponding to an active segment element and positions of some bits in the address.

[0080] The active segment element is the next segment element in the segment list.

[0081] In some implementations, the first node may determine the type of the next segment element in the segment list, i.e., the type of the active segment element, based on the next segment element type in the routing header. The first node may then determine the value of each field in the active segment element based on a predetermined structure of the segment element type, such as a portion of the bits in the address corresponding to the active segment element.

[0082] Because the next segment element is a first-type segment element, the address parsed by the first node is a partial bit, not a complete address. In this case, since the address corresponding to the next segment element and the address corresponding to the current segment element share the same common prefix, and the partial bits are the portion of the address corresponding to the next segment element excluding the common prefix, the first node can determine the new destination address based on the partial bits and their position in the address, thereby updating the destination address to the address corresponding to the next hop.

[0083] It can be understood that the structure of the preset segment element type is the fields included in each segment element and the length of each field.

[0084] The destination address can be the address in the DA field of the IPv6 header. When the first node receives the deterministic message, the destination address in the DA field of the IPv6 header is the first node's address, that is, the address corresponding to the current segment element. The first node needs to update the destination address to the address corresponding to the next segment element.

[0085] In one implementation, when the value of the partial bits in the address is 0, the first node may determine that the partial bits are located at the lower (or last) bits in the address corresponding to the next segment element. For example, when the partial bits are 16 bits and the value of the partial bits in the address is 0, the first node may determine that the partial bits are located at the lower or last 16 bits in the address corresponding to the next segment element. In this way, since the destination address before the update is the address corresponding to the current segment element, the lower or last 16 bits in the destination address can be replaced with the partial bits, thereby obtaining a new destination address.

[0086] In the case where the value of the position of the partial bits in the address is not 0, the value of the position of the field partial bits in the address can represent the length of the common prefix, and the position of the partial bits is after the common prefix of this length. For example, in the case where the partial bits are 16 bits and the value of the position of the field partial bits in the address is 32 bits, the first node can determine that the position of the partial bits in the address is the 16 bits after the high (or front) 32 bits, that is, the high 32 bits are the common prefix. Afterwards, the first node maintains the high 32 bits in the destination address unchanged, replaces the 16 bits after the high 32 bits with the partial bits, and sets the remaining bits to 0.

[0087] Figure 5 shows a flow chart of another message transmission method. In combination with Figure 2, as shown in Figure 5, when the next segment element type is a second type segment element, after the above S201, the message transmission method further includes S501.

[0088] S501: The first node updates the destination address based on the address in the active segment element.

[0089] The active segment element is the next segment element in the segment list.

[0090] In some implementations, the first node may determine the type of the next segment element in the segment list based on the next segment element type in the routing header. The first node may then determine the value of each field in the segment element, such as the address corresponding to the segment element, based on a predetermined structure of the segment element type.

[0091] When the next segment element type is a second type segment element, the address in the next segment element parsed by the first node is the complete address corresponding to the next segment element. In this way, the first node can directly update the destination address to the complete address corresponding to the next segment element.

[0092] Figure 6 shows a flow chart of another message transmission method. In combination with Figure 2, as shown in Figure 6, after the above S201, the first node may update the next segment element type in the routing header, and the message transmission method further includes S601.

[0093] S601: The first node updates the next segment element type in the routing header based on the reset flag or the next segment element type in the active segment element.

[0094] The active segment element is the next segment element in the segment list.

[0095] In one implementation, when the active segment element is a first-type segment element, the first node may update the next segment element type in the routing header based on the reset flag in the active segment element to determine the type of the next segment element.

[0096] In the case that the active segment element is a second-type segment element, the first node may update the next segment element type in the routing header based on the next segment element type in the active segment element to determine the next segment element type.

[0097] In an embodiment of the present disclosure, each segment element in the segment list in the routing header may include, in addition to the corresponding address, a forwarding information type, so that each node may transmit deterministic messages through forwarding information (also referred to as forwarding resources).

[0098] In some embodiments, the routing header in the deterministic message may include, in addition to the segment list, a forwarding information type, where the forwarding information type is used to indicate at least one of the following: a time slot resource type or a delay resource type.

[0099] If the forwarding information type indicates a time slot resource type, the forwarding information identifier of the segment element indicates the time slot number. Alternatively, if the forwarding information type indicates a delay resource type, the forwarding information identifier of the segment element indicates the planned dwell time. In this way, in addition to determining the destination address for message transmission, the first node can also determine, based on the forwarding information type and the forwarding information identifier corresponding to the segment element, whether the forwarding information corresponding to each segment element is a time slot number or a planned dwell time, thereby enabling nodes to use different forwarding information to transmit messages.

[0100] In one implementation, the forwarding information identifier is used to indicate at least one of the following: forwarding resources, quality of service (QoS) policy, and service function.

[0101] In another implementation, the routing header further includes a common forwarding information identifier; when the forwarding information type indicates a time slot resource type, the common forwarding information identifier indicates an orchestration period length; or, when the forwarding information type indicates a delay resource type, the common forwarding information identifier indicates a delay deviation. The first node may determine the forwarding resources used by each node to forward the deterministic message based on the common forwarding information identifier and the forwarding information identifier and forwarding information type corresponding to each segment element.

[0102] In addition to the above forwarding information type, the common forwarding information identifier, and the forwarding information identifier corresponding to the segment element, the routing header of the deterministic message may also include other content.

[0103] In some embodiments, the routing header further includes at least one of the following: an initial segment element type, a padding field length, and a number of units to be processed. The initial segment element type is the type of the first segment element in the segment list in the routing header. The padding field length is the length of the padding field used to align the routing header. The number of units to be processed is used to indicate the total number of data units occupied by the segment elements to be processed in the segment list, where a data unit includes a preset number of bytes (e.g., 4 bytes).

[0104] It is understood that the padding field length can be the length of the padding field used to align the routing header to 8 bytes. The padding field length is not the length of the padding field in bits, but is determined based on the number of bytes in the padding field. For example, when the padding field is empty, the padding field length is 0, and when the padding field is 4 bytes, the padding field length is 1.

[0105] The above is a description of various fields in the routing header. The following describes various fields in the routing header with examples.

[0106] As an example, a schematic diagram of the structure of a routing header in a deterministic message is shown in Figure 7. The routing header may be referred to as a routing header with topology and resource (RH-TR).

[0107] The RH-TR may include the next header type (Next Header), the byte overhead of the routing header (Hdr Ext Len), the routing header type (Routing Type), the number of units to be processed (Segments Left), the initial segment element type (initial tuple style, iTS), the next segment element type (next tuple style, nTS), the forwarding information type (resource type, RT), the padding field (Pad flag, P), and the common forwarding information identifier (Common RI).

[0108] Next Header, occupies 8 bits and is used to identify the type of the inner header immediately following the routing header.

[0109] Hdr Ext Len, occupies 8 bits and is used to identify the byte overhead of the routing header, that is, how many 8 bytes are included in the RH-TR. For ease of description, the first 8 bytes are referred to as the basic header in the embodiment of the present disclosure.

[0110] Routing Type, occupies 8 bits, and its value can be used to indicate that the type of the routing header is RH-TR.

[0111] Segments Left, occupies 8 bits and is used to indicate how many data units are left in the segment list and have not been processed. It should be understood that the first node reading the next segment element can indicate that the segment element has been processed.

[0112] iTS, occupies 2 bits and is used to indicate the type of the first segment element in the segment list.

[0113] nTS, occupies 2 bits and is used to indicate the type of the next segment element in the segment list.

[0114] RT, occupies 3 bits and is used to indicate the forwarding information type. For example, when its value is 0, it is reserved and undefined. When it is 1, it indicates that the forwarding information type is a timeslot resource type; when it is 2, it indicates that the forwarding information type is a delay resource type.

[0115] P, occupies 1 bit and is used to indicate the length of the padding field. When P is 0, it indicates a length of 0, and when P is 1, it indicates a length of 4 bytes. It should be understood that the padding resource is a field used to pad the routing header to 8-byte alignment.

[0116] Common RI, occupies 24 bits and is used to indicate the common forwarding information identifier required by all segment elements.

[0117] For example, when RT is 1, the Common RI field contains the orchestration period length (OPL) in microseconds (us). When RT is 2, the Common RI field contains the latency deviation (E).

[0118] It should be understood that part of the bits or all of the bits included in the segment element may be a segment identifier (Segment identifier, SID).

[0119] Regarding the type of segment elements, RH-TR may include four types of segment elements: style0, style1, style2, and style3.

[0120] style0 is a second-type segment element, which is composed of <SID (128 bits), fTS (2 bits), MBZ (18 bits), Individual RI (12 bits)>, totaling 20 bytes. SID (Segment Identifier) occupies 128 bits, which are all the bits of the address corresponding to this segment element, and is used as a topological instruction for at least the egress interface or destination node of deterministic packets. fTS (following Tuple Style) occupies 2 bits, indicating the type of the next segment element. MBZ (must be zero) occupies 18 bits, which are unused reserved bits and are set to 0. Individual RI occupies 12 bits, that is, the forwarding information identifier corresponding to the segment element, used to represent the forwarding information identifier corresponding to this segment element.

[0121] style1 is a first-type segment element, which is composed of <SID (16 bits), cmprl (3 bits), R (1 bit), Individual RI (12 bits)>, totaling 4 bytes. SID (Segment Identifier): occupies 16 bits, used to represent part of the bits of the address corresponding to this segment element, and is used as a topological instruction for at least the egress interface or destination node of deterministic packets. cmprl (Common Prefix Length) occupies 3 bits, indicating the length of the common prefix (i.e., the position of part of the bits in the address). R (reset of style) occupies 1 bit, that is, the reset identifier, used to indicate whether the type of the next segment element is reset to style0. Individual RI occupies 12 bits, that is, the forwarding information identifier corresponding to the segment element, used to represent the forwarding information identifier corresponding to this segment element.

[0122] style2 is another first-type segment element with different partial bit lengths, which is composed of <SID (20 bits), cmprl (3 bits), R (1 bit), Individual RI (8 bits)>, totaling 4 bytes. The explanations of each field are the same as those of style1.

[0123] Style3 is another first-type segment element with different partial bit lengths, which is composed of <SID (32 bits), MBZ (16 bits), cmprl (3 bits), R (1 bit), Individual RI (12 bits)>, totaling 8 bytes. The explanations of each field are the same as those of style1.

[0124] For Individual RI, when RT is 1, the Individual RI field contains the timeslot ID. When RT is 2, the Individual RI field contains the planned residence time (PRT) in microseconds (us).

[0125] For cmprl, when cmprl is 0, the logical low bits of the same length as the SID in the destination address (DA) field of the current IPv6 Header are replaced with the SID, and the updated DA, i.e., the new DA, is obtained, such as common prefix::SID. When cmprl is not 0, the SID is overwritten after the logical high bits of the same length as the value of cmprl in the DA field of the current IPv6 Header, and the remaining logical low bits are padded with zeros, to obtain the updated DA, i.e., the new DA is in the form of common prefix:SID::. For example, when cmprl is 2, the bits after the upper 2 bytes of the address in the DA field that are the same length as the SID are replaced with the SID, and the remaining bits are set to 0, thereby determining the new DA.

[0126] The segment list in Figure 7 includes, in reverse order, segment elements S1 to Si-1 of type style1, segment element Si of type style0, segment elements Si+1 to Sj-1 of type style2, segment element Sj of type style0, and segment elements Sj+1 to Sn of type style3.

[0127] In an embodiment of the present disclosure, after receiving a deterministic message, the first node can determine the address corresponding to the next segment element of the message transmission based on multiple fields in the routing header, and also needs to update the deterministic message. The following will describe how the first node updates the deterministic message and determines the address corresponding to the next segment element after receiving the routing header.

[0128] The following describes the process after the first node receives the deterministic message with the help of the above example:

[0129] In the above example, Segments Left is the number of units to be processed, Segment List is the segment list, and Segment is the segment element.

[0130] When it is determined that the IPv6 Hop Limit value of the IPv6 Header is less than or equal to 1, the first node can determine that it can no longer forward the message. Therefore, it can send an ICMP Time Exceeded--Hop Limit Exceeded in Transit warning message to the head node according to the address of the head node to instruct the head node to reach the maximum number of hops.

[0131] In one implementation, the common RI field in the RH-TR may also be stored in an IPv6 option header (hop-by-hop, HBH) option.

[0132] The message transmission method provided in the embodiment of the present disclosure can be applied to the second node 102 in the communication system shown in Figure 1. Figure 8 shows a flow chart of another message transmission method. As shown in Figure 8, the message transmission method includes S801.

[0133] S801: The second node sends a deterministic message.

[0134] The routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the types of the at least one segment element include first-type segment elements and second-type segment elements; the first-type segment element includes partial bits of the corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element of the first-type segment element in the segment list; the second-type segment element includes all bits of the corresponding address.

[0135] It can be understood that, for the description of the deterministic message and the description of the second node sending the deterministic message, reference can be made to the description of the first node, and the embodiments of the present disclosure will not be repeated here.

[0136] Since the second node is a node that sends deterministic messages, the second node may be a head node. The following is a description of the case where the second node is the head node.

[0137] In some embodiments, Figure 9 shows a flow chart of another message transmission method. In combination with Figure 8 , as shown in Figure 9 , when the second node is a head node, the message transmission method further includes: S901 .

[0138] S901: The second node sets a segment list in a routing header based on a logical segment list.

[0139] The first segment element in the segment list corresponds to the first or second segment element in the logical segment list. The logical segment list is the original segment list determined based on the forwarding path. Each segment element in the logical segment list includes all bits of the corresponding address, the compressed partial bits, the position of the partial bits in the corresponding address, the compressed segment element type, the type of the next compressed segment element, and the forwarding information type and forwarding information identifier.

[0140] In some implementations, since the second node is the head node of the forwarding path, the second node needs to encapsulate the routing extension header into the message to obtain a deterministic message. The second node can set each segment element in the segment list in the routing header based on the logical segment list corresponding to the forwarding path.

[0141] It can be understood that, when the segment list includes all the segment elements of the logical segment list, the first segment element in the segment list corresponds to the first segment element in the logical segment list. When the segment list includes segment elements other than the first segment element of the logical segment list, the first segment element in the segment list corresponds to the second segment element in the logical segment list.

[0142] In one implementation, the head node may determine the forwarding path by itself or through a controller.

[0143] In yet another implementation, when the second node is a head node and the first segment element in the segment list in the routing header corresponds to the second segment element in the logical segment list, the number of units to be processed is set to the number of data units occupied by the multiple segment elements in the segment list. Because the routing header does not include the first segment element in the logical segment list, the head node does not parse the segment elements in the segment list when sending the deterministic message, and the number of units to be processed is the number of data units occupied by the segment list.

[0144] Alternatively, if the second node is the head node and the first segment element in the segment list in the routing header corresponds to the first segment element in the logical segment list, the number of units to be processed is set to the number of data units occupied by the segment elements in the segment list in the routing header, excluding the first segment element. The head node sends a deterministic message based on the first segment element in the segment list; therefore, the first segment element has already been parsed. Thus, the number of units to be processed in the deterministic message sent by the second node is the number of data units occupied by the segment elements excluding the first segment element, i.e., the number of data units occupied by the remaining segment elements to be processed.

[0145] In some embodiments, a flow chart of another message transmission method is shown in FIG10. In combination with FIG8, as shown in FIG10, when the second node is a head node, the message transmission method further includes: S1001.

[0146] S1001. The second node takes the first segment element in the logical segment list as the active segment element, and sets the type of the next segment element in the routing header based on the type corresponding to the next segment element in the active segment element.

[0147] In some implementations, in order to enable the notifying node of the active segment element to know the type of the next segment element of the active segment element, the second node can set the next segment element type in the routing header to the next segment element type in the active segment element, that is, the type of the second segment element in the logical segment list.

[0148] In one implementation, when the second node is a head node, the second node may use the first segment element in the logical segment list as the active segment element. When the second node is not a head node, the second node determines the length of the next segment element in the segment list based on the next segment element type in the routing header, and reads the next segment element from the segment list as the active segment element.

[0149] In some embodiments, a flow chart of another message transmission method is shown in FIG11. In combination with FIG8, as shown in FIG11, when the second node is a head node, the message transmission method further includes: S1101.

[0150] S1101. The second node sets the initial segment element type to the type of the first segment element in the segment list.

[0151] The initial segment element type is the type of the first segment element in the segment list.

[0152] In some implementations, after setting the segment list, the second node may determine the type of the first segment element in the segment list and set the initial segment element type to the type of the first segment element in the segment list.

[0153] In one implementation, the initial segment element type may be the type of the first segment element in the logical segment list, or the type of the second segment element in the logical segment list.

[0154] In another implementation, after determining the destination address for sending the deterministic message, the second node may determine the forwarding information used to send the deterministic message based on the forwarding information type, the common forwarding information identifier, and the forwarding information identifier corresponding to the segment element. In this way, the second node may send the deterministic message based on the forwarding information and the destination address.

[0155] Combined with the above example, the head node can use the first segment element in the logical segment list as the active segment element, set iTs to the type of the first segment element in the segment list in the routing header, and set nTS to the type of the next segment element of the active segment element, that is, set it according to R or fTS of the active segment element, that is:

[0156] If the type of the active segment element S1 (i.e. the first segment element in the logical segment list) is not style0:

[0157] If S1.R is equal to 0, then nTS=iTS

[0158] If S1.R is equal to 1, then nTS=style0

[0159] If the active segment element S1 is of type style0:

[0160] nTS=S1.fTS (i.e. determined based on the fTS of the first segment element).

[0161] S1.R indicates whether the type of the next segment element of the active segment element S1 is reset to style0.

[0162] Or a more concise setting is for the head node to set nTS as the type of the second segment element of the logical segment list.

[0163] The above describes the various fields in the routing header of a deterministic message, as well as the processing flow after the first node receives the routing header. The following describes these details in conjunction with Scenario 1 and Scenario 2. Scenario 1: Time slot resource type; Scenario 2: Delay resource type.

[0164] Scenario 1: Time slot resource type.

[0165] Figure 12 shows a path structure diagram using time slot resources. As shown in Figure 12, deterministic packets are transmitted along a deterministic forwarding path using the TQF scheduling mechanism. Each segment element in the RH-TR segment list contains 16 bits of the full address. All interfaces in the deterministic forwarding path are 128-bit IPv6 addresses with the same common prefix, 2001:db80:. The following are the IPv6 addresses of the four interfaces:

[0166] The address ip_a1 of interface intf_a1 is 2001:db80:a100::; the address ip_b1 of interface intf_b1 is 2001:db80:b100::; the address ip_c1 of interface intf_c1 is 2001:db80:c100::; and the address ip_d1 of interface intf_d1 is 2001:db80:d100::.

[0167] This deterministic forwarding path includes the head node S to the tail node D. It is a strictly explicit routed traffic engineering path (TE path) and specifies each interface and the time slot resources on the interface. This TE path may be calculated by the head node S itself or calculated by the request controller. According to the TQF scheduling mechanism, all interfaces included in the TE path are interconnected based on the same orchestration period length (OPL). In this scenario, an OPL of 1ms is used, that is, OPL-1ms. The time slot resources used from the head interface S to the interface D are as follows:

[0168] Adjacency<intf_s1,ip_a1> , and use the timeslot number 23 of the outgoing interface intf_s1; the adjacency<intf_a2,ip_b1> , and use the timeslot number 17 of the outgoing interface intf_a2; the adjacency<intf_b2,ip_c1> , and use the timeslot number 13 of the outgoing interface intf_b2; the adjacency<intf_c2,ip_d1> , and use time slot number 19 of outgoing interface intf_c2.

[0169] Figure 13 shows a structural diagram of an RH-TR using time slot resources. The head node can encapsulate the above-mentioned time slot number, address, etc. in the RH-TR. Since the addresses of each node have the same common prefix, the segment element only includes some bits, and the common prefix is ​​stored in the DA field in the IPv6 Header. In addition, RT=1 and common RI=1000 in the RH-TR, indicating that the OPL is 1000us. The SID (i.e., partial address) in the first segment element is a100, cmprl is 4, the value of R is 0, and the Individual RI is 23. iTs and nTS are style 1, P is 0, and Segment Left=3, indicating that there are still 3 4-byte data units to be processed.

[0170] Next, the flow of transmission of the routing header shown in FIG. 13 in the path shown in FIG. 12 will be described.

[0171] (1) Head node: The message is forwarded from head node S to the neighbor indicated by the first logical segment element. The original IPv6 address 2001:db80:a100:: corresponding to SID1 is copied to the DA field of the IPv6 header. The routing table is queried based on the DA field to obtain the target outbound interface intf_s1. The message is sent to outbound interface intf_s1 in time slot 23 of the OPL-1ms scheduling period of intf_s1. The sent message has Segment Left = 3.

[0172] (2) When the message arrives at node A, based on the DA field in the IPv6 header being equal to ip_a1, the node searches the IPv6 routing table and determines that ip_a1 is a local address. It then continues to resolve the RH-TR and performs the following steps in sequence to process the RH-TR:

[0173] S1301. If Segment Left is greater than 0, subtract 1 from Segment Left to 2.

[0174] S1302: Read the next 4-byte segment element from the segment list according to Segment List[Segment Left], and get<b100,4,0,17> .

[0175] S1303: Based on b100, the public prefix length 4, and the existing DA field, the DA address in the IPv6 header is updated to 2001:db80:b100::. The routing table is queried based on the DA and the target outbound interface is obtained as intf_a2.

[0176] S1304: Send the message to the target outbound interface intf_a2 in time slot 17 of the OPL-1ms scheduling period of intf_a2.

[0177] (3) When the message arrives at node B, it searches the IPv6 routing table for the DA field in the IPv6 header, which is equal to ip_b1. It then determines that ip_b1 is a local address and continues to parse the RH-TR. It then performs the following steps to process the RH-TR:

[0178] S1305: If it is determined that Segment Left is greater than 0, Segment Left is reduced by 1 to 1.

[0179] S1306: Read the next 4-byte segment element from the segment list according to Segment List[Segment Left], and get<c100,4,0,13> .

[0180] S1307: Based on c100, the public prefix length 4, and the existing DA field, the DA address in the IPv6 header is updated to 2001:db80:c100::. The routing table is queried based on the DA and the target outbound interface is obtained as intf_b2.

[0181] S1308: Send the message to the target outbound interface intf_b2 in time slot 13 of the OPL-1ms scheduling period of intf_b2.

[0182] (4) When the message arrives at node C, based on the DA field in the IPv6 header being equal to ip_c1, the node searches the IPv6 routing table and determines that ip_c1 is a local address. It then continues parsing the RH-TR and performs the following steps in sequence to process the RH-TR:

[0183] S1309: If it is determined that Segment Left is greater than 0, Segment Left is reduced by 1 to 0.

[0184] S1310: Read the next 4-byte segment element from the segment list according to Segment List[Segment Left], and get<d100,4,0,19> .

[0185] S1311: Based on d100, the public prefix length 4, and the existing DA field, the DA address in the IPv6 header is updated to 2001:db80:d100::. The routing table is queried based on the DA and the target outbound interface is intf_c2.

[0186] S1312: Send the message to the target outbound interface intf_c2 in time slot 19 of the OPL-1ms scheduling period of intf_c2.

[0187] (5) When the packet reaches the egress node D, the IPv6 routing table entry is queried based on the DA field in the IPv6 header being equal to ip_d1. The egress node then determines that ip_d1 is a local address and continues to resolve the RH-TR. The following steps are performed sequentially to process the RH-TR:

[0188] S1313: If Segment Left is determined to be 0, the IPv6 header and RH-TR are removed, and the inner payload is identified and processed according to the Next Header field of the RH-TR.

[0189] Scenario 2: The forwarding information type is the delay resource type.

[0190] Deterministic packets are transmitted along a deterministic forwarding path that uses the deadline scheduling mechanism. Each segment element in the RH-TR segment list contains 16 bits of the full address. As shown in Figure 12, the addresses of all interfaces in the deterministic forwarding path are 128-bit IPv6 addresses with the same common prefix 2001:db80:. The following are the IPv6 addresses of the four interfaces:

[0191] Adjacency<intf_s1,ip_a1> , and use the delay level 20us of the outbound interface intf_s1; the adjacency<intf_a2,ip_b1> , and use the delay level 30us of the outbound interface intf_a2; the adjacency<intf_b2,ip_c1> , and use the delay level 20us of the outbound interface intf_b2; the adjacency<intf_c2,ip_d1> , and use the latency level 40us of the outbound interface intf_c2.

[0192] Figure 14 shows the structure of an RH-TR using delay resources. The head node can encapsulate multiple fields, such as the delay level, in the RH-TR. RT is set to 2, indicating that delay resources are used. Common RI is set to 0, indicating that the delay deviation E is 0. Each segment element type is determined to be style 1. For example, the first segment element has an SID of a100, a cmprl of 4, an R value of 0, and an Individual RI of 20. Both iTs and nTS are style 1, P is 0, and Segment Left is 3, indicating that three 4-byte data units remain to be processed.

[0193] Next, the flow of transmission of the routing header shown in FIG. 14 in the path shown in FIG. 12 will be described.

[0194] (1) The message is forwarded from the head node S to the neighbor indicated by the logical first segment element (Segment). The original IPv6 address 2001:db80:a100:: corresponding to SID1 is copied to the DA field of the IPv6 header. The routing table is queried based on the DA field to obtain the target outbound interface intf_s1. The message is sent to outbound interface intf_s1, and the actual residence delay is not allowed to exceed the planned residence delay of 20us. Assuming the actual residence delay is 15us, the common RI is changed to 5 (i.e., 20-15). The Segment Left of the sent message is 3.

[0195] (2) When the message arrives at node A, based on the DA field in the IPv6 header being equal to ip_a1, the node searches the IPv6 routing table and determines that ip_a1 is a local address. It then continues to resolve the RH-TR and performs the following steps in sequence to process the RH-TR:

[0196] S1401. If Segment Left is greater than 0, subtract 1 from Segment Left to 2.

[0197] S1402: Read the next 4-byte segment element from the segment list according to Segment List[Segment Left], and get<b100,4,0,30> .

[0198] S1403: Based on b100, the public prefix length 4, and the existing DA field, the DA address in the IPv6 header is updated to 2001:db80:b100::. The routing table is queried based on the DA and the target outbound interface is obtained as intf_a2.

[0199] S1404: The message is sent to the target outbound interface intf_a2, and the actual residence delay is not allowed to exceed the planned residence delay by 30us, plus the delay deviation of 5us. Assuming that the actual residence delay is 15us, the common RI is modified to 20 (ie, 35-15).

[0200] (3) When the message arrives at node B, it searches the IPv6 routing table for the DA field in the IPv6 header, which is equal to ip_b1. It then determines that ip_b1 is a local address and continues to parse the RH-TR. It then performs the following steps to process the RH-TR:

[0201] S1405: If it is determined that Segment Left is greater than 0, Segment Left is reduced by 1 to 1.

[0202] S1406: Read the next 4-byte segment element from the segment list according to Segment List[Segment Left], and get<c100,4,0,20> .

[0203] S1407: Based on c100, the public prefix length 4, and the existing DA field, the DA address in the IPv6 header is updated to 2001:db80:c100::. The routing table is queried based on the DA and the target outbound interface is obtained as intf_b2.

[0204] S1108: The message is sent to the target outbound interface intf_b2, and the actual residence delay is not allowed to exceed the planned residence delay by 20us and the delay deviation by 20us. Assuming that the actual residence delay is 15us, the common RI is modified to 25 (40-15).

[0205] (4) When the message arrives at node C, based on the DA field in the IPv6 header being equal to ip_c1, the node searches the IPv6 routing table and determines that ip_c1 is a local address. It then continues parsing the RH-TR and performs the following steps in sequence to process the RH-TR:

[0206] S1409: If it is determined that Segment Left is greater than 0, Segment Left is reduced by 1 to 0.

[0207] S1410: Read the next 4-byte segment element from the segment list according to Segment List[Segment Left], and get<d100,4,0,19> .

[0208] S1411: Based on d100, the public prefix length 4, and the existing DA field, the DA address in the IPv6 header is updated to 2001:db80:d100::. The routing table is queried based on the DA and the target outbound interface is intf_c2.

[0209] S1112: The packet is sent to the target outbound interface intf_c2, and the actual dwell delay is not allowed to exceed the planned dwell delay of 40us and the delay deviation of 25us. Assuming that the actual dwell delay is 60us, the common RI is modified to 5 (65-60).

[0210] (5) When the packet reaches the egress node D, the IPv6 routing table entry is queried based on the DA field in the IPv6 header being equal to ip_d1. The egress node then determines that ip_d1 is a local address and continues to resolve the RH-TR. The following steps are performed sequentially to process the RH-TR:

[0211] S1413: If Segment Left is determined to be 0, the IPv6 header and RH-TR are removed, and the inner payload is identified and processed according to the Next Header field of the RH-TR.

[0212] It is understandable that, in order to implement the above functions, the communication device includes hardware structures and / or software modules corresponding to the execution of each function. It should be readily apparent to those skilled in the art that, in conjunction with the algorithmic steps of the various examples described in the embodiments of the present disclosure, the present disclosure can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present disclosure.

[0213] The embodiments of the present disclosure can divide the functional modules of the communication device according to the above-mentioned method embodiments. For example, each functional module can be divided corresponding to each function, or two or more functions can be integrated into one functional module. The above-mentioned integrated modules can be implemented in the form of hardware or software. It should be noted that the division of modules in the embodiments of the present disclosure is schematic and is only a logical functional division. In actual implementation, there may be other division methods. The following is an example of dividing each functional module corresponding to each function.

[0214] FIG15 is a schematic diagram of the structure of a communication device provided by an embodiment of the present disclosure, which can execute the communication method provided by the above method embodiment. As shown in FIG15 , the communication device includes: a receiving unit 1501.

[0215] Receiving unit 1501 is used to receive a deterministic message; the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the types of the at least one segment element include a first-type segment element and a second-type segment element; the first-type segment element includes partial bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element of the first-type segment element in the segment list; the second-type segment element includes all bits of the corresponding address.

[0216] In one implementation, the first type segment element further includes at least one of the following: the position of some bits in the address, a reset flag, and a forwarding information flag corresponding to the segment element; the reset flag is used to indicate whether the next segment element is a second type segment element.

[0217] In one implementation, the first-type segment element includes multiple structures, and the lengths of some bits in the first-type segment elements of different structures in the multiple structures are different.

[0218] In one implementation, the second type segment element further includes at least one of the following: a next segment element type, and a forwarding information identifier corresponding to the segment element.

[0219] In one implementation, the routing header also includes a next segment element type.

[0220] In one implementation, the routing header further includes a forwarding information type, where the forwarding information type is used to indicate at least one of the following: a time slot resource type and a delay resource type.

[0221] In one implementation, when the forwarding information type is used to indicate the time slot resource type, the forwarding information identifier of the segment element is used to indicate the time slot number; or, when the forwarding information type is used to indicate the delay resource type, the forwarding information identifier corresponding to the segment element is used to indicate the planned residence time.

[0222] In one implementation, the routing header also includes a common forwarding information identifier; when the forwarding information type is used to indicate a time slot resource type, the common forwarding information identifier is used to indicate an orchestration cycle length; or, when the forwarding information type is used to indicate a delay resource type, the common forwarding information identifier is used to indicate a delay deviation.

[0223] In one implementation, the forwarding information identifier is used to indicate at least one of the following: forwarding resources, quality of service (QoS) policy, and service function.

[0224] In one implementation, the at least one segment element includes other segment elements except the first segment element in a logical segment list; the logical segment list is an original segment list corresponding to the forwarding path.

[0225] In one implementation, the routing header also includes at least one of the following: an initial segment element type, a padding field length, and a number of units to be processed; the initial segment element type is the type of the first segment element in the segment list; the padding field length is the length of the padding field used to align the routing header; the number of units to be processed is used to represent the total amount of data units occupied by the segment elements to be processed in the segment list, and the data unit includes a preset number of bytes.

[0226] In one implementation, the communication device further includes a processing unit 1502 .

[0227] The processing unit 1502 is configured to determine the length of the next segment element in the segment list based on the next segment element type in the routing header, and read the next segment element from the segment list as the active segment element.

[0228] The processing unit 1502 is further configured to update the number of units to be processed based on the length of the next active segment element, where the active segment element is the next segment element in the segment list.

[0229] In one implementation, the processing unit 1502 is further configured to update the next segment element type in the routing header based on the reset flag or the next segment element type in the active segment element, where the active segment element is the next segment element in the segment list.

[0230] In one implementation, the processing unit 1502 is further configured to update the destination address based on a portion of bits in an address corresponding to an active segment element and a position of the portion of bits in the address, where the active segment element is the next segment element in the segment list.

[0231] In one implementation, the processing unit 1502 is further configured to update the destination address based on the address in the active segment element.

[0232] FIG16 is a second structural diagram of a communication device provided in an embodiment of the present disclosure, which can execute the communication method provided in the above method embodiment. As shown in FIG16 , the communication device includes: a sending unit 1601.

[0233] A sending unit 1601 is configured to send a deterministic message; the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the types of the segment elements include first-type segment elements and second-type segment elements; the first-type segment element includes partial bits of a corresponding address, and the address corresponding to the first-type segment element has the same prefix as the address corresponding to the previous segment element of the first-type segment element in the segment list; the second-type segment element includes all bits of the corresponding address.

[0234] In one implementation, the first type segment element further includes at least one of the following: the position of some bits in the address, a reset flag, and a forwarding information flag corresponding to the segment element; the reset flag is used to indicate whether the next segment element is a second type segment element.

[0235] In one implementation, the first-type segment element includes multiple structures, and the lengths of some bits in the first-type segment elements of different structures in the multiple structures are different.

[0236] In one implementation, the second type segment element further includes at least one of the following: a next segment element type, and a forwarding information identifier corresponding to the segment element.

[0237] In one implementation, the routing header also includes a next segment element type.

[0238] In one implementation, the routing header further includes a forwarding information type, where the forwarding information type is used to indicate, including but not limited to: a time slot resource type or a delay resource type.

[0239] In one implementation, when the forwarding information type is used to indicate the time slot resource type, the forwarding information identifier of the segment element is used to indicate the time slot number; or, when the forwarding information type is used to indicate the delay resource type, the forwarding information identifier corresponding to the segment element is used to indicate the planned residence time.

[0240] In one implementation, the routing header also includes a common forwarding information identifier; when the forwarding information type is used to indicate a time slot resource type, the common forwarding information identifier is used to indicate an orchestration cycle length; or, when the forwarding information type is used to indicate a delay resource type, the common forwarding information identifier is used to indicate a delay deviation.

[0241] In one implementation, the forwarding information identifier is used to indicate at least one of the following: forwarding resources, QoS policy, and service function.

[0242] In one implementation, the at least one segment element includes other segment elements except the first segment element in a logical segment list; the logical segment list is an original segment list corresponding to the forwarding path.

[0243] In one implementation, the routing header also includes at least one of the following: an initial segment element type, a padding field length, and a number of units to be processed; the padding field length is the length of the padding field used to align the routing header; the number of units to be processed is used to represent the total number of data units occupied by the segment elements to be processed in the segment list, and the data unit includes a preset number of bytes.

[0244] In one implementation, the communication device further includes a processing unit 1602 .

[0245] Processing unit 1602 is configured to set a segment list in a routing header based on a logical segment list; the first segment element in the segment list corresponds to the first segment element or the second segment element in the logical segment list, and the logical segment list is the original segment list corresponding to the forwarding path.

[0246] In one implementation, the processing unit 1602 is further configured to, when the second node is a head node, use the first segment element in the logical segment list as the active segment element, where the logical segment list is the original segment list corresponding to the forwarding path; or, when the second node is not a head node, determine the length of the next segment element in the segment list based on the next segment element type in the routing header, and read the next segment element from the segment list as the active segment element.

[0247] The processing unit 1602 is further configured to update the number of units to be processed based on the length of the active segment element.

[0248] In one implementation, when the second node is a head node and the first segment element in the segment list in the routing header corresponds to the second segment element in the logical segment list, the number of units to be processed is the number of data units occupied by multiple segment elements in the segment list, and the logical segment list is the original segment list corresponding to the forwarding path; or, when the second node is a head node and the first segment element in the segment list in the routing header corresponds to the first segment element in the logical segment list, the number of units to be processed is the number of data units occupied by segment elements other than the first segment element in the segment list in the routing header.

[0249] In one implementation, the processing unit 1602 is further configured to, when the second node is not the head node, obtain the next segment element in the segment list as the active segment element, and update the next segment element type in the routing header based on the reset flag or the next segment element type in the active segment element.

[0250] In one implementation, the processing unit 1602 is further configured to use the first segment element in the logical segment list as the active segment element, and set the next segment element type in the routing header based on the reset flag or the next segment element type of the active segment element.

[0251] In one implementation, the processing unit 1602 is further configured to obtain the next segment element in the segment list as the active segment element, and update the destination address based on the partial bits in the address corresponding to the active segment element and the position of the partial bits in the address.

[0252] In one implementation, the processing unit 1602 is further configured to obtain the next segment element in the segment list as the active segment element, and set the destination address based on the address in the active segment element.

[0253] In one implementation, the processing unit 1602 is further configured to use the first segment element in the logical segment list as an active segment element, set the destination address based on the address corresponding to the active segment element, and the logical segment list is an original segment list corresponding to the forwarding path.

[0254] In one implementation, the processing unit 1602 is further configured to, when the second node is a head node, set the initial segment element type to the type of the first segment element in the segment list.

[0255] In the case of implementing the functions of the above-mentioned integrated modules in hardware, the embodiments of the present disclosure provide another structure of the communication device involved in the above-mentioned embodiments. As shown in Figure 17, the communication device 170 includes: a processor 1702 and a bus 1704. In some embodiments, the communication device may also include a memory 1701; in some embodiments, the communication device may also include a communication interface 1703.

[0256] Processor 1702 may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the embodiments of this disclosure. Processor 1702 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Processor 1702 may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the embodiments of this disclosure. Processor 1702 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.

[0257] The communication interface 1703 is used to connect to other devices via a communication network, such as Ethernet, wireless access network, or wireless local area network (WLAN).

[0258] The memory 1701 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto.

[0259] As an implementation, the memory 1701 may exist independently of the processor 1702. The memory 1701 may be connected to the processor 1702 via a bus 1704 for storing instructions or program codes. When the processor 1702 calls and executes the instructions or program codes stored in the memory 1701, the message transmission method provided in the embodiment of the present disclosure can be implemented.

[0260] In another implementation, the memory 1701 may also be integrated with the processor 1702 .

[0261] Bus 1704 can be an Extended Industry Standard Architecture (EISA) bus, etc. Bus 1704 can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, FIG17 shows only one thick line, but this does not mean that there is only one bus or only one type of bus.

[0262] Some embodiments of the present disclosure provide a computer-readable storage medium (e.g., a non-transitory computer-readable storage medium), which stores computer program instructions. When the computer program instructions are executed on a computer, the computer executes the message transmission method described in any of the above embodiments.

[0263] Exemplarily, the above-mentioned computer-readable storage media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks, or magnetic tapes, etc.), optical disks (e.g., compact disks (CDs), digital versatile disks (DVDs), etc.), smart cards, and flash memory devices (e.g., erasable programmable read-only memories (EPROMs), cards, sticks, or key drives, etc.). The various computer-readable storage media described in the present disclosure may represent one or more devices and / or other machine-readable storage media for storing information. The term "machine-readable storage medium" may include, but is not limited to, wireless channels and various other media capable of storing, containing, and / or carrying instructions and / or data.

[0264] An embodiment of the present disclosure provides a computer program product comprising instructions. When the computer program product is run on a computer, the computer is enabled to execute the communication method described in any one of the above embodiments.

[0265] The above is only a specific embodiment of the present disclosure, but the scope of protection of the present disclosure is not limited thereto. Any changes or replacements within the technical scope disclosed in the present disclosure should be included in the scope of protection of the present disclosure. Therefore, the scope of protection of the present disclosure should be based on the scope of protection of the claims.

Claims

1. A message transmission method, wherein: The method is applied to a first node and comprises: Receive a deterministic message; wherein, the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the types of the at least one segment element include a first type segment element and a second type segment element; the first type segment element includes partial bits of a corresponding address, and the address corresponding to the first type segment element has the same prefix as the address corresponding to the previous segment element of the first type segment element in the segment list; the second type segment element includes all bits of the corresponding address.

2. The method according to claim 1, wherein The first type segment element also includes at least one of the following: the position of the partial bits in the address, a reset flag, and a forwarding information flag corresponding to the segment element; the reset flag is used to indicate whether the next segment element is the second type segment element.

3. The method according to claim 1, wherein The first-type segment elements include multiple structures, and the lengths of some bits in the first-type segment elements of different structures in the multiple structures are different.

4. The method according to claim 1, wherein The second-type segment element further includes at least one of the following: a next segment element type, and a forwarding information identifier corresponding to the segment element.

5. The method according to claim 1, wherein The routing header also includes a next segment element type.

6. The method according to claim 2 or 4, wherein: The routing header further includes a forwarding information type, where the forwarding information type is used to indicate at least one of the following: a time slot resource type and a delay resource type.

7. The method according to claim 6, wherein: In the case where the forwarding information type is used to indicate the time slot resource type, the forwarding information identifier of the segment element is used to indicate the time slot number; or In the case where the forwarding information type is used to indicate the delay resource type, the forwarding information identifier corresponding to the segment element is used to indicate the planned residence time.

8. The method according to claim 6, wherein: The routing header also includes a public forwarding information identifier; In the case where the forwarding information type is used to indicate a time slot resource type, the common forwarding information identifier is used to indicate an arrangement period length; or In the case where the forwarding information type is used to indicate a delay resource type, the common forwarding information identifier is used to indicate a delay deviation.

9. The method according to claim 2 or 4, wherein: The forwarding information identifier is used to indicate at least one of the following: forwarding resources, quality of service QoS policy, and service function.

10. The method according to claim 1, wherein The at least one segment element includes other segment elements except the first segment element in the logical segment list; the logical segment list is an original segment list corresponding to the forwarding path.

11. The method according to claim 1, wherein The routing header further includes at least one of the following: initial segment element type, padding field length, and number of units to be processed; Among them, the initial segment element type is the type of the first segment element in the segment list; the padding field length is the length of the padding field used to align the routing header; the number of units to be processed is used to represent the total amount of data units occupied by the segment elements to be processed in the segment list, and the data unit includes a preset number of bytes.

12. The method according to claim 5, wherein: The routing header further includes: a number of units to be processed, where the number of units to be processed is used to represent the total number of data units occupied by the segment elements to be processed in the segment list, where the data unit includes a preset number of bytes. After receiving the deterministic message, the method further includes: determining a length of a next segment element in the segment list based on a next segment element type in the routing header, and reading the next segment element from the segment list as an active segment element; The number of units to be processed is updated based on the length of the active segment element.

13. The method according to claim 2, wherein: After receiving the deterministic message, the method further includes: The next segment element type in the routing header is updated based on the reset flag or the next segment element type in an active segment element, where the active segment element is the next segment element in the segment list.

14. The method according to claim 2, wherein: In a case where the active segment element type is the first type segment element, the deterministic message further includes a destination address, the active segment element is the next segment element in the segment list, and the method further includes: The destination address is updated based on a portion of bits in an address corresponding to the active segment element and a position of the portion of bits in the address, the active segment element being the next segment element in the segment list.

15. The method according to claim 5, wherein: In a case where the active segment element type is the second-type segment element, the deterministic message further includes a destination address, the active segment element is the next segment element in the segment list, and the method further includes: The destination address is updated based on the address in the active segment element.

16. A message transmission method, wherein: The method is applied to the second node and comprises: Send a deterministic message; wherein, the routing header of the deterministic message includes a segment list; the segment list includes at least one segment element; the types of the at least one segment element include a first type segment element and a second type segment element; the first type segment element includes partial bits of a corresponding address, and the address corresponding to the first type segment element has the same prefix as the address corresponding to the previous segment element of the first type segment element in the segment list; the second type segment element includes all bits of the corresponding address.

17. The method according to claim 16, wherein The first type segment element also includes at least one of the following: the position of the partial bits in the address, a reset flag, and a forwarding information flag corresponding to the segment element; the reset flag is used to indicate whether the next segment element is the second type segment element.

18. The method according to claim 16, wherein The first-type segment elements include multiple structures, and the lengths of some bits in the first-type segment elements of different structures in the multiple structures are different.

19. The method according to claim 16, wherein The second-type segment element further includes at least one of the following: a next segment element type, and a forwarding information identifier corresponding to the segment element.

20. The method according to claim 16, wherein The routing header also includes a next segment element type.

21. The method according to claim 17 or 19, wherein The routing header further includes a forwarding information type, where the forwarding information type is used to indicate at least one of the following: a time slot resource type or a delay resource type.

22. The method according to claim 21, wherein In the case where the forwarding information type is used to indicate the time slot resource type, the forwarding information identifier of the segment element is used to indicate the time slot number; or In the case where the forwarding information type is used to indicate the delay resource type, the forwarding information identifier corresponding to the segment element is used to indicate the planned residence time.

23. The method according to claim 21, wherein The routing header also includes a public forwarding information identifier; In the case where the forwarding information type is used to indicate a time slot resource type, the common forwarding information identifier is used to indicate an arrangement period length; or In the case where the forwarding information type is used to indicate a delay resource type, the common forwarding information identifier is used to indicate a delay deviation.

24. The method according to claim 17 or 19, wherein The forwarding information identifier is used to indicate at least one of the following: forwarding resources, QoS policy, and service function.

25. The method according to claim 16, wherein The at least one segment element includes other segment elements except the first segment element in the logical segment list; the logical segment list is an original segment list corresponding to the forwarding path.

26. The method according to claim 16, wherein The routing header further includes at least one of the following: initial segment element type, padding field length, and number of units to be processed; Among them, the initial segment element type is the type of the first segment element in the segment list; the padding field length is the length of the padding field used to align the routing header; the number of units to be processed is used to represent the total amount of data units occupied by the segment elements to be processed in the segment list, and the data unit includes a preset number of bytes.

27. The method according to claim 16, wherein In the case where the second node is a head node, the method further includes: setting the segment list in the routing header based on a logical segment list; The first segment element in the segment list corresponds to the first segment element or the second segment element in the logical segment list, and the logical segment list is the original segment list corresponding to the forwarding path.

28. The method of claim 26, further comprising: When the second node is a head node, taking a first segment element in a logical segment list as an active segment element, the logical segment list being an original segment list corresponding to the forwarding path, or, when the second node is not a head node, determining a length of a next segment element in the segment list based on a next segment element type in the routing header, and reading the next segment element from the segment list as the active segment element; The number of units to be processed is updated based on the length of the active segment element.

29. The method according to claim 26, wherein When the second node is a head node and the first segment element in the segment list in the routing header corresponds to the second segment element in the logical segment list, the number of units to be processed is the number of data units occupied by multiple segment elements in the segment list, and the logical segment list is the original segment list corresponding to the forwarding path; or When the second node is a head node and the first segment element in the segment list in the routing header corresponds to the first segment element in the logical segment list, the number of units to be processed is the number of data units occupied by the segment elements other than the first segment element in the segment list in the routing header.

30. The method of claim 17, wherein: When the second node is not a head node, the method further includes: The next segment element in the segment list is obtained as an active segment element, and the next segment element type in the routing header is updated based on the reset flag in the active segment element or the type of the next segment element.

31. The method according to any one of claims 17, 19, and 20, wherein: In the case where the second node is a head node, the method further includes: The first segment element in the logical segment list is used as the active segment element, and the type of the next segment element in the routing header is set based on the type corresponding to the next segment element of the active segment element. The logical segment list is the original segment list corresponding to the forwarding path.

32. The method of claim 17, wherein: In a case where the type of the next segment element in the routing header is the first type segment element, the deterministic message further includes a destination address, and the method further includes: The next segment element in the segment list is obtained as an active segment element, and the destination address is updated based on a portion of bits in an address corresponding to the active segment element and a position of the portion of bits in the address.

33. The method of claim 19, wherein: In a case where the type of the next segment element in the routing header is the second-type segment element, the deterministic message further includes a destination address, and the method further includes: The next segment element in the segment list is obtained as an active segment element, and the destination address is set based on the address in the active segment element.

34. The method of claim 16, wherein: The deterministic message further includes a destination address. When the second node is a head node, the method further includes: The first segment element in the logical segment list is used as the active segment element, and the destination address is set based on the address corresponding to the active segment element. The logical segment list is the original segment list corresponding to the forwarding path.

35. The method of claim 16, wherein: The routing header further includes an initial segment element type, where the initial segment element type is the type of the first segment element in the segment list, and the method further includes: When the second node is a head node, the initial segment element type is set to the type of the first segment element in the segment list.

36. A communication device comprising: memory and processor; The memory is coupled to the processor; The memory is used to store instructions executable by the processor; When the processor executes the instructions, the method according to any one of claims 1 to 35 is performed.

37. A computer-readable storage medium, wherein: The computer-readable storage medium stores computer instructions, which, when executed on a computer, enable the computer to perform the method according to any one of claims 1 to 35.

Citation Information

Patent Citations

  • Routing header packaging method and device for IPv6 message

    CN112491708A

  • Time delay measurement method and device based on SRv6 SID

    CN112565017A

  • IPv6-based SRv6 data processing method

    CN113347092A

  • Segmented route header compression method, service processing method and device

    CN113542118A

  • Message forwarding method and device of SRV6 protocol, electronic equipment and medium

    CN113726654A