US 11,811,738 B2
Unidirectional gateway mediated multiplexing of concurrent data message streams
John Curry, New River, AZ (US); Tzvetan Chaliavski, Arlington, VA (US); and Cosmin Banciu, Raleigh, NC (US)
Assigned to OPSWAT Inc., Tampa, FL (US)
Filed by OPSWAT Inc., Tampa, FL (US)
Filed on Feb. 16, 2022, as Appl. No. 17/651,387.
Application 17/651,387 is a continuation in part of application No. PCT/US2021/034815, filed on May 28, 2021.
Claims priority of provisional application 63/032,966, filed on Jun. 1, 2020.
Prior Publication US 2022/0174047 A1, Jun. 2, 2022
Int. Cl. H04L 9/40 (2022.01); H04L 1/1607 (2023.01); H04L 12/46 (2006.01); G06F 21/53 (2013.01)
CPC H04L 63/0281 (2013.01) [G06F 21/53 (2013.01); H04L 1/1621 (2013.01); H04L 12/46 (2013.01); H04L 63/0209 (2013.01); H04L 63/105 (2013.01); G06F 2221/034 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by a processor in a trusted domain, a first request having a plurality of messages for a compute device in an untrusted domain;
assigning, by the processor, a memory location having a plurality of data segments and a plurality of status segments associated with each message of the plurality of messages, the memory location being accessible by an untrusted side network interface card of the compute device in the untrusted domain;
transmitting, by the processor, a first message of the plurality of messages to a first data segment of the plurality of data segments of the memory location;
retrieving, by the processor, a first value associated with the first message of the plurality of messages from a first status segment of the plurality of status segments of the memory location;
determining, by the processor, whether the first value indicates that the first message of the plurality of messages has been received in the first data segment of the plurality of data segments of the memory location;
storing, by the processor, a first representation of a successful data transmission when the first value indicates that the first message of the plurality of messages has been received in the first data segment of the plurality of data segments of the memory location;
transmitting, by the processor, a second message of the plurality of messages to a second data segment of the plurality of data segments of the memory location;
retrieving, by the processor, a second value associated with the second message of the plurality of messages from a second status segment of the plurality of status segments of the memory location;
determining, by the processor, whether the second value indicates that the second message of the plurality of messages has been received in the second data segment of the plurality of data segments of the memory location; and
storing, by the processor, a second representation of the successful data transmission when the second value indicates that the second message of the plurality of messages has been received in the second data segment of the plurality of data segments of the memory location.