# Reliability Improved Cooperative Communication over Wireless Sensor Networks
## 4 Main Design of RICC
### Data Load of Node  
Based on the above data transmission model, there are three kinds of packets for the communications of nodes: _data packet_, _original packet_ and _status message_, which is analyzed in detail in this subsection. Suppose the data transmission is failure-free between any two nodes. Then, according to [12], the amount of data received a node of distance \(l\) meters from the sink is:  
\[\xi_{r}^{l}=h_{p}+\frac{h_{p}(h_{p}+1)r}{2l} \tag{20}\]  
To determine the amount of transmitted data, one packet generated by each node should be considered:  
\[\xi_{t}^{l}=\left(h_{p}+1\right)+\frac{h_{p}(h_{p}+1)r}{2l} \tag{21}\]  
where \(h_{p}=\lfloor(R-l)/r\rfloor\). **Theorem 1**. : _In the RICC model, for a node that is \(l\) meters far from the sink node, the numbers of data packets it transmits to and receives from other clusters (denoted as \(\zeta_{l,l}^{D}\) and \(\zeta_{l,r}^{D}\), respectively), the numbers of original packets it broadcasts to and receives from other nodes within its cluster (denoted as \(\zeta_{l,b}^{O}\) and \(\zeta_{l,r}^{O}\), respectively), and the numbers of status messages it broadcasts to and receives from other nodes within its cluster (denoted as \(\zeta_{l,b}^{S}\) and \(\zeta_{l,r}^{S}\), respectively) can be calculated as:_  
\[\left\{ \begin{array}{l}\zeta_{l,l}^{D}=\left(h_{p}+1+\frac{h_{p}(h_{p}+1)r} {2l}\right)\overline{p_{r}}\lambda\\ \zeta_{l,r}^{D}=\left(h_{p}+\frac{h_{p}(h_{p}+1)r}{2l}\right)\mathrm{N}( \overline{p_{r}})^{2}\overline{p_{l}}\lambda\\ \zeta_{l,b}^{O}=\overline{p_{r}}\lambda,\ \zeta_{l,r}^{O}=(N-1)(\overline{p_{r}})^{2} \overline{p_{b}}\lambda\\ \zeta_{l,b}^{S}=\left(h_{p}+\frac{h_{p}(h_{p}+1)r}{2l}\right)\mathrm{N}( \overline{p_{r}})^{2}\overline{p_{l}}\lambda+\overline{p_{r}}\lambda\\ \zeta_{l,r}^{S}=\left(h_{p}+\frac{h_{p}(h_{p}+1)r}{2l}\right)(N-1)(\overline{p _{r}})^{2}\overline{p_{b}}\lambda\end{array} \right. \tag{22}\]  
_where\(h_{p}=\lfloor(R-l)/r\rfloor\overline{p_{r}}=1-p_{r}\overline{p_{l}}=1-p_{l}\), and \(\overline{p_{b}}=1-p_{b}\)._  
Proof. : For a data packet, a node will transmit a data packet if it has not failed, and it successfully generates one packet with probability \(\overline{p_{r}}\lambda\). The precondition for a node to successfully receive a packet of any kind is that both the receiver and sender do not fail; the probability that this precondition is satisfied is \({(1-p_{r})}^{2}\), and the probability of losing a packet is \(p_{l}\), so the final probability for a node to receive a packet is \({(\overline{p_{r}})}^{2}\overline{p_{l}}\lambda\). As there are \(N\) nodes in each cluster and each node sends its data packet to the next cluster, each node will receive a data packet \(N\) times from the last cluster. For an original data packet, in a single round of data collection, each functioning node will broadcast its original data packet only once if it generates an event with probability \(\lambda\) and will receive original data packets from its \(N-1\) neighboring nodes (if it has any) in the same source cluster. As assumed before, the within-cluster packet loss probability is a constant value \(p_{b}\), so the original data packet loads are \(\overline{p_{r}}\lambda\) and \({(N-1)(1-p_{r})}^{2}\overline{p_{b}}\lambda\). For a status message, once a node receives a data packet or has original data to transmit, it will broadcast a status message containing its ID information, so the number of broadcasted status messages should be \(\zeta_{l,b}^{S}=\zeta_{l,r}^{D}+\zeta_{l,b}^{O}\). Similarly, a node will receive status messages from its \(N-1\) neighbors, under the event generation probability of \(\lambda\). According to Theorem 1, the data packet load of nodes is shown in Figure 4, from which we can see that nodes in different places in the network can have a very different data loads, bringing aboutthe so-called \"energy hole\" phenomenon. Moreover, with more nodes in a cluster, each node receives more data packets, but the transmission data load remains the same.