IP Library Granted Patent US 8,369,348
Granted Patent B2
US 8,369,348 · App. 12/035,089 · Granted Feb 5, 2013

Method, and system, and computer program product for dynamically adjusting acknowledgement filtering for high-latency environments

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 8,369,348
App. No.
12/035,089
Granted
Feb 5, 2013
Kind
B2
Abstract

A system and method for adjusting the filtering of acknowledgments (ACKS) in a TCP environment. State variables are used to keep track of, first, the number of times an ACK has been promoted into (a variable which can be stored on a per-packet basis along with the session ID), and second, the number of times an ACK is allowed to be promoted into (which can be global, or can be stored per-session).

Claims (57)

1. A method of adjusting acknowledgement filtering, comprising:

searching, by an electronic device, a list of queued acknowledgements for a matching queued acknowledgement, the matching queued acknowledgement having a session ID that matches a session ID of a new acknowledgement;

comparing, by the electronic device, a number of previous promotions for the matching queued acknowledgement with a maximum number of promotions; and

promoting, by the electronic device, the new acknowledgement into the matching queued acknowledgement if the number of previous promotions for the matching queued acknowledgement is less than the maximum number of promotions.

2. The method of claim 1 , wherein said promoting comprises:

copying information from the new acknowledgement into a buffer of the matching queued acknowledgement;

deleting the new acknowledgement; and

incrementing the number of previous promotions for the matching queued acknowledgement.

3. The method of claim 1 , further comprising:

if the number of matching queued acknowledgements is greater than an upper threshold, increasing the maximum number of promotions; and

if the number of matching queued acknowledgements is less than a lower threshold, decreasing the maximum number of promotions.

4. The method of claim 1 , further comprising:

queuing, by the electronic device, the new acknowledgement if the new acknowledgement is not promoted into the matching queued acknowledgement.

5. The method of claim 1 , wherein the maximum number of promotions is one of a global value and a per-session value.

6. The method of claim 1 , further comprising:

locking the matching acknowledgement if the number of previous promotions for the matching queued acknowledgement is not less than the maximum number of promotions.

7. The method of claim 6 , wherein the locking comprises:

setting the number of previous promotions to a large value that always exceeds the maximum number of promotions.

8. A computer program product comprising a non-transitory computer useable medium having processing instructions stored thereon, that, in response to execution by one or more processors, cause the one or more processors to adjust acknowledgement filtering, the processing instructions comprising:

processing instructions for causing the one or more processors to search a list of queued acknowledgements for a matching queued acknowledgement, the matching queued acknowledgement having a session ID that matches a session ID of a new acknowledgement;

processing instructions for causing the one or more processors to

compare a number of previous promotions for the matching queued acknowledgement with a maximum number of promotions; and

processing instructions for causing the one or more processors to promote the new acknowledgement into the matching queued acknowledgement if the number of previous promotions for the matching queued acknowledgement is less than the maximum number of promotions.

9. The computer program product of claim 8 , wherein the processing instructions for causing the one or more processors to promote comprises:

copying information from the new acknowledgement into a buffer of the matching queued acknowledgement;

deleting the new acknowledgement; and

incrementing the number of previous promotions for the matching queued acknowledgement.

10. The computer program product of claim 8 , further comprising:

processing instructions for causing the one or more processors to increase the maximum number of promotions if the number of matching queued acknowledgements with matching session IDs is greater than an upper threshold; and

processing instructions for causing the one or more processors to decrease the maximum number of promotions if the number of matching queued acknowledgements with matching session IDs is less than a lower threshold.

11. The computer program product of claim 8 , further comprising:

processing instructions for causing the one or more processors to queue the new acknowledgement if the new acknowledgement is not promoted into the matching queued acknowledgement.

12. The computer program product of claim 8 , wherein the maximum number of promotions is one of a global value and a per-session value.

13. The computer program product of claim 8 , further comprising:

processing instructions for causing the one or more processors to lock the matching acknowledgement if the number of previous promotions for the matching queued acknowledgement is not less than the maximum number of promotions.

14. The computer program product of claim 13 , wherein the processing instructions for causing the one or more processors to lock comprises:

setting the number of previous promotions to a large value that always exceeds the maximum number of promotions.

15. A system for adjusting acknowledgement filtering, comprising:

a processor; and

a memory in communication with said processor, said memory for storing a plurality of processing instructions for directing said processor to:

search a list of queued acknowledgements for a matching queued acknowledgement having a session ID that matches a session ID of a new acknowledgement;

compare a number of previous promotions for a matching queued acknowledgement with a maximum number of promotions; and

promote the new acknowledgement into the matching queued acknowledgement if the number of previous promotions for the matching queued acknowledgement is less than the maximum number of promotions.

16. The system of claim 15 , wherein said processing instructions for directing said processor to promote comprises processing instructions for directing said processor to:

copy information from the new acknowledgement into a buffer of the matching queued acknowledgement;

delete the new acknowledgement; and

increment the number of previous promotions for the matching queued acknowledgement.

17. The system of claim 15 , wherein said memory in communication with said processor further stores processing instructions for directing said processor to:

if the number of matching queued acknowledgements is greater than an upper threshold, increase the maximum number of promotions; and

if the number of matching queued acknowledgements is less than a lower threshold, decrease the maximum number of promotions.

18. The system of claim 15 , wherein said memory in communication with said processor further stores processing instructions for directing said processor to:

queue the new acknowledgement if the new acknowledgement is not promoted into the matching queued acknowledgement.

19. The system of claim 15 , wherein the maximum number of promotions is one of a global value and a per-session value.

20. The system of claim 15 , wherein said memory in communication with said processor further stores processing instructions for directing said processor to:

lock the matching acknowledgement if the number of previous promotions for the matching queued acknowledgement is not less than the maximum number of promotions.

21. The system of claim 20 , wherein said memory in communication with said processor further stores processing instructions for directing said processor to lock comprises:

processing instructions for directing said processor to set the number of previous promotions to a large value that always exceeds the maximum number of promotions.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2008
From: PULLEN, DAVID
To: BROADCOM CORPORATION
Reel/Frame 020744/0759 →