Claims
- 1. A computer program product for reducing overhead on a proxied connection between a client and a server, the computer program product being embodied in a computer readable medium and comprising computer instructions for:receiving incoming data packets from a client on a client side and from a server on a server side, wherein the incoming data packets are associated with a proxied connection between the client and the server; processing the incoming data packets with a participating application and relaying data derived from the incoming data packets from the client side to the server side and from the server side to the client side by generating outgoing data packets; determining that the proxied connection is a suitable connection to be unproxied; determining that all outgoing data packets have been acknowledged; and routing incoming data packets to a non-participating application wherein the nonparticipating application relays client originated incoming data packets from the client side to the server side and relays server originated incoming data packets from the server side to the client side.
- 2. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 1 wherein the participating application participates in the TCP protocol and the nonparticipating application does not participate in the TCP protocol.
- 3. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 1 wherein the nonparticipating application does not acknowledge incoming packets.
- 4. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 1 wherein the nonparticipating application does not check the checksum of incoming packets.
- 5. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 1 wherein the incoming packets from the client side have a client sequence number and a client acknowledgment number and wherein the incoming packets from the server side have a server sequence number and a server acknowledgment number and wherein the nonparticipating application applies a client originated packet sequence synchronization factor to the client sequence number so that the client sequence number corresponds to the sequence number of the next packet expected by the server.
- 6. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 5 wherein the client originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the server and the last data acknowledgment number sent by the participating application to the client.
- 7. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 1 wherein the incoming packets from the server side have a server sequence number and a server acknowledgment number and wherein the incoming packets from the client side have a client sequence number and a client acknowledgment number and wherein the nonparticipating application applies a server originated packet sequence synchronization factor to the server sequence number so that the server sequence number corresponds to the sequence number of the next packet expected by the client.
- 8. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 7 wherein the server originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the client and the last data acknowledgment number sent by the participating application to the server.
- 9. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 1 wherein the incoming data packets include packet headers having data checksums and IP checksums and wherein the data checksums and IP checksums are incremented and not checked by the nonparticipating application.
- 10. A computer program product as recited in claim 1, the computer program product further comprising computer instructions for defining a connection object including a quad, the quad including a client IP address, a server IP address, a client port number, and a server port number wherein the connection object is used to modify packet headers in the nonparticipating application.
- 11. A computer program product for reducing overhead on a proxied connection between a client and a server as recited in claim 10 wherein the connection object further includes a client originated packet sequence synchronization factor and a server originated packet sequence synchronization factor wherein the client originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the server and the last data acknowledgment number sent by the participating application to the client and the server originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the client and the last data acknowledgment number sent by the participating application to the server.
- 12. A system for reducing overhead on a proxied connection between a client and a server comprising:a computer comprising a network interface configured to receive incoming data packets from a client on a client side and from a server on a server side, wherein the incoming data packets are associated with a proxied connection between the client and the server, the computer being configured to: process the incoming data packets with a participating application and relay data derived from the incoming data packets from the client side to the server side and from the server side to the client side by generating outgoing data packets; determine that the proxied connection is a suitable connection to be unproxied; determine that all outgoing data packets have been acknowledged; and route incoming data packets to a nonparticipating application wherein the nonparticipating application relays client originated incoming data packets from the client side to the server side and relays server originated incoming data packets from the server side to the client side.
- 13. A system as recited in claim 12 wherein the participating application participates in the TCP protocol and the nonparticipating application does not participate in the TCP protocol.
- 14. A system as recited in claim 12 wherein the nonparticipating application does not acknowledge incoming packets.
- 15. A system as recited in claim 12 wherein the nonparticipating application does not check the checksum of incoming packets.
- 16. A system as recited in claim 12 wherein the incoming packets from the client side have a client sequence number and a client acknowledgment number and wherein the incoming packets from the server side have a server sequence number and a server acknowledgment number and wherein the nonparticipating application applies a client originated packet sequence synchronization factor to the client sequence number so that the client sequence number corresponds to the sequence number of the next packet expected by the server.
- 17. A system as recited in claim 16 wherein the client originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the server and the last data acknowledgment number sent by the participating application to the client.
- 18. A system as recited in claim 12 wherein the incoming packets from the server side have a server sequence number and a server acknowledgment number and wherein the incoming packets from the client side have a client sequence number and a client acknowledgment number and wherein the nonparticipating application applies a server originated packet sequence synchronization factor to the server sequence number so that the server sequence number corresponds to the sequence number of the next packet expected by the client.
- 19. A system as recited in claim 18 wherein the server originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the client and the last data acknowledgment number sent by the participating application to the server.
- 20. A system as recited in claim 12 wherein the incoming data packets include packet headers having data checksums and IP checksums and wherein the data checksums and IP checksums are incremented and not checked by the nonparticipating application.
- 21. A system as recited in claim 12 wherein the computer is further configured to define a connection object including a quad, the quad including a client IP address, a server IP address, a client port number, and a server port number wherein the connection object is used to modify packet headers in the nonparticipating application.
- 22. A system as recited in claim 21 wherein the connection object further includes a client originated packet sequence synchronization factor and a server originated packet sequence synchronization factor wherein the client originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the server and the last data acknowledgment number sent by the participating application to the client and the server originated packet sequence synchronization factor is derived from the difference between the last data sequence number sent by the participating application to the client and the last data acknowledgment number sent by the participating application to the server.
Parent Case Info
This is a Continuation of application Ser. No. 08/903,823, filed Jul. 31, 1997, now U.S. Pat. No. 6,006,268 which is hereby incorporated by reference.
US Referenced Citations (7)
Continuations (1)
|
Number |
Date |
Country |
Parent |
08/903823 |
Jul 1997 |
US |
Child |
09/430273 |
|
US |