US 11,870,590 B2
Selective retransmission of packets
Idan Burstein, Carmiel (IL); Roee Moyal, Yokneam Illit (IL); Ariel Shahar, Jerusalem (IL); Noam Bloch, Bat Shlomo (IL); and Ran Koren, Beijing (CN)
Assigned to MELLANOX TECHNOLOGIES, LTD., Yokneam (IL)
Filed by MELLANOX TECHNOLOGIES, LTD., Yokneam (IL)
Filed on Dec. 1, 2020, as Appl. No. 17/107,990.
Claims priority of application No. 202011302227.3 (CN), filed on Nov. 19, 2020.
Prior Publication US 2022/0158772 A1, May 19, 2022
Int. Cl. H04L 1/18 (2023.01); H04L 1/1829 (2023.01); G06F 15/173 (2006.01)
CPC H04L 1/1829 (2013.01) [G06F 15/17331 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method for data transfer, comprising:
transmitting a sequence of data packets, including at least a first packet and a second packet transmitted subsequently to the first packet, from a first computer over a network to a second computer in a single remote direct memory access (RDMA) data transfer transaction of a given type, selected from among first and second types of transactions,
wherein in the first type of transaction, the first computer specifies a memory range to which data from the packets are to be written by the second computer, whereas in the second type of transaction, the memory range is specified by a work request submitted from a host processor to a network interface controller (NIC) of the second computer;
upon receipt of the second packet at the second computer without previously having received the first packet, sending a negative acknowledgment (NAK) packet from the second computer over the network to the first computer, indicating that the first packet was not received;
selecting a retransmission mode responsively to the type of the transaction, such that in response to the transaction being of the first type, the first packet is retransmitted from the first computer to the second computer in response to the NAK packet without retransmitting the second packet, and in response to the transaction being of the second type, both the first and second packets are retransmitted from the first computer to the second computer in response to the NAK packet; and
in response to the NAK packet, retransmitting one or more of the data packets from the first computer to the second computer in accordance with the selected retransmission mode.