US 12,425,357 B2
Communication apparatus generating and eliminating redundant data packets
Avi Urman, Yokneam (IL); Lior Narkis, Petah Tikva (IL); Gil Kremer, Nof Hagalil (IL); Saar Tarnopolsky, Haifa (IL); and Dotan David Levi, Kiryat Motzkin (IL)
Assigned to MELLANOX TECHNOLOGIES LTD., Yokneam (IL)
Filed by Mellanox Technologies Ltd., Yokneam (IL)
Filed on Aug. 23, 2021, as Appl. No. 17/409,625.
Application 17/409,625 is a continuation in part of application No. 16/693,302, filed on Nov. 24, 2019, granted, now 11,190,462.
Application 16/693,302 is a continuation in part of application No. 15/473,668, filed on Mar. 30, 2017, granted, now 10,516,710.
Claims priority of provisional application 62/457,919, filed on Feb. 12, 2017.
Prior Publication US 2021/0385169 A1, Dec. 9, 2021
Int. Cl. H04L 49/552 (2022.01); H04L 45/24 (2022.01); H04L 47/22 (2022.01); H04L 47/32 (2022.01); H04L 65/403 (2022.01); H04L 65/612 (2022.01); H04L 65/65 (2022.01); H04L 69/12 (2022.01); H04L 69/22 (2022.01)
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
OG exemplary drawing
 
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.