Background
Satellite communications are constantly subjected to constrained and intermittent network connections. To update software, the satellite must be within a small window where communication is intermittent and bandwidth is low. Uploaded software typically uses Error Detection and Correction (EDAC) to ensure data integrity. When the transmitted data is corrupted beyond EDAC repair, full data packages need to be re-uploaded.
Approach
Through this research effort, a solution to data corruption was tested using a network connection to an Amazon Web Services (AWS) Snowcone onboard the International Space Station (ISS) and a ground control terminal. This method identifies the corrupted bytes within a data file and creates a corresponding micropatch. The network communication between the server in the ISS and the ground control client was developed using micropatching software as a service. Using this service, two algorithms were evaluated in comparison to the full file transfer of a data file, double breakpoint search (DBS), and recursive search (RS). For benchmarking purposes, the tests were first performed in a controlled lab environment closely resembling the network and hardware capabilities to be performed for the ISS demonstration.
Accomplishments
The demonstration on the ISS using the micropatching service proved to reduce the time and number of uplink messages for software updates. The DBS can correct multiple types of errors, such as modifications, insertions, and deletions. The DBS was able to correct 100 MB files in 25% of the runtime compared to retransmission of the file. The much faster RS can correct 5 MB files at 33% of runtime compared to retransmission of the file, but can only correct modified bytes.
![Secure micropatching process](https://www.swri.org/sites/default/files/106347-fig1-secure-micropatching-process-945x633.jpg)
Figure 1: After the critical data file is sent through the TDRS network to the target device, the secure micropatching process is able to detect perturbations in the received file. It then requests the corrupted bits to be resent by the original data server and uses those to correct the data file.