A method for fast convergence of routing under space network next hop separation
By employing a next-hop separation routing convergence method in satellite networks, utilizing next-hop group arrays and doubly linked lists, the problems of large routing table memory consumption and slow convergence are solved, achieving fast route refresh and improved network stability.
Patent Information
- Application Number
- CN202511064000.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-31
- Publication Date
- 2025-11-04
- Estimated Expiration
- 2045-07-31
AI Technical Summary
In existing Linux OS TCP/IP protocol stacks and satellite network systems, the construction of routing tables results in large memory consumption, high routing maintenance complexity and long convergence time when paths change dynamically, making it difficult to support efficient dynamic route updates.
The routing convergence method adopts next-hop separation. By establishing a next-hop group array and a doubly linked list, the routing prefix and next hop are separated. The next-hop group index is used for fast route refresh, avoiding updating each routing table entry one by one.
It significantly reduces the redundancy of routing table storage, shortens the route re-convergence time, and improves the network's dynamic adaptability and stability.
Smart Images

Figure CN120567765B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application belongs to the field of communication technology, and particularly relates to a routing convergence method based on next-hop separation. BACKGROUND
[0002] In the existing Linux OS TCP / IP protocol stack and satellite network system, the construction of a routing table usually adopts a structure of 'prefix matching + next hop' for guiding IP packet forwarding, and the next hop IP address and the out interface of a network prefix are recorded in each routing table. These redundant routing entries result in large memory occupation of the routing table. In addition, the current forwarding table entry directly binds the prefix and the next hop information, and especially in a space network environment, the path changes frequently, when the link state changes or the path fails, multiple routing entries may fail simultaneously, and the traditional routing organization mode lacking unified indexing and abstract mechanism is difficult to support efficient routing dynamic update, the control plane needs to recalculate and update multiple prefix items, thereby increasing the complexity and convergence time of routing maintenance, and the routing refreshing efficiency is very low.
[0003] The existing part of commercial routers and switches support the routing next hop separation mechanism, but the implementation is complex, the memory resource consumption of the space network is large, and the topology characteristics of the space network are not fully utilized to simplify the implementation of the routing next hop separation. SUMMARY
[0004] The present application discloses a routing fast convergence method of next hop separation in a space network, which aims at the problem of large routing memory occupation and slow convergence caused by the structure of the routing table item of storing the next hop IP address and the out interface of each routing, and realizes fast routing refreshing when the link IP address changes or fails.
[0005] The routing convergence method based on next hop separation provided by the present application specifically comprises the following steps:
[0006] S1, next hop separation of routing prefix: first, routing calculation is performed on the network topology, a next hop group array is established according to all the next hop IP addresses and the out interfaces of each node, and a array index is allocated to all the next hop groups; a plurality of routing table items pointing to the same next hop out interface share the same index, and are bound through a bidirectional linked list, and the routing table items pointing to the same next hop out interface;
[0007] S2, routing fast refreshing when the next hop IP address changes: when the next hop IP address changes, the next hop IP address in the corresponding next hop group is modified, and the next hop IP addresses of all the routing table items pointing to the next hop group are synchronously updated, without traversing each routing table item for modification, so that the routing fast refreshing is realized;
[0008] S3, route fast refresh when next hop out interface changes: when the next hop out interface combination changes, update the index value of the corresponding next hop group in a route table item, and modify the index value of all route table items pointing to the same next hop group through a bidirectional linked list, without traversing all route table items to modify the next hop and out interface one by one, thereby realizing route fast refresh;
[0009] S4, route lookup and packet forwarding: when a node receives a data packet, the destination address is looked up according to the prefix tree to perform longest prefix matching, and a route is obtained, the next hop group index in the prefix table item is accessed to obtain the next hop IP address and the out interface, and the data packet is forwarded from the out interface to the next hop.
[0010] Further, the next hop separation of the route prefix in step S1 specifically includes the following steps:
[0011] S1.1 route calculation: performing route calculation on network topology to generate a path set from the current node to all reachable destinations, the path set including the shortest path to the destination and the path meeting the preset equivalence condition; for each path, the destination address prefix and the next hop information are extracted, and all route prefix items are organized through the structure of the prefix tree to realize longest prefix matching of the destination IP address;
[0012] S1.2 establish next hop group: in the satellite network, a node has interfaces, and the number of next hops of the equivalent paths of the shortest path route of a node to a destination is , then the maximum value of the next hop out interface combination number of all routes on a node is , wherein , , represents the number of ways of selecting next hops from interfaces; for each node, an array of next hop groups is established, corresponding to next hop out interface combinations, and an array index is allocated to all next hop out interface combinations, and the index value is ;
[0013] S1.3 prefix table item next hop separation: for each route, the next hop and the out interface are separated from finds a matched next hop group array NextHopGroup from the set of NextHopGroup, obtains the index of the next hop group from the array NextHopGroup, and writes the index of the next hop group into the prefix table item, and finally each route corresponding prefix table item records its prefix address prefix, prefix length length and corresponding next hop group index nhg_index;
[0014] S1.4 employs a double-linked list to record the pointer of all route prefix table items referring to the next hop group: each next hop group array NextHopGroup contains a pointer prefix_list pointing to a double-linked list, each node of the double-linked list records an address pointer prefix_entry of a prefix table item, when a prefix table item establishes a binding relationship with a certain next hop group, the address pointer of the prefix table item will be added to the node of the linked list, the function of the double-linked list associated with the prefix table item is that when the next hop changes, all route prefix table items can be updated based on the double-linked list, instead of searching all prefix table items referring to the next hop in the route tree, thereby greatly improving the route convergence speed.
[0015] Further, the step S1.2 establishes for each node an array of one next hop group , each next hop group array NextHopGroup specifically includes:
[0016] ECMP_number: the number of equal load balancing routes, i.e. the number of next hops, taking any one value from 1 and 2;
[0017] outif1: the number of the out interface;
[0018] outif2: the number of the second out interface;
[0019] next_hop_IP1: the address of the next hop;
[0020] next_hop_IP2: the address of the second next hop;
[0021] prefix_list: a pointer, pointing to a double-linked list of prefix table item pointers.
[0022] Further, each NextHopGroup in step S1.4 contains a pointer prefix_list pointing to a double-linked list, which adopts a standard double-linked list data structure, and the specific structure is that the list body maintains a head pointer head, a tail pointer tail and a current list length length, and each node in the list includes three fields, a prefix_entry pointing to a prefix routing table entry, a prev being a predecessor pointer and a next being a successor pointer.
[0023] Further, when the next hop IP address changes, the route is quickly refreshed in step S2, and only the next hop IP address in the corresponding NextHopGroup needs to be modified, including 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, and greatly improving the update speed of the routing table next hop IP address.
[0024] Further, when the next hop out interface changes, the route is quickly refreshed in step S3, and the specific process is as follows:
[0025] When any of the events of node failure, node disconnection, link failure or link interruption is detected, the route recalculation is triggered, causing the next hop of some routes to change, and at this time the next hop out interface combination index value corresponding to these routes with changed next hop becomes new_index. An arbitrary affected route is selected, the old nhg_index value in the prefix table entry thereof is traversed, the double-linked list of the prefix table entry pointer corresponding to the old nhg_index is traversed, the nhg_index of each prefix table entry node in the list is changed to new_index, and finally the list is hung under the new next hop group with new_index, that is, the update of the next hop of all related routing table entries can be realized.
[0026] Advantages:
[0027] 1. By binding multiple routing entries to the same "next hop group index", the next hop information of each routing table entry is avoided, the storage redundancy in the routing table is significantly reduced, and the memory occupation of the routing table is reduced.
[0028] 2. When the network topology or link state changes, the traditional method needs to traverse the routing table one by one, and update the next hop information of all affected prefixes one by one. In the present application, when the next hop information changes, only the index corresponding to a routing needs to be changed, and all related routing entries can be synchronized, which significantly shortens the time required for route recalculation, and improves the dynamic adaptability and stability of the network. BRIEF DESCRIPTION OF DRAWINGS
[0029] Figure 1 for a multi-layer LEO satellite network;
[0030] Figure 2 for a routing computation process;
[0031] Figure 3 for a next hop group array structure;
[0032] Figure 4 for a binding relationship between a next hop group and a double-linked list;
[0033] Figure 5 for a structure of a double-linked list of prefix table item pointers;
[0034] Figure 6 for a next hop separation structure established;
[0035] Figure 7 for a next hop separation structure established for a current satellite node;
[0036] Figure 8 for a double-linked list structure of prefix table item pointers for a current satellite node;
[0037] Figure 9 for a next hop separation structure established for a current satellite node after a next hop change;
[0038] Figure 10 for a double-linked list structure of prefix table item pointers for a current satellite node after a next hop change. DETAILED DESCRIPTION
[0039] In order to make the purposes, technical solutions and advantages of the present application clearer and more comprehensible, the embodiments of the present application are described in detail below with reference to the drawings.
[0040] One practical application scenario of the present application is a multi-layer LEO satellite network, as shown in FIG. 1. Figure 1
[0041] 1. Next hop separation of a routing prefix
[0042] The next hop separation of a routing prefix is performed as follows. First, a routing computation is performed on a network topology, a next hop group array is established according to all next hop IP addresses and outgoing interfaces of each node, and an array index is allocated to all next hop groups. A plurality of routing table items pointing to the same next hop outgoing interface share the same index and are bound by a double-linked list. The routing table items pointing to the same next hop outgoing interface.
[0043] Step 1: Routing computation.
[0044] The shortest path algorithm is used to perform routing calculation on the network topology to generate a path set from the current node to all reachable destinations, which includes the shortest path to the destination and the path meeting preset equivalence conditions; for each path, the destination address prefix and next hop information are extracted, and all routing prefix items are organized through the structure of prefix tree to realize the longest prefix matching of the destination IP address, and the routing calculation process is as shown in the attached Figure 2 .
[0045] The routing information of the current node is shown in Table 1.
[0046] Table 1 Routing information
[0047]
[0048] Step 2: Establish the next hop group.
[0049] In the satellite network, a node has interfaces, and the number of next hops of the equivalent path of the shortest path route of a node to a destination is , and the maximum value of the next hop out interface combination of all routes of a node is , wherein is usually not more than 6, is usually not more than 2, represents the number of ways of selecting next hops from interfaces; an array of next hop groups is established for each node , corresponding to next hop out interface combinations, and an array index is assigned to all next hop out interface combinations, and the index value is . The next hop group array NextHopGroup structure is shown in Figure 3 , and the specific meanings are as follows:
[0050] ECMP_number: the number of equivalent load balancing routes, i.e. the number of next hops, which is any one of 1 and 2;
[0051] outif1: out interface number;
[0052] outif2: second out interface number;
[0053] next_hop_IP1: address of the next hop;
[0054] next_hop_IP2: address of the second next hop;
[0055] prefix_list: pointer, pointing to the bidirectional linked list of prefix table item pointers.
[0056] For appendix Figure 1 The satellite network shown, taking a satellite node in the network as an example, is considered to have 6 interfaces, including one outgoing 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 in 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 combinations of next-hop outgoing interfaces for all routes on the node is 12, corresponding to the set {1,2,3,4,5,6,(1,2),(2,3),(3,4),(4,1),(1,3),(2,4)}. An array of 12 next-hop groups is created for the current node. It corresponds to 12 combinations of next-hop interfaces, and an array index is assigned to each combination of next-hop interfaces, with an index value of 0 to 11.
[0057] Step 3: Perform next-hop separation on the prefix entries.
[0058] For each route, based on its next hop and outgoing interface... Find the matching next hop group array in the set. The next-hop group index is retrieved from the array and written into the prefix table entry. Finally, each route's prefix table entry records its prefix address (prefix), prefix length (length), and corresponding next-hop group index (nhg_index). The prefix table entries for the current satellite node after next-hop separation are shown in Table 2.
[0059] Table 2 Next-hop Separation Prefix Entries
[0060]
[0061] Step 4: Use a doubly linked list to record pointers to all routing prefix entries that reference the next-hop group.
[0062] Each next-hop group array `NextHopGroup` contains a pointer to a doubly linked list `prefix_list`. Each node in this list records the address pointer `prefix_entry` of a prefix entry. When a prefix entry is bound to a next-hop group, its address pointer is added to the linked list node, as shown in the appendix. Figure 4 As shown. The purpose of this prefix entry association list is that when the next hop changes, all route prefix entries can be updated simply by using this list, instead of searching all prefix entries referencing the next hop in the routing tree, thus significantly improving route convergence speed.
[0063] This linked list uses a standard doubly linked list data structure, as shown in the attached diagram. Figure 5The chain table body maintains a head pointer head, a tail pointer tail and a current chain table length length. Each node in the chain table includes three fields, a prefix_entry which is a pointer to a prefix routing table entry, a prev which is a predecessor pointer, and a next which is a successor pointer.
[0064] The finally established next hop separation structure is shown in Fig. 6. Figure 6 The next hop separation structure established by the current satellite node is shown in Fig. 7. Figure 7 The bidirectional chain table structure of the prefix table entry pointer of the current satellite node is shown in Fig. 8. Figure 8
[0065] 2. Fast refreshing of routes when the next hop IP address changes
[0066] Only the next hop IP address in the corresponding NextHopGroup needs to be modified, and the next hop IP address includes next_hop_IP1 and next_hop_IP2. For example, if the next hop IP address corresponding to the out interface 3 is changed from 2001:db8:3::1 to 2001:db8:3::2, only the next_hop_IP in the NextHopGroup related to the out interface 3 needs to be modified, that is, 2001:db8:3::1 in the NextHopGroup with index values of 3, 7, 8 and 10 is modified to 2001:db8:3::2, and then all routes forwarded through the out interface 3 will automatically use the new IP address.
[0067] 3. Fast refreshing of routes when the next hop out interface changes
[0068] When any of the events of 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 out interface combination index value of these routes with changed next hop becomes new_index, and any affected route is selected. According to the old nhg_index value in the prefix table entry, the old nhg_index corresponding prefix table entry pointer bidirectional chain table is traversed, the nhg_index of each prefix table entry node in the chain table is changed to new_index, and the chain table is mounted under the new next hop group with new_index, that is, the update of the next hop of all related routing table entries can be realized.
[0069] For example, if the out interface 2 of the current satellite node is disconnected, after the route recalculation, all the packets forwarded from the out interface 2 are forwarded from the out interface 1, the indexes 1 and 6 become 0, the index 7 becomes 10, and the index 11 becomes 9, and the routes 2001:db8:2:: / 48, 2001:db8:3:: / 48 and 2001:db8:6:: / 48 are affected. Selecting the route 2001:db8:2:: / 48, the old nhg_index=1, traversing the double-linked list of the prefix table item pointers corresponding to the index 1, there are two nodes of the prefix table items of 2001:db8:2:: / 48 and 2001:db8:3:: / 48 in the list, modifying the nhg_index of the two prefix table items to 0, and mounting the list to the next hop group with the index value of 0; similarly, for the route 2001:db8:6:: / 48, the old nhg_index=7, traversing the double-linked list of the prefix table item pointers corresponding to the index 7, there is one node of the prefix table item of 2001:db8:6:: / 48 in the list, modifying the nhg_index of the prefix table item to 10, and mounting the list to the next hop group with the index value of 10. At this time, the update of the next hop of all the related route table items is completed, the updated prefix table items are shown in Table 3, the next hop separation structure is shown in FIG. 6, and the double-linked list structure of the prefix table item pointers is shown in FIG. 7. Figure 9 Figure 10
[0070] Table 3 Updated next hop separation prefix table item
[0071]
[0072] 4. Route lookup and packet forwarding
[0073] When the node receives a data packet, the prefix tree is looked up according to the destination address to perform the longest prefix matching, the route is obtained, the next hop group array NextHopGroup corresponding to the next hop group index in the prefix table item is accessed, the next hop IP address and the out interface are obtained, and the data packet is forwarded from the out interface to the next hop.
[0074] When the current node receives a data packet with the destination IP address of 2001:db8:1::7, the prefix tree is looked up from the root node in turn to perform the longest prefix matching, and the matched route is 2001:db8:1:: / 48. The prefix table item is looked up to obtain the next hop group index nhg_index=0. The next hop group array with the index value of 0 is accessed to obtain the next hop IP address of 2001:db8:1::1 and the out interface of 1, and then the current data packet is forwarded from the out interface 1 to 2001:db8:1::1.
Claims
1. A method for fast convergence of routing in a space network with next hop separation, characterized in that, The method comprises the following steps: S1, performing next hop separation of a routing prefix: first performing routing calculation on a network topology, establishing a next hop group array according to all next hop IP addresses and outgoing interfaces of each node, and allocating an array index for all next hop groups; a plurality of routing table entries pointing to the same next hop outgoing interface share the same index and are bound through a bidirectional linked list, the routing table entries pointing to the same next hop outgoing interface; S2, routing rapid refreshing when a next hop IP address changes: when the next hop IP address changes, the next hop IP addresses of all routing table entries pointing to the corresponding next hop group are updated synchronously by modifying the next hop IP address in the corresponding next hop group, without traversing each routing table entry to modify, thereby realizing routing rapid refreshing; S3, routing rapid refreshing when a next hop outgoing interface combination changes: when the next hop outgoing 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 the bidirectional linked list, without traversing all routing table entries to modify the next hop and the outgoing interface one by one, thereby realizing routing rapid refreshing; S4, routing lookup and packet forwarding: when a node receives a data packet, the longest prefix matching is performed on a prefix tree according to a destination address to obtain a route, the corresponding next hop group is accessed according to the next hop group index in the prefix table entry to obtain a next hop IP address and an outgoing interface, and the data packet is forwarded from the outgoing interface to the next hop; The next hop separation of the routing prefix in step S1 specifically comprises: S1.1, routing calculation: performing routing calculation on a network topology to generate a path set from a current node to all reachable destinations, the path set comprising a shortest path to the destination and a path meeting preset equivalence conditions; for each path, the destination address prefix and next hop information thereof are extracted, and all routing prefix entries are organized through the structure of a prefix tree to realize the longest prefix matching of a destination IP address; S1.2 Establish next hop group: in satellite network, a node has interfaces, the number of next hops of the equal path of the shortest path route of a node to a destination is , then the maximum value of the next hop out interface combination number of all routes on a node is , wherein , , represents the number of ways of selecting next hops from interfaces; an array of next hop groups is established for each node , corresponding to next hop out interface combinations, and an array index is assigned to all next hop out interface combinations, and the index value is ; S1.3 Next-hop separation based on prefix entries: For each route, based on its next hop and outgoing interface... The matching next-hop group array NextHopGroup is found in the set. The index of the next-hop group is obtained from the array NextHopGroup and written into the prefix table entry. Finally, the prefix table entry corresponding to each route records its prefix address prefix, prefix length and the corresponding next-hop group index nhg_index. S1.4, using a bidirectional linked list to record the pointers of all routing prefix table entries referring to the next hop group: each next hop group array NextHopGroup comprises a pointer prefix_list pointing to a bidirectional linked list, each node of the bidirectional linked list recording an address pointer prefix_entry of a prefix table entry; when a prefix table entry is bound to a next hop group, the address pointer of the prefix table entry is added to the linked list node; the function of the bidirectional linked list associated with the prefix table entry is that when the next hop changes, all routing prefix table entries can be updated based on the bidirectional linked list, instead of searching all prefix table entries referring to the next hop in the routing tree.
2. The method of claim 1, wherein, The array of next hop groups for each node is established as described in step S1.2 Each next hop group array NextHopGroup specifically comprises: ECMP_number: the number of equal load balancing routing entries, i.e. the number of next hops, taking any value in 1 and 2; outif1: outgoing interface number; outif2: second outgoing interface number; next_hop_IP1: address of the next hop; next_hop_IP2: address of the second next hop; prefix_list: pointer, pointing to the bidirectional linked list of prefix table entry pointers.
3. The method of claim 1, wherein, Each NextHopGroup in step S1.4 contains a pointer prefix_list pointing to a double-linked list, which adopts a standard double-linked list data structure, and the structure is as follows: the list body maintains a head pointer head, a tail pointer tail and a current list length length, and each node in the list includes three fields, prefix_entry is a pointer to a prefix routing table entry, prev is a predecessor pointer, and next is a successor pointer.
4. The method of claim 1, wherein, The route fast refresh when the next hop IP address changes, as described in step S2, specifically includes: The route fast refresh when the next hop IP address changes only needs to modify the next hop IP address in the corresponding NextHopGroup, and the next hop IP address includes next_hop_IP1 and next_hop_IP2.
5. The method of claim 1, wherein, The route fast refresh when the next hop out interface changes, as described in step S3, specifically includes: When any of the events of 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 out interface combination index value corresponding to these routes whose next hops change becomes new_index, and according to the old nhg_index value in the prefix table entry of an arbitrary affected route, the double-linked list of the prefix table entry pointer corresponding to the old nhg_index is traversed, the nhg_index of each prefix table entry node in the list is changed to new_index, and finally the list is mounted under the new NextHopGroup with new_index, that is, the update of the next hop of all related routing table entries can be realized.
Citation Information
Patent Citations
Fast route convergence method and related device
CN101035084A
Ethernet ring network three-layer route forwarding fast switching method
CN101141468A