IP Library Granted Patent US 10,785,306
Granted Patent B1
US 10,785,306 · App. 16/809,273 · Granted Sep 22, 2020

Data transmission and network interface controller

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,785,306
App. No.
16/809,273
Granted
Sep 22, 2020
Kind
B1
Abstract

Implementations of this disclosure provide data transmission operations and network interface controllers. An example method performed by a first RDMA network interface controller includes obtaining m data packets from a host memory of a first host; sending the m data packets to a second RDMA network interface controller of a second host; backing up the m data packets to a network interface controller memory integrated into the first RDMA network interface controller; determining that the second RDMA network interface controller does not receive n data packets of the m data packets; and in response, obtaining the n data packets from the m data packets that have been backed up to the network interface controller memory integrated into the first RDMA network interface controller, and retransmitting the n data packets to the second RDMA network interface controller.

Claims (44)

1. A computer-implemented method, comprising:

obtaining, by a first RDMA network interface controller of a first host, m data packets from a host memory of the first host, m being a positive integer;

sending, by the first RDMA network interface controller, the m data packets to a second RDMA network interface controller of a second host;

backing up, by the first RDMA network interface controller, the m data packets to a network interface controller memory integrated into the first RDMA network interface controller;

determining, by the first RDMA network interface controller, that the second RDMA network interface controller does not receive n data packets of the m data packets, n being a positive integer; and

in response to determining that the second RDMA network interface controller does not receive n data packets of the m data packets:

obtaining, by the first RDMA network interface controller, the n data packets from the m data packets that have been backed up to the network interface controller memory integrated into the first RDMA network interface controller; and

retransmitting, by the first RDMA network interface controller, the n data packets that have been obtained by the first RDMA network interface controller from the m data packets that have been backed up to the network interface controller memory, to the second RDMA network interface controller.

2. The computer-implemented method of claim 1 , wherein the network interface controller memory integrated into the first RDMA network interface controller is a dynamic random access memory.

3. The computer-implemented method of claim 1 , wherein determining that the second RDMA network interface controller does not receive n data packets of the m data packets comprises determining that an acknowledgement (ACK) response for the n data packets has not been received from the second RDMA network interface controller within a predetermined duration.

4. The computer-implemented method of claim 3 , wherein determining that the acknowledgement (ACK) response for the n data packets has not been received from the second RDMA network interface controller within the predetermined duration comprises, for each data packet of the m data packets, starting a corresponding timer for the data packet after sending the data packet.

5. The computer-implemented method of claim 1 , wherein determining that the second RDMA network interface controller does not receive n data packets of the m data packets comprises determining that a negative acknowledgement (NACK) response for the n data packets has been received from the second RDMA network interface controller.

6. The computer-implemented method of claim 1 , further comprising:

in response to determining, by the first RDMA network interface controller, that the second RDMA network interface controller has received the m data packets, including the n data packets that have been retransmitted by the first RDMA network interface controller, deleting the m data packets from the network interface controller memory.

7. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:

obtaining, by a first RDMA network interface controller of a first host, m data packets from a host memory of the first host, m being a positive integer;

sending, by the first RDMA network interface controller, the m data packets to a second RDMA network interface controller of a second host;

backing up, by the first RDMA network interface controller, the m data packets to a network interface controller memory integrated into the first RDMA network interface controller;

determining, by the first RDMA network interface controller, that the second RDMA network interface controller does not receive n data packets of the m data packets, n being a positive integer; and

in response to determining that the second RDMA network interface controller does not receive n data packets of the m data packets:

obtaining, by the first RDMA network interface controller, the n data packets from the m data packets that have been backed up to the network interface controller memory integrated into the first RDMA network interface controller; and

retransmitting, by the first RDMA network interface controller, the n data packets that have been obtained by the first RDMA network interface controller from the m data packets that have been backed up to the network interface controller memory, to the second RDMA network interface controller.

8. The computer-readable medium of claim 7 , wherein the network interface controller memory integrated into the first RDMA network interface controller is a dynamic random access memory.

9. The computer-readable medium of claim 7 , wherein determining that the second RDMA network interface controller does not receive n data packets of the m data packets comprises determining that an acknowledgement (ACK) response for the n data packets has not been received from the second RDMA network interface controller within a predetermined duration.

10. The computer-readable medium of claim 9 , wherein determining that the acknowledgement (ACK) response for the n data packets has not been received from the second RDMA network interface controller within the predetermined duration comprises, for each data packet of the m data packets, starting a corresponding timer for the data packet after sending the data packet.

11. The computer-readable medium of claim 7 , wherein determining that the second RDMA network interface controller does not receive n data packets of the m data packets comprises determining that a negative acknowledgement (NACK) response for the n data packets has been received from the second RDMA network interface controller.

12. The computer-readable medium of claim 7 , the operations further comprising:

in response to determining, by the first RDMA network interface controller, that the second RDMA network interface controller has received the m data packets, including the n data packets that have been retransmitted by the first RDMA network interface controller, deleting the m data packets from the network interface controller memory.

13. A computer-implemented system, comprising:

one or more computers; and

one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform one or more operations comprising:

obtaining, by a first RDMA network interface controller of a first host, m data packets from a host memory of the first host, m being a positive integer;

sending, by the first RDMA network interface controller, the m data packets to a second RDMA network interface controller of a second host;

backing up, by the first RDMA network interface controller, the m data packets to a network interface controller memory integrated into the first RDMA network interface controller;

determining, by the first RDMA network interface controller, that the second RDMA network interface controller does not receive n data packets of the m data packets, n being a positive integer; and

in response to determining that the second RDMA network interface controller does not receive n data packets of the m data packets:

obtaining, by the first RDMA network interface controller, the n data packets from the m data packets that have been backed up to the network interface controller memory integrated into the first RDMA network interface controller; and

retransmitting, by the first RDMA network interface controller, the n data packets that have been obtained by the first RDMA network interface controller from the m data packets that have been backed up to the network interface controller memory, to the second RDMA network interface controller.

14. The computer-implemented system of claim 13 , wherein the network interface controller memory integrated into the first RDMA network interface controller is a dynamic random access memory.

15. The computer-implemented system of claim 13 , wherein determining that the second RDMA network interface controller does not receive n data packets of the m data packets comprises determining that an acknowledgement (ACK) response for the n data packets has not been received from the second RDMA network interface controller within a predetermined duration.

16. The computer-implemented system of claim 15 , wherein determining that the acknowledgement (ACK) response for the n data packets has not been received from the second RDMA network interface controller within the predetermined duration comprises, for each data packet of the m data packets, starting a corresponding timer for the data packet after sending the data packet.

17. The computer-implemented system of claim 13 , wherein determining that the second RDMA network interface controller does not receive n data packets of the m data packets comprises determining that a negative acknowledgement (NACK) response for the n data packets has been received from the second RDMA network interface controller.

18. The computer-implemented system of claim 13 , the operations further comprising:

in response to determining, by the first RDMA network interface controller, that the second RDMA network interface controller has received the m data packets, including the n data packets that have been retransmitted by the first RDMA network interface controller, deleting the m data packets from the network interface controller memory.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2020
From: ZOU, YINCHAO; WU, PENG; KONG, JINCAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 054855/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2020
From: LI, CHANGQING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052328/0557 →