Method and system for controlling data flow in an internet over satellite connection
First Claim
Patent Images
1. A method for controlling the flow of information, said information comprising a plurality of packets, each of said packets comprising data and a header, in a system comprising:
- a client, selected from a plurality of potential clients;
a server, selected from a plurality of potential servers;
a first gateway, connected to said client by a first telecommunications link;
a second gateway, connected to said server by a second telecommunications link;
a third telecommunications link connecting said first gateway to said second gateway, said method comprising;
intercepting a connection attempt with said server, said connection attempt initiated by said client;
establishing a connection between said first gateway and said second gateway over said third telecommunications link;
determining a round trip time for data to travel from said first gateway to said second gateway over said connection;
determining a data rate for said connection;
determining a bandwidth delay product from said round trip time and said data rate;
determining a flow control limit for said connection from said bandwidth delay product; and
limiting data transfer over said connection based upon said flow control limit.
13 Assignments
0 Petitions
Accused Products
Abstract
According to the present invention, a technique for controlling information flow in TCP connections over a wireless wide area network is provided. In an exemplary embodiment, the present invention provides methods and systems for controlling the rate that information flows over a TCP connection to an Xpress Transport Protocol (herein “XTP”) connection, for example. Embodiments can determine those connections likely to use relatively large amounts of system resources and apply flow control techniques to these connections.
130 Citations
44 Claims
-
1. A method for controlling the flow of information, said information comprising a plurality of packets, each of said packets comprising data and a header, in a system comprising:
-
a client, selected from a plurality of potential clients;
a server, selected from a plurality of potential servers;
a first gateway, connected to said client by a first telecommunications link;
a second gateway, connected to said server by a second telecommunications link;
a third telecommunications link connecting said first gateway to said second gateway, said method comprising;
intercepting a connection attempt with said server, said connection attempt initiated by said client;
establishing a connection between said first gateway and said second gateway over said third telecommunications link;
determining a round trip time for data to travel from said first gateway to said second gateway over said connection;
determining a data rate for said connection;
determining a bandwidth delay product from said round trip time and said data rate;
determining a flow control limit for said connection from said bandwidth delay product; and
limiting data transfer over said connection based upon said flow control limit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
determining from at least one of a plurality of connections at said first gateway ones that can benefit from flow control.
-
-
9. The method of claim 8 wherein said determining comprises selecting from said plurality of connections ones that are not initializing.
-
10. The method of claim 8 wherein said determining comprises selecting from said plurality of connections ones that are buffering data above a threshold.
-
11. The method as in claim 1 wherein the first gateway is further adapted for performing a protocol conversion prior to transmission over the third telecommunications link.
-
12. The method as in claim 11 wherein the protocol conversion comprises a transport protocol conversion.
-
13. A system for controlling the flow of information over a satellite, said system comprising:
-
a first gateway, adapted to be connected to a client by a first telecommunications link, a second gateway, adapted to be connected to a server by a second telecommunications link;
a data rate controller;
a third telecommunications link connecting said first gateway to said second gateway;
wherein said data rate controller is operatively disposed to;
determine a round trip time for data to traverse from said first gateway over said third telecommunications link to said second gateway over a connection;
determine a data rate for said connection;
determine a bandwidth delay product from said round trip time and said data rate;
determine a flow control limit for said connection from said bandwidth delay product; and
limit data transfer over said connection based upon said flow control limit. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
determine from at least one of a plurality of connections ones that can benefit from flow control.
-
-
21. The system of claim 20 wherein said determine comprises selecting from said plurality of connections ones that are not initializing.
-
22. The system of claim 20 wherein said determine comprises selecting from said plurality of connections ones that are buffering data above a threshold.
-
23. A computer program product for controlling the flow of information over a data link, said data link having at least one of a plurality of connections, said computer program product comprising:
-
code for determining a round trip time for data to traverse said data link on said connection;
code for determining a data rate for said connection;
code for determining a bandwidth delay product from said round trip time and said data rate;
code for determining a flow control limit for said connection from said bandwidth delay product;
code for limiting data transfer over said connection based upon said flow control limit; and
a computer readable storage medium for containing the codes. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
code for determining from at least one of a plurality of connections ones that can benefit from flow control.
-
-
31. The computer program product of claim 30 wherein said code for determining comprises code for selecting from said plurality of connections ones that are not initializing.
-
32. The computer program product of claim 30 wherein said code for determining comprises code for selecting from said plurality of connections ones that are buffering data above a threshold.
-
33. A method for controlling the flow of information over a satellite data link, said satellite data link having at least one of a plurality of connections, said method comprising:
-
determining a round trip time for data to travel from a first node on said satellite data link to a second node on said satellite data link over said connection;
determining a data rate for said connection;
determining a bandwidth delay product from said round trip time and said data rate;
determining a flow control limit for said connection from said bandwidth delay product; and
limiting data transfer over said connection based upon said flow control limit.
-
-
34. A system for controlling the flow of information, said system comprising:
-
a first gateway, adapted to be connected to a client by a first telecommunications link;
a second gateway, adapted to be connected to a server by a second telecommunications link;
a third telecommunications link connecting the first gateway to the second gateway; and
a data rate controller operatively disposed to;
determine a bandwidth delay product, the bandwidth delay product determined from a round trip time for data to traverse from the first gateway over the third telecommunications link to the second gateway over a connection, and from a data rate for the connection;
determine a flow control limit for the connection from the bandwidth delay product; and
limit data transfer over the connection based upon the flow control limit. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
Specification