BACKGROUND OF THE INVENTION
[0001] Slotted Aloha systems may employ sliding window congestion control with negative
or positive acknowledgment. These systems may be inefficient because the retransmission
of segments or packets does not take into account the load in the network. Other systems
sense whether data is being transmitted prior to sending data segments and/or packets.
If data is being sent, then the system backs off and tries again after waiting a random
period of time. Such systems require expensive hardware and/or software at the transmitter
to sense the network load.
BRIEF SUMMARY
[0003] A method for providing congestion control in a slotted Aloha communication system
is provided according to embodiments of the invention. The slotted Aloha communication
system may include a hub in communication with one or more RCST. The method may include
receiving segments from one or more RCST at the hub. Each segment is received from
an RCST at the hub during a set timeslot. When a segment is received a transmission
counter is incremented. If the segment is a retransmission segment, then the retransmission
counter is incremented. The method may check to see if the retransmission flag is
asserted. If the segment is an unsuccessful collision retransmission segment then
the successful retransmission counter is incremented. The system may check to see
if the successful retransmission flag is asserted. A message may be transmitted to
each RCST after a first number of timeslots have elapsed that includes the transmission
counter, the retransmission counter, and the successful retransmission counter. In
another embodiment, the hub may transmit a message to each RCST after a first time
interval that includes a transmission probability.
[0004] The message transmitted to each RCST may also includes information correlating segments
received during the first time period with the RCST that transmitted the segments
and the timeslot in which the segment was received. The transmission counter, the
retransmission counter, and the successful retransmission counter may be reset to
initial values after a second time interval. The first and second time intervals may
be integer multiplies of timeslots.
[0005] According to the present invention, there is also provided slotted Aloha communication
system comprising: a hub in communication with one or more RCSTs and operative to
receive segments from one or more RCSTs, wherein each segment is received from an
RCST at the hub during a timeslot, and for each received segment: increment a transmission
counter; determine whether the segment is a retransmission segment and, if it is determined
that the segment is a retransmission segment, the hub is operative to increment a
retransmission counter; and determine whether the segment is an unsuccessful collision
retransmission segment and, if it is determined that the segment is an unsuccessful
collision retransmission segment, the hub is operative to increment a successful retransmission
counter; and transmit a message to each RCST after a first time interval, wherein
the message includes the transmission counter, the retransmission counter, and the
successful retransmission counter; and a plurality of RCSTs, wherein each RCST is
configured to receive the message from the hub that includes the transmission counter,
the retransmission counter, and the successful retransmission counter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIGS. 1A-1D show communication systems that may use a slotted aloha system according
to various embodiments of the invention.
[0007] FIG. 2 shows another communication system that may use a slotted aloha system according
another embodiment of the invention.
[0008] FIG. 3 shows a timing diagram that includes segment timing and SDBM transmission
timing according to embodiments of the invention.
[0009] FIG. 4 shows a diagram of seven RCSTs transmitting segments over a slotted aloha
network according to one embodiment of the invention.
[0010] FIGS. 5A and 5B show data segment structure according to another embodiment of the
invention.
[0011] FIG. 6 shows a flow chart for determining the transmission probability at a hub based
on segment transmission characteristics according to one embodiment of the invention.
[0012] FIG. 7 also shows a flow chart for determining the transmission probability at a
hub based on segment transmission characteristics and using a sliding scale according
to one embodiment of the invention.
[0013] FIG. 8 shows a block diagram detailing how an RCST may use transmission and retransmission
queues according to one embodiment of the invention.
[0014] FIG. 9 shows a flowchart transmitting and retransmitting segments according to another
embodiment of the invention.
[0015] FIG. 10 shows a block diagram of a hub and a return channel satellite terminals (RCST)
according to one embodiment of the invention.
[0016] FIG. 11 shows a block diagram of components within a RCST according to one embodiment
of the invention.
[0017] In the appended figures, similar components and/or features may have the same reference
label. Further, various components of the same type may be distinguished by following
the reference label by a dash and a second label that distinguishes among the similar
components. If only the first reference label is used in the specification, the description
is applicable to any one of the similar components having the same first reference
label irrespective of the second reference label.
DETAILED DESCRIPTION OF THE INVENTION
[0018] The ensuing description provides preferred exemplary embodiment(s) only, and is not
intended to limit the scope, applicability or configuration of the disclosure. Rather,
the ensuing description of the preferred exemplary embodiment(s) will provide those
skilled in the art with an enabling description for implementing a preferred exemplary
embodiment. It should be understood that various changes may be made in the function
and arrangement of elements without departing from the spirit and scope as set forth
in the appended claims.
[0019] Referring initially to FIG. 1A, an embodiment of a satellite system 100-1 is shown.
In this embodiment, a hub 115 is coupled with a network 120, for example, the Internet
or an intranet. The hub 115 uses a satellite dish 110 to bi-directionally communicate
with a satellite 105 on a feeder link. An upstream forward link 135 communicates information
from the hub 115 to the satellite 105, and a downstream return link 140 communicates
information from the satellite 105 to the hub 115. Although not shown, there may be
a number of hubs 115 in the system 100. The satellite 105 and return channel satellite
terminals (RCSTs) 130 are configured in a star or hub topology with satellite 105
as the hub or with more than one satellite and the hub as a hub.
[0020] The satellite 105 could perform switching or be a bent-pipe. Information bi-directionally
passes through the satellite 105. The satellite 105 could use antennas or phased arrays
when communicating. The communication could be focused into spot beams or more broadly,
for example, the continental US (CONUS). Satellites 105 have trouble reaching RCSTs
130 through foliage or other obstructions. At certain frequencies, even weather and
other atmospheric disturbances can cause a satellite signal to fade.
[0021] The RCSTs 130 in this embodiment are bi-directionally coupled to the satellite 105
to provide connectivity with the network 120. Each RCST 130 receives information with
a shared forward downlink 150 from the satellite 105, and transmit information is
sent on a shared forward uplink 145. Each RCST 130 can send information upstream to
the satellite 105 using TDM.
[0022] Shown in this embodiment are RCSTs 130 with a single antenna 127. RCSTs 130 with
multiple antennas may also be used in a MIMO, SIMO or MISO configuration. The RCST
130 can be in a fixed location or can be mobile. In this embodiment, the RCST 130
interacts with a single transceiver in the satellite 105. Other embodiments could
allow the RCST 130 interact with multiple transceivers that maybe oribitally located
or non-orbitable (e.g., air, ground or sea based). Some embodiments of the RCST 130
allow switching between these modes.
[0023] Referring next to FIG. 1B, another embodiment of a satellite system 100-2 is shown.
This embodiment has a single satellite 105 at the center of a hub or star communications
arrangement with RCSTs 130 and a satellite 106 communicating with hub satellite 105.
Multiple satellites may be used.
[0024] With reference to FIG. 1C, yet another embodiment of the satellite system 100-3 is
shown. This embodiment includes a number of regional repeaters 165 in the hub or star
networking configuration. The regional repeaters 165 may terrestrially distributed
to allow enhanced coverage. At any given moment, a subscriber may be able to communicate
with regional repeaters 165 and/or the satellites 105. A service link between the
regional repeater antenna 125 and the satellite 105 allow relaying activity on a terrestrial
link(s) 154.
[0025] The RCST 130 achieves connection to the Hub through the regional repeaters 123 and
the satellite 105. The regional repeater 165 can be located anywhere sub-orbital (e.g.,
a balloon, an aircraft, ground-based, on buildings, ship-mounted, etc.). This embodiment
shows the regional repeater having a multiple terrestrial antenna 123, but other embodiments
could have a single terrestrial antenna 123 for each regional repeater 165. Even though
this embodiment only shows a single satellite 105, other embodiments could have multiple
satellites 105.
[0026] Referring to FIG. 1D, still another embodiment of the satellite system 100-4 is shown
with a mobile RCST. The forward uplink from the hub to the RCSTs may be a continuous
link. The hub may broadcast to each and every RCST in the network. The downlink from
the RCSTs to the hub may use time division multiplex access (TDM) techniques. In the
TDM techniques, timeslots may be randomly or dynamically assigned.
[0027] Turning to FIG. 2, a system is shown illustrating a communication scheme that may
be leveraged in the system 100 as set forth in FIG. 1. The scheme shows a set of RCSTs
220 and a satellite 105 which is contact with a hub 110. Each RCST 220 is coupled
to an antenna 215 and may include digital signal processing modules 205 and a transmitter
and receiver radio 210.
[0028] FIG. 3 shows a timing diagram 300 of congestion control according to one embodiment
of the invention. The RCST is in communication with a hub control unit (GCU) through
a satellite. The GCU sends a segment detection bitmap (SDBM) to the RCSTs every time
period as shown by the solid black arrows from the GCU to the RCST. A packet may be
sent within a single time slots or over multiple time slots as segments. A segment
may be a packet or a partial packet. Multiple packets may be sent within one time
slot. User data may be sent in a timeslot as shown by the dashed arrows from the RCST
to the GCU. In this embodiment, one congestion control cycle starts when the GCU sends
pi-I and lasts for a total of 12 cycles. During this congestion control cycle, the GCU
monitors m
o, m
1, and m
c and accumulates these values throughout the cycle. During each cycle the system uses
the previously calculated transmission probability
pi. The RCST implements the new transmission probability upon receipt. Some lag between
transmission and reception of the transmission probability.
[0029] FIG. 4 shows a segment timing diagram according to one embodiment of the invention.
Seven RCSTs (designated as A, B, C, D, E, F, G in the diagram) communicate with a
hub over the same channel. The RCSTs send data segments at specific timeslots (T
1) through T
11) in the figure) as specified by a burst time plan (BTP). Each RCST may send a segment
at any timeslot. In this embodiment, at timeslot T
1 RCST C sends a data segment. At timeslot T
2 RCSTs C and F send data segments, which result in a data collision. At timeslot T
3 RCST D sends a data segment. At timeslot T
4 RCST B sends a data segment. At timeslot T
5 RCST E sends a data segment. At timeslot T
6 RCSTs C and G send data segments resulting in a collision. At timeslot T
7 RCST E sends a data segment. At timeslot T
8 RCSTs A and D send data segments that result in a collision. At timeslot T
9 RCST F sends a data segment. At timeslot T
10 RCSTs B and D send data segments resulting in a collision. At timeslot T
11 RCST E sends a data segment.
[0030] At timeslot T
5 and T
11 the hub broadcasts a SDBM back to each of the RCSTs. The SDBM includes information
specifying to the RCSTs which data segments were received from the RCSTs. In one embodiment
the SDBM specifies the timeslot in which data segments were received. In another embodiment
the SDBM specifies the RCST that sent the data segment. In yet another embodiment,
the SDBM may send a portion of the data segment or a check sum. In the embodiment
shown in FIG. 4, the SDBM is sent every six timeslots. In other embodiments, the SDBM
is sent after more than one time segments.
[0031] The SDBM sent at timeslot T
5 may indicate that the hub received a data segment from RCST C at T
1, a data segment from RCST D at timeslot T
3, and a data segment from RCST B at timeslot T
4. The collision of segments at timeslot T
2 may not be reported in the SDBM because the two segments collided. RCST C and F,
upon receipt of the SDBM at timeslot T
5 would recognize that those segments were not received at the hub. Accordingly, RCST
C and F may then wait a random period of time and then resend the segments originally
sent in timeslot T
2. The system may retransmit the segment according to the algorithms discussed below.
In this example, RCST C resent the segment in timeslot T
6, and RCST F resent the segment T
9. In other embodiments, there may be a delay of a number of timeslots from receipt
of the SDBM until a collided segment may be resent.
[0032] In another embodiment the hub sends a BTP to a RCST. The BTP may identify timeslots
within which the RCSTs may transmit information. The BTP may include information regarding
the length of the timeslots, the frequency of the SDBM and information for synchronizing
the timeslots. The BTP may also be sent at the beginning of every timeslot; after
receipt of the BTP the RCST may then send a segment. The SDBM may include traffic
load information, congestion control information, and/or transmission probability
information.
[0033] A successful collision may occur when a segment is successfully received by the GCU
despite a collision with another segment, because, for example, of a higher received
power level. This situation may occur when a powerful forward error correction (FEC)
code, such as a turbo code, is used in the system and a slight difference in E
b/N
o makes a segment either successfully received or garbled. For example, during timeslot
T
2 the GCU may successfully receive the segment sent from RCST F. The segment sent by
RCST C was not successful during a successful collision. The GCU will communicate
to the RCSTs that the segment from RCST C was not successful during timeslot T
2. When RCST C will resend the segment with the F
cotx flag will be set in timeslot T
6.
[0034] FIG. 5A shows a segment data structure 500 according to another embodiment of the
invention A retransmission flag, F
retx, 510 may be set when the segment is being retransmitted because of a collision. A
successful collision flag, F
cotx, 520 may also be set when a segment was not received during a successful collision.
The data 530 follows the two flags. In another embodiment of the invention, RCST ID
field 540 may also be included in the segment data structure 550 as shown in FIG.
5B. Data is sent in segments; packets may be received at the RCST and broken into
segments prior to transmission. Segments may also be organized in frames.
[0035] FIG. 6 shows a flow chart 600 when segments are received at a hub according to another
embodiment of the invention. At block 605 the system is initialized; the integers
i and j are each set to 1 and each of the segment counters (m
o, m
l, m
e) are set to zero. The integer i counts the number of timeslots between resetting
the segment counters (T
c). The integer j counts the number of timeslots between sending out an SDBM (TsDBM).
The method checks to see if a segment is received during a timeslot at block 610.
If no segments were received, the method checks to see if the number of timeslots
between SDBMs has occurred by checking to see if j = T
SDBM at block 645. If not, j is incremented at block 650, other wise an SDBM is updated
and broadcast at block 660 and j is reset to equal 1 at block 665. The method then
checks to see if the number of timeslots between resetting the segment counters and
calculating
Pi has occurred by checking to see if i = T
c at block 655. If so,
pi is calculated at block 675 and the method resets at block 605. Otherwise, i is incremented
at block 670 and the method returns to block 610 and checks for another segment.
[0036] If a segment was received at block 610, then the ID of the RCST that sent the segment
is flagged at block 615. The timeslot in which the segment was received may also be
flagged. If at block 620 the segment received at the hub is a first transmission (F
retx = 0), then m
o is incremented at block 625. If the received segment is not received during a first
transmission (F
retx = 1), then the segment is a retransmission. If the F
cotx flag is set at block 630 then m
c is incremented at block 640, otherwise m
1 is incremented at block 635. The F
cotx flag indicates that the retransmission is the result of a collision with a successful
segment from another RCST. After the segment counters are incremented 625, 635, 640,
the method returns to block 645 and flows as described above.
[0037] In one embodiment of the invention the transmission probability,
pi, is a function of the transmission counter (m
o), retransmission counter (m
l), and successful retransmission counter (m
c) calculated over a set number of timeslots T
c, for example, 10 timeslots, 20 timeslots, 40 timeslots, 50 timeslots, 60 timeslots,
etc. In one embodiment,
pi is calculated from the following equation:

where the estimated traffic load
Gest may be calculated from

and Go, the traffic load, may be found from solving:
S0 is the desired average throughput of the system and may be selected based on the
desired throughput of the system. In one embodiment the actual throughput,
S, is calculated from:

Other factors, such as such as average delay and/or off-axis emission requirements,
may be taken into account in selecting a proper traffic load value and/or desired
average throughput value. The above equations are shown as examples of determining
the transmission probability from the transmission counter (m
o), retransmission counter (m
l), and successful retransmission counter (m
c).
[0038] In one embodiment of the invention, if the transmission counter equals zero (m
o = 0) one of two situations has occurred: either no segments have been transmitted
over the measured time period or there were collisions during every timeslot over
the measured time period. The later case rarely occurs suddenly and the algorithms
disclosed by embodiments of the invention should control transmission of segments
such that this scenario does not occur. It may be assumed, therefore, that a transmission
counter of zero (m
o = 0) implies that no segments were transmitted. Therefore, the transmission probability
equals 1 (
pi = 1) when the transmission counter equals zero.
[0039] In another embodiment of the invention, if the retransmission counter equals zero
(m
l = 0) no retransmissions have occurred over the measured time period. In such a case
the transmission probability equals 1 (
pi = 1).
[0040] FIG. 7 also shows a flow chart for determining the transmission probability at a
hub based on segment transmission characteristics and using a sliding scale according
to one embodiment of the invention. Blocks 605, 610, 615, 620, 625, 630, 635, 640,
645, and 650 are the same as similarly numbered blocks in FIG. 6. In this case, the
probability is constantly updated during every SDBM cycle at block 755 and broadcast
to the RCSTs at block 760. The probability, for example may be calculated using a
sliding scale.
[0041] FIG. 8 shows a block diagram detailing how an RCST may use transmission and retransmission
queues according to one embodiment of the invention. Data is received at an RCST at
block 805 and segmented at block 810. Whereupon, at block 815 the segments are placed
in a transmission queue 820. Accordingly, received data is segmented and placed in
the transmission queue independent of how packets are being transmitted.
[0042] Block 825 checks to see if there are segments in the transmission queue 820 for transmission.
When a segment(s) is found in the queue, the next segment is transmitted to the hub
at block 830. The segment may be transmitted during a timeslot, which may be selected
using the transmission probability and binary probabilistic measure. Following transmission,
at block 835, the segment is placed in the retransmission queue 840. The retransmission
queue 840 and transmission queue 820 may be part of the same queue and/or storage
structure. Pointers may be used to keep track of segments. An SDBM is received at
block 850 and the system determines if the segment was receive at the hub at block
855. If the segment was received, the segment is removed from the retransmission queue
at block 860 whereupon the method repeats. If the segment was not received at the
hub at block 855, the segment is retransmitted at block 845 and the method returns
to block 850. The retransmission time slot may be a function of the transmission probability.
[0043] FIG. 9 shows a flow chart 900 showing a process for implementing a transmission probability
(
pi) received from a hub at the RCST according to one embodiment of the invention. The
RCST sends a segment (S
i) from the transmission queue to the hub in a first timeslot 905 and saves the segment
in a retransmission queue at block 910. At block 915, an SDBM is received from the
hub at a later timeslot. The RCST may send other segments after sending the first
segment and before receipt of the SDBM. The SDBM includes transmission probability
information as well as received segment information. The SDBM may also contain information
whether S
l was received at the hab. If the SDBM indicates that S
i was received, at block 920, then S
i is cleared from the retransmission queue 925. The integer i is then incremented at
block 930. The method may then determines when to send the segment based on
pi. If
pi = 1 as determined in block 940 then the next segment is sent to the hub during the
next timeslot at block 905. Otherwise, if
pi < 1, then a skewed coin toss with probability of success equal to
pi is performed at block 940. A random number generator may be used to perform the skewed
coin toss. For example, a random number generator provided by an operating system
may be used. If it is determined that the skewed coin toss was successful at block
945, then a timeslot is randomly selected over a first set period 955 and the segment
is sent during that time period. The first set period may be a set SDBM cycle. The
segment is therefore sent during some timeslot prior to the next SDBM. If the coin
toss is not successful in block 945, then the system waits a second set period 965
and then performs the skewed coin toss again 950. The second set period may be an
integer multiple of an SDBM cycle. In one embodiment, the second set period is 2 SDBM
cycles.
[0044] Returning to block 920, if according to the SDBM S
i was not received at the hub, S
i will need to be retransmitted. The SDBM will communicate whether a segment was received
and whether there was a successful collision. For example, the SDBM includes the timeslot
a segment was received within the SDBM, if the RCST sent a segment during the specified
timeslot, then the RCST then the segment was received. In other embodiments, the hub
may identify the RCST that sent a segment in the SDBM. In yet other embodiments, a
checksum may be included in the SDBM.
[0045] At block 960 the method determines whether a successful collision with a segment
from another RCST is the cause of S
i not being received at the RCST. If a successful collision was the cause, F
cotx is flagged in S
i at block 980, otherwise F
retx is set at block 965. A skewed coin toss with probability of success equal to
pi is performed at block 970. A random number generator may be used to perform the skewed
coin toss. For example, a random number generator provided by an operating system
may be used. If it is determined that the skewed coin toss was successful at block
982, then a timeslot is randomly selected over a first set period 986 and the segment
is sent during that time period. The first set period may be a set SDBM cycle. The
segment is therefore sent during some timeslot prior to the next SDBM. If the coin
toss is not successful in block 982, then the system waits a second set period 984
and then performs the skewed coin toss again 970. The second set period may be an
integer multiple of an SDBM cycle. In one embodiment, the second set period is 2 SDBM
cycles. Prior to resending S
i from the retransmission queue at block 990, the system checks to see if the time
out threshold has been reached. The time out threshold may be up to 10 seconds from
the time segment S
i was first sent. If time the timeout threshold as not met, then S
i is transmitted from the retransmission queue at block 990, otherwise i is incremented
at block 992 and the next segment is transmitted at block 905.
[0046] FIG. 10 shows a system block diagram 1000 according to one embodiment of the invention.
The block diagram 1000 shows a hub 1010 in communication with a RCST 1020. More than
one RCST 1020 and/or hub 1010 may be included. Also the hub 1010 and RCST 1020 may
communicate through a satellite and/or a terrestrial repeater. The hub includes a
regional network controller (RNC) 1040, a GCU and a TDM modulator 1050. The GCU receives
segments from the RCST 1020, calculates the transmission probability, loading and
other communications factors. The GCU 1030 may also prepare the SDBM. The GCU communicates
the transmission probability and the SDBM to the TDM modulator 1050. The TDM module
then prepares to send the SDBM and other data to the RCST in the proper format and
with the proper timing.
[0047] The RNC 1040 prepares the BTP and transmits it to the TDM modulator 1050 and the
GCU 1020. The RNC 1040 may also establish a network between the RCSTs, log in new
RCSTs, and perform other network management operations. The RNC may adjust the BTP
a set number of frames. For example, the BTP may change every 30 frames according
to the load on the system. In another embodiment, the BTP may depend on the load as
detected at the network layer.
[0048] FIG. 11 shows a block diagram 1100 of portions of a RCST according to one embodiment
of the invention. The TDM demodulator module 1105 receives data from the hub. Received
data may include a BTP, SDBM, transmission probabilities, segment counters, as well
as data for the subscriber associated with the RCST. The TDM demodulator may be coupled
with an antenna. The communications link between the hub and the RCST may be continuous.
The TDM demodulator 1105 parses the data received from the hub and sends the parsed
data to the appropriate module. BTP data is sent to the burst manager 1115. SDBM and
transmission probability data is sent to the congestion control module 1110.
[0049] The burst manager 1115 receives BTPs from the TDM demodulator. The burst time plan
ensures the timing of transmission timeslots and is coordinated among all the RCSTs
in the system as well as the GCU. The BTP controls the length of the timeslots and
coordinates delays in signals based on the distance the RCST is from the hub and/or
satellite. The burst manager coordinates timing of other modules in the system, such
as the TDMA modulator 1125 and the scheduler 1130. For example, the burst manager
1115 tells the scheduler 1130 the available timeslots and any timing offsets.
[0050] The congestion control module 1110 receives transmission probability data
pi and SDBMs from the TDM demodulator 1105. When a data segment is received at the hub,
the RCST that sent the segment is notified via the SDBM. The congestion control module
1110 instructs the retransmission queue 1145 to purge segments that were received
by the hub as reported by the SDBM. The congestion control module 1130 also instructs
the scheduler regarding the transmission probability
pi indicating when to retransmit segments that were not received at the hub.
[0051] A data stream is received from the network 1160 at the segmenter 1140. The data stream,
for example, may be continuous or a series of packets. Regardless of the type of data
stream the segmenter 1140 segments the data into appropriately sized segments and
includes any administrative data such as, for example, headers, footers, checksums,
RCST IDs etc. The segmenter 1140 places the segments in the quality of service (QOS)
queue 1135.
[0052] The QOS queue 1140 holds and organizes the segments prior to transmission. The QOS
queue 1140 may organize segments according to their priority. When a segment is sent
to the scheduler 1130 a copy is also sent to the retransmission queue 1145. The retransmission
queue 1145 and the QOS queue 1140 may be part of the same physical buffer. For example,
the transmitted segment may be saved in a higher order QOS queue until the RCST is
notified that the segment has been received.
[0053] The scheduler 1130 pulls segments from the retransmission queue 1145 or the QOS queue
1135 and sends them to the TDMA modulator 1125 for transmission to the hub in an available
timeslot. The scheduler may determine the timeslot and frame in which a segment may
be transmitted. The scheduler 1130 may also set retransmission and successful collision
flags in a segment. If there are no retransmission segments in the retransmission
queue 1145, then the scheduler pulls segments from the QOS queue 1135. If there are
segments in the retransmission queue 1145, but an SDBM has not been received from
the RCST for the time period in which the segment was sent, then the scheduler pulls
segments from the QOS queue 1135. If, however, the SDBM indicates that segments were
not received at the hub, then the scheduler 1130 will pull segments from the retransmission
queue 1 145. The segments pulled from either the QOS queue 1135 or the retransmission
queue 1145 will be sent during a later timeslot based on the transmission probability
pi. The segments may be sent to the hub in a timeslot as determined by the process shown
in FIG. 7.
[0054] The TDMA modulator 925 sends segments to the hub from the scheduler according to
the BTP as dictated by the burst manager and in the timeslot dictated by the scheduler
930. The TDM modulator 925 may be coupled with an antenna for transmission.
[0055] The bandwidth reporter 955 prepares and/or calculates the bandwidth needed to transmit
the segments in the QOS queue 935. The bandwidth reporter may request dedicated timeslots
from the RNC.
[0056] In other embodiments a satellite may monitor m
o, m
l, and m
c, calculate the transmission probability and send out the SDBM. In other embodiments,
the RCSTs may calculate the transmission probability. The values, m
o, m
l, and m
e, may be communicated to the RCSTs from the satellite or GCU. In other embodiments
the RCST may monitor m
o, m
1, and m
c as sent by all of the RCSTs in the network and calculate transmission probability.
[0057] A number of variations and modifications of the disclosed embodiments can also be
used. For example, the embodiments may operate in any communications network. Specifically,
the embodiments may be used in satellite communications network with a plurality of
subscriber terminals operating as the RCSTs. For example, the systems and methods
may operate in a very small aperture terminal satellite (VSAT) network operating in
a star or mesh topology.
[0058] Specific details are given in the above description to provide a thorough understanding
of the embodiments. However, it is understood that the embodiments may be practiced
without these specific details. For example, circuits may be shown in block diagrams
in order not to obscure the embodiments in unnecessary detail. ln other instances,
well-known circuits, processes, algorithms, structures, and techniques may be shown
without unnecessary detail in order to avoid obscuring the embodiments.
[0059] Implementation of the techniques, blocks, steps and means described above may be
done in various ways. For example, these techniques, blocks, steps and means may be
implemented in hardware, software, or a combination thereof. For a hardware implementation,
the processing units may be implemented within one or more application specific integrated
circuits (ASICs), digital signal processors (DSPs), digital signal processing devices
(DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs),
processors, controllers, micro-controllers, microprocessors, other electronic units
designed to perform the functions described above, and/or a combination thereof.
[0060] Also, it is noted that the embodiments may be described as a process which is depicted
as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block
diagram. Although a flowchart may describe the operations as a sequential process,
many of the operations can be performed in parallel or concurrently. In addition,
the order of the operations may be re-arranged. A process is terminated when its operations
are completed, but could have additional steps not included in the figure. A process
may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc.
When a process corresponds to a function, its termination corresponds to a return
of the function to the calling function or the main function.
[0061] Furthermore, embodiments may be implemented by hardware, software, scripting languages,
firmware, middleware, microcode, hardware description languages, and/or any combination
thereof. When implemented in software, firmware, middleware, scripting language, and/or
microcode, the program code or code segments to perform the necessary tasks may be
stored in a machine readable medium such as a storage medium. A code segment or machine-executable
instruction may represent a procedure, a function, a subprogram, a program, a routine,
a subroutine, a module, a software package, a script, a class, or any combination
of instructions, data structures, and/or program statements. A code segment may be
coupled to another code segment or a hardware circuit by passing and/or receiving
information, data, arguments, parameters, and/or memory contents. Information, arguments,
parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means
including memory sharing, message passing, token passing, network transmission, etc.
[0062] For a firmware and/or software implementation, the methodologies may be implemented
with modules (e.g., procedures, functions, and so on) that perform the functions described
herein. Any machine-readable medium tangibly embodying instructions may be used in
implementing the methodologies described herein. For example, software codes may be
stored in a memory. Memory may be implemented within the processor or external to
the processor. As used herein the term "memory" refers to any type of long term, short
term, volatile, nonvolatile, and/or other storage medium and is not to be limited
to any particular type of memory or number of memories, or type of media upon which
memory is stored.
[0063] Moreover, as disclosed herein, the term "storage medium" may represent one or more
devices for storing data, including read only memory (ROM), random access memory (RAM),
magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums,
flash memory devices and/or other machine readable mediums for storing information.
The term "machine-readable medium" includes, but is not limited to portable or fixed
storage devices, optical storage devices, wireless channels, and/or various other
mediums capable of storing, containing or carrying instruction(s) and/or data.
[0064] While the principles of the disclosure have been described above in connection with
specific apparatuses and methods, it is to be clearly understood that this description
is made only by way of example and not as limitation on the scope of the disclosure.