Source routing method of routing extension head, communication node and storage medium
By encapsulating the segment list in IPv6 messages, each segment element contains unique forwarding resource information, solving the problem of large overhead of message headers in IPv6 network, realizing interoperability of cross-domain heterogeneous technologies and supporting deterministic forwarding paths.
Patent Information
- Application Number
- CN202410144488.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-31
- Publication Date
- 2025-08-01
AI Technical Summary
In IPv6 networks, existing source routing methods have problems such as large overhead, relying on public prefixes, additional signaling overhead and not supporting heterogeneous technology interoperability, which is difficult to meet the requirements of deterministic forwarding paths.
The routing extension header is used to encapsulate the segment list in IPv6 packets. Each segment element contains unique forwarding resource information. The encapsulation overhead is reduced by using MPLS tags and preset fields, and supports deterministic forwarding paths.
By reducing the packaging overhead, the load efficiency of IPv6 packets is improved, the interoperability of cross-domain heterogeneous technologies is supported, and the requirements of deterministic forwarding paths are met.
Smart Images

Figure CN120416124A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technologies, and for example, relates to a source routing method for a routing extension header, a communication node, and a storage medium. Background Art
[0002] A deterministic forwarding path is generally a strictly explicit path, and each hop included in the path needs to be specified hop by hop. Considering the impact of large-scale traffic, it is unreasonable to maintain corresponding signaling or forwarding states for each flow at intermediate nodes of the network. Therefore, a feasible method is to use source routing to represent such traffic engineering paths, that is, to use a segment list containing multiple segment elements to represent the path, and each segment element corresponds to one hop.
[0003] However, in an Internet Protocol version 6 (IPv6) network, if each segment of the source routing is represented by a 128-bit IPv6 address, it will cause a very large overhead of the packet header. For such problems, multiple solutions have been proposed in the current industry. However, these solutions all have certain limitations. For example: relying on a common prefix, relying on additional signaling overhead and index table entries, not supporting interoperability of heterogeneous technologies when crossing domains, etc. These solutions are not suitable for the requirements of deterministic forwarding paths. Summary of the Invention
[0004] This application provides a source routing method for a routing extension header, a communication node, and a storage medium.
[0005] An embodiment of this application provides a source routing method for a routing extension header, which is applied to a first node and includes:
[0006] Encapsulating a routing extension header in an IPv6 packet; wherein, each segment element of the segment list included in the routing extension header specifies unique forwarding resource information;
[0007] Sending the IPv6 packet to a second node.
[0008] An embodiment of this application also provides a source routing method for a routing extension header, which is applied to a second node and includes:
[0009] Receiving an IPv6 packet, where the IPv6 packet is encapsulated with a routing extension header, and each segment element of the segment list included in the routing extension header specifies unique forwarding resource information;
[0010] Parsing the routing extension header.
[0011] An embodiment of this application also provides a communication node, including: a memory, and one or more processors;
[0012] The memory is configured to store one or more programs;
[0013] When the one or more programs are executed by the one or more processors, the one or more processors implement the source routing method of the above-mentioned routing extension header.
[0014] An embodiment of the present application further provides a storage medium. A computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the source routing method of the above-mentioned routing extension header is implemented.
[0015] An embodiment of the present application further provides a communication system. The communication system includes a first node and a second node;
[0016] The first node is configured to encapsulate a routing extension header in an IPv6 packet and send the IPv6 packet to the second node; wherein, each element in the segment list included in the routing extension header specifies forwarding resource information unique to each segment.
[0017] The second node is configured to parse the routing extension header when receiving the IPv6 packet.
[0018] More descriptions about the above embodiments and other aspects of the present application and their implementation manners are provided in the accompanying drawings, the specific implementation manners, and the claims. Description of the Drawings
[0019] Figure 1 A flowchart of a source routing method of a routing extension header provided for an embodiment;
[0020] Figure 2 A schematic diagram of a routing extension header provided for an embodiment;
[0021] Figure 3 A flowchart of another source routing method of a routing extension header provided for an embodiment;
[0022] Figure 4 A schematic diagram of a network provided for an embodiment;
[0023] Figure 5 A schematic diagram of another routing extension header provided for an embodiment;
[0024] Figure 6 A schematic diagram of yet another routing extension header provided for an embodiment;
[0025] Figure 7 A schematic diagram of the structure of a source routing device of a routing extension header provided for an embodiment;
[0026] Figure 8 A schematic diagram of the structure of another source routing device of a routing extension header provided for an embodiment;
[0027] Figure 9 Schematic structural diagram of a communication node provided for an embodiment;
[0028] Figure 10 Schematic structural diagram of a communication system provided for an embodiment. Detailed implementation manners
[0029] To make the objectives, technical solutions and advantages of the present application clearer and more understandable, the embodiments of the present application will be described in detail below with reference to the accompanying drawings. It should be noted that, without conflict, the embodiments in the present application and the features in the embodiments may be combined arbitrarily with each other.
[0030] The steps shown in the flowchart of the accompanying drawings may be executed in a computer system such as a set of computer-executable instructions. And, although the logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than here.
[0031] RFC8200 (Internet Protocol, Version 6 (IPv6) Specification) has formulated the IPv6 specification, which defines the Routing Header. The source node of the sent IPv6 packet can include some intermediate node information in the Routing Header to control the packet to access these intermediate nodes before reaching the final destination node. The Routing Type field in the RoutingHeader is extensible and can be set with different values to define different routing headers to meet different scenarios.
[0032] For example, RFC6554 (An IPv6 Routing Header for Source Routes with the Routing Protocol for Low-Power and Lossy Networks) defines a routing header for source route forwarding based on compressed IPv6 address information for the low-power and lossy network scenario (the value of the Routing Type field is 3, abbreviated as RH3 in this article). It assumes that the IPv6 addresses of all nodes are within the same prefix. Then, when using RH3 for source route forwarding, each element in the segment list included in RH3 only needs to store the different part compared with other elements, and the common prefix of all elements is stored in the Destination Address field of the IPv6 Header. This achieves the purpose of saving the byte overhead of RH3. The applicable scenario of RH3 is very limited and does not support mixing multiple types of segments with different lengths of different parts in RH3.
[0033] For example, RFC8754 (IPv6 Segment Routing Header) defines a routing header (the value of the Routing Type field is 4, which is abbreviated as RH4 in this article) for source routing forwarding based on classical IPv6 addresses for the scenario where segment routing (SR) is applied to IPv6 networks, abbreviated as SRv6. In the segment identifier list (SIDList) included in RH4, each element is an IPv6 address occupying 16 bytes. When the instruction list is very long, it will result in a very long packet header, seriously reducing the payload efficiency of the packet. Currently, the industry is considering compression methods for SRv6 segment identifiers (SIDs) to reduce the byte overhead of RH4. Its compression idea is actually similar to that of RH3 and also relies on a common prefix.
[0034] For example, draft-ietf-6man-comp-rtg-hdr-00 defines a routing header called CRH, which contains a short index for mapping to an IPv6 address. The forwarding table entry is matched according to the index, and all forwarding information is obtained from the forwarding table entry. This additional short index requires the definition of new control plane signaling, and since all forwarding information (such as topology, forwarding resources, etc.) is integrated in the forwarding table entry, it consumes a large amount of index resources.
[0035] To solve the above problems, Figure 1 A flowchart of a source routing method for a routing extension header provided for an embodiment is as Figure 1 shown. The method provided in this embodiment can be applied to a first node, and the first node can be the head node in a communication path, including step 110 and step 120.
[0036] In step 110, a routing extension header is encapsulated in an IPv6 packet, where each segment element of the segment list included in the routing extension header specifies unique forwarding resource information.
[0037] In this embodiment, the routing extension header encapsulated in the IPv6 packet can be RH-MPLS (Routing Header with MPLS). Each segment element in the segment list included in the routing extension header gives the forwarding resource information required for each segmentation along with the segment.
[0038] Among them, each segment element in the segment list can be concatenated by a pointer and a preset field group. For example, using the existing Multiprotocol Label Switching (MPLS) label allocation and advertisement, the MPLS label related to the topology and other identifiers related to forwarding resources are included in the routing extension header.
[0039] Among them, each segment element in the segment list has an appropriate length to reduce encapsulation overhead, generally occupying 32 bits, or fewer than 32 bits, or more than 32 bits; each segment element in the segment list optionally carries common resources for all fragmented accesses, meeting the needs of explicit routing scenarios that require strict hop-by-hop, including deterministic forwarding.
[0040] In this embodiment, the routing extension header encapsulated in the IPv6 packet may include multiple fields, at least including an inner header type field, a byte overhead field, a routing type field, a remaining segment count field, a forwarding resource type field, a flag bit field, a second forwarding resource identifier field, and a segment list.
[0041] Figure 2 A schematic diagram of a routing extension header provided for an embodiment is as Figure 2 shown. Next Header represents the inner header type field, Hdr Ext Len represents the byte overhead field, Routing Type represents the routing type field, Segments Left represents the remaining segment count field, RT represents the forwarding resource type field, Flags represents the flag bit field, Common RI represents the second forwarding resource identifier field; Figure 2 The routing extension header may further include a segment list. The segment list includes multiple segment elements Segment 0, Segment 1, ……, Segment n - 1. Each segment element consists of a Multiprotocol Label Switching label (MPLS Label) and a first forwarding resource identifier field (RI per-seg). The first forwarding resource identifier field is one of the preset fields.
[0042] In this embodiment, encapsulating the routing extension header in the IPv6 packet may include the following process: obtaining the corresponding target IPv6 address according to the pointer of the logically first segment element; copying the target IPv6 address to the destination address field of the IPv6 packet header. Additionally, setting the remaining segment count in the segment list included in the routing extension header to n - 1, indicating that there are n - 1 segment elements remaining to be processed in the segment list.
[0043] In step 120, send the IPv6 packet to the second node.
[0044] Among them, the second node may be an intermediate node or a tail node in the communication path.
[0045] In this embodiment, after encapsulating the routing extension header in the IPv6 packet, the first node may send the IPv6 packet encapsulated with the routing extension header to the second node. The sending method is not specifically limited, so that after receiving the IPv6 packet, the second node can parse the routing extension header encapsulated in the IPv6 packet to complete source routing.
[0046] In this embodiment, the first node encapsulates a routing extension header in an IPv6 packet. The segment elements in the segment list within the routing extension header specify the forwarding resource information unique to each segment, so as to reduce the encapsulation overhead and be used in source routing scenarios including deterministic forwarding paths.
[0047] In one embodiment, each segment element in the segment list included in the routing extension header consists of a pointer and a preset field; wherein, the preset field represents a forwarding resource or represents an operation or process to be performed on the IPv6 packet.
[0048] In this embodiment, the pointer can be an MPLS label. Using an MPLS label can reuse the existing MPLS label allocation and advertisement mechanism; the pointer can also be an index with a similar function, and no specific limitation is made here.
[0049] In this embodiment, the preset field can represent a forwarding resource or can represent any other potential operation or process to be performed on the IPv6 packet, such as a specific QoS policy.
[0050] In one embodiment, each segment element in the segment list included in the routing extension header can consist of an MPLS label and a forwarding resource identifier.
[0051] In one embodiment, the pointer is any one of the following:
[0052] Multiprotocol label switching label; index.
[0053] In this embodiment, the multiprotocol label switching label is the MPLS label; the index can be an index with a similar function to the existing MPLS label allocation and advertisement mechanism.
[0054] In one embodiment, the pointer represents a topology-related instruction, and the pointer will match the corresponding mapping forwarding table entry for guiding the packet to be forwarded to a specific outgoing interface or destination node.
[0055] In this embodiment, the pointer occupies 20 bits and represents a topology-related instruction. This pointer will match the corresponding incoming label map (ILM) forwarding table entry to guide the packet to be forwarded to a specific outgoing interface or destination node.
[0056] In one embodiment, the preset field is a first forwarding resource identifier field.
[0057] In this embodiment, the preset field can be a forwarding resource identifier field. The forwarding resource identifier field represents the forwarding resource identifier corresponding to the segment element, and the value of the forwarding resource identifier field is related to the forwarding resource type field.
[0058] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment count field, a forwarding resource type field, a flag field, a second forwarding resource identifier field, and a segment list.
[0059] In this embodiment, the inner header type field occupies 8 bits and represents the type of the inner header following the routing extension header. Its definition and value can refer to RFC8200; the byte overhead field occupies 8 bits and represents the byte overhead of the routing extension header, that is, how many 8-byte units are included in the routing extension header, excluding the first 8-byte unit. Its definition and value can refer to RFC8200; the routing type field occupies 8 bits, and the value of this field is to be assigned by the Internet Assigned Numbers Authority (IANA), indicating that this routing header is a routing extension header; the remaining segment count field occupies 8 bits and represents how many segments in the segment list included in the routing extension header are still to be accessed and processed. Its definition and value can refer to RFC8200; the forwarding resource type field occupies 4 bits and represents the type of the forwarding resource. The forwarding resource type field can be a Resource Type (RT) field, an arguments type (AT) field, an operation type (OT) field, a policy type (PT) field, etc.; the flag field occupies 4 bits and represents some flag bits involved in the message processing process, which can be defined by oneself; the second forwarding resource identifier field occupies 24 bits and represents the common information identifier that all segments in the segment list need to use. Its value is related to the forwarding resource type field; the segment list includes pointers and preset fields corresponding to each segment element.
[0060] In one embodiment, the definitions of the forwarding resource type field include but are not limited to the following:
[0061] The first type value represents reserved; the second type value represents a time slot resource type; the third type value represents a delay resource type.
[0062] In this embodiment, the first type value, the second type value, and the third type value are different numerical values. For example, the first type value is 0, representing reserved and undefined; the second type value is 1, representing a time slot resource type; the third type value is 2, representing a delay resource type. In addition, the forwarding resource type field can have other definitions, which will not be elaborated here one by one.
[0063] In one embodiment, the definition of the first forwarding resource identifier field is as follows:
[0064] When the forwarding resource type field is the second type value, the first forwarding resource identifier field includes a time slot number;
[0065] When the forwarding resource type field is a third type value, the planned residence time is included in the first forwarding resource identification field.
[0066] In this embodiment, the value of the first forwarding resource identification field is related to the forwarding resource type field. The second type value and the third type value are different numerical values. For example, when the value of the forwarding resource type field is 1, the slot number is included in the first forwarding resource identification field; when the value of the forwarding resource type field is 2, the planned residence time is included in the first forwarding resource identification field.
[0067] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list, and the second forwarding resource identification field is defined as follows:
[0068] When the forwarding resource type field is a second type value, the scheduling period length is included in the second forwarding resource identification field;
[0069] When the type field of the forwarding resource is a third type value, the delay deviation is included in the second forwarding resource identification field.
[0070] In this embodiment, the common information identification field may include a common resource information identification field, a common parameter information identification field, a common operation information identification field, or a common policy information identification field, etc.
[0071] In this embodiment, the value of the second forwarding resource identification field is related to the forwarding resource type field. The second type value and the third type value are different numerical values. For example, when the forwarding resource type is 1, the scheduling period length is included in the second forwarding resource identification field, with the unit of microseconds; when the forwarding resource type is 2, the delay deviation is included in the second forwarding resource identification field, with the unit of microseconds.
[0072] In one embodiment, the segment list in the routing extension header is stored in reverse order or forward order.
[0073] In this embodiment, the segment list in the routing extension header can be stored in reverse order. For example, for a logical segment list Segment List<S1, S2, S3,..., Sn>, where S1 represents the first segment element Segment logically, and Sn represents the last segment element Segment logically. In order to directly access the corresponding segment element in the routing extension header according to Segment List[SegmentLeft], as Figure 2 shown, S1 is stored in the Segment n - 1 field of the routing extension header, and Sn is stored in the Segment 0 field.
[0074] In this embodiment, the segment list in the routing extension header can also adopt the forward storage method. For example, Figure 2 in the Segment 0 field of the routing extension header, S1 is stored, and in the Segment n-1 field, Sn is stored.
[0075] In one embodiment, the routing extension header only contains the forwarding resource information unique to each segment. Correspondingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.
[0076] In this embodiment, the routing extension header contains a common information identification field, which is a field shared by all segment elements. However, the common information identification field can also be placed in the existing IPv6 hop-by-hop options header (Hop-by-Hop Options Header) instead of being included in the routing extension header, that is, the routing extension header only contains the forwarding resource information unique to each segment. At this time, the forwarding resource information is set and processed by combining the IPv6 hop-by-hop options header and the routing extension header together, and its process is the same as that of using the routing extension header alone, which will not be elaborated here.
[0077] In one embodiment, encapsulating the routing extension header in the IPv6 packet includes:
[0078] Obtain the corresponding target IPv6 address from the mapping table entry matched by the pointer of the logically first segment element;
[0079] Copy the target IPv6 address to the destination address field of the IPv6 packet header;
[0080] Set the remaining segment number field in the segment list included in the routing extension header to n-1, where n is the number of segment elements included in the logically segment list.
[0081] In this embodiment, for the segment list Segment List<S1, S2, S3,..., Sn>, the corresponding pointer and preset field for each segment are set in the routing header. From the ILM table entry matched by the pointer of S1, the corresponding target IPv6 address is obtained. For example, when S1 represents a direct link, the target IPv6 address is the interface IP address of the opposite end of the link; for example, when S1 represents a node, the target IPv6 address is the IP address of the node. Copy the target IPv6 address to the destination address (Destination Address, DA) field of the IPv6 Header. In addition, set Segment Left = n-1, indicating that there are still n-1 segment elements to be processed in the segment list.
[0082] In one embodiment, to further save the byte overhead of the routing extension header, for the Segment List <S1, S2, S3,..., Sn>, since the destination IPv6 address corresponding to S1 has been copied to the DA field of the IPv6 Header, the head node may not include S1 in the segment list of the routing extension header either. Then, only n - 1 Segments need to be included in the routing extension header, that is, from segment 0 to segment n - 2. At this time, the S2 is stored in the segment n - 2 field. In addition, still set Segment Left = n - 1, indicating that there are still n - 1 segment elements in the segment list to be processed.
[0083] In one embodiment, sending the IPv6 packet to the second node includes:
[0084] Obtaining the destination egress interface from the mapping entry, or obtaining the destination egress interface from the routing entry matching the destination IPv6 address;
[0085] Sending the IPv6 packet to the destination egress interface, and when sending the IPv6 packet, using the corresponding forwarding resource of the destination egress interface according to the forwarding resource type field, the second forwarding resource identifier field in the routing extension header, and the first forwarding resource identifier field of the next segment read.
[0086] In this embodiment, the mapping entry may include egress interface information, and the routing entry matching the destination IPv6 address may also include egress interface information. After obtaining the destination egress interface, the IPv6 packet can be sent to the destination egress interface. During the process of sending the IPv6 packet, the corresponding forwarding resource of the destination egress interface can also be used according to the relevant fields in the routing extension header encapsulated in the IPv6 packet.
[0087] Figure 3 The flowchart of another source routing method of the routing extension header provided for an embodiment is as Figure 3 shown. The method provided in this embodiment can be applied to the second node. The second node can be an intermediate node or a tail node in the communication path, and includes step 210 and step 220.
[0088] In step 210, receive an IPv6 packet, where a routing extension header is encapsulated in the IPv6 packet, and each segment element of the segment list included in the routing extension header specifies unique forwarding resource information.
[0089] In this embodiment, the routing extension header encapsulated in the IPv6 packet may be RH - MPLS (Routing Header with MPLS). Each segment element in the segment list included in the routing extension header gives the forwarding resource information required for each segmentation along with the segment.
[0090] Among them, each segment element in the segment list may be composed of a pointer and a preset field group. For example, using the existing Multiprotocol Label Switching (MPLS) label allocation and advertisement, the topology - related MPLS label and other forwarding resource - related identifiers are included in the routing extension header.
[0091] Among them, each segment element in the segment list has an appropriate length to reduce the encapsulation overhead, generally occupying 32 bits, or fewer than 32 bits, or more than 32 bits; each segment element in the segment list optionally carries the common resources accessed by all segmentations, meeting the needs of explicit routing scenarios that require strict hop - by - hop, including deterministic forwarding.
[0092] In this embodiment, the routing extension header encapsulated in the IPv6 packet may include multiple fields, at least including an inner - layer header type field, a byte overhead field, a routing type field, a remaining segment count field, a forwarding resource type field, a flag field, a second forwarding resource identifier field, and a segment list.
[0093] In this embodiment, the second node may receive the IPv6 packet sent by the first node, and there is no specific limitation on the receiving method.
[0094] In step 220, parse the routing extension header.
[0095] In this embodiment, the second node obtains the forwarding resource type field and the second forwarding resource identifier field in the routing extension header by parsing the routing extension header, and then can use the corresponding forwarding resources of the target egress interface according to the forwarding resource type field, the second forwarding resource identifier field, and the first forwarding resource identifier field of the next segmentation read.
[0096] In this embodiment, the second node uses the corresponding forwarding resources by parsing the routing extension header encapsulated in the IPv6 packet. The segment elements in the segment list within the routing extension header specify the forwarding resource information unique to each segment to reduce the encapsulation overhead and are used for source routing scenarios including deterministic forwarding paths.
[0097] In one embodiment, each segment element in the segment list included in the routing extension header is composed of a pointer and a preset field;
[0098] Among them, the preset field represents the forwarding resource or represents the operation or processing to be performed on the IPv6 packet.
[0099] In one embodiment, the guiding symbol is any one of the following:
[0100] Multiprotocol Label Switching (MPLS) label; index.
[0101] In one embodiment, the guiding symbol represents a topology-related instruction, and the guiding symbol matches to a corresponding mapping forwarding table entry for guiding the packet to be forwarded to a specific outgoing interface or destination node.
[0102] In one embodiment, the preset field is the first forwarding resource identification field.
[0103] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag bit field, a second forwarding resource identification field, and a segment list.
[0104] In one embodiment, the forwarding resource type field includes, but is not limited to, the following definitions:
[0105] The first type value represents reserved; the second type value represents a time slot resource type; the third type value represents a delay resource type.
[0106] In one embodiment, the first forwarding resource identification field is defined as follows:
[0107] When the forwarding resource type field is the second type value, the first forwarding resource identification field contains a time slot number;
[0108] When the forwarding resource type field is the third type value, the first forwarding resource identification field contains a planned residence time.
[0109] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list, and the second forwarding resource identification field is defined as follows:
[0110] When the forwarding resource type field is the second type value, the second forwarding resource identification field contains an orchestration cycle length;
[0111] When the type field of the forwarding resource is the third type value, the second forwarding resource identification field contains a delay deviation.
[0112] In one embodiment, the routing extension header only contains the forwarding resource information specific to each segment. Correspondingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.
[0113] In one embodiment, the segment list in the routing extension header is stored in a reverse order or a forward order.
[0114] In one embodiment, when the second node receives the IPv6 packet, if the destination address of the IPv6 extension header matches the local IP address and the next header field of the IPv6 extension header indicates that the next layer is the routing extension header, then the routing extension header is parsed, including:
[0115] If the remaining segment count in the segment list included in the routing extension header is equal to 0, then the inner payload is processed continuously, and the inner payload type is determined according to the inner header type field immediately following the routing extension header;
[0116] Otherwise, decrement the remaining segment count in the segment list included in the routing extension header by 1, read the next segment in the segment list according to the segment list, query the corresponding mapping forwarding table entry according to the pointer of the next segment, and obtain the destination IPv6 address from the mapping forwarding table entry; if the minimum IPv6 hop count in the IPv6 extension header is less than or equal to 1, then discard the IPv6 packet and send an Internet Control Message Protocol time exceeded packet to the source address of the IPv6 extension header, otherwise, decrement the minimum IPv6 hop count by 1, copy the destination IPv6 address to the destination address of the IPv6 extension header; if the mapping forwarding table entry includes egress interface information, then use the egress interface corresponding to the egress interface information as the destination egress interface, otherwise obtain the destination egress interface from the routing table entry matching the destination IPv6 address;
[0117] Send the IPv6 packet to the destination egress interface, and when the IPv6 packet is sent, use the corresponding forwarding resources of the destination egress interface according to the forwarding resource type field, the second forwarding resource identifier field in the routing extension header, and the first forwarding resource identifier field of the next segment read.
[0118] In this embodiment, when an intermediate node or a tail node receives an IPv6 packet, if the DA in the IPv6 Header matches the local IP address and the Next Header field of the IPv6 Header indicates that the next layer header is RH-MPLS, then continue to process RH-MPLS according to the following process:
[0119] S01. If Segments Left is equal to 0;
[0120] S02. Continue to process the inner payload, and the inner payload type is determined according to the Next Header field of RH-MPLS;
[0121] S03. Otherwise, decrement Segments Left by 1;
[0122] S04. Read the next 32-bit segment according to the Segment List [Segments Left];
[0123] S05. Query the corresponding ILM forwarding table entry according to the MPLS Label of the next segment read, and obtain the destination IPv6 address from the forwarding table entry;
[0124] S06. If the IPv6 Hop Limit value of the IPv6 Header is less than or equal to 1;
[0125] S07. Discard the packet, and send an ICMP TimeExceeded - Hop Limit Exceeded in Transit packet as a timeout packet to the Source Address of the IPv6 Header;
[0126] S09. Otherwise, decrement the minimum IPv6 hop count Hop Limit by 1;
[0127] S10. Copy the destination IPv6 address to the DA of the IPv6 Header;
[0128] S11. If the ILM forwarding table entry contains the outgoing interface information, use this outgoing interface as the destination outgoing interface; otherwise, query the IPv6 routing table entry according to the DA, and use the outgoing interface contained in the IPv6 routing table entry as the destination outgoing interface;
[0129] S12. Send the packet to the destination outgoing interface, and when sending the packet, use the corresponding forwarding resources of the destination outgoing interface according to the common RI in RH-MPLS and the RI per-seg of the next segment read.
[0130] The source routing method of the routing extension header in the present application is exemplarily described below through different embodiments.
[0131] Embodiment 1:
[0132] This embodiment describes the processing flow of an IPv6 packet transmitted along a deterministic forwarding path using a timeslot queueing and forwarding (TQF) scheduling mechanism. Figure 4 A schematic diagram of a network provided for an embodiment is as Figure 4 In the network shown, all nodes assign MPLS Labels to all their adjacencies respectively. Here, the meaning of an adjacency is a one-way connection relationship from this node to a certain neighbor node, including the outgoing interface and the next-hop information.
[0133] AsFigure 4 As shown, for example:
[0134] Node S assigns MPLS Label label_s1 to its adjacency <intf_s1, ip_a1> connecting to neighbor node A;
[0135] Node A assigns MPLS Label label_a1 to its adjacency <intf_a1, ip_s1> connecting to neighbor node S, and assigns MPLS Label label_a2 to its adjacency <intf_a2, ip_b1> connecting to neighbor node B;
[0136] Node B assigns MPLS Label label_b1 to its adjacency <intf_b1, ip_a2> connecting to neighbor node A, and assigns MPLS Label label_b2 to its adjacency <intf_b2, ip_c1> connecting to neighbor node C;
[0137] Node C assigns MPLS Label label_c1 to its adjacency <intf_c1, ip_b2> connecting to neighbor node B, and assigns MPLS Label label_c2 to its adjacency <intf_c2, ip_d1> connecting to neighbor node D;
[0138] Node D assigns MPLS Label label_d1 to its adjacency <intf_d1, ip_c2> connecting to neighbor node C;
[0139] Assume that a deterministic forwarding path from the head node S to the tail node D is established, which is a traffic engineering path (TE path) based on a strict explicit route, specifying each hop link and the time slot resources on the link. This TE path may be calculated by the head node S itself or requested to be calculated by the controller. According to the TQF scheduling mechanism, all nodes included in the TE path communicate with each other based on the same orchestration period length (OPL). Assume that an OPL of 1 ms is used in this embodiment, denoted as OPL-1ms. Assume that the Segment List corresponding to this TE path contains 4 logical segments, and from the first logical segment to the fourth logical segment are as follows:
[0140] Adjacency <intf_s1, ip_a1>, and time slot 23 using the outgoing interface intf_s1;
[0141] Adjacency <intf_a2, ip_b1>, and time slot 17 using the outgoing interface intf_a2;
[0142] Adjacent body <intf_b2, ip_c1>, and time slot 13 using the outgoing interface intf_b2;
[0143] Adjacent body <intf_c2, ip_d1>, and time slot 19 using the outgoing interface intf_c2;
[0144] When forwarding the packet along the above TE path on the head node S, the packet can be encapsulated with IPv6 Header + RH-MPLS, as Figure 5 shown, Figure 5 Another schematic diagram of a routing extension header provided for an embodiment, in Figure 5 :
[0145] Set RT = 1, indicating the use of time slot resources;
[0146] Set common RI = 1000, indicating that the OPL is 1000 us;
[0147] The Segment 3 field stores <MPLS Label, RI per-seg> corresponding to the logically first segment element as <label_s1 23>.
[0148] The Segment 2 field stores <MPLS Label, RI per-seg> corresponding to the logically second segment element as <label_a2 17>.
[0149] The Segment 1 field stores <MPLS Label, RI per-seg> corresponding to the logically third segment element as <label_b2 13>.
[0150] The Segment 0 field stores <MPLS Label, RI per-seg> corresponding to the logically fourth segment element as <label_c2 19>.
[0151] In addition, set Segment Left = 3, indicating that there are still 3 segments to be processed.
[0152] The forwarding process of the IPv6 packet along this TE path is as follows:
[0153] 1) The IPv6 packet is forwarded from the head node S to the adjacent body indicated by the logically first Segment. Query the ILM forwarding table entry according to label_s1 to obtain the destination IPv6 address as ip_a1 and the destination output interface as intf_s1. Set the DA of the IPv6 Header of the packet to ip_a1, and send the packet to the destination output interface intf_s1, and it is sent in time slot 23 of the OPL-1ms scheduling cycle instance of intf_s1. The Segment Left of the sent packet is 3, indicating that there are still 3 segments to be processed.
[0154] 2) When the IPv6 packet arrives at node A, according to the DA of the IPv6 Header being equal to ip_a1, query the IPv6 routing table entry and sense that ip_a1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0155] Step1: Check and find that Segment Left is greater than 0, then subtract 1 from Segment Left to become 2;
[0156] Step2: Read the next Segment element from the segment list according to Segment List[Segment Left] to get <label_a2,17>;
[0157] Step3: Query the ILM forwarding table entry according to label_a2 to obtain the destination IPv6 address as ip_b1 and the destination output interface as intf_a2;
[0158] Step4: IPv6 sets the DA of the IPv6 Header of the packet to ip_b1, and sends the packet to the destination output interface intf_a2, and it is sent in time slot 17 of the OPL-1ms scheduling cycle instance of intf_a2.
[0159] 3) When the IPv6 packet arrives at node B, according to the DA of the IPv6 Header being equal to ip_b1, query the IPv6 routing table entry and sense that ip_b1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0160] Step1: Check and find that Segment Left is greater than 0, then subtract 1 from Segment Left to become 1;
[0161] Step2: Read the next Segment element from the segment list according to Segment List[Segment Left] to get <label_b2,13>;
[0162] Step 3: Query the ILM forwarding table entry according to label_b2 to obtain the destination IPv6 address as ip_c1 and the destination output interface as intf_b2;
[0163] Step 4: Set the DA of the IPv6 Header of the packet to ip_c1, send the packet to the destination output interface intf_b2, and send it in time slot 13 of the OPL-1ms scheduling cycle instance of intf_b2.
[0164] 4) When the IPv6 packet arrives at node C, according to the DA of the IPv6 Header being equal to ip_c1, query the IPv6 routing table entry and sense that ip_c1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0165] Step 1: Check and find that Segment Left is greater than 0, then subtract 1 from Segment Left to become 0;
[0166] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left] to obtain <label_c2, 19>;
[0167] Step 3: Query the ILM forwarding table entry according to label_c2 to obtain the destination IPv6 address as ip_d1 and the destination output interface as intf_c2;
[0168] Step 4: Set the DA of the IPv6 Header of the packet to ip_d1, send the packet to the destination output interface intf_c2, and send it in time slot 19 of the OPL-1ms scheduling cycle instance of intf_c2.
[0169] 5) When the IPv6 packet arrives at node D, according to the DA of the IPv6 Header being equal to ip_d1, query the IPv6 routing table entry and sense that ip_d1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0170] Step 1: Check and find that Segment Left is equal to 0, then remove the IPv6 header and RH-MPLS, and continue to identify and process the inner payload according to the Next Header field of RH-MPLS.
[0171] Embodiment 2:
[0172] This embodiment describes the processing flow of an IPv6 packet transmitted along a deterministic forwarding path using the Deadline scheduling mechanism. As Figure 5In the network shown, all nodes allocate MPLS Labels for all their adjacencies respectively. The specific allocation is the same as that in Embodiment 1 and will not be elaborated here.
[0173] Suppose a deterministic forwarding path is established from the head node S to the tail node D, which is a traffic engineering path (TE path) based on strict explicit routing, specifying each hop link and the delay resources on the link. This TE path may be calculated by the head node S itself or requested to be calculated by the controller. According to the Deadline scheduling mechanism, the delay resources on the link consist of multiple delay levels, and different delay levels correspond to different planned residence delays. For simplicity, it is assumed in this article that the value of a specific delay level is the same as the corresponding planned residence delay. For example, the planned residence delay corresponding to the delay level of 10 us is 10 us, the planned residence delay corresponding to the delay level of 20 us is 20 us, and so on. Suppose the Segment List corresponding to this TE path contains 4 segments logically, and from the first segment to the fourth segment logically are as follows:
[0174] Adjacency <intf_s1, ip_a1>, and the delay level of 20 us using the outgoing interface intf_s1;
[0175] Adjacency <intf_a2, ip_b1>, and the delay level of 30 us using the outgoing interface intf_a2;
[0176] Adjacency <intf_b2, ip_c1>, and the delay level of 20 us using the outgoing interface intf_b2;
[0177] Adjacency <intf_c2, ip_d1>, and the delay level of 40 us using the outgoing interface intf_c2;
[0178] When forwarding the IPv6 packet along the above TE path on the head node S, the IPv6 packet can be encapsulated with IPv6 Header + RH-MPLS, as Figure 6 shown, Figure 6 which is a schematic diagram of another routing extension header provided for an embodiment. In Figure 6 it:
[0179] Set RT = 2, indicating the use of delay resources;
[0180] Set common RI = 0, indicating that the delay deviation E is 0;
[0181] The Segment 3 field stores <MPLS Label, RI per-seg> corresponding to the first segment element logically as <label_s120>;
[0182] The Segment 2 field stores the <MPLS Label, RI per-seg> corresponding to the logically second segment element as <label_a230>;
[0183] The Segment 1 field stores the <MPLS Label, RI per-seg> corresponding to the logically third segment element as <label_b220>;
[0184] The Segment 0 field stores the <MPLS Label, RI per-seg> corresponding to the logically fourth segment element as <label_c240>;
[0185] In addition, set Segment Left = 3, indicating that there are 3 segments left to be processed.
[0186] The forwarding process of the IPv6 packet along this TE path is as follows:
[0187] 1) The IPv6 packet starts from the head node S and is forwarded to the neighbor indicated by the logically first Segment. Query the ILM forwarding table entry according to label_s1 to obtain the destination IPv6 address as ip_a1 and the destination outgoing interface as intf_s1. Set the DA of the IPv6 Header of the packet to ip_a1, send the packet to the destination outgoing interface intf_s1, and the actual residence delay is not allowed to exceed the planned residence delay of 20 us. Assume the actual residence delay is 15 us, then set common RI = 5 (i.e., 20 to 15). The Segment Left of the sent packet is 3, indicating that there are 3 segments left to be processed.
[0188] 2) When the IPv6 packet arrives at node A, according to the DA of the IPv6 Header being equal to ip_a1, query the IPv6 routing table entry and sense that ip_a1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0189] Step1: Check and find that Segment Left is greater than 0, then subtract 1 from Segment Left to become 2;
[0190] Step2: Read the next Segment element from the segment list according to Segment List[Segment Left] to obtain <label_a2,30>;
[0191] Step3: Query the ILM forwarding table entry according to label_a2 to obtain the destination IPv6 address as ip_b1 and the destination outgoing interface as intf_a2;
[0192] Step 4: Set the DA of the IPv6 Header of the packet to ip_b1, send the packet to the destination egress interface intf_a2, and the actual residence delay is not allowed to exceed the planned residence delay of 30 us plus the delay deviation of 5 us. Assume the actual residence delay is 15 us, then set the common RI = 20 (i.e., 35 minus 15).
[0193] 3) When the IPv6 packet arrives at node B, according to the DA of the IPv6 Header being equal to ip_b1, query the IPv6 routing table entry and sense that ip_b1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0194] Step 1: Check and find that Segment Left is greater than 0, then decrement Segment Left by 1 to become 1;
[0195] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left] to get <label_b2, 20>;
[0196] Step 3: Query the ILM forwarding table entry according to label_b2 to obtain the destination IPv6 address as ip_c1 and the destination egress interface as intf_b2;
[0197] Step 4: Set the DA of the IPv6 Header of the packet to ip_c1, send the packet to the destination egress interface intf_b2, and the actual residence delay is not allowed to exceed the planned residence delay of 20 us plus the delay deviation of 20 us. Assume the actual residence delay is 15 us, then set the common RI = 25 (i.e., 40 minus 15).
[0198] 4) When the IPv6 packet arrives at node C, according to the DA of the IPv6 Header being equal to ip_c1, query the IPv6 routing table entry and sense that ip_c1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0199] Step 1: Check and find that Segment Left is greater than 0, then decrement Segment Left by 1 to become 0;
[0200] Step 2: Read the next Segment element from the segment list according to Segment List[Segment Left] to get <label_c2, 40>;
[0201] Step 3: Query the ILM forwarding table entry based on label_c2 to obtain the destination IPv6 address as ip_d1 and the destination output interface as intf_c2;
[0202] Step 4: Set the DA of the IPv6 Header of the packet to ip_d1, send the packet to the destination output interface intf_c2, and the actual residence delay is not allowed to exceed the planned residence delay of 40 us plus the delay deviation of 25 us. Assume the actual residence delay is 60 us, then set the common RI = 5 (i.e., 65 to 60).
[0203] 5) When the IPv6 packet arrives at node D, according to the DA of the IPv6 Header being equal to ip_d1, query the IPv6 routing table entry and sense that ip_d1 is a local address, then continue to parse RH-MPLS and sequentially execute the following steps to process RH-MPLS:
[0204] Step 1: Check and find that Segment Left is equal to 0, then remove the IPv6 header and RH-MPLS, and continue to identify and process the inner payload according to the Next Header field of RH-MPLS.
[0205] The embodiment of the present application also provides a source routing device for a routing extension header. Figure 7 It is a schematic structural diagram of a source routing device for a routing extension header provided in an embodiment. As Figure 7 shown, the source routing device can be configured in the first node and includes:
[0206] An encapsulation module 110, configured to encapsulate a routing extension header in an IPv6 packet; wherein, each segment element of the segment list included in the routing extension header specifies unique forwarding resource information.
[0207] A sending module 120, configured to send the IPv6 packet to a second node.
[0208] In the source routing device of the routing extension header in this embodiment, the device encapsulates a routing extension header in an IPv6 packet through the encapsulation module 110, and the segment elements in the segment list within the routing extension header specify unique forwarding resource information for each segment to reduce the encapsulation overhead and are used for source routing scenarios including deterministic forwarding paths.
[0209] In an embodiment, each segment element of the segment list included in the routing extension header consists of a pointer and a preset field;
[0210] wherein, the preset field represents forwarding resources or represents the operations or processes to be performed on the IPv6 packet.
[0211] In an embodiment, the pointer is any one of the following:
[0212] Multi - protocol label switching label; index.
[0213] In one embodiment, the pointer represents topology - related instructions, and the pointer will match to the corresponding mapping forwarding table entry for guiding the packet to be forwarded to a specific outgoing interface or destination node.
[0214] In one embodiment, the preset field is the first forwarding resource identification field.
[0215] In one embodiment, the routing extension header includes an inner - layer header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag bit field, a second forwarding resource identification field, and a segment list.
[0216] In one embodiment, the forwarding resource type field includes, but is not limited to, the following definitions:
[0217] The first type value represents reserved; the second type value represents a time - slot resource type; the third type value represents a delay resource type.
[0218] In one embodiment, the first forwarding resource identification field is defined as follows:
[0219] When the forwarding resource type field is the second type value, the first forwarding resource identification field contains a time - slot number;
[0220] When the forwarding resource type field is the third type value, the first forwarding resource identification field contains a planned residence time.
[0221] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list, and the second forwarding resource identification field is defined as follows:
[0222] When the forwarding resource type field is the second type value, the second forwarding resource identification field contains an orchestration cycle length;
[0223] When the type field of the forwarding resource is the third type value, the second forwarding resource identification field contains a delay deviation.
[0224] In one embodiment, the segment list in the routing extension header is stored in reverse order or forward order.
[0225] In one embodiment, the routing extension header only contains the forwarding resource information specific to each segment. Correspondingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop - by - hop options header.
[0226] In one embodiment, encapsulating the routing extension header in an IPv6 packet includes:
[0227] Obtain the corresponding target IPv6 address from the mapping table entry matched by the pointer of the first segment element logically;
[0228] Copy the target IPv6 address to the destination address field of the IPv6 packet header;
[0229] Set the remaining number of segments in the segment list included in the routing extension header to n - 1, where n is the number of segment elements included in the segment list logically.
[0230] In one embodiment, sending the IPv6 packet to a second node includes:
[0231] Obtain a target outgoing interface from the mapping table entry, or obtain a target outgoing interface from the routing table entry matched by the target IPv6 address;
[0232] Send the IPv6 packet to the target outgoing interface, and when sending the IPv6 packet, use the corresponding forwarding resource of the target outgoing interface according to the forwarding resource type field, the second forwarding resource identifier field in the routing extension header, and the first forwarding resource identifier field of the next segment read.
[0233] The source routing device of the routing extension header proposed in this embodiment and the source routing method of the routing extension header proposed in the above embodiment belong to the same inventive concept. Technical details not described in detail in this embodiment can be referred to any of the above embodiments, and this embodiment has the same beneficial effects as the source routing method of the routing extension header.
[0234] The embodiment of the present application also provides a source routing device of a routing extension header. Figure 8 For a schematic structural diagram of another source routing device of a routing extension header provided in an embodiment, as Figure 8 shown, the source routing device of the routing extension header can be configured in a second node, including:
[0235] A receiving module 210, which receives an IPv6 packet, where a routing extension header is encapsulated in the IPv6 packet, and each segment element of the segment list included in the routing extension header specifies unique forwarding resource information;
[0236] A parsing module 220, which parses the routing extension header.
[0237] The source routing device of the routing extension header in this embodiment uses the corresponding forwarding resource by parsing the routing extension header encapsulated in the IPv6 packet. The segment elements in the segment list within the routing extension header specify unique forwarding resource information for each segment, so as to reduce the encapsulation overhead and be used in source routing scenarios including deterministic forwarding paths.
[0238] In one embodiment, each segment element in the segment list included in the routing extension header consists of a pointer and a preset field;
[0239] wherein, the preset field represents a forwarding resource or represents an operation or process to be performed on the IPv6 packet.
[0240] In one embodiment, the pointer is any one of the following:
[0241] Multiprotocol Label Switching (MPLS) label; index.
[0242] In one embodiment, the pointer represents a topology-related instruction, and the pointer will match to a corresponding mapping forwarding table entry for guiding the packet to be forwarded to a specific output interface or destination node.
[0243] In one embodiment, the preset field is a first forwarding resource identification field.
[0244] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag bit field, a second forwarding resource identification field, and a segment list.
[0245] In one embodiment, the forwarding resource type field includes but is not limited to the following definitions:
[0246] The first type value indicates reserved; the second type value indicates a time slot resource type; the third type value indicates a delay resource type.
[0247] In one embodiment, the first forwarding resource identification field is defined as follows:
[0248] When the forwarding resource type field is the second type value, the first forwarding resource identification field contains a time slot number;
[0249] When the forwarding resource type field is the third type value, the first forwarding resource identification field contains a planned residence time.
[0250] In one embodiment, the second forwarding resource identification field is a common information identification field shared by all segments in the segment list, and the second forwarding resource identification field is defined as follows:
[0251] When the forwarding resource type field is the second type value, the second forwarding resource identification field contains an orchestration cycle length;
[0252] When the type field of the forwarding resource is the third type value, the second forwarding resource identification field contains a delay deviation.
[0253] In one embodiment, the routing extension header only contains forwarding resource information specific to each segment. Correspondingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.
[0254] In one embodiment, the segment list in the routing extension header is stored in reverse order or forward order.
[0255] In one embodiment, when the second node receives the IPv6 packet, if the destination address of the IPv6 extension header matches the local IP address and the next header field of the IPv6 extension header indicates that the next layer is the routing extension header, then the routing extension header is parsed, including:
[0256] If the number of remaining segments in the segment list contained in the routing extension header is equal to 0, then the inner payload is continued to be processed, and the inner payload type is determined according to the inner header type field following the routing extension header;
[0257] Otherwise, decrement the number of remaining segments in the segment list contained in the routing extension header by 1, read the next segment in the segment list according to the segment list, query the corresponding mapping forwarding table entry according to the pointer of the next segment, and obtain the destination IPv6 address from the mapping forwarding table entry; if the minimum IPv6 hop count of the IPv6 extension header is less than or equal to 1, then discard the IPv6 packet and send an Internet Control Message Protocol time exceeded packet to the source address of the IPv6 extension header, otherwise, decrement the minimum IPv6 hop count by 1, copy the destination IPv6 address to the destination address of the IPv6 extension header; if the mapping forwarding table entry contains egress interface information, then use the egress interface corresponding to the egress interface information as the destination egress interface, otherwise obtain the destination egress interface from the routing table entry matching the destination IPv6 address;
[0258] Send the IPv6 packet to the destination egress interface, and when the IPv6 packet is sent, use the corresponding forwarding resources of the destination egress interface according to the forwarding resource type field, the second forwarding resource identification field in the routing extension header, and the first forwarding resource identification field of the next segment read.
[0259] The source routing device of the routing extension header proposed in this embodiment and the source routing method of the routing extension header proposed in the above embodiment belong to the same inventive concept. Technical details not described in detail in this embodiment can be referred to any of the above embodiments, and this embodiment has the same beneficial effects as the source routing method of the routing extension header.
[0260] In one embodiment, Figure 9 It is a schematic structural diagram of a communication node provided for an embodiment. As Figure 9As shown in the figure, the communication node provided by the present application includes: a processor 310 and a memory 320. The number of processors 310 in the device can be one or more, Figure 9 Taking one processor 310 as an example. The number of memories 320 in the device can be one or more, Figure 9 Taking one memory 320 as an example. The processor 310 and the memory 320 of the device can be connected by a bus or other means, Figure 9 Taking the connection by bus as an example. In this embodiment, the node can be the first node or the second node.
[0261] The memory 320, as a computer-readable storage medium, can be set to store software programs, computer-executable programs, and modules, such as the program instructions / modules corresponding to the device in any embodiment of the present application (for example, the encapsulation module 110 and the sending module 120 in the source routing device of the routing extension header). The memory 320 can include a program storage area and a data storage area. Among them, the program storage area can store an operating system and application programs required for at least one function; the data storage area can store data created according to the use of the device, etc. In addition, the memory 320 can include high-speed random access memory, and can also include non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage devices. In some instances, the memory 320 can further include a memory remotely set relative to the processor 310, and these remote memories can be connected to the device through a network. Examples of the above network include but are not limited to the Internet, an enterprise intranet, a local area network, a mobile communication network, and combinations thereof.
[0262] When the communication node is the first node, the device provided above can be set to execute the source routing method of the routing extension header applied to the first node provided in any of the above embodiments, and has corresponding functions and effects.
[0263] When the communication node is the second node, the device provided above can be set to execute the source routing method of the routing extension header applied to the second node provided in any of the above embodiments, and has corresponding functions and effects.
[0264] The embodiment of the present application further provides a storage medium containing computer-executable instructions. The computer-executable instructions are used to execute a source routing method of a routing extension header applied to a first node when executed by a computer processor. The method includes: encapsulating a routing extension header in an IPv6 packet; wherein, each segment element of the segment list included in the routing extension header specifies unique forwarding resource information; and sending the IPv6 packet to a second node.
[0265] An embodiment of the present application further provides a storage medium containing computer-executable instructions. When the computer-executable instructions are executed by a computer processor, they are used to execute a source routing method for an information routing extension header applied to a second node. The method includes: receiving an IPv6 packet, where a routing extension header is encapsulated in the IPv6 packet, and each segment element in the segment list included in the routing extension header specifies unique forwarding resource information; parsing the routing extension header.
[0266] An embodiment of the present application further provides a communication system. Figure 10 As shown in the structural schematic diagram of a communication system provided for an embodiment, Figure 10 as shown, the communication system includes a first node 10 and a second node 20;
[0267] The first node 10 is used to encapsulate a routing extension header in an IPv6 packet and send the IPv6 packet to the second node; wherein, each element in the segment list included in the routing extension header specifies unique forwarding resource information for each segment;
[0268] The second node 20 is used to parse the routing extension header when receiving the IPv6 packet.
[0269] In the communication system provided by the embodiment of the present application, the segment elements in the segment list in the routing extension header specify unique forwarding resource information for each segment, so as to reduce the encapsulation overhead and be used for source routing scenarios including deterministic forwarding paths.
[0270] In one embodiment, each segment element in the segment list included in the routing extension header consists of a pointer and a preset field;
[0271] wherein, the preset field represents a forwarding resource or represents an operation or process to be performed on the IPv6 packet.
[0272] In one embodiment, the pointer is any one of the following:
[0273] Multiprotocol Label Switching label; index.
[0274] In one embodiment, the pointer represents a topology-related instruction, and the pointer will match to a corresponding mapping forwarding table entry, which is used to guide the packet to be forwarded to a specific outgoing interface or destination node.
[0275] In one embodiment, the preset field is a first forwarding resource identification field.
[0276] In one embodiment, the routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag bit field, a second forwarding resource identification field, and a segment list.
[0277] In one embodiment, the forwarding resource type field includes but is not limited to the following definitions:
[0278] The first type value indicates reservation; the second type value indicates time slot resource type; the third type value indicates delay resource type.
[0279] In one embodiment, the first forwarding resource identifier field is defined as follows:
[0280] When the forwarding resource type field is the second type value, the time slot number is included in the first forwarding resource identifier field;
[0281] When the forwarding resource type field is the third type value, the planned residence time is included in the first forwarding resource identifier field.
[0282] In one embodiment, the second forwarding resource identifier field is a common information identifier field shared by all segments in the segment list, and the second forwarding resource identifier field is defined as follows:
[0283] When the forwarding resource type field is the second type value, the scheduling cycle length is included in the second forwarding resource identifier field;
[0284] When the type field of the forwarding resource is the third type value, the delay deviation is included in the second forwarding resource identifier field.
[0285] In one embodiment, the segment list in the routing extension header is stored in reverse order or forward order.
[0286] In one embodiment, the routing extension header only contains the forwarding resource information unique to each segment. Correspondingly, the common resource identifier field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.
[0287] In one embodiment, the first node 10 is specifically configured to: obtain the corresponding target IPv6 address from the mapping entry matched by the pointer of the first segment element logically; copy the target IPv6 address to the destination address field of the IPv6 packet header; set the remaining number of segments in the segment list included in the routing extension header to n - 1, where n is the number of segment elements included in the logical segment list; obtain the target outgoing interface from the mapping entry, or obtain the target outgoing interface from the routing entry matched by the target IPv6 address.
[0288] In one embodiment, the first node 10 is specifically configured to: send the IPv6 packet to the target outgoing interface, and when sending the IPv6 packet, use the corresponding forwarding resources of the target outgoing interface according to the forwarding resource type field, the second forwarding resource identifier field in the routing extension header, and the first forwarding resource identifier field of the next segment read.
[0289] In one embodiment, when the second node receives the IPv6 packet, if the destination address of the IPv6 extension header matches the local IP address and the Next Header field of the IPv6 extension header indicates that the next layer is the Routing Extension Header, the second node 20 is specifically configured to: If the remaining segment number in the segment list included in the Routing Extension Header is equal to 0, continue to process the inner payload, and the inner payload type is determined according to the inner header type field following the Routing Extension Header; otherwise, decrement the remaining segment number in the segment list included in the Routing Extension Header by 1, read the next segment in the segment list according to the segment list, query the corresponding mapping forwarding entry according to the pointer of the next segment, and obtain the target IPv6 address from the mapping forwarding entry; If the IPv6 minimum hop count of the IPv6 extension header is less than or equal to 1, discard the IPv6 packet and send an Internet Control Message Protocol (ICMP) Time Exceeded message to the source address of the IPv6 extension header, otherwise, decrement the IPv6 minimum hop count by 1, copy the target IPv6 address to the destination address of the IPv6 extension header; If the mapping forwarding entry includes the outgoing interface information, use the outgoing interface corresponding to the outgoing interface information as the target outgoing interface, otherwise obtain the target outgoing interface from the routing entry matching the target IPv6 address; Send the IPv6 packet to the target outgoing interface, and when sending the IPv6 packet, use the corresponding forwarding resource of the target outgoing interface according to the Forwarding Resource Type field, the Second Forwarding Resource Identifier field in the Routing Extension Header, and the First Forwarding Resource Identifier field of the next segment read.
[0290] Those skilled in the art should understand that the term user equipment covers any suitable type of wireless user equipment, such as a mobile phone, a portable data processing device, a portable web browser, or an in-vehicle mobile station.
[0291] In general, the various embodiments of the present application can be implemented in hardware or a dedicated circuit, software, logic, or any combination thereof. For example, some aspects can be implemented in hardware, while other aspects can be implemented in firmware or software that can be executed by a controller, a microprocessor, or other computing devices, although the present application is not limited thereto.
[0292] The embodiments of the present application can be implemented by a data processor of a mobile device executing computer program instructions, such as in a processor entity, or by hardware, or by a combination of software and hardware. The computer program instructions can be assembly instructions, Instruction Set Architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages.
[0293] Any block diagram of a logic flow in the accompanying drawings of the present application may represent program steps, or may represent interconnected logic circuits, modules, and functions, or may represent a combination of program steps and logic circuits, modules, and functions. A computer program may be stored in a memory. The memory may have any type suitable for the local technical environment and may be implemented using any suitable data storage technology, such as but not limited to read-only memory (ROM), random access memory (RAM), optical memory devices and systems (digital video disc (DVD) or compact disk (CD)), etc. The computer-readable medium may include a non-transitory storage medium. The data processor may be any type suitable for the local technical environment, such as but not limited to general-purpose computers, special-purpose computers, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and processors based on multi-core processor architectures.
[0294] The above are only the preferred embodiments of the present application and are not used to limit the present application. For those skilled in the art, the present application may have various changes and modifications. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A source routing method for a routing extension header, characterized in that, Applied to the first node, the method includes: Encapsulating a routing extension header in an IPv6 packet; wherein, each segment element of the segment list included in the routing extension header specifies unique forwarding resource information; Sending the IPv6 packet to a second node.
2. The method according to claim 1, wherein Each segment element in the segment list included in the routing extension header consists of a pointer and a preset field; Wherein, the preset field characterizes a forwarding resource or an operation or process to be performed on the IPv6 packet.
3. The method according to claim 2, wherein The pointer is any one of the following: Multiprotocol Label Switching label; index.
4. The method according to claim 3, characterized in that, The pointer represents a topology-related instruction, and the pointer will match the corresponding mapping forwarding table entry for guiding the packet to be forwarded to a specific outgoing interface or destination node.
5. The method according to claim 2, characterized in that, The preset field is a first forwarding resource identification field.
6. The method according to claim 1, wherein The routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment number field, a forwarding resource type field, a flag bit field, a second forwarding resource identification field, and a segment list.
7. The method according to claim 6, characterized in that, The forwarding resource type field includes but is not limited to the following definitions: The first type value indicates reserved; the second type value indicates a time slot resource type; the third type value indicates a delay resource type.
8. The method according to claim 5, characterized in that, The first forwarding resource identification field is defined as follows: When the forwarding resource type field is the second type value, the first forwarding resource identification field contains a time slot number; When the forwarding resource type field is the third type value, the first forwarding resource identification field contains a planned residence time.
9. The method according to claim 6, wherein The second forwarding resource identification field is a common information identification field shared by all segments in the segment list, and the second forwarding resource identification field is defined as follows: When the forwarding resource type field is the second type value, the second forwarding resource identification field contains an orchestration cycle length; When the type field of the forwarding resource is the third type value, the second forwarding resource identification field contains a delay deviation.
10. The method according to claim 1, wherein The segment list in the routing extension header is stored in a reverse order or a forward order.
11. The method according to claim 1, wherein The routing extension header only contains the forwarding resource information unique to each segment. Correspondingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.
12. The method according to claim 1, characterized in that, The encapsulating a routing extension header in an IPv6 packet includes: Obtaining a corresponding target IPv6 address from the mapping table entry matched by the pointer of the logically first segment element; Copying the target IPv6 address to the destination address field of the IPv6 packet header; Setting the remaining segment number in the segment list included in the routing extension header to n - 1, where n is the number of segment elements included in the logically segment list.
13. The method according to claim 1 or 12, characterized in that, The sending the IPv6 packet to a second node includes: Obtaining a target outgoing interface from the mapping table entry, or obtaining a target outgoing interface from the routing table entry matched by the target IPv6 address; Sending the IPv6 packet to the target outgoing interface, and when sending the IPv6 packet, using the corresponding forwarding resources of the target outgoing interface according to the forwarding resource type field, the second forwarding resource identification field in the routing extension header, and the first forwarding resource identification field of the next segment read.
14. A source routing method for a routing extension header, characterized in that, Applied to a second node, the method includes: Receiving an IPv6 packet, where a routing extension header is encapsulated in the IPv6 packet, and each segment element of the segment list included in the routing extension header specifies unique forwarding resource information; Parsing the routing extension header.
15. The method according to claim 14, characterized in that, Each segment element in the segment list included in the routing extension header consists of a pointer and a preset field; Wherein, the preset field characterizes a forwarding resource or an operation or process to be performed on the IPv6 packet.
16. The method according to claim 15, wherein The pointer is any one of the following: Multiprotocol Label Switching label; index.
17. The method according to claim 16, wherein The pointer represents a topology-related instruction, and the pointer will match the corresponding mapping forwarding table entry for guiding the packet to be forwarded to a specific outgoing interface or destination node.
18. The method according to claim 15, wherein The preset field is a first forwarding resource identification field.
19. The method according to claim 14, wherein The routing extension header includes an inner header type field, a byte overhead field, a routing type field, a remaining segment count field, a forwarding resource type field, a flag field, a second forwarding resource identification field, and a segment list.
20. The method according to claim 19, characterized in that, The forwarding resource type field includes but is not limited to the following definitions: The first type value indicates reserved; the second type value indicates a time slot resource type; the third type value indicates a delay resource type.
21. The method according to claim 18, wherein The definition of the first forwarding resource identification field is as follows: When the forwarding resource type field is the second type value, the first forwarding resource identification field contains a time slot number; When the forwarding resource type field is the third type value, the first forwarding resource identification field contains a planned residence time.
22. The method according to claim 19, wherein The second forwarding resource identification field is a common information identification field shared by all segments in the segment list, and the definition of the second forwarding resource identification field is as follows: When the forwarding resource type field is the second type value, the second forwarding resource identification field contains an orchestration cycle length; When the type field of the forwarding resource is the third type value, the second forwarding resource identification field contains a delay deviation.
23. The method according to claim 14, characterized in that, The routing extension header only contains the forwarding resource information unique to each segment. Correspondingly, the common resource identification field shared by all segments in the segment list is placed in the IPv6 hop-by-hop options header.
24. The method according to claim 14, characterized in that, The segment list in the routing extension header is stored in reverse order or forward order.
25. The method according to claim 14, wherein When the second node receives the IPv6 packet, if the destination address of the IPv6 extension header matches the local IP address and the next header field of the IPv6 extension header indicates that the next layer is the routing extension header, then parsing the routing extension header includes: If the remaining segment count in the segment list included in the routing extension header is equal to 0, then continue to process the inner payload, and the inner payload type is determined according to the inner header type field following the routing extension header; Otherwise, decrement the number of remaining segments in the segment list included in the routing extension header by 1, read the next segment in the segment list according to the segment list, query the corresponding mapping forwarding table entry according to the pointer of the next segment, and obtain the destination IPv6 address from the mapping forwarding table entry; if the minimum IPv6 hop count of the IPv6 extension header is less than or equal to 1, discard the IPv6 packet and send an Internet Control Message Protocol time exceeded packet to the source address of the IPv6 extension header, otherwise, decrement the minimum IPv6 hop count by 1, and copy the destination IPv6 address to the destination address of the IPv6 extension header; if the mapping forwarding table entry contains egress interface information, use the egress interface corresponding to the egress interface information as the destination egress interface, otherwise obtain the destination egress interface from the routing table entry matched by the destination IPv6 address; Send the IPv6 packet to the destination egress interface, and when sending the IPv6 packet, use the corresponding forwarding resources of the destination egress interface according to the forwarding resource type field, the second forwarding resource identifier field in the routing extension header, and the first forwarding resource identifier field of the next segment read.
26. A communication node, characterized in that, Comprising: A memory, and one or more processors; The memory is configured to store one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1-13 or 14-25 above.
27. A storage medium, characterized in that, The storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1-13 or 14-25 above is implemented.
28. A communication system, characterized in that, The communication system includes a first node and a second node; The first node is configured to encapsulate a routing extension header in an IPv6 packet and send the IPv6 packet to the second node; wherein, each element of the segment list included in the routing extension header specifies unique forwarding resource information for each segment; The second node is configured to parse the routing extension header when receiving the IPv6 packet.