Orbit aware network routing
A method of routing communication among nodes and systems of an interplanetary network on an ad-hoc basis is described herein. For example, the communication routing described herein may not be pre-determined or static, but rather determined dynamically on a periodic basis, as transmission conditions change, as nodes are added or removed from the interplanetary network, periodically, and/or the like. The interplanetary network may include one or more nodes that have static and/or dynamic states. A node can include any extraterrestrial object or communication relay. The interplanetary network may also include one or more ground stations, which can include communication equipment (e.g., antennas, radar, transmission towers, etc.) located on Earth. To enable the ad-hoc communication routing, a ground station system and/or another processing device can continuously or periodically obtain orbital parameters from one or more nodes in the interplanetary network and generate updated contact plans.
1. A method of routing communications from a first processing node to a final destination processing node within an evolving communication network that includes one or more nodes orbiting a planet, the method comprising:
receiving, at the first processing node of the communication network, an indication that a second processing node has been added to the communication network and, in combination with the first processing node and a set of one or more distributed processing nodes, forms a group of distributed processing nodes; and
based on receiving the indication or a time period passing, updating a contact plan, wherein the contact plan indicates a time-indexed list of communication opportunities between the distributed processing nodes of the group, wherein updating the contact plan comprises:
computing an availability of connections associated with the distributed processing nodes of the group based at least in part on an orbital trajectory and link budget associated with each distributed processing node of the group of distributed processing nodes,
constructing a plurality of paths between the distributed processing nodes of the group based at least in part on the computed availability of the connections, and
selecting, from the plurality of paths, a path from the first processing node through the group of distributed processing nodes to the final destination processing node, wherein the selected path is one of a path that has a highest reduction of a backlog of data to transmit from the first processing node to the final destination processing node or a path that has a highest average bandwidth between the first processing node and the final destination processing node, to thereby define an updated contact plan.
2. The method of claim 1 , further comprising receiving orbital parameters from each distributed processing node of the group of distributed processing nodes at a time after at least one of the distributed processing nodes in the group of distributed processing nodes has been launched into space, wherein the orbital parameters comprise the orbital trajectory and the link budget of the respective distributed processing node.
3. The method of claim 1 , wherein the first processing node stores the contact plan prior to receiving the indication that the second processing node has been added to the communication network.
4. The method of claim 3 , further comprising replacing the contact plan with the updated contact plan.
5. The method of claim 3 , further comprising modifying the contact plan based on the updated contact plan.
6. The method of claim 5 , wherein the updated contact plan comprises data indicating a change to the contact plan.
7. The method of claim 1 , wherein computing an availability of connections further comprises:
computing, for a first time period, a first availability of connections associated with the distributed processing nodes of the group; and
computing, for a second time period, a second availability of connections associated with the distributed processing nodes of the group, wherein the availability of connections comprises the first availability of connections and the second availability of connections.
8. The method of claim 1 , wherein constructing a plurality of paths further comprises constructing a first path from the first processing node through the group of distributed processing nodes to the first destination processing node by combining one or more computed available connections.
9. The method of claim 1 , wherein the contact plan comprises, for the first processing node, a start time and an end time during which the first processing node is available to communicate with a first distributed processing node in the set of the one or more distributed processing nodes.
10. The method of claim 1 , wherein the first processing node comprises one of a ground station located on a surface of Earth or a communication relay orbiting in space.
11. The method of claim 1 , wherein the final destination processing node comprises one of a ground station located on a surface of Earth or an extraterrestrial object located on a surface of a celestial body other than the Earth.
12. The method of claim 1 , wherein each of the plurality of paths is weighted based on a priority of data to be transmitted, and wherein selecting, from the plurality of paths, a path from the first processing node through the group of distributed processing nodes to the final destination processing node further comprises selecting the path based on the weighting.
13. A system of routing communications within an evolving communication network that includes one or more nodes orbiting a celestial body, the system comprising:
a first processing node of the communication network comprising a first network interface; and
a second processing node of the communication network comprising a processor and a second network interface, wherein the first processing node, the second processing node, and a set of one or more distributed processing nodes form a group of distributed processing nodes, the second processing node configured with computer-executable instructions that, when executed by the processor, cause the second processing node to:
obtain an indication that a change to the communication network has occurred;
based on obtaining the indication or a time period passing,
compute an availability of connections associated with the distributed processing nodes of the group based at least in part on orbital parameters associated with each distributed processing node of the group of distributed processing nodes,
construct a plurality of paths between the distributed processing nodes of the group based at least in part on the computed availability of the connections, and
select, from the plurality of paths, a path from the second processing node through at least one of the set of one or more distributed processing nodes to a final destination processing node, wherein the selected path is one of a path that reduces a backlog of data to transmit from the second processing node to the final destination processing node from a first number of messages to a second number of messages lower than the first number of messages or a path that has a highest average bandwidth between the second processing node and the final destination processing node; and
define an updated contact plan based on at least the selected path.
14. The system of claim 13 , wherein the computer-executable instructions, when executed, further cause the second processing node to obtain the orbital parameters from each distributed processing node of the group of distributed processing nodes at a time after at least one of the distributed processing nodes in the group of distributed processing nodes has been launched into space, wherein the orbital parameters comprise at least one of an orbital trajectory or a link budget of the respective distributed processing node.
15. The system of claim 13 , wherein the second processing node stores an existing contact plan prior to obtaining the indication that the change to the communication network has occurred.
16. The system of claim 15 , wherein the computer-executable instructions, when executed, further cause the second processing node to replace the existing contact plan with the updated contact plan.
17. The system of claim 15 , wherein the computer-executable instructions, when executed, further cause the second processing node to modify the existing contact plan based on the updated contact plan.
18. The system of claim 13 , wherein the change to the communication network comprises one of the first processing node being added to the communication network subsequent to the second processing node being launched into space and being part of the communication network, a third processing node being removed from the communication network, or the orbital parameters of the first processing node changing.
19. The system of claim 13 , wherein the computer-executable instructions, when executed, further cause the second processing node to:
compute, for a first time period, a first availability of connections associated with the distributed processing nodes of the group; and
compute, for a second time period, a second availability of connections associated with the distributed processing nodes of the group, wherein the availability of connections comprises the first availability of connections and the second availability of connections.
20. The system of claim 13 , wherein the updated contact plan comprises, for the second processing node, a start time and an end time during which the second processing node is available to communicate with a first distributed processing node in the set of the one or more distributed processing nodes.
21. The system of claim 13 , wherein each of the plurality of paths is weighted based on a priority of data to be transmitted, and wherein the computer-executable instructions, when executed, further cause the second processing node to select the path based on the weighting.
22. A non-transitory, computer-readable medium comprising computer-executable instructions for routing communications from a first processing node to a final destination processing node within an evolving communication network that includes one or more nodes orbiting a celestial body, wherein the computer-executable instructions, when executed by a computer system, cause the computer system to:
obtain, at the first processing node of the communication network, an indication that a change to the communication network has occurred, wherein the first processing node and a set of one or more distributed processing nodes form a group of distributed processing nodes; and
based on receiving the indication or a time period passing,
compute an availability of connections associated with the distributed processing nodes of the group based at least in part on orbital parameters associated with each distributed processing node of the group of distributed processing nodes,
construct a plurality of paths between the distributed processing nodes of the group based at least in part on the computed availability of the connections, and
select, from the plurality of paths, a path from the first processing node through the group of distributed processing nodes to the final destination processing node, wherein the selected path is one of a path that has a highest reduction of a backlog of data to transmit from the first processing node to the final destination processing node or a path that has a highest average bandwidth between the first processing node and the final destination processing node, to thereby define an updated contact plan.
23. The non-transitory, computer-readable medium of claim 22 , wherein each of the plurality of paths is weighted based on a priority of data to be transmitted, and wherein the computer-executable instructions, when executed, further cause the computer system to select the path based on the weighting.