IP Library › Granted Patent US 11,770,344
Granted Patent B2
US 11,770,344 · App. 17/663,398 · Granted Sep 26, 2023

Reliable, out-of-order transmission of packets

Inventors: Leah Shalev (Zichron Yaakov, IL); Brian William Barrett (Seattle, WA); Nafea Bshara (San Jose, CA); Georgy Machulsky (San Jose, CA)
Assignee: Amazon Technologies, Inc.
H04L47/624G06F15/17331H04L1/1841H04L45/24H04L45/74H04L47/34H04L49/90H04L69/22H04L69/324H04L69/326
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 11,770,344
App. No.
17/663,398
Granted
Sep 26, 2023
Kind
B2
Abstract

Provided are systems and methods for reliable, out-of-order transmission of packets. In some implementations, provided is an apparatus configured to communicate with a network and a host device. The apparatus may receive out-of-order packets from a remote device. The apparatus may transmit selective-acknowledgements to the remote device such that remote device can retransmit certain packets. The out-of-order packets can be provided to software for re-ordering.

Claims (42)

1. A computing device, comprising:

a bus interface communicatively coupled with a local host device;

a network interface communicatively coupled with a network; and

an integrated circuit operable to:

receive a first packet via the network interface from a remote device;

receive a second packet that is out of sequence with the first packet via the network interface from the remote device;

transmit a selective-acknowledgment that includes sequence numbers of the first and second packets to the remote device;

receive a third packet via the network interface from the remote device, the third packet being retransmitted by the remote device in response to the selective-acknowledgment; and

transmit a set of out-of-order packets including the first, second, and third packets to the local host device via the bus interface to enable the local host device to perform re-ordering on the set of out-of-order packets.

2. The computing device of claim 1 , wherein the re-ordering is performed by a driver program associated with a user application.

3. The computing device of claim 1 , wherein the re-ordering is performed by a user application.

4. The computing device of claim 1 , wherein the remote device is operable to retransmit the third packet periodically until an acknowledgment for the third packet is received.

5. The computing device of claim 1 , wherein the second packet is out of sequence with the first packet by two or more packets.

6. The computing device of claim 5 , wherein the integrated circuit is operable to receive a fourth packet via the network interface from the remote device, the fourth packet being retransmitted by the remote device in response to the selective-acknowledgment.

7. The computing device of claim 5 , wherein the third packet is in sequence with the first packet, and wherein the integrated circuit is operable to transmit a selective-acknowledgment that includes sequence numbers of the third packet and the second packet to the remote device in response to receiving the third packet.

8. The computing device of claim 5 , wherein the third packet is out of sequence with the first packet, and wherein the integrated circuit is operable to transmit a selective-acknowledgment that includes sequence numbers of the first packet, the third packet, and the second packet to the remote device in response to receiving the third packet.

9. The computing device of claim 1 , wherein the integrated circuit is operable to:

receive a fourth packet via the network interface from the remote device;

determine that the fourth packet is not accepted; and

transmit a negative acknowledgment that includes a sequence number of the fourth packet to the remote device to indicate the fourth packet was not accepted.

10. The computing device of claim 9 , wherein a transport context at the remote device is operable to retransmit the fourth packet in response to the negative acknowledgment.

11. The computing device of claim 9 , wherein the negative acknowledgment is provided to a user application at the remote device to determine whether to retransmit the fourth packet.

12. A computer-implemented method comprising:

receiving a first packet via a network interface from a remote device;

receiving a second packet that is out of sequence with the first packet via the network interface from the remote device;

transmitting a selective-acknowledgment that includes sequence numbers of the first packet and the second packet to the remote device;

receiving a third packet via the network interface from the remote device, the third packet being retransmitted by the remote device in response to the selective-acknowledgment; and

transmitting a set of out-of-order packets including the first, second, and third packets to a local host device via a bus interface to enable the local host device to perform re-ordering on the set of out-of-order packets.

13. The computer-implemented method of claim 12 , wherein the re-ordering is performed by a driver program associated with a user application.

14. The computer-implemented method of claim 12 , wherein the re-ordering is performed by a user application.

15. The computer-implemented method of claim 12 , wherein the second packet is out of sequence with the first packet by two or more packets.

16. The computer-implemented method of claim 15 , further comprising:

receiving a fourth packet via the network interface from the remote device, the fourth packet being retransmitted by the remote device in response to the selective-acknowledgment.

17. The computer-implemented method of claim 15 , wherein the third packet is in sequence with the first packet, and wherein the method further comprises:

transmitting a selective-acknowledgment that includes sequence numbers of the third packet and the second packet to the remote device in response to receiving the third packet.

18. The computer-implemented method of claim 15 , wherein the third packet is out of sequence with the first packet, and wherein the method further comprises:

transmitting a selective-acknowledgment that includes sequence numbers of the first packet, the third packet, and the second packet to the remote device in response to receiving the third packet.

19. The computer-implemented method of claim 12 , further comprising:

receiving a fourth packet via the network interface from the remote device;

determining that the fourth packet is not accepted; and

transmitting a negative acknowledgment that includes a sequence number of the fourth packet to the remote device to indicate the fourth packet was not accepted.

20. The computer-implemented method of claim 19 , wherein the negative acknowledgment is provided to a user application at the remote device to determine whether to retransmit the fourth packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2022
From: SHALEV, LEAH; BARRETT, BRIAN WILLIAM; BSHARA, NAFEA; MACHULSKY, GEORGY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 059906/0582 →
Continuity (4)
Continuation 16864979 · May 1, 2020
Continuation 15990062 · May 25, 2018
Continuation 14983436 · Dec 29, 2015
Related Publication 20220278941A1 · Sep 1, 2022
Cited By (2)
US 12,368,790 US 12,549,480