IP Library Granted Patent US 10,165,049
Granted Patent B2
US 10,165,049 · App. 15/048,292 · Granted Dec 25, 2018

Devices and methods for performing TCP handshakes

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,165,049
App. No.
15/048,292
Granted
Dec 25, 2018
Kind
B2
Abstract

A TCP handshake is distributed by having an initiator device send, to a server SYN(m) with the IP address of a terminator device as source address. The initiator device can then forget any TCP state for the SYN(m). The server responds with a SYN-ACK(m+1, n) according to the normal TCP handshake, but the response goes to the terminator device that receives the message, reconstructs the TCP handshake as if it had sent the initial SYN message, and sends an ACK(n+1) to the server. The TCP handshake method can be used to avoid allocation of resources in for example device monitoring.

Claims (48)

1. A device for performing a TCP handshake, the device comprising:

an interface configured to transmit messages between at least one external device and a processor in the device; and

a processor configured to:

receive from the interface a SYN-ACK message for which the device has not sent a corresponding SYN message, the SYN-ACK message comprising a source address;

generate an ACK message corresponding to the SYN-ACK message; and send the ACK message to the interface for transmission to the source address

wherein the processor is further configured to access a TCP stack storing records of transmitted SYN messages and to reconstruct the TCP handshake as if the device had sent the corresponding SYN message by patching the TCP stack as if the device had sent the corresponding SYN message and by creating a record corresponding to the corresponding SYN message.

2. The device of claim 1 , wherein each record comprises a sequence number of the SYN message and wherein the processor is further configured to obtain the sequence number for the corresponding SYN message by subtracting one from a corresponding integer in the SYN-ACK message.

3. The device of claim 1 , further comprising a firewall configured to intercept the SYN-ACK message and inform the processor of the interception, wherein the processor is further configured to generate the corresponding SYN message that is sent towards the source address and to update the TCP stack, and wherein the firewall is further configured to intercept the corresponding SYN message generated by the processor and only then forward the SYN-ACK message to the processor.

4. The device of claim 1 , wherein the processor is further configured to:

send a request for data to a server, the request comprising a first integer;

receive data from the server; and

verify, using the first integer and a second integer received with the SYN-ACK message, that the SYN-ACK message is related to the request.

5. A method for performing a TCP handshake at a device, the method comprising:

receiving, by a processor of the device, a SYN-ACK message for which the device has not sent a corresponding SYN message, the SYN-ACK message comprising a source address;

generating, by the processor, an ACK message corresponding to the SYN-ACK message by accessing a TCP stack storing records of transmitted SYN messages and reconstructing the TCP handshake as if the device had sent the corresponding SYN message by patching the TCP stack as if the device had sent the corresponding SYN message and by creating a record corresponding to the corresponding SYN message; and

sending the ACK message to the source address.

6. The method of claim 5 , wherein each record comprises a sequence number of the SYN message and wherein the method further comprises obtaining the sequence number for the corresponding SYN message by subtracting one from a corresponding integer in the SYN-ACK message.

7. The method of claim 5 , further comprising:

intercepting, by a firewall of the device, the SYN-ACK message;

informing, by the firewall, the processor of the interception;

generating, by the processor, the corresponding SYN message;

sending, by the processor, the corresponding SYN message towards the source address;

updating, by the processor, the TCP stack;

intercepting, by the firewall, the corresponding SYN message generated by the processor; and

forwarding, by the firewall, the SYN-ACK message to the processor.

8. The method of claim 5 , further comprising, at the processor:

sending a request for data to a server, the request comprising a first integer;

receiving data from the server; and

verifying, using the first integer and a second integer received with the SYN-ACK message, that the SYN-ACK message is related to the request.

9. A server comprising: at least one hardware processor configured to:

receive a request for data from a client, the data comprising a first part and a second part, and the request comprising an address of the client;

send the first part to the client; and

send a SYN message of a TCP handshake to a further device configured to provide the second part to the client, the SYN message comprising the address of the client as source address; and

at least one communications interface configured to communicate messages with other devices to and from the processor.

10. The server of claim 9 , wherein the request comprises an integer and wherein the at least one hardware processor is further configured to send the integer to the further device with the SYN message.

11. A method comprising at a processor of a server:

receiving a request for data from a client, the data comprising a first part and a second part, and the request comprising an address of the client;

sending the first part to the client; and

sending a SYN message of a TCP handshake to a further device configured to provide the second part to the client, the SYN message comprising the address of the client as source address.

12. The method of claim 11 , wherein the request comprises an integer and wherein the method further comprises sending the integer to the further device with the SYN message.

13. A non-transitory computer-readable storage medium comprising computer-executable instructions to enable a processor of a device to perform a method comprising:

receiving, by a processor of the device, a SYN-ACK message for which the device has not sent a corresponding SYN message, the SYN-ACK message comprising a source address;

generating, by the processor, an ACK message corresponding to the SYN-ACK message by accessing a TCP stack storing records of transmitted SYN messages and reconstructing the TCP handshake as if the device had sent the corresponding SYN message by patching the TCP stack as if the device had sent the corresponding SYN message and by creating a record corresponding to the corresponding SYN message; and

sending the ACK message to the source address.

14. A non-transitory computer-readable storage medium comprising computer-executable instructions to enable a processor of a server to perform a method comprising:

receiving a request for data from a client, the data comprising a first part and a second part, and the request comprising an address of the client;

sending the first part to the client; and

sending a SYN message of a TCP handshake to a further device configured to provide the second part to the client, the SYN message comprising the address of the client as source address.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2020
From: INTERDIGITAL CE PATENT HOLDINGS,SAS
To: INTERDIGITAL MADISON PATENT HOLDINGS, SAS
Reel/Frame 053061/0025 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2018
From: THOMSON LICENSING
To: INTERDIGITAL CE PATENT HOLDINGS
Reel/Frame 047239/0732 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2017
From: NEUMANN, CHRISTOPH; HEEN, OLIVIER
To: THOMSON LICENSING
Reel/Frame 041315/0042 →