## 4 Repetition-Based Cooperative Broadcasting Scheme
### Helper Selection  
After initial broadcasting, some nodes in OHS of the source node receive and decode the labeled packet successfully, while other nodes do not receive the labeled packet because of channel errors and  
Figure 4: Hidden Markov model. become target nodes of rebroadcasting. The nodes that have successfully received and decoded the packet can help rebroadcast the labeled packet to the target nodes. A node can be a potential helper when it meets two conditions:  
* It has received and decoded the packet successfully. * Collisions will not occur if it transmits in the source node's slot. Condition (1) is easily understood, because a node can be a potential helper only when it has received and decoded the packet successfully. However, why is condition (2) still needed? As shown in Figure 5, nodes B and D are the one-hop neighbors of node A. Node F is a two-hop neighbor of node D, and its position is beyond node A's \(2R_{T}\) range. Thus, nodes F and A can reserve the same slot. If node D is selected as the helper and transmits a packet in node A's slot, a collision will happen on node E, because nodes F and D transmit in the same slot. Thus, node D cannot be selected as the potential helper. Therefore, when a node receives the labeled packet successfully, it first checks whether any node in its THS occupies the same slot with the source node. If no, it becomes a potential helper and will contend to be a helper in the following \(F-1\) slots. Let \(\mathcal{H}\) and \(\mathcal{D}\) denote the set of potential helpers and the set of target nodes, respectively. For the source node, it is impossible to know which node will fail in reception before broadcasting. Thus, the source node broadcasts the predicted set \(\mathcal{D}_{P}\) of the target nodes to its neighbors, as described in Section 4.1. For any potential helper \(h\) in set \(\mathcal{H}\), it gets set \(\mathcal{D}_{P}\) when it receives the labeled packet. For any node \(i\) in set \(\mathcal{D}_{P}\), \(h\) calculates the probability \(\alpha_{hi}\) that the packet is successful received by node \(i\) during the next slot, as described in Section 4.1. If \(\alpha_{hi}>p_{th}\), \(h\) can be a helper of \(i\). Node \(i\) is added into the set \(\mathcal{D}_{P}^{h}\) of the target nodes that \(h\) can help. In the coming slot of \(h\), it sends a request for cooperation (RoC) in the header of the packet, which contains the request for cooperation, the set \(\mathcal{D}_{P}^{h}\) of the target nodes that it can help, and its instant position. In the following \(F-1\) slots after the initial broadcasting, all potential helpers have the opportunities to access the channel and send their RoC messages to the source node. When the source node receives the RoC messages from all potential helpers, an algorithm based on the number of the target nodes a helper can help and the distance to the target nodes runs on the source node to select the best helper. A potential helper is considered as the best helper if it can successfully deliver the packet to the largest number of target nodes and if it is nearest to the mean position of the target nodes. In Algorithm 1, \(\left|\mathcal{H}\right|\) and \(\left|\mathcal{D}_{P}^{h}\right|\) denote the number of potential helpers in set \(\mathcal{H}\) and the number of predicted target nodes in set \(\mathcal{D}_{P}\). \(\mathcal{D}_{P}^{1}\), \(\mathcal{D}_{P}^{2}\), \(\cdots\), \(\mathcal{D}_{P}^{\left|\mathcal{H}\right|}\) denote the set of target nodes that each potential helper can help, and \(d_{1-mann}\), \(d_{2-mann}\), \(\cdots\)\(d_{\left|\mathcal{H}\right|-mean}\) denote the distance between each potential helper and the mean position of the target nodes. \(\mathcal{H}_{G}^{2}\) is the output of the algorithm, i.e., the selected best helper. The source node can use Algorithm 1 to select the \(K\) best helpers. Figure 5: An example of collision.