IP Library Granted Patent US 9,565,088
Granted Patent B2
US 9,565,088 · App. 13/871,696 · Granted Feb 7, 2017

Managing bandwidth utilization in different modes by monitoring network metrics and adjusting a current network data rate

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 9,565,088
App. No.
13/871,696
Granted
Feb 7, 2017
Kind
B2
Abstract

Systems and methods for bandwidth allocation and estimation are disclosed. A computer communicates via multiple active streams, each having a type. The computer determines whether to enable or disable bandwidth management. Upon determining to enable bandwidth management, the computer estimating a total available bandwidth, determines, for each stream, a requested bandwidth, and dynamically allocates a portion of the total available bandwidth among the active streams. Upon determining to disable bandwidth management, the computer foregoes dynamically allocating bandwidth among the streams.

Claims (100)

1. A non-transitory machine-readable medium for managing bandwidth utilization, the machine-readable medium storing instructions for:

monitoring, via a communication application executing at a computing machine connected to a network, one or more network metrics, wherein the communication application is configured to run in either a normal operation mode or an emergency operation mode;

estimating a total available bandwidth at the computing machine based on the one or more monitored network metrics;

running the communication application in the normal operation mode at a first network data rate;

entering an emergency operation mode based on the one or more monitored network metrics;

determining, based on a change in the one or more monitored network metrics, that the communication application is able to return to the normal operation mode for communication in a first direction;

entering the normal operation mode for communication in the first direction;

running a first network data rate test at the first network data rate;

if the first network data rate test is successful: setting a current network data rate in the first direction to the first network data rate; and

if the first network data rate test fails:

measuring a goodput rate during the first network data rate test;

running a second network data rate test at the goodput rate;

if the second network data rate test is successful: adjusting the current network data rate to the goodput rate; and

if the second network data rate test fails: gradually increasing the current network data rate starting from a network data rate being implemented during the emergency operation mode.

2. The non-transitory machine-readable medium of claim 1 , wherein the instructions for estimating the total available bandwidth at the computing machine comprise instructions for:

computing an upstream and a downstream bandwidth between the computing machine and a first server for a first active stream based on a data transmission between the computing machine and the first server; and

estimating that an upstream and a downstream bandwidth between the computing machine and a second server for a second active stream corresponds to the computed upstream or downstream bandwidth between the computing machine and the first server.

3. The non-transitory machine-readable medium of claim 1 , wherein the instructions for entering the emergency operation mode comprise instructions for:

setting the operating network data rate to a network data rate corresponding to the emergency operation mode;

ignoring packet delay; and

upon detecting packet loss rate above a second threshold amount of packet loss, further decreasing the operating network data rate.

4. The non-transitory machine-readable medium of claim 1 , wherein the instructions for entering the normal operation mode comprise instructions for:

running a network data rate test at a network data rate exceeding the current network data rate; and

if the network data rate test at the network data rate exceeding the current network data rate is successful: increasing the current network data rate.

5. The non-transitory machine-readable medium of claim 1 , the machine-readable medium further storing instructions for:

determining, based on the estimated total available bandwidth or the one or more monitored network metrics, that the communication application is unable to return to the normal operation mode for communication in a second direction, wherein the first direction is a first one of inbound to the computing machine or outbound from the computing machine, and wherein the second direction is a different, second one of inbound to the computing machine or outbound from the computing machine;

maintaining the emergency operation mode for communication in the second direction; and

gradually increasing the current network data rate for communication in the first direction starting from a network data rate being implemented during the emergency operation mode, while maintaining the current network data rate for communication in the second direction at the network data rate being implemented during the emergency operation mode.

6. The non-transitory machine-readable medium of claim 1 , the machine-readable medium further storing instructions for:

foregoing transmitting, to a server associated with an active stream external to the computing machine, an indication of the operation mode of the communication application; and

transmitting, to the server associated with the active stream, an indication of the current network data rate for data transmission in the active stream from the server to the computing machine.

7. The non-transitory machine-readable medium of claim 1 , wherein the monitored one or more network metrics comprise one or more of a packet loss rate, a packet delay rate, or a network goodput rate.

8. A system for managing bandwidth utilization, the system comprising:

one or more processors;

a network interface for connecting to a network; and

a memory storing instructions for:

monitoring, via a communication application executing via the one or more processors, one or more network metrics,

wherein the communication application is configured to run in either a normal operation mode or an emergency operation mode;

estimating a total available bandwidth in the network based on the one or more monitored network metrics;

running the communication application in the normal operation mode at a first network data rate;

entering an emergency operation mode based on the one or more monitored network metrics;

determining, based on a change in the one or more monitored network metrics, that the communication application is able to return to the normal operation mode for communication in a first direction;

entering the normal operation mode for communication in the first direction;

running a first network data rate test at the first network data rate;

if the first network data rate test is successful: setting a current network data rate in the first direction to the first network data rate; and

if the first network data rate test fails:

measuring a goodput rate during the first network data rate test;

running a second network data rate test at the goodput rate;

if the second network data rate test is successful: adjusting the current network data rate to the goodput rate; and

if the second network data rate test fails: gradually increasing the current network data rate starting from a network data rate being implemented during the emergency operation mode.

9. The system of claim 8 , wherein the instructions for estimating the total available bandwidth in the network comprise instructions for:

computing an upstream and a downstream bandwidth between the network interface and a first server for a first active stream based on a data transmission between the network interface and the first server; and

estimating that an upstream and a downstream bandwidth between the network interface and a second server for a second active stream corresponds to the computed upstream or downstream bandwidth between the network interface and the first server.

10. The system of claim 8 , wherein the instructions for entering the emergency operation mode comprise instructions for:

setting the operating network data rate to a network data rate corresponding to the emergency operation mode;

ignoring packet delay; and

upon detecting packet loss rate above a second threshold amount of packet loss, further decreasing the operating network data rate.

11. The system of claim 8 , wherein the instructions for entering the normal operation mode comprise instructions for:

running a network data rate test at a network data rate exceeding the current network data rate; and

if the network data rate test at the network data rate exceeding the current network data rate is successful: increasing the current network data rate.

12. The system of claim 8 , the memory further storing instructions for:

determining, based on the estimated total available bandwidth or the one or more monitored network metrics, that the communication application is unable to return to the normal operation mode for communication in a second direction, wherein the first direction is a first one of inbound to the network interface or outbound from the network interface, and wherein the second direction is a different, second one of inbound to the computing machine or outbound from the computing machine;

maintaining the emergency operation mode for communication in the second direction; and

gradually increasing the current network data rate for communication in the first direction starting from a network data rate being implemented during the emergency operation mode, while maintaining the current network data rate for communication in the second direction at the network data rate being implemented during the emergency operation mode.

13. The system of claim 8 , the memory further storing instructions for:

foregoing transmitting, to a server associated with an active stream, an indication of the operation mode of the communication application; and

transmitting, to the server associated with the active stream, an indication of the current network data rate for data transmission in the active stream from the server to the network interface.

14. The system of claim 8 , wherein the monitored one or more network metrics comprise one or more of a packet loss rate, a packet delay rate, or a network goodput rate.

15. A method of managing bandwidth utilization, comprising:

monitoring, via a communication application executing at a computing machine connected to a network, one or more network metrics, wherein the communication application is configured to run in either a normal operation mode or an emergency operation mode;

estimating a total available bandwidth at the computing machine based on the one or more monitored network metrics;

running the communication application in the normal operation mode at a first network data rate;

entering an emergency operation mode based on the one or more monitored network metrics;

determining, based on a change in the one or more monitored network metrics, that the communication application is able to return to the normal operation mode for communication in a first direction;

entering the normal operation mode for communication in the first direction;

running a first network data rate test at the first network data rate;

if the first network data rate test is successful: setting a current network data rate in the first direction to the first network data rate; and

if the first network data rate test fails:

measuring a goodput rate during the first network data rate test;

running a second network data rate test at the goodput rate;

if the second network data rate test is successful: adjusting the current network data rate to the goodput rate; and

if the second network data rate test fails: gradually increasing the current network data rate starting from a network data rate being implemented during the emergency operation mode.

16. The method of claim 15 , wherein estimating the total available bandwidth at the computing machine further comprises:

computing an upstream and a downstream bandwidth between the computing machine and a first server for a first active stream based on a data transmission between the computing machine and the first server; and

estimating that an upstream and a downstream bandwidth between the computing machine and a second server for a second active stream corresponds to the computed upstream or downstream bandwidth between the computing machine and the first server.

17. The method of claim 15 , wherein entering the emergency operation mode further comprises:

setting the operating network data rate to a network data rate corresponding to the emergency operation mode;

ignoring packet delay; and

upon detecting packet loss rate above a second threshold amount of packet loss, further decreasing the operating network data rate.

18. The method of claim 15 , wherein entering the normal operation mode further comprises:

running a network data rate test at a network data rate exceeding the current network data rate; and

if the network data rate test at the network data rate exceeding the current network data rate is successful: increasing the current network data rate.

19. The method of claim 15 , further comprising:

determining, based on the estimated total available bandwidth or the one or more monitored network metrics, that the communication application is unable to return to the normal operation mode for communication in a second direction, wherein the first direction is a first one of inbound to the computing machine or outbound from the computing machine, and wherein the second direction is a different, second one of inbound to the computing machine or outbound from the computing machine;

maintaining the emergency operation mode for communication in the second direction; and

gradually increasing the current network data rate for communication in the first direction starting from a network data rate being implemented during the emergency operation mode, while maintaining the current network data rate for communication in the second direction at the network data rate being implemented during the emergency operation mode.

20. The method of claim 15 , further comprising:

foregoing transmitting, to a server associated with an active stream external to the computing machine, an indication of the operation mode of the communication application; and

transmitting, to the server associated with the active stream, an indication of the current network data rate for data transmission in the active stream from the server to the computing machine.

21. The method of claim 1 , wherein the monitored one or more network metrics comprise one or more of a packet loss rate, a packet delay rate, or a network goodput rate.

Assignments (15)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 053667/0169, REEL/FRAME 060450/0171, REEL/FRAME 063341/0051) Recorded Mar 15, 2024
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: GOTO GROUP, INC. (F/K/A LOGMEIN, INC.)
Reel/Frame 066800/0145 →
SECURITY INTEREST Recorded Feb 16, 2024
From: GOTO COMMUNICATIONS, INC.; GOTO GROUP, INC.; LASTPASS US LP
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS THE NOTES COLLATERAL AGENT
Reel/Frame 066614/0355 →
SECURITY INTEREST Recorded Feb 16, 2024
From: GOTO COMMUNICATIONS, INC.,; GOTO GROUP, INC., A; LASTPASS US LP,
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS THE NOTES COLLATERAL AGENT
Reel/Frame 066614/0402 →
SECURITY INTEREST Recorded Feb 7, 2024
From: GOTO GROUP, INC.,; GOTO COMMUNICATIONS, INC.; LASTPASS US LP
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 066508/0443 →
CHANGE OF NAME Recorded Apr 8, 2022
From: LOGMEIN, INC.
To: GOTO GROUP, INC.
Reel/Frame 059644/0090 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (SECOND LIEN) Recorded Feb 16, 2021
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: LOGMEIN, INC.
Reel/Frame 055306/0200 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 053667/0079 →
NOTES LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 053667/0032 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: LOGMEIN, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 053667/0169 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 041588/0143 Recorded Aug 31, 2020
From: JPMORGAN CHASE BANK, N.A.
To: LOGMEIN, INC.; GETGO, INC.
Reel/Frame 053650/0978 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2019
From: GETGO, INC.
To: LOGMEIN, INC.
Reel/Frame 049843/0833 →
SECURITY INTEREST Recorded Feb 1, 2017
From: GETGO, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 041588/0143 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2016
From: CITRIX SYSTEMS, INC.
To: GETGO, INC.
Reel/Frame 039970/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2014
From: CITRIX ONLINE, LLC
To: CITRIX SYSTEMS, INC.
Reel/Frame 032339/0447 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2013
From: MITTAL, KIMAYA; ALEXANDROV, ALBERT; KUEMMEL, SASCHA; BEERAM, SUNITHA; RAMACHANDRAN, KRISHNA
To: CITRIX ONLINE LLC
Reel/Frame 030485/0192 →