IP Library Granted Patent US 12700917
Granted Patent B2
US 12700917 · App. 18/542,026 · Granted Aug 4, 2026

System for satellite data traffic shaping

Inventors: Dandan Wang (Lynnwood, WA); Daniel Todd Cohn (Bainbridge Island, WA); Arunabha Ghosh (Bellevue, WA); Anil Rao (Redmond, WA); Andrew B. Dickinson (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04B7/18513H04B7/18519
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 12700917
App. No.
18/542,026
Granted
Aug 4, 2026
Kind
B2
Abstract

A constellation of satellites provides communication services to user terminals (UTs). Downstream data addressed to a UT is received at a point-of-presence (POP) and tokenized before sending to a satellite serving the UT. Tokens are associated with resource blocks (RBs), each RB indicative of a particular combination of downlink frequency and timeslot. Tokens are then allocated to downstream data. This tokenized downstream data is sent to the satellite. Untokenized downstream data may be buffered for later tokenization or discarded. A satellite may use information in the token to schedule transmission on a downlink to the UT. The supply of tokens may be based on shaper input data such as gateway queue depth, estimated latency from the POP to the satellite, estimated time to empty a buffer onboard the satellite, and so forth. The supply of tokens may be adjusted to minimize data loss during handovers from one satellite to another.

Claims (98)

1 . A system comprising:

a first set of one or more processors executing instructions to:

determine downstream data;

determine a set of resource blocks associated with a transmitter onboard a first satellite, wherein each resource block is associated with a specified frequency and time slot;

determine shaper input data;

determine, based on the set of resource blocks and the shaper input data, an allocated number of tokens;

associate a first portion of the downstream data with one of the allocated number of tokens; and

send the first portion of the downstream data and associated one of the allocated number of tokens to the first satellite; and

the first satellite comprising a second set of one or more processors executing instructions to:

receive the first portion of the downstream data and the one of the allocated number of tokens; and

schedule transmission of the first portion of the downstream data on a downlink based at least in part on the one of the allocated number of tokens.

2 . The system of claim 1 , further comprising instructions that when executed by the first set of one or more processors, cause the system to:

determine buffer queue depth data indicative of a time to empty a buffer on the first satellite that stores at least a second portion of the first portion of the downstream data; and

determine round trip latency data associated with data transmission between the system and the first satellite;

wherein the shaper input data comprises the buffer queue depth data and the round trip latency data.

3 . The system of claim 1 , further comprising instructions that when executed by the first set of one or more processors, cause the system to:

determine a first time at which communication with the first satellite is scheduled to be handed over from a first gateway to a second gateway; and

before the first time, send the first portion of downstream data and the one of the allocated number of tokens to the second gateway.

4 . The system of claim 1 , further comprising instructions that when executed by the first set of one or more processors, cause the system to:

determine a first number of tokens associated with respective resource blocks of the set of resource blocks, wherein the first number of tokens have been sent to the first satellite during a specified time interval;

determine a first user terminal associated with part of the first portion of the downstream data;

determine a first time at which communication between the first satellite and the first user terminal is scheduled to be handed over from the first satellite to a second satellite; and

wherein the allocated number of tokens is determined based on the first number of tokens and the first time.

5 . The system of claim 1 , further comprising instructions that when executed by the first set of one or more processors, cause the system to:

determine a first time at which communication with the first satellite is scheduled to be handed over from a first gateway to a second gateway; and

wherein the allocated number of tokens is determined based at least in part on the first time.

6 . The system of claim 1 , further comprising instructions that when executed by the first set of one or more processors, cause the system to:

determine a first number of tokens, wherein each token of the first number of tokens is associated with a respective resource block of the set of resource blocks;

determine a buffer queue depth at the first satellite for a specified time interval;

determine a second number of tokens based on the first number of tokens and the buffer queue depth;

determine an estimated token drain rate indicative of a number of previously received tokens that have been sent by the first satellite during the specified time interval;

determine a third number of tokens based on the second number of tokens and the estimated token drain rate; and

determine an operating mode indicative of a scheduler mode or a data pipe mode;

wherein the allocated number of tokens is determined based on the third number of tokens and the operating mode.

7 . The system of claim 1 , further comprising instructions that when executed by the first set of one or more processors, cause the system to:

determine an operating mode; and

wherein the allocated number of tokens is determined based on the operating mode.

8 . A method comprising:

determining downstream data;

determining a set of resource blocks associated with a transmitter onboard a first satellite, wherein each resource block is associated with a specified frequency and time slot;

determining shaper input data;

determining, based on the set of resource blocks and the shaper input data, an allocated number of tokens;

associating a first portion of the downstream data with one of the allocated number of tokens;

determining buffer queue depth data indicative of a time to empty a buffer on the first satellite that stores at least a second portion of the first portion of the downstream data; and

determining round trip latency data associated with data transmission between a first set of one or more processors and the first satellite;

wherein the shaper input data comprises the buffer queue depth data and the round trip latency data.

9 . The method of claim 8 , further comprising:

sending the first portion of the downstream data and the one of the allocated number of tokens to the first satellite via a first gateway; and

scheduling, at the first satellite, transmission of the first portion of the downstream data on a downlink based at least in part on the one of the allocated number of tokens.

10 . The method of claim 8 , further comprising:

determining a first time at which communication with the first satellite is scheduled to be handed over from a first gateway to a second gateway; and

before the first time, sending the first portion of the downstream data and the one of the allocated number of tokens to the first satellite via the second gateway.

11 . The method of claim 8 , further comprising:

determining a first number of tokens associated with respective resource blocks of the set of resource blocks, wherein the first number of tokens have been sent to the first satellite during a specified time interval;

determining a first user terminal associated with part of the first portion of the downstream data; and

determining a first time at which communication between the first satellite and the first user terminal is scheduled to be handed over from the first satellite to a second satellite;

wherein the determining the allocated number of tokens is based on the first number of tokens and the first time.

12 . The method of claim 8 , further comprising:

determining a first time at which communication with the first satellite is scheduled to be handed over from a first gateway to a second gateway; and

wherein the determining the allocated number of tokens is based at least in part on the first time.

13 . The method of claim 8 , further comprising:

determining a first number of tokens, wherein each token of the first number of tokens is associated with a respective resource block of the set of resource blocks;

determining a second number of tokens based on the first number of tokens and the buffer queue depth data;

determining an estimated token drain rate indicative of a number of previously received tokens that have been sent by the first satellite during a specified time interval;

determining a third number of tokens based on the second number of tokens and the estimated token drain rate; and

determining an operating mode indicative of a scheduler mode or a data pipe mode;

wherein the determining the allocated number of tokens is based on the third number of tokens and the operating mode.

14 . The method of claim 8 , further comprising:

determining an operating mode; and

wherein the determining the allocated number of tokens is based on the operating mode.

15 . A method comprising:

determining a set of resource blocks associated with a first satellite, wherein each resource block is associated with a specific combination of two or more downlink communication parameters;

determining shaper input data;

determining a first time at which communication with the first satellite is scheduled to be handed over from a first gateway to a second gateway;

determining, based on the set of resource blocks and the shape input data, an allocated number of tokens;

associating a first portion of downstream data with one of the allocated number of tokens; and

before the first time, sending the first portion of the downstream data and the one of the allocated number of tokens to the first satellite via the second gateway.

16 . The method of claim 15 , further comprising:

scheduling, at the first satellite, transmission of the first portion of the downstream data on a downlink based at least in part on the associated one of the allocated number of tokens.

17 . The method of claim 15 , further comprising:

determining buffer queue depth data indicative of a time to empty a buffer on the first satellite that stores at least a second portion of the first portion of the set of the downstream data; and

determining round trip latency data associated with data transmission between a first set of one or more processors and the first satellite; and

wherein the shaper input data comprises the buffer queue depth data and the round trip latency data.

18 . The method of claim 15 , further comprising:

determining a first number of tokens associated with respective resource blocks of the set of resource blocks, wherein the first number of tokens have been sent to the first satellite during a specified time interval;

determining a first user terminal associated with part of the first portion of the downstream data; and

determining a second time at which communication between the first satellite and the first user terminal is scheduled to be handed over from the first satellite to a second satellite;

wherein the determining the allocated number of tokens is further based on the first number of tokens and the second time.

19 . The method of claim 15 , further comprising:

determining a first number of tokens, wherein each token of the first number of tokens is associated with a respective resource block of the set of resource blocks;

determining a buffer queue depth at the first satellite for a specified time interval;

determining a second number of tokens based on the first number of tokens and the buffer queue depth;

determining an estimated token drain rate indicative of a number of previously received tokens that have been sent by the first satellite during the specified time interval; and

determining a third number of tokens based on the second number of tokens and the estimated token drain rate;

wherein the determining the allocated number of tokens is based on the third number of tokens.

20 . The method of claim 15 , further comprising:

determining an operating mode; and

wherein the determining the allocated number of tokens is based on the operating mode.