| CPC H04L 49/552 (2013.01) [H04L 45/24 (2013.01); H04L 47/225 (2013.01); H04L 47/32 (2013.01); H04L 65/403 (2013.01); H04L 65/612 (2022.05); H04L 65/65 (2022.05); H04L 69/12 (2013.01); H04L 69/22 (2013.01)] | 41 Claims |

|
1. A communication apparatus comprising:
at least one connection to host memory of a host computing system comprising the communication apparatus, and at least one host processor;
a network interface to receive a plurality of packets for transmitting at least a message, each of the plurality of packets comprising a packet identifier of a plurality of packet identifiers and at least one payload; and
packet processing circuitry to:
order at least a portion of the plurality of packets received in a particular stream within a sliding window;
discard any late packets received in the particular stream outside the sliding window;
maintain a bit vector comprising bits corresponding to the plurality of packet identifiers and indicating which of the plurality of packet identifiers have been received in at least one of the plurality of packets, a particular one of the bits to indicate that a corresponding packet identifier has been received if the particular bit is set;
detect as one or more redundant packets any of the plurality of packets comprising a received packet identifier corresponding to a bit in the bit vector that is set,
drop the one or more redundant packets to prevent communication of the one or more redundant packets over the at least one connection,
receive a base address within the host memory from the at least one host processor,
store a reconstructed version of the message in the host memory by storing each remaining packet in a set of remaining packets in the host memory at a location determined based at least in part on the base address, and the packet identifier of the remaining packet; and
notify the host computing system after the reconstructed version of the message has been stored in the host memory.
|