## 3 SSMA Broadcast Protocol
### Broadcast Approaches
#### 3.3.3 Slot-Scheduled Contention-Based Transmission
If the hidden nodes 7 and 9 broadcast a message simultaneously, collision occurs at node 14; however, node 14 was already covered by node 8 at \(BS_{1}\). In conclusion, SSCBT resolves the first shortcoming of SCBT since a node can assign different _BSs_ to its children by using the _BS_ scheduling algorithm. In addition, it alleviates the possibility of collision by hidden nodes since the closely located hidden nodes can be a sibling. Recall that the closely located hidden nodes at level \(i\) are more likely to have some nodes at level \(i\)+1 in common, but are more likely to have the same parent. For example, hidden nodes 6 and 8 connect to node 12 in common; however, they have the same parent. **b. Message Broadcasting**  
Upon receiving a message, if a node is not a leaf, it generates a _BS_ schedule for its children _on-the-fly_, starting with its own _BS_ number and then includes the _BS_ schedule in the message before broadcasting. A node always saves a message that it overhears for the first time from nodes at its parent level. If a node fails to receive a message by the end of receiving _BSS_, it generates a _BS_ schedule for its children using an arbitrary _BS_ number and includes the schedule in the saved message before broadcasting. Thus, the protocol works well against a change of network topology. For message rebroadcasting, a node wakes up at its assigned _BS_ and checks a channel after _rdelay_. If the channel is idle, it rebroadcasts the message immediately. If the current _BS_ is the last one in _BSS_, it has no choice but to rebroadcast a message even though the channel is busy. Otherwise, it delays its rebroadcasting to the next _BS_ only once and then rebroadcasts the message. Furthermore, we can see that SSMAb enables a lot of parallelism. For example, referring to Figure 5, nodes 5 and 8 are assigned the same _BS_. However, they can rebroadcast the message simultaneously without causing collision at any receiver. Therefore, reliable broadcast can be achieved with a small number of _BS_s. For mobile nodes, if a node does not receive a message during a certain BP, it wakes up one _BSS_ earlier during next BP, assuming that the node has moved to one lower-level direction and remains active to overhear any message. If it overhears a message from multiple nodes, it chooses a node with  
Figure 5: A wireless sensor network (WSN) topology of one sink and 14 nodes. \begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Tree Level**} & \multirow{2}{*}{**BS Schedule**} & \multicolumn{3}{c}{**Broadcast Slots in BSS**} \\  & & \(BS_{1}\) & \(BS_{2}\) & \(BS_{3}\) & \(BS_{4}\) \\ \hline
1 & S(1) & 2 & 3 & 4 \\ \hline \multirow{2}{*}{2} & S(2) & 5 & & \\  & S(3) & 8 & 6 & 7 \\  & S(4) & & & 9 \\ \hline \multirow{3}{*}{3} & S(5) & 10 & 11 & \\  & S(7) & & & 12 \\ \cline{1-1}  & S(8) & 13 & & \\ \cline{1-1}  & S(9) & 15 & & 14 \\ \hline \end{tabular} \(\bigtimes\): node X does not rebroadcast a message since it does not have a child  
\end{table} 
Table 1: A broadcast slot (BS) schedule for the tree in Figure 5.  
the lowest tree level as its parent and resumes normal operation. This simple mechanism works well against mobile nodes. If SSMAb works with SSMA [1], the mobile node who has lost its parent can join its new parent during the data collection process by SSMA. However, since SSMAb is examined alone in this paper, we put _maintenance period_ (_MP_) between two consecutive BPs. Thus, a mobile node can join its new parent by relying on the handshaking process of using _join request_ and _join response_ during MP.