IP Library › Granted Patent US 10,461,892
Granted Patent B2
US 10,461,892 · App. 15/374,351 · Granted Oct 29, 2019

Low latency communications

Inventors: Kurt Alan Shoens (Los Altos, CA); Peter K. Craft (San Francisco, CA)
Assignee: Oracle International Corporation
H04L1/08H04L43/0829H04L69/163H04L47/34
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,461,892
App. No.
15/374,351
Granted
Oct 29, 2019
Kind
B2
Abstract

Systems and methods for reducing communication latency are provided. A communication session with a remote device is initiated. One or more message packets are transmitted to the remote device. Subsequently, it is determined whether any additional message packet is scheduled to be transmitted to the remote device. In the event that no additional message packet is scheduled to be sent to the remote device, a loss detection packet is appended to a last message packet. The last message packet and the loss detection packet are transmitted to the remote device. It is further determined whether the last message packet was successfully received by the remote device based on receipt of an acknowledgment message. In the event that the last message packet was not successfully transmitted, a retransmit of the last message packet is executed.

Claims (44)

1. A method, comprising:

initiating a communication session with a remote device;

transmitting a plurality of message packets to the remote device;

determining whether any additional message packet is scheduled to be transmitted to the remote device;

appending, based on the determining, two or more loss detection packets to a last message packet and transmitting the last message packet and the loss detection packets to the remote device, wherein the lost detection packets comprise transmission control protocol/internet protocol (TCP/IP) layer lost detection packets;

determining whether the last message packet was successfully received by the remote device based on receiving one or more acknowledgment messages; and

executing a retransmit of the last message packet when the last message packet was not successfully received, wherein it is determined that the last message packet was not successfully received when at least three acknowledgment messages that identify a message immediately previous to the last message packet are received.

2. The method according to claim 1 , wherein the retransmit is executed using TCP/IP fast retransmit based on the received at least three acknowledgment messages that identify the message immediately previous to the last message and the last message packet is retransmitted within approximately 100 ms of its previous transmission.

3. The method according to claim 1 , wherein the communication session utilizes one of the following communication protocols: TCP/IP, RDMA, iSCSI, NVMe over fabrics, RDMA over fabrics, InfiniBand, RoCE, or iWARP.

4. The method according to claim 1 , wherein the at least three acknowledgment messages identify the message immediately previous to the last message packet based on packet sequence numbers.

5. The method according to claim 1 , wherein the loss detection packets comprise one-byte packets.

6. The method according to claim 1 , wherein the transmitted last message packet is dropped such that the remote device fails to successfully receive the last message packet.

7. The method according to claim 6 , wherein the at least three acknowledgment messages that identify the message immediately previous to the last message packet indicate that the transmitted last message packet was dropped.

8. The method according to claim 1 , wherein

the transmitted message packets, loss detection packets, and received acknowledgment messages are communicated over a TCP socket, and

the determining whether any additional message packet is scheduled to be transmitted to the remote device comprises determining whether any additional protocol data unit (PDU) is scheduled to be transmitted to the remote device.

9. The method according to claim 1 , wherein the two or more loss detection packets are not appended to message packets of the transmission previous to the last message packet.

10. A non-transitory computer readable storage medium storing one or more programs configured to be executed by a processor, the one or more programs comprising instructions for:

initiating a communication session with a remote device;

transmitting a plurality of message packets to the remote device;

determining whether any additional message packet is scheduled to be transmitted to the remote device;

appending, based on the determining, two or more loss detection packets to a last message packet and transmitting the last message packet and the loss detection packets to the remote device, wherein the lost detection packets comprise transmission control protocol/internet protocol (TCP/IP) layer lost detection packets;

determining whether the last message packet was successfully received by the remote device based on receiving one or more acknowledgment messages; and

executing a retransmit of the last message packet when the last message packet was not successfully received, wherein it is determined that the last message packet was not successfully received when at least three acknowledgment messages identify a message immediately previous to the last message packet are received.

11. The non-transitory computer readable storage medium according to claim 10 , wherein the retransmit is executed using TCP/IP fast retransmit based on the received at least three acknowledgment messages that identify the message immediately previous to the last message, and the last message packet is retransmitted within approximately 100 ms of its previous transmission.

12. The non-transitory computer readable storage medium according to claim 10 , wherein the communication session utilizes one of the following communication protocols: TCP/IP, RDMA, iSCSI, NVMe over fabrics, RDMA over fabrics, InfiniBand, RoCE, or iWARP.

13. The non-transitory computer readable storage medium according to claim 10 , wherein the at least three acknowledgment messages identify the message immediately previous to the last message packet based on packet sequence numbers.

14. The non-transitory computer readable storage medium according to claim 10 , wherein the loss detection packets comprise one-byte packets.

15. A system, comprising:

a processor; and

a memory storing one or more programs for execution by the processor, the one or more programs including instructions for:

initiating a communication session with a remote device;

transmitting a plurality of message packets to the remote device;

determining whether any additional message packet is scheduled to be transmitted to the remote device;

appending, based on the determining, two or more loss detection packets to a last message packet and transmitting the last message packet and the loss detection packets to the remote device, wherein the lost detection packets comprise transmission control protocol/internet protocol (TCP/IP) layer lost detection packets;

determining whether the last message packet was successfully received by the remote device based on receiving one or more acknowledgment messages; and

executing a retransmit of the last message packet when the last message packet was not successfully received, wherein it is determined that the last message packet was not successfully received when at least three acknowledgment messages that identify a message immediately previous to the last message packet are received.

16. The system according to claim 15 , wherein the retransmit is executed using TCP/IP fast retransmit based on the received at least three acknowledgment messages that identify the message immediately previous to the last message.

17. The system according to claim 16 , wherein the last message packet is retransmitted within approximately 100 ms of its previous transmission.

18. The system according to claim 15 , wherein,

the transmitted last message packet is dropped such that the remote device fails to successfully receive the last message packet, and

the at least three acknowledgment messages that identify the message immediately previous to the last message packet indicate that the transmitted last message packet was dropped.

19. The non-transitory computer readable storage medium according to claim 10 , wherein the transmitted last message packet is dropped such that the remote device fails to successfully receive the last message packet.

20. The non-transitory computer readable storage medium according to claim 19 , wherein the at least three acknowledgment messages that identify the message immediately previous to the last message packet indicate that the transmitted last message packet was dropped.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2016
From: SHOENS, KURT ALAN; CRAFT, PETER K.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 040700/0852 →
Continuity (1)
Related Publication 20180167168A1 · Jun 14, 2018