IP Library Granted Patent US 10,142,262
Granted Patent B2
US 10,142,262 · App. 15/254,583 · Granted Nov 27, 2018

System and method for improving an aggregated throughput of simultaneous connections

Inventors: Eugene Lapidous (Saratoga, CA); Maxim Molchanov (Mountain View, CA)
Assignee: ANCHORFREE INC.
H04L47/827H04L1/16H04L43/0864H04L43/0888H04L45/245H04L47/27H04L47/41H04L67/28H04L43/0835H04L67/02H05K999/99
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,142,262
App. No.
15/254,583
Granted
Nov 27, 2018
Kind
B2
Abstract

A client and content provider are connected by a plurality of simultaneous transport connections. The number of the transport connections that are used to transfer data is selected based on the size of the data to be transferred and may change after transfer of data has commenced based on the amount of data left and the attributes of the transport connections. In another aspect, data to be transmitted over the transport connections is organized into frames such that each frame includes data from only one data stream. The frames are sized to be less than or equal to a control window of the transport connection over which they are transmitted. Each frame may be assigned to a transport connection in a round robin fashion or based on the size of the frame and the sizes of the control windows of the transport connections.

Claims (20)

1. A method for increasing an aggregated throughput of multiple simultaneous transport connections between computers over a computer network, the method comprising:

maintaining, by a first computer, a first plurality of simultaneous connections to a second computer and a second plurality of simultaneous transport connections to a third computer;

receiving, by the first computer, a first group of one or more requests for a data delivery to the second computer over the first plurality of simultaneous transport connections with the second computer;

delivering, by the first computer, requested data corresponding to the first group of one or more requests such the delivery of data corresponding to each requests of the first group of one or more requests must be finished before delivering data corresponding to a subsequent request to the second computer;

receiving, by the first computer, a second group of one or more requests for data delivery to a third computer over a second plurality of simultaneous transport connections with the third computer;

delivering, by the first computer, requested data corresponding to the second group of one or more requests such that delivery of data corresponding to each request of the second group of one or more requests must be finished before delivering data corresponding to a subsequent request to the third computer;

setting, by the first computer, a first number of the first plurality of simultaneous transport connections that are used to deliver the requested data corresponding to the first group of one or more requests;

setting, by the first computer, a second number of the second plurality of simultaneous transport connections that are used to deliver the requested data corresponding to the second group of one or more requests;

detecting, by the first computer, a difference between one or more first parameters of the first plurality of simultaneous transport connections and one or more second parameters of the second plurality of simultaneous transport connections;

setting, by the first computer, the first number of the first plurality of simultaneous transport connections and the second number of the second plurality of simultaneous transport connections to be different according to the difference between the one or more first parameters and the one or more second parameters.

2. The method of claim 1 , wherein detecting the difference between the one or more first parameters and the one or more second parameters comprises detecting a difference in at least one of a distance from the first computer to the second computer and a distance from the first computer to the third computer, a round-trip time between the first computer and the second computer and a round-trip time between the first computer and the third computer, and a quality of a network connecting the first computer and the second computer and a quality of a network connecting the first computer and the third computer.

3. The method of claim 2 , wherein setting the first number of the first plurality of simultaneous transport connections comprises increasing the first number of the first plurality of simultaneous transport connections with at least one of increase in the distance between the first computer and the second computer and the round-trip time between the first computer and the second computer; and

wherein setting the second number of the second plurality of simultaneous transport connections comprises increasing the second number of the second plurality of simultaneous transport connections with at least one of increase in the distance between the first computer and the third computer and the round-trip time between the first computer and the third computer.

4. The method of claim 2 , wherein setting the first number of the first plurality of simultaneous transport connections comprises decreasing the first number of the first plurality of simultaneous transport connections with increase of the quality of the network between the connecting the first computer and the second computer relative to the quality of the network connecting the first computer and the third computer.

5. The method of claim 4 , wherein setting the first number of the first plurality of simultaneous transport connections comprises decreasing the first number of the first plurality of simultaneous transport connections with decrease in a rate of data losses over the first plurality of simultaneous transport connections; and

wherein setting the second number of the second plurality of simultaneous transport connections comprises decreasing the second number of the second plurality of simultaneous transport connections with decrease in a rate of data losses over the second plurality of simultaneous transport connections.

6. The method of claim 4 , wherein each of the first plurality of transport connections and the second plurality of transport connections implement a transport protocol defining control windows that limit an amount of traffic that may be sent before an acknowledgement of at least some of the traffic has been received;

wherein setting the first number of the first plurality of simultaneous transport connections comprises decreasing the first number of the first plurality of simultaneous transport connections with increase of a size of the control windows for the first plurality of transport connections; and

wherein setting the second number of the second plurality of simultaneous transport connections comprises decreasing the second number of the second plurality of simultaneous transport connections with increase of a size of the control windows for the second plurality of transport connections.

7. The method of claim 6 , where the transport protocol is a Transport Control Protocol (TCP), and the control window is a smaller of a receiver window and a congestion window.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE SERIAL N. 15/597,036 PREVIOUSLY RECORDED AT REEL: 053245 FRAME: 0874. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 10, 2023
From: PANGO INC.
To: TWINGATE HOLDINGS INC.
Reel/Frame 063027/0894 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE SERIAL NO. 15/597,036 PREVIOUSLY RECORDED AT REEL: 053257 FRAME: 0637. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 10, 2023
From: TWINGATE HOLDINGS INC.
To: TWINGATE INC.
Reel/Frame 063141/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: TWINGATE HOLDINGS INC.
To: TWINGATE INC.
Reel/Frame 053257/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2020
From: PANGO INC.
To: TWINGATE HOLDINGS INC.
Reel/Frame 053245/0874 →
RELEASE OF SECURITY INTEREST Recorded Jul 1, 2020
From: PACIFIC WESTERN BANK
To: PANGO INC. (FORMERLY KNOWN AS ANCHORFREE INC.)
Reel/Frame 053116/0489 →
SECURITY INTEREST Recorded Jun 25, 2020
From: PANGO INC.
To: PACIFIC WESTERN BANK
Reel/Frame 053039/0417 →
CHANGE OF NAME Recorded Jan 10, 2020
From: ANCHORFREE INC.
To: PANGO INC.
Reel/Frame 051566/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: LAPIDOUS, EUGENE; MOLCHANOV, MAXIM
To: ANCHORFREE INC.
Reel/Frame 039616/0317 →
Continuity (2)
Provisional Application 62343697 · May 31, 2016
Related Publication 20170346762A1 · Nov 30, 2017