IP Library Granted Patent US 10,320,642
Granted Patent B2
US 10,320,642 · App. 15/468,416 · Granted Jun 11, 2019

Dynamic TCP proxy selection for acceleration of short network flows

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,320,642
App. No.
15/468,416
Granted
Jun 11, 2019
Kind
B2
Abstract

A method for transmitting, over a transport network, data belonging to a data flow includes creating a proxy network including a plurality of transport network proxies; defining a plurality of proxy pairs; defining a plurality of proxy pair links; determining, for each proxy pair link, a round trip time (RTT) of the respective proxy pair link; determining, using the determined RTTs of the plurality of proxy pair links, a list of one or more preferred paths for each proxy pair, each preferred path connecting, via one or more of the plurality of proxy pair links, one proxy of the respective proxy pair to the other proxy of the respective proxy pair; and transmitting, from an ingress proxy to an egress proxy, the data belonging to the data flow over a proxy pair path selected from the list of preferred proxy pair paths.

Claims (50)

1. A method for transmitting, over a transport network, data belonging to a data flow, the method comprising:

creating a proxy network including a plurality of transport network proxies;

defining a plurality of proxy pairs, each proxy pair including two of the plurality of transport network proxies;

defining a plurality of proxy pair links, each of the plurality of proxy pair links connecting one proxy of a proxy pair to the other proxy of the proxy pair;

determining, for each proxy pair link, a round trip time (RTT) of the respective proxy pair link;

determining, using the determined RTTs of the plurality of proxy pair links, a list of one or more preferred paths for each proxy pair, each preferred path connecting, via one or more of the plurality of proxy pair links, one proxy of the respective proxy pair to the other proxy of the respective proxy pair; and

transmitting, from an ingress proxy selected from the plurality of transport network proxies to an egress proxy selected from the plurality of the transport network proxies, the data belonging to the data flow over a proxy pair path selected from a list of preferred proxy pair paths for the proxy pair including the ingress proxy and the egress proxy,

wherein each preferred path in the list of one or more preferred paths for a particular proxy pair includes a maximum link RTT and a total path RTT,

wherein for each pair of preferred paths for a particular proxy pair, one preferred path of the respective pair of preferred paths has a greater maximum link RTT and a lesser total path RTT as compared to the other preferred path of the respective pair of preferred paths, and

wherein the proxy pair path is selected from the list of preferred proxy paths for the proxy pair including the ingress proxy and the egress proxy based on a flow size of the data flow, the flow size being determined based on one or more of a content length field in an application layer header, statistics generated from past connections to a destination, and information regarding content sizes served by a destination.

2. The method of claim 1 , wherein the plurality of transport network proxies includes a number n of transport network proxies denoted p 1 , . . . , p n ,

wherein the plurality of proxy pairs includes a number m=n(n−1) of proxy pairs denoted (p i , p j ) for 1≤i, j≤n;

wherein the plurality of proxy pair links includes the number m of proxy pair links denoted l 1 , . . . , l m , and

wherein the determining, using the determined RTTs of the plurality of proxy pair links, a list of one or more preferred paths for each proxy pair comprises determining, for each of the proxy pairs denoted (p i , p j ), a list of one or more preferred paths.

3. The method of claim 2 , wherein the determining, for each of the proxy pairs denoted (p i , p j ), a list of one or more preferred paths, comprises:

ordering the proxy pair links denoted l 1 , . . . , l m in nondecreasing order of RTT such that d(l 1 )≤d(l m ), wherein d(l h ) is the RTT of the proxy pair link l h for h=1, . . . , m; and

determining, for each of the proxy pairs denoted (p i , p j ), a list of one or more preferred paths.

4. The method of claim 3 , wherein the determining, for each of the proxy pairs denoted (p i , p j ), a list of one or more preferred paths comprises, for each iteration of h=1, . . . , m, determining, if any, a shortest path L i,j,h between proxies p i and p j excluding all links l h+1 , . . . , l m .

5. The method of claim 4 , wherein the determining, for each of the proxy pairs denoted (p i , p j ), a list of one or more preferred paths further comprises adding, at the end of each iteration h=1, . . . , m, the shortest path L i,j,h to the list of one or more preferred paths if such a shortest path L i,j,h exists and if a path length D(i,j,h) of such a shortest path L i,j,h is shorter than a path length D(i,j,h−1) of a shortest path L i,j,h−1 between proxies p i and p j excluding all links l h , . . . , l m .

6. The method of claim 5 , wherein the determining, if any, a shortest path L i,j,h between proxies p i and p j excluding all links l h+1 , . . . , l m comprises:

comparing a shortest path L i,b,h−1 between proxies p i and p b excluding all links l h , . . . , l m with a shortest path L i,a,h−1 between proxies p i and p a excluding all links l h , . . . , l m concatenated with the link l h , wherein the link l h connects proxies p a and p b ; and

comparing a shortest path L i,a,h−1 between proxies p i and p a excluding all links l h , . . . , l m with a shortest path L i,b,h−1 between proxies p i and p a excluding all links l h , . . . , l m concatenated with the link l h , wherein the link l h connects proxies p a and p b .

7. The method of claim 6 further comprising:

if a path length D(i,a,h−1) of the shortest path L i,a,h−1 plus a path length d(l h ) of the link l h is shorter than a path length D(i,b,h−1) of the shortest path L i,b,h−1 , determining that the shortest path L i,b,h includes the link l h and creating a pointer to i in a list a→b; and

if a path length D(i,b,h−1) of the shortest path L i,b,h−1 plus a path length d(l h ) of the link l h is shorter than a path length D(i,a,h−1) of the shortest path L i,a,h−1 , determining that the shortest path L i,b,h includes the link l h and creating a pointer to i in a list b→a.

8. The method of claim 7 , further comprising:

for each proxy pair (p i ,p j ) with i in the list a→b and j in the list b→a, comparing a path length D(i,j,h−1) of the shortest path L i,j,h−1 between proxies p i and p j excluding all links l h , . . . , l m with a path length path length D(i,a,h−1)+d(l h )+D(b,j,h−1) of the shortest path L i,a,h−1 between proxies p i and p a excluding all links l h , . . . , l m concatenated with the link l h connecting proxies p a and p b concatenated with the shortest path L b,j,h−1 between proxies p b and p j excluding all links l h , . . . , l m ; and

if the path length path length D(i,a,h−1)+d(l h )+D(b,j,h−1) is less than the path length D(i,j,h−1), adding L i,a,h−1 concatenated with l h concatenated with L b,j,h−1 to the list of one or more preferred paths as L i,j,h .

9. The method of claim 1 , wherein transport control protocol (TCP) is used for transmitting the data belonging to the data flow over the transport network.

10. Non-transitory computer readable media having stored thereon instructions for transmitting, over a transport network, data belonging to a data flow, the instructions comprising instructions for:

creating a proxy network including a plurality of transport network proxies;

defining a plurality of proxy pairs, each proxy pair including two of the plurality of transport network proxies;

defining a plurality of proxy pair links, each of the plurality of proxy pair links connecting one proxy of a proxy pair to the other proxy of the proxy pair;

determining, for each proxy pair link, a round trip time (RTT) of the respective proxy pair link;

determining, using the determined RTTs of the plurality of proxy pair links, a list of one or more preferred paths for each proxy pair, each preferred path connecting, via one or more of the plurality of proxy pair links, one proxy of the respective proxy pair to the other proxy of the respective proxy pair; and

transmitting, from an ingress proxy selected from the plurality of transport network proxies to an egress proxy selected from the plurality of the transport network proxies, the data belonging to the data flow over a proxy pair path selected from a list of preferred proxy pair paths for the proxy pair including the ingress proxy and the egress proxy,

wherein each preferred path in the list of one or more preferred paths for a particular proxy pair includes a maximum link RTT and a total path RTT,

wherein for each pair of preferred paths for a particular proxy pair, one preferred path of the respective pair of preferred paths has a greater maximum link RTT and a lesser total path RTT as compared to the other preferred path of the respective pair of preferred paths, and

wherein the proxy pair path is selected from the list of preferred proxy paths for the proxy pair including the ingress proxy and the egress proxy based on a flow size of the data flow, the flow size being determined based on one or more of a content length field in an application layer header, statistics generated from past connections to a destination, and information regarding content sizes served by a destination.

11. A system for transmitting, over a transport network, data belonging to a data flow, the system comprising:

one or more processors configured to:

create a proxy network including a plurality of transport network proxies;

define a plurality of proxy pairs, each proxy pair including two of the plurality of transport network proxies;

define a plurality of proxy pair links, each of the plurality of proxy pair links connecting one proxy of a proxy pair to the other proxy of the proxy pair;

determine, for each proxy pair link, a round trip time (RTT) of the respective proxy pair link;

determine, using the determined RTTs of the plurality of proxy pair links, a list of one or more preferred paths for each proxy pair, each preferred path connecting, via one or more of the plurality of proxy pair links, one proxy of the respective proxy pair to the other proxy of the respective proxy pair; and

transmit, from an ingress proxy selected from the plurality of transport network proxies to an egress proxy selected from the plurality of the transport network proxies, the data belonging to the data flow over a proxy pair path selected from a list of preferred proxy pair paths for the proxy pair including the ingress proxy and the egress proxy,

wherein each preferred path in the list of one or more preferred paths for a particular proxy pair includes a maximum link RTT and a total path RTT,

wherein for each pair of preferred paths for a particular proxy pair, one preferred path of the respective pair of preferred paths has a greater maximum link RTT and a lesser total path RTT as compared to the other preferred path of the respective pair of preferred paths, and

wherein the proxy pair path is selected from the list of preferred proxy paths for the proxy pair including the ingress proxy and the egress proxy based on a flow size of the data flow, the flow size being determined based on one or more of a content length field in an application layer header, statistics generated from past connections to a destination, and information regarding content sizes served by a destination.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2019
From: NEC LABORATORIES EUROPE GMBH
To: NEC CORPORATION
Reel/Frame 048976/0332 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2017
From: NEC EUROPE LTD.
To: NEC LABORATORIES EUROPE GMBH
Reel/Frame 044979/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2017
From: BIFULCO, ROBERTO; JACOBS, TOBIAS
To: NEC EUROPE LTD.
Reel/Frame 042035/0416 →