IP Library Granted Patent US 8,687,493
Granted Patent B2
US 8,687,493 · App. 13/306,181 · Granted Apr 1, 2014

Method and system for inroute bandwidth allocation supporting multiple traffic priorities in a satellite network

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,687,493
App. No.
13/306,181
Granted
Apr 1, 2014
Kind
B2
Abstract

A method for inroute bandwidth allocation supporting multiple traffic priorities in a satellite network including generating a backlog report, transmitting the backlog report to an inroute group manager, receiving a bandwidth allocation from the inroute group manager, and servicing priority queues and transmitting data to a satellite based on the bandwidth allocation from the inroute group manager.

Claims (434)

1. A method for inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

generating a backlog report;

transmitting the backlog report to an inroute group manager;

receiving a bandwidth allocation from the inroute group manager; and

servicing priority queues and transmitting data to a satellite based on the bandwidth allocation from the inroute group manager, wherein servicing the priority queues comprises:

allocating bandwidth from the bandwidth allocation to a plurality of level 2 queues based on a backlog of the level 2 queues and a weight for each of the level 2 queues;

transmitting data from the level 2 queues to the satellite according to the bandwidth allocated to each of the level 2 queues;

determining an occupancy rate of the plurality of level 2 queues;

calculating an amount of data to transfer from a plurality of level 3 queues to the plurality of level 2 queues based on the occupancy rate of the plurality of level 2 queues and a backlog in the plurality of 3 queues; and

transferring the calculated amount of data from the level 3 queues to the level 2 queues.

2. The method of claim 1 , wherein generating the backlog report comprises:

calculating a volume of data in level 2 queues; and

calculating a volume of data in level 3 queues.

3. The method of claim 1 , wherein the backlog report comprises a backlog of data for a plurality of traffic priorities.

4. The method of claim 2 , wherein calculating the volume of data in the level 3 queues is done according to:

V

L

3

=

i

=

1

M

V

L

3

(

i

)

=

i

=

1

M

[

j

=

1

N

i

q

ij

+

Q

i

(

2

)

+

Q

i

(

3

)

+

Q

PBP

,

i

]

where V L3 is the volume of data in level 3 queues, N i is a number of flows in an i-th priority class, i=1, . . . , M, q ij is a length of a TCP spoofing queue for priority class i and flow j, 1, . . . , M, j=1, . . . , N i ,

Q

i

(

k

=

1

)

=

j

=

1

N

i

q

ij

,

where k=1, is an mount of spoofed traffic, Q i (k=2) is an aggregated queue length of IPLR traffic, Q i (k=3) is an aggregated queue length of unspoofed traffic, i=1, . . . , M, Q PBP,i is a PBP queue size for priority class i.

5. The method of claim 2 , wherein calculating the volume of data in the level 2 queues is done according to:

V

L

2

=

i

=

1

M

V

L

2

(

i

)

where V L2 is the volume of data in level 2 queues, V L2 (i) is a volume of data in a level 2 queue for priority class i, i=1, . . . , M.

6. The method of claim 2 , wherein the level 2 queues comprise a plurality of priority queues, wherein each priority queue comprises data traffic of a different priority level.

7. The method of claim 6 , wherein there is a priority queue for interactive traffic, a priority queue for bulk traffic, and a priority queue for streaming traffic.

8. The method of claim 2 , wherein the level 3 queues comprise a plurality of unspoofed priority queues, a plurality of IPLR priority queues, a plurality of TCP-spoof priority queues, a plurality of TCP spoofing queues, and plurality of PBP priority queues.

9. A method for inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

receiving backlog reports from a plurality of VSATs;

calculating a bandwidth allocation for each of the VSATs in the plurality of VSATs; and

transmitting the bandwidth allocation to each of the plurality of VSATs, wherein calculating the bandwidth allocations comprises:

calculating a bandwidth allocation at a priority level across all of the VSATs; and

calculating a bandwidth allocation for each VSAT based on the bandwidth allocation at the priority level, wherein calculating a bandwidth allocation at the priority level comprises:

determining a budget for each of a plurality of priority classes across a plurality of frames, wherein the priority classes are ordered from a highest priority class to a lowest priority class, and wherein the budget for a priority class is calculated based on a weights for the priority class and an amount of bandwidth left from a total available amount of bandwidth after calculating a budget for all of the higher priority classes;

allocating bandwidth each of the priority classes, from the highest priority class to the lowest priority class, wherein bandwidth allocated to a priority class is based on the available bandwidth left from the total available amount of bandwidth after allocating bandwidth to all of the higher priority classes, the budget for the priority class, a reported backlog for the priority class, and a carryover of unused bandwidth previously budgeted for the priority class; and

allocating additional bandwidth to each of the priority classes, from the highest priority class to the lowest priority class, where the additional bandwidth for a priority class is any bandwidth not assigned to a higher priority class up to the amount of bandwidth required to clear the backlog for the priority class.

10. A method for inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

receiving backlog reports from a plurality of VSATs;

calculating a bandwidth allocation for each of the VSATs in the plurality of VSATs; and

transmitting the bandwidth allocation to each of the plurality of VSATs, wherein calculating the bandwidth allocations comprises:

calculating a bandwidth allocation at a priority level across all of the VSATs; and

calculating a bandwidth allocation for each VSAT based on the bandwidth allocation at the priority level, wherein calculating the bandwidth allocation for each VSAT based on the bandwidth allocation at the priority level comprises:

updating virtual queues to mirror a reported backlog at priority queues at the VSATs;

calculating a bandwidth allocation for each priority level at each VSAT using proportional fair scheduling based on the virtual queues, a throughput to service plan ratio for each of the VSATs, and the bandwidth allocation at the priority level; and

calculating a bandwidth allocation for each VSAT based on the bandwidth allocation for each priority level for each VSAT and an allocation of leftover bandwidth.

11. The method of claim 10 , wherein bandwidth is allocated for each priority level at each VSAT from highest priority level to lowest priority level and from a VSAT with a lowest throughput to service plan ratio to a VSAT with the highest throughput to service plan ratio.

12. A system inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

a satellite;

a VSAT population comprising VSATs, wherein each VSAT is configured to send data to and receive data from a gateway through the satellite, generate a backlog report, receive a bandwidth allocation from an inroute group manager, service priority queues at the VSAT using the bandwidth allocation, and transmit data to the satellite based on the bandwidth allocation; and

a gateway comprising an inroute group manager, the gateway configured to receive data from the VSAT population through the satellite, receive backlog reports from the VSAT population, and allocate bandwidth to the VSATs in the VSAT population with the inroute group manager, and send the bandwidth allocation to the VSAT population through the satellite,

wherein the VSATs are configured to service the priority queues by allocating bandwidth from the bandwidth allocation to a plurality of level 2 queues based on a backlog of the level 2 queues and a weight for each of the level 2 queues, transmitting data from the level 2 queues to the satellite according to the bandwidth allocated to each of the level 2 queues, determining an occupancy rate of the plurality of level 2 queues, calculating an amount of data to transfer from a plurality of level 3 queues to the plurality of level 2 queues based on the occupancy rate of the plurality of level 2 queues and a backlog in the plurality of 3 queues, and transferring the calculated amount of data from the level 3 queues to the level 2 queues.

13. The system of claim 12 , wherein the VSATs are further configured to generate the backlog report by calculating a volume of data in level 2 queues and calculating a volume of data in level 3 queues.

14. The system of claim 13 , wherein the VSATs are configured to calculate the volume of data in the level 3 queues according to:

V

L

3

=

i

=

1

M

V

L

3

(

i

)

=

i

=

1

M

[

j

=

1

N

i

q

ij

+

Q

i

(

2

)

+

Q

i

(

3

)

+

Q

PBP

,

i

]

where V L3 is the volume of data in level 3 queues, N i is a number of flows in an i-th priority class, i=1, . . . , M, q ij is a length of a TCP spoofing queue for priority class i and flow j, i=1, . . . , M j=1, . . . , N i ,

Q

i

(

k

=

1

)

=

j

=

1

N

i

q

ij

,

where k=1, is an mount of spoofed traffic, Q i (k=2) is an aggregated queue length of IPLR traffic, Q i (k=3) is an aggregated queue length of unspoofed traffic, i=1, . . . , M Q PBP,i is a PBP queue size for priority class i.

15. The system of 13 , wherein the VSATs are configured to calculate the volume of data in the level 2 queues according to:

V

L

2

=

i

=

1

M

V

L

2

(

i

)

where V L2 is the volume of data in level 2 queues, V L2 (i) is a volume of data in a level 2 queue for priority class i, i=1, . . . , M.

16. The system of claim 13 , wherein the level 2 queues comprise a plurality of priority queues, wherein each priority queue comprises data traffic of a different priority level.

17. The system of claim 16 , wherein there is a priority queue for interactive traffic, a priority queue for bulk traffic, and a priority queue for streaming traffic.

18. The system of claim 13 , wherein the level 3 queues comprise a plurality of unspoofed priority queues, a plurality of IPLR priority queues, a plurality of TCP-spoof priority queues, a plurality of TCP spoofing priority queues, and plurality of PBP priority queues.

19. The system of claim 12 , wherein the backlog report comprises a backlog of data for a plurality of traffic priorities.

20. The system of claim 12 , wherein the gateway is configured to calculate the bandwidth allocations with the inroute group manager by calculating a bandwidth allocation at a priority level across all of the VSATs, and calculating a bandwidth allocation for each VSAT based on the bandwidth allocation at the priority level.

21. A system inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

a satellite;

a VSAT population comprising VSATs, wherein each VSAT is configured to send data to and receive data from a gateway through the satellite, generate a backlog report, receive a bandwidth allocation from an inroute group manager, service priority queues at the VSAT using the bandwidth allocation, and transmit data to the satellite based on the bandwidth allocation; and

a gateway comprising an inroute group manager, the gateway configured to receive data from the VSAT population through the satellite, receive backlog reports from the VSAT population, and allocate bandwidth to the VSATs in the VSAT population with the inroute group manager, and send the bandwidth allocation to the VSAT population through the satellite,

wherein the gateway is configured to calculate the bandwidth allocations with the inroute group manager by calculating a bandwidth allocation at a priority level across all of the VSATs, and calculating a bandwidth allocation for each VSAT based on the bandwidth allocation at the priority level, and

wherein the inroute group manager is configured to calculate a bandwidth allocation at the priority level by determining a budget across a plurality of frames for each of a plurality of priority classes, wherein the priority classes are ordered from a highest priority class to a lowest priority class, and wherein the budget for a priority class is calculated based on a weights for the priority class and an amount of bandwidth left from a total available amount of bandwidth after calculating a budget for all of the higher priority classes, allocating bandwidth each of the priority classes, from the highest priority class to the lowest priority class, wherein bandwidth allocated to a priority class is based on the available bandwidth left from the total available amount of bandwidth after allocating bandwidth to all of the higher priority classes, the budget for the priority class, a reported backlog for the priority class, and a carryover of unused bandwidth previously budgeted for the priority class, and allocating additional bandwidth to each of the priority classes, from the highest priority class to the lowest priority class, where the additional bandwidth for a priority class is any bandwidth not assigned to a higher priority class up to the amount of bandwidth required to clear the backlog for the priority class.

22. A system inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

a satellite;

a VSAT population comprising VSATs, wherein each VSAT is configured to send data to and receive data from a gateway through the satellite, generate a backlog report, receive a bandwidth allocation from an inroute group manager, service priority queues at the VSAT using the bandwidth allocation, and transmit data to the satellite based on the bandwidth allocation; and

a gateway comprising an inroute group manager, the gateway configured to receive data from the VSAT population through the satellite, receive backlog reports from the VSAT population, and allocate bandwidth to the VSATs in the VSAT population with the inroute group manager, and send the bandwidth allocation to the VSAT population through the satellite,

wherein the gateway is configured to calculate the bandwidth allocations with the inroute group manager by calculating a bandwidth allocation at a priority level across all of the VSATs, and calculating a bandwidth allocation for each VSAT based on the bandwidth allocation at the priority level, and

wherein the inroute group manager is further configured to calculate the bandwidth allocation for each VSAT based on the bandwidth allocation at the priority level comprises by updating virtual queues to minor a reported backlog at priority queues at the VSATs, calculating a bandwidth allocation for each priority level at each VSAT using proportional fair scheduling based on the virtual queues, a throughput to service plan ratio for each of the VSATs, and the bandwidth allocation at the priority level, and calculating a bandwidth allocation for each VSAT based on the bandwidth allocation for each priority level for each VSAT and an allocation of leftover bandwidth.

23. The system of claim 22 , wherein bandwidth is allocated for each priority level at each VSAT from highest priority level to lowest priority level and from a VSAT with a lowest throughput to service plan ratio to a VSAT with the highest throughput to service plan ratio.

24. A method for inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

generating a backlog report;

transmitting the backlog report to an inroute group manager;

receiving a bandwidth allocation from the inroute group manager; and

servicing priority queues and transmitting data to a satellite based on the bandwidth allocation from the inroute group manager, wherein generating the backlog report comprises:

calculating a volume of data in level 2 queues; and

calculating a volume of data in level 3 queues, wherein calculating the volume of data in the level 3 queues is done according to:

V

L

3

=

i

=

1

M

V

L

3

(

i

)

=

i

=

1

M

[

j

=

1

N

i

q

ij

+

Q

i

(

2

)

+

Q

i

(

3

)

+

Q

PBP

,

i

]

where N i is a number of flows in an i-th priority class, i=1, . . . , M, q ij is a length of a TCP spoofing queue for priority class i and flow j, i=1, . . . , M, j=1, . . . , N i ,

Q

i

(

k

=

1

)

=

j

=

1

N

i

q

ij

,

where k=1, is an mount of spoofed traffic, Q i (k=2) is an aggregated queue length of IPLR traffic, Q i (k=3) is an aggregated queue length of unspoofed traffic, i=1, . . . , M, Q PBP,i is a PBP queue size for priority class i.

25. A method for inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

generating a backlog report;

transmitting the backlog report to an inroute group manager;

receiving a bandwidth allocation from the inroute group manager; and

servicing priority queues and transmitting data to a satellite based on the bandwidth allocation from the inroute group manager, wherein generating the backlog report comprises:

calculating a volume of data in level 2 queues; and

calculating a volume of data in level 3 queues, wherein the level 3 queues comprise a plurality of unspoofed priority queues, a plurality of IPLR priority queues, a plurality of TCP-spoof priority queues, a plurality of TCP spoofing queues, and plurality of PBP priority queues.

26. A system inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

a satellite;

a VSAT population comprising VSATs, wherein each VSAT is configured to send data to and receive data from a gateway through the satellite, generate a backlog report, receive a bandwidth allocation from an inroute group manager, service priority queues at the VSAT using the bandwidth allocation, and transmit data to the satellite based on the bandwidth allocation; and

a gateway comprising an inroute group manager, the gateway configured to receive data from the VSAT population through the satellite, receive backlog reports from the VSAT population, and allocate bandwidth to the VSATs in the VSAT population with the inroute group manager, and send the bandwidth allocation to the VSAT population through the satellite,

wherein the VSATs are configured to generate the backlog report by calculating a volume of data in level 2 queues and calculating a volume of data in level 3 queues,

wherein the VSATs are configured to calculating the volume of data in the level 3 queues according to:

V

L

3

=

i

=

1

M

V

L

3

(

i

)

=

i

=

1

M

[

j

=

1

N

i

q

ij

+

Q

i

(

2

)

+

Q

i

(

3

)

+

Q

PBP

,

i

]

where V L3 is the volume of data in level 3 queues, N i is a number of flows in an i-th priority class, i=1, . . . , M, q ij is a length of a TCP spoofing queue for priority class i and flow j, i=1, . . . , M, j=1, . . . , N i ,

Q

i

(

k

=

1

)

=

j

=

1

N

i

q

ij

,

where k=1, is an mount of spoofed traffic, Q i (k=2) is an aggregated queue length of IPLR traffic, Q i (k=3) is an aggregated queue length of unspoofed traffic, i=1, . . . , M, Q PBP,i is a PBP queue size for priority class i.

27. A system inroute bandwidth allocation supporting multiple traffic priorities in a satellite network comprising:

a satellite;

a VSAT population comprising VSATs, wherein each VSAT is configured to send data to and receive data from a gateway through the satellite, generate a backlog report, receive a bandwidth allocation from an inroute group manager, service priority queues at the VSAT using the bandwidth allocation, and transmit data to the satellite based on the bandwidth allocation; and

a gateway comprising an inroute group manager, the gateway configured to receive data from the VSAT population through the satellite, receive backlog reports from the VSAT population, and allocate bandwidth to the VSATs in the VSAT population with the inroute group manager, and send the bandwidth allocation to the VSAT population through the satellite,

wherein the VSATs are configured to generate the backlog report by calculating a volume of data in level 2 queues and calculating a volume of data in level 3 queues, and

wherein the level 3 queues comprise a plurality of unspoofed priority queues, a plurality of IPLR priority queues, a plurality of TCP-spoof priority queues, a plurality of TCP spoofing priority queues, and plurality of PBP priority queues.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 15649418 PREVIOUSLY RECORDED ON REEL 050600 FRAME 0314. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF PATENT SECURITY AGREEMENTS. Recorded Sep 3, 2020
From: WELLS FARGO, NATIONAL BANK ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 053703/0367 →
ASSIGNMENT OF PATENT SECURITY AGREEMENTS Recorded Oct 1, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 050600/0314 →
SECURITY INTEREST Recorded Feb 19, 2015
From: HUGHES NETWORK SYSTEMS LLC
To: WELLS FARGO BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 034989/0218 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2014
From: TORRES, ROBERT; BORDER, JOHN; STEVENS, PATRICK; XU, JUN
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 034519/0045 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2011
From: TORRES, ROBERT; BORDER, JOHN; STEVENS, PAT; XU, JUN
To: HUGHES NETWORKS SYSTEMS, LLC
Reel/Frame 027304/0628 →