This invention is directed to an ad hoc method of controlling and sharing access to a wireless communication mesh of single stations, or smaller wireless communication networks (member stations), wherein the mesh can be created and modified at any time in any location without the need for a central master station.
Wireless communication protocols must handle three distinct situations: First, a network or station joining an established network; second, a station leaving the network; and, third, a station roaming within the network. To accomplish this, there must be a way for stations to communicate their presence to all other stations within range, and communicate changes in what stations they can hear. In prior art time division multiple access (TDMA) protocols, each station is assigned a periodic time slot in which to transmit data. In the prior art related to TDMA protocols, a central master station is required to administer the time slots to the members of the network. In a network where some of the members are out of range of other members, the ability of a central master to communicate with all members of the network may not exist.
Furthermore, in an ad hoc network where member stations are joining and leaving the network at random, there may not be a suitable candidate as the master station. There is a need therefore for an improved protocol for managing access to an ad hoc network that does not require a central master station.
This invention is not concerned with the routing of application data between member stations of the mesh network.
The invention provides a method of controlling and sharing access to a wireless mesh network wherein not every station of the mesh network is in range of every other station of the same network. The invention's method includes the steps of: first, each station periodically transmits a beacon (or other forms of control signaling) containing mesh management information, mesh commands, and data to be transferred between member stations; second, in response to a beacon being no longer detected, each station transmits a bit map containing an indication of only the stations whose beacon it can still receive; third, on receiving a bit map with not all stations indicated, each station responds by adding stations that it can receive to the received bit map and transmitting the updated bit map; fourth, each station repeats the third step until the updated bit map indicates that all stations are still in the network or that a member station is missing from the mesh network; and finally, if a station is indicated to be missing from the network, each remaining member station updates the bit map to eliminate the bit position of the missing station. This process is illustrated in
The present invention provides a mechanism for two separate mesh networks to be merged into one network. This can happen in two different situations. For the first case, a member from one mesh network directly communicates with the member from the other network, as shown in
The present invention provides a mechanism for two member stations to share the same time slot if the two stations are out of range of each other and have no common neighbors. It allows members of the mesh, who have no global knowledge about the network topology, to discover what other member time slots might be shared without causing interference. It provides a robust and efficient method for managing time slot sharing that is immune to changes in network topology because of stations roaming, new stations joining, or member stations dropping out of the mesh.
In general, the present invention has the advantage of controlling a network without the need for a central master station, and does not require continuous global knowledge of the topology of the network. It provides a mechanism for managing changes in mesh propagation time that is the result of radio interference with transmissions of member stations.
a,
b show a dropped member station in a linear mesh network.
a,
b,
c show a sequence of network diagrams illustrating a dropped member station in a non-linear mesh network as resolved by the present invention.
a,
b, and
The invention addresses the issue of networking individual stations in an ad hoc mesh wireless network without any mesh network master. The invention establishes a protocol, by which a wireless mesh network can be created at any time in any location, and the membership of the mesh network is managed in an efficient manner. The invention's protocol also provides a way to share network bandwidth without interfering with any members of the mesh network, rendering the invention both more effective and more efficient than conventional methods of creating wireless networks.
The invention's protocol handles three distinct situations regarding the an individual station and its membership in a mesh: (1) an unjoined station (US) joining an established network and thus becoming a mesh member station (MS), or two mesh networks merging into one new mesh network, (2) an MS leaving the mesh network, and (3) an MS roaming within the mesh network. To accomplish each of these changes, the MSs communicate their presence to all stations within range, and communicate changes in what stations they can hear. A small time slot has been set-aside for this purpose at the beginning of each MS assigned time slot. An MS uses this small slot of time to transmit the beacon.
The Beacon
The beacon is an important part of each time slot. The information transmitted by MS in its beacon allows an individual MS to determine local area knowledge, and network changes based on this knowledge. The information carried by each MS beacon includes:
Table 1 summarizes the above list. The BCC is determined and incremented by the root station. The root station is the MS with the lowest SID number in the mesh network. Each joining MS is assigned an SID that is larger than the SID of the most recently joined member. Thus, the SID number always distinguishes the order in which member joined in relative to all other MSs. An SID number can change when an MS leaves the network, or when a new station joins.
The Member Frame (MF) and the Join Contention Slot (JCS)
The MF is the entire slot of time owned by an MS. It consists of the Mesh Control Slot (MCS) and the Member Defined Slot (MDS). These structures are also shown in
The Beacon Cycle
The member frame interval is a constant known to all members of the mesh. The BCC is incremented at the beginning of each beacon cycle and remains constant throughout the remainder of it. Each MS keeps track of the period of the beacon cycle and the BCC so that it can independently transmit the correct BCC for each cycle. Typically, the root MS sends the updated BCC and the other MSs just repeat its value unless the root MS roams out of range or powers down.
Mesh Command Operation Principles
A MCmd is transmitted in the beacon after the BCC. Although various types of MCmds are possible, all require the same mechanism for execution. The MCmd requires that one MS, the originator, sends the initial MCmd in its beacon. Then each recipient MS receives the MCmd, performs an operation if required by the MCmd, and then retransmits the MCmd in its own beacon if required by MCmd. The recipient typically alters one of the received parameters in the MCmd before retransmitting it. This process continues for the prescribed period of time indicated by a field in the MCmd itself. This may result in an MS receiving and retransmitting the MCmd more than once. Whether this happens depends on the command and the network topology.
All MCmds have at least one common parameter transmitted with them. The parameter common to all of the MCmds is the Change Effect Cycle Count (CEC). The CEC is a future value of the BCC when each and every MS in the mesh has performed the operation defined by the MCmd and the execution of the MCmd is completed. The originator computes the CEC by adding a value called delta-T, or ΔT (in units of beacon cycle counts), to the current cycle count, BCC. AT represents a time delay estimate, based on cycles of beacon transmission, needed to propagate the command and perform required tasks before the action takes effect. The value of ΔT varies depending on the number and topology of the MSs in the network, as well as the type of action taking place. (The calculation of ΔT values will be specified for each MCmd that is subsequently described). Some MCmds must reach each member in the mesh only once. These requires less time to propagate than MCmds that are received and then retransmitted with changed parameter fields, since the retransmissions must also propagate to all members of the mesh. In some cases multiple MSs will start propagating the same MCmd, but with different CECs. In the case of multiple instances of the same MCmd received by an MS during a single beacon cycle, the MS shall resend the only one copy of the MCmd, and use the smallest CEC value received.
The basic form of an MCmd is shown in Table 2. The Length of MCmd field is used to allow for: (1) The fact that the size of a bit map parameter will increase by one bit for each MS in the network, (2) Commands that are not interpretable by all MSs in the mesh, and (3) Commands with a variable number of parameters. In the second case, an MS can skip the command, and in the third case, an MS can add or remove a parameter during the execution process.
Nearest Neighbor Bitmap
Each MS generates and maintains an internal bit map of all neighboring MSs whose beacons can be properly received. This bitmap is called the nearest neighbor bitmap, NNB. The size of the NNB (in bits) is equal to value of NS, and the bit order corresponds to the SID number. One bit in the bitmap is reserved for each MS in a mesh network. The least significant bit, lsb, which in this embodiment is on the right hand end of the string, refers to the root MS (SID=1) and the most significant bit, msb, refers to the most recent MS to join the mesh (SID=NS) and is on the left hand end of the string.
An example of a bitmap for an MS, when NS=9, that can receive beacons from MS4, SID=4, MS5, and MS8 is 010011000.
The algorithm for updating the NNB is not part of this invention, but it is assumed that the loss of a previously received beacon shall persist long enough to be correctly interpreted as the MS no longer transmitting or no longer within range.
The process of managing a mesh network must consider all possible scenarios: a single station joining the mesh, combining together two mesh networks, removing a member from the mesh network, and movement of a member within the mesh network. Each scenario is different but this invention allows all scenarios to be treated in similar and consistent ways. In most of this section, the mesh network will be assumed to be operating in an interference-free environment. Operation in the presence of interference is considered at the end of this section.
Unjoined Station Joining a Mesh Network
First, the US shall be in range of one or more MSs in order to join the mesh. The US shall select an MS within range, MSk. Then the US shall send a Request-US-Join command (RUSJ) in the JCS (after the EOB field in the beacon). The RUSJ command is shown in Table 4. MSk shall immediately acknowledge the RUSJ command in the JCS. The MS that received the RUSJ shall then authenticate the US to determine if it is permitted to join the mesh. (The authentication process is beyond the scope of this invention.) If authentication is successful, MSk shall then transmit the Station Join Mesh (SJM) MCmd in its next beacon. The CEC field in the SJM MCmd informs the US and all the MSs in the mesh network when the US will become a member of the mesh. The CEC defines the beacon cycle on which the US will officially become an MS and begin transmitting its own beacon.
Station Join Mesh (SJM) MCmd
This SJM command shown in Table 5 is transmitted (originated) by the join MS, to inform all MSs that a new member will bejoining on the beacon cycle specified by the parameter CEC=BCC+ΔT. Where BCC is always the current beacon cycle and ΔT depends on the amount of knowledge that join MS has about the propagation time of its messages. The worst-case number for ΔT in beacon cycles is SID. This worst case occurs for a linear mesh in which, MS1 is in range of MS2, MSk is in range of MSk−1 and MSk+1, for k=2,3,4 . . . (NS−1), and MSNS is in range of MSNS−1. Since the exact topology of the network cannot be known because an MS only knows what MSs are within range, the SID value shall be used for ΔT.
If the number of beacon cycles required for a command to propagate from the join MS to the root MS is TPR and is known to the join MS, then ΔT is the TPR+2. This is true because once the MCmd reaches the root, it will propagate to all MSs on the next, ΔT=TPR+1, beacon cycle. Thus the join can always happen on the ΔT=TPR+2 beacon cycle.
Starting with the root MS, the CEC beacon cycle includes the new MS. The MCC and the NS are both incremented by one before being broadcast in the beacon, and the beacon cycle is extended by one member frame interval (MFI) during which the new MS transmits its first beacon.
Combining Two Mesh Networks Into One Mesh Network
The previous case showed a single US joining an existing mesh. The general case is if any MS from an existing mesh network comes within range of an MS from another mesh network, or if a single US comes within range of two separate mesh networks. In either case, the two networks must join/merge into one mesh network. The following is the sequence of actions that occur in adding Network 2 to Network 1, when a member of Network 1 comes within range with a member of Network 2.
Refer to
In Step 23 the MSy of the smaller mesh network, 2, submits Request US Join, RUSJ, command in the JCS that occurs at the end of the MSx beacon. MSy transmits NS2 as the Number-of-US-to-Join parameter to signal that a mesh is joining instead of a single US. MSx immediately acknowledges receipt of the RUSJ command in Step 24.
In Step 25, Network 1 initiates the join. MSx originates the SJM MCmd with the Number of US to Join field set to the overall size of mesh Network 2, NS2. The CEC parameter (CECj) is set to BCC1+ΔTmax, where BCC1 is the current value of BCC for Network 1, and ΔTmax is the largest of the two quantities: NS1*(NS1−SIDx), or NS2/NS1*(NS2−SIDy+1). This is required because while Network 1 is propagating the SJM message, Network 2 will propagate a command originated by MSy to silence all of its beacons except that of MSy. The longest prorogation time is used to time the total join process. The entire membership of Mesh 2 will join Mesh 1 on the same CECj. The newly joined group will not, however, be able to participate in the mesh until they are resynchronized with the original members of Mesh 1.
In Step 26, MSy in Network 2 also receives the SJM MCmd originated by MSx in Step 25. MSy times the join process in terms of its own beacon cycles as ΔT=(CECj−BCC1)*(NS1/NS2)+BCC2.
In Step 27, MSy originates a Silence All Beacons (SAB) MCmd (see Table 6) with the CEC parameter set to CECa=BCC2+ΔT=BCC2+NS2−SIDy, whereas MSx also receives this MCmd and uses the ΔT=(CECa−BCC2)*(NS2/NS1)+BCC1+1, rounded up the next BCC, to time the SAB execution. Except for MSy, each MS in mesh Network 2 stops transmitting its beacon temporarily to eliminate interference and as the first step in resynchronization of Network 2 to the timing of mesh Network 1.
In Step 28, the CECj time is reached and the join portion of the join/merge is complete. Any station that is transmitting beacons from this point is now a member of the combined mesh network. (Initially, MSy will be the only member of mesh Network 2 to transmit a beacon in the combined network.) All members of both mesh networks update NS, to NS1+NS2, and adjust the size of bit maps and the beacon cycle timing to be consistent with the NS change. The MSs of Network 1 do not start updating their NNBs at this time, but wait until the merge is complete.
In Step 29, MSx originates the Start Mesh Merge (SMM) as an MCmd to its own mesh and as a command to MSy. This MCmd is propagated with the parameter NSm=NS1+NS2, CECm=BCC+NSm*DTmax, where DTmax is the largest of: (NSm−SIDx+1) and (NSm−SIDy+2). This tells mesh Network 1 to prepare for the merge and for MSy to start the merge of Network 2. Table 7 shows the SMM command format.
In Step 30, MSy hears the MSx beacon with BCC=CECm, and changes its identity from being a member of mesh Network 2, to the identity of being a member of the merged mesh network. To designate this new identity, the name of MSy will be changed to MSm for the remainder of this section.
In Step 31, Starting from this current BCC, which is the BCC of the original network 1, MSm sends a beacon at the proper time for a member of the merged mesh with the following beacon parameters: MIDm=1, SIDm=NS1+SIDy, NSm=NS1+NS2, and MCC=MCC+1. MSm also sends the MCmd Synchronize All Members (SAM) with CECm=NSm−SIDm=NS2−SIDy, which is received by its original Mesh 2 neighbors, who are waiting for this transmission. The SAM MCmd is shown in Table 8. The MSs of mesh Network 2 use the Size-of-Joined-Mesh parameter (NS,) to calculate their new SIDs and the size of the merged mesh.
In Step 32, each neighbor of MSm sends its own beacon as a new member of the merged network. The new SID of each MS becomes its old SID added to NS1. This process continues until the CECm beacon cycle, as neighbors of neighbor hear the SAM MCmd and then propagate the command on to their own neighbors as members of the merged network. Thus, the (smaller) network 2 gets new ID numbers that are calculated by adding their current ID number to the size of the larger network. The smaller network also adopts the larger network's beacon cycle count. The merged network size becomes the sum of the sizes of the two networks and all bitmaps are expanded accordingly.
The final action in Step 32 is for MS1 (SID=1) of the merged mesh network to originate a Nearest Neighbor Change MCmd. The function performed by this MCmd is to determine if the beacon of every MS of the merged mesh can be heard by at least one other MS, which confirms that all merged MSs are actually present. The definition and operation of this MCmd will be described in the next section.
Resolving Mesh Membership After the Loss of a Beacon
An MS may move outside the range of the mesh network or simply cease transmitting its beacon. This would mean that the MS is no longer a part of the mesh and should not have a reserved time slot for its member frame. The lack of a beacon may change the network topology in several ways.
In Step 51 of
In Step 52, the detecting MSa takes a snapshot of its NNB at its current value, NNB1, which is saved until CEC is reached.
In Step 53, the detecting MSa prepares to send an MCmd by calculating several parameters. First, MSa creates a list of the beacons that have been lost, the Lost Beacon List, LBL. The members of the LBL {MSi} are the MSs represented by ones in the result of (NNB1⊕NNB0){circumflex over ( )}NNB0, where ⊕ is the exclusive OR operator and {circumflex over ( )} is the logical AND operator. For convenience, the result of this expression shall be referred to as the Lost Beacon List, LBL=(NNB1⊕NNB0){circumflex over ( )}NNB0.
In addition, MSa begins keeping a running value of the Beacon Detect Bitmap Flag, BDBFa, which it initializes to NNB1. The further use of BDBF is outlined in subsequent steps.
Finally, MSa calculates the parameter CEC=BCC+ΔT, where ΔT=NS−NNNB1−RP. NNNB1 is the number of neighbors still within range (i.e., number of ‘1’s remaining in NNB1). RP is the relative position of ‘1’s in the LBB with respect to MSa. RP is equal to the number of ‘1’s in the LBB that represent MSs with a larger SID than MSa. For example, if SIDa=5 and LBB=0101000010, then the value of RP is 2 since the ‘1’s in LBB are located at SIDs 2, 7, and 9. If LBB=0000001011, then RP=0, because all SIDs represented by the ‘1’s are in lower bit positions than SIDa=5.
In Step 54, MSa shall send the Nearest Neighbor Change, NNC command, which is shown in Table 9, with its SIDa as the Originator SID, the CEC and BDBF calculated in Step 52, and an LBL consisting of the ‘1’ bit positions (SIDs) in the LBB.
Step 55 is discussed in the section titled “Conditional Preprocessing of NNC Fields.” For this discussion, assume that no preprocessing of a received NNC MCmd is required.
Step 56 applies to all members of the mesh network including MSa. It is assumed that the NS parameter in any received NNC command is equal to the NS in the beacon. If this is true, the NNC command is executed throughout the mesh as follows:
When any MSx receives more than one NNC MCmd during one beacon cycle, they are reduced to a set of unique NNCs using the following rules:
The receiving MSx retransmits all of the unique NNC MCmds with the new BDBFs, the current NS, and the originator SID associated with the smallest CEC, for each common LBL.
To summarize the previous receive logic for a unique NNC1: When any MS receives an NNC command and if this is the first time that the NNC MCmd has been received, then MSx takes a snapshot of its current NNB, NNB1, but preserves the ‘1’ for any distinct lost beacon that had resulted in the MS sending its own pending NNC MCmd.
Regardless of whether or not this is the first time that the NNC MCmd has been received, MSx ORs its NNB1 with every received BDBFr for that NNC and LBL combination. The result is that the retransmitted BDBFt is a result of BDBFr1 . . . BDBFrn NNB1.
One final rule is that while an MS is executing one or more NNC MCmds, it shall not originate its own NNC command until the CEC+1 beacon cycle of the last NNC pending. At that time, the MS may take a snapshot of its NNB and compare the snapshot with its NNB (adjusted for dropped MSs) at the point when the first NNC was received.
Step 57 shows that this process shall be repeated until the CEC for the unique NNC MCmd is reached.
When the CEC beacon cycle is reached, the meaning of a “1” in BDBF bit position k (where k is one of the SIDs listed in the LBL) is that “at least one MS in this mesh network can receive the beacon that is transmitted by MSk”. The meaning of a zero in bit position j is “No MS in this mesh network can receive the beacon that was transmitted by MSj.” Thus, zero specifies that the station is no longer part of the mesh. Every MS in the mesh network has the same BDBF on the CEC-1 beacon cycle unless there is a ‘0’ in a bit position not listed in the LBL, in which case the NNC MCmd has not propagated through the entire mesh and must be propagated for additional beacon cycles. The exact number of additional beacon cycles is outside the scope of this invention.
Step 58 and Step 60 show that if the BDBF contains a ‘0’ in a bit position specified by an LBL entry and nowhere else, then the MS takes the following actions on the CEC beacon cycle:
In Steps 58 and 59, if the BDBF is all ‘1’s, then the all MSs are still members of the mesh and no changes to bitmaps are required. This can occur if an MS changes its transmit power, or roams out of range of one MS and is in range of another MS.
Table 10 summarizes the variables that an MS shall keep for each unique NNC MCmd originated or received. All variables, except for DMB, are no longer needed at CEC time. DMB is no longer needed on the CEC+NS beacon cycle.
Step 55: Conditional Preprocessing of Received NNC Fields
The NNC MCmd contains three fields that are needed to process overlapping NNC MCmds: the Originator NS field, the Originator SID field, and the LBL field. These are required because of possibilities shown by
The following is an explanation of the “preprocessing” required in Step 55 in
If the originator NS is greater than the current (beacon) NS, then perform the following preprocessing operation per MS:
In
Examples of One Lost Beacon
Suppose a linear network where each MS, except for the first and last MS, is only connected to two other MSs, as shown in
In this case, the original mesh network will split into two new mesh networks as a by-product of the invention's process. MSa and MSb are still connected to each other but they cannot hear the beacons of MSd and MSe, as in
a through
In Table 11, the “UNJOIN” at BCC=1 indicates that MS3 beacon is no longer detected. When BCC=2, bit 3 in the NNB of both MS4 and MS2 changes from a ‘1’ to a ‘0’. The mesh network now has the topology shown in a
When BCC=3, MS2 signals the change in its NNB by originating the NNC1 MCmd with CEC1=BCC+NS−NNNB−RP=3+8−2−1=8, where NNNB is the number ‘1’s in NNB, and RP is ‘1’ since the SID of the lost beacon (3) is greater than the SID of the detecting MS, (2). Similarly, MS4 originates the NNC2 MCmd with CEC=BCC+NS−NNNB−RP=3+8−2−0=9, where RP is 0 because the SID of the lost beacon (3) is less than the SID of the detecting MS, (4). The two commands have identical LBLs, reporting that the beacon of MS3 has been lost.
In Table 11 for BCC=3, the BDBF entries are the BDBFs transmitted by the indicated MS. These are calculated by ORing all of the BDBFs received since the MS transmitted its beacon in the previous beacon cycle (2), and with its own NNB. We define the BDBF for NNCx MCmd as BDBFx. Thus for MS4, BDBF4=NNB4, for MS5, BDBF5=NNB4 NNB5, MS6, BDBF6=NNB4 NNB5 NNB6, and for MS7, DBF7=NNB2 NNB7.
While BCC=4, the NNC1 MCmd is retransmitted by MS1 with BDBF1 calculated using the BDBF2 transmitted by MS2 in the previous beacon cycle ORed with the NNB from MS1. MS4 calculates a new BDBF4 by ORing the previous BDBFs for MS5 and MS8 with its own previous BDBF4. In this case there was no BDBF for MS8 in the previous beacon cycle. MS5 calculates its BDBF5 from the current value of BDBF1, the newly calculated value for BDBF4 for MS4, and the previous BDBF values for MS5, MS6 and MS7.
In general, for any MSk, the value for BDBFk is calculated (with the connectivity in
For BCC=4, the X'ed out NNC2 entries for MS5 and MS6 indicate that NNC2 MCmd is assessed as redundant because the LBL is identical to that of NNC1 and CEC2>CEC1. NNC2 is therefore not retransmitted, and is subsequently ignored by MS5 and MS6.
The propagation of NNC1 and NNC2 continue during BCC=5, with MS4 and MS8 also eliminating NNC2 as redundant. NNC2 is not shown in subsequent beacon cycles.
In BCC=6, MS1 is the only remaining member that does not have the final BDBF1=11111011. At BCC=7, all members have the final value of BDBF1.
When BCC=CEC1=8, a copy of the BDBF is retained as DMB and saved for NS beacon cycles. All members drop the MS3 bit from all bitmaps, including NNB, because bit 3 in the BDBF is a ‘0’ indicating that no MS can receive a beacon from MS3. Each MS, whose SID is greater than 3, decrements the SID by ‘1’. The renamed MSs are now consistent with the modified bitmaps.
Example of Two Lost Beacons
The two-MS drop case is based on the network shown in
The first change that the loss of MS9 produces is that the msb of the NNB for MS8 is no longer set in BCC=2. This corresponds to the deletion of MS8 between
Next, MS8 sends the NNC1 MCmd in response to the loss of MS9 during BCC=3. The CEC1 is calculated as BCC+NS−NNNB−RP=3+9−1−1=10. NNNB is ‘1’ because there is only one beacon left in the NNB of MS8. This corresponds to the line connecting MS8 and MS7 shown in
The beacon of MS6 is lost during BCC=4, which produces a change in the NNB of MS1. When BCC=5, MS1 originates NNC2 to resolve the loss of MS6. CEC2=BCC+NS−NNNB−RP=5+9−1−1−=12. The mesh now looks like
Since MS7 and MS2 are within range of each other. NNC1 propagates from MS2 starting on BCC=5 as a result of the NNC1 sent in the beacon of MS7 during BCC=4.
For BCC=6 to BCC=9, both NNC MCmds are propagated through the mesh network. When BCC=9, NNC 1 propagation has resolved dropped beacons, 6 and 9. The reason that both lost beacons are resolved in NNC1 is that MS6 was not connected to an MS that NNC1 had reached before its beacon was lost. If MS6 had been within range of MS8, the bit corresponding to MS6 would have remained set in the NNB of MS8. This is because MS8 takes a snapshot of its NNB when originating the NNC1, which it uses to OR with subsequently received BDBFs until CEC1 time. For this case, only NNC2 would have detected the loss of MS6 by all members of the mesh.
For the Table 13 case, when CEC=10 the DMB (=BDBF1, when BCC=9) contains a zero at the same SID position as the LBL of NNC2. This allows each MS to eliminate NNC2 as indicated in the text for
Since the BDBF contains ‘0’s at the SID=6 and SID=9 bits, those positions in the NNB bitmap are eliminated. In addition, NS becomes 9−2=7. In order for the remaining MSs to correspond the to the correct bits in the new NNBs, MS8 and MS7 must decrement their SIDs by 1. In
Sharing Member Frame Intervals
Regardless of the topology of the mesh network, each MS can fundamentally only transmit during its MF interval (time slot) (
Determining Sharable Member Frame Time Slots
In order to determine what time slots can be shared, the connectivity of the network must be determined one level deeper than the NNB of the node requesting the bandwidth. This is due to the following. A node (say MSx) must not be within range of both the requesting node and the node whose timeslot it is requesting. Otherwise, MSx will hear two devices transmitting at once. What the requestor MS needs is a bitmap of all MS IDs that are not usable because the MSs can hear both the requestor and the MS whose time slot is being requested.
The NUSB is determined using the Map Available Slots (MAS) MCmd defined in Table 14.
The MAS MCmd is executed, and the NUSB is computed as follows:
This algorithm works for both linear and non-linear topology cases.
If MS9 is the requester then NUSB9=110100111. The usable time slots are those of MS4, MS5, and MS7.
Acquiring Sharable Member Frame Time Slots
Now that possible MFs are known from the MAS command, it is now desirable to actually acquire one or more of them for use. Any MS using an acquired time slot shall keep track of which time slots that it has acquired and its NUSB. The shared slots are recorded using a Shared Slot Bitmap (SSB). For an MS requesting one or more time slots, it shall transmit an Acquire Time Slots (ATS) MCmd, with a Granted Slot Bitmap, GSB, initialized to the one's compliment of NUSB indicating that all possible time slots are granted. An MS shall only originate an ATS MCmd if there is no pending ATS MCmd being received.
A receiving MS, MSx, may alter the GSB by resetting one or more of the bits before retransmitting the GSB in its own beacon.
The algorithm for resetting the bits is based on the fact that two MSs may not use the same time slot if any MS can receive both of their beacons. The algorithm is as follows. In other words, a neighbor's neighbor shall not allow a shared slot that the neighbor's neighbor is already using (sharing) because the two transmissions will collide on their common neighbor. If there is a ‘1’ in the receiver NUSB, NUSBx, at the bit position corresponding to the originator SID, then there will be a collision if MSx and the originator both use the same time slot. Therefore, the receiving MSx resets the proper bits in the received GSB with the following operation: GSB=(GSB SSBx)⊕GSB, where ⊕ is the exclusive-OR operation. The new value is used in the retransmitted ATS MCmd. If the receiving MS is not using any shared time slots, then SSBx is all zeros, and the MSx retransmits the ATS MCmd without altering GSB.
When BCC=CEC, the originator has a copy of GSB that contains ‘1’s in the bit positions for sharable time slots that it is allowed to use. The originator may now send data during those shared timeslots without the possibility of interfering with other MSs.
When an MS stops using a previously acquired slot, it shall send a Release Time Slot (RTS) MCmd containing a list of the time slots that are no longer being used. The RTS MCmd is shown in Table 16. This command informs the network that the time slot is available for use by any MS, and in particular, an MS whose request was previously rejected. The receipt of this command by the original requestor will result in it sending a new request (ATS) for that time slot.
Roaming Within a Mesh Network
If an MS is free to move about the area of the mesh network, these movements can change the network topology and cause a given MS to be in or out of range with the roaming MS. Therefore, every time an MS moves, the NUSB and the GSB may need to be re-determined since there is the possibility of a shared slot time causing interference.
There are two possible situations for movement within the network. One is an MS moving out of range of one neighbor MS and into range of another. An MS originating the NNC MCmd indicates the absence of a beacon, which is then resolved as no ‘0’s in the final BDBF, and therefore no members dropped from the network.
The second case is a member that does not roam out of range of any other member and does move within range of at least one new member. The member that detects a previously unheard member (MSz) beacon shall also originate an NNC MCmd with MSz in the LBL parameter.
When any MS that is sharing a time slot receives an NNC MCmd, the MS shall cease using that shared slot. The MS shall then originate an MAS MCmd followed by an ATS MCmd to re-acquire usable shared time slots.
RF Interference and MCmd Propagation
RF Interference from sources not associated with the mesh network will increase the time required to propagate an MCmd throughout the mesh network. The only MCmd that can detect if it has not fully propagated at CEC time is NNC. The parameter BDBF will only have a ‘0’ in a location that is not included in the LBL parameter if NNC has not fully propagated through the mesh. Any MS satisfying this condition interprets the result as “no change to the mesh.” This was shown in Step 58 of
In order for other commands to share this capability, the parameter shown in Table 17 must be added each MCmd except NNC. This shall be the last parameter in the MCmd if it is present.
When an MS receives an MCmd containing the MPB parameter, it shall set the bit corresponding to its own SID and retransmit the MCmd. The CEC of each MCmd must be initially set to CEC=BCC+NS−NNNB by the originator, in order to allow both for the original MCmd and the retransmitted command to propagate. At CEC time, each MS checks to see if there are any ‘0’s remaining in the MPB. Any zero corresponds to an MS that either did not receive the MCmd at all, or did not receive in time to propagate the modified MPB to the rest of the mesh.
There are several possible methods for recovering a zero in the MPB. The individual station may do nothing and wait for the result to be propagated by a node with which the MCmd did complete successfully, or it may continue to propagate the MCmd for an additional interval, new CEC parameter. In addition, originator of the original MCmd may re-originate the MCmd that did complete successfully. The exact recovery mechanism is implementation dependent. Depending on the mechanism chosen, an additional propagation time parameter may have to be added to the MCmd if this time parameter is needed to calculate the extended CEC time.
Advantages Of This Mesh Network Implementation
This application claims the benefit of the filing date of U.S. Provisional patent application Ser. No. 60/490,388 filed Jul. 25, 2003 and U.S. Utility patent application Ser. No. 10/900,586. The entire disclosures of both patent applications are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60490388 | Jul 2003 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10900586 | Jul 2004 | US |
Child | 11178697 | Jul 2005 | US |