System and a method for accelerating communication of TCP/IP based content through the use of fake host names
AssigneeFlash Networks Ltd.
InventorsAssaf Bar-Yaacov, Sharon Aviran
Life of this patent
Estimating the term…
Abstract
A technique for downloading multiple objects from at least one server in an accelerated manner. Typically, in a TCP/IP environment, a client is limited in the number of sockets that can be opened for a single server. A spoofer (410) is utilized to intercept traffic between the server and the client and modify the traffic so that from the client's perspective, it appears as though objects from a single server are actually being sourced from multiple servers. Thus, the client is able to open additional sockets to receive objects from the server thereby allowing for a parallel download of the objects. This greatly reduces the amount of time necessary to download the objects.
Claims39
A system, operating within a TCP based data network, to overcome the connection limitations recommended by the HTTP protocols by opening additional TCP connections between a client and a host, which has three or more objects, the system comprising:
- a spoofer that spoofs the client into believing that at least one of the three or more objects is located at a fake host other than the host by using a technique selected from a group of techniques including (a) generating a fake address and (b) generating a fake host name, wherein the spoofer intercepts a plurality of data chunks of a plurality of objects being exchanged between the client and the host;
- for each particular object of the plurality of objects being exchanged:
- creates an input buffer for storing received data chunks associated with the particular object;
- creates an output buffer for storing data chunks to be transmitted;
- creates a first socket for interfacing to the client and a second socket for interfacing to the host;
- and
- creates a structure to maintain information pertaining to the particular object;
- and
- for each particular data chunk received:
- identifies the object type of the data chunk;
- and
- processes the data chunk in accordance with the object type;
- a markup language file parse functional unit that parses the input buffer and examines the structure for the particular object and replaces addresses and names of the host in the input buffer with fake addresses and fake host names and transfers the data chunks associated with the particular object modified in the input buffer to the spoofer to be stored in the output buffer;
- and
- a request parse functional unit that parses the input buffer and examines the structure for the particular object and restores the data chunks associated with the particular object in the input buffer to the addresses and names of the host and transfers the data chunks associated with the particular object modified in the input buffer to the spoofer to be stored in the output buffer.
A method for overcoming the open connection limitations recommended by an HTTP protocol and opening a large number of TCP connections between a client and a host, the method comprising the steps of:
- spoofing the client that a plurality of objects, which are located on the host, are spread over at least one different fake host, wherein the client opens at least one additional connection with the host beyond what is recommended under the HTTP protocol, using the address of the at least one different fake host by
- parsing and examining a received data chunk of markup language file for a particular object and replacing address and name of the host of the particular object with fake address and fake host name and transferring the modified data chunks associated with the particular object toward the client;
- and
- parsing and examining a data chunk of a request from the client for the particular object and restoring the fake address and the fake name of the host of the particular object to the address and name of the host and transferring the restored data chunk of request toward the host.
A method for overcoming the open connection limitations recommended by an HTTP protocol and opening a large number of TCP connections between a client and at least one server, the method comprising the steps of:
- receiving a presentation language document from a server in response to a request from a client, the presentation language document identifying a particular set of web content to be downloaded, the particular set of web content comprising a plurality of objects residing on the same server;
- modifying the source address and the server name of at least one object so as to create the appearance that the at least one object, which resides on the same server, is residing on a different server, causing the client to open an additional TCP connection, beyond what is recommended under the HTTP protocol, for the at least one object by
- parsing and examining a received data chunk of markup language file for a particular object and replacing address and name of the host of the particular object with fake address and fake host name and transferring the modified data chunks associated with the particular object toward the client;
- and
- parsing and examining a data chunk of a request from the client for the particular object and restoring the fake address and the fake name of the host of the particular object to the address and name of the host and transferring the restored data chunk of the request associated with the particular object toward the host.
A method for overcoming the open connection limitations as recommended by an HTTP protocol and opening a larger number of TCP connections between a client and at least one server which has three or more objects, thereby allowing for the acceleration of the delivery of web content, the method comprising the steps of:
- modifying the source of a presentation language document of web content that is being received from a host so as to create the appearance that a plurality of objects, which are located on the same host, are spread over at least one different fake host by
- intercepting the transmission of a first data chunk of a first object from a first host;
- creating a first input buffer for storing received data chunks associated with the first object;
- creating a first output buffer for storing data chunks associated with the first object to be transmitted;
- creating a structure to maintain information pertaining to the first object;
- storing the first data chunk of the first object in the first input buffer;
- identifying the object type of the first data chunk of the first object;
- and
- processing the first data chunk of the first object in accordance with the object type;
- and
- storing the processed first data chunk of the first object in the first output buffer
- providing the modified web content to a requesting client;
- and modifying web content that is being transmitted by a client to the host to ensure the correct source information,
- wherein at least one additional connection beyond what is recommended under the HTTP protocol is opened between the client and the host using the address of the fake host.
Dependencies are inferred from the claim text.