A computer program product stored on a non-transitory computer readable medium of a free-space optical (FSO) retransmission device, the non-transitory computer readable medium storing program instructions thereon, the FSO retransmission device comprising a memory bank partitioned into a source buffer indexed by segment identifications (IDs), an interface in communication with an optical terminal and an Ethernet network, and a programmable circuit,
- wherein the program instructions executable by at least the programmable circuit to cause the programmable circuit to execute data process operations comprising:
- receiving data from the Ethernet network;
- generating a FSO segment comprising the data received from the Ethernet network and a segment ID;
- generating and transmitting an outgoing FSO frame to the optical terminal, the outgoing FSO frame comprising the outgoing FSO segment;
- and
- storing the outgoing FSO segment in the source buffer until a corresponding acknowledgement is received in an inbound FSO frame from the optical terminal.