System for reducing user-visibility latency in network transactions
First Claim
1. A method for communications between two network devices, said method comprising the steps of:
- transmitting a first request packet from a first network device to a second network device, the first request packet consisting of a request to establish a new connection and a request for data, the request to establish a new connection including a new connection identifier;
selectively accepting the new connection or discarding the request based upon a comparison of the new connection identifier to a current connection identifier maintained by the second network device;
transmitting a first response packet from the second network device to the first network device, the first response packet comprising a confirmation of the request to establish a new connection and a reply to the request for data; and
maintaining a connection between the first and second network devices after receipt of the first response packet and using the maintained connection for transmission of one or more additional request packets associated with the first request packet and one or more corresponding response packets, wherein a last one of the additional request packets includes an instruction to drop the maintained connection, said instruction specifying the new connection identifier, and a corresponding last one of the additional response packets includes a confirmation of said instruction.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for reducing user-visible latency for communications between two network devices is implemented in a method which includes transmitting a request packet from a first network device to a second network device, where the request packet has a request to establish a new connection and a request for data, with the request to establish a new connection including a connection identifier. The second network device selectively accepts the new connection or discards the request based upon a comparison of the connection identifier to a corresponding connection identifier that it maintains. The second network device transmits a response packet to the first network device that includes a confirmation of the request to establish a new connection and a reply to the request for data. A connection between the first and second network devices is maintained after receipt of the response packet.
-
Citations
25 Claims
-
1. A method for communications between two network devices, said method comprising the steps of:
-
transmitting a first request packet from a first network device to a second network device, the first request packet consisting of a request to establish a new connection and a request for data, the request to establish a new connection including a new connection identifier;
selectively accepting the new connection or discarding the request based upon a comparison of the new connection identifier to a current connection identifier maintained by the second network device;
transmitting a first response packet from the second network device to the first network device, the first response packet comprising a confirmation of the request to establish a new connection and a reply to the request for data; and
maintaining a connection between the first and second network devices after receipt of the first response packet and using the maintained connection for transmission of one or more additional request packets associated with the first request packet and one or more corresponding response packets, wherein a last one of the additional request packets includes an instruction to drop the maintained connection, said instruction specifying the new connection identifier, and a corresponding last one of the additional response packets includes a confirmation of said instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
transmitting a second request packet from the first network device to the second network device using the maintained connection, the second request packet comprising a second request for data; and
transmitting a second response packet from the second network device to the first network device using the maintained connection, the second response packet comprising a reply to the second request for data.
-
-
3. The method of claim 2, wherein each of the second request packet and the second response packet further comprises an end of transmission signal, said method further comprising the step of terminating the maintained connection following receipt of the second response packet by the first network device.
-
4. The method of claim 3, wherein said step of terminating the maintained connection comprises transmitting a signal from the first network device to the second network device acknowledging receipt of the end of transmission signal.
-
5. The method of claim 1, further comprising the steps of:
-
transmitting a plurality of additional request packets from the first network device to the second network device in a pipelined manner using the maintained connection, wherein each of the additional request packets comprises a request for data; and
transmitting a plurality of response packets from the second network device to the first network device in a pipelined manner using the maintained connection, wherein each of the additional response packets comprises a reply to a corresponding one of the plurality of additional requests for data.
-
-
6. The method of claim 1, wherein said step of transmitting a response packet further comprises returning all of the data requested by the first network device.
-
7. The method of claim 1, wherein said step of transmitting a response packet further comprises returning a portion of the data requested by the first network device.
-
8. The method of claim 1, wherein said step of transmitting a request packet further comprises transmitting a connection identifier corresponding to a plurality of communications lines.
-
9. The method of claim 1, wherein said step of transmitting a request packet further comprises transmitting a connection identifier corresponding to a pipelined connection.
-
10. The method of claim 1, wherein said step of transmitting a request packet further comprises transmitting a connection identifier corresponding to a non-pipelined connection.
-
11. A storage medium containing a set of instructions for execution by a first network device capable of communicating with a second network device, said set of instructions comprising instructions for:
-
transmitting a first request packet from a first network device to a second network device, the first request packet consisting of a request to establish a new connection and a request for data, the request to establish a new connection including a new connection identifier;
selectively accepting the new connection or discarding the request based upon a comparison of the new connection identifier to a current connection identifier maintained by the second network device;
transmitting a first response packet from the second network device to the first network device, the first response packet comprising a confirmation of the request to establish a new connection and a reply to the request for data; and
maintaining a connection between the first and second network devices after receipt of the first response packet and using the maintained connection for transmission of one or more additional request packets associated with the first request packet and one or more corresponding response packets, wherein a last one of the additional request packets includes an instruction to drop the maintained connection, said instruction specifying the new connection identifier, and a corresponding last one of the additional response packets includes a confirmation of said instruction. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
transmitting a second request packet to the second network device using the maintained connection, the second request packet comprising a second request for data; and
receiving a second response packet from the second network device using the maintained connection, the second response packet comprising a reply to the second request for data.
-
-
13. The storage medium of claim 12, wherein each of the second request packet and the second response packet further comprises an end of transmission signal, said set of instructions further comprising instructions for terminating the maintained connection following receipt of the second response packet.
-
14. The storage medium of claim 13, wherein said instructions for terminating the maintained connection comprise instructions for transmitting a signal to the second network device acknowledging receipt of the end of transmission signal.
-
15. The storage medium of claim 11, wherein the set of instructions further comprises instructions for:
-
transmitting a plurality of additional request packets to the second network device in a pipelined manner using the maintained connection, wherein each of the additional request packets comprises a request for data; and
receiving a plurality of response packets from the second network device in a pipelined manner using the maintained connection, wherein each of the additional response packets comprises a reply to a corresponding one of the plurality of additional requests for data.
-
-
16. The storage medium of claim 11, wherein the first network device comprises a client device.
-
17. The storage medium of claim 16, wherein the second network device comprises a proxy.
-
18. The storage medium of claim 17, wherein the second network device comprises a server device.
-
19. A storage medium containing a set of instructions for execution by a first network device capable of communicating with a second network device, said set of instructions comprising instructions for:
-
receiving a first request packet from the second network device, the first request packet consisting of a request to establish a new connection and a request for data, the request to establish a new connection including a new connection identifier;
selectively accepting the new connection or discarding the request based upon a comparison of the new connection identifier to a current connection identifier maintained by the first network device;
transmitting a first response packet to the second network device, the first response packet comprising a confirmation of the request to establish a new connection and a reply to the request for data; and
maintaining a connection between the first and second network devices after transmission of the first response packet and using the maintained connection for transmission of one or more additional request packets associated with the first request packet and one or more corresponding response packets, wherein a last one of the additional request packets includes an instruction to drop the maintained connection, said instruction specifying the new connection identifier, and a corresponding last one of the additional response packets includes a confirmation of said instruction. - View Dependent Claims (20, 21, 22, 23)
receiving a second request packet from the second network device using the maintained connection, the second request packet comprising a second request for data; and
transmitting a second response packet to the second network device using the maintained connection, the second response packet comprising a reply to the second request for data.
-
-
21. The storage medium of claim 20, wherein each of the second request packet and the second response packet further comprises an end of transmission signal, said set of instructions further comprising instructions for terminating the maintained connection following transmission of the second response packet.
-
22. The storage medium of claim 21, wherein said instructions for terminating the maintained connection further comprise instructions for terminating the maintained connection following receipt of a signal from the second network device acknowledging receipt of the end of transmission signal.
-
23. The storage medium of claim 19, further comprising instructions for:
-
receiving a plurality of additional request packets from the second network device in a pipelined manner using the maintained connection, wherein each of the additional request packets comprises a request for data; and
transmitting a plurality of response packets to the second network device in a pipelined manner using the maintained connection, wherein each of the additional response packets comprises a reply to a corresponding one of the plurality of additional requests for data.
-
-
24. A method for providing data to a requesting device, wherein the data to be provided consists of a plurality of data objects, said method comprising the steps of:
-
(a) receiving a first request packet from a requesting device, the first request packet consisting of a first synchronization signal and a request for a first data object, the first synchronization signal including a new connection identifier;
(b) establishing a connection with the requesting device if the new connection identifier does not match an identifier for an existing connection;
(c) transmitting a first response packet to the requesting device over the established connection, the first response packet consisting of a second synchronization signal, an acknowledgment of the first synchronization signal, and the first data object;
(d) receiving a second request packet from the requesting device over the established connection, the second request packet consisting of a request for a second data object;
(e) transmitting a second response packet to the requesting device over the established connection, the second response packet consisting of the second data object;
(f) repeating steps (d) and (e) for all but a last of the plurality of data objects in the data to be transmitted;
(g) receiving a final request packet from the requesting device over the established connection, the final request packet consisting of an instruction to terminate the established connection and a request for the last data object, said instruction specifying the new connection identifier;
(h) transmitting a final response packet to the requesting device over the established connection, the final response packet consisting of a confirmation of the instruction to terminate the established connection and the last data object; and
(i) receiving an acknowledgment that the last data object was received by the requesting device and terminating the established connection in response thereto. - View Dependent Claims (25)
-
Specification