Abstract:
A flexible slotted Aloha communication protocol for a burst-type communication network divides a communication channel into a series of time cycles, with each time cycle further divided into contiguous time slices of identical duration. All data transmissions in the network begin at the start of a time slice and continue for an integer number of time slices, with the identity of the transmitting terminal, the length of the transmission and error correction, being included within the first time slice of each data transmission. Communication terminals in the network transmit reservation requests to a network hub which receives the reservation requests and reserves reserved time slots each having a number of time slices which matches the length of the data transmission to be transmitted in the reserved time slot. The reserved time slot may include time slices in more than one time cycle. The communication protocol dynamically adjusts reservation parameters to match traffic load conditions on the channel and may reassign communication terminals from one channel to another in order to dynamically balance the load on the channels.

Description:
This application claims the benefit of priority of U.S. Provisional Application No. 60/051,205, filed Jun. 30, 1997. 
    
    
     BACKGROUND OF THE INVENTION 
     1) Field of the Invention 
     This invention pertains to the field of communication networks and, more particularly, to a system and method of communication in a burst-type communication network. 
     2) Background of the Related Art 
     In a burst-type communication network, it is inefficient to dedicate communication channels to individual communication terminals which may only transmit sporadically. Consequently, in many burst-type communication networks, communication terminals share communication resources. 
     Typically, a burst-type communication terminal transmits data as a series of data packets, containing a packet header and a data payload. The packet header is often used by a receiving terminal to detect and synchronize the receiver to the data transmission. The header also may contain information regarding the data transmission, such as packet length, data format, transmitter ID, receiver ID, etc. 
     Burst-type communication networks employ a variety of protocols for sharing limited communication resources among multiple communication terminals. One well-known protocol used in communication networks which transmit packetized data is the Aloha (also called “pure Aloha”) communication protocol. 
     In a network using the pure Aloha protocol, any communication terminal in the network may initiate a data transmission at any random time within a time frame. Because of the random times at which a terminal may initiate a data transmission, two or more terminals may initiate a data transmission at overlapping times, resulting in a “collision.” 
     Transmissions involved in such collisions arrive at a receiver with errors. After a suitable delay without receiving acknowledgments confirming successful reception, the transmitters retry the transmissions. Of course these transmissions may also encounter collisions and therefore may also be unsuccessful. The terminals continue transmitting with suitable delay between transmissions, until the transmissions are received without error and acknowledged. Collisions reduce the throughput efficiency of the network. Maximum throughput efficiency in a pure Aloha network is 18.4%. 
     One important variation of the Aloha protocol is called “slotted Aloha.” FIG. 1 illustrates principles of a slotted Aloha communication protocol. As shown in FIG. 1, a communication network using a slotted Aloha communication protocol divides time into a series of time slots  120 , which are usually organized into a repetitive series of longer time periods called “time frames.” All data transmissions from any communication terminal in the communication network must begin and end within a time slot. If a communication terminal has a data transmission which is longer than a time slot period, then it must break the data transmission up into two or more shorter data transmissions which each fit within a time slot period. 
     Nevertheless, in a slotted Aloha network, any communication terminal may transmit in any slot and so collisions still occur. Maximum throughput efficiency in a slotted Aloha network is 36.8%. 
     To reduce collisions, some communication networks employ a slotted Aloha protocol which includes a reservation feature, assigning a portion of the time slots in each time frame as reserved for exclusive use by designated terminals. In a reservation protocol, a communication terminal having a message to transmit may first transmit a special message called a reservation request. A network hub or controller monitors the reservation request and assigns one or more reserved time slots to the requesting terminal during the following time frame or frames. The hub broadcasts the reservation to the communication network so that all other terminals in the network avoid transmitting during the reserved time slot(s). 
     FIG. 1 shows reserved time slots  130  in each time frame  110 . The use of reservations with a slotted Aloha protocol increases overall throughput efficiency for the network. 
     In general, reservation protocols may use two types of reserved capacity: temporary and indefinite. Temporary reserved capacity allocates reserved time slots on a time-slot-by-time-slot basis within a frame. Indefinite reserved capacity is allocated as reserved time slots which are set aside for use by designated transmitters for an indefinite number of consecutive time frames. 
     Typically, a communication network may transmit data packets with a wide variety of packet lengths. High network throughput efficiency requires the use of time slots with lengths which are well matched to the data packets to be transmitted. If a data transmission is shorter than a time slot, part of the slot period will be wasted, reducing efficiency. If a data transmission is too long for a time slot, the data transmission will have to be broken into multiple time slots. In that case, some of the packet header information and other overhead for the data transmission is repeated in each time slot, again reducing efficiency. 
     To improve efficiency in a slotted Aloha network, all time slots may not have equal length. Short data packets can be transmitted in short time slots and long data packets can be transmitted in long time slots. FIG. 1 shows time frames in a slotted Aloha network with reservations where the reserved time slots have unequal lengths. However, the problem remains to match the mix of time slots of different lengths to the mix of packets being transmitted. Also, for many communication networks, the mix of data transmission lengths varies with time, e.g., packets transmitted during the day may have different lengths than those transmitted at night. 
     Accordingly, it would be advantageous to provide a communication method and network which operates with various changing mixtures of packet lengths with greater throughput efficiency than conventional slotted Aloha networks. It would also be advantageous to provide a communication method and network which automatically adjusts the allocation of reserved time slots when traffic loads are high to increase efficiency. Other and further objects and advantages will appear hereinafter. 
     SUMMARY OF THE INVENTION 
     The present invention comprises a flexible slotted Aloha communication method and associated network. 
     In one aspect of the invention, a communication channel in a burst-type communication network is divided into contiguous time slices of identical duration. All data transmissions in the network begin at the start of a time slice and continue for an integer number of time slices. 
     In another aspect of the invention, the first time slice of each data transmission contains all of the conventional overhead information for the transmission. The overhead includes header fields, such as a data transmission type, the source and destination of the packet, length of the data transmission, or similar information. The first slice also contains an error check code for the data transmission. Consequently the first slice may be received successfully, even if the rest of a transmission is not successful (e.g., due to collisions or transmission errors). In that event, the overhead transmitted in the first slice is sufficient for the network hub to reserve a reserved time slot which matches the length of the transmission. 
     In yet another aspect of the present invention, a network hub receives a reservation request for a data transmission and reserves a reserved time slot comprising a number of time slices which matches the length of the data transmission. The reserved time slot may include time slices in more than one time cycle or time frame. A data transmission in a reserved time slot in the network starts at the beginning of a time slice and continues for an integer number of time slices until the data transmission is complete or until the last slice of the reserved time slot. 
     In a still further aspect of the present invention, a communication network employs a communication protocol which dynamically adjusts reservation parameters to match traffic load conditions. During high traffic load conditions, the maximum allowable random Aloha data transmission length is automatically reduced and the randomization interval for backing off a random data transmission is lengthened. 
     In yet a still further aspect of the present invention, a communication network operates with a plurality of Flex Slotted Aloha channels. The communication network includes automatic dynamic load balancing which moves communication terminals with outstanding reservation requests from a first channel to a second channel when reservations queue beyond a delay limit for the first channel and the queue is less than the delay limit for the second channel. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a diagram of a time frame structure in a prior art slotted Aloha communication protocol. 
     FIG. 2 is a diagram of a point-to-multipoint communication network which may incorporate one or more aspects of the present invention. 
     FIG. 3 is a diagram of a time cycle structure in a Flex Slotted Aloha communication protocol according to one or more aspects of the present invention. 
     FIG. 4 is a preferred embodiment of an exemplary Flex Slotted Aloha Congestion table according to one or more aspects of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 2 shows a point-to-multipoint communication network  200  which may incorporate one or more aspects of the present invention. The communication network  200  includes a network hub  210  and a plurality of communication terminals  220 . The communication terminals  220  share one or more communication channels for transmitting data to the network hub  210 . The network hub  210  broadcasts data on one or more broadcast communication channels which may be received by all of the communication terminals  220 . 
     The point-to-multipoint communication network  200  may be a satellite network wherein each communication terminal  220  is a very small aperture antenna terminal (VSAT). A VSAT may transmit data to another VSAT in the network by first transmitting the data to the network hub on a shared communication channel. The network hub then transmits the data on a broadcast channel with appropriate header information indicating the desired destination VSAT. 
     According to the present invention, a burst-type communication network, which may be a point-to-multipoint communication network, employs a Flex Slotted Aloha communication protocol which divides a communication channel into a series of time cycles. 
     FIG. 3 shows a series of time cycles  310  according to a preferred embodiment of a Flex Slotted Aloha protocol. Each time cycle  310  is further divided into series of equal-length time slices  320 . The time cycles  310  also include reserved time slots  330  and random data transmissions  340 , each of which comprise an integer number of time slices. 
     According to the present invention, time slice gaps  350 , having a minimum number of unreserved time slices  320 , are left between consecutive reserved time slots  330 . These unreserved time slices are then available for random Aloha access by any communication terminal with data to transmit in Aloha mode. In a preferred embodiment, the minimum size of a time slice gap  350  is configurable. In a preferred embodiment, the minimum number of time slices  320  between consecutive reserved time slots  330  is in the range of one to four. 
     When a communication terminal desires to transmit a random data transmission  340  in random Aloha mode, it selects a random starting time slice  320  in a time slice gap  350  between reserved time slots  330 . Each communication terminal selects a starting time slice based on a running count of unreserved time slices in the time slice gaps  350  between reserved time slots  330 . In a preferred embodiment, a communication terminal selects a starting time slice for random Aloha transmission randomly from a uniform distribution ranging from  1  to a configurable randomization interval. The randomization interval is configured based upon current load and congestion levels in the network as will be explained more fully below. 
     Next, the communication terminal wishing to transmit in random Aloha mode checks to see whether the entire data transmission can be transmitted in the time slice gap  350  before the next reserved time slot  330 . If so, then the communication terminal transmits a random data transmission  340 . The first slice of each random data transmission  340  includes overhead for the transmission. Transmission overhead may include, for example, the length of transmission, transmission source ID, transmission destination ID, packet sequence number and information regarding the transmission format itself. The first slice of each random data transmission  340  also includes error correction coding information, such as a cyclic redundancy code (CRC). 
     If the data transmission is too long to fit into the available time slice gap  350 , then the communication terminal transmits only a reservation request  360  (also termed an “explicit” reservation request) in random Aloha mode. The reservation request  360  includes transmission overhead as described above, including the data transmission length. In a preferred embodiment, the reservation request  360  occupies one time slice  320 . 
     If a random data transmission or a reservation request is not successful (for example due to a collision with another random transmission from another communication terminal), then the transmitting communication terminal waits a configurable predetermined delay, or backoff, including a random number of slices  320 , and transmits a reservation request. This reduces the number of random Aloha collisions and thus reduces the general traffic load on the channel. 
     If a random data transmission  340  does not experience a collision with another random data transmission from another communication terminal in the network, and does not experience any other errors, then it may be received by the hub and sent to the destination communication terminal. However, if the first slice of the random data transmission is received successfully (e.g., it passes the CRC check), but the rest of the random data transmission has errors, then the hub treats the random data transmission as a reservation request (also termed an “implicit” reservation request) for a reserved time slot  330 . 
     When the hub receives an explicit or implicit reservation request, it generates a reserved time slot  330  of the right size to accommodate the desired data transmission, based upon the data transmission length contained in the reservation request. As shown in FIG. 3, a reserved time slot  330  may begin in a first time cycle  310  and end in a second time cycle  310 . The hub queues all reservation requests and assigns reserved time slots  330  to the corresponding requesting communication terminal via broadcast messages. The requesting communication message in this way may perform its transmission without collision in a reserved time slot matched to the size of the transmission. 
     Nevertheless, transmissions in reserved time slots may still occasionally be received with errors due to channel noise. However, if the first slice of the data transmission in a reserved time slot is received successfully (e.g., it passes the CRC check), but the rest of the transmission has errors, then the hub treats the data transmission as an implicit reservation request for a reserved time slot  330 . 
     In a preferred embodiment, the hub also tracks the congestion level on the channel and broadcasts this congestion level to the communication terminals in the communication network. 
     In a preferred embodiment, the hub maintains a smoothed running exponential estimate of the number of random Aloha data transmission attempts per successful random Aloha data transmission. In this way, the hub produces an estimate of the retransmission rate in the network. In a preferred embodiment, the hub converts the retransmission rate estimate into a congestion level value. 
     An exemplary preferred embodiment of a table for mapping an estimated retransmission rate to a congestion level value is shown in Table 1 below: 
     
       
         
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                   
                 Retransmission Rate 
                 Retransmission Rate 
               
               
                 Congestion Level 
                 (Lower Range) 
                 (Upper Range) 
               
               
                   
               
             
             
               
                 0 
                  0% 
                 10% 
               
               
                 1 
                 10% 
                 20% 
               
               
                 2 
                 20% 
                 30% 
               
               
                 3 
                 30% 
                 40% 
               
               
                 4 
                 40% 
                 50% 
               
               
                 5 
                 50% 
                 60% 
               
               
                 6 
                 60% 
                 70% 
               
               
                 7 
                 70% 
                 — 
               
               
                   
               
             
          
         
       
     
     In a preferred embodiment, the hub broadcasts the current congestion level value to all communication terminals via a broadcast message. Each communication terminal has a table which matches the current congestion level value to one or more random Aloha data transmission parameters. By use of this table, the network matches one or more random Aloha data transmission parameters to the current network congestion level. 
     FIG. 4 shows a preferred embodiment of an exemplary Flex Slotted Aloha Congestion table, wherein all numerical values are exemplary in nature. The table contains a plurality of table entries  410  and parameter fields  420 . In the embodiment of FIG. 4, the Flex Slotted Aloha Congestion table contains a Congestion Level field  422 , a Randomization Interval field  424 , and a Maximum Random Transmission Length field  426 . Each table entry  410  has a congestion level value  432  in the Congestion Level field  422 , a randomization interval  434  in the Randomization Interval field  424 , and a maximum random transmission length  436  in the Maximum Random Transmission Length field  426 . 
     In a preferred embodiment, each communication terminal selects a predetermined maximum allowable random Aloha data transmission length based upon the current congestion level value which it receives from the hub. As described above, when a communication terminal has a data transmission for random Aloha mode, it selects a time slice in a time slice gap  350 , between reserved time slots, for random Aloha data transmission. If the length of the data transmission is too long for the time slice gap, OR if the length of the data transmission is longer than the maximum allowed random Aloha transmission size, then the communication terminal only transmits a reservation request  360 . Otherwise, the full data transmission is transmitted. 
     With several different congestion level values defined with a suitable matched set of maximum allowable random Aloha data transmission length parameters, Flex Slotted Aloha operates similarly to unslotted Aloha when the traffic load is light. When the traffic load increases, the increasing congestion level results in shorter and shorter gaps between reserved slots. As the gap sizes decrease, a smaller and smaller percentage of random transmissions will fit into the gaps and be transmitted in random Aloha mode. The transmissions that do not fit into these gaps will be shifted to reservation mode. This effect selectively applies more to longer transmissions than to shorter transmissions. Also, the increasing congestion level value reduces the maximum length of transmissions allowed to be transmitted in random Aloha mode. These two effects shift increasing portions of traffic to reservation mode. 
     As a result of its unique features, a flex slotted Aloha protocol according to the present invention produces improved throughput efficiency compared with prior art protocols when network traffic contains packets of varying lengths. Consider the following simplified example: a network having a 50/50 mixture of two different packet lengths—“Long” and “Short”—wherein the minimum packet (slice) size is 32 bytes and the average packet size is 384 bytes/packet. In the example, we assume a channel data rate of 128 kbps and a random Aloha transmission load of 50%. Tables 2, 3 and 4 below compare the calculated performance of a flex slotted Aloha protocol according the present invention, with the calculated performance of or art conventional and “fixed frame” slotted Aloha protocols. 
     Table 2 shows the throughput of a conventional slotted Aloha protocol for various slot sizes when the network traffic has packets of varying lengths. For each row, the traffic consists of an equal mixture of “Short” packets and “Long” packets of the indicated lengths. The columns correspond to various sized slots. As can be seen, the throughput varies from 5.95 to 12.64 packets/sec. With an average packet size of 384 bytes, the throughput efficiency therefore is between 14.3% and 30.3%—close to the theoretical maximum. Maximum throughput is achieved when all of the slots are perfectly matched to the packet sizes. 
     
       
         
               
             
               
               
               
               
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
               
               
               
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Channel Throughput Packets/Second for Various Slot 
               
             
          
           
               
                   
                 256 
                 288 
                 320 
                 352 
                 384 
                 416 
                 448 
                 480 
                 512 
                 544 
               
               
                 Bytes/Packet 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
                 Bytes/ 
               
             
          
           
               
                 Short 
                 Long 
                 Slot 
                 Slot 
                 Slot 
                 Slot 
                 Slot 
                 Slot 
                 Slot 
                 Slot 
                 Slot 
                 Slot 
               
               
                   
               
             
          
           
               
                 384 
                 384 
                 9.48 
                 8.42 
                 7.58 
                 6.89 
                 12.64 
                 11.66 
                 10.83 
                 10.11 
                 9.48 
                 8.92 
               
               
                 352 
                 416 
                 9.48 
                 8.42 
                 7.58 
                 9.19 
                 8.42 
                 11.66 
                 10.83 
                 10.11 
                 9.48 
                 8.92 
               
               
                 320 
                 448 
                 9.48 
                 8.42 
                 10.11 
                 9.19 
                 8.42 
                 7.78 
                 10.83 
                 10.11 
                 9.46 
                 8.92 
               
               
                 288 
                 480 
                 9.48 
                 11.23 
                 10.11 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 10.11 
                 9.48 
                 8.92 
               
               
                 256 
                 512 
                 12.64 
                 11.23 
                 10.11 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 9.48 
                 8.92 
               
               
                 224 
                 544 
                 9.48 
                 11.23 
                 10.11 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 6.32 
                 8.92 
               
               
                 192 
                 576 
                 9.48 
                 11.23 
                 10.11 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 6.32 
                 5.95 
               
               
                 160 
                 608 
                 9.48 
                 8.42 
                 10.11 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 6.32 
                 5.95 
               
               
                 128 
                 640 
                 9.48 
                 8.42 
                 10.11 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 6.32 
                 5.95 
               
               
                  96 
                 672 
                 9.48 
                 8.42 
                 7.58 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 6.32 
                 5.95 
               
               
                  64 
                 704 
                 9.48 
                 8.42 
                 7.58 
                 9.19 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 6.32 
                 5.95 
               
               
                  32 
                 736 
                 9.48 
                 8.42 
                 7.58 
                 6.89 
                 8.42 
                 7.78 
                 7.22 
                 6.74 
                 6.32 
                 5.95 
               
               
                   
               
             
          
         
       
     
     Table 3 shows the throughput of a prior art “fixed frame” slotted Aloha protocol when the network traffic has packets of varying lengths. A fixed frame slotted Aloha system divides time into a series of equal-length time frames. In the present example, the time frames are each 768 bytes (24 slices) in duration. 
     Each time frame is divided into two type of time slots: reservation request slots and reserved slots. The reservation request slots are each one slice in duration and transmission within these slots is via conventional slotted Aloha. Each reserved slot is assigned to a specific communication terminal based on a successful reservation request. In the present example, the reservation request transmission load is limited to an average of no more than 50% of the reservation request slots. The transmission load for the reserved slots is limited to a long term average of no more than 80%. 
     In a fixed frame slotted Aloha system, a “frame configuration” is assigned which remains unchanged for long periods of time. In the present example, the frame is set to accommodate two average packet lengths, or 768 bytes/frame. For each row, the traffic consists of an equal number of “Short” packets and “Long” packets of the indicated lengths. As can be seen, the throughput varies from 11.11 to 16.67 packets/sec. With an average packet size of 384 bytes, the throughput efficiency therefore is between 26.7% and 40%. 
     
       
         
               
               
               
             
               
               
               
             
               
               
               
             
           
               
                   
                 TABLE 3 
               
             
             
               
                   
                   
               
               
                   
                 Bytes/Packet 
                 Channel Throughput 
               
             
          
           
               
                 Short 
                 Long 
                 Packets/Second 
               
               
                   
               
             
          
           
               
                 384 
                 384 
                 16.67 
               
               
                 352 
                 416 
                 16.67 
               
               
                 320 
                 448 
                 16.67 
               
               
                 288 
                 480 
                 16.67 
               
               
                 256 
                 512 
                 16.67 
               
               
                 224 
                 544 
                 16.67 
               
               
                 192 
                 576 
                 16.67 
               
               
                 160 
                 608 
                 16.67 
               
               
                 128 
                 640 
                 16.67 
               
               
                 96 
                 672 
                 16.67 
               
               
                 64 
                 704 
                 11.11 
               
               
                 32 
                 736 
                 11.11 
               
               
                   
               
             
          
         
       
     
     Table 4 shows the throughput of a flex slotted Aloha protocol according to the present invention when the network traffic has packets of varying lengths. For each row, the traffic consists of an equal number of “Short” packets and “Long” packets of the indicated lengths. As can be seen, the throughput remains constant at 31.71 packets/sec. With an average packet size of 384 bytes, the throughput efficiency therefore is approximately 76%. 
     
       
         
               
               
               
             
               
               
               
             
               
               
               
             
           
               
                   
                 TABLE 4 
               
             
             
               
                   
                   
               
               
                   
                 Bytes/Packet 
                 Channel Throughput 
               
             
          
           
               
                 Short 
                 Long 
                 Packets/Second 
               
               
                   
               
             
          
           
               
                 384 
                 384 
                 31.71 
               
               
                 352 
                 416 
                 31.71 
               
               
                 320 
                 448 
                 31.71 
               
               
                 288 
                 480 
                 31.71 
               
               
                 256 
                 512 
                 31.71 
               
               
                 224 
                 544 
                 31.71 
               
               
                 192 
                 576 
                 31.71 
               
               
                 160 
                 608 
                 31.71 
               
               
                 128 
                 640 
                 31.71 
               
               
                 96 
                 672 
                 31.71 
               
               
                 64 
                 704 
                 31.71 
               
               
                 32 
                 736 
                 31.71 
               
               
                   
               
             
          
         
       
     
     In a preferred embodiment, a communication network operates with a plurality of Flex Slotted Aloha channels. In that case, in a preferred embodiment, the communication network includes automatic dynamic load balancing. As long as all reservation requests (explicit and implicit) on a given channel can be satisfied without a queuing delay beyond a configurable queuing delay limit, every Flex Slotted Aloha communication terminal remains on the same channel. 
     However, when reservations queue beyond the delay limit for one channel, while reservation requests do not queue beyond the delay limit for a second channel, then the network hub reassigns communication terminals from the first channel to the second channel. In a preferred embodiment, the network hub selects for reassignment communication terminals on the first channel with unallocated outstanding reservation requests. In a preferred embodiment the reassigned communication terminals each have a queuing delay which is greater than said queuing delay limit. 
     In a preferred embodiment, the network hub broadcasts a message instructing the reassigned communication terminals to move to the second channel. The communication terminals that are moved to the second channel remain indefinitely on the newly assigned second channel. Dynamic reassignment in this way decreases the average reservation queuing delay along with shifting transmissions from heavily loaded channels to lightly loaded channels. 
     While preferred embodiments are disclosed herein, many variations are possible which remain within the concept and scope of the invention. Such variations would become clear to one of ordinary skill in the art after inspection of the specification, drawings and claims herein. The invention therefore is not to be restricted except within the spirit and scope of the appended claims.