Differential routing for non-geostationary orbit (NGSO) satellite systems
Pre-calculated backbone route tables in NGSO satellite systems address the challenges of frequent handovers by optimizing routing based on user and traffic type, enhancing scalability and reliability.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- THE BOEING CO
- Filing Date
- 2022-02-14
- Publication Date
- 2026-06-25
Smart Images

Figure 0007880217000001 
Figure 0007880217000002 
Figure 0007880217000003
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of routing in satellite systems. In particular, this disclosure relates to routing data traffic in a Non-GEO (NGSO) satellite system.
Background Art
[0002] A Non-GEO (NGSO) system is a system that utilizes a group of artificial satellites in low Earth orbit (LEO) and / or medium Earth orbit (MEO) that orbit the Earth while moving relative to the Earth's surface. This is in contrast to a geostationary orbit (GEO) artificial satellite that orbits the Earth in a stationary state relative to the Earth's surface.
[0003] Since an NGSO satellite system moves relative to the Earth's surface, the number of handovers of ground antennas is higher than that of a GEO satellite system. Furthermore, unlike handovers in a GEO satellite system caused by the movement of a mobile terminal (e.g., beam handover), an NGSO satellite system is subject to processes for realizing multiple types of handovers, such as in-orbit handovers (due to the relative movement of satellites in the same orbital plane), inter-orbit handovers (due to the relative movement of satellites in different orbital planes), link handovers (due to the outage of a link caused by, for example, a node or link failure), and beam handovers (due to the movement of a satellite, the rotation of the Earth, or the movement of a mobile terminal).
[0004] The current routing method for the NGSO satellite system employs link-state routing, which uses Internet Protocol (IP) routers onboard the satellites. In this approach, when a handover event occurs, the management system constantly calculates and updates the routing information for the entire satellite network in real time. Because the NGSO satellite system has a non-stationary orbit relative to the Earth's surface and experiences frequent handovers due to relative motion, it is difficult to extend this type of method to accommodate the large number of satellites used in the NGSO system. Furthermore, with this method, failures can occur if the management system is temporarily unable to perform the real-time calculations that the NGSO satellite system uses to update routing information. [Overview of the Initiative]
[0005] This document describes NGSO satellite systems that use backbone route tables defined by satellites in the time-varying backbone topology of the NGSO satellite system. Because the reference portion of the backbone topology may differ for each satellite, the backbone route tables may vary from satellite to satellite. Furthermore, because the backbone topology changes over time, the time at which these satellite backbone route tables are active also varies. To implement various routing options for packets arriving at the satellites, backbone route tables can be defined for various routing groups. The routing options for each routing group can serve various network functionality and security purposes for the traffic assigned to that routing group. During operation, each satellite can select various routing groups depending on the user, group of users, and / or the type of traffic the satellite receives, and forward data packets destined for users connected to other satellites based on the active backbone routing table of the selected routing group. Such diverse routing groups offer the technical advantage of enabling various classifications of data transmission services within the NGSO satellite system. Furthermore, because the various backbone route tables for these routing groups are pre-calculated, they also offer the technical advantage of reducing the computational load on the NGSO satellite system. A further technical advantage is that if a satellite in the NGSO satellite system temporarily loses contact with ground or orbital assets, a different backbone route table can be selected at a different time on the same day to accommodate the time-varying topology of the NGSO satellite system.
[0006] One embodiment includes a method operable by a satellite in the NGSO satellite system. The method receives a plurality of routing groups, each defining a separate packet routing option for the satellite, each of which includes a plurality of backbone route tables, the backbone route tables including a snapshot of the time-varying backbone topology of the NGSO satellite system that implements one of the packet routing options. The method further receives a data packet to be routed by the NGSO satellite system, identifies a routing group to which the data packet is assigned from the plurality of routing groups, and identifies an active backbone route table from the plurality of backbone route tables of the routing group. The method further forwards the data packet to another satellite in the NGSO satellite system using at least one of an in-orbit link and an inter-orbit link, based on the active backbone route table, to implement the packet routing option for the data packet among the packet routing options.
[0007] Another embodiment includes a satellite in the NGSO satellite system. The satellite includes memory and at least one processor. The memory stores a plurality of routing groups, each defining a separate packet routing option for the satellite, and each of the plurality of routing groups includes a plurality of backbone route tables, each backbone route table including a snapshot of the time-varying backbone topology of the NGSO satellite system that implements one of the packet routing options. The at least one processor receives data packets to be routed in the NGSO satellite system and identifies the routing group to which the data packets are assigned from the plurality of routing groups. The at least one processor identifies the active backbone route table from the plurality of backbone route tables of the routing group and forwards the data packets to another satellite in the NGSO satellite system via at least one of the in-orbit and inter-orbit links, based on the active backbone route table, to implement the packet routing option for the data packets among the packet routing options.
[0008] Another embodiment includes an NGSO satellite system including a satellite. The satellite includes memory and at least one processor. The memory stores a plurality of routing groups, each defining a separate packet routing option for the satellite, each routing group including at least one backbone route table, the backbone route table implementing one of the packet routing options using a snapshot of the time-varying backbone topology of the NGSO satellite system that is routable by the satellite. The at least one processor receives a plurality of data packets for users directly connected to other satellites of the NGSO satellite system, identifies a routing group to which each of these data packets is assigned, and sends each of these data packets separately to the other satellites using at least one backbone route table in each different routing group.
[0009] The features, functions, and advantages described above can be achieved individually in various embodiments, or in combination with other embodiments, and further details will become apparent by referring to the following description and drawings. [Brief explanation of the drawing]
[0010] Several embodiments will be described, merely as examples, with reference to the accompanying drawings. In any of the drawings, the same reference numerals represent the same element or element of the same type.
[0011] [Figure 1] This figure shows the topology of the NGSO satellite system according to an exemplary embodiment. [Figure 2] This is a block diagram of the satellite of the NGSO satellite system shown in Figure 1, according to an exemplary embodiment. [Figure 3] This is a block diagram of the satellite controller of the NGSO satellite system shown in Figure 1, according to an exemplary embodiment. [Figure 4]This is a flowchart illustrating an exemplary embodiment of how the NGSO satellite system in Figure 1 can be operated by a satellite. [Figure 5-9] This figure shows additional details of the method in Figure 4 in an exemplary embodiment. [Figure 10] This figure shows an embodiment of satellite routing for the NGSO satellite system in Figure 1, in an exemplary embodiment. [Figure 11] This figure shows the user route table and backbone route table for the satellites of the NGSO satellite system in Figure 1 in an exemplary embodiment. [Modes for carrying out the invention]
[0012] The drawings and the following description illustrate specific exemplary embodiments. Those skilled in the art will be able to devise various modifications that embody the principles described herein and that fall within the claims following this description, although these are not explicitly described or illustrated herein. Furthermore, all examples described herein are intended to aid in understanding the principles of this disclosure and should not be construed as limiting. Accordingly, this disclosure is not limited to the specific embodiments or examples described below, but is limited only to the claims and their equivalents.
[0013] As mentioned above, existing routing methods for NGSO satellite systems heavily rely on real-time calculations to update satellite-borne Internet Protocol (IP) routers during handover events, which occur more frequently in NGSO satellite systems than in GEO satellite systems. Figure 1 shows an NGSO satellite system 100 in an exemplary embodiment. In this embodiment, system 100 includes a number of NGSO satellites 102-107 positioned in orbital planes 108-109. Orbital planes 108-109 consist, in various embodiments, of MEO orbital planes, LEO orbital planes, or a combination of MEO and LEO orbital planes. LEO satellites are generally in circular orbits around the Earth at altitudes of approximately 160 kilometers (km) to 2,000 km above the surface, with orbital periods of approximately 90 minutes. MEO satellites are generally in circular orbits around the Earth at altitudes of 2,000 km to below the GEO level (e.g., 35,786 km), with orbital periods ranging from approximately 2 hours to nearly 24 hours.
[0014] In System 100, only satellites 102-107 in the LEO and MEO orbital planes are shown, but in other embodiments, System 100 includes satellites 102-107 in the LEO and / or MEO orbital planes in addition to other satellites (not shown) in the GEO orbital plane. In System 100, satellites 102-104 are in orbital plane 108, and satellites 105-107 are in orbital plane 109.
[0015] In system 100, intraorbital links 110-113 allow satellites 102-107 in the same orbital plane 108-109 to communicate with each other. Since satellites 102-107 in the same orbital plane 108-109 usually do not change their relative positions to each other, intraorbital links 110-113 are always fixed. Interorbital links 114-117 within system 100 allow satellites 102-107 in different orbital planes 108-109 to communicate with each other. Since satellites 102-107 in different orbital planes 108-109 move relative to each other, interorbital links 114-117 change over time. For example, if orbital plane 109 is closer to the Earth's surface than orbital plane 108, satellites 105-107 in orbital plane 109 may move in the direction of arrow 129 relative to satellites 102-104 in orbital plane 108. (For example, satellites 105-107 in orbital plane 109 pass overhead in the direction of arrow 129 at a faster speed than satellites 102-104 in orbital plane 108, which are moving in the direction of arrow 128.) When this movement occurs, a handoff may occur for satellite 107 as it changes its communication link from satellite 103 to satellite 104. When a handoff occurs for satellite 107, an interorbital link 117 is formed between satellite 107 and satellite 104, and the interorbital link 116 between satellite 107 and satellite 104 is terminated (for example, due to a make-before-break communication scenario that occurs when changes to the backbone routing topology information used by satellites 102-107 propagate to the system).
[0016] In this embodiment, satellites 102-107 communicate with users 124-126 via user links 118-122. In this embodiment, users 124-125 are represented as mobile terminals (e.g., mobile satellite phones), and user 126 is represented as a ground station (e.g., a fixed-location facility). However, the number and types of users 124-126 may differ in other embodiments.
[0017] Because portable users 124-126 (e.g., users 124-125) move on the ground, and satellites 102-107 move relative to users 124-126 over time, user links 118-122 change over time. For example, if satellites 102-107 in orbital planes 108-109 move relative to the Earth's surface in the direction of arrows 128-129, user 125 may be handed off from satellite 103 in orbital plane 108 to satellite 106 in orbital plane 109. In this example, a new user link 119 is formed between user 125 and satellite 106, and the existing user link 120 between user 125 and satellite 103 may be terminated. In another example, user 126 is handed off, for example, from satellite 104 in orbital plane 108 to satellite 107 in orbital plane 109. In this example, a new user link 121 may be formed between user 126 and satellite 107, and the existing user link 122 between user 126 and satellite 104 may be terminated. The intra-orbit links 110-113, inter-orbit links 114-117, and user links 118-122 may be collectively referred to as communication links 110-122.
[0018] In the conventional NGSO architecture, as the NGSO topology changed over time, the IP routing tables used by NGSO satellites were updated in real time. In response to the topology change, the ground control station calculated new backbone routing information based on the orbital configuration of the NGSO satellites and uploaded this backbone routing information to the NGSO satellites. Such real-time updates resulted in enormous computational overhead for the NGSO satellite system and generated massive data traffic between the NGSO satellite system's ground control station and the satellites. Due to these effects, the conventional NGSO satellite system could not adequately scale as the number of NGSO satellites increased. Furthermore, if part of the system failed and real-time update information could not be delivered to the NGSO satellites, a failure of part or all of the system could occur, potentially causing the relative positions of the NGSO satellites to shift and inter-orbit and / or intra-orbit communication links to be lost.
[0019] In the embodiments described herein, in order to enable satellites 102-107 to respond to changes in the backbone routes within system 100 over time, the time-varying changes in the backbone route table of system 100 are pre-calculated by the satellite controller 130 of system 100 and transmitted to satellites 102-107, which then select these changes at various points in time. In some embodiments described herein, the time-varying changes in backbone route information within system 100 and the time-varying changes in user route information within system 100 are separated by using separate backbone route tables and user route tables mounted on satellites 102-107. In various embodiments, the satellite controller 130 may consist of ground assets or in-orbit assets. In other embodiments, the satellite controller 130 may be comprised of one or more of satellites 102-107.
[0020] As the topology of system 100 changes over time, satellites 102-107 use different backbone route tables (for example, by instruction from satellite controller 130 and / or based on a predetermined schedule). As previously mentioned, in the case of a handoff of the interorbital link between satellites 102-107 due to the relative movement of satellites 102-107 in different orbital planes 108-109, for example, when satellite 104 enters the field of view of satellite 107, an interorbital link 117 is formed between satellite 107 and satellite 104, and when satellite 103 goes out of the field of view of satellite 107, the interorbital link 116 between satellite 107 and satellite 103 is terminated. To accommodate this change over time in the backbone path of system 100, satellites 103-104 and satellite 107 select, for example, a different backbone route table than the one previously used, and this new backbone route table defines a new topology between satellites 103-104 and satellite 107. In this way, by using a pre-calculated backbone route table in system 100, the traffic typical of router updates performed in conventional NGSO satellite systems can be reduced or eliminated.
[0021] When the user routing table within system 100 changes over time (e.g., when users 124 - 126 are handed off between different satellites 102 - 107 as described above for user 125), satellite controller 130 can update the user routing tables of satellites 102 - 107 independently of the backbone routing table.
[0022] In addition to the functions described above, system 100 can further implement various routing options for different data packets by using various groups of backbone routing tables that satellites 102 - 107 can select, so as to realize various routing options for data packets in system 100. The various routing options in system 100 can be realized by using various subsets of routing links within system 100 that can be selected based on the desired transmission performance, data transmission cost, reliability of data transmission, and / or various security aspects. Examples of routing options include, but are not limited to, routes within system 100 where the bandwidth is higher or lower than a threshold bandwidth, routes within system 100 where the packet delay is greater or less than a threshold packet delay, routes within system 100 where the delivery reliability is higher or lower than a threshold delivery reliability, routes within system 100 where the transmission cost is higher or lower than a threshold transmission cost, and / or routes within system 100 that include data packets corresponding to a particular routing group and exclude other data packets that do not correspond.
[0023] Whether a data packet is routed using a specific routing group depends on various factors, such as the specific users 120-122 associated with the data packet, the group of users 124-126 associated with the data packet, and / or the type of data in the data packet. For example, system 100 can implement low-latency routing for specific users 124-126, the group of users 124-126, and / or the type of traffic, or it can implement high-bandwidth or low-bandwidth routing for specific users 124-126, the group of users 124-126, and / or the type of traffic. This type of differential routing can be implemented based on the data transmission and packet forwarding capabilities that may differ between satellites 102-107. For example, even if satellites 102-107 are identical, some may have high-bandwidth communication link capabilities while others have low-bandwidth communication link capabilities, both for communication with each other via in-orbit links 110-113 and / or inter-orbit links 114-117, and for communication with users 124-126 locally connected to satellites 102-107 via user links 118-122. As another example, satellites 102-107 may have differences in communication capabilities; for example, some satellites 102-107 may have been placed into orbit later than others, and newer versions of satellites 102-107 may have more advanced communication capabilities than older versions. Differences in this type of communication capability between satellites 102-107 include, but are not limited to, differences in packet processing and forwarding capabilities, and differences in the number and / or capabilities of communication links 110-122.
[0024] FIG. 2 is a block diagram of satellites 102-107 in an exemplary embodiment. In this embodiment, satellites 102-107 include, but are not limited to, one or more processors 202, a memory 204, a power system 206, a propulsion system 208, a communication system 210, and one or more switches / routers 212. Processor 202 (and any other processor described herein) includes any hardware device capable of performing the functions described with respect to satellites 102-107, including executing program instructions for implementing these functions. Processor 202 (and any other processor described herein) can include one or more central processing units (CPUs), microprocessors, digital signal processors (DSPs), and / or application specific integrated circuits (ASICs), etc.
[0025] Memory 204 (and any other memory device described herein) includes any hardware device capable of storing data. Memory 204 (and any other memory device described herein) can include volatile or non-volatile dynamic random access memory (DRAM) devices, FLASH devices, volatile or non-volatile static RAM devices, hard disks, and / or solid state disks (SSDs), etc. Examples of non-volatile DRAM and SRAM include battery-backed DRAM and battery-backed SRAM.
[0026] The power system 206 consists of any components, systems, or devices that store and generate power for satellites 102-107. Examples of power systems 206 include batteries, solar panels, and fuel cells. The propulsion system 208 consists of any components, systems, or devices that provide satellites 102-107 with in-orbit maneuverability. The propulsion system 208 can consist of onboard fuel, rocket motors, ion thrusters, and the like. The communication system 210 consists of any components, systems, or devices that enable satellites 102-107 to communicate with each other and with users 124-126 via communication links 110-122. The communication system 210 can consist of a wireless communication system, an optical communication system, or a combination of a wireless communication system and an optical communication system. The switch / router 212 consists of any components, systems, or devices that provide satellites 102-107 with packet routing capabilities. This packet routing function includes routing data packets received by satellites 102-107 to the communication system 210 for data transmission via communication links 110-122.
[0027] In the embodiment shown in Figure 2, various routing methods are realized within system 100 by using various routing groups 214 to 216, and these methods are constructed by the satellite controller 130 based on their respective routing options 218 to 220. By using routing groups 214 to 216, satellites 102 to 107 realize different routing methods and route traffic among users 124 to 126 within system 100. Different traffic routing methods can be realized for each routing group 214 to 216, for example, routing methods that address latency, bandwidth, and cost, or routing methods that separate different users 124 to 126, groups of users 124 to 126, or specific types of traffic can be implemented in a subset of communication links 110 to 122 within system 100.
[0028] For example, the packet routing option 218 of routing group 214 can define a target for low-latency performance of traffic routed by system 100 for users 124-126, groups of users 124-126, and / or certain types of traffic. The satellite controller 130 can then create backbone route tables 226-229 within routing group 214 that minimize the latency of traffic when it is sent via in-orbit links 110-113 and / or inter-orbit links 114-117. To this end, the satellite controller 130 estimates the packet forwarding delay and / or link propagation delay of satellites 102-107 in system 100 and analyzes the in-orbit links 110-113 and / or inter-orbit links 114-117 of satellites 102-107 using a traffic engineering algorithm with appropriate constraints on various possible routing paths within system 100, in order to identify the optimal routing scenario that realizes the packet routing option 218. In some embodiments, the routing group 214 includes one or more user route tables 222 that track the connectivity status of users 124-126 to satellites 102-107. In these embodiments, the satellite controller 130 can create, update, and maintain the user route tables 222 to minimize the latency of the target traffic sent over user links 118-122.
[0029] As another example, the packet routing option 219 of routing group 215 can define a minimum bandwidth performance target for traffic routed by system 100 for users 124-126, groups of users 124-126, and / or certain types of traffic, and the satellite controller 130 can create backbone route tables 230-233 within routing group 215 that provide this minimum bandwidth performance target for traffic when the traffic is sent over in-orbit links 110-113 and / or inter-orbit links 114-117, for example. To this end, the satellite controller 130 analyzes the communication bandwidth capabilities of satellites 102-107 in system 100 and the in-orbit links 110-113 and / or inter-orbit links 114-117 for satellites 102-107 to identify the optimal routing scenario to realize the packet routing option 219. In some embodiments, routing group 215 includes one or more user route tables 223. In these embodiments, the satellite controller 130 can create, update, and maintain a user route table 223 so as to introduce targets with minimum bandwidth performance to the target traffic as it is sent over user links 118-122.
[0030] As another example, the packet routing option 220 of routing group 216 can define network segmentation of traffic routed by system 100 for users 124-126, groups of users 124-126, and / or certain types of traffic, in order to ensure secure communication. The satellite controller 130 can then create backbone route tables 234-237 within routing group 216 to segment the target traffic to specific in-orbit links 110-113 and / or inter-orbit links 114-117, for example, from other types of traffic. In some embodiments, routing group 216 includes one or more user route tables 224. In these embodiments, the satellite controller 130 can create, update, and maintain user route tables 224 to segment the target traffic to specific user links 118-122 of system 100, from other types of traffic.
[0031] As described above, routing groups 214-216 in some embodiments may include user route tables 222-224 that track which satellites 102-107 users 124-126 are connected to. For example, if user 125 is connected to satellite 103 (e.g., via user link 120), the user route tables 222-224 for satellite 103 would indicate that user 125 is locally connected to satellite 103 (e.g., by local routing information such as the currently active user link 120 or the exit port of the switch / router 212 associated with user link 120). The user route tables 222-224 for satellites 102 and 104-107 may indicate that user 125 is not locally connected to these satellites. For example, the user route tables 222-224 for satellite 102, which is not locally connected to user 125, may indicate an exit port associated with forwarding data to user 125 (e.g., an exit port associated with the in-orbit link 110 between satellites 102 and 103). When users 124-126 are handed off to another satellite 102-107 within system 100, the satellite controller 130 may be tasked with creating new user route tables 222-224 for each satellite 102-107 that indicate the change in the connection status of users 124-126, and transmitting these new user route tables 222-224 to satellites 102-107.
[0032] Furthermore, because each satellite 102-107 may refer to different parts of system 100, and because the communication capabilities of each satellite 102-107 may differ, the backbone route tables 226-237 may differ for each satellite 102-107. For example, when users 124-126 communicate with each other via system 100 using routing group 214, it is clear from Figure 1 that there are multiple routing paths between users 124-126 in system 100. An in-orbit link 112 exists between satellites 105 and 106, which could constitute a one-hop forwarding scenario between users 124 and 126 within system 100. However, the in-orbit link 112 may not meet the performance, cost, and / or security criteria associated with the packet routing option 218 of routing group 214. In that case, the in-orbit link 112 would be excluded from the routing path between users 124 and 126 in backbone route tables 226 and 229.
[0033] Therefore, the satellite controller 130 is tasked with pre-calculating and uploading the backbone route tables 226-239 for routing group 214, so that they are further subdivided by the implemented packet routing options 218-220 based on a subset of the operating range of specific satellites 102-107 within system 100. The satellite controller 130 performs the same operation for routing groups 215-216, which are modified by their respective packet routing options 219-220.
[0034] The satellite controller 130 may also be tasked with instructing satellites 102-107 which backbone route tables 226-229 of routing group 214 should be used, and / or which backbone route tables 230-233 of routing group 215 should be used, and / or which backbone route tables 234-237 of routing group 216 should be used, at a given point in time. For example, the satellite controller 130 may instruct satellites 102-107 to use backbone route table 226 of routing group 214 when implementing the routing scenario of packet routing option 218 in the first time zone of the day, and then instruct satellites 102-107 to use backbone route table 227 of routing group 214 when implementing the routing scenario of packet routing option 218 in a second time zone of the day, which is different from the first time zone.
[0035] Figure 3 is a block diagram of a satellite controller 130 in an exemplary embodiment. In this embodiment, the satellite controller 130 manages and communicates with satellites 102-107 via a network 132 connected to a user 126, which is exemplified in this embodiment as a ground station. In this embodiment, the satellite controller 130 may include, but is not limited to, one or more processors 302 that execute software instructions, memory 306, and a network interface 308. The network interface 308 electrically connects the satellite controller 130 to the network 132. The network interface 308 may include any components, systems, or devices that provide the satellite controller 130 with network signal transmission and network frame processing functions. In some embodiments, the network 132 may consist of a local network, the Internet, or a combination of a local network and the Internet.
[0036] In some embodiments, the satellite controller 130 is configured with a Software-Defined Networking (SDN) architecture. In these embodiments, topology and traffic engineering intelligence and algorithms are instantiated as SDN applications executed by the satellite controller 130. The satellite controller 130 manages satellites 102-107 using a priori knowledge of their movement in orbital planes 108-109. In some embodiments, the SDN control plane is used to configure backbone route tables 226-237 and / or user route tables 222-224 for satellites 102-107. The satellite controller 130 has a priori knowledge of when the fields of view of satellites 102-107 in different orbital planes 108-109 overlap (for example, when the field of view of satellite 103 overlaps with the field of view of satellite 106). The satellite controller 130 also optimizes the backbone path of the system 100 and determines which interorbital links 114-117 to form and which interorbital links to disconnect (for example, creating interorbital link 117 and disconnecting interorbital link 116 when satellite 107 leaves the field of view of satellite 103 and enters the field of view of satellite 104).
[0037] In some embodiments, the satellite controller 130 manages handover requests between users 124-126 and satellites 102-107. In one such embodiment, the satellite controller 130 manages the handover requests of users 124-126 using an SDN application for mobility management that runs on the satellite controller 130, and updates the user route tables 222-224 on satellites 102-107 in real time in response to handovers on user links 118-122. (For example, the updates to user route tables 222-224 are based on real-time changes in the connection status between users 124-126 and satellites 102-107.) In other embodiments, the satellite controller 130 pre-calculates the user route tables 222-224 using a priori knowledge based on orbital dynamics regarding predicted handoff events between users 124-126 and satellites 102-107, and uploads them to satellites 102-107 in advance. (For example, user route tables 222-224 are based on predicted changes in connectivity between users 124-126 and satellites 102-107.) If communication between satellites 102-107 and satellite controller 130 is temporarily lost, satellites 102-107 can operate autonomously for at least a certain period of time with respect to the handover between users 124-126 and satellites 102-107 using the pre-calculated user route tables 222-224.
[0038] Figure 4 is a flowchart of Method 400 as implementable by an NGSO satellite in an exemplary embodiment, and Figures 5-9 show additional details of Method 400 in any embodiment. Although Method 400 is described in relation to satellite 103 in Figure 1, Method 400 is similarly applicable to satellites 102 and 104-107 in System 100. Furthermore, Method 400 is similarly applicable to other NGSO satellites in other systems. The steps of Method 400 are not necessarily all included, and Method 400 may include other steps not shown. Also, the steps of Method 400 can be performed in a different order.
[0039] Assuming that system 100 is operational, satellite controller 130 assumes it has pre-calculated backbone route tables 226-237 for satellite 103. To achieve this, satellite controller 130 utilizes a priori orbital information of satellite 103, which includes, for example, the time-changing field of view of satellite 103 relative to satellites 102 and 104-107 within system 100. For example, as time passes, satellite 103's field of view relative to satellites 102 and 104-107 may include satellites 105, 106, and 107, and satellite controller 130 pre-calculates the time-changing backbone route tables 226-237 for satellite 103 accordingly. Furthermore, satellite controller 130 creates backbone route tables 226-237 based on packet routing options 218-220 within routing groups 214-216. These options involve selecting, on a time-dependent basis, a subset of the intra-orbit links 110-113 and / or inter-orbit links 114-117 maintained by satellite 103, based on the link's communication capabilities and / or security considerations. For example, packet routing options 218-220 include, but are not limited to, intra-orbit links 110-113 and / or inter-orbit links 114-117 maintained by satellite 103, where the bandwidth is higher or lower than a threshold bandwidth, the packet delay is greater or less than a threshold packet delay, the delivery reliability is higher or lower than a threshold delivery reliability, the transmission cost is higher or lower than a threshold transmission cost, and / or the intra-orbit links 110-113 and / or inter-orbit links 114-117 are dedicated to specific traffic.
[0040] Once the backbone route tables 226-237 are pre-calculated, the satellite controller 130 transmits routing groups 214-216 to satellite 103, which is received by satellite 103 and stored in memory 204 (see step 402 in Figure 4).
[0041] Next, the communication system 210 of satellite 103 may receive data packets to be routed within system 100 (see step 404). For example, satellite 103 may receive data packets for user 124 from satellite 104 via the in-orbit link 111. In the topology snapshot shown in Figure 1, user 124 is locally connected to satellite 105 via user link 118, so the data packets received by satellite 103 are forwarded to satellite 105. The processor 202 of satellite 103 determines which of the routing groups 214-216 is assigned to this data packet (see step 406). To do this, the processor 202 analyzes the data packet to identify metadata, IP address information, prefix information, etc., associated with this data packet. In some embodiments, the processor 202 determines which of the routing groups 214-216 is assigned to the data packet based on one or more of the users 124-126 that are the source and / or destination of the data packet, which group of users 124-126 is the source and / or destination of the data packet, and the type of data packet (e.g., control plane data, user plane data, packet protocol, etc.) (see step 702 in Figure 7).
[0042] For the sake of consideration, we assume that this data packet is tagged to perform high-bandwidth transmission, and that this functionality is provided by routing group 214 by optimizing backbone route tables 226-229 to prioritize the link that provides the best high-bandwidth route from satellite 103 to satellite 105 among the links maintained by satellite 103. The processor 202 of satellite 103 identifies the active backbone route table (e.g., backbone route table 226) within routing group 214, which is a snapshot of the changes in the time-varying topology of system 100 that is routable by satellite 103 (see step 408). The communication system 210 uses the active backbone route table 226 to forward data packets from satellite 102 to satellites 104-107 (see step 410). For example, if the data packet is destined for user 124, the data packet will ultimately be forwarded to satellite 105, which is communicating with user 124 via user link 118 maintained by satellite 105. In the topology snapshot shown in Figure 1, it is clear that there are multiple routes from satellite 103 to satellite 105, and each route has different link functions, meaning some routes may achieve high-bandwidth transmission while others do not. Therefore, the active backbone route table 226 configures one of the routes to satellite 105 based not only on the specific communication functions of each link maintained by satellite 103, but also on the specific communication functions of the entire routing path between satellite 103 and satellite 105. This route may include multiple links with different communication functions. While routing group 214 has been described in relation to optimizing backbone route tables 226-229 for bandwidth between satellite 103 and satellite 105, as mentioned earlier, packet routing option 218 also includes other optimizations.
[0043] During operation, satellite 103 also determines whether the active backbone route table in routing groups 214-216 has changed (see step 502 in Figure 5). If the active backbone route table has not changed, step 506 is performed. Generally, the active backbone route table is changed in response to changes in the time-varying topology within system 100. In one embodiment, satellite controller 130 instructs satellite 103 when to change the active backbone route table. In another embodiment, satellite 103 selects a different backbone route table based on internal criteria such as time or time zone (see step 602 in Figure 6). When satellite 103 receives an instruction or makes a decision to change which of the backbone route tables 226-237 is active in each routing group 214-216, it selects a new backbone route table (see step 504). For example, processor 202 switches the active backbone route table from backbone route table 226 to backbone route table 227. A similar process is performed for each routing group 214-216.
[0044] In the previous example of satellite 103, user 124 was described, and in Figure 1 this user is locally connected to satellite 105. However, satellite 103 may also receive data packets destined for local users, such as user 125. In Figure 1, user 125 is locally connected to satellite 103 via user link 120. Therefore, when satellite 103 receives a data packet to be routed within system 100, it determines whether the data packet is destined for a local user (e.g., user 125) or a remote user (e.g., user 124 or user 126) using the user route tables 222-224 of each routing group 214-216.
[0045] As mentioned above, user route tables 222-224 are used in some embodiments to indicate changes in the connection status from users 124-126 to satellites 102-107. For example, the satellite controller 130 creates and uploads user route tables 222-224 for satellite 103, which include information such as which of users 124-126 are locally connected to satellite 103 in system 100, and which of users 124-126 are connected to satellite 102 or satellites 104-107. For example, user route tables 222-224 for satellite 103 may indicate that user 125 is locally connected to satellite 103, and users 124 and 126 are connected to satellites 105 and 104, respectively. This type of information allows satellite 103 to decide whether to forward or process data packets for user 125 locally. Therefore, when satellite 103 receives a data packet, the satellite 103's processor 202 can determine whether the data packet is addressed to a remote user or a local user (see step 802 in Figure 9). In the previous example concerning the data packet for user 124, user 124 is considered a remote user to satellite 103, and the satellite's processor 202 identifies the active backbone route table as described above (see step 408) and forwards the data packet (see step 410). If the processor 202 determines that the data packet is for a local user (for example, the data packet is addressed to user 125, and user 125 is directly connected to satellite 103 via user link 120), the satellite 103's communication system 210 does not forward the data packet but sends it directly to user 125 via user link 120.
[0046] During operation, satellite 103 can also receive updates to user route tables 222-224 from satellite controller 130. For example, when users 124-126 are handed off between satellites 102-107, user route tables 222-224 are updated not only to reflect the change in connection status between users 124-126 and satellites 102-107, but also to optimize the user route tables based on packet routing options 218-220, enabling the satellite controller 130 to create user route tables 222-224 based on packet routing options 218-220 to realize various functional and / or security aspects of system 100. For example, satellite 103 has multiple user link options that can be selected in various ways according to the performance criteria described above, and these can be used to optimize how user 124 connects to satellite 103.
[0047] Figure 10 shows an embodiment of routing for satellite 103 in an exemplary embodiment of a snapshot of the time-varying topology shown in Figure 1. In this embodiment, the switch / router 212 of satellite 103 includes ports 1001 to 1005, which are connected to communication channels 1006 to 1010, respectively. Based on the topology of system 100 at a specific point in time, port 1001 provides a routing path to satellite 102 via the in-orbit link 110 using narrowband communication channel 1006, port 1002 provides a routing path to satellite 106 via the inter-orbit link 115 using broadband communication channel 1007, port 1003 provides a routing path to user 125 via user link 120 using broadband communication channel 1008, port 1004 provides a routing path to satellite 107 via the inter-orbit link 116 using broadband communication channel 1009, and port 1005 provides a routing path to satellite 104 via the in-orbit link 111 using narrowband communication channel 1010. Figure 10 will be used in a later explanation of how satellite 103 performs the packet routing process using routing group 214. In this example, we describe the case where packet routing option 218 is for data packets classified for broadband transmission.
[0048] Figure 11 shows a user route table 222 and a backbone route table 226 (considered the active backbone route table in this example) for broadband-classified traffic in an exemplary embodiment. In this example, Figure 11 shows a routing group 214, which has packet routing options 218 configured to perform routing for broadband traffic in this example. Figure 11 shows several table numbers 1102, 0 to 3, which are used when satellite 103 processes incoming data packets for users 124 to 126. Furthermore, each table number 1102 in Figure 11 defines a matching condition 1104 and an action 1106 to be performed when a match is found in the corresponding table. Table 0 corresponds to user route table 222-1, which defines what action 1106 is performed when users 124 to 126 are not locally connected to satellite 103. Table 1 corresponds to user route table 222-2, which specifies what processing 1106 is performed when users 1245-126 are locally connected to satellite 103. Table 2 specifies which backbone route table is currently active, which in this example is route table 226 in routing group 214. Backbone route table 226 specifies what processing 1106 is performed when routing data packets to satellite 102 or satellites 104-107 (for example, to remote users, user 124 and user 126).
[0049] When a data packet is received by satellite 103 and classified as broadband packet data (for example, when the data packet is assigned to routing group 214), processing of this data packet begins in Table 0 in Figure 11, which corresponds to User Route Table 222-1. In this embodiment, User Route Table 222-1 (Table 0) identifies which of the users 124 to 126 in system 100 are not locally connected to satellite 103. For example, User Route Table 222-1 indicates that users 124 and 126 are locally connected to satellites 105 to 106, respectively, and User Route Table 222-2 indicates that user 125 is locally connected to satellite 103. In this example, when a broadband classified data packet is received by satellite 103, satellite 103 determines whether the data packet is destined for user 124 or user 126 based on the entries in Table 0 and matching conditions 1104. If there is a match with an item in Table 0, satellite 103 performs the corresponding process 1106 in Table 0. Specifically, satellite 103 writes satellite node ID metadata for the data packet, which tags how the data packet will be processed afterward.
[0050] For example, if a broadband classified data packet received by satellite 103 is destined for user 124, satellite 103 performs process 1106 to write the node ID of satellite 105 to the metadata associated with the packet, and the process then jumps to Table 2. If a broadband classified data packet received by satellite 103 is destined for user 126, satellite 103 performs process 1106 to write the node ID of satellite 104 to the metadata associated with the packet, and in this case as well, the process jumps to Table 2. In either case, the metadata written to the data packet determines how the backbone route table 226 forwards the data packet through the switch / router 212 of satellite 103 (see Figure 10). Satellite 103 uses Table 2 in Figure 11 to identify the active backbone route table 226. Using the information in Table 2, the processing in Table 3 in Figure 11 is then performed. Using Table 3 and the metadata written in the data packet, satellite 103 identifies which of the switch / router 212 ports 1001-1005 should be used to allocate the data packet. Next, satellite 103 uses this identified switch / router 212 port to send the data packet to satellite 102 or one of satellites 104-107. In this example, the data packet is classified as a broadband packet transmission on the topology of system 100, so the backbone route table 226 is optimized to use a route that enables broadband communication to users 124 and 126. For example, user 124 is local to satellite 105, and satellite 103 can forward the data packet for user 124 to either satellite 102 or satellite 106. However, since the intra-orbit link 110 is narrowband (see Figure 10), the backbone route table 226 indicates that the packet data for user 124 should be forwarded to satellite 106 via the inter-orbit link 115, which is a broadband communication path.Therefore, even when there are multiple routing options for data packets to be forwarded to user 124, the backbone route table 226 is optimized so that a given subset of possible routing paths is used to achieve broadband classification of those data packets. The backbone route table 226 also includes similar optimizations for the routes used to forward data packets to user 126.
[0051] Returning to Table 0, if no matching condition 1104 is found for the data packet, satellite 103 begins processing Table 1, which corresponds to route table 222-2 for users 124-126 locally connected to satellite 103. In this case, the absence of a matching entry in Table 0 suggests that the data packet received by satellite 103 is destined for users 124-126 locally connected to satellite 103.
[0052] When the process proceeds to Table 1 based on process 1106 shown in Table 0, satellite 103 determines whether the data packet received by satellite 103 corresponds to users 124-126. If there is no match, the packet is discarded. If the data packet corresponds to one of users 124-126, satellite 103 identifies the local port for that user 124-126 that is locally connected. In this example, user 125 is locally connected to satellite 103 via user link 120 on port 1003 (see Figure 10). Therefore, satellite 103 performs process 1106 in Table 1 and sends the data packet to port 1003 of switch / router 212. In this example, satellite 103 has one user link 120 available, which in this case is a broadband communication link. If satellite 103 has multiple downlink options with varying capabilities, Table 1 will determine which subset of user links can be used to communicate with user 125, prioritizing highband user links over lowband user links.
[0053] By using routing groups 214 to 216, each implementing different packet routing options 218 to 220, system 100 can implement various functional and / or security features in routing packet data in the time-varying topology of system 100.
[0054] Any element illustrated or described herein can be implemented by hardware, software, firmware, or a combination thereof. For example, an element can be implemented as dedicated hardware. Dedicated hardware elements may be referred to as “processors,” “controllers,” or other similar terms. When implemented by processors, the functions can be implemented by a single dedicated processor, a single shared processor, or multiple individual processors that share some functions. Furthermore, when the terms “processors” or “controllers” are explicitly used, they should not be interpreted as referring only to hardware capable of running software, but implicitly include, for example, digital signal processor (DSP) hardware, network processors, application-specific integrated circuits (ASICs) or other circuits, field-programmable gate arrays (FPGAs), read-only memory (ROM) for storing software, random-access memory (RAM), non-volatile memory, logic circuits, or other physical hardware components or modules.
[0055] Furthermore, elements can also be implemented as instructions that can be executed by a processor or computer to perform the function of that element. Examples of instructions include software, program code, and firmware. When an instruction is executed by a processor, it operates and instructs the processor to perform the function of the element. Instructions can be stored in a memory device that can be read by the processor. Examples of memory devices include digital memory, solid-state memory, magnetic storage media such as magnetic disks and magnetic tapes, hard disks, and optically readable digital data storage media.
[0056] Furthermore, this disclosure includes embodiments as specified below.
[0057] Note 1. A method operable by a satellite in a non-geostationary orbit (NGSO) satellite system, comprising: receiving a plurality of routing groups, each defining a separate packet routing option for the satellite, each of the plurality of routing groups comprising a plurality of backbone route tables, each backbone route table comprising a snapshot of the time-varying backbone topology of the NGSO satellite system implementing one of the packet routing options; receiving a data packet to be routed by the NGSO satellite system; identifying the routing group to which the data packet is assigned from the plurality of routing groups; identifying the active backbone route table from the plurality of backbone route tables of the routing group; and forwarding the data packet to another satellite in the NGSO satellite system using at least one in-orbit link and an inter-orbit link, based on the active backbone route table, to implement the packet routing option for the data packet among the packet routing options.
[0058] Note 2. The method according to Note 1, wherein, when identifying the active backbone route table, it is determined that the active backbone route table in the routing group has changed, and another backbone route table is selected from among the multiple backbone route tables of the routing group to become the active backbone route table.
[0059] Note 3. When determining that the active backbone route table has changed, The method described in Appendix 2 for determining that the period associated with the aforementioned active backbone route table has ended.
[0060] Appendix 4. The method according to Appendix 1, wherein, in identifying the routing group associated with the data packet, at least one of the following is identified: the user associated with the data packet, the group of users associated with the data packet, or the type of data in the data packet.
[0061] Note 5. The method according to Note 1, wherein each of the plurality of routing groups includes at least one user route table that identifies the connectivity status of users to satellites in the NGSO satellite system, and the method further determines, based on the at least one user route table, whether the data packet is destined for at least one of a first user directly connected to another satellite and a second user directly connected to the satellite, and, upon determining that the data packet is destined for the second user, transmits the data packet to the second user via a user link maintained by the satellite.
[0062] Note 6. Furthermore, it is determined whether at least one of the connection status of the first user to the other satellite and the connection status of the second user to the satellite has changed. The method according to Appendix 5, wherein, in response to the change in the connection state, at least one user route table of the routing group is updated.
[0063] Note 7. The method according to Note 5, wherein the packet routing option includes at least two of the following: a communication link maintained by the satellite with a bandwidth higher or lower than a threshold bandwidth; a communication link maintained by the satellite with a packet delay greater or less than a threshold packet delay; a communication link maintained by the satellite with a delivery reliability higher or lower than a threshold delivery reliability; a communication link maintained by the satellite with a transmission cost higher or lower than a threshold transmission cost; and a communication link maintained by the satellite that excludes other data packets that do not belong to the routing group assigned to the data packet.
[0064] Note 8. A non-geostationary orbit (NGSO) satellite system, comprising a satellite, the satellite comprising a memory storing a plurality of routing groups, each defining a separate packet routing option for the satellite, each of the plurality of routing groups comprising a plurality of backbone route tables, the backbone route tables comprising snapshots of the time-varying backbone topology of the NGSO satellite system that implement one of the packet routing options, the satellite further comprising at least one processor configured to receive data packets to be routed by the NGSO satellite system and to identify a routing group from the plurality of routing groups to be assigned to the data packets, the at least one processor configured to identify an active backbone route table from the plurality of backbone route tables of the routing group and to forward the data packets to another satellite in the NGSO satellite system via at least one of in-orbit and inter-orbit links based on the active backbone route table to implement the packet routing option for the data packets among the packet routing options.
[0065] Note 9. The NGSO satellite system as described in Note 8, wherein at least one processor is configured to determine that the active backbone route table in the routing group has changed and to select another backbone route table from among the multiple backbone route tables in the routing group to become the active backbone route table.
[0066] Appendix 10. The NGSO satellite system as described in Appendix 9, wherein at least one processor is configured to determine that the active backbone route table has changed upon determining that a given period has ended.
[0067] Note 11. The NGSO satellite system according to Note 10, wherein the at least one processor is configured to identify a routing group for the data packet based on at least one of the user associated with the data packet, the group of users associated with the data packet, or the type of data in the data packet.
[0068] Note 12. Each of the routing groups includes at least one user route table that identifies the user's connection status to the satellites within the NGSO satellite system. The NGSO satellite system according to Appendix 8, wherein the at least one processor is configured to determine, based on the at least one user route table, whether the data packet is destined for at least one of a first user directly connected to the other satellite and a second user directly connected to the satellite, and, upon determining that the data packet is destined for the second user, transmit the data packet to the second user via a user link maintained by the satellite.
[0069] Note 13. The NGSO satellite system according to Note 12, wherein the at least one processor is configured to update at least one of the following: a change in the connection status of the first user to the other satellite and a change in the connection status of the second user to the satellite.
[0070] Note 14. The NGSO satellite system as described in Note 12, wherein the packet routing options include at least two of the following: a communication link maintained by the satellite with a bandwidth higher or lower than a threshold bandwidth; a communication link maintained by the satellite with a packet delay greater or less than a threshold packet delay; a communication link maintained by the satellite with a delivery reliability higher or lower than a threshold delivery reliability; a communication link maintained by the satellite with a transmission cost higher or lower than a threshold transmission cost; and a communication link maintained by the satellite that excludes other data packets that do not belong to the routing group assigned to the data packet.
[0071] Note 15. A non-geostationary orbit (NGSO) satellite system comprising a satellite, the satellite comprising a memory storing a plurality of routing groups, each defining a separate packet routing option for the satellite, each routing group comprising at least one backbone route table, the backbone route table implementing one of the packet routing options using a snapshot of the time-varying backbone topology of the NGSO satellite system routable by the satellite, and the satellite further comprising at least one processor configured to receive a plurality of data packets for users directly connected to other satellites of the NGSO satellite system, to identify a routing group to which each of these data packets is assigned, and to send each of these data packets separately to the other satellites using at least one backbone route table in each different routing group.
[0072] Note 16. The NGSO satellite system as described in Note 15, wherein the at least one backbone route table comprises a plurality of backbone route tables, each associated with a separate snapshot of the time-varying backbone topology of the NGSO satellite system, one of the backbone route tables is an active backbone route table that implements one of the packet routing options, and the at least one processor is configured to determine that the active backbone route table in the routing group has changed and to select another backbone route table from the plurality of backbone route tables in the routing group to become the active backbone route table.
[0073] Appendix 17. The NGSO satellite system as described in Appendix 16, wherein at least one processor is configured to determine that the active backbone route table has changed upon determining that the period allocated to the active backbone route table has ended.
[0074] Note 18. The NGSO satellite system according to Note 15, wherein the at least one processor is configured to identify a routing group for a data packet based on at least one of the user associated with the data packet, the group of users associated with the data packet, or the type of data in the data packet.
[0075] Note 19. The NGSO satellite system as described in Note 15, wherein each of the routing groups includes at least one user route table that identifies the connection status of users to satellites within the NGSO satellite system, and the at least one processor is configured to determine, based on the at least one user route table, whether the data packet is destined for at least one of a first user directly connected to another satellite and a second user directly connected to the satellite, and, upon determining that the data packet is destined for the second user, transmit the data packet to the second user.
[0076] Note 20. The NGSO satellite system according to Note 19, wherein the at least one processor is configured to update at least one of the following: a change in the connection status of the first user to the other satellite and a change in the connection status of the second user to the satellite.
[0077] Although specific embodiments have been described herein, the scope of this disclosure is not limited to these specific embodiments. The scope of this disclosure is defined by the following claims and their equivalents.
Claims
1. A method that can be operated by satellites of a non-geostationary orbit (NGSO) satellite system, The satellite receives and pre-stores in its memory a plurality of routing groups, each defining a distinct packet routing option for the satellite, each of which includes a plurality of backbone route tables, each of which includes a snapshot of the time-varying backbone topology of the NGSO satellite system implementing one of the packet routing options, and each of the distinct packet routing options represents the transmission conditions for data packets transmitted by the NGSO satellite system. The NGSO satellite system receives data packets that should be routed using a predetermined packet routing option. From the plurality of routing groups, identify the routing group corresponding to the predetermined packet routing option of the data packet. From the multiple backbone route tables of the identified routing group, the active backbone route table is identified. A method for forwarding a data packet to another satellite in the NGSO satellite system using at least one of an intra-orbit link and an inter-orbit link, based on the identified active backbone route table, so as to implement the predetermined packet routing option for the data packet among the packet routing options.
2. When identifying the active backbone route table, It is determined that the active backbone route table in the aforementioned routing group has changed. The method according to claim 1, wherein a different backbone route table is selected from among a plurality of backbone route tables of the routing group to become the active backbone route table.
3. When determining that the active backbone route table has changed, The method according to claim 2, which determines that the period associated with the active backbone route table has ended.
4. When identifying the routing group associated with the aforementioned data packet, The method according to any one of claims 1 to 3, which identifies at least one of the user associated with the data packet, the group of users associated with the data packet, and the type of data in the data packet.
5. Each of the aforementioned routing groups includes at least one user route table that identifies the user's connection status to the satellites within the NGSO satellite system, The above method further, Based on the aforementioned at least one user route table, it is determined whether the data packet is destined for at least one of the first user directly connected to the other satellite and the second user directly connected to the satellite. The method according to any one of claims 1 to 4, wherein, upon determining that the data packet is addressed to the second user, the data packet is transmitted to the second user via a user link maintained by the satellite.
6. Furthermore, it is determined whether at least one of the connection status of the first user to the other satellite and the connection status of the second user to the satellite has changed. The method according to claim 5, wherein, in response to the change in the connection state, at least one user route table of the routing group is updated.
7. The aforementioned packet routing options are: The aforementioned satellite maintains a communication link whose bandwidth is higher or lower than the threshold bandwidth. The aforementioned satellite maintains a communication link where the packet delay is greater than or less than the threshold packet delay. The aforementioned satellite maintains a communication link whose delivery reliability is higher or lower than the threshold delivery reliability. The method according to claim 5, comprising at least two of the communication links maintained by the satellite, the transmission cost of which is higher or lower than a threshold transmission cost.
8. Non-geostationary orbit (NGSO) satellite system, Including satellites, said satellites The system includes a memory that pre-stores a plurality of routing groups, each defining a distinct packet routing option for the satellite, each of which includes a plurality of backbone route tables, each of which includes a snapshot of the time-varying backbone topology of the NGSO satellite system implementing one of the packet routing options, and each of the distinct packet routing options represents the transmission conditions for data packets transmitted by the NGSO satellite system. The satellite further includes at least one processor configured to receive data packets to be routed in the NGSO satellite system using predetermined packet routing options, and to identify from a plurality of routing groups the routing group corresponding to the predetermined packet routing option for the data packets. An NGSO satellite system in which at least one processor is configured to identify an active backbone route table from a plurality of backbone route tables of the routing group and to forward the data packets to another satellite in the NGSO satellite system via at least one of in-orbit links and inter-orbit links, based on the identified active backbone route table, in order to implement the predetermined packet routing option for the data packets among the packet routing options.
9. The NGSO satellite system according to claim 8, wherein the at least one processor is configured to determine that the active backbone route table in the routing group has changed, and to select another backbone route table from among a plurality of backbone route tables in the routing group to become the active backbone route table.
10. The NGSO satellite system according to claim 9, wherein the at least one processor is configured to determine that the active backbone route table has changed upon determining that a given period has ended.
11. The NGSO satellite system according to claim 10, wherein the at least one processor is configured to identify a routing group for the data packet based on at least one of the user associated with the data packet, the group of users associated with the data packet, and the type of data in the data packet.
12. Each of the routing groups includes at least one user route table that identifies the user's connection status to a satellite within the NGSO satellite system. The NGSO satellite system according to any one of claims 8 to 11, wherein the at least one processor is configured to determine, based on the at least one user route table, whether the data packet is destined for at least one of a first user directly connected to the other satellite and a second user directly connected to the satellite, and, upon determining that the data packet is destined for the second user, transmit the data packet to the second user via a user link maintained by the satellite.
13. The NGSO satellite system according to claim 12, wherein the at least one processor is configured to update at least one of the following: a change in the connection status of the first user to the other satellite and a change in the connection status of the second user to the satellite.
14. The aforementioned packet routing options are: The aforementioned satellite maintains a communication link whose bandwidth is higher or lower than the threshold bandwidth. The aforementioned satellite maintains a communication link where the packet delay is greater than or less than the threshold packet delay. The aforementioned satellite maintains a communication link whose delivery reliability is higher or lower than the threshold delivery reliability. The aforementioned satellite maintains a communication link where the transmission cost is higher or lower than the threshold transmission cost. The NGSO satellite system according to claim 12, comprising at least two of the communication links maintained by the satellite that filter out other data packets that do not belong to the routing group assigned to the data packet.