## 3 Design of SROA
### SROA Protocol Description
The probability for node \(i\) to be selected as CH is expressed as:  
\[P_{i}=\rho E_{i}+(1-\rho)\sum_{j\in N}L_{ij} \tag{13}\]  
where \(\rho\) is the coefficient and can be tuned for a specific scenario. \(L_{ij}\) is the distance between the current node \(i\) and other nodes in the cluster. Generally, there is one CH and the majority are ONs for each cluster. The CH collects the sensed data and aggregates data from its members, then the data will be forwarded to the sink through multi-hop communication. Besides, in our proposed protocol, a PCH node is elected to alleviate the burden on the CHs, wherein data packets can be forwarded by either CHs or PCHs. PCH can be considered as a replication or backup for CH, which improves the high availability and avoids single-point failure. Hence, the selection of PCH is almost similar to CH. When the CH crashes and is not able to be connected any more, PCH will take the place of CH and become the new CH. Meanwhile, the cluster is triggered to start a new round of CH elections. After completing the clustering, sensor nodes broadcast messages indicating the cluster information. Usually, the CH consumes more energy than other sensor nodes, resulting in a shorter CH lifespan. To prolong the network lifetime, the proposed protocol relies on the periodic reselection approach, where CHs and PCHs change periodically, namely, when the remaining energy of CHs and PCHs becomes less than a certain threshold, reselection is performed automatically based on the previously described factors. In SROA, we apply the average energy of the cluster member nodes \(E_{a}\) as the threshold value \(E_{t}\). The procedure of clustering is described in Algorithm 1. **(3) Relay set construction**: At this stage, when a node \(n_{i}\) receives data packet, it first checks whether itself is a CH or PCH, if not, the packet will be forwarded to the CH in the cluster. If it is true, to improve the packet delivery rate and reduce energy consumption, the sender constructs the relay set \(R_{i}\), which are in the transmission range of \(n_{i}\) and calculates the Q-value of them. If the nodes in \(R_{i}\) receive data packet, and all the candidate nodes forward the reception without suppression, this will deplete the energy as well as occupy the channel bandwidth. Therefore, the forwarding priority list should be determined and packaged into packet header after constructing the \(R_{i}\). In SROA, the sender computes the Q-values of qualified neighbors through the received packet header and local neighbor table. Afterwards, the Q-value-based waiting time for candidate nodes, namely the forwarding priority, is computed. It is necessary to set the waiting time of each node properly. If the waiting time is set too long, it will result in long delay during transmission. Otherwise, too short a waiting time cannot suppress the low-priority nodes and the packet has already been transmitted before the expiration of the waiting time, leading to packet redundancy. As a result, the sender computes the waiting time for each candidate node using Q-values, local neighbor table, and packet header. The greater the Q-value, the higher the priority of that node, thus the node with the shorter waiting time participating in the forwarding. Based on the calculated Q-value, the waiting time is:  
\[ \begin{array}{l}T_{i}=k\cdot(1-\frac{Q_{i}}{Q_{\max}}),\\ k=2\cdot\frac{R}{\rho_{g}}\end{array}  \tag{14}\]where parameter \(k\) is equal to the maximal delay, during which candidate nodes hear the packet delivery from other high-priority nodes before forwarding. Taking the worst condition into account, \(k\) is set to \(2\cdot\frac{R}{c_{g}}\), which is twice the propagation delay between the two nodes. \(Q_{i}\) is the Q-value of \(n_{i}\), while \(Q_{\max}\) is the maximum Q-value among the nodes. The waiting time \(T\) is zero when the Q-value of the candidate node is just the maximum. As a result, the end-to-end delay can be reduced.