Faster web browsing using HTTP over an aggregated TCP transport
AssigneeViaSat, Inc.
InventorPeter Lepeska
Life of this patent
Estimating the term…
Abstract
The present invention relates to systems, apparatus, and methods of using connection models to optimize web page transactions. In certain embodiments, latency and download speed data may be associated with a unique identifier for a connection to create a model, and this information may be used to assign certain objects that are part of a web page transaction to certain connections based on the connection model for each connection. In further potential embodiments, dependency structures in a web transaction may further be identified and used with connection models to optimize web page transactions.
Claims30
A method comprising:
- during a pending web page transaction at a first computing device, the pending web page transaction involving obtaining a root object and one or more child objects:
- opening a first TCP connection to a first content server and a second TCP connection to a second content server, the second TCP connection different than the first TCP connection;
- obtaining a first model for the first TCP connection;
- obtaining a second model for the second TCP connection;
- obtaining a third model for a third TCP connection;
- receiving, at the first computing device, a request for a first object, the first object comprising one of the root object or one of the one or more child objects;
- analyzing the first model and the second model to select a TCP priority for each TCP connection, wherein the first model comprises a first data rate history and wherein the second model comprises a second data rate history;
- determining a plurality of characteristics of the pending web page transaction;
- selecting the first TCP connection based on the first and second models and a first one of the characteristics of the pending web page transaction;
- requesting, by the first computing device, the first object using the first TCP connection;
- determining a second object to retrieve as a part of the web page transaction, the second object comprising one of the one or more child objects;
- selecting the second TCP connection based on the first and second models and a second one of the characteristics of the pending web page transaction;
- requesting, by the first computing device, the second object of the pending web page transaction using the second TCP connection;
- identifying, during the selection of the TCP priority for each TCP connection, that the third TCP connection is in use;
- identifying, during a download of the first object via the first TCP connection, that the third TCP connection is available;
- determining, based on an analysis of the first model and the third model, that switching the download of the first object from the first TCP connection to the third TCP connection is estimated to reduce a download time;
- and
- switching the download of the first object from the first TCP connection to the third TCP connection.
A computing device comprising:
- a storage medium;
- a communication port coupled to the storage medium;
- and
- a processor coupled to the communication port and the storage medium, wherein the processor is configured to execute instructions from the storage medium to:
- during a pending web page transaction, the pending web page transaction involving obtaining a root object and one or more child objects:
- open a first TCP connection with a first content server;
- open a second TCP connection with a second content server, the second TCP connection different than the first TCP connection;
- obtain a first model for the first TCP connection;
- obtain a second model for the second TCP connection;
- obtain a third model for a third TCP connection;
- receive a request for a first object, the first object comprising one of the root object or one of the one or more child objects;
- analyze the first model and the second model to select a TCP priority for each TCP connection, wherein the first model comprises a first data rate history and wherein the second model comprises a second data rate history;
- determine a plurality of characteristics of the web page transaction;
- select the first TCP connection based on the first and second models and a first one of the characteristics of the pending web page transaction;
- request the first object using the first TCP connection;
- determine a second object to retrieve as a part of the pending web page transaction, the second object comprising one of the one or more child objects;
- select the second TCP connection based on the first and second models and a second one of the characteristics of the pending web page transaction;
- request the second object of the pending web page transaction using the second TCP connection;
- identify, during selection of the TCP priority for each TCP connection, that the third TCP connection is in use;
- identify, during a download of the first object via the first TCP connection, that the third TCP connection is available;
- determine, based on an analysis of the first model and the third model, that switching the download of the first object from the first TCP connection to the third TCP connection is estimated to reduce a download time;
- and
- switch the download of the first object from the first TCP connection to the third TCP connection.
A non-transitory computer-readable storage medium comprising computer-executable instructions that, when executed by a computing device, cause the computing device to:
- during a pending web page transaction at a first computing device, the pending web page transaction involving obtaining a root object and one or more child objects:
- receive, at a first computing device, a request for a first object, the first object comprising one of the root object or one of the one or more child objects;
- open a first TCP connection to a first content server and a second TCP connection to a second content server in response to receiving the request for the first object, the second TCP connection different than the first TCP connection;
- obtain a first model for the first TCP connection;
- obtain a second model for the second TCP connection;
- obtain a third model for a third TCP connection;
- analyze the first model and the second model to select a TCP priority for each TCP connection, wherein the first model comprises a first data rate history and wherein the second model comprises a second data rate history;
- determine a plurality of characteristics of the pending web page transaction;
- select the first TCP connection based on the first and second models and a first one of the characteristics of the pending web page transaction;
- request the first object via the first TCP connection;
- determine a second object to retrieve as a part of the pending web page transaction, the second object comprising one of the one or more child objects;
- select the second TCP connection based on the first and second models and a second one of the characteristics of the pending web page transaction;
- and
- request the second object of the pending web page transaction using the second TCP connection;
- identify, during the selection of the TCP priority for each TCP connection, that the third TCP connection is in use;
- identify, during a download of the first object via the first TCP connection, that the third TCP connection is available;
- determine, based on an analysis of the first model and the third model, that switching the download of the first object from the first TCP connection to the third TCP connection is estimated to reduce a download time;
- and
- switch the download of the first object from the first TCP connection to the third TCP connection.
Dependencies are inferred from the claim text.