TCP selective acknowledgements for communicating delivered and missed data packets
First Claim
Patent Images
1. A method for acknowledging data packets received over a network from a sender, the method comprising:
- tracking data packets received over the network;
generating a plurality of selection acknowledgment (SACK) packets, each SACK packet responsive to a landing data packet and identifying a plurality of ranges of data packets that had been received when the landing data packet was received, at least two of the ranges being consecutive to imply that a set of data packets between the consecutive ranges have not been received; and
transmitting the SACK packet to the receiver.
8 Assignments
0 Petitions
Accused Products
Abstract
One or more flow control modules, implemented on various types of network topologies, provide a number of functionalities for controlling the flow of IP packets (such as TCP/IP packets) over a network connection. The flow control modules may be implemented within a sender and/or receiver or may be deployed into a network as a separate device without requiring significant additional resources.
182 Citations
36 Claims
-
1. A method for acknowledging data packets received over a network from a sender, the method comprising:
-
tracking data packets received over the network;
generating a plurality of selection acknowledgment (SACK) packets, each SACK packet responsive to a landing data packet and identifying a plurality of ranges of data packets that had been received when the landing data packet was received, at least two of the ranges being consecutive to imply that a set of data packets between the consecutive ranges have not been received; and
transmitting the SACK packet to the receiver. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for retransmitting packets based on acknowledgements received from a receiver over a network, the method comprising:
-
receiving a selection acknowledgement (SACK) packet, the SACK packet identifying a plurality of ranges of data packets that had been received when a landing data packet that triggered the SACK packet was received, at least two of the ranges being consecutive to imply that a set of data packets between the consecutive ranges have not been received;
inferring that a set of data packets between the consecutive ranges have not been received; and
retransmit data packets based on the inferring. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for communicating data packets from a sender to a receiver over a network, the method comprising:
-
transmitting data packets from the sender to the receiver over the network;
responsive to receiving a data packet at the receiver, generating a SACK packet that includes at least two ranges of data packets, the data between the two ranges of data packets not received by the receiver;
transmitting the SACK packet from the receiver to the sender;
at the sender, inferring that the data between the two ranges of data packets in the SACK packet had not been received by the receiver when the SACK packet was generated; and
retransmitting data packets from the sender to the receiver based on the inferred lost packets.
-
-
20. A computer program product for acknowledging data packets received over a network from a sender, the computer program product comprising a computer-readable medium containing computer program code for performing the operations:
-
tracking data packets received over the network;
generating a plurality of selection acknowledgment (SACK) packets, each SACK packet responsive to a landing data packet and identifying a plurality of ranges of data packets that had been received when the landing data packet was received, at least two of the ranges being consecutive to imply that a set of data packets between the consecutive ranges have not been received; and
transmitting the SACK packet to the receiver. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. A computer program product for retransmitting packets based on acknowledgements received from a receiver over a network, the computer program product comprising a computer-readable medium containing computer program code for performing the operations:
-
receiving a selection acknowledgement (SACK) packet, the SACK packet identifying a plurality of ranges of data packets that had been received when a landing data packet that triggered the SACK packet was received, at least two of the ranges being consecutive to imply that a set of data packets between the consecutive ranges have not been received;
inferring that a set of data packets between the consecutive ranges have not been received; and
retransmit data packets based on the inferring. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. A network communications system comprising:
-
a receiver-side flow module configured to generate a SACK packet responsive to receiving a data packet at the receiver, the SACK packet including at least two ranges of data packets, the data between the two ranges of data packets not received by the receiver; and
a sender-side flow module configured to received SACK packets from the receiver flow module and, responsive to receiving a SACK packet, infer that the data between the two ranges of data packets in the SACK packet had not been received by the receiver when the SACK packet was generated;
wherein a sender is coupled to the sender flow module for retransmitting data packets from the sender to the receiver based on the inferred lost packets. - View Dependent Claims (35, 36)
-
Specification