Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
First Claim
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 linkestablishing 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.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus and computer program product for reducing the data transmitted over an external communication link using the TCP protocol from a first application resident in a first computer and to a second application resident in a second computer. The method, apparatus and computer program product include 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. A first real socket in the first computer and a second real socket in the second computer are established to connect the first computer to the second computer over the external communication link and are maintained until the request data has been provided to the second application. In the second computer a second virtual socket is established 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. Request data associated with a first virtual socket is multiplexed onto the first real socket and transmitted over the external communication link utilizing the TCP protocol. The multiplexed request data is received from the external communication link by the second real socket and demultiplexed. The demultiplexed request data is provided to the corresponding second virtual socket which provides the request data to the second application.
189 Citations
21 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification