IP Library Granted Patent US 8,750,239
Granted Patent B1
US 8,750,239 · App. 13/865,920 · Granted Jun 10, 2014

Allocating a pool of shared bandwidth

Inventor: Paul Michael Martini (San Diego, CA)
Assignee: iboss Inc.
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,750,239
App. No.
13/865,920
Granted
Jun 10, 2014
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for allocating a pool of shared Internet bandwidth. One of the methods includes providing a first communications channel having a first bandwidth, the first bandwidth being shared by a first group of first users, providing a second communications channel having a second bandwidth different than the first bandwidth, the second bandwidth being shared by a second group of second users, detecting that at least one first data connection for a particular first user in the first group has satisfied a first predetermined condition, and moving, based on the detecting, the at least one first data connection for the particular first user from the first communications channel to the second communications channel.

Claims (91)

1. A method performed by data processing apparatus, the method comprising:

providing a first communications channel having a first bandwidth, the first bandwidth being shared by a first group of first users;

providing a second communications channel having a second bandwidth that is different than the first bandwidth, the second bandwidth being shared by a second group of second users;

determining a first bandwidth usage of at least one first data connection for a particular first user;

comparing the first bandwidth usage with a threshold level of bandwidth usage;

determining, based on the first bandwidth usage being greater than the threshold level of bandwidth usage, that the at least one first data connection for the particular first user has satisfied a first predetermined condition; and

moving, based on determining that the at least one first data connection for the particular first user has satisfied the first predetermined condition, at least one of the at least one first data connections for the particular first user from the first communications channel to the second communications channel.

2. The method of claim 1 , wherein the second bandwidth is smaller than the first bandwidth.

3. The method of claim 1 , further comprising:

determining that at least one of the at least one first data connections for the particular first user has accessed one or more restricted resources, wherein moving the at least one of the at least one first data connections for the particular first user from the first communications channel to the second communications channel is based on determining that the at least one of the at least one first data connections for the particular first user has accessed one or more restricted resources.

4. The method of claim 1 , further comprising:

detecting that at least one second data connection for the particular first user in the second group has satisfied a second predetermined condition; and

moving, based on the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition, the at least one second data connection for the particular first user from the second communications channel to the first communications channel.

5. The method of claim 4 , wherein the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition comprises:

determining a second bandwidth usage of the at least one second data connection for the particular first user;

comparing the second bandwidth usage with a threshold level of bandwidth usage; and

detecting, based on the second bandwidth usage not being greater than the threshold level of bandwidth usage, that the at least one second data connection for the particular first user has satisfied the second predetermined condition.

6. The method of claim 4 , wherein the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition comprises determining that a predetermined duration of time has passed since the moving of the at least one of the first data connections from the first communication channel to the second communications channel.

7. The method of claim 1 , wherein:

the at least one first data connection comprises two or more data connections within the first communications channel including a second data connection and a third data connection;

determining the first bandwidth usage of the at least one first data connection for the particular first user further comprises determining a second bandwidth usage for the second data connection;

comparing the first bandwidth usage with the threshold level of bandwidth usage further comprises comparing the second bandwidth usage with the threshold level of bandwidth usage;

determining that the at least one first data connection for the particular first user has satisfied a first predetermined condition further comprises determining, based on the second bandwidth usage being greater than the threshold level of bandwidth usage, that the second data connection has satisfied the first predetermined condition; and

moving the at least one of the at least one first data connection for the particular first user from the first communications channel to the second communications channel is based on determining that the second data connection has satisfied the first predetermined condition.

8. The method of claim 7 , wherein the moving comprises:

moving the second data connection from the first communications channel to the second communications channel while the third data connection remains in the first communications channel.

9. The method of claim 1 , wherein the second communications channel shares the same physical connection in the data processing apparatus as the first communications channel, the method further comprising:

determining, for each of the first users, a bandwidth usage of the first communications channel;

determining a total level of bandwidth usage of the first communications channel based on the bandwidth usage of the first communications channel for each of the first users; and

adjusting a maximum bandwidth of the second communications channel based on the total level of bandwidth usage of the first communications channel.

10. A non-transitory computer storage medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

providing a first communications channel having a first bandwidth, the first bandwidth being shared by a first group of first users;

providing a second communications channel having a second bandwidth that is different than the first bandwidth, the second bandwidth being shared by a second group of second users;

determining a first bandwidth usage of at least one first data connection for a particular first user;

comparing the first bandwidth usage with a threshold level of bandwidth usage;

determining, based on the first bandwidth usage being greater than the threshold level of bandwidth usage, that the at least one first data connection for the particular first user has satisfied a first predetermined condition; and

moving, based on determining that the at least one first data connection for the particular first user has satisfied the first predetermined condition, at least one of the at least one first data connections for the particular first user from the first communications channel to the second communications channel.

11. The computer storage medium of claim 10 , wherein the second bandwidth is smaller than the first bandwidth.

12. The computer storage medium of claim 10 , the operations further comprising:

determining that at least one of the at least one first data connections for the particular first user has accessed one or more restricted resources, wherein moving the at least one of the at least one first data connections for the particular first user from the first communications channel to the second communications channel is based on determining that the at least one of the at least one first data connections for the particular first user has accessed one or more restricted resources.

13. The computer storage medium of claim 10 , the operations further comprising:

detecting that at least one second data connection for the particular first user in the second group has satisfied a second predetermined condition; and

moving, based on the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition, the at least one second data connection for the particular first user from the second communications channel to the first communications channel.

14. The computer storage medium of claim 13 , wherein the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition comprises:

determining a second bandwidth usage of the at least one second data connection for the particular first user;

comparing the second bandwidth usage with a threshold level of bandwidth usage; and

detecting, based on the second bandwidth usage not being greater than the threshold level of bandwidth usage, that the at least one second data connection for the particular first user has satisfied the second predetermined condition.

15. The computer storage medium of claim 13 , wherein the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition comprises determining that a predetermined duration of time has passed since the moving of the at least one of the first data connections from the first communication channel to the second communications channel.

16. The computer storage medium of claim 10 , wherein:

the at least one first data connection comprises two or more data connections within the first communications channel including a second data connection and a third data connection;

determining the first bandwidth usage of the at least one first data connection for the particular first user further comprises determining a second bandwidth usage for the second data connection;

comparing the first bandwidth usage with the threshold level of bandwidth usage further comprises comparing the second bandwidth usage with the threshold level of bandwidth usage;

determining that the at least one first data connection for the particular first user has satisfied a first predetermined condition further comprises determining, based on the second bandwidth usage being greater than the threshold level of bandwidth usage, that the second data connection has satisfied the first predetermined condition; and

moving the at least one of the at least one first data connection for the particular first user from the first communications channel to the second communications channel is based on determining that the second data connection has satisfied the first predetermined condition.

17. The computer storage medium of claim 16 , wherein the moving comprises:

moving the second data connection from the first communications channel to the second communications channel while the third data connection remains in the first communications channel.

18. The computer storage medium of claim 17 , the operations further comprising:

determining, for each of the first users, a bandwidth usage of the first communications channel when the second communications channel shares the same physical connection as the first communications channel;

determining a total level of bandwidth usage of the first communications channel based on the bandwidth usage of the first communications channel for each of the first users; and

adjusting a maximum bandwidth of the second communications channel based on the total level of bandwidth usage of the first communications channel.

19. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

providing a first communications channel having a first bandwidth, the first bandwidth being shared by a first group of first users;

providing a second communications channel having a second bandwidth that is different than the first bandwidth, the second bandwidth being shared by a second group of second users;

determining a first bandwidth usage of at least one first data connection for a particular first user;

comparing the first bandwidth usage with a threshold level of bandwidth usage;

determining, based on the first bandwidth usage being greater than the threshold level of bandwidth usage, that the at least one first data connection for the particular first user has satisfied a first predetermined condition; and

moving, based on determining that the at least one first data connection for the particular first user has satisfied the first predetermined condition, at least one of the at least one first data connections for the particular first user from the first communications channel to the second communications channel.

20. The system of claim 19 , wherein the second bandwidth is smaller than the first bandwidth.

21. The system of claim 19 , the operations further comprising:

determining that at least one of the at least one first data connections for the particular first user has accessed one or more restricted resources, wherein moving the at least one of the at least one first data connections for the particular first user from the first communications channel to the second communications channel is based on determining that the at least one of the at least one first data connections for the particular first user has accessed one or more restricted resources.

22. The system of claim 19 , the operations further comprising:

detecting that at least one second data connection for the particular first user in the second group has satisfied a second predetermined condition; and

moving, based on the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition, the at least one second data connection for the particular first user from the second communications channel to the first communications channel.

23. The system of claim 22 , wherein the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition comprises:

determining a second bandwidth usage of the at least one second data connection for the particular first user;

comparing the second bandwidth usage with a threshold level of bandwidth usage; and

detecting, based on the second bandwidth usage not being greater than the threshold level of bandwidth usage, that the at least one second data connection for the particular first user has satisfied the second predetermined condition.

24. The system of claim 22 , wherein the detecting that the at least one second data connection for the particular first user has satisfied the second predetermined condition comprises determining that a predetermined duration of time has passed since the moving of the at least one of the first data connections from the first communication channel to the second communications channel.

25. The system of claim 19 , wherein:

the at least one first data connection comprises two or more data connections within the first communications channel including a second data connection and a third data connection;

determining the first bandwidth usage of the at least one first data connection for the particular first user further comprises determining a second bandwidth usage for the second data connection;

comparing the first bandwidth usage with the threshold level of bandwidth usage further comprises comparing the second bandwidth usage with the threshold level of bandwidth usage;

determining that the at least one first data connection for the particular first user has satisfied a first predetermined condition further comprises determining, based on the second bandwidth usage being greater than the threshold level of bandwidth usage, that the second data connection has satisfied the first predetermined condition; and

moving the at least one of the at least one first data connection for the particular first user from the first communications channel to the second communications channel is based on determining that the second data connection has satisfied the first predetermined condition.

26. The system of claim 25 , wherein the moving comprises:

moving the second data connection from the first communications channel to the second communications channel while the third data connection remains in the first communications channel.

27. The system of claim 19 , wherein the second communications channel shares the same physical connection in the system as the first communications channel, the operations further comprising:

determining, for each of the first users, a bandwidth usage of the first communications channel;

determining a total level of bandwidth usage of the first communications channel based on the bandwidth usage of the first communications channel for each of the first users; and

adjusting a maximum bandwidth of the second communications channel based on the total level of bandwidth usage of the first communications channel.

Assignments (7)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0219 →
SUPPLEMENTAL INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0266 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Dec 12, 2023
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK TRUST COMPANY
To: IBOSS, INC.
Reel/Frame 066140/0480 →
SECURITY INTEREST Recorded Sep 19, 2022
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 061463/0331 →
SECURITY INTEREST Recorded Dec 16, 2020
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 054789/0680 →
CHANGE OF NAME Recorded Apr 23, 2014
From: PHANTOM TECHNOLOGIES, INC.
To: IBOSS, INC.
Reel/Frame 032745/0646 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2013
From: MARTINI, PAUL MICHAEL
To: PHANTOM TECHNOLOGIES, INC.
Reel/Frame 030281/0150 →