A segment identifier compression method for satellite networks
By compressing the SRv6 segment identifier into a 32-bit C-SID in the satellite network, the problem of high deployment complexity in the satellite network of the existing scheme is solved. Lightweight segment identifier compression and multi-scale identifier collaborative orchestration are achieved, reducing resource consumption and complexity, while maintaining path semantics and observability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- NANJING UNIV
- Filing Date
- 2026-01-27
- Publication Date
- 2026-04-17
Smart Images

Figure CN121586039B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of communication technology, and in particular relates to a segment identifier compression method for satellite networks. Background Technology
[0002] SRv6, a technology that enables explicit programming of satellite network paths, has been applied to satellite networks. However, due to the limited processing power and storage resources of satellites, when the service paths in the satellite network are long or require many policies, the overhead of the SRH header increases significantly, leading to problems such as a decrease in effective load ratio, easy triggering of MTU limitations, and high overhead of fragmentation, storage, and state maintenance. Therefore, it is necessary to compress the segment identifier to reduce the overhead of the SRH header.
[0003] However, existing SRv6 segment identifier compression schemes, such as IETF RFC 9800 and several schemes that use SID and prefix mapping tables to implement short tag replacement, use bitmaps or differential masks to encode the segment list, and introduce extended fields in the SRH to mark compressed segments, have reduced SRH header overhead to some extent. However, the deployment and implementation of the above schemes are relatively complex and cannot be directly applied to satellite networks. The main problems are as follows:
[0004] 1. Complexity of control plane and behavior extensions: The RFC9800 solution introduces new endpoint behaviors and processing procedures such as NEXT-C-SID and REPLACE-C-SID, which increases the implementation complexity and maintenance cost in satellite networks where the computing power and storage of onboard equipment are limited.
[0005] 2. The compressed segment identifier encapsulation unit carrier needs to reserve a Block segment identifier, which limits the compression density and increases planning complexity: In the RFC9800 scheme, the first segment identifier encapsulation unit carrier needs to simultaneously carry the 128-bit complete SID carrying the Block; not only does it occupy a fixed 128-bit segment position for Block representation, limiting the compression density of the segment list, but it also requires unified planning and maintenance of Block boundaries and compression domain ranges in the control plane, increasing the address planning and operation and maintenance complexity of the satellite network;
[0006] 3. Compression relies on the original 128-bit SID, and the compression process is complex: When performing compression, solutions such as RFC9800 require the uncompressed original 128-bit SID list calculated and sent by the controller as input, and then perform the compression algorithm on this list, making the compression process relatively complex.
[0007] 4. Complex multi-scale identifier coordination and rollback mechanism between compressed and uncompressed segment identifiers: When compressed SIDs and 128-bit original SIDs need to coexist in the same SRH segment list, or need to communicate across compressed and uncompressed domains, compression schemes such as RFC9800 rely on unified block planning or additional flag bits and behavior rules to distinguish and roll back. When deployed across vendors and domains, ambiguity can easily arise regarding when to parse in the compressed manner and when to restore to the 128-bit SID, increasing the difficulty of canary release and troubleshooting.
[0008] 5. Insufficient semantic carrying capacity and lack of mapping relationship with physical topology information: In the existing segment identifier compression method, there is no direct correspondence between the compressed segment identifier and the semantic information such as the layer number, orbit number, and intra-orbit number of the satellite network. It is difficult to quickly determine the target satellite node, specific inter-satellite link and its direction based on the header field, which in turn affects the observability and verification efficiency of accurate policy delivery, traffic engineering, slice configuration and IOAM.
[0009] In summary, existing SRv6 segment identifier compression schemes are quite complex and cannot be directly applied to satellite networks.
[0010] Therefore, there is an urgent need for a simple and efficient segment identifier compression method for satellite networks. This method should maintain the basic functions of SRv6 without modifying the SRv6 control plane protocol and SRH fixed header format, and should not rely on the original 128-bit SID and Block planning. Through a lightweight data plane structure design, the 128-bit segment identifier can be compressed into a 32-bit segment identifier, reducing SRH header overhead and on-board resource consumption. It should also support multi-scale identifier co-arrangement with the 128-bit SID, while maintaining path semantics and observability, thus providing support for the engineering deployment of SRv6 in satellite networks. Summary of the Invention
[0011] Purpose of the Invention: To address the issue of high SRH header overhead in SRv6 applications of satellite networks due to long service paths or increased policy carrying capacity, and the fact that existing segment identifier compression methods are too complex and rely on original SID or Block planning, making them difficult to apply directly to satellite networks, this invention proposes a segment identifier compression method for satellite networks. This method maintains the basic functions and interoperability boundaries of SRv6 without modifying the SRv6 control plane protocol or the fixed SRH header format, and does not rely on the original 128-bit SID segment list and block prefix planning. Through a lightweight data plane structure design, it compresses the 128-bit segment identifier into a 32-bit segment identifier, reducing SRH header overhead. It also supports multi-scale identifier co-arrangement with the 128-bit SID, while maintaining path semantic expressiveness and network observability.
[0012] The segment identifier compression method for satellite networks proposed in this invention specifically includes the following steps:
[0013] S1. Compress the 128-bit segment identifier SID into a 32-bit compressed segment identifier C-SID: Compress the 128-bit segment identifier SID in the segment list of the Segment Routing Extension (SRH) header. After compression, the topology prefix location field (Locator), segment behavior indication field (Function), and behavior extension parameter field (Arguments) in the segment identifier SID are mapped to predefined compression fields along with the location semantic information of satellite nodes in the satellite network, the compressed segment identifier location index, and the compression flag information to construct the 32-bit compressed segment identifier C-SID. The location semantic information of the satellite nodes includes, but is not limited to, the layer number, orbit number, and intra-orbit number information of the satellite node; specifically, it includes:
[0014] S1.1 Compress the topology prefix locator field (Locator) in the uncompressed segment identifier (SID) into a compressed topology prefix locator field (C-Locator):
[0015] The topology prefix location field Locator in the uncompressed segment segment identifier SID is compressed into a compressed topology prefix location field C-Locator. The compressed topology prefix location field C-Locator is 16 bits wide and is used to indicate SRv6 packet addressing and forwarding. The 16 bits of the compressed topology prefix location field C-Locator are structured as follows:
[0016] It consists of the first x bits, the middle y bits, and the last z bits, with a total bit width of 16 bits. These bits are used to represent the layer number of the satellite node in its constellation, the orbit number in that layer, and the number within that orbit.
[0017] S1.2 Compress the segmentation behavior indicator field Function in the uncompressed segmentation identifier SID into a compressed segmentation behavior indicator field C-Function:
[0018] The segmentation behavior indicator field Function in the uncompressed segment segment identifier SID is compressed into a compressed segmentation behavior indicator field C-Function; the compressed segmentation behavior indicator field C-Function has a bit width of 5 bits and is used to represent various forwarding behaviors of SRv6 as defined in RFC8986;
[0019] S1.3 Compress the Arguments field of the uncompressed segment identifier SID into the compressed Arguments field C-Arguments:
[0020] The Arguments field in the SID is compressed into the C-Arguments field. The C-Arguments field has a width of 8 bits and is used to represent the parameter information carried by the SRv6 forwarding behavior.
[0021] S1.4 Construct the Compressed Segment Identifier Position Index (CSI):
[0022] The Compressed Segment Identifier Position Index (CSI) field is 2 bits wide and indicates the position of the corresponding Compressed Segment Identifier (C-SID) within the current segment identifier encapsulation unit carrier (SID Container). The meanings of the CSI values are as follows:
[0023] CSI=11 indicates that the compressed segment identifier C-SID is located in slot 1 of the current segment identifier encapsulation unit carrier SIDContainer, corresponding to the lowest 32 bits in the SIDContainer;
[0024] CSI=10 indicates that the compressed segment identifier C-SID is located in slot 2 of the current segment identifier encapsulation unit carrier SIDContainer;
[0025] CSI=01 indicates that the compressed segment identifier C-SID is located in slot 3 of the current segment identifier encapsulation unit carrier SIDContainer;
[0026] CSI=00 indicates that the compressed segment identifier C-SID is located in slot 4 of the current segment identifier encapsulation unit carrier SIDContainer, corresponding to the highest 32 bits in the segment identifier encapsulation unit carrier SIDContainer;
[0027] S1.5 Construct the compression flag C-Flag:
[0028] The compression flag C-Flag is 1 bit wide and is used to distinguish between the compressed segment identifier C-SID and the uncompressed segment identifier SID, and to indicate the content type of the current 32-bit unit. The content type is one of the following two cases: (1) carrying the compressed segment identifier C-SID, (2) as a padding unit; wherein:
[0029] When C-Flag = 1, it means that there is a compressed segment identifier C-SID in the current segment identifier encapsulation unit carrier SID Container and the current 32-bit unit is the compressed segment identifier C-SID;
[0030] When C-Flag = 0, it indicates one of the following two situations: (1) The current segment identifier encapsulation unit carrier SIDContainer contains an uncompressed segment identifier SID and does not carry a compressed segment identifier C-SID; (2) The current 32-bit unit is a padding unit with all zeros.
[0031] S1.6 Map the compressed topology prefix location field C-Locator, compressed segmentation behavior indication field C-Function, compressed behavior extended parameter field C-Arguments, compressed segment identifier position index CSI, and compressed flag bit C-Flag obtained in steps S1.1, S1.2, S1.3, S1.4, and S1.5 to predefined compressed fields to construct the compressed segment identifier C-SID:
[0032] Map the compressed topology prefix location field C-Locator to the high 16 bits C[31:16] of the compressed segment identifier C-SID; map the compressed segment behavior indication field C-Function to the C[15:11] of the compressed segment identifier C-SID; map the compressed behavior extension parameter field C-Arguments to the C[10:3] of the compressed segment identifier C-SID; map the compressed segment identifier position index CSI to the C[2:1] of the compressed segment identifier C-SID; and map the compressed flag bit C-Flag to the C[0] of the compressed segment identifier C-SID.
[0033] Through the above mapping, a 32-bit compressed segment identifier C-SID is constructed.
[0034] S2. Encapsulate the compressed segment identifier C-SID into the segment routing extension header SRH and coordinate it with the uncompressed segment identifier SID multi-scale identifier: Reorganize the segment list in the segment routing extension header SRH in 128-bit units, and define this basic unit as the segment identifier encapsulation unit carrier SID Container. Each segment identifier encapsulation unit carrier SID Container carries one of the following two contents: (1) used to carry a 128-bit segment identifier SID, (2) used to carry 1 to 4 compressed segment identifiers C-SID; By defining the least significant bit of the segment identifier encapsulation unit carrier SID Container as the compression flag bit, the coordinated arrangement of the compressed segment identifier C-SID and the uncompressed segment identifier SID multi-scale identifier is realized; Specifically, it includes:
[0035] S2.1 When the Segment Identifier Encapsulation Unit (SID) Container is used to carry the uncompressed segment identifier (SID):
[0036] Each uncompressed segment identifier (SID) is written directly into the segment identifier encapsulation unit carrier (SIDContainer) in sequence, and the least significant compression flag (C-Flag) in the uncompressed segment identifier (SID) carrier (SIDContainer) is set to 0, thus completing the encapsulation of the uncompressed segment identifier (SID) in the SRH.
[0037] S2.2 When the Segment Identifier Encapsulation Unit Carrier (SID Container) is used to carry the Compressed Segment Identifier (C-SID):
[0038] S2.2.1 When the number of compressed segment identifiers C-SIDs is an integer multiple of 4, every 4 compressed segment identifiers C-SIDs are written into the segment identifier encapsulation unit carrier SID Container in the order of slot arrangement.
[0039] S2.2.2 When the number of compressed segment identifiers C-SIDs is not an integer multiple of 4, the last few C-SIDs that are less than 4 are written into the first few 32 bits of the last segment identifier encapsulation unit carrier SID Container in slot order, and 0 is written as padding for the remaining 32 bits in the segment identifier encapsulation unit carrier SID Container that are not actually occupied by the compressed segment identifiers C-SIDs.
[0040] S2.2.3 According to the business path planning and segment list order, the uncompressed segment identifier SID and the compressed segment identifier C-SID are sequentially arranged and encapsulated into the SRH segment list of the segment routing extension header, so as to realize the unified encapsulation of compressed segment identifier C-SID and uncompressed segment identifier SID and the collaborative arrangement of multi-scale identifiers.
[0041] S3. Identifying and reading the uncompressed segment identifier (SID) and compressed segment identifier (C-SID) in the Segment Routing Extension Header (SRH) based on the segment index (SL) pointer: In a scenario of multi-scale identifier collaborative orchestration of the uncompressed segment identifier (SID) and compressed segment identifier (C-SID), the segment list in the Segment Routing Extension Header (SRH) is traversed and read based on the segment index (SL) pointer. According to the compressed segment identifier position index (CSI) and the compression flag (C-Flag), the identification and reading of the uncompressed segment identifier (SID) and compressed segment identifier (C-SID) carried in the SIDContainer are completed; specifically including:
[0042] S3.1 Segment Identifier Encapsulation Unit Carrier (SID Container) Location: After receiving an SRv6 packet, the satellite node reads the segment index SL pointer of the Segment Routing Extension header (SRH) in the IPv6 header, locates the current Segment Identifier Encapsulation Unit Carrier (SID Container) in the segment list, and uses it as the target of this forwarding decision.
[0043] S3.2 Segment Identifier Encapsulation Unit Carrier SID Container Type Judgment: If the least significant bit of the segment identifier encapsulation unit carrier SID Container, the compression flag C-Flag, is 0, it indicates that the current segment identifier encapsulation unit carrier SID Container carries an uncompressed segment identifier SID; if it is 1, it indicates that it carries a compressed segment identifier C-SID.
[0044] S3.3 Identification and reading when the segment identifier encapsulation unit carrier SID Container carries an uncompressed segment identifier SID: The satellite node reads the uncompressed segment identifier SID as a whole and processes it according to the existing SRv6 specification. After processing, the segment index SL is decremented by 1 to point to the next segment identifier encapsulation unit carrier SID Container.
[0045] S3.4 Identification and reading of the segment identifier encapsulation unit carrier SID Container carrying the compressed segment identifier C-SID:
[0046] If C-Flag ≠ 0 and CSI ≠ 0 in the compressed segment identifier C-SID, then the current compressed segment identifier C-SID is processed. After processing, the segment index SL pointer is shifted 32 bits in the current segment identifier encapsulation unit carrier SID Container towards the low-order direction of the compressed segment identifier position index CSI.
[0047] If the compression flag C-Flag ≠ 0 and the compression segment identifier position index CSI = 0: After the current compression segment identifier C-SID is processed, all compression segment identifiers C-SID in this segment identifier encapsulation unit carrier SID Container are parsed, SL is decremented by 1 and points to the next segment identifier encapsulation unit carrier SID Container to be processed;
[0048] If the compression flag C-Flag=0, then a padding cell appears: it is considered that the current segment identifier encapsulation unit carrier SID Container has finished parsing, the segment index SL is decremented by 1 and points to the next segment identifier encapsulation unit carrier SID Container to be processed;
[0049] This completes the unified segment reading and sequential traversal of the uncompressed segment identifier SID and compressed segment identifier C-SID within the SRH segment list of the segment routing extension header.
[0050] S4. Decoding and generating IPv6 addresses based on the compressed segment identifier C-SID: After determining the current compressed segment identifier C-SID to be activated in step S3, the IPv6 destination address for actual forwarding is generated by parsing each field within the compressed segment identifier C-SID, thus realizing the mapping from the compressed segment identifier C-SID to the IPv6 address; specifically including:
[0051] Under the same constellation configuration, the common prefix of the IP address of satellite nodes is the same. The first 48 bits of the common prefix of the source IP address in the IPv6 packet header are combined with the 16 bits of the compressed topology prefix location field C-Locator in the compressed segment identifier C-SID to form a 64-bit array, which is then mapped to the first 64 bits of the IPv6 destination address for network addressing.
[0052] Map the 16 bits of C[15:0] of the compressed segment identifier C-SID to bits 65-80 of the IPv6 destination address;
[0053] Map the least significant bit (C-Flag) of the current segment identifier encapsulation unit carrier (SID Container) to the least significant bit of the IPv6 destination address, and set the remaining bits to zero;
[0054] This decodes the 32-bit compressed segment identifier C-SID to generate a 128-bit IPv6 destination address.
[0055] Beneficial effects:
[0056] 1. This invention does not require extending SRH semantics and endpoint types at the protocol level, facilitating gradual deployment in satellite networks. Without modifying the fixed SRH header fields or adding new SRv6 Endpoint types, this invention constructs a 32-bit C-SID by compressing the original 128-bit SID and uses control fields such as CSI and C-Flag to complete the compression and traversal of the compressed segment identifier. Forwarding nodes still operate within the existing SRv6 processing framework, making it more suitable for integration into onboard forwarding equipment.
[0057] 2. This invention uses the semantic directed addressing method of satellite networks to obtain valid IP address information and combines it with behavior fields, CSI, C-Flag, etc., to form a 32-bit C-SID. RFC 9800 and similar standards require the use of a C-SID dictionary or block mapping, and also require control plane synchronization. Therefore, this invention can significantly reduce the burden of onboard storage and control plane synchronization.
[0058] 3. When compressing segment identifiers, the first segment identifier encapsulation unit carrier of the compressed segment list does not need to carry the 128-bit complete SID with the Block prefix. The compressed segment list can be entirely composed of 32-bit compressed segment identifiers, which improves the compression efficiency of the SRH segment list.
[0059] 4. This invention eliminates the need to obtain the original 128-bit SID list before compression. It can directly generate 32-bit compressed SIDs based on satellite network topology and interface direction information, reducing the complexity of the compression process.
[0060] 5. The multi-scale identifier collaborative arrangement and recognition of C-SID and SID in this invention is simpler. It can be completed on the data plane based on C-Flag, CSI and SL, and a clear recognition boundary and backoff strategy can be given. Attached Figure Description
[0061] Figure 1 It is the overall structure of a segmented identifier compression method for satellite networks;
[0062] Figure 2 It is a 100-node satellite network link topology model;
[0063] Figure 3 It is a 012-node C-SID construction;
[0064] Figure 4 It involves encapsulating the SID Container, which carries the C-SID and SID, within the SRH;
[0065] Figure 5 It is the format for generating an IPv6 destination address by decoding a 32-bit C-SID; Detailed Implementation
[0066] To make the objectives, technical solutions, and advantages of this invention clearer, an example is taken of a 10-node SRv6 path in a low-Earth orbit satellite network composed of 100 LEO satellites. The nodes in the SRv6 path are 012, 013, 014, 015, 016, 017, 018, and 019. Node 012 is the encapsulation node, node 019 is the decapsulation node, and the remaining nodes are intermediate nodes. The embodiments of this invention are described in detail with reference to the accompanying drawings. This embodiment is implemented under the premise of the technical solution of this invention, and provides detailed implementation methods and specific operating procedures. The specific examples described herein are merely illustrative of this invention, but the scope of protection of this invention is not limited to the following embodiments.
[0067] The segment identifier compression method for satellite networks in this embodiment specifically includes the following steps:
[0068] S1. Compress the 128-bit segment identifier SID into a 32-bit compressed segment identifier C-SID: Compress the 128-bit segment identifier SID in the segment list of the Segment Routing Extension (SRH) header. Map the compressed topology prefix location field (Locator), segment behavior indication field (Function), and behavior extension parameter field (Arguments) of the segment identifier SID to predefined compression fields along with the location semantic information of satellite nodes in the satellite network, the compressed segment identifier location index, and the compression flag information. Construct the 32-bit compressed segment identifier C-SID, as shown in the appendix. Figure 1 As shown in the attached document, the details are as follows. Figure 2 Taking the 012 node as an example:
[0069] S1.1 Compress the topology prefix locator field Locator in the uncompressed segment identifier SID into a compressed topology prefix locator field C-Locator:
[0070] In the C-SID of node 012, the first 2 bits of the C-Locator are 01, the middle 6 bits are 000010, and the last 8 bits are 00000010. The hexadecimal representation of the C-Locator is 4202, as shown in the attached diagram. Figure 3 As shown.
[0071] S1.2 compresses the segmentation behavior indicator field Function in the uncompressed segmentation identifier SID into a compressed segmentation behavior indicator field C-Function:
[0072] Define node 012 as an End type node, with C-Function in its C-SID set to 00000, as shown in the attached table. Figure 3 As shown.
[0073] S1.3 compresses the Arguments field of the uncompressed segment identifier SID into the compressed Arguments field C-Arguments:
[0074] In this example, the C-Arguments in the C-SID of node 012 are all 0s, as shown in the attached figure. Figure 3 As shown.
[0075] S1.4 Construct the Compressed Segment Identifier Position Index (CSI):
[0076] Node 012 occupies the lowest 32-bit unit in its SID Container, and its CSI field in C-SID has a value of 11, as shown in the attached diagram. Figure 3 As shown.
[0077] S1.5 Construct the compression flag C-Flag:
[0078] In node 012, the C-Flag field in the C-SID is set to 1, as shown in the attached image. Figure 3 As shown.
[0079] S1.6 Map the C-Locator, C-Function, C-Arguments, CSI, and C-Flag from the C-SID of node 012 obtained in steps S1.1, S1.2, S1.3, S1.4, and S1.5 to predefined compressed fields, constructing the C-SID of node 012 as 4202:7, as shown in the attached diagram. Figure 3 As shown.
[0080] The C-SIDs of the SRv6 path nodes in this embodiment are shown in Table 1.
[0081] Table 1 C-SID of SRv6 path nodes
[0082] node C-Locator CSI C-Flag C[15,0] C-SID 012 4202 11 1 7 4202:7 013 4203 10 1 5 4203:5 014 4204 01 1 3 4204:3 015 4205 00 1 1 4205:1 016 4206 11 1 7 4206:7 017 4207 10 1 5 4207:5 018 4208 01 1 3 4208:3 019 4209 00 1 c001 4209:c001
[0083] S2. Encapsulate the compressed segment identifier C-SID into the segment routing extension header SRH and coordinate it with the uncompressed segment identifier SID multi-scale identifier: Reorganize the segment list in the segment routing extension header SRH in 128-bit units, and define this basic unit as the segment identifier encapsulation unit carrier SID Container. Each segment identifier encapsulation unit carrier SID Container carries one of the following two contents: (1) used to carry a 128-bit segment identifier SID, (2) used to carry 1 to 4 compressed segment identifiers C-SID; By defining the least significant bit of the segment identifier encapsulation unit carrier SID Container as the compression flag bit, the coordinated arrangement of the compressed segment identifier C-SID and the uncompressed segment identifier SID multi-scale identifier is realized; Specifically, it includes:
[0084] S2.1 When the Segment Identifier Encapsulation Unit (SID) Container is used to carry the uncompressed segment identifier (SID):
[0085] Each SID is written directly into the SID Container in sequence, and the least significant bit C-Flag in the SID Container is set to 0, thus completing the encapsulation of the SID in the SRH, as shown in the attached figure. Figure 4 As shown.
[0086] S2.2 When the Segment Identifier Encapsulation Unit Carrier (SID Container) is used to carry the Compressed Segment Identifier (C-SID):
[0087] S2.2.1 When the number of compressed segment identifiers (C-SIDs) is a multiple of 4, they shall be arranged in the following order: (See attached table) Figure 4 As shown.
[0088] S2.2.2 In this example, the number of compressed segment identifiers (C-SIDs) is not an integer multiple of 4.
[0089] S2.2.3 In this embodiment, the hybrid segment list encapsulated by node 012 is: <2001:db8:0:4202:7:0:0:0,2001:db8:0:4203:5:0:0:0, 2001:db8:0:4204:3:0:0:0, 4205:1, 4206:7, 4207:5,4208:3, 2001:db8:0:4209:c001:0:0:0>. These segments are sequentially encapsulated into the SRH segment list according to the business path planning and segment list order, achieving unified encapsulation of C-SID and SID and collaborative orchestration of multi-scale identifiers, as shown in the attached figure. Figure 4 As shown.
[0090] S3. Identifying and reading the uncompressed segment identifier (SID) and compressed segment identifier (C-SID) in the Segment Routing Extension Header (SRH) based on the segment index (SL) pointer: In a scenario of multi-scale identifier collaborative orchestration of the uncompressed segment identifier (SID) and compressed segment identifier (C-SID), the segment list in the Segment Routing Extension Header (SRH) is traversed and read based on the segment index (SL) pointer. According to the compressed segment identifier position index (CSI) and compression flag (C-Flag), the identification and reading of the uncompressed segment identifier (SID) and compressed segment identifier (C-SID) carried in the SIDContainer are completed. Taking nodes 013 and 018 as examples, this specifically includes:
[0091] S3.1 Segment Identifier Encapsulation Unit Carrier (SID Container) Location: After receiving the SRv6 packet, node 013 reads the SL pointer of the SRH in the IPv6 header. SL=3, pointing to SID Container 3; the SL pointer of the SRH of node 018 is 1, pointing to SID Container 1, as shown in the appendix. Figure 4 As shown;
[0092] S3.2 Segment Identifier Encapsulation Unit Carrier (SID) Container Type Judgment: If the least significant bit (C-Flag) of SID Container 3 is 0, it indicates that it carries a SID; if the least significant bit (C-Flag) of SID Container 1 is 1, it indicates that it carries a C-SID.
[0093] S3.3 Identification and Reading of SIDs Carried by Segment Identifier Encapsulation Unit Carrier (SID Container): SIDContainer 3 carries the SID 2001:db8:0:4203:5:0:0:0. This SID is read as a whole and processed according to the existing SRv6 specification. After processing, SL is decremented by 1 to point to the next SID Container 2, as shown in the attached diagram. Figure 4 As shown;
[0094] S3.4 Identification and reading of C-SID when the segment identifier encapsulation unit carrier SID Container carries the C-SID:
[0095] In node 018, if C-Flag != 0 and CSI == 0: After processing the current C-SID, all C-SIDs within this SID Container 1 have been resolved. SL is decremented by 1 and points to the next SID Container 0 to be processed, as shown in the attached diagram. Figure 4 As shown;
[0096] S4. Decoding and Generating IPv6 Addresses Based on Compressed Segment Identifier C-SID: After determining the current compressed segment identifier C-SID to be activated in step S3, the IPv6 destination address for actual forwarding is generated based on the fields within the compressed segment identifier C-SID, thus realizing the mapping from the compressed segment identifier C-SID to the IPv6 address; as shown in the appendix. Figure 5 As shown, it specifically includes:
[0097] Satellite nodes in the same constellation have the same public prefix for their IP addresses. In this example, the first 48 bits of the public prefix are 2001:db8:0. The 16 bits of the C-Locator in the C-SID of node 018 are 4208, which maps to the first 64 bits of the IPv6 destination address as 2001:db8:0:4208 / 64.
[0098] Map 0003 in C[15:0] of C-SID to bits 65-80 of the IPv6 destination address;
[0099] Map the least significant bit (C-Flag) of the current SID Container 1 to the least significant bit of the IPv6 destination address, and set the remaining bits to zero;
[0100] This decodes the 32-bit C-SID 4208:3 of node 018 to generate a 128-bit IPv6 destination address 2001:db8:0:4208:3:0:0:1 / 64.
[0101] Based on the above embodiments, in order to further illustrate the technical differences and advantages between the present invention and the existing SRv6 segment identifier compression scheme, a brief description of RFC9800 and several typical patent schemes is given, and the comparison results are presented in Table 2.
[0102] The SID compression scheme proposed by RFC9800 requires carrying a complete 128-bit SID with a Locator-Block within the encapsulation unit carrier, and is equipped with new endpoint behaviors and block planning such as NEXT-C-SID and REPLACE-C-SID to achieve compression and restoration of the original 128-bit SID. It is suitable for scenarios with relatively abundant resources and relatively stable topology, such as ground backbones. However, in satellite networks with limited onboard computing power and storage and highly dynamic topology, the implementation and operation complexity is high.
[0103] Besides RFC9800, there are several other segmented identifier compression schemes based on SRv6. For example, patents CN202010455435.0 and CN202011640675.4 require field-level parsing and reassembly of the original 128-bit SID when performing SID compression; patent CN202110882637.8 requires adding a control field to the header and maintaining the correspondence between the bitmap and the original SID when performing SID compression; and patent CN202410078297.7 relies on the network-wide shared prefix mapping table and index guide table for maintenance and updates when performing SID compression.
[0104] Compared with the above solutions, this invention compresses the 128-bit SID into a 32-bit C-SID by predefining the C-SID field structure and SID Container carrying method, combined with satellite network topology location information. The C-SID and SID are carried in the SIDContainer in a 4-byte alignment manner, and the identification, segmentation and reading of SID and C-SID and the generation of IPv6 destination address can be completed by relying only on the SL pointer, CSI and C-Flag on the data plane.
[0105] The advantages of this invention are listed in Table 2:
[0106] Table 2. Advantages of this invention compared to RFC9800 and related existing compression schemes
[0107] Comparison Dimensions RFC9800 Other existing solutions This invention Does the control plane require SRv6 Endpoint behavior? yes yes no Do we need to modify the SRH fixed header format? no Part of it is no Does it depend on Block planning to distinguish compression domains? yes yes no Does compression require a complete 128-bit SID list as input? yes yes no Does the segment identifier encapsulation unit carrier need to reserve 128 bits for the segment identifier? yes Part of it is no Does it possess satellite network semantics? no no yes
[0108] This invention maintains the basic functions of SRv6 without modifying the SRv6 control plane protocol and SRH fixed header format, and does not rely on the original 128-bit SID as compression input and block planning. Through a lightweight data plane structure design, the 128-bit segment identifier is compressed into a 32-bit segment identifier, reducing SRH header overhead and on-board resource consumption. It supports multi-scale identifier co-arrangement with the 128-bit SID while maintaining path semantics and observability, providing support for the engineering deployment of SRv6 in satellite networks.
Claims
1. A segment identifier compression method for satellite networks, characterized in that, The uncompressed segment identifier (SID) in the segment routing extension header (SRH) is compressed and encoded to carry satellite network topology location information. It is then forwarded in the same segment list in coordination with the uncompressed segment identifier and multi-scale identifier. The multi-scale identifier collaborative orchestration refers to the simultaneous existence of compressed segment identifiers (C-SID) and uncompressed segment identifiers (SID) in the segment list. This method specifically includes the following steps: S1. Compress the 128-bit segment identifier SID into a 32-bit compressed segment identifier C-SID: Compress the 128-bit segment identifier SID in the segment list of the Segment Routing Extension (SRH) header. After compression, the topology prefix location field (Locator), segment behavior indication field (Function), and behavior extension parameter field (Arguments) in the segment identifier SID are mapped to predefined compression fields along with the location semantic information of satellite nodes in the satellite network, the compressed segment identifier location index, and the compression flag information to construct a 32-bit compressed segment identifier C-SID. The location semantic information of the satellite nodes includes, but is not limited to, the layer number, orbit number, and intra-orbit number information of the satellite node. S2. Encapsulate the compressed segment identifier C-SID into the segment routing extension header SRH and coordinate it with the uncompressed segment identifier SID multi-scale identifier: Reorganize the segment list in the segment routing extension header SRH in 128-bit units, and define the basic unit as the segment identifier encapsulation unit carrier SID Container. Each segment identifier encapsulation unit carrier SID Container carries one of the following two contents: (1) used to carry a 128-bit segment identifier SID, (2) used to carry 1 to 4 compressed segment identifiers C-SID; by defining the least significant bit of the segment identifier encapsulation unit carrier SID Container as the compression flag bit. S3. Identify and read the uncompressed segment identifier (SID) and compressed segment identifier (C-SID) in the segment routing extension header (SRH) based on the segment index (SL) pointer: In the scenario of multi-scale identifier collaborative orchestration of uncompressed segment identifier (SID) and compressed segment identifier (C-SID), the segment list in the segment routing extension header (SRH) is traversed and read based on the segment index (SL) pointer. According to the compressed segment identifier position index (CSI) and the compression flag bit (C-Flag), the identification and reading of the uncompressed segment identifier (SID) and compressed segment identifier (C-SID) carried in the SID Container are completed. S4. Generate IPv6 address based on compressed segment identifier C-SID: After determining the current compressed segment identifier C-SID to be effective in step S3, the IPv6 destination address for actual forwarding is generated by parsing each field in the compressed segment identifier C-SID.
2. The segment identifier compression method for satellite networks according to claim 1, characterized in that, Step S1 specifically includes: S1.1 Compress the topology prefix locator field (Locator) in the uncompressed segment identifier (SID) into a compressed topology prefix locator field (C-Locator): The topology prefix location field Locator in the uncompressed segment segment identifier SID is compressed into a compressed topology prefix location field C-Locator. The compressed topology prefix location field C-Locator is 16 bits wide and is used to indicate SRv6 packet addressing and forwarding. The 16 bits of the compressed topology prefix location field C-Locator are structured as follows: It consists of the first x bits, the middle y bits, and the last z bits, with a total bit width of 16 bits. These bits are used to represent the layer number of the satellite node in its constellation, the orbit number in that layer, and the number within that orbit. S1.2 Compress the segmentation behavior indicator field Function in the uncompressed segmentation identifier SID into a compressed segmentation behavior indicator field C-Function: The segmentation behavior indication field Function in the uncompressed segment segment identifier SID is compressed into the compressed segmentation behavior indication field C-Function; the compressed segmentation behavior indication field C-Function has a bit width of 5 bits and is used to represent various SRv6 forwarding behaviors defined in RFC 8986; S1.3 Compress the Arguments field of the uncompressed segment identifier SID into the compressed Arguments field C-Arguments: The Arguments field in the SID is compressed into the C-Arguments field. The C-Arguments field has a width of 8 bits and is used to represent the parameter information carried by the SRv6 forwarding behavior. S1.4 Construct the Compressed Segment Identifier Position Index (CSI): The Compressed Segment Identifier Position Index (CSI) field is 2 bits wide and indicates the position of the corresponding Compressed Segment Identifier (C-SID) within the current segment identifier encapsulation unit carrier (SID Container). The meanings of the CSI values are as follows: CSI=11 indicates that the compressed segment identifier C-SID is located in slot 1 of the current segment identifier encapsulation unit carrier SIDContainer, corresponding to the lowest 32 bits in the SIDContainer; CSI=10 indicates that the compressed segment identifier C-SID is located in slot 2 of the current segment identifier encapsulation unit carrier SIDContainer; CSI=01 indicates that the compressed segment identifier C-SID is located in slot 3 of the current segment identifier encapsulation unit carrier SIDContainer; CSI=00 indicates that the compressed segment identifier C-SID is located in slot 4 of the current segment identifier encapsulation unit carrier SIDContainer, corresponding to the highest 32 bits in the segment identifier encapsulation unit carrier SIDContainer; S1.5 Construct the compression flag C-Flag: The compression flag C-Flag is 1 bit wide and is used to distinguish between the compressed segment identifier C-SID and the uncompressed segment identifier SID, and to indicate the content type of the current 32-bit unit. The content type is one of the following two cases: (1) carrying the compressed segment identifier C-SID, (2) as a padding unit; wherein: When C-Flag = 1, it means that there is a compressed segment identifier C-SID in the current segment identifier encapsulation unit carrier SID Container and the current 32-bit unit is the compressed segment identifier C-SID; When C-Flag = 0, it indicates one of the following two situations: (1) The current segment identifier encapsulation unit carrier SIDContainer contains an uncompressed segment identifier SID and does not carry a compressed segment identifier C-SID; (2) The current 32-bit unit is a padding unit with all zeros. S1.6 Map the compressed topology prefix location field C-Locator, compressed segmentation behavior indication field C-Function, compressed behavior extended parameter field C-Arguments, compressed segment identifier position index CSI, and compressed flag bit C-Flag obtained in steps S1.1, S1.2, S1.3, S1.4, and S1.5 to predefined compressed fields to construct the compressed segment identifier C-SID: Map the compressed topology prefix location field C-Locator to the high 16 bits C[31:16] of the compressed segment identifier C-SID; map the compressed segment behavior indication field C-Function to the C[15:11] of the compressed segment identifier C-SID; map the compressed behavior extension parameter field C-Arguments to the C[10:3] of the compressed segment identifier C-SID; map the compressed segment identifier position index CSI to the C[2:1] of the compressed segment identifier C-SID; and map the compressed flag bit C-Flag to the C[0] of the compressed segment identifier C-SID. Through the above mapping, a 32-bit compressed segment identifier C-SID is constructed.
3. The segment identifier compression method for satellite networks according to claim 2, characterized in that, Step S2 specifically includes: S2.1 When the Segment Identifier Encapsulation Unit (SID) Container is used to carry the uncompressed segment identifier (SID): Each uncompressed segment identifier (SID) is written directly into the segment identifier encapsulation unit carrier (SIDContainer) in sequence, and the least significant compression flag (C-Flag) in the uncompressed segment identifier (SID) carrier (SIDContainer) is set to 0, thus completing the encapsulation of the uncompressed segment identifier (SID) in the SRH. S2.2 When the Segment Identifier Encapsulation Unit (SID) Container is used to carry the Compressed Segment Identifier (C-SID): S2.2.1 When the number of compressed segment identifiers C-SIDs is an integer multiple of 4, every 4 compressed segment identifiers C-SIDs are written into the segment identifier encapsulation unit carrier SID Container in the order of slot arrangement. S2.2.2 When the number of compressed segment identifiers C-SIDs is not an integer multiple of 4, the last few C-SIDs that are less than 4 are written into the first few 32 bits of the last segment identifier encapsulation unit carrier SID Container in slot order, and 0 is written as padding for the remaining 32 bits in the segment identifier encapsulation unit carrier SID Container that are not actually occupied by the compressed segment identifiers C-SIDs. S2.2.3 According to the business path planning and segment list order, the uncompressed segment identifier SID and the compressed segment identifier C-SID are sequentially arranged and encapsulated into the SRH segment list of the segment routing extension header, so as to realize the unified encapsulation of compressed segment identifier C-SID and uncompressed segment identifier SID and the collaborative arrangement of multi-scale identifiers.
4. A segment identifier compression method for satellite networks according to claim 3, characterized in that, Step S3 specifically includes: S3.1 Segment Identifier Encapsulation Unit Carrier (SID Container) Location: After receiving an SRv6 packet, the satellite node reads the segment index SL pointer of the Segment Routing Extension header (SRH) in the IPv6 header, locates the current Segment Identifier Encapsulation Unit Carrier (SID Container) in the segment list, and uses it as the target of this forwarding decision. S3.2 Segment Identifier Encapsulation Unit Carrier SID Container Type Judgment: If the least significant bit of the segment identifier encapsulation unit carrier SID Container, the compression flag C-Flag, is 0, it indicates that the current segment identifier encapsulation unit carrier SID Container carries an uncompressed segment identifier SID; if it is 1, it indicates that it carries a compressed segment identifier C-SID. S3.3 Identification and reading when the segment identifier encapsulation unit carrier SID Container carries an uncompressed segment identifier SID: The satellite node reads the uncompressed segment identifier SID as a whole and processes it according to the existing SRv6 specification. After processing, the segment index SL is decremented by 1 to point to the next segment identifier encapsulation unit carrier SID Container. S3.4 Identification and reading of the segment identifier encapsulation unit carrier SID Container carrying the compressed segment identifier C-SID: If C-Flag ≠ 0 and CSI ≠ 0 in the compressed segment identifier C-SID, then the current compressed segment identifier C-SID is processed. After processing, the segment index SL pointer is shifted by 32 bits in the current segment identifier encapsulation unit carrier SID Container towards the low-order direction of the compressed segment identifier position index CSI. If the compression flag C-Flag ≠ 0 and the compression segment identifier position index CSI = 0: After the current compression segment identifier C-SID is processed, all compression segment identifiers C-SID in this segment identifier encapsulation unit carrier SID Container are parsed, SL is decremented by 1 and points to the next segment identifier encapsulation unit carrier SID Container to be processed; If the compression flag C-Flag=0, then a padding cell appears: it is considered that the current segment identifier encapsulation unit carrier SID Container has finished parsing, the segment index SL is decremented by 1 and points to the next segment identifier encapsulation unit carrier SID Container to be processed; This completes the unified segment reading and sequential traversal of the uncompressed segment identifier SID and compressed segment identifier C-SID within the SRH segment list of the segment routing extension header.
5. A segment identifier compression method for satellite networks according to claim 4, characterized in that, Step S4 specifically includes: Under the same constellation configuration, the common prefix of the IP address of satellite nodes is the same. The first 48 bits of the common prefix of the source IP address in the IPv6 packet header are combined with the 16 bits of the compressed topology prefix location field C-Locator in the compressed segment identifier C-SID to form a 64-bit array, which is then mapped to the first 64 bits of the IPv6 destination address for network addressing. Map the 16 bits of C[15:0] of the compressed segment identifier C-SID to bits 65-80 of the IPv6 destination address; Map the least significant bit (C-Flag) of the current segment identifier encapsulation unit carrier (SID Container) to the least significant bit of the IPv6 destination address, and set the remaining bits to zero; This decodes the 32-bit compressed segment identifier C-SID to generate a 128-bit IPv6 destination address.
Citation Information
Patent Citations
SRv6-based SID compression method and device, equipment and storage medium
CN111628995A
SID Compression Method and Apparatus Based on SRV6 Protocol
CN112738116B
SID compression method and device, message forwarding method and device and electronic equipment
CN113645135A
SRv6 SID dynamic compression arrangement method, system, switching device, medium and equipment
CN117596206B
Minimizing differences in segment identifiers for segment routing
CN115398869A