IP Library Granted Patent US 9,158,629
Granted Patent B2
US 9,158,629 · App. 13/631,661 · Granted Oct 13, 2015

Methods and systems for managing bandwidth usage among a plurality of client devices

Inventors: Robert Myhill (Boston, MA); Jeffry C. Flowers (Marblehead, MA)
Assignee: Carbonite Inc.
G06F11/1451G06F11/1464H04L47/20H04L47/722H04L47/724H04L47/808G06F11/1461G06F11/1469H04L47/822
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,158,629
App. No.
13/631,661
Granted
Oct 13, 2015
Kind
B2
Abstract

A method of managing bandwidth usage among a plurality of client devices is provided. A request is received at a first device from a second device. The request is to transfer a file between the first device and the second device and includes an identifier of the second device. A client group associated with the second device is determined based on the identifier and used to select a bandwidth usage policy. A data transfer rate for transferring the file between the first device and the second device is determined based on the selected bandwidth usage policy and a bandwidth usage at the first device associated with a plurality of devices. A number of bytes to transfer is determined based on the determined data transfer rate and a time period. A response, which includes the determined number of bytes and the time period, is sent to the second device.

Claims (51)

1. A method of managing bandwidth usage among a plurality of client devices, comprising:

receiving, by a first device from a second device, a request to transfer a first file between the first device and the second device;

selecting, by the first device, a bandwidth policy associated with the second device, each bandwidth policy identifying a data transfer rate;

adjusting, by the first device, the data transfer rate identified in the selected bandwidth policy based on a data transfer criterion of said second device at the first device;

determining, by the first device, a first data transfer rate for transferring the first file between the first device and the second device, based on a transfer criterion of the second device at the first device;

determining, by the first device, a first number of bytes to transfer between the first device and the second device during a first transfer period based on the determined first data transfer rate;

receiving, by the first device from a third device, a request to transfer a second file between the first device and the third device;

determining, by the first device, a second data transfer rate for transferring the second file between the first device and the third device, based on a transfer criterion of the third device at the first device;

determining, by the first device, a second number of bytes to transfer between the first device and the third device during the first transfer period based on the determined second data transfer rate;

sending, by the first device to the second device, a first response including the determined first number of bytes to transfer during the transfer period; and

sending, by the first device to the third device, a second response including the determined second number of bytes to transfer during the transfer period.

2. The method of claim 1 , wherein determining the first data transfer rate based on the transfer criterion of the second device at the first device further comprises selecting, from a plurality of data transfer rates, the first data transfer rate, based on a direction of transfer of the file between the first device and the second device.

3. The method of claim 1 , wherein determining the first data transfer rate based on the transfer criterion of the second device at the first device further comprises selecting, from a plurality of data transfer rates, the first data transfer rate, based on a type of file of the file to be transferred.

4. The method of claim 1 , wherein determining the first data transfer rate based on the transfer criterion of the second device at the first device further comprises selecting, from a plurality of data transfer rates, the first data transfer rate, based on a memory usage of less than a predetermined amount at the first device by the second device.

5. The method of claim 1 , wherein determining the first data transfer rate based on the transfer criterion of the second device at the first device further comprises selecting, from a plurality of data transfer rates, the first data transfer rate, based on a credit allocated to the first device responsive to a number of bytes transferred by the second device during a previous transfer period being less than a determined number of bytes for the second device to transfer during said previous transfer period.

6. The method of claim 1 , further comprising determining a client group associated with the second device, and wherein determining the data transfer rate comprises determining the data transfer rate based on a selected bandwidth usage policy based on the determined client group.

7. The method of claim 1 , wherein sending a response to the second device further comprises sending a response including a duration of the transfer period.

8. A system for managing bandwidth usage among a plurality of client devices, comprising:

a first device comprising a processor and a communication interface, wherein the processor is configured for:

receiving, from a second device via the communication interface, a request to transfer a file between the first device and the second device;

selecting, by the first device, a bandwidth policy associated with the second device, each bandwidth policy identifying a data transfer rate;

adjusting, by the first device, the data transfer rate identified in the selected bandwidth policy based on a data transfer criterion of said second device at the first device

determining a first data transfer rate for transferring the file between the first device and the second device, based on a transfer criterion of the second device at the first device;

determining a first number of bytes to transfer between the first device and the second device during a first transfer period based on the determined first data transfer rate;

receiving, from a third device, a request to transfer a second file between the first device and the third device;

determining a second data transfer rate for transferring the second file between the first device and the third device, based on a transfer criterion of the third device at the first device;

determining a second number of bytes to transfer between the first device and the third device during the first transfer period based on the determined second data transfer rate;

sending, to the second device, a first response including the determined first number of bytes to transfer during the transfer period; and

sending, to the third device, a second response including the determined second number of bytes to transfer during the transfer period.

9. The system of claim 8 , wherein the transfer criterion for the second device comprises a direction of transfer of the file between the first device and the second device.

10. The system of claim 8 , wherein the transfer criterion the second device comprises a type of file of the file to be transferred between the first device and the second device.

11. The system of claim 8 , wherein the transfer criterion for the second device comprises a memory usage of less than a predetermined amount at the first device by the second device.

12. The system of claim 8 , wherein the transfer criterion for the second device comprises a credit allocated to the second device responsive to a number of bytes transferred by the second device during a previous transfer period being less than a determined number of bytes for the second device to transfer during said previous transfer period.

13. The system of claim 8 , wherein the processor is further configured for determining, for the second device, a client group associated with the second device, and wherein determining the first data transfer rate comprises determining the data transfer rate for the second device based on a selected bandwidth usage policy based on the determined client group for the second device.

14. The system of claim 8 , wherein the processor is further configured for sending a response to the second device via the communication interface including a duration of the transfer period.

15. A method of managing bandwidth usage among a plurality of client devices, comprising:

receiving, by a first device from a second device, a request to transfer a file between the first device and the second device

selecting, by the first device for the second device, a bandwidth policy associated with the second device, the bandwidth policy identifying a data transfer rate;

adjusting, by the first device for the second device, the data transfer rate identified in the selected bandwidth policy based on a data transfer criterion of the second device at the first device;

determining, a first data transfer rate for transferring the file between the first device and the second device, based on a transfer criterion of the second device at the first device;

determining, by the first device for the second device, a number of bytes to transfer between the first device and the second device during a transfer period based on the adjusted data transfer rate for the second device;

receiving, from a third device, a request to transfer a second file between the first device and the third device;

determining a second data transfer rate for transferring the second file between the first device and the third device, based on a transfer criterion of the third device at the first device;

determining a second number of bytes to transfer between the first device and the third device during the first transfer period based on the determined second data transfer rate;

sending, to the second device, a first response including the determined first number of bytes to transfer during the transfer period;

sending, by the first device to the second device, a response including the determined number of bytes to transfer during the transfer period for the second device.

16. The method of claim 15 , wherein adjusting the data transfer rate for the second device comprises increasing the data transfer rate for the second device based on a storage usage by the second device at the first device being below a predetermined amount.

17. The method of claim 15 , wherein adjusting the data transfer rate for the second device comprises increasing the data transfer rate by a credit based on a number of bytes actually transferred between the first device and the second device during a previous transfer period being less than a previously determined number of bytes to transfer during the previous transfer period.

18. The method of claim 15 , wherein adjusting the data transfer rate for the second device comprises increasing the data transfer rate for the second device based on a number of bytes actually transferred between the first device and the second device being equal to a previously determined number of bytes to transfer during the previous transfer period.

19. The method of claim 18 , further comprising increasing the data transfer rate to a maximum data transfer rate identified by the bandwidth policy.

20. The method of claim 15 , wherein adjusting the data transfer rate for the second device comprises decreasing the data transfer rate for the second device based on a number of bytes actually transferred between the first device and the second device being less than a previously determined number of bytes to transfer during the previous transfer period.

Assignments (9)
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Oct 12, 2023
From: CARBONITE, LLC
To: OPEN TEXT INC.
Reel/Frame 065222/0310 →
CERTIFICATE OF CONVERSION Recorded Oct 12, 2023
From: CARBONITE, INC.
To: CARBONITE, LLC
Reel/Frame 065222/0303 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RECORDED AT R/F 048723/0374 Recorded Dec 26, 2019
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: CARBONITE, INC.
Reel/Frame 051418/0807 →
SECURITY INTEREST Recorded Mar 28, 2019
From: CARBONITE, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 048723/0374 →
TERMINATION OF PATENT SECURITY AGREEMENT FILED AT R/F 045640/0335 Recorded Mar 26, 2019
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: CARBONITE, INC.
Reel/Frame 048702/0929 →
SECURITY INTEREST Recorded Mar 19, 2018
From: CARBONITE, INC.
To: SILICON VALLEY BANK
Reel/Frame 045640/0335 →
RELEASE OF SECURITY INTEREST Recorded Apr 5, 2017
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: CARBONITE, INC.
Reel/Frame 041855/0459 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2015
From: MYHILL, ROBERT; FLOWERS, JEFF C.
To: CARBONITE, INC.
Reel/Frame 036494/0610 →
SECURITY AGREEMENT Recorded May 6, 2015
From: CARBONITE, INC.
To: SILICON VALLEY BANK
Reel/Frame 035602/0605 →
Continuity (2)
Division 12614174 · Nov 6, 2009
Related Publication 20130024581A1 · Jan 24, 2013