TCP fast recovery extended method and apparatus
First Claim
1. A network device-based method comprising:
- sending a plurality of packets;
receiving a plurality of acknowledgements, wherein each of the plurality of acknowledgements acknowledges receipt of at least one of the plurality of packets, wherein the plurality of acknowledgements includes at least one duplicate acknowledgement containing no more information than is contained in a previously received one of the plurality of acknowledgements;
determining and retaining, upon receiving the plurality of acknowledgements, an excess number of duplicate acknowledgements, by at least determining a number representing how many additional packets were co-acknowledged with the duplicate acknowledgments;
wherein the excess number of duplicate acknowledgements is a number that is determined based upon a difference between a count of consecutive duplicate acknowledgement packets and the number of co-acknowledged packets; and
taking a network packet transmission recovery action based upon said excess number of duplicate acknowledgements.
1 Assignment
0 Petitions
Accused Products
Abstract
A fast recovery extended method is used to enhance the performance of TCP fast recovery when multiple segment losses occur within a single round trip time between a TCP sender and a TCP receiver. A TCP fast recovery process is performed by a TCP sender, and then a TCP fast recovery extended process is performed by the TCP sender upon receiving acknowledgement of receipt of new data from a TCP receiver in the TCP fast recovery process. The fast recovery extended process determines, following receipt of the acknowledgement of receipt of new data, an excess number of duplicate acknowledgements based upon a count of consecutive duplicate acknowledgement packets. The fast recovery extended process takes a network packet transmission recovery action based upon the excess number of duplicate acknowledgements, and then stores the excess number of duplicate acknowledgements as a number of duplicate acknowledgements for further use.
60 Citations
34 Claims
-
1. A network device-based method comprising:
-
sending a plurality of packets;
receiving a plurality of acknowledgements, wherein each of the plurality of acknowledgements acknowledges receipt of at least one of the plurality of packets, wherein the plurality of acknowledgements includes at least one duplicate acknowledgement containing no more information than is contained in a previously received one of the plurality of acknowledgements;
determining and retaining, upon receiving the plurality of acknowledgements, an excess number of duplicate acknowledgements, by at least determining a number representing how many additional packets were co-acknowledged with the duplicate acknowledgments;
wherein the excess number of duplicate acknowledgements is a number that is determined based upon a difference between a count of consecutive duplicate acknowledgement packets and the number of co-acknowledged packets; and
taking a network packet transmission recovery action based upon said excess number of duplicate acknowledgements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A network device-based method comprising:
-
receiving a plurality of acknowledgements, wherein each of the plurality of acknowledgements acknowledges receipt of at least one of the plurality of packets;
wherein the plurality of acknowledgements includes at least one duplicate acknowledgement, which is an acknowledgement containing no more information than is contained in a previously received acknowledgement of one of the plurality of acknowledgements;
determining and retaining, upon receiving the plurality of acknowledgements, an excess number of duplicate acknowledgements, by at least determining a number representing how many additional packets were acknowledged with the duplicate acknowledgements, which are thereby co-acknowledged packets;
wherein the excess number of duplicate acknowledgements is a number that is determined based upon a difference between a count of consecutive duplicate acknowledgement packets and the number of co-acknowledged packets; and
deflating a congestion window upon said value of said excess number of duplicate acknowledgements being less than a transmission control protocol sender segment; and
optimizing a size of said congestion window to match a reduction in a quantity of unacknowledged data upon said excess number of duplicate acknowledgements being greater than a transmission control protocol sender segment. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A network device comprising:
-
a processor; and
a memory coupled to said processor, and storing a fast recovery extended method wherein upon execution of said fast recovery extended method by said processor, causes said network device to;
send a plurality of packets;
receive a plurality of acknowledgements, wherein each of the plurality of acknowledgements acknowledges receipt of at least one of the plurality of packets;
wherein the plurality of acknowledgements includes at least one duplicate acknowledgement, which is an acknowledgement containing no more information than is contained in a previously received acknowledgement of one of the plurality of acknowledgements;
determine, upon receiving acknowledgement of receipt of the plurality of acknowledgements, an excess number of duplicate acknowledgements, by at least determining a number representing how many additional packets were acknowledged with the duplicate acknowledgements, which are thereby co-acknowledged packets;
wherein the excess number of duplicate acknowledgements is a number that is determined based upon a difference between a count of consecutive duplicate acknowledgement packets and the number of co-acknowledged packets;
retain said excess number of duplicate acknowledgements in said memory; and
take a network packet transmission recovery action based upon said excess number of duplicate acknowledgements. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A programmable memory including a fast recovery extended method wherein said fast recovery extended method upon execution comprises:
-
sending a plurality of packets;
receiving a plurality of acknowledgements, wherein each of the plurality of acknowledgements acknowledges receipt of at least one of the plurality of packets;
wherein the plurality of acknowledgements includes at least one duplicate acknowledgement which is an acknowledgement containing no more information than is contained in a previously received acknowledgement of one of the plurality of acknowledgements;
determining and retaining, upon receiving the plurality of acknowledgements, an excess number of duplicate acknowledgements, by at least determining a number representing how many additional packets were acknowledged with the duplicate acknowledgements, which are thereby co-acknowledged packets;
wherein the excess number of duplicate acknowledgements is a number that is determined based upon a difference between a count of consecutive duplicate acknowledgement packets and the number of co-acknowledged packets; and
taking a network packet transmission recovery action based upon said excess number of duplicate acknowledgements.
-
-
33. A network device comprising:
-
means for sending a plurality of packets;
means for receiving a plurality of acknowledgements, wherein each of the plurality of acknowledgements acknowledges receipt of at least one of the plurality of packets;
wherein the plurality of acknowledgements includes at least one duplicate acknowledgement, which is an acknowledgement containing no more information than is contained in a previously received acknowledgement of one of the plurality of acknowledgements;
means for determining, upon receiving the plurality of acknowledgements, an excess number of duplicate acknowledgements, by at least determining a number representing how many additional packets were acknowledged with the duplicate acknowledgements, which are thereby co-acknowledged packets;
wherein the excess number of duplicate acknowledgements is a number that is determined based upon a difference between a count of consecutive duplicate acknowledgement packets and the number of co-acknowledged packets; and
means for retaining said excess number of duplicate acknowledgements; and
means for taking a network packet transmission recovery action based upon said excess number of duplicate acknowledgements.
-
-
34. A method for recovery of multiple transmission units comprising:
-
transmitting a plurality of transmission units from a sender to a receiver, wherein the receiver is an entity that is currently receiving transmission units, and wherein the sender is an entity that is currently sending the transmission units;
the receiver transmitting acknowledgements of receipt of the transmission units received;
setting a duplicate acknowledgements threshold, wherein a duplicate acknowledgement is an acknowledgement of receipt of a transmission unit for which an acknowledgement already exists;
setting a size for a congestion window;
determining a value representing a count of consecutive duplicate acknowledgements;
if the value is equal to the duplicate acknowledgement threshold, performing a first fast retransmit operation in which at least one of the transmission units is retransmitted, and resizing the size of the congestion window;
determining whether any subsequent duplicate acknowledgements were received;
in response to receipt of each of the subsequent duplicate acknowledgements, increasing the size of the congestion window, and if transmitting another segment is permitted, transmitting another segment; and
when an acknowledgement for the transmission unit that was retransmitted is received, performing a fast recovery including at least a get excess operation which at least determines a value representing an excess number of duplicate acknowledgements by at least determining a number representing how many additional packets were acknowledged with the duplicate acknowledgements, which are thereby co-acknowledged packets;
wherein the excess number of duplicate acknowledgements is a number that is determined based upon a difference between the value of the count of consecutive duplicate acknowledgements for the retransmitted transmission units and the number of co-acknowledged packets;
a recovery action operation, in which at least the sender initiates one or more network packet transmission recovery actions based upon the excess duplicate acknowledgements, wherein the network packet transmission recovery actions include at least taking no further action, deflating the size of the congestion window, resizing the size of the congestion window to a more optimal size, performing another fast retransmit, resizing the size of the congestion window from the more optimal size, and resizing the size congestion window after the deflating, and a set duplicate acknowledgment operation in which at least the value representing the count of the duplicate acknowledgements is set equal to the value representing the excess duplicate acknowledgements.
-
Specification