IP Library › Granted Patent US 10,917,352
Granted Patent B1
US 10,917,352 · App. 16/560,386 · Granted Feb 9, 2021

Selective tracking of acknowledgments to improve network device buffer utilization and traffic shaping

Inventors: M. David Hanes (Lewisville, NC); Santosh Ramrao Patil (Santa Clara, CA); Gonzalo Salgueiro (Raleigh, NC); Akramsheriff Ismailsheriff (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L47/125H04L47/11H04L47/20H04L47/27H04L47/283H04L69/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,917,352
App. No.
16/560,386
Filed
Sep 4, 2019
Granted
Feb 9, 2021
Kind
B1
Art Unit
2463
USPC
370/235
Abstract

Systems and methods provide for Selective Tracking of Acknowledgments (STACKing) to improve buffer utilization and traffic shaping for one or more network devices. A network device can identify a first flow that corresponds to a predetermined traffic class and a predetermined congestion state. The device can determine a current window size and congestion threshold of the first flow. In response to a determination to selectively track a portion of acknowledgments of the first flow, the device can track, in main memory, information of a first portion of acknowledgments of the first flow. The device can exclude, from one or more buffers, a second portion of acknowledgments of the first flow. The device can re-generate and transmit segments corresponding to the second portion of acknowledgments at a target transmission rate based on traffic shaping policies for the predetermined traffic class and congestion state.

Claims (91)

1. A computer-implemented method comprising:

identifying, by a network device, within current traffic data of a network, a first flow that corresponds to a predetermined traffic class and a predetermined congestion state;

determining at least one of a current window size or a current congestion threshold of the first flow; and

in response to determining to selectively track a portion of acknowledgments of the first flow based on at least one of the current window size or the current congestion threshold,

tracking, in main memory of the network device, information of a first portion of acknowledgments of the first flow;

excluding, from one or more buffers of the network device, a second portion of acknowledgments of the first flow;

re-generating segments corresponding to the second portion of acknowledgments based on the information in the main memory of the network device; and

transmitting re-generated segments corresponding to the second portion of acknowledgements at a target transmission rate based on one or more traffic shaping policies for the predetermined traffic class and the predetermined congestion state.

2. The computer-implemented method of claim 1 , further comprising:

determining a plurality of Round Trip Times (RTTs) during a sampling period for the first flow;

determining a minimum, a maximum, and a coefficient of variation of the plurality of RTTs; and

inputting a plurality of inputs corresponding to the minimum, the maximum, and the coefficient of variation of the plurality of RTTs into one or more traffic class-specific congestion signatures corresponding to the predetermined traffic class and the predetermined congestion state to identify the first flow.

3. The computer-implemented method of claim 2 , further comprising:

mapping the first flow to the predetermined traffic class;

receiving the one or more traffic class-specific congestion signatures corresponding to the predetermined traffic class; and

determining, based on the one or more traffic class-specific congestion signatures, that the first flow corresponds to the predetermined congestion state.

4. The computer-implemented method of claim 1 , further comprising:

determining the second portion of acknowledgments of the first flow exclude Transmission Control Protocol (TCP) payloads.

5. The computer-implemented method of claim 1 , further comprising:

determining an acknowledgement of the first flow is a duplicate acknowledgment;

forwarding the acknowledgment; and

delaying transmission of a next acknowledgment of the first flow by a period of time such that an average transmission rate of the first flow corresponds to the target transmission rate.

6. The computer-implemented method of claim 1 , further comprising:

determining a plurality of RTTs during a sampling period for the first flow;

determining a minimum, a maximum, and a coefficient of variation of the plurality of RTTs;

determining a number of acknowledgment bytes transmitted by a TCP sender and acknowledged by a TCP receiver; and

inputting a plurality of inputs corresponding to the minimum, the maximum, the coefficient of variation of the plurality of RTTs, and the number of acknowledgment bytes into one or more window size or congestion threshold estimators corresponding to the predetermined traffic class and the predetermined congestion state to identify determine at least one of the current window size or the current congestion threshold.

7. The computer-implemented method of claim 6 , further comprising:

determining at least one of a target window size or a target congestion threshold; and

determining to selectively track the first portion of acknowledgments based on a comparison of at least one of the current window size to the target window size or the current congestion threshold to the target congestion threshold.

8. The computer-implemented method of claim 1 , further comprising:

inputting the current window size and the current congestion threshold into one or more decision models for determining whether to selectively track the portion of acknowledgments of the first flow.

9. The computer-implemented method of claim 1 , further comprising:

determining the target transmission rate; and

setting a timer for transmitting the second portion of acknowledgments at the target transmission rate; and

incrementing a TCP segment number and a TCP acknowledgment number corresponding to a latest TCP reply acknowledgment transmitted to a TCP sender on behalf of a TCP receiver.

10. The computer-implemented method of claim 1 , further comprising:

identifying, within the current traffic data, a second flow that corresponds to a second predetermined traffic class and a second predetermined congestion state;

determining the second flow does not correspond to the second predetermined congestion state; and

storing TCP reply acknowledgments of the second flow to the one or more buffers of the network device.

11. The computer-implemented method of claim 1 , further comprising:

identifying, within the current traffic data, a second flow that corresponds to a second predetermined traffic class and a second predetermined congestion state;

determining a TCP request acknowledgment of the second flow includes a TCP payload; and

updating, in main memory of the network device, information of a first portion of acknowledgments of the second flow.

12. The computer-implemented method of claim 1 , further comprising:

identifying, within the current traffic data, a second flow that corresponds to a second predetermined traffic class and a second predetermined congestion state;

determining at least one of the current window size does not exceed a target window size or the current congestion threshold does not exceed a target congestion threshold; and

updating, in main memory of the network device, information indicating to suspend selective tracking of the second flow.

13. A system, comprising:

one or more processors;

one or more buffers; and

main memory including instructions that, when executed by the one or more processors, cause the system to:

identify, within current traffic data of a network, a first flow that corresponds to a predetermined traffic class and a predetermined congestion state;

determine at least one of a current window size or a current congestion threshold of the first flow; and

in response to a determination to selectively track a portion of acknowledgments of the first flow based on at least one of the current window size or the current congestion threshold,

track, in the main memory, information of a first portion of acknowledgments of the first flow;

exclude, from the one or more buffers, a second portion of acknowledgments of the first flow;

re-generate segments corresponding to the second portion of acknowledgments based on the information in the main memory; and

transmit re-generated segments corresponding to the second portion of acknowledgements at a target transmission rate based on one or more traffic shaping policies for the predetermined traffic class and the predetermined congestion state.

14. The system of claim 13 , further comprising further instructions that, when executed by the one or more processors, further cause the system to:

determine a plurality of Round Trip Times (RTTs) during a sampling period for the first flow;

determine a minimum, a maximum, and a coefficient of variation of the plurality of RTTs; and

input a plurality of inputs corresponding to the minimum, the maximum, and the coefficient of variation of the plurality of RTTs into one or more traffic class-specific congestion signatures corresponding to the predetermined traffic class and the predetermined congestion state to identify the first flow.

15. The system of claim 14 , further comprising further instructions that, when executed by the one or more processors, further cause the system to:

map the first flow to the predetermined traffic class;

receive the one or more traffic class-specific congestion signatures corresponding to the predetermined traffic class; and

determine, based on the one or more traffic class-specific congestion signatures, that the first flow corresponds to the predetermined congestion state.

16. The system of claim 13 , further comprising further instructions that, when executed by the one or more processors, further cause the system to:

determine an acknowledgement of the first flow is a duplicate acknowledgment;

forward the acknowledgment; and

delay transmission of a next acknowledgment of the first flow by a period of time such that an average transmission rate of the first flow corresponds to the target transmission rate.

17. A non-transitory computer-readable storage medium including instructions that, upon being executed by one or more processors of a system, cause the system to:

identify, within current traffic data of a network, a first flow that corresponds to a predetermined traffic class and a predetermined congestion state;

determine at least one of a current window size or a current congestion threshold of the first flow; and

in response to a determination to selectively track a portion of acknowledgments of the first flow based on at least one of the current window size or the current congestion threshold,

track, in main memory of the system, information of a first portion of acknowledgments of the first flow;

exclude, from one or more buffers of the system, a second portion of acknowledgments of the first flow;

re-generate segments corresponding to the second portion of acknowledgments based on the information in the main memory of the system; and

transmit re-generated segments corresponding to the second portion of acknowledgements at a target transmission rate based on one or more traffic shaping policies for the predetermined traffic class and the predetermined congestion state.

18. The non-transitory computer-readable storage medium of claim 17 , further comprising further instructions that, when executed by the one or more processors, further cause the system to:

determine a plurality of Round Trip Times (RTTs) during a sampling period for the first flow;

determine a minimum, a maximum, and a coefficient of variation of the plurality of RTTs; and

input a plurality of inputs corresponding to the minimum, the maximum, and the coefficient of variation of the plurality of RTTs into one or more traffic class-specific congestion signatures corresponding to the predetermined traffic class and the predetermined congestion state to identify the first flow.

19. The non-transitory computer-readable storage medium of claim 17 , further comprising further instructions that, when executed by the one or more processors, further cause the system to:

determine the target transmission rate; and

set a timer for transmitting the second portion of acknowledgments at the target transmission rate; and

increment a TCP segment number and a TCP acknowledgment number corresponding to a latest TCP reply acknowledgment transmitted to a TCP sender on behalf of a TCP receiver.

20. The non-transitory computer-readable storage medium of claim 17 , further comprising further instructions that, when executed by the one or more processors, further cause the system to:

identify, within the current traffic data, a second flow that corresponds to a second predetermined traffic class and a second predetermined congestion state;

determine the second flow does not correspond to the second predetermined congestion state; and

store TCP reply acknowledgments of the second flow to the one or more buffers of the network device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2019
From: HANES, M. DAVID; PATIL, SANTOSH RAMRAO; SALGUEIRO, GONZALO; ISMAILSHERIFF, AKRAMSHERIFF
To: CISCO TECHNOLOGY, INC.
Reel/Frame 050266/0343 →
Cited By (6)
US 12,309,634 US 12,476,920 US 12,519,857 US 12,526,232 US 12,603,838 US 12,719,793