Claims
- 1. A computer networking device for use on a computer network connecting a client and a server, the client and server client being configured to communicate using Hypertext Transfer Protocol (HTTP), the computer networking device comprising, an HTTP multiplexor/demultiplexor configured to receive HTTP requests from the client and to distribute those requests over a plurality of TCP connections to a plurality of corresponding sockets on the server.
- 2. The computer networking device of claim 1, wherein the multiplexor/demultiplexor is further configured to receive HTTP responses from the server over a plurality of TCP connections and to route those responses to the client via a single TCP connection.
- 3. A computer networking method for processing HTTP requests, comprising:
receiving a series of HTTP requests from an originating client; and routing the series of requests to a plurality of sockets on a server via a plurality of TCP connections.
- 4. The method of claim 3, wherein the requests are routed based on a parameter selected from the group consisting of least-lengthy response time, last accessed socket, fewest number of unfulfilled requests, type of requested data, and size of requested data.
- 5. The method of claim 3, further comprising:
receiving HTTP responses over a plurality of connections from the server; and routing the responses to the originating client.
- 6. A computer networking method for data transfer between an originating client, a server, and a networking device positioned intermediate the client and the server on a computer network, the method comprising:
at the networking device, listening for a series of HTTP requests from the originating client; receiving the series of HTTP requests from the originating client; demultiplexing the series of HTTP requests into discrete HTTP requests; and sending each discrete HTTP request to an optimal server socket.
- 7. The method of claim 6, wherein receiving and sending occur via TCP connections.
- 8. The method of claim 7, wherein the TCP connections are persistent.
- 9. The method of claim 6, wherein sending each discrete HTTP request to an optimal server socket includes determining an optimal server socket.
- 10. The method of claim 9, wherein determining an optimal server socket includes determining a server socket with a least-lengthy response time.
- 11. The method of claim 9, wherein determining an optimal server socket includes determining a last-accessed server socket.
- 12. The method of claim 9, wherein determining an optimal server socket includes determining a server socket with the fewest number of unfulfilled requests.
- 13. The method of claim 6, further comprising, listening for HTTP responses from a plurality of server sockets.
- 14. The method of claim 13, further comprising, receiving the HTTP responses from the plurality of server sockets.
- 15. The method of claim 14, further comprising, multiplexing the HTTP responses from the plurality of server sockets into a series of HTTP responses.
- 16. The method of claim 15, further comprising, sending the series of HTTP responses to the originating client.
- 17. A computer networking method for data transfer between an originating client, a server, and an intermediate networking device, wherein the originating client and the server are configured to communicate over a computer network via the intermediate networking device, the method comprising:
at the intermediate networking device, listening for a series of HTTP requests from the originating client; receiving the series of HTTP requests from the originating client; demultiplexing the series of HTTP requests into discrete HTTP requests; determining an optimal server socket for each discrete HTTP request; sending each discrete HTTP request to the optimal server socket for the request; listening for HTTP responses from a plurality of server sockets; receiving the HTTP responses from the plurality of server sockets; multiplexing the HTTP responses from the plurality of server sockets into a series of HTTP responses; and sending the series of HTTP responses to the originating client.
- 18. A computer networking device for use on a computer network to improve data transfer, positioned intermediate a client and a server, the client and server being configured to communicate via the computer network using HTTP communication protocol, the computer networking device comprising, an HTTP multiplexor/demultiplexor configured to receive HTTP requests from the client and to send the HTTP requests to a plurality of sockets on the server, and further configured to receive HTTP responses from the plurality of sockets on the server and to send the HTTP responses to the client.
- 19. The device of claim 18, wherein the computer networking device establishes TCP connections with the client and the plurality of server sockets.
- 20. The device of claim 19, wherein the TCP connections are persistent.
- 21. The device of claim 18, wherein the HTTP multiplexor/demultiplexor is further configured to determine an optimal server socket for each HTTP request.
- 22. The device of claim 21, wherein the HTTP multiplexor/demultiplexor is configured to send each HTTP request to the determined optimal server socket for the request.
- 23. A computer networking system for use with a computer network, the system comprising:
a server; a client configured to connect to the server via the computer network; and a computer networking device positioned intermediate the server and the client on the computer network; wherein the computer networking device is configured to receive HTTP requests from the client and to distribute those requests over a plurality of TCP connections to a plurality of corresponding sockets on the server.
- 24. The computer networking system of claim 23, wherein the computer networking device is further configured to receive HTTP responses from the server over a plurality of TCP connections and to route those responses to the client via a single TCP connection.
- 25. A computer networking device for improving data transfer via a computer network, the device being configured to receive HTTP requests from a client, to determine an optimal server socket for each HTTP requests, and to send each HTTP request to the determined optimal server socket for the request.
- 26. The device of claim 25, wherein the device is further configured to receive an HTTP response from the optimal server socket and to send the HTTP response to the client.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from U.S. provisional patent application, Serial No. 60/239,552, entitled “HTTP Multiplexor/Demultiplexor,” filed on Oct. 10, 2000, the disclosure of which is herein incorporated by reference.
[0002] 1. Technical Field
[0003] The present invention relates generally to data transmission on computer networks, and more particularly to a Hypertext Transfer Protocol (HTTP) Multiplexor/Demultiplexor.
[0004] 2. Background of the Invention
[0005] The Internet has experienced explosive growth in recent years. The emergence of the World Wide Web has enabled millions of users around the world to download easily web resources containing text, graphics, video, and sound data while at home, work, or from remote locations via wireless devices. These web resources often are large in size and therefore require a long time to download, causing the user delay and frustration. Delay often causes users to abandon the requested web page and move on to another web page, resulting in lost revenue and exposure for many commercial web sites.
[0006] One cause of delay is accumulation of Hypertext Transfer Protocol (HTTP) requests within a Transfer Control Protocol (TCP) buffer of a server socket at a server. When a user requests a web page, a web browser sends HTTP requests to a server socket via an established TCP connection. When the server does not process requests to a socket quickly enough, HTTP requests build up in the TCP buffer for that socket, resulting in processing delay in that socket.
[0007] It would be desirable to provide a system, method, and device for reducing buffer congestion and delay in server response time.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60239552 |
Oct 2000 |
US |