Claims
- 1. A method for accelerating an opening of a connection in a communications system for transmitting and receiving data packets, the method comprising the steps of:
intercepting a TCP SYN connection request from a client, the TCP SYN intercepted by a first Performance Enhancing Proxy (PEP); responding to the intercepted TCP SYN connection with a TCP SYN/ACK, the step of responding performed by the client; responding to the first PEP with the TCP ACK, the responding step performed by the client; converting the TCP SYN to another protocol and sending a message over a link, the converting and sending steps performed by the first PEP; receiving the message over a link and converting it back to the TCP SYN, the receiving and converting steps performed by the second PEP; sending the TCP SYN to a server, the sending step perfomed by the second PEP; and listening for ICMP messages generated in response to the TCP SYN, the listening step performed by the second server.
- 2. The method of claim 1, further comprising the steps of:
receiving the ICMP message related to a connection that is currently being established, the receiving step performed by the second PEP; removing said ICMP message from the network; generating a reset message; forwarding the reset message to the first PEP; and forwarding the reset message to the client, the forwarding step performed by the first PEP.
- 3. The method of claim 1, further comprising the steps of:
receiving an ICMP message related to a connection that is currently being established, the ICMP message received by the second PEP; forwarding the ICMP message to the first PEP; and forwarding the ICMP message to said client, the ICMP message forwarded by the first PEP.
- 4. The method of claim 3, further comprising the steps of:
generating a reset packet and sending it over the link to the first PEP, the generating and sending steps performed by the second PEP; and forwarding the reset message upon returning the ICMP message to the client, the forwarding step performed by the first PEP.
- 5. The method of claim 3, further comprising the steps of:
generating a reset message upon receiving the ICMP message, the generating step performed by the first PEP; and sending the reset message to the client after the forwarding of the ICMP message, the sending step performed by the first PEP.
- 6. A method of supporting an end-to-end PMTUD mechanism in a communications system for transmitting and receiving data packets, comprising the steps of:
identifying messages to intercept via a destination IP address and an encapsulated packet fragment; intercepting incoming ICMP “Fragmentation Needed, DF Set” messages from a TCP end connection; re-sizing a path MTU estimate for an indicated destination IP address at a PEP to a value indicated by the ICMP messages or if no value is indicated to a default of 576 bytes; and re-packetizing an original packet according to a newly set path MTU estimate; and re-transmitting from PEP previously discarded data.
- 7. The method of claim 6, wherein the step of re-packetizing further comprises:
dividing data of a packet requiring subdivision into path MTU sized portions and a possible remainder of less than path MTU bytes; creating a new set of TCP headers for subdivisions of the original packet that preserve TCP connection information contained in the original packet; and creating a new set of IP headers for the subdivisions of the original packet that preserve the IP information contained in the original packet.
- 8. The method of claim 6, wherein the step of re-packetizing futher comprises:
treating the data as a byte stream; and combining portions of multiple large packets into smaller packets.
- 9. A packet header for transmitting and receiving data packets in a communications system for transmitting and receiving data packets, comprising:
a first field containing a source port number; a second field containing a destination port number; a third field comprising 8 individual bit flags; a forth field containing a packet number; a fifth flag field; a sixth field including either 0 or more individual bit flags; a seventh, field containing an acknowledgement number; an eighth field containing the header length in units of 4 bytes; a ninth reserved field; a tenth flag field; an eleventh flag field; a twelfth flag field; a thirteenth flag field; a fourteenth flag field; a fifteenth flag field; a sixteenth field containing an advertised window size; a seventeenth checksum field; and an eighteenth field containing an urgent pointer.
- 10. The packet header in accordance with claim 9, wherein the fourth header field is no greater than 31 bits and the seventh header field is no greater than 31 bits.
- 11. The packet header in accordance with claim 9, wherein the fourth field is utilized as 24 1-bit flags for acknowledging individual packets.
- 12. A method for use in a communications system for sending and receiving data packets for acknowledging a plurality of data packets to automatically reduce the number of acknowledgement packets under differing link conditions, the method comprising the steps of:
constructing an acknowledgement packet having a first format; updating the acknowledgement packet as the packets are considered at least one of received or missing; converting the acknowledgement packet to an alternative format in order to minimize the packets required to be sent; and sending the packet when it is full.
- 13. The method of claim 12, further comprising the step of using a timer to limit a maximum delay between the acknowledgement packets.
- 14. A method for maintaining information on transmitted packets in a communications system for sending and receiving data packets, the method comprising the steps of:
transmitting a packet; locally storing a timestamp representing a time of transmission of the packet; determining a packet loss; and determining if a retransmission may take place based upon the determined packet loss.
- 15. The method of claim 14, wherein the timestamp represents an expected time of reception of a confirmation of a successful receipt.
- 16. The method of claim 14, wherein the step of determining a packet loss entails a failure to receive an acknowledgment as indicated by the expiration of a timer or receipt of a negative acknowledgement or an acknowledgement for a later packet.
- 17. The method of claim 14, further comprising the step of determining which packet to retransmit.
- 18. The method of claim 17, wherein the step of determining which packet to retransmit further includes the step of finding all packets where a packet number is less than the packet determined missing and a time stamp indicates that an acknowledgement should have been received.
CROSS-REFERENCE TO RELATED APPLICTIONS
[0001] This application claims priority to U.S. Provisional Application No. 60/333,608 to Jason D. Neale et. al., entitled “Performance Enhancing Proxies for Satellite Transmission Control Protocols,” filed on Nov. 13, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60333608 |
Nov 2001 |
US |