HTTP multiplexor/demultiplexor
First Claim
Patent Images
1. An intermediate computer networking device for use on a computer network connecting a plurality of clients with a plurality of physical server devices, the clients and physical server devices being configured to communicate using Hypertext Transfer Protocol (HTTP), the intermediate computer networking device comprising:
- an HTTP multiplexor/demultiplexor configured to receive HTTP requests from the plurality of clients via a plurality of client TCP connections from the clients to the intermediate computer networking device, and to monitor response parameters that are specific to individual ones of a plurality of server TCP connections from the intermediate computer networking device to a plurality of corresponding sockets on the physical server devices,wherein the HTTP multiplexor/demultiplexor includes a plurality of agents, each agent assigned to a different one of the client TCP connections from the clients to the intermediate computer networking device, andwherein upon receiving an HTTP request from the client, the respective agent;
(1) identifies a single one of the plurality of physical server devices specified as a destination within the HTTP request;
(2) identifies at least two of the server TCP connections, the at least two identified server TCP connections coupling the intermediate computing device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP request;
(3) selects one of the identified server TCP connections that couple the intermediate computing device to different sockets on the same physical server device specified as the destination within the HTTP request, wherein the selection is based on the monitored response parameters specific to the different sockets on the physical server device specified as the destination within the HTTP request, and(4) routes the HTTP request over the selected one of the server TCP connections that couple the intermediate computing device to the different sockets on the same physical server device specified as the destination within the HTTP request for communication to the physical server device as a multiplexed HTTP request.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer networking system, method and device for multiplexing HTTP requests and demultiplexing HTTP responses. The method may include receiving HTTP requests from a plurality of clients and routing those requests to a socket on a server system. The method may also include receiving HTTP responses from the server system and selectively routing those responses to the corresponding clients.
-
Citations
23 Claims
-
1. An intermediate computer networking device for use on a computer network connecting a plurality of clients with a plurality of physical server devices, the clients and physical server devices being configured to communicate using Hypertext Transfer Protocol (HTTP), the intermediate computer networking device comprising:
-
an HTTP multiplexor/demultiplexor configured to receive HTTP requests from the plurality of clients via a plurality of client TCP connections from the clients to the intermediate computer networking device, and to monitor response parameters that are specific to individual ones of a plurality of server TCP connections from the intermediate computer networking device to a plurality of corresponding sockets on the physical server devices, wherein the HTTP multiplexor/demultiplexor includes a plurality of agents, each agent assigned to a different one of the client TCP connections from the clients to the intermediate computer networking device, and wherein upon receiving an HTTP request from the client, the respective agent; (1) identifies a single one of the plurality of physical server devices specified as a destination within the HTTP request; (2) identifies at least two of the server TCP connections, the at least two identified server TCP connections coupling the intermediate computing device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP request; (3) selects one of the identified server TCP connections that couple the intermediate computing device to different sockets on the same physical server device specified as the destination within the HTTP request, wherein the selection is based on the monitored response parameters specific to the different sockets on the physical server device specified as the destination within the HTTP request, and (4) routes the HTTP request over the selected one of the server TCP connections that couple the intermediate computing device to the different sockets on the same physical server device specified as the destination within the HTTP request for communication to the physical server device as a multiplexed HTTP request. - View Dependent Claims (2)
-
-
3. A computer networking method for processing HTTP requests, the method comprising:
-
monitoring a plurality of server TCP connections from an intermediate computer networking device to a plurality of corresponding sockets on a single plurality of physical server devices to determine a response parameter that is specific to each of the server TCP connections; receiving HTTP requests from a plurality of originating clients; identifying a single one of the plurality of physical server devices specified as a destination within the HTTP requests; identifying at least two of the server TCP connections, the at least two identified server TCP connections coupling the intermediate computing device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP requests; selecting one of the identified server TCP connections that couple the intermediate computing device to different sockets on the same physical server device specified as the destination within the HTTP request, wherein the selection is based on the determined response parameter for each of the identified server TCP connections;
routing the HTTP requests to one of the sockets on the physical server device specified as the destination within the HTTP requests, the socket corresponding to the selected server TCP connection, via a multiplexed TCP transmission using the selected server TCP connection. - View Dependent Claims (4, 5)
-
-
6. A computer networking method for data transfer between plural originating clients, a plurality of physical server devices, and a networking device positioned on a computer network intermediate the clients and the physical server devices, the method comprising:
-
at the intermediate networking device, monitoring a plurality of server TCP connections from the intermediate networking device to a plurality of corresponding sockets on the plurality of physical server devices to determine response parameters that are specific to each of the server TCP connections; listening for HTTP requests from the originating clients; receiving HTTP requests from more than one of the originating clients; identifying single one of the plurality of physical server devices specified as a destination within the HTTP requests; identifying least two of the server TCP connections, the at least two identified server TCP connections coupling the intermediate computing device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP requests; selecting one of the server TCP connections that couple the intermediate computing device to different sockets on the same physical server device specified as the destination within the HTTP requests, wherein the selection is based on the determined response parameter for each of the server TCP connections from the intermediate device to different sockets on the physical server device specified as the destination within the HTTP requests; multiplexing the received requests for delivery to the physical server device specified as the destination within the HTTP requests via the selected server TCP connection; and sending the received requests via the selected server TCP connection to an optimal one of the server sockets on the physical server device specified as the destination within the HTTP requests, the optimal socket corresponding to the server TCP connection selected based on the determined response parameter. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer networking method for data transfer between plural originating clients, a plurality of physical server devices and an intermediate networking device, wherein the originating clients and the servers are configured to communicate over a computer network via the intermediate networking device, the method comprising:
-
at the intermediate networking device, monitoring a plurality of server TCP connections from the intermediate networking device to a plurality of corresponding server sockets on the plurality of physical server devices to determine a response parameter that is specific to each individual one of the server TCP connections; listening for HTTP requests from the originating clients; receiving HTTP requests from more than one of the originating clients; identifying a single one of the plurality of physical server devices specified as a destination within the HTTP requests; identifying at least two of the server TCP connections, the at least two identified server TCP connections coupling the intermediate computing device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP requests; multiplexing the received requests; determining an optimal one of the plurality of different server sockets on the physical server device specified as the destination within the HTTP requests based on the determined response parameter determined by monitoring the corresponding plurality of server TCP connections from the intermediate device to the plurality of server sockets on the physical server device; sending the received requests as a multiplexed transmission to the optimal one of the plurality of server sockets on the physical server device specified as the destination within the HTTP requests via an individual one of the plurality of server TCP connections that corresponds to the optimal server socket; listening for HTTP responses from the physical server device; receiving HTTP responses from the physical server device; demultiplexing the HTTP responses received from the physical server device to permit selective routing and transmission to corresponding originating clients; and
sending the received HTTP responses to the corresponding originating clients.
-
-
17. A computer networking device for use on a computer network to improve data transfer, the computer networking device being positioned intermediate plural clients and a plurality of physical server devices, the clients and physical server devices being configured to communicate via the computer network using HTTP communication protocol, the intermediate computer networking device comprising:
-
an HTTP multiplexor/demultiplexor configured to receive HTTP requests from the clients via a plurality of client TCP connections from the clients to the intermediate computer networking device, and to monitor response parameters that are specific to individual ones of a plurality of server TCP connections from the intermediate computer networking device to a plurality of corresponding sockets on the physical server devices, wherein the HTTP multiplexor/demultiplexor includes a plurality of agents, each agent assigned to a different one of the client TOP connections from the clients to the intermediate computer networking device, and wherein upon receiving an HTTP request from the client the respective agent; (1) identifies a single one of the plurality of physical server devices specified as a destination within the HTTP request; (2) identifies at least two of the server TCP connections, the at least two identified server TCP connections coupling the intermediate computing device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP request; (3) selects one of the identified server TCP connections that couple the intermediate computing device to different sockets on the same physical server device specified as the destination within the HTTP request wherein the selection is based on the monitored response parameters specific to the plurality of different sockets on the physical server device specified as the destination within the HTTP request; and (4) routes the HTTP request over the selected one of the server TCP connections that couple the intermediate computer networking device to the different sockets on the same physical server device specified as the destination within the HTTP request, and wherein the computer networking device is further configured to receive HTTP responses from the physical server device specified as the destination within the HTTP request, and route the received HTTP responses to a corresponding one of the clients. - View Dependent Claims (18, 19)
-
-
20. A computer networking system for use with a computer network, they system comprising:
-
a plurality of physical server devices; plurality clients configured to connect to the physical server devices via the computer network; and a computer networking device positioned intermediate the physical server devices and the clients on the computer network; wherein the intermediate computer networking device is configured to monitor response parameters that are specific to individual ones of a plurality of server TCP connections from the computer networking device to a plurality of corresponding server sockets on the physical server devices, and wherein the computer networking device comprises a plurality of agents, each agent assigned to a different one of a plurality of client TCP connections from the computer networking device to the clients, and wherein the agents; (1) receive HTTP requests from the clients, (2) identify a single one of the plurality of physical server devices specified as a destination within the HTTP requests; (3) identify at least two of the server TCP connections, the at least two identified server TCP connections coupling the intermediate computer networking device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP request, (4) select one or more of the identified server TCP connections that couple the intermediate computing device to different sockets on the same physical server device specified as the destination within the HTTP request, wherein the selection is based on the monitored response parameters specific to the plurality of different sockets on the physical server device specified as the destination within the HTTP request, and (5) distribute the received HTTP requests via multiplexed transmission to one or more of the plurality of server sockets on the physical server device specified as the destination within the HTTP request over the one or more selected server TCP connections. - View Dependent Claims (21)
-
- 22. An intermediate computer networking device for improving data transfer via a computer network, the intermediate computer networking device being configured to monitor a plurality of persistent server socket connections from the intermediate computer networking device to a plurality of physical server devices to determine a response parameter that is specific to each of the server socket connections, receive HTTP requests from a client, identify a single one of the plurality of physical server devices specified as a destination within the HTTP request, identify at least two of the server socket connections, the at least two identified server socket connections coupling the intermediate computer networking device to a plurality of different sockets on the same physical server device specified as the destination within the HTTP request, determine an optimal one of the identified server socket connections from the intermediate computer networking device to the physical server device specified as the destination within the HTTP request for each HTTP request based on the respective response parameters for each of the server socket connections, and send each HTTP request to the determined optimal one of the plurality of server socket connections from the intermediate computer networking device to the physical server device specified as the destination within the request via a multiplexed TCP transmission.
Specification