Method and apparatus for supporting multiple outstanding network requests on a single connection
First Claim
Patent Images
1. A computer network supporting a plurality of outstanding requests between a client and a server on a single connection, the computer network comprising:
- a client for transmitting and maintaining status information for the plurality of simultaneously outstanding requests to the server, the client comprising;
a sequence value generator for providing a sequence value for insertion into a request packet transmitted by the client in order to identify a response packet associated with the request packet transmitted by the client;
a request packet manager comprising a set of request status entries associated with request packets transmitted by the client, the set of request status entries indicating whether a corresponding response packet has been received by the client; and
indexing means for correlating response packets received by the client to entries within the set of request status entries in accordance with at least a sequence value provided by each response packet; and
a server for receiving the plurality of outstanding requests and transmitting response packets to the client corresponding to the simultaneously outstanding requests.
2 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and method are disclosed for supporting a plurality of outstanding requests between a client and server in a network. If the server completes computation of a later request from a client before an earlier request, then the network protocol supports transmission of responses in an out-of-order manner to the client, thereby allowing a high degree of parallelism on the client and the server. The server buffers responses until receiving an implicit acknowledgement from the client.
75 Citations
25 Claims
-
1. A computer network supporting a plurality of outstanding requests between a client and a server on a single connection, the computer network comprising:
-
a client for transmitting and maintaining status information for the plurality of simultaneously outstanding requests to the server, the client comprising; a sequence value generator for providing a sequence value for insertion into a request packet transmitted by the client in order to identify a response packet associated with the request packet transmitted by the client; a request packet manager comprising a set of request status entries associated with request packets transmitted by the client, the set of request status entries indicating whether a corresponding response packet has been received by the client; and indexing means for correlating response packets received by the client to entries within the set of request status entries in accordance with at least a sequence value provided by each response packet; and a server for receiving the plurality of outstanding requests and transmitting response packets to the client corresponding to the simultaneously outstanding requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A client for supporting transmitting and maintaining status information for a plurality of simultaneously outstanding requests to a server in a computer network, the client comprising:
-
a sequence value generator for providing a sequence value for insertion into a request packet transmitted by the client in order to identify a response packet associated with the request packet transmitted by the client; a request packet manager comprising a set of request status entries associated with request packets transmitted by the client, the set of request status entries indicating whether a corresponding response packet has been received by the client; and indexing means for correlating response packets received by the client to entries within the set of request status entries in accordance with at least a sequence number provided by each response packet.
-
-
16. A method for synchronizing multiple outstanding network requests and responses between a client and a server in a computer network wherein the client includes client status information for identifying requests from the client for which response packets have not been received from the server, said method comprising the steps performed by the client of:
-
first transmitting a first request packet to the server; second transmitting a second request packet to the server after the first transmitting step; first receiving a response packet associated with the second request packet before receiving a response packet associated with the first request packet; and first updating, before receiving a response packet associated with the first request packet, the client status information to indicate the receipt by the client of the response packet associated with the second request packet. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification