IP Library › Granted Patent US 11,956,099
Granted Patent B2
US 11,956,099 · App. 17/739,315 · Granted Apr 9, 2024

Multi-part TCP connection over VPN

Inventors: Emanuelis Norbutas (Vilnius, LT); Tomas Okmanas (Vilnius, LT); Marijus Briedis (Jurbarkai, LT)
Assignee: 360 IT, UAB
H04L12/4641H04L12/4633H04L47/36
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,956,099
App. No.
17/739,315
Granted
Apr 9, 2024
Kind
B2
Abstract

Transmitting data over a VPN connection includes receiving, at a VPN concentrator, from a VPN user device, an initiation request of a first connection, initialized to have an initial MSS, from the VPN user device to a target. The first connection is terminated at the VPN concentrator. A second connection is established across a VPN tunnel between the VPN concentrator and the VPN user device. A third connection is established between the VPN concentrator and the target. A first MSS for the second connection and a second MSS for the third connection are set. One of the first MSS or the second MSS are set to prevent packet fragmentation due to VPN-related encapsulation. First data packets are transmitted between the VPN concentrator and the VPN user device using the first MSS. Second data packets are transmitted between the VPN concentrator and the target using the second MSS.

Claims (58)

1. A method for transmitting data over a VPN connection, the method comprising:

receiving, at a VPN concentrator, from a VPN user device, an initiation request of a first connection from the VPN user device to a target communicably coupled to the VPN concentrator, wherein the first connection is initialized to have an initial maximum segment size (MSS) that the VPN user device accepts;

terminating the first connection at the VPN concentrator;

establishing a second connection between the VPN concentrator and the VPN user device, the second connection being across a VPN tunnel between the VPN concentrator and the VPN user device;

establishing a third connection between the VPN concentrator and the target;

setting, by the VPN concentrator, a first MSS for the second connection, wherein the first MSS is set to prevent packet fragmentation that is due to VPN-related encapsulation overhead, wherein the first MSS is different from the initial MSS, and wherein the first MSS is used for transferring data over the second connection;

transmitting the first MSS to the VPN user device;

negotiating, by the VPN concentrator and with the target, a second MSS for transferring data over the third connection;

transmitting, between the VPN concentrator and the VPN user device, first data packets using the first MSS over the second connection;

transmitting, between the VPN concentrator and the target, second data packets using the second MSS over the third connection; and

optimizing transmissions of data packets between the VPN user device and the target, wherein the optimizing comprises:

independently measuring, by the VPN concentrator, a first round trip time (RTT) for the second connection and a second RTT for the third connection;

optimizing parameters of the second connection based on the first RTT; and

optimizing parameters of the third connection based on the second RTT.

2. The method of claim 1 , wherein either or both of the second connection or the third connection is one of a cross-continental connection, a long-distance connection, or is used to send data packets greater than 1500 bytes.

3. The method of claim 1 , wherein during a Transport Control Protocol (TCP) session, the VPN user device requests content from a plurality of targets, and wherein the VPN concentrator initiates a corresponding number of third connections to each of the plurality of targets, each of the corresponding number of third connections with the second MSS.

4. The method of claim 1 , further comprising converting, at the VPN concentrator, the second data packets received from the target to the first data packets for being sent to the VPN user device, the first data packets having the first MSS, and the second data packets having the second MSS.

5. The method of claim 4 , wherein the converting comprises adding an encapsulation overhead to each of the second data packets.

6. The method of claim 5 , wherein the converting further comprises buffering, queueing, deconstructing and reassembling a second data packet of the second data packets to generate a first data packet of the first data packets.

7. The method of claim 1 , further comprising at least maintaining or closing, at the VPN concentrator, the second connection and the third connection.

8. An apparatus for transmitting data over a VPN connection, the apparatus comprising:

at least one processor; and

a memory coupled to the at least one processor, wherein the at least one processor is configured to execute instructions stored in the memory to:

receive from a VPN user device an initiation request of a first connection between the VPN user device and a target communicably coupled to the apparatus;

terminate the first connection;

establish a second connection between the apparatus and the VPN user device, the second connection being across a VPN tunnel between the apparatus and the VPN user device;

establish a third connection between the apparatus and the target;

set a first maximum segment size (MSS) for the second connection, wherein the first MSS is used for transferring packets over the second connection;

negotiate, with the target, a second MSS for the third connection, wherein the second MSS is used for transferring packets over the third connection;

transmit, between the apparatus and the VPN user device, first data packets using the first MSS over the second connection;

transmit, between the apparatus and the target, second data packets using the second MSS over the third connection, and

optimize transmissions of data packets between the VPN user device and the target by instructions to:

independently measure a first round trip time (RTT) for the second connection and a second RTT for the third connection; and

optimize at least one of parameters of the second connection based on the first RTT or parameters of the third connection based on the second RTT.

9. The apparatus of claim 8 , wherein either or both of the second connection or the third connection is one of a cross-continental connection, a long-distance connection, or is used to send data packets greater than 1500 bytes.

10. The apparatus of claim 8 , wherein during a Transport Control Protocol (TCP) session, the VPN user device requests content from a plurality of targets, and wherein the apparatus initiates a corresponding number of third connections to each of the plurality of targets, each of the corresponding number of third connections with the second MSS.

11. The apparatus of claim 8 , wherein the at least one processor is further configured to execute instructions to:

convert, at the apparatus, the second data packets received from the target to the first data packets for being sent to the VPN user device, the first data packets having the first MSS, and the second data packets having the second MSS.

12. The apparatus of claim 11 , wherein the instructions to convert comprise instructions to:

add an encapsulation overhead to each of the second data packets.

13. The apparatus of claim 12 , wherein the instructions to convert further comprise instructions to:

buffer, queue, deconstruct, and reassemble a second data packet of the second data packets to generate a first data packet of the first data packets.

14. The apparatus of claim 8 , wherein the at least one processor is further configured to execute instructions to:

maintain or close, at the apparatus, the second connection and the third connection.

15. A non-transitory computer readable medium comprising executable instructions, which when executed using at least one processor, cause the at least one processor to perform a method for transmitting data over a VPN connection, the method comprising:

receiving, at a VPN concentrator, from a VPN user device, an initiation request of a first connection to a target communicably coupled to the VPN concentrator;

terminating the first connection at the VPN concentrator;

setting a first maximum segment size (MSS) for a second connection between the VPN user device and the VPN concentrator;

negotiating, with the target, a second MSS for a third connection between the VPN concentrator and the target;

establishing the second connection across a VPN tunnel between the VPN concentrator and the VPN user device;

establishing the third connection;

transmitting, between the VPN concentrator and the VPN user device, first data packets using the first MSS over the second connection;

transmitting, between the VPN concentrator and the target, second data packets over the third connection; and

optimizing transmissions of data packets between the VPN user device and the target, wherein the optimizing comprises:

independently measuring, by the VPN concentrator, a first round trip time (RTT) for the second connection and a second RTT for the third connection; and

optimizing at least of parameters of the second connection based on the first RTT or parameters of the third connection based on the second RTT.

16. The non-transitory computer readable medium of claim 15 , wherein either or both of the second connection or the third connection is one of a cross-continental connection, a long-distance connection, or is used to send data packets greater than 1500 bytes.

17. The non-transitory computer readable medium of claim 15 , wherein during a Transport Control Protocol (TCP) session, the VPN user device requests content from a plurality of targets, and wherein the VPN concentrator initiates a corresponding number of third connections to each of the plurality of targets, each of the corresponding number of third connections with the second MSS.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE FROM 360 IT, UAB TO UAB 360 IT PREVIOUSLY RECORDED ON REEL 59912 FRAME 271. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 6, 2025
From: NORBUTAS, EMANUELIS; OKMANAS, TOMAS; BRIEDIS, MARIJUS
To: UAB 360 IT
Reel/Frame 070433/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: NORBUTAS, EMANUELIS; OKMANAS, TOMAS; BRIEDIS, MARIJUS
To: 360 IT, UAB
Reel/Frame 059912/0271 →
Continuity (3)
Continuation 17361351 · Jun 29, 2021
Continuation 16780925 · Feb 4, 2020
Related Publication 20220263685A1 · Aug 18, 2022