System and method for efficiently forwarding client requests in a TCP/IP computing environment
First Claim
1. An apparatus for efficiently forwarding client requests in a distributed computing environment, comprising:
- one or more network interfaces;
a processor;
a memory;
computer program code stored in a storage medium, wherein the computer program code comprisesa socket module comprising computer-readable instructions operative to cause the processor to receive a plurality of client requests for forwarding;
a time estimates generator comprising computer-readable instructions operative to cause the processor to dynamically generate, concurrent to and during processing of each client request, time estimates of service availability based on a time-to-idle for sending the client requests over each of a plurality of managed network connections to a remote node, wherein time-to-idle for each managed network connection is calculated based on the amount of time that will elapse before an active managed network connection is usable for a subsequent client request; and
a network connection manager comprising computer-readable instructions operative to cause the processor to select the managed network connection to the remote node with a substantially highest service availability and a substantially lowest time-to-idle and forwarding each client request to the remote node using the selected managed network connection.
13 Assignments
0 Petitions
Accused Products
Abstract
A system and method for efficiently forwarding client requests from a proxy server in a TCP/IP computing environment is described. A plurality of transient requests are received from individual sending clients into a request queue. Each request is commonly addressed to an origin server. Time estimates of TCP overhead, slow start overhead, time-to-idle, and request transfer time for sending the requests over each of a plurality of managed connections to the origin server are dynamically calculated, concurrent to receiving and during processing of each request. The managed connection is chosen from, in order of preferred selection, a warm idle connection, an active connection with a time-to-idle less than a slow start overhead, a cold idle connection, an active connection with a time-to-idle less than a TCP overhead, a new managed connection, and an existing managed connection with a smallest time-to-idle. Each request is forwarded to the origin server over the selected managed connection.
29 Citations
26 Claims
-
1. An apparatus for efficiently forwarding client requests in a distributed computing environment, comprising:
-
one or more network interfaces; a processor; a memory; computer program code stored in a storage medium, wherein the computer program code comprises a socket module comprising computer-readable instructions operative to cause the processor to receive a plurality of client requests for forwarding; a time estimates generator comprising computer-readable instructions operative to cause the processor to dynamically generate, concurrent to and during processing of each client request, time estimates of service availability based on a time-to-idle for sending the client requests over each of a plurality of managed network connections to a remote node, wherein time-to-idle for each managed network connection is calculated based on the amount of time that will elapse before an active managed network connection is usable for a subsequent client request; and a network connection manager comprising computer-readable instructions operative to cause the processor to select the managed network connection to the remote node with a substantially highest service availability and a substantially lowest time-to-idle and forwarding each client request to the remote node using the selected managed network connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a network device operatively disposed in a communications path between a plurality of hosts, a method for efficiently forwarding client requests in a distributed computing environment, the method comprising:
-
maintaining a plurality of managed network connections with a remote node;
receiving a plurality of client requests for forwarding;dynamically generating, concurrent to and during processing of each client request, time estimates of service availability based on a time-to-idle for sending the client requests over each of the plurality of managed network connections to the remote node, wherein time-to-idle for each managed network connection is calculated based on the amount of time that will elapse before an active network connection is usable for a subsequent client request; and selecting the managed network connection to the remote node with a substantially highest service availability and a substantially lowest time-to-idle and forwarding each request to the remote node using the selected network connection. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification