Enhancements for TCP performance enhancing proxies
First Claim
1. A method for sending and receiving data packets over a communications system using a transmission control protocol (TCP), said method comprising the steps of:
- replacing a segment of the communications system with a middle communications link operating under a flight protocol with a premise that a connection will be created successfully across the middle communications link;
maintaining TCP connections at a first end point and a second end point of the communications system and beginning to receive data packets from the first endpoint independent of a pre-data agreement from the second endpoint;
converting the data packets sent over the first endpoint from TCP to said flight protocol;
transmitting the converted data packets from a first end of the middle communications link using the flight protocol;
receiving the data packets at a second end of the middle communications link;
reconverting the data packets from the flight protocol to the TCP, wherein all non-TCP data, all non-TCP related Internet Control Message Protocol (ICMP) data, and all encrypted TCP data sent from the first endpoint pass through the middle communications link without being modified;
transmitting one or more acknowledgement packets from the second end to the first end of the middle communications link; and
sending the data packets in the TCP to the second endpoint of the communications system.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system is presented for the bi-directional transfer of data packets over a TCP communications system that can comprise both terrestrial and satellite links, using an enhanced flight protocol that, transparently to the end users, replaces the TCP over the congested satellite link portion of the system that accelerates the data delivery between end users and improves reliability of the data packet transmission. The invention eliminates the conventional TCP 3-way handshake and other associated time-delay procedures and replaces them with an improved use of performance enhancing proxies at either end of the satellite link that use a unique acknowledgement methods, data buffer storage and packet header field arrangement among the design features of a flight protocol method and system that accelerates data packet transfer with more efficient link capacity use and greater data throughput.
-
Citations
19 Claims
-
1. A method for sending and receiving data packets over a communications system using a transmission control protocol (TCP), said method comprising the steps of:
-
replacing a segment of the communications system with a middle communications link operating under a flight protocol with a premise that a connection will be created successfully across the middle communications link;
maintaining TCP connections at a first end point and a second end point of the communications system and beginning to receive data packets from the first endpoint independent of a pre-data agreement from the second endpoint;
converting the data packets sent over the first endpoint from TCP to said flight protocol;
transmitting the converted data packets from a first end of the middle communications link using the flight protocol;
receiving the data packets at a second end of the middle communications link;
reconverting the data packets from the flight protocol to the TCP, wherein all non-TCP data, all non-TCP related Internet Control Message Protocol (ICMP) data, and all encrypted TCP data sent from the first endpoint pass through the middle communications link without being modified;
transmitting one or more acknowledgement packets from the second end to the first end of the middle communications link; and
sending the data packets in the TCP to the second endpoint of the communications system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for sending and receiving data packets over a communications system using a transmission control protocol (TCP), said method comprising the steps of:
-
replacing a segment of the communications system with a middle communications link operating under a flight protocol with a premise that a connection will be created successfully across the middle communications link;
maintaining TCP connections at a first end point and a second end point of the communications system and beginning to receive data packets from the first endpoint independent of a pre-data agreement from the second endpoint;
converting the data packets sent over the first endpoint from TCP to said flight protocol;
transmitting the converted data packets from a first end of the middle communications link using the flight protocol;
receiving the data packets at a second end of the middle communications link;
reconverting the data packets from the flight protocol to the TCP;
transmitting one or more acknowledgement packets from the second end to the first end of the middle communications link; and
sending the data packets in the TCP to the second endpoint of the communications system;
wherein the replacing step further comprises splitting an encapsulation of a virtual private network (VPN) packet so that VPN user space exists at a service provider that manages the VPN and placing a receiving end of said middle communications link and network address translators (NAT) at the service provider. - View Dependent Claims (11)
-
-
12. A method for sending and receiving data packets over a communications system using a transmission control protocol (TCP), said method comprising the steps of:
-
replacing a segment of the communications system with a middle communications link operating under a flight protocol with a premise that a connection will be created successfully across the middle communications link;
maintaining TCP connections at a first end point and a second end point of the communications system and beginning to receive data packets from the first endpoint independent of a pre-data agreement from the second endpoint;
converting the data packets sent over the first endpoint from TCP to said flight protocol;
transmitting the converted data packets from a first end of the middle communications link using the flight protocol;
receiving the data packets at a second end of the middle communications link;
reconverting the data packets from the flight protocol to the TCP;
transmitting one or more acknowledgement packets from the second end to the first end of the middle communications link; and
sending the data packets in the TCP to the second endpoint of the communications system;
wherein said maintaining step further comprises calculating an additional overhead from TCP and other Internet protocol headers;
choosing a TCP maximum segment size that avoids fragmentation and occupies fully a whole number of link layer payload units in said middle communications system; and
communicating said maximum segment size over the first and second endpoint of said communications system.
-
-
13. A method for sending and receiving data packets over a middle communications link of a TCP communications system, comprising the steps of:
-
passing data packets to a first emulator wherein said emulator emulates a receive side of a TCP connection and wherein said emulator translates said data packets from TCP to a flight protocol;
transmitting connected data packets over the middle communications link on the basis of information received from a capacity prediction algorithm;
storing copies of the transmitted packets at said first emulator and time-stamping the transmitted data packets;
receiving the transmitted data packets at a second emulator;
storing each of said received transmitted data packets in a reassembly buffer if the received transmitted data packet does not complete a continuous sequence of all the received transmitted data packets transmitted before it in said middle communications link;
retrieving previously stored data packets from said reassembly buffer if the last received data packet completes a contiguous sequence sending acknowledgements of successfully received data packets from the second emulator to the first emulator;
deleting or retransmitting stored packets depending upon acknowledgements received at the first emulator; and
passing said transmitted data packets from a second emulator wherein said second emulator translates from said flight protocol to TCP and wherein said second emulator emulates a transmit side of the TCP connection. - View Dependent Claims (14, 15)
-
-
16. A method for sending and receiving data packets over a middle communications link of a TCP communications system, comprising the steps of:
-
passing data packets to a first emulator wherein said emulator emulates a receive side of a TCP connection and wherein said emulator translates said data packets from TCP to a flight protocol;
transmitting connected data packets over the middle communications link on the basis of Information received from a capacity prediction algorithm;
storing copies of the transmitted packets at said first emulator and time-stamping the transmitted data packets;
receiving the transmitted data packets at a second emulator;
sending acknowledgements of successfully received data packets from the second emulator to the first emulator;
deleting or retransmitting stored packets depending upon acknowledgements received at the first emulator; and
passing said transmitted data packets from a second emulator wherein said second emulator translates from said flight protocol to TCP and wherein said second emulator emulates a transmit side of the TCP connection;
wherein said sending acknowledgements step comprises the steps of piggy-backing acknowledgment packets on flight protocol data sent on a return link if there is data that needs to be transmitted on the return link;
sending a single “
stretch”
acknowledgment to acknowledge all the flight protocol data packets that arrived during a particular time interval if there is a sequence of uncorrupted flight protocol packets of a predetermined length that is not missing any packets and no data needs to be transmitted on the return link; and
sending a data-less acknowledgment if a predetermined number of flight protocol packets is corrupted or missing and no data needs to be transmitted on the return link.
-
-
17. A middle communications segment in a TCP communications system, comprising:
-
a first emulator to simulate a standard TCP connection at a first end of said TCP communications system wherein said first emulator simulates end-to-end pre-data agreement with said first end and begins receiving data independent of a pre-data agreement from the terminal end of said TCP communications system and wherein all non-TCP data, all non-TCP related Internet Control Message Protocol (ICMP) data, and all encrypted TCP data sent from the first end pass through the middle communications segment without being modified;
an algorithm to convert data packets from TCP to a flight protocol;
a first buffer to store said data packets until acknowledgements for the data packets have been received from the receiving end of said middle communications link;
an algorithm to transmit flight protocol data packets over said middle communications link;
an algorithm to receive said flight protocol data packets at a receiving end of said middle communications link;
an algorithm to acknowledge receipt of said data packets that are received at the receiving end of said middle communications system;
a second buffer to store a received flight protocol data packet at the receiving end of said middle communications link until all of the flight protocol data packets transmitted before said received packet have also been successfully received;
an algorithm to reconvert data packets from said flight protocol to TCP; and
a second emulator to simulate a standard TCP connection at a second end of said TCP communications system, wherein said second emulator simulates end-to-end pre-data agreement with said second end of said TCP communications system. - View Dependent Claims (18)
-
-
19. An enhanced performance enhancing proxy (PEP) system for transferring data between a client and a server using TCP over a wireless communication link, comprising:
-
a gateway PEP, further including a first TCP emulator and a first flight protocol processor to transparently interrupt a TCP data transmission from the client to the server, to translate TCP data packets into flight protocol packets; and
a terminal PEP further including a second TCP emulator and a second flight protocol processor to receive the flight protocol data packets, to convert the flight protocol packets back to TCP data packets, and to transmit them over a new TCP connection to the server, wherein transfer of data packets between the gateway PEP and the terminal PEP are initiated without conducting a pre-data handshake and acknowledgement packets are sent from the terminal PEP to the gateway PEP wherein all non-TCP data, non-TCP related Internet Control Message Protocol (ICMP) data, and all encrypted TCP data sent from the gateway PEP pass through the wireless communication link without being modified.
-
Specification