## 3 Proposed Opportunistic Routing Algorithm
### Optimal Expected Packet Advancement Prediction  
Referring to the analysis in [27], we define the distance from the source node \(i\) to the sink as \(Y_{i}^{t}\) at time \(t\). Forwarding path of the proposed opportunistic routing protocol is shown in Figure 2. The MSR data packets generated by the source node \(i\) is transmitted to the sink through a multi-hop random path, and the selection of the next-hop forwarding node depends on the priority of the candidate nodes and the sleep/active mechanism. The average number of the candidate forwarding nodes for the node \(i\) is \(N_{i}=\overline{\rho}A_{i}^{t}\), where \(\overline{\rho}\) is the average node density in the MSR area, and \(A_{i}^{t}\) is the sea area where the candidate forwarding nodes are located. Without loss of generality, \(A_{i}^{t}\) that needs to be calculated in this section could be expressed as,  
\[A_{i}^{t}\big{(}Y_{i}^{t},\theta\big{)}=\int_{\theta}^{r}2\big{(}Y_{i}^{t}-x \big{)}\arccos\Bigg{(}\frac{\big{(}Y_{i}^{t}\big{)}^{2}+\big{(}Y_{i}^{t}-x \big{)}^{2}-r^{2}}{2Y_{i}^{t}\big{(}Y_{i}^{t}-x\big{)}}\Bigg{)}dx \tag{7}\]  
where \(\theta\) is control parameter of the packet advancement.  
Frankly speaking, the higher connectivity of the node, the higher possibility of being the candidate forwarding node. In this context, the calculation formula of the optimal  
Figure 2: Forwarding path of the proposed opportunistic routing protocol.  
expected packet advancement prediction from the node to the next-hop forwarding node is expressed as follows,  
\[h\big{(}Y_{i}^{t},\theta\big{)}=\int_{x=\theta}^{x=r}\frac{2\big{(}Y_{i}^{t}-x \big{)}\arccos\bigg{(}\frac{\big{(}\gamma_{i}^{t}\big{)}^{2}+\big{(}\gamma_{i}^{t }-x\big{)}^{2}-r^{2}}{2Y_{i}^{t}\big{(}\gamma_{i}^{t}-x\big{)}}\bigg{)}}{A_{i}^ {t}}\cdot x\cdot dx \tag{8}\]  
Suppose that the marine node \(i\) starts to wait at time 0 after collecting the search and rescue data. The probability that one or more candidate forwarding nodes wake up at time \(t\) is \(N_{i}\lambda e^{-N_{i}\lambda t}\). Therefore, the expected waiting time of the node \(i\) before the first candidate node wakes up is,  
\[T_{e}\big{(}Y_{i}^{t},\theta\big{)}=\int_{0}^{\infty}t\cdot N_{i}\lambda e^{- N_{i}\lambda t}dt=\frac{1}{\lambda N_{i}}=\frac{1}{\lambda\overline{p}A_{i}^{t}} \tag{9}\]  
Further, the Equation (9) can be transformed into Equation (10).  
\[A_{i}^{t}=\frac{1}{\lambda\overline{p}T_{e}} \tag{10}\]  
With the exception of the waiting delay \(T_{e}\big{(}Y_{i}^{t},\theta\big{)}\), the maritime search and rescue data packets also experience an additional transmission delay at each hop, that is, the time delay (\(T_{\theta}\)) in the exchange of data packets and _ack_ message packets between nodes. It is noted that \(T_{h}\) depends mainly on the data packet length and the sea surface wireless communication link quality. Further, the total expected time delay of forwarding a maritime search and rescue packet from a node with a distance of \(Y\) to the sink can be calculated as follows:  
\[T(Y,\theta)=\begin{cases}T_{e}(Y,\theta)+T_{q}+T\big{(}Y-h\big{(}Y_{i}^{t}, \theta\big{)},\theta\big{)},&if\ Y>r\\ T_{q},&otherwise\end{cases} \tag{11}\]  
Next, we explore to minimize the total expected time delay of marine data packet delivery from the farthest sensing node to the sink.  
\[\begin{array}{l}\min T(Y_{m},\theta)\\ s.t.\ 0<\theta\leq r\end{array} \tag{12}\]  
where \(Y_{m}\) is the Euclidean distance from the farthest sensing node in the MSR-WSNs to Sink.  
In the last hop (transmission process from one-hop neighbor node to sink), the average packet advancement value is \(\frac{\sqrt{2}}{2}r\), so the estimated value of \(T(Y_{m},\theta)\) can be obtained as \(\widehat{T}(Y_{m},\theta)=\frac{\big{(}Y_{m}-\frac{\sqrt{2}}{2}t\big{)}}{h \big{(}Y_{i}^{t},\theta\big{)}}\left(\frac{1}{\overline{p}\lambda A_{i}^{t} \big{(}Y_{i}^{t},\theta\big{)}}+T_{q}\right)+T_{q}\). From the above analysis combined with the simulation parameter settings, we can easily deduce that the optimal value of \(\theta\) is 30 \(m\).