Abstract:
A method for automatically managing the communication channel resources between two nodes having neighboring nodes in a network of transceiver nodes, wherein each node communicates during specific time slots and uses multiple frequencies on a time division multiple access basis includes the steps of storing a table of possible communication frequencies and time slots between nodes; and announcing and transmitting during a specific time slot, a selected transmit frequency and slot from a first node to a second node and all neighboring nodes of the first node. The announced frequency and slot have certain constraints on reuse within two hops of the transmitting node to thereby establish contention free communication on that frequency and slot between the first and second nodes.

Description:
TECHNICAL FIELD OF THE INVENTION 
     The present invention relates to a method for managing communication resources between nodes of a network, and more particularly to a dynamic distributed multi-channel TDMA slot assignment method. 
     BACKGROUND OF THE INVENTION 
     Mobile multi-hop broadcast packet radio networks are known for their rapid and convenient deployment, self organization, mobility, and survivability. In this type of network as illustrated in FIG. 1, a transmission from one node, for example node 1, is broadcast to all nodes in its &#34;neighborhood&#34;, which at UHF frequencies are typically those nodes (nodes 3, 4, 5, 6, 7, 8)within line-of-sight or one hop of the transmitter. For the transmitted data to propagate multiple hops, the data must be relayed by one or more of these neighbors, for example, nodes 4 and 8, to the nodes (nodes a, b, c, 9) that are two hops away from the original transmitter. In this way the data will be relayed until it has arrived at all intended destination nodes. 
     Since there are generally limitations on the number of simultaneous transmitters that a receiver can successfully process (typically one), collisions can be avoided by assigning time slots in which individual nodes can transmit. There are many approaches to deciding which nodes are assigned which slots, and the approach is generally driven by the network applications: broadcast, multicast, unicast, datagrams, virtual circuits, etc. Since the problem of optimally assigning slots in this environment is mathematically intractable, typically a heuristic approach is taken to design an integrated protocol that both chooses the number of slots to assign to each neighboring node and coordinates their activation in the network. The approach of the present invention is different in that it proposes a single generalized protocol for reliably choosing the slots and coordinating their activation with minimal overhead which can then be used to support many different higher layer heuristics for selecting the number of slots to be activated with which neighbors. 
     A need has thus arisen for an improved assignment protocol for use in a distributed multi-channel time division multiple access architecture of a mobile multi-hop broadcast packet radio network. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention, a method is provided for automatically managing the communication channel resources between two nodes having neighboring nodes in a network of transceiver nodes, wherein each node communicates during specific time slots and uses multiple frequencies on a time division multiple access basis. The method includes the steps of storing a table of possible communication frequencies and time slots between nodes. An additional step includes announcing and transmitting during a specific time slot, a selected transmit frequency and slot from a first node to a second node and all neighboring nodes of the first node. The announced frequency and slot have certain constraints on reuse within two hops of the transmitting node to thereby establish contention free communication on that frequency and slot between the first and second nodes. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a more complete understanding of the present invention and for further advantages thereof, reference is now made to the following Description of the Preferred Embodiments taken in conjunction with the accompanying Drawings in which: 
     FIG. 1 is a diagram of a network of nodes; 
     FIG. 2 is a diagram of a time division multiple access structure utilized with the present method; and 
     FIG. 3 is an illustration of nodes in a network. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The present method assumes the node hardware consists of a simplex transceiver with an omnidirectional antenna. Thus, a node cannot transmit and receive at the same time, and a node cannot receive from more than one other node at a time. In fact, two nodes transmitting at the same time who are both within transmission range of an intended receiver will prevent the receiver from receiving any packet successfully. However, slight variations to the data structures and rules presented here will allow the present method to handle full duplex radios and/or radios with multiple transmitters and receivers. 
     Referring to FIG. 2, a time division multiple access structure for use with the present method is illustrated. A cycle 20 includes N frames 22. Each frame 22 consists of M slots 24, the first slot 24a is a broadcast slot for network manager control packets. A broadcast slot 24a is assigned to each node in the network, so if there are N nodes, each node has an opportunity to transmit its control packet once every N frames which represents a cycle 20. Additionally, associated with each frame 22 are multiple frequency channels 26. 
     To reliably share critical network management information with its neighbors, a node will transmit in its assigned broadcast slot 24a. In this slot, all current and potential neighbors of the transmitting node have an opportunity to receive control packets from this node. Control packets contain information required to implement network entry, time slot management, and any other protocol benefiting from the broadcast nature of the control packet, such as routing. The control packets are transmitted at the most robust data rate that can be utilized by user traffic and their size should be minimized since they represent network overhead. 
     The tasks the present method performs can be broken into two categories: 
     individual announcing and confirming the assignment of individual slots; and 
     composite using composite bit maps to report assignments, bring new neighbors up-to-date, and to detect and and connect conflicting assignments. 
     The information shared between neighbors is somewhat different for the individual and composite tasks. The individual information is incremental in that it consists only of the slots being assigned. The composite information consists of entire bit maps shared in every control packet. Here the data structures are presented that are stored at and/or shared between neighbors: 
     Slot Assignments 
     
         S=set of slots={s|s=1,2, . . . ,M}                (1) 
    
     
         F=set of channels={f|f=1,2, . . . ,F}             (2) 
    
     For a given channel and slot pair (s,f): 
     Self Tx/Rx Sets: 
     
         STNi(s,f)=neighbors to which a node is transmitting on (s,f) (3) 
    
     
         SRNi(s,f)=neighbors from which a node is receiving on (s,f) (4) 
    
     from which the following are derived: 
     
         STi(s,f)=1if STNi(s,f)not empty, else 0                    (5) 
    
     
         SRi(s,f)=1if SRNi(s,f)not empty, else 0                    (6) 
    
     Neighbor Tx/Rx Sets: 
     
         STj(s,f)=the STi(s,f) reported by a neighbor               (7) 
    
     
         SRj(s,f)=the SRi(s,f) reported by a neighbor               (8) 
    
     from which the following are derived: 
     
         NTi(s,f)=∪STj(s,f) over all neighbors of a node     (9) 
    
     
         NRi(s,f)=∪SRj(s,f) over all neighbors of a node     (10) 
    
     
         NTj(s,f)=the NTi(s,f) reported by a neighbor               (11) 
    
     Defined but not used: 
     
         NRj(s,f)=the NRi(s,f) reported by a neighbor               (12) 
    
     If a node or its neighbor is transmitting or receiving (on any channel) in slots s, it is blocked from doing anything else. To this end, the following derived tables are useful: 
     
         Bi(s)=STi(s,f)∪SRi(s,f) for any f                   (13) 
    
     
         Bj(s)=STj(s,f)∪SRj(s,f) for any f                   (14) 
    
     A feature of the present method is that every node is responsible only for assigning (s,f) pairs on which it will transmit and not on (s,f) pairs which it will receive. By assigning only transmit (s,f) pairs, a node must share less information with its neighbors. Thus, to deride what slots and channels are available for assignment, a node i constructs the blocked (s,f) pairs for transmitting to node j by excluding (s,f)pairs: 
     that have already been assigned to either node:Bi(s)∪Bj(s) 
     and node i&#39;s neighbors are receiving in:NRi(s,f) 
     and node j&#39;s neighbors are transmitting in:NTj(s,f) 
     This information is combined as follows: ##EQU1## 
     Referring to FIG. 3, illustrating nodes i,j,k, and l which each have a unique identifier (30, 32, 34, and 36, respectively), node 34 assigns itself (s,f) to transmit to node 36. This slot and frequency is associated with the unique identifier of node 36 and is announced in node 34&#39;s control packet. Node 32 hears this and stores it as its STj(s,f) table for neighbor 34 and reports it in its control packet as part of its NTi(s,f). When node 30 hears this, it stores it as its NTj(s,f) for neighbor 32. Thus, if node 30 wishes to assign itself a transmit slot to neighbors 32, (s,f) would be unavailable to it by the definition of Blocked(i,j,s,f) (Equation 15). However, another neighbor of 30, that is not a neighbor of a neighbor 34, would be free to reassign (s,f) because it would be more than two hops away from node 34. 
     Nodes use the control packets to keep the data structures up-to-date that are combined to create Blocked(i,j,s,f). In this way, a node needing a slot assignment can make it immediately. Thus, instead of a three-way handshake, a node merely announces the new slot assignment(s) in a control packet, and all of its neighbors update their tables. 
     One way for a node to detect conflicts is for it to compare its SRNi(s,f) with the STj(s,f) received from its neighbors. From these structures a node can determine if it is scheduled to receive from one neighbor while another is transmitting, which is not allowed. In this case, this node must convey to its transmitting node that the slot has been dropped and must be reassigned. Other methods of conflict detection and resolution will be subsequently described. 
     To carry out the individual and composite tasks, a node transmits the following information at the indicated rate: 
     
         ______________________________________Task      Information Shared                      Rate______________________________________individual     (s,f)            on announcement or                      confirmationcomposite STi(s,f), SRi(s,f), NTi(s,f)                      every control packet______________________________________ 
    
     When a node transmits a control packet, the node includes a section for each neighbor, in which it will put the (s,f) being announced or confirmed. This node announces or confirms with respect to the neighbor in whose control padset section the (s,f) pair appears. With respect to the individual task, when a neighbor of the transmitter transmits a control packet containing an announcement, it will update its STj(s,f), NTi(s,f), and, if it is the receiver, its SRi(s,f), the last two of which will be included in the next control packet along with the STi(s,f). With respect to the composite task, upon reception of a control packet, nodes store the STi(s,f) as an STj(s,f), the SRi(s,f) as an SRj(s,f) and the NTi(s,f) as an NTj(s,f). Nodes also pass status information in the control packet so that a node can determine when a neighbor has heard its last control packet. When a neighbor of the transmitter has determined that all of its neighbors have heard at least one control packet from it since it heard an announcement for an (s,f) pair, it will confirm the pair in its next control packet with respect to the transmitter. When the transmitter receives this control packet, it will consider the (s,f) pair confirmed. The transmitter will continue announcing the (s,f) pair in subsequent control packets until it gets a confirmation from all of its neighbors. In this way, the knowledge of the transmitter&#39;s assignment of (s,f) propagates two hops. 
     When the transmitter no longer needs (s,f), it releases the slot by deleting the receiver from its STNi(s,f) and deleting (s,f) from its STi(s,f). When the neighbors of the transmitter receive its next control packet they will update their STj(s,f) and NTi(s,f), the latter of which will be included in their next control packet so that the knowledge of the transmitter&#39;s release of (s,f) will propagate two hops. In addition, when the receiver hears the transmitter&#39;s control packet with the updated STi(s,f), it will delete the transmitter from its SRNi(s,f) and (s,f) from its SRi(s,f). In this way, (s,f) will once again be available for assignment under the constraints of Equation 15 within the two hop radius of the transmitter. This last mechanism at the receiver also allows it to detect when it has a conflicting time division multiple access schedule. While comparing the STj(s,f) of neighbor j with its SRNi(s,f) to see if a transmitter has dropped (s,f), it can also check to see if it is assigned to receive from a neighbor other than j in a slot in which j is transmitting, which would be illegal. In either case, it will delete the transmitter from its SRNi(s,f) and (s,f) from its SRi(s,f). In the case of a conflict, after the receiver&#39;s next control packet the transmitter will recognize that it has dropped (s,f) and take the appropriate action. 
     The data structures previously described are designed to prevent conflicts at a receiver due to two transmitters within its neighborhood using the same frequency. In some networks it may be desirable to reduce the noise floor at the receivers by adding an additional hop of isolation before a frequency is reassigned. This can be accomplished by defining the set of nodes that are transmitting within three hops of a node on an (s,f) pair as: 
     
         NNTi(s,f)=∪NTj(s,f) over all neighbors of a node    (17) 
    
     If this is also included in the control packet then it can be stored at the neighbors of a node as NNTj (s,f) and then they can generate Blocked (i,j,s,f) as follows, which will prevent conflicting transmissions within three hops of a transmitter: ##EQU2## 
     Conflicting assignments among neighbors as a result of unfortunate timing or missed packets can be defined as transmit conflicts and receive conflicts. 
     A transmit conflict can be detected by the transmitter of an assignment. Since all information about assignments are spread via the control packets, the transmitter must examine the various records contained in a control packet to detect conflicts. Thus, there are basically three types of records that the transmitter can examine: the announcement records, the confirmation records, and the SRi(s,f) record. The other composite records, STi(s,f) and NTi(s,f), are necessary to make assignments but do not contain any additional information that the transmitter can use to detect conflicts. Each of these records detect and resolve conflicts as follows: 
     1) The announcement records: 
     Node i is announcing (or has finished announcing) (s,f) and it receives a control packet from a (new) neighbor also announcing and one of the following conditions is true: 
     (a) The pair that the neighbor is announcing has the same slot s and one of the following is true: 
     i) it is with respect to node i, then the resolution is to reject the transmitter&#39;s announcement; 
     ii) it with respect to node i&#39;s receiver, then the resolution is to ignore, and let the receiver reject the transmitters announcement; 
     iii) the neighbor is node i&#39;s receiver, then the the resolution is to accept and drop self as the transmitter; 
     (b) The pair that the neighbor is announcing has the same slot s and frequency f and is with respect to a neighbor of node i, then the resolution is to ignore, and let the receiver reject one of two transmitters. 
     Condition (a) arises because node i and its receiver are blocked on all frequencies in slot s and it is illegal for another node to transmit to either of these nodes in that slot or for the receiver to transmit at all in that slot. Condition (b) arises because all of node i&#39;s neighbors are blocked on (s,f) and it is illegal for any other node to transmit to them on (s,f). 
     2) The confirmation records: 
     Node i is announcing or has finished announcing (s,f) and it receives a control packet and it is from a (new) neighbor confirming (s,f) with respect to another node, then the resolution is to drop self as a transmitter. 
     3) The SRi(s,f) record which is stored at a node as the SRi(s,f) for each neighbor: 
     Node i is announcing or has finished announcing (s,f), the neighbor&#39;s control packet indicates it heard node i&#39;s last control packet in which (s,f) was identified as assigned by node i, and one of the following conditions is true: 
     (a) the SRj(s,f) of the receiver indicates that it is not receiving in (s,f), then the resolution is to drop self as transmitter. 
     (b) The SRj(s,f) of a neighbor other than receiver indicates that it is receiving in (s,f), then the resolution is to ignore, and let the neighbor reject the other transmitter. 
     Condition (a) is an indirect indication of a conflict because the receiver has detected a receive conflict with another node and abandoned the slots. Condition (b) can occur when the transmitter exchanges control packets with a new neighbor for the first time. 
     A receive conflict can be detected by the neighbors of a transmitter and whose presence must then be conveyed back to the transmitter so that it can take corrective action. As in the case of a transmit conflict, there are basically three types of records from the control packet that the neighbor can examine: the announcement records, the confirmation records, and the STi(s,f) record. The other composite records, SRi(s,f) and NTi(s,f) contain no additional information that the neighbor can use to detect conflicts. Each of these records detect and resolve conflicts as follows: 
     1) The announcement records: 
     Node i receives a control packet from a neighbor announcing (s,f) and one of the following conditions is true: 
     (a) Node i is the receiver in the announcement but node i&#39;s SRNi(s,f) indicates that it is the receiver for a different transmitter on slots, the resolution is to reject the transmitter&#39;s announcement. 
     (b) Node i is not the receiver in the announcement but node i&#39;s SRNi(s,f) indicates that it is the receiver for a different transmitter on (s,f), the resolution is to reject the transmitter&#39;s announcement. 
     Condition (a) arises because a receiver is blocked on all frequencies in slots and it is illegal for another node to transmit to it in that slot. Likewise, condition (b) raises because all of the transmitter&#39;s neighbors are blocked on (s,f) and it is illegal for any other node tO transmit to them on (s,f). 
     2) The confirmation records: 
     Node i receives a control packet from a neighbor confirming (s,f) (where node i is not the transmitter) and the transmitter is a neighbor of node i and node i&#39;s SRNi(s,f) indicates that it is a receiver on (s,f). There cannot be two transmitters in the neighborhood of a single receiver or one transmitter transmitting to two receivers, the resolution is to drop neighbor from SRNi(s,f) for (s,f). 
     3) The STi(s,f) record, which is stored at a node as the STj(s,f) for each neighbor: 
     Node i compares its SRNi(s,f) with the STj(s,f) of each neighbor and finds that one neighbor is transmitting on (s,f) while it is scheduled to receive from another on (s,f), the resolution is to drop neighbor from SRNi(s,f) for (s,f). 
     Therefore, it can be seen that the present invention provides for a protocol for a time division multiple access architecture of a mobile multi-hop broadcast radio network that is capable of supporting different types of higher layer protocols for slot assignment process. The present protocol provides for a slot assignment protocol that is reliable, fast, flexible and functional. 
     Whereas the present invention has been described with respect to specific embodiments thereof, it will be understood that various changes and modifications will be suggested to one skilled in the art and it is intended to encompass such changes and modifications as fall within the scope of the appended claims.