Rapid routing convergence method for next hop separation of spatial network

By adopting the next-hop separation routing convergence method in the satellite network, using the next-hop group array and a two-way linked list, the problem of large memory usage and slow convergence of the routing table is solved, and the fast refresh of routing and network stability is achieved.

CN120567765AActive Publication Date: 2025-08-29NANJING UNIV

Patent Information

Application Number
CN202511064000.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-31
Publication Date
2025-08-29
Estimated Expiration
2045-07-31

AI Technical Summary

Technical Problem

In the existing Linux OS TCP/IP protocol stack and satellite network systems, the construction of routing tables leads to large memory usage, and the routing maintenance is complex when the path changes dynamically, and the convergence time is long, making it difficult to support efficient routing dynamic updates.

Method used

The next-hop separation routing convergence method is adopted, and by establishing a next-hop group array and a two-way linked list, multiple routing table entries are bound to share indexes, and the route is quickly refreshed.

Benefits of technology

Significantly reduce the repetition of routing table storage, shorten the routing reconvergence time, and improve the dynamic adaptability and stability of the network.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120567765A_ABST
    Figure CN120567765A_ABST
Patent Text Reader

Abstract

The invention provides a routing fast convergence method for next hop separation of a spatial network, and belongs to the technical field of communication. The method comprises the following steps: firstly, establishing a next hop group for a spatial network, distributing an array index for all possible next hop outbound interface combinations, and storing a next hop IP address and outbound interfaces in an array; and then the routing table entries are bound to the corresponding next hop groups, and a plurality of routing table entries pointing to the same next hop outbound interface share the same index. When the states of links, nodes and the like change, the routing table only needs to update the corresponding index or the next hop information corresponding to the index, and does not need to traverse each routing table item to modify the next hop and an outbound interface, so that rapid routing convergence is realized. According to the method, the routing storage resource consumption can be reduced, and the routing convergence rate is greatly improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of communication technology, and in particular relates to a routing convergence method based on next hop separation. Background Art

[0002] In existing Linux OS TCP / IP protocol stacks and satellite network systems, routing tables are typically constructed using a "prefix match + next hop" structure to guide IP packet forwarding. Each routing table records the next-hop IP address and outbound interface of the network prefix. These redundant routing entries result in large routing table memory usage. Furthermore, current forwarding table entries directly bind prefixes to next-hop information. This is particularly true in space network environments, where paths frequently change dynamically. When link status changes or paths fail, multiple routing entries may fail simultaneously. Traditional routing organization methods, lacking a unified index and abstraction mechanism, struggle to support efficient dynamic routing updates. The control plane must recalculate and update multiple prefix entries, increasing the complexity and convergence time of routing maintenance and resulting in very low routing refresh efficiency.

[0003] Some existing commercial routers and switches support the routing next hop separation mechanism, but the implementation is complex, consumes a lot of memory resources for spatial networks, and does not fully utilize the topological characteristics of spatial networks to simplify the implementation of routing next hop separation. Summary of the Invention

[0004] Purpose of the invention: In view of the problem that the current routing table entry structure in which each route stores the next-hop IP address and the outgoing interface causes the routing to occupy a large amount of memory and converge slowly, the present invention discloses a method for rapid convergence of routing with separated next-hops in a spatial network, which realizes rapid routing refresh when the link IP address changes or fails.

[0005] The present invention proposes a routing convergence method based on next hop separation, which specifically includes the following steps:

[0006] S1. Perform next-hop separation of routing prefixes: First, perform routing calculation on the network topology, create a next-hop group array based on all next-hop IP addresses and outbound interfaces of each node, and assign an array index to all next-hop groups; multiple routing table entries pointing to the same next-hop outbound interface share the same index and are bound through a doubly linked list to the routing table entries pointing to the same next-hop outbound interface;

[0007] S2. Fast route refresh when the next-hop IP address changes: When the next-hop IP address changes, by modifying the next-hop IP address in the corresponding next-hop group, the next-hop IP addresses of all routing table entries pointing to the next-hop group will be updated synchronously, without having to traverse each routing table entry for modification, thus achieving fast route refresh;

[0008] S3. Fast route refresh when the next-hop outbound interface changes: When the next-hop outbound interface combination changes, the index value of the corresponding next-hop group in a routing table entry is updated, and the index values ​​of all routing table entries pointing to the same next-hop group are modified through a bidirectional linked list. This eliminates the need to traverse all routing table entries and modify the next-hop and outbound interface one by one, thereby achieving fast route refresh.

[0009] S4. Route lookup and message forwarding: When a node receives a data packet, it searches the prefix tree for the longest prefix match based on the destination address, obtains the route, accesses the corresponding next hop group based on the next hop group index in the prefix table entry, obtains the next hop IP address and outbound interface, and forwards the data packet from the outbound interface to the next hop.

[0010] Furthermore, the next hop separation of the routing prefix described in step S1 specifically includes the following steps:

[0011] S1.1 Route Calculation: Performs route calculation on the network topology, generating a set of paths from the current node to all reachable destinations. This set includes the shortest path to the destination and paths that meet preset equal-cost conditions. For each path, the destination address prefix and next-hop information are extracted, and all route prefix entries are organized into a prefix tree structure to achieve the longest prefix match for the destination IP address.

[0012] S1.2 Establishing the next hop group: In a satellite network, a node has interfaces, the number of next hops of the shortest path route from a node to a destination is , then the maximum number of next-hop outbound interface combinations of all routes on a node is ,in , , Indicates from Select from the interface The number of next hops; establish array of next-hop groups ,and Plant the next-hop outbound interface combination and assign an array index to all next-hop outbound interface combinations. The index value is ;

[0013] S1.3 Prefix table entry for next hop separation: For each route, based on its next hop and outgoing interface, Find the matching next hop group array NextHopGroup in the collection, get the index of the next hop group from the array NextHopGroup, and write the index of the next hop group into the prefix table entry. Finally, the prefix table entry corresponding to each route records its prefix address prefix, prefix length length and the corresponding next hop group index nhg_index;

[0014] S1.4 uses a doubly linked list to record pointers to all routing prefix table entries that reference the next hop group: each next hop group array NextHopGroup contains a pointer prefix_list pointing to a doubly linked list. Each node of the doubly linked list records the address pointer prefix_entry of a prefix table entry. When a prefix table entry establishes a binding relationship with a next hop group, the address pointer of the prefix entry will be added to the linked list node. The purpose of associating the prefix table entry with the doubly linked list is that when the next hop changes, all routing prefix table entries can be updated based on the doubly linked list, rather than searching for all prefix table entries that reference the next hop in the routing tree, thereby greatly improving the routing convergence speed.

[0015] Furthermore, the step S1.2 establishes array of next-hop groups Each next hop group array NextHopGroup specifically includes:

[0016] ECMP_number: The number of equal-cost load balancing routes, that is, the number of next hops. The value can be either 1 or 2.

[0017] outif1: outgoing interface number;

[0018] outif2: the second outgoing interface number;

[0019] next_hop_IP1: next hop address;

[0020] next_hop_IP2: the second next hop address;

[0021] prefix_list: pointer, pointing to a doubly linked list of prefix table entry pointers.

[0022] Furthermore, each next hop group array NextHopGroup described in step S1.4 contains a pointer prefix_list pointing to a bidirectional linked list. The bidirectional linked list adopts a standard bidirectional linked list data structure. The specific structure is: the linked list body maintains the head pointer head, the tail pointer tail and the current linked list length length. Each node in the linked list includes three fields, prefix_entry is a pointer to the prefix routing table entry, prev is the predecessor pointer, and next is the successor pointer.

[0023] Furthermore, when the next-hop IP address described in step S2 changes, the route is refreshed quickly. It is only necessary to modify the next-hop IP address in the corresponding next-hop group array NextHopGroup. The next-hop IP address includes next_hop_IP1 and next_hop_IP2, thereby avoiding the need for the non-next-hop separation routing table to traverse all routing table entries to complete the update of the next-hop IP address, greatly improving the update speed of the next-hop IP address in the routing table.

[0024] Furthermore, the route is quickly refreshed when the next-hop outgoing interface changes in step S3. The specific process is as follows:

[0025] When any of the following events, including node failure, node disconnection, link failure, or link interruption, is detected, route recalculation is triggered, causing the next hop of some routes to change. At this time, the next hop outbound interface combination index value corresponding to these routes with changed next hops becomes the new new_index. Select any affected route, and based on the old nhg_index value in its prefix table entry, traverse the bidirectional linked list of prefix table entry pointers corresponding to the old nhg_index, change the nhg_index of each prefix table entry node in the linked list to the new_index, and finally mount the linked list to the new new_index next hop group, so that the next hop of all relevant routing table entries can be updated.

[0026] Beneficial effects:

[0027] 1. By binding multiple routing entries to the same "next hop group index", it avoids storing next hop information in each routing table entry, significantly reducing storage duplication in the routing table and reducing the memory usage of the routing table;

[0028] 2. When the network topology or link status changes, the traditional approach requires traversing the routing table one by one and updating the next-hop information for all affected prefixes. In contrast, with this invention, when the next-hop information changes, only the index corresponding to one route needs to be changed to synchronize all related routing entries. This significantly shortens the time required for routing reconvergence and improves the dynamic adaptability and stability of the network. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] Figure 1 It is a multi-layer LEO satellite network;

[0030] Figure 2 It is the routing calculation process;

[0031] Figure 3 It is the next hop group array structure;

[0032] Figure 4 It is the binding relationship between the next hop group and the bidirectional linked list;

[0033] Figure 5 The structure of a doubly linked list of prefix table entry pointers;

[0034] Figure 6 To establish a next-hop separation structure;

[0035] Figure 7 The next hop separation structure established for the current satellite node;

[0036] Figure 8 A doubly linked list structure of the current satellite node prefix entry pointer;

[0037] Figure 9 The next hop separation structure established for the current satellite node after the next hop changes;

[0038] Figure 10 It is a bidirectional linked list structure of the current satellite node prefix table entry pointer after the next hop changes. DETAILED DESCRIPTION

[0039] In order to make the objectives, technical solutions and advantages of the present invention more clearly understood, embodiments of the present invention are described in detail below with reference to the accompanying drawings.

[0040] A practical application scenario of the present invention is a multi-layer LEO satellite network, as shown in the attached Figure 1 shown.

[0041] 1. Separate the next hop of the routing prefix

[0042] To perform next-hop separation of routing prefixes, first perform routing calculation on the network topology, establish a next-hop group array based on all next-hop IP addresses and outbound interfaces of each node, and assign an array index to all next-hop groups; multiple routing table entries pointing to the same next-hop outbound interface share the same index and are bound through a doubly linked list to the routing table entries pointing to the same next-hop outbound interface.

[0043] Step 1: Route calculation.

[0044] Use the shortest path algorithm to perform routing calculation on the network topology and generate a set of paths from the current node to all reachable destinations. The path set includes the shortest path to the destination and the path that meets the preset equivalent conditions. For each path, the destination address prefix and next hop information are extracted, and all routing prefix items are organized through the prefix tree structure to achieve the longest prefix match for the destination IP address. The routing calculation process is shown in the attached figure. Figure 2 shown.

[0045] Set the routing information of the current node as shown in Table 1.

[0046] Table 1 Routing information

[0047] Step 2: Create a next-hop group.

[0048] In a satellite network, a node has interfaces, the number of next hops of the shortest path route from a node to a destination is , then the maximum number of next-hop outbound interface combinations of all routes on a node is ,in Usually no more than 6, Usually no more than 2, Indicates from Select from the interface The number of next hops; establish array of next-hop groups ,and Plant the next-hop outbound interface combination and assign an array index to all next-hop outbound interface combinations. The index value is The next hop group array NextHopGroup structure is as follows Figure 3 The specific meaning is as follows:

[0049] ECMP_number: The number of equal-cost load balancing routes, that is, the number of next hops. The value can be either 1 or 2.

[0050] outif1: outgoing interface number;

[0051] outif2: the second outgoing interface number;

[0052] next_hop_IP1: next hop address;

[0053] next_hop_IP2: the second next hop address;

[0054] prefix_list: pointer, pointing to a doubly linked list of prefix table entry pointers.

[0055] For the attached Figure 1 In the satellite network shown, a satellite node in the network is taken as an example. It is assumed that the node has 6 interfaces, including an outbound interface in four directions of the orbital plane and two inter-layer interfaces, numbered 1, 2, 3, 4, 5, and 6 respectively. The number of next hops of the equivalent path of the shortest path route from this node to a destination is usually no more than 2. Therefore, the maximum number of next hop outbound interface combinations of all routes on the node is 12, and the corresponding set is {1, 2, 3, 4, 5, 6, (1, 2), (2, 3), (3, 4), (4, 1), (1, 3), (2, 4)}. Create an array of 12 next hop groups for the current node. , corresponding to the 12 next-hop outbound interface combinations, and assigning an array index to all next-hop outbound interface combinations, with index values ​​ranging from 0 to 11.

[0056] Step 3: The prefix table entry performs next-hop separation.

[0057] For each route, based on its next hop and outgoing interface Find the matching next hop group array in the set , obtain the next-hop group index from the array and write it into the prefix table entry. Ultimately, the prefix table entry corresponding to each route records its prefix address prefix, prefix length, and the corresponding next-hop group index nhg_index. The prefix table entry after next-hop separation on the current satellite node is shown in Table 2.

[0058] Table 2 Next-hop separation prefix table entries

[0059] Step 4: Use a bidirectional linked list to record pointers to all routing prefix table entries that reference the next hop group.

[0060] Each next hop group array NextHopGroup contains a pointer prefix_list pointing to a bidirectional linked list. Each node of the linked list records the address pointer prefix_entry of a prefix table item. When a prefix table item is bound to a next hop group, the address pointer of the prefix item will be added to the linked list node, as shown in the attached figure. Figure 4 The purpose of the prefix table association linked list is that when the next hop changes, all routing prefix table entries can be updated based on the linked list, rather than searching all prefix table entries that reference the next hop in the routing tree, thereby significantly improving routing convergence speed.

[0061] The linked list adopts the standard two-way linked list data structure, as shown in the attached Figure 5The linked list itself maintains the head pointer, tail pointer, and current linked list length. Each node in the linked list includes three fields: prefix_entry is a pointer to the prefix routing table entry, prev is the predecessor pointer, and next is the successor pointer.

[0062] The next hop separation structure finally established is as shown in the attached Figure 6 As shown, the next hop separation structure established by the current satellite node is as shown in the attached Figure 7 As shown in the figure, the bidirectional linked list structure of the current satellite node prefix table entry pointer is as shown in the attached figure. Figure 8 shown.

[0063] 2. Fast route refresh when the next hop IP address changes

[0064] You only need to modify the next-hop IP address in the corresponding next-hop group array NextHopGroup, which includes next_hop_IP1 and next_hop_IP2. For example, if the next-hop IP address corresponding to outbound interface 3 changes from 2001:db8:3::1 to 2001:db8:3::2, you only need to modify the next_hop_IP in the NextHopGroup associated with outbound interface 3. That is, change 2001:db8:3::1 in the NextHopGroup with index values ​​3, 7, 8, and 10 to 2001:db8:3::2. Then, all routes forwarded through outbound interface 3 will automatically use the new IP address.

[0065] 3. Fast route refresh when the next-hop outbound interface changes

[0066] When any of the following events, including node failure, node disconnection, link failure, or link interruption, is detected, route recalculation is triggered, causing the next hop of some routes to change. At this time, the next hop outbound interface combination index value corresponding to these routes with changed next hops becomes the new new_index. Select any affected route, and based on the old nhg_index value in its prefix table entry, traverse the bidirectional linked list of prefix table entry pointers corresponding to the old nhg_index, change the nhg_index of each prefix table entry node in the linked list to the new_index, and mount the linked list to the new new_index next hop group. This can update the next hop of all relevant routing table entries.

[0067] For example, if outbound interface 2 of the current satellite node is disconnected, after route recalculation, all packets forwarded from outbound interface 2 are forwarded from outbound interface 1. Indexes 1 and 6 will become 0, index 7 will become 10, and index 11 will become 9. Routes 2001:db8:2:: / 48, 2001:db8:3:: / 48, and 2001:db8:6:: / 48 will be affected. Select route 2001:db8:2:: / 48, whose old nhg_index is 1. Traverse the doubly linked list of prefix table item pointers corresponding to nhg_index=1. There are two nodes in the linked list: the 2001:db8:2:: / 48 prefix table item and the 2001:db8:3:: / 48 prefix table item. Change the nhg_index of these two prefix table items to 0, and mount this linked list to the next hop group with index value 0. Similarly, for route 2001:db8:6:: / 48, whose old nhg_index is 7, traverse the doubly linked list of prefix table item pointers corresponding to nhg_index=7. There is one node in the linked list: the 2001:db8:6:: / 48 prefix table item. Change the nhg_index of this prefix table item to 10, and mount this linked list to the next hop group with index value 10. At this point, the next hop updates of all relevant routing table entries are completed. The updated prefix table entries are shown in Table 3, and the next hop separation structure is shown in the attached figure. Figure 9 As shown in the figure, the doubly linked list structure of the prefix table entry pointer is as shown in the appendix. Figure 10 shown.

[0068] Table 3 Updated next-hop separation prefix table entries

[0069] 4. Route lookup and message forwarding

[0070] When a node receives a data packet, it searches the prefix tree for the longest prefix match based on the destination address, obtains the route, accesses the corresponding next hop group array NextHopGroup based on the next hop group index in the prefix table entry, obtains the next hop IP address and outbound interface, and forwards the data packet from the outbound interface to the next hop.

[0071] When the current node receives a packet destined for IP address 2001:db8:1::7, it searches the prefix tree starting from the root node for the longest prefix match, finding the route 2001:db8:1:: / 48. It then searches the prefix table entry and finds the next-hop group index nhg_index = 0. It then accesses the next-hop group array at index 0 and finds the next-hop IP address 2001:db8:1::1 and outbound interface 1. Therefore, the packet is forwarded outbound interface 1 to 2001:db8:1::1.

Claims

1. A method for fast routing convergence in a spatial network with next-hop separation, characterized in that: The method comprises the following steps: S1. Perform next-hop separation of routing prefixes: First, perform routing calculation on the network topology, create a next-hop group array based on all next-hop IP addresses and outbound interfaces of each node, and assign an array index to all next-hop groups; multiple routing table entries pointing to the same next-hop outbound interface share the same index and are bound through a doubly linked list to the routing table entries pointing to the same next-hop outbound interface; S2. Fast route refresh when the next-hop IP address changes: When the next-hop IP address changes, by modifying the next-hop IP address in the corresponding next-hop group, the next-hop IP addresses of all routing table entries pointing to the next-hop group will be updated synchronously, without having to traverse each routing table entry for modification, thus achieving fast route refresh; S3. Fast route refresh when the next-hop outbound interface changes: When the next-hop outbound interface combination changes, the index value of the corresponding next-hop group in a routing table entry is updated, and the index values ​​of all routing table entries pointing to the same next-hop group are modified through a bidirectional linked list. This eliminates the need to traverse all routing table entries and modify the next-hop and outbound interface one by one, thereby achieving fast route refresh. S4. Route lookup and message forwarding: When a node receives a data packet, it searches the prefix tree for the longest prefix match based on the destination address, obtains the route, accesses the corresponding next hop group based on the next hop group index in the prefix table entry, obtains the next hop IP address and outbound interface, and forwards the data packet from the outbound interface to the next hop.

2. The method for rapid routing convergence in a spatial network with next-hop separation according to claim 1, characterized in that: The next hop separation of the routing prefix described in step S1 specifically includes: S1.1 Route Calculation: Performs route calculation on the network topology, generating a set of paths from the current node to all reachable destinations. This set includes the shortest path to the destination and paths that meet preset equal-cost conditions. For each path, the destination address prefix and next-hop information are extracted, and all route prefix entries are organized into a prefix tree structure to achieve the longest prefix match for the destination IP address. S1.2 Establishing the next hop group: In a satellite network, a node has interfaces, the number of next hops of the shortest path route from a node to a destination is , then the maximum number of next-hop outbound interface combinations of all routes on a node is ,in , , Indicates from Select from the interface The number of next hops; establish array of next-hop groups ,and Plant the next-hop outbound interface combination and assign an array index to all next-hop outbound interface combinations. The index value is ; S1.3 Prefix table entry for next hop separation: For each route, based on its next hop and outgoing interface, Find the matching next hop group array NextHopGroup in the collection, get the index of the next hop group from the array NextHopGroup, and write the index of the next hop group into the prefix table entry. Finally, the prefix table entry corresponding to each route records its prefix address prefix, prefix length length and the corresponding next hop group index nhg_index; S1.4 uses a doubly linked list to record pointers to all routing prefix table entries that reference the next hop group: each next hop group array NextHopGroup contains a pointer prefix_list pointing to a doubly linked list. Each node of the doubly linked list records the address pointer prefix_entry of a prefix table entry. When a prefix table entry establishes a binding relationship with a next hop group, the address pointer of the prefix table entry will be added to the linked list node; the purpose of associating the prefix table entry with the doubly linked list is that when the next hop changes, all routing prefix table entries can be updated based on the doubly linked list, rather than searching for all prefix table entries that reference the next hop in the routing tree.

3. The method for rapid routing convergence in a spatial network with next-hop separation according to claim 2, characterized in that: Step S1.2 creates a array of next-hop groups Each next hop group array NextHopGroup specifically includes: ECMP_number: The number of equal-cost load balancing routes, that is, the number of next hops. The value can be either 1 or 2. outif1: outgoing interface number; outif2: the second outgoing interface number; next_hop_IP1: next hop address; next_hop_IP2: the second next hop address; prefix_list: pointer, pointing to a doubly linked list of prefix table entry pointers.

4. The method for rapid routing convergence in a spatial network with next-hop separation according to claim 2, characterized in that: Each next hop group array NextHopGroup described in step S1.4 contains a pointer prefix_list pointing to a bidirectional linked list. The bidirectional linked list adopts a standard bidirectional linked list data structure. The specific structure is: the linked list body maintains the head pointer head, the tail pointer tail and the current linked list length length. Each node in the linked list includes three fields, prefix_entry is a pointer to the prefix routing table entry, prev is the predecessor pointer, and next is the successor pointer.

5. The method for rapid routing convergence in a spatial network with next-hop separation according to claim 1, characterized in that: The fast route refresh when the next hop IP address changes in step S2 specifically includes: When the next hop IP address changes, the route is refreshed quickly. You only need to modify the next hop IP address in the corresponding next hop group array NextHopGroup. The next hop IP address includes next_hop_IP1 and next_hop_IP2.

6. The method for rapid routing convergence in a spatial network with next-hop separation according to claim 1, characterized in that: The route is quickly refreshed when the next-hop outgoing interface changes in step S3, specifically including: When any of the following events, including node failure, node disconnection, link failure, or link interruption, is detected, route recalculation is triggered, causing the next hop of some routes to change. At this time, the next hop outbound interface combination index value corresponding to these routes with changed next hops becomes the new new_index. Select any affected route, and based on the old nhg_index value in its prefix table entry, traverse the bidirectional linked list of prefix table entry pointers corresponding to the old nhg_index, change the nhg_index of each prefix table entry node in the linked list to the new_index, and finally mount the linked list to the new new_index next hop group, so that the next hop of all relevant routing table entries can be updated.

Citation Information

Patent Citations

  • Fast route convergence method and related device

    CN101035084A

  • Ethernet ring network three-layer route forwarding fast switching method

    CN101141468A

  • IP fast rerouting method for improving inter-domain routing OSPF algorithm

    CN101695053A

  • Route convergence method and device

    CN102377680A

  • Method, system and router for communication between IP devices

    US20090257440A1

Cited By

  • Peer-based route atomization processing method and device and electronic equipment

    CN121309469A