Performance enhancing proxy techniques for internet protocol traffic
First Claim
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.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems are described that may be used in the context of a Performance Enhancing Proxy architecture for Internet traffic. A method of accelerated connection opening with error handling is disclosed. Also, a method of handling the Path MTU Discovery mechanism in the context of a distributed connection splitting PEP is described. A novel packet format for a proprietary inter-PEP protocol is described which allows for low packet header overhead. A new acknowledgement scheme that adapts to packet loss conditions to minimize bandwidth consumption by selecting an acknowledgement type from several possibilities is also detailed. A method whereby potentially spurious retransmissions are minimized by timing every transmission and retransmission is also described.
192 Citations
18 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. - View Dependent Claims (2, 3, 4, 5)
-
-
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. - View Dependent Claims (7, 8)
-
-
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. - View Dependent Claims (10, 11)
-
-
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. - View Dependent Claims (13)
-
-
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. - View Dependent Claims (15, 16, 17, 18)
-
Specification