Systems and methods for reducing data loss in satellite transmissions

Aspects of the disclosure describe methods and systems for transmitting data via a satellite to a ground node. In one exemplary aspect, a method comprises splitting, on a satellite, a data segment into a plurality of data chunks, wherein an amount of the data chunks equals a number of ground nodes that the data chunks will be transmitted to. For each respective data chunk, the method comprises determining whether the satellite has a stable connection with the respective ground node. When the satellite has the stable connection with the respective ground node, the method comprises transmitting, by the satellite, the respective data chunk to the respective ground node, and when the satellite does not have the stable connection with the respective ground node, the method comprises transmitting, by the satellite, the respective data chunk to a neighboring satellite for storage until the stable connection is established.

FIELD OF TECHNOLOGY

The present disclosure relates to the field of satellites, and, more specifically, to systems and methods for reducing data loss in satellite transmissions.

BACKGROUND

In recent years, the number of space satellites used in various fields has been growing rapidly. Along with state, military, and scientific satellites, satellites belonging to private companies are emerging. The cost of manufacturing, launching and maintaining satellites has also significantly reduced.

Recently, various types of small satellites have appeared such as mini-satellites, microsatellites, nanosatellites, CubeSats and PocketCubes. Their weight can be less than one kilogram, and their cost is only a few thousand dollars. Accordingly, their launch has become available to small organizations (e.g., universities, schools, individuals, etc.).

Satellites perform a wide variety of tasks including surveillance, intelligence gathering, industrial intelligence, wireless communication, Internet service delivery, etc. Most of these tasks are related to the collection, storage, and transmission of data. In this regard, the problem of the safety of such data is gaining in importance. First of all, the data backup and transmission from the satellites to the Earth is associated with the problems of potential losing valuable data.

For data transmission, the satellite must be connected to ground stations. There is a chain of ground stations on the ground, and the satellite takes turns sending data as it moves over the ground. With well-functioning communication channels, this should act as in cellular networks, but in reality there is a need for algorithms adapted for fast switching from one ground station to another, taking into account the possibility of signal loss, station unavailability, data transmission failure, and other problems leading to data loss.

SUMMARY

Aspects of the disclosure relate to the field of data storage. In particular, aspects of the disclosure describe methods and systems for transmitting data via a satellite to a ground node.

In one exemplary aspect, the method comprises splitting, on a satellite, a data segment into a plurality of data chunks, wherein an amount of the data chunks equals a number of ground nodes that the data chunks will be transmitted to. For each respective data chunk, the method comprises determining whether the satellite has a stable connection with the respective ground node. When the satellite has the stable connection with the respective ground node, the method comprises transmitting, by the satellite, the respective data chunk to the respective ground node, and when the satellite does not have the stable connection with the respective ground node, the method comprises transmitting, by the satellite, the respective data chunk to a neighboring satellite for storage until the stable connection is established.

In some aspects, when the stable connection is established, the method comprises requesting the respective data chunk from the neighboring satellite, receiving the respective data chunk, and transmitting the respective data chunk to the respective ground node.

In some aspects, determining whether the satellite has the stable connection with the respective ground node is based on a distance between the satellite and the respective ground node, wherein the distance changes based on a movement of the satellite and a rotation of an astronomical body where the respective ground node is located.

In some aspects, the neighboring satellite is further configured to transmit the respective data chunk to the respective ground node when a stable connection between the neighboring satellite and the respective ground node is established.

In some aspects, the method further comprises generating one or more redundancy chunks of the plurality of data chunks in accordance with an erasure encoding algorithm.

In some aspects, when the satellite has the stable connection with the respective ground node, the method comprises determining whether the respective ground node is to receive at least one of the redundancy chunks, and in response to determining that the respective ground node is to receive at least one of the redundancy chunks, transmitting at least one of the redundancy chunks to the respective ground node.

In some aspects, when the satellite does not have the stable connection with the respective ground node, the method comprises transmitting at least one of the redundancy chunks to the neighboring satellite.

In some aspects, an amount of the redundancy chunks is equal to an amount of neighboring satellites, wherein the redundancy chunks are distributed to the neighboring satellites.

In some aspects, the stable connection is a connection state wherein a set amount of data within an allotted time period is transferable without exceeding a data loss threshold during transmission.

It should be noted that the methods described above may be implemented in a system comprising a hardware processor. Alternatively, the methods may be implemented using computer executable instructions of a non-transitory computer readable medium.

DETAILED DESCRIPTION

FIG.1is a block diagram illustrating system100for reducing data loss in satellite transmissions.FIG.1depicts a plurality of satellites102, which may be orbiting an astronomical body such as a planet or a moon. Each satellite102a-emay be configured to communicate with a ground node104(used interchangeably with ground station104). Each node/station comprises an antenna configured to receive and transmit signals to one or more satellites102. Each node/station further comprises a storage device (e.g., a server) that is configured to store data received from a different node, a satellite, a computing device (e.g., a smart phone, computer desktop, laptop, etc.). In some aspects, satellites102a-eare all connected in a peer-to-peer network.

Because satellite signals are sent over long distances and comprise low-power transmissions, they are prone to interference caused by weather, cosmic radiation, and electromagnetic noise. This can cause data loss by signal errors or signal gaps. In addition, a satellite may move too far away from a particular ground node and lose connection with the node for a brief period of time. This increase in distance may be due to the rotation of the astronomical body, movement of the satellite, or movement of the astronomical body itself.

To reduce the data loss in satellite transmissions, the present disclosure describes system100that involves splitting data into multiple chunks. More specifically, suppose that satellite102acomprises a data segment that is to be transmitted to nodes1-7. Satellite102amay split the data segment into a plurality of data chunks—particularly in an amount that equals the number of ground nodes that the data chunks will be transmitted to. For example, a data segment such as a video feed may be split into 7 data chunks (e.g., 7 portions of the video feed).

For each respective data chunk, satellite102amay determine whether it has a stable connection with a respective ground node. For example, satellite102amay desire to send a particular data chunk to node1. As depicted inFIG.1, at its current position, satellite102ais capable of communicating with nodes1-3(based on the arrows). It is possible that a different satellite (e.g.,102b) is capable of communicating with more nodes (e.g., nodes1-5) based on its position relative to the astronomical body where nodes1-5are located. It is also possible that a different satellite (e.g.,102e) is capable of communicating with fewer nodes. Based on whether there is a stable connection with a respective ground node, satellite102adetermines whether to transmit the respective data chunk to the respective ground node or transmit the data chunk to a different neighboring satellite.

In some aspects, a stable connection refers to a connection state in which two or more entities can exchange data uninterrupted (e.g., by disconnections and congestion) at a threshold speed (e.g., at least 4 Mbps). In some aspects, the stable connection is a connection state wherein a set amount of data (e.g., 5 GB) within an allotted time period (e.g., 5 minutes) is transferable without exceeding a data loss threshold (e.g., 0.5 Mb lost per minute) during transmission. In some aspects, a stable connection refers to a connection state in which a determined quality of service (QoS) is greater than a threshold QoS. The determined QoS may be a function of one or more parameters including bandwidth, throughput, bit rate, latency, jitter, and data loss. In this case, the bandwidth is the number of bits per second that a communication link between a respective satellite and a neighboring satellite or ground node can send or receive. The bit rate represents the maximum amount of bits per second that can be transmit/received by the satellite over the communication link. The throughput is the actual amount of data being sent or received over a time period on the communication link. The latency may be a round-trip latency from the satellite to a particular destination (e.g., a ground node). For example, a radio signal takes about 120 milliseconds to reach a satellite that is geostationary and another 120 milliseconds to reach a node (e.g., ground base station). Any time greater than this average time is part of latency. Jitter is a variation in the delay of received packets by either the satellite or the ground node. Data loss may represent an amount of packets lost in a given time period. A given satellite may calculate each of these parameters for a communication link over a period of time with a ground node/neighboring satellite. The satellite may then combine the parameters in accordance with a QoS function to determine a QoS score. The score may be a quantitative value (e.g., a fraction, ratio, percentage, etc.). Suppose that the determine QoS score is 78% for a communication link between the satellite and a ground node. If the threshold QoS is 75%, the satellite will determine that the stable connection exists.

Referring toFIG.1, when satellite102ahas a stable connection with node1(i.e., the node that the data chunk is to be sent to), satellite102amay transmit the respective data chunk to node1. However, when satellite102adoes not have a stable connection with node1, satellite102amay transmit the respective data chunk to a neighboring satellite (e.g., satellite102b) for storage until the stable connection is established. To assess the stability of a connection, the satellite may send test data (e.g., packets) to the ground node/neighboring satellite.

As mentioned previously, determining whether a satellite has a stable connection with a respective ground node is based on at least a distance between the satellite and the respective ground node. For example, while at its current position depicted inFIG.1, satellite102amay be unable to communicate with node4because the distance between the two entities prevents a connection—let alone a stable one. As also mentioned previously, this distance changes based on a movement of the satellite and a rotation of an astronomical body where the respective ground node is located. It is possible, for example, that a stable connection may not be established between satellite102aand node4until satellite102areaches the position that satellite102bis depicted as being in.

Accordingly, unlike node1, which may be sent the data chunk, a data chunk intended for node4may be sent to a neighboring satellite (e.g.,102b). The reason this is performed is to generate a copy of the data chunk. If for some reason the data chunk is lost at satellite102abefore a connection can be established between node4and satellite102a, a copy still exists at the neighboring satellite102b.

In some aspects, subsequent to transmitting a data chunk to a neighboring satellite (e.g.,102b), the neighboring satellite is further configured to transmit the respective data chunk to the respective ground node (e.g., node4) when a stable connection between the neighboring satellite and the respective ground node is established. In other words, satellite102amay be unable to connect to node4for a period of time. If within that period of time satellite102bis able to establish a stable connection with node4, satellite102bmay proceed with transmitting the received data chunk to node4. Satellite102bmay subsequently send a confirmation message to satellite102aindicating that the data chunk has been successfully transmitted to node4. The benefit of this communication is that some data may have time constraints, which require the data to be transmitted to the ground nodes within a set amount of time. The satellite may determine a time it will take to establish a stable connection with a given respective ground node. For example, the satellite may calculate, based on its own movement, the movement of the astronomical body, and GPS coordinates of the ground node, an amount of time before the satellite enters a region within which a stable connection can potentially be established. If the amount of time is greater than the set amount of time within which the data needs to be transmitted, the satellite may transmit the data to a neighboring satellite that can establish the stable connection and include instructions to transmit the data to the intended destination (e.g., node4). In some aspects, if no neighboring satellite can establish the stable connection with the ground node, the satellite may determine a path (either via a plurality of ground nodes or a plurality of satellites or both) through which the data can be transmitted, until it reaches the intended destination via network hops.

In terms of estimating when a stable connection will be formed with a node, such as node4, satellite102amay determine a distance between satellite102aand node4. For example, satellite102amay retrieve GPS coordinates of node4from a locations database, and determine a current location of satellite102a. Based on the speed at which the astronomical body is rotating and its direction (either toward or away from satellite102a) and a speed of satellite102a, satellite102amay estimate a connection establishment time (e.g., 2 hours, 4 minutes). Until a stable connection is formed, a satellite cannot exchange data with the ground node. Accordingly, the satellite may rely on neighboring satellites for temporary storage.

In some aspects, when satellite102atransmits a data chunk to satellite102b, it may delete its local copy of the data chunk. Then, when the stable connection is established with node4, satellite102amay request the respective data chunk from the neighboring satellite102b. Subsequent to receiving the respective data chunk from satellite102b, satellite102amay transmit the respective data chunk to the respective ground node4.

To avoid data loss during transmission to ground nodes/stations104, in some aspects, satellites102may employ redundancy algorithms such as erasure coding schemes (e.g., N−K scheme). In particular, data is transmitted with redundancy, so that data loss in the absence of communication with the receiving ground station can be compensated.

For example, satellite102amay split each data segment into N chunks, which corresponds to the number of ground stations to which this data is sent (data backup copies). This data may be sent to storage nodes during K data transmission sessions such that K=N+M. In this case, N is the number of data chunks and M is the number of duplicate sessions. For example, there may be 5 chunks of data and a user may desire to store them with +2 chunks redundancy. This results in 7 transmission sessions. In some aspects, the additional two pieces of data are parity codes in which linear combinations of the 5 chunks are represented. Thus, if one chunk is lost, the parity codes can be used to retrieve the lost chunk.

Because communication with ground stations can be lost (for example, when moving from the coverage area of one station to the coverage area of the next), a peer-to-peer network can be used as an additional means of storing transmitted data.

InFIG.1, a data segment may be split into 7 chunks with an additional 3 chunks for redundancy. When a satellite (e.g., satellite102a) has a stable connection with the respective ground node (e.g., node1), the satellite may determine whether the respective ground node is to receive at least one of the redundancy chunks. In response to determining that the respective ground node is to receive at least one of the redundancy chunks, the satellite may transmit at least one of the redundancy chunks to the respective ground node. For example, satellite102amay transmit a redundancy chunk to node1.

When the satellite (e.g., satellite102a) does not have the stable connection with a respective ground node (e.g., node4), the satellite may transmit at least one of the redundancy chunks to the neighboring satellite (e.g.,102b).

In some aspects, the amount of the redundancy chunks is equal to an amount of neighboring satellites and the redundancy chunks are distributed to the neighboring satellites. For example, rather than transmitting the redundancy chunks to ground nodes, a satellite102amay identify neighboring satellites (e.g.,102b-e) and generate4redundancy chunks. Each redundancy chunk may then be transmitted to the neighboring satellites.

FIG.2is a diagram200illustrating satellites communicating with ground nodes on a rotating astronomical body. In some cases, a geostationary orbit is associated with satellites. However, as different types of satellites that are smaller and abundant are launched into space, the orbit of satellites may not be geostationary. Instead, there may be greater flexibility to move independent of the astronomical body's rotation. For example, inFIG.2, satellite202and satellite210may not have geostationary orbit. Suppose that astronomical body204is a moon that is rotating clockwise. Satellites202and210may be CubeSats that are moving counter clockwise. Accordingly, the distance between satellite202and node206may increase over time. Likewise the distance between satellite210and node208may increase over time.

Satellite202may transmit a data chunk to node206over a given communication link (depicted as a solid line) and may intend to transmit another data chunk to node208. The communication link between satellite202and node208is represented by a dashed line. This signifies that the communication is instable between the two entities. For example, the QoS over the communication link may be lower than a threshold QoS. Satellite202may determine an amount of time it will take to establish a stable connection with node208based on the movement of body204and satellite202. Satellite202may further determine whether the amount of time is less than a required time for storage (a deadline by which the data chunks need to be transmitted to the nodes on body204). If the amount of time is less than the required time (i.e., the satellite will reach the node in time), satellite202may wait for the stable connection to be established with node208.

However, if the amount of time is greater than the required time, satellite202may transmit the data chunk to be transmitted to node208, to a neighboring satellite. Satellite202may be configured to transmit a discovery message and identify satellites that respond to the discovery message. In the discovery message, the satellite may query a relative location and movement trajectory of the satellite. Suppose that satellite210responds to the discovery message and provides the requested information. Satellite202may determine whether satellite210already has a stable connection established with node208or whether satellite210will establish the stable connection before satellite202will. If the satellite210already has established the connection or will establish the connection accordingly, satellite202transmits the data chunk to satellite210and further transmits instructions to transmit the data chunk to node208. In some aspects, satellite202may encrypt the data chunk (e.g., with a public key) so that satellite210cannot access the contents of the data chunk. Node208may then decrypt the encrypted data chunk received from satellite210(e.g., with a private key).

InFIG.2, satellite202has established a stable connection with node206. Because both entities are moving farther apart, the stable connection will end within a time period. In some aspects, satellite202may determine an amount of time that the stable connection will exist based on the movements of satellite202and body204. Satellite202may maintain a database, for example, in which each node is associated with a stable connection region. A stable connection region may be a region in space within which a stable connection can be established. If a satellite is not within the region, the stable connection is not possible. Accordingly, satellite202may determine, specifically, an amount of time that satellite202will spend in that region based on the movements mentioned above. Suppose that the time it takes to transmit a data chunk is 30 seconds and that satellite202determines that it will exit the stable connection region in 10 seconds. In response to determining that the transmission time is greater than the time of stable connection, satellite202may split the data chunk into a first and second portion. The first portion of the data chunk can be transmitted within the time of stable connection. Accordingly, satellite202transmits the first portion to node206. Satellite202transmits the second portion to satellite210(in response to confirming that satellite210has established a stable connection with node206and will state within the stable connection region for enough time to transmit the second portion).

FIG.3illustrates a flow diagram of method300for performing satellite transmissions. At302, a satellite splits a data segment into a plurality of data chunks, wherein an amount of the data chunks equals a number of ground nodes that the data chunks will be transmitted to. At304, the satellite identifies a data chunk (i). At306, the satellite determines a ground node that data chunk (i) will be transmitted to. At308, the satellite determines whether there is a stable connection between the satellite and the ground node. In response to determining that there is, at310, the satellite transmits the data chunk (i) to the ground node. In response to determining that there is no stable connection, at312, the satellite transmits the data chunk (i) to a neighboring satellite.

FIG.4is a block diagram illustrating a computer system20on which aspects of systems and methods for reducing data loss in satellite transmissions may be implemented in accordance with an exemplary aspect. The computer system20can be in the form of multiple computing devices, or in the form of a single computing device, for example, a desktop computer, a notebook computer, a laptop computer, a mobile computing device, a smart phone, a tablet computer, a server, a mainframe, an embedded device, and other forms of computing devices.