That which is claimed is:
1. A method of reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer utilizing the TCP communication protocol, the method comprising: establishing a first virtual socket in the first computer in response to each connection request by the first application for receiving request data originated by the first application; establishing a first real socket in the first computer and a second real socket in the second computer to connect the first computer to the second computer over the external communication link establishing in the second computer a second virtual socket for each connection request by the first application wherein the second virtual socket corresponds to a first virtual socket established in the first computer in response to a connection request by the first application; multiplexing request data associated with a first virtual socket onto the first real socket; transmitting the multiplexed request data over the external communication link utilizing the TCP protocol to the second real socket; receiving the multiplexed request data from the external communication link; demultiplexing the request data received by the second real socket from the external communication link; providing the demultiplexed request data to the second virtual socket which corresponds to the first virtual socket established in response to the request from the first application; providing the request data received by the second virtual socket to the second application; and maintaining the first and second real sockets until the request data corresponding to a request from the first application which established a first virtual socket has been provided to the second application.
2. The method of claim 1 further comprising the steps of: receiving response data from the second application in response to a request from the first application at the second virtual socket associated with the request from the first application; multiplexing the response data received by the second virtual socket onto the second real socket; transmitting the multiplexed response data over the external communication link utilizing the TCP communication protocol to the first real socket; receiving the multiplexed response data from the external communication link; demultiplexing the response data received by the first real socket; providing the demultiplexed response data to the first virtual socket which corresponds to the request from the first application as the response to the request from the first application; and providing the response data received by the first virtual socket to the first application.
3. The method of claim 2 further comprising the steps of: closing the second virtual socket after the response data is multiplexed; and closing the first virtual socket after the response data is provided to the first application.
4. The method of claim 3 wherein said maintaining step comprises closing the first and second real sockets when all first virtual sockets are closed.
5. The method of claim 3 wherein said maintaining step comprises maintaining the first and second real sockets for a predetermined time after all first virtual sockets are closed.
6. The method of claim 1 wherein the first application comprises a web server and the second application comprises a web browser.
7. The method of claim 1 wherein the external communication link comprises a wireless communication link.
8. An apparatus for reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer utilizing the TCP communication protocol, the apparatus comprising: means for establishing a first virtual socket in the first computer in response to each connection request by the first application for receiving request data originated by the first application; means for establishing a first real socket in the first computer and a second real socket in the second computer to connect the first computer to the second computer over the external communication link means for establishing in the second computer a second virtual socket for each connection request by the first application wherein the second virtual socket corresponds to a first virtual socket established in the first computer in response to a connection request by the first application; means for multiplexing request data associated with a first virtual socket onto the first real socket; means for transmitting the multiplexed request data over the external communication link utilizing the TCP protocol to the second real socket; means for receiving the multiplexed request data from the external communication link; means for demultiplexing the request data received by the second real socket from the external communication link; means for providing the demultiplexed request data to the second virtual socket which corresponds to the first virtual socket established in response to the request from the first application; means for providing the request data received by the second virtual socket to the second application; and means for maintaining the first and second real sockets until the request data corresponding to a request from the first application which established a first virtual socket has been provided to the second application.
9. The apparatus of claim 8 further comprising the steps of: means for receiving response data from the second application in response to a request from the first application at the second virtual socket associated with the request from the first application; means for multiplexing the response data received by the second virtual socket onto the second real socket; means for transmitting the multiplexed response data over the external communication link utilizing the TCP communication protocol to the first real socket; means for receiving the multiplexed response data from the external communication link; means for demultiplexing the response data received by the first real socket; means for providing the demultiplexed response data to the first virtual socket which corresponds to the request from the first application as the response to the request from the first application; and means for providing the response data received by the first virtual socket to the first application.
10. The apparatus of claim 9 further comprising the steps of: means for closing the second virtual socket after the response data is multiplexed; and means for closing the first virtual socket after the response data is provided to the first application.
11. The apparatus of claim 10 wherein said means for maintaining comprises means for closing the first and second real sockets when all first virtual sockets are closed.
12. The apparatus of claim 10 wherein said means for maintaining comprises means for maintaining the first and second real sockets for a predetermined time after all first virtual sockets are closed.
13. The apparatus of claim 8 wherein the first application comprises a web server and the second application comprises a web browser.
14. The apparatus of claim 8 wherein the external communication link comprises a wireless communication link.
15. A computer program product for reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer utilizing the TCP communication protocol, the computer program product comprising: a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising: computer readable program code means for establishing a first virtual socket in the first computer in response to each connection request by the first application for receiving request data originated by the first application; computer readable program code means for establishing a first real socket in the first computer and a second real socket in the second computer to connect the first computer to the second computer over the external communication link computer readable program code means for establishing in the second computer a second virtual socket for each connection request by the first application wherein the second virtual socket corresponds to a first virtual socket established in the first computer in response to a connection request by the first application; computer readable program code means for multiplexing request data associated with a first virtual socket onto the first real socket; computer readable program code means for transmitting the multiplexed request data over the external communication link utilizing the TCP protocol to the second real socket; computer readable program code means for receiving the multiplexed request data from the external communication link; computer readable program code means for demultiplexing the request data received by the second real socket from the external communication link; computer readable program code means for providing the demultiplexed request data to the second virtual socket which corresponds to the first virtual socket established in response to the request from the first application; computer readable program code means for providing the request data received by the second virtual socket to the second application; and computer readable program code means for maintaining the first and second real sockets until the request data corresponding to a request from the first application which established a first virtual socket has been provided to the second application.
16. The computer program product of claim 15 further comprising the steps of: computer readable program code means for receiving response data from the second application in response to a request from the first application at the second virtual socket associated with the request from the first application; computer readable program code means for multiplexing the response data received by the second virtual socket onto the second real socket; computer readable program code means for transmitting the multiplexed response data over the external communication link utilizing the TCP communication protocol to the first real socket; computer readable program code means for receiving the multiplexed response data from the external communication link; computer readable program code means for demultiplexing the response data received by the first real socket; computer readable program code means for providing the demultiplexed response data to the first virtual socket which corresponds to the request from the first application as the response to the request from the first application; and computer readable program code means for providing the response data received by the first virtual socket to the first application.
17. The computer program product of claim 16 further comprising the steps of: computer readable program code means for closing the second virtual socket after the response data is multiplexed; and computer readable program code means for closing the first virtual socket after the response data is provided to the first application.
18. The computer program product of claim 17 wherein said computer readable program code means for maintaining comprises computer readable program code means for closing the first and second real sockets when all first virtual sockets are closed.
19. The computer program product of claim 17 wherein said computer readable program code means for maintaining comprises computer readable program code means for maintaining the first and second real sockets for a predetermined time after all first virtual sockets are closed.
20. The computer program product of claim 15 wherein the first application comprises a web server and the second application comprises a web browser.
21. The computer program product of claim 15 wherein the external communication link comprises a wireless communication link. |