IP Library Granted Patent US 7,911,948
Granted Patent B2
US 7,911,948 · App. 12/253,737 · Granted Mar 22, 2011

Methods and systems for performing TCP throttle

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 7,911,948
App. No.
12/253,737
Granted
Mar 22, 2011
Kind
B2
Abstract

The present invention relates to systems and methods of accelerating network traffic. The method includes receiving a plurality of network packets and setting a threshold for a buffer. The threshold indicates a low water mark for the buffer. The method further includes storing the plurality of network packets in the buffer at least until the buffer's capacity is full, removing packets from the buffer, and transmitting the removed packets via a downstream link to an associated destination. Furthermore, the method includes that in response to removing packets from the buffer such that the buffer's capacity falls below the threshold, receiving additional packets and storing the additional packets at least until the buffer's capacity is full.

Claims (42)

1. A method of accelerating network traffic, the method comprising:

receiving a plurality of network packets;

selecting an application from multiple applications associated with the plurality of packets, wherein the selected application includes an associated packet time-out value;

setting a threshold for a buffer at a level sufficient to allow for the transmitting of acknowledgements often enough to be transmitted within the associated time-out value of the selected application, wherein the threshold indicates a low water mark for the buffer, and wherein the buffer comprises a maximum capacity for storing network packets;

storing the plurality of network packets in the buffer at least above the low water mark threshold and below the maximum capacity;

removing packets from the buffer;

transmitting the removed packets via a downstream link to an associated destination; and

in response to removing packets from the buffer such that the buffer's capacity falls below the low water mark threshold, receiving additional packets and storing the additional packets at least above the low water mark threshold and below the maximum capacity.

2. The method of accelerating network traffic of claim 1 , further comprising that prior to the storing of the plurality of packets in the buffer, compressing the packets.

3. The method of accelerating network traffic of claim 2 , wherein the received packets are associated with two or more applications.

4. The method of accelerating network traffic of claim 3 , wherein the two or more applications are associated with two or more protocols.

5. The method of accelerating network traffic of claim 4 , wherein the two or more protocols are at least one of a hypertext transport protocol (HTTP), file transfer protocol (FTP), and simple message transport protocol (SMTP).

6. The method of accelerating network traffic of claim 2 , further comprising after the removing the plurality of packets from the buffer, coalescing the removed packets into a plurality of full maximum transmission unit (MTU) size packets.

7. The method of accelerating network traffic of claim 2 , wherein a compression algorithm is at least one of a command coder, a delta coder, and an image coder.

8. The method of accelerating network traffic of claim 1 , wherein the setting of the threshold for the buffer comprises:

determining the downstream link's bandwidth; and

determining a compression algorithm used to compress the plurality of packets.

9. The method of accelerating network traffic of claim 1 , wherein the downstream link's status is used to determine the buffer's threshold.

10. The method of accelerating network traffic of claim 1 , further comprising:

determining a bandwidth of a downstream link;

determining a protocol being used on the downstream link;

determining a time-out value associated with the protocol being used on the downstream link; and

determining a compression algorithm being used on the downstream link.

11. The method of accelerating network traffic of claim 10 , further comprising based on at least one of: the determined bandwidth, the determined time-out value, and the determined compression algorithm, setting the low watermark threshold of the buffer.

12. The method of accelerating network traffic of claim 11 , wherein the protocol comprises one or more of the following: TCP, UDP, HTTP, FTP, and ITP.

13. A system for accelerating network traffic, the system comprising:

a client configured to generate requests for a plurality of packets;

a proxy server connected with the client, wherein the proxy server is configured to receive the plurality of packets, select an application from multiple applications associated with the plurality of packets, wherein the selected application includes an associated packet time-out value, set a threshold for a buffer at a level sufficient to allow for the transmitting of acknowledgements often enough to be transmitted within the associated time-out value of the selected application, wherein the threshold indicates a low water mark for the buffer, and wherein the buffer comprises a maximum capacity for storing network packets, store the plurality of packets in the buffer at least above the low water mark threshold and below the maximum capacity, remove packets from the buffer, transmit the removed packets via a downstream link to the client, and in response to removing packets from the buffer such that the buffer's capacity falls below the low water mark threshold, receive additional packets and store the additional packets at least above the low water mark threshold and below the maximum capacity.

14. The system for accelerating network traffic of claim 13 , the system further comprising a content server coupled with the proxy server, the content server configured to transmit the plurality of packets to the proxy server.

15. The system for accelerating network traffic of claim 14 , wherein the content server is one or more of the following types of servers: a web server, a mail server, a file server, and an FTP server.

16. A non-transitory machine-readable storage medium for accelerating network traffic, the machine-readable storage medium including sets of instructions stored thereon which, when executed by a machine, cause the machine to:

receive a plurality of network packets;

select an application from multiple applications associated with the plurality of packets, wherein the selected application includes an associated packet time-out value;

set a threshold for a buffer at a level sufficient to allow for the transmitting of acknowledgements often enough to be transmitted within the associated time-out value of the selected application, wherein the threshold indicates a low water mark for the buffer, and wherein the buffer comprises a maximum capacity for storing network packets;

store the plurality of network packets in the buffer at least above the low water mark threshold and below the maximum capacity;

remove packets from the buffer;

transmit the removed packets via a downstream link to an associated destination; and

in response to removing packets from the buffer such that the buffer's capacity falls below the low water mark threshold, receive additional packets and storing the additional packets at least above the low water mark threshold and below the maximum capacity.

17. The non-transitory machine-readable storage medium for enhancing prefetching operations of claim 16 , wherein the sets of instructions when further executed by the machine, cause the machine to:

determine a bandwidth of a downstream link; and

determine a compression algorithm being used on the downstream link.

18. The non-transitory machine-readable storage medium for enhancing prefetching operations of claim 16 , wherein the sets of instructions when further executed by the machine, cause the machine to based on at least one of: the determined bandwidth, the determined time-out value, and the determined compression algorithm, set the low watermark threshold of the buffer.

Assignments (12)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 48715/0589 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071638/0083 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0026 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0036 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 059332/0558 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
SECURITY INTEREST Recorded Mar 27, 2019
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 048715/0589 →
SECURITY AGREEMENT Recorded May 9, 2012
From: VIASAT, INC.
To: UNION BANK, N.A.
Reel/Frame 028184/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2008
From: SEBASTIAN, WILLIAM B.
To: VIASAT, INC.
Reel/Frame 021699/0335 →