IP Library Granted Patent US 11,671,518
Granted Patent B2
US 11,671,518 · App. 17/569,046 · Granted Jun 6, 2023

Adaptive session reliability over multiple transports

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,671,518
App. No.
17/569,046
Filed
Jan 5, 2022
Granted
Jun 6, 2023
Kind
B2
Art Unit
2457
USPC
709/225
Abstract

Methods, systems, and computer-readable media for providing reliable switching between different transport protocols (e.g., TCP and UDP) are presented herein. In some embodiments, a computing platform may stop transmission over a transport protocol. Subsequently, the computing platform may synchronize buffers between a client and a host. For example, the buffer may include acknowledgments for undelivered reliable packets between the client and the host. Next, the computing platform may resume transmission over a different transport protocol. In some embodiments, when establishing an initial connection between a client and a host, connections may be attempted in parallel over multiple transport protocols. After a connection over a first transport protocol is established, if a connection is later established over a second transport protocol, the connection may be transitioned to the second transport protocol. Also, ticketing semantics may be preserved in the switch between the different transport protocols.

Claims (45)

1. A method comprising:

enabling, by a computing device, a transmission of a data packet using an unreliable transport protocol, the computing device to facilitate data communications between a client device and a server;

issuing a ticket corresponding to the data packet, the ticket being accessible to one or more applications being executed by the computing device; and

preserving ticketing semantics between the unreliable transport protocol and a reliable transport protocol by

mapping, to preserve ticketing semantics between the unreliable transport protocol and a reliable transport protocol, a state of the ticket to an acknowledgment state of the transmission of the data packet using the unreliable transport protocol, and

updating the ticket based on the mapping.

2. The method of claim 1 , wherein mapping the state of the ticket is based on acknowledgment state of a custom data-transmission protocol different from the unreliable transport protocol.

3. The method of claim 1 , wherein the acknowledgement state of the transmission of the data packet is one of unsent, unknown, delivered, or lost.

4. The method of claim 1 further comprising:

returning a default state to the one or more applications in response to a request for the state of the ticket.

5. The method of claim 1 further comprising:

sending, using the unreliable transport protocol, the data packet over a first connection, wherein a first stack associated with the unreliable transport protocol includes a ticket layer that comprises first status information regarding transmission of first packets sent using the unreliable transport protocol; and

maintaining a second stack for a second connection over which data is sent using the reliable transport protocol, the second stack including a ticket emulation layer that comprises second status information regarding transmission of second packets sent using the reliable transport protocol.

6. The method of claim 5 further comprising:

receiving, from a virtual channel, a request for a status of transmission of a particular packet;

determining, from the ticket layer or the ticket emulation layer, the status of the transmission of the particular packet; and

returning the status of the transmission of the particular packet.

7. The method of claim 6 , wherein the virtual channel is an enlightened virtual channel, and wherein the method further comprises:

based on the status of the transmission of the particular packet, determining whether to retransmit the particular packet, transmit a new superseding packet, or do nothing.

8. The method of claim 6 , wherein the request for the status of the transmission of the particular packet is directed to a first of the ticket layer or the ticket emulation layer, and the status of the transmission of the particular packet is determined from a second of the ticket layer or the ticket emulation layer.

9. The method of claim 5 further comprising:

during the transmission of the second packets over the second connection using the reliable transport protocol, determining a break in the second connection;

resuming transmission of the second packets via the first connection using the unreliable transport protocol; and

transferring ticket information about the transmission of the second packets from the ticket emulation layer to the ticket layer.

10. An apparatus comprising:

one or more processors; and

memory storing executable instructions that, when executed, cause the apparatus to:

enable a transmission of a data packet using an unreliable transport protocol, the apparatus to facilitate data communications between a client device and a server;

issue a ticket corresponding to the data packet, the ticket being accessible to one or more applications being executed by the apparatus; and

preserve ticketing semantics between the unreliable transport protocol and a reliable transport protocol by

mapping a state of the ticket to an acknowledgment state of the transmission of the data packet using the unreliable transport protocol, and

updating the ticket based on the mapping.

11. The apparatus of claim 10 , wherein the executable instructions, when executed by the at least one processor, cause the apparatus to map the state of the ticket based on an acknowledgment state of a custom data-transmission protocol different from the unreliable transport protocol.

12. The apparatus of claim 10 , wherein the executable instructions, when executed by at least one processor, cause the apparatus to:

send the data packet over a first connection using the unreliable transport protocol, wherein a first stack associated with the unreliable protocol includes a ticket layer that comprises first status information regarding transmission of first packets sent using the unreliable protocol; and

maintain a second stack for a second connection using the reliable transport protocol, wherein the second stack includes a ticket emulation layer that comprises second status information regarding transmission of second packets sent using the reliable protocol.

13. The apparatus of claim 12 , wherein the executable instructions, when executed by at least one processor, cause the apparatus to:

receive, from a virtual channel, a request for a status of transmission of a particular packet;

determine, from the ticket layer or the ticket emulation layer, the status of the transmission of the particular packet; and

return the status of the transmission of the particular packet.

14. The apparatus of claim 13 , wherein the request for the status of the transmission of the particular packet is directed to a first of the ticket layer or the ticket emulation layer, and the status of the transmission of the particular packet is determined from a second of the ticket layer or the ticket emulation layer.

15. The apparatus of claim 12 , wherein the executable instructions, when executed by the at least one processor, cause the apparatus to:

during the transmission of the second packets over the second connection using the reliable transport protocol, determine a break in the second connection;

resume transmission of the second packets via the first connection using the unreliable transport protocol; and

transfer ticket information about the transmission of the second packets from the ticket emulation layer to the ticket layer.