# US 2019/0173789 A1 · Connectionless reliable transport

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0173789 A1
- Document ID: US20190173789A1
- Status: Published application
- Kind: A1
- Application number: 16/204,998
- Filed: 2018-11-29
- Published: 2019-06-06
- Earliest claimed: 2015-12-29
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Leah Shalev; Brian William Barrett; Nafea Bshara; Georgy Machulsky
- Web page: https://patentgrep.com/patent/US20190173789A1

## CPC

- H04L 45/745: Address table lookup; Address filtering
- H04L 45/24: Multipath
- H04L 69/326: in the transport layer [OSI layer 4] (H04L69/16 takes precedence)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Provided are systems and methods for connection establishment over a network that does not require a user application to establish an explicit connection with a target application. In some implementations, provided is an apparatus configured to communicate with a network and a host device. The apparatus may receive a message and destination information associated with the message from the host device. The apparatus may further determine, using the destination information, a transport context from a plurality of transport contexts. The transport context may include a state of a connection with a destination on the network. The destination on the network may be associated with the destination information.

## Claims

### Claim 1

(canceled)

### Claim 2

A computer-implemented method for operating a transport layer in a computing device on a network, comprising:
receiving a message for outputting onto the network, wherein the message is associated with a transmitting application executing on the computing device;
receiving a transport context associated with the message, wherein the transport context associates the transmitting application with a receiving application on a second computing device on the network;
generating a plurality of packets including data from the message;
adding the plurality of packets to a packet flow associated with the transport context, wherein each packet in the packet flow is assigned a sequence number;
outputting the plurality of packets for transmission onto the network without establishing a connection with the second computing device; and
monitoring, using the transport context, a status for each packet from the plurality of packets, wherein monitoring includes determining, using sequence numbers from the plurality of packets, whether each packet from the plurality of packets was received at the second computing device.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, further comprising:
receiving a response message associated with the second computing device, the response message including a particular sequence number of a last packet received at the second computing device.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, further comprising:
determining, from the response message, that a particular packet from the plurality of packets was not received at the second computing device; and
resending the particular packet.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, further comprising:
stopping monitoring of a particular packet indicated by the response message as received.

### Claim 6 (depends on 2)

The computer-implemented method of claim 2, further comprising:
receiving a response message associated with the second computing device, the response message indicating that a particular packet was received and not accepted; and
outputting the response message for receipt by the transmitting application.

### Claim 7 (depends on 2)

The computer-implemented method of claim 2, further comprising:
storing the sequence numbers in the transport context for use in monitoring the status for each packet.

### Claim 8 (depends on 2)

The computer-implemented method of claim 2, further comprising:
assigning packets from the packet flow to different paths over the network.

### Claim 9 (depends on 2)

The computer-implemented method of claim 2, wherein the transport context does not store a connection status.

### Claim 10

A computer-implemented method for operating a transport layer in a computing device on a network, comprising:
receiving a plurality of packets associated with a first computing device on the network, each packet from the plurality of packets including a sequence number, wherein the plurality of packets are received without an established connection with the first computing device;
determining that the plurality of packets are associated with a packet flow, wherein packets in the packet flow are sent by a transmitting application executing on the first computing device for receipt by a receiving application executing on the computing device;
obtaining a transport context associated with the packet flow, wherein the transport context associates the transmitting application with the receiving application;
determining, using sequence numbers from the plurality of packets, whether the plurality of packets were received in order;
outputting a response message for transmission onto the network, the response message indicating whether the plurality of packets were received in order, wherein the response message is output without establishing a connection with the first computing device; and
outputting the plurality of packets for receipt by the receiving application, wherein the plurality of packets are output in an order in which the plurality of packets was received.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, wherein the response message includes a highest sequence number from the sequence numbers.

### Claim 12 (depends on 10)

The computer-implemented method of claim 10, further comprising:
determining that the plurality of packets were received out of order based on a particular sequence number not being present in the sequence numbers.

### Claim 13 (depends on 10)

The computer-implemented method of claim 10, further comprising:
determining that the plurality of packets were received out of order based on a particular sequence number being numerically out of order within the sequence numbers.

### Claim 14 (depends on 10)

The computer-implemented method of claim 10, further comprising:
receiving an additional packet associated with the transmitting application, the additional packet including an additional sequence number; and
outputting the additional packet for receipt by the receiving application without putting the additional packet in order with respect to the plurality of packets.

### Claim 15 (depends on 10)

The computer-implemented method of claim 10, further comprising:
determining that a particular packet from the plurality of packets cannot be accepted, wherein the response message indicates that the particular packet was not accepted.

### Claim 16 (depends on 10)

The computer-implemented method of claim 10, wherein the transport context does not store a connection status.

### Claim 17

A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors of a computing device on a network, cause the one or more processors to perform operations including:
receiving a message for outputting onto the network, wherein the message is associated with a transmitting application executing on the computing device;
receiving a transport context associated with the message, wherein the transport context associates the transmitting application with a receiving application on a second computing device on the network;
generating a plurality of packets including data from the message;
adding the plurality of packets to a packet flow associated with the transport context, wherein each packet in the packet flow is assigned a sequence number;
outputting the plurality of packets for transmission onto the network without establishing a connection with the second computing device; and
monitoring, using the transport context, a status for each packet from the plurality of packets, wherein monitoring includes determining, using sequence numbers from the plurality of packets, whether each packet from the plurality of packets was received at the second computing device.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the instructions further cause the one or more processors to perform operations including:
receiving a response message associated with the second computing device, the response message including a particular sequence number of a last packet received at the second computing device.

### Claim 19 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the instructions further cause the one or more processors to perform operations including:
receiving a response message associated with the second computing device, the response message indicating that a particular packet was received and not accepted; and
outputting the response message for receipt by the transmitting application.

### Claim 20 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the instructions further cause the one or more processors to perform operations including:
storing the sequence numbers in the transport context for use in monitoring the status for each packet.

### Claim 21 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the instructions further cause the one or more processors to perform operations including:
assigning packets from the packet flow to different paths over the network.
