## 3 Proposed Scheme
### Estimation of \(HT_{p}^{i}\)
The structure, header format, and the purpose of all those packets is similar to the one that is used in [19]. Similarly, the same set of steps are followed by our proposed scheme when it receives **NEIGH_REQ** and  
\[\alpha=e^{(-E_{i})}\left(\frac{T_{r}^{S}-D_{S}^{i}}{v_{s}}\right) \tag{5}\]2 Holding time estimation parameters and scenario. NEIGH_ACK. Because the prime objective of our proposed scheme is to select more suitable data packet forwarders, hence, we proposed a new set of steps when data packet is received by node \(i\). Detailed working principle of our proposed data packet forwarding algorithm is shown in Algorithm 1. ```
Output:Forward or Drop \(p\) Input :Node \(i\) receives \(p\{ID_{p},S(x_{S},y_{S},z_{S}),T_{r}^{S},e_{S},DATA\}\). 1\(PQ(m,c)\)= Packet Queue // \(m\) : Packet, \(c\)= Copies of \(m\)
2\(\xi_{i}\)= Neighbor List of \(i\)
3\(\chi_{i}\)= Neighbor List of \(i\)
4\(\mathit{Time}_{m}\)= Timer for packet \(m\)
5 if{\(p\) is not in \(PQ\)}then
6 Add \(p\) in \(PQ\) and Set \(c=1\)
7 if\(\mathit{Time}_{p}\) is \(OFF\)then
8 get \(T_{r}^{S}\) from \(p\)
9 get Loc(S) from \(p\) // \(\mathsf{Task}\)\(D\) is not in \(T_{r}^{S}\) of \(S\) // \(D_{D}^{S}>T_{r}^{S}\)then
10 Compute \(P_{i}\) using Loc(\(S\)), Loc(\(D\)) and Loc(\(i\))
11 if\(P_{i}<W\)then
12 Compute normalized \(E_{i}\)
13 Calculate \(HT_{p}^{i}\)
14 if\(HT_{p}^{i}<min\{HT_{p}^{i}|\forall j\in\chi_{i}\) }then
15 Set \(\mathit{Time}_{p}=HT_{p}^{i}/2\)
16 else
17 Set \(\mathit{Time}_{p}=HT_{p}^{i}\)
18 Start \(\mathit{Time}_{p}\)
19 Call TimerExpire
20 Drop \(p\)
21 Remove \(p\) from \(PQ\): \(PQ=PQ\setminus p\)
22 Exit
23
24 else
25 Drop (\(p\))
26 Increment \(c\)
27 Update \(\xi_{i}\)
28 Exit
29
30
31 Procedure \(\mathtt{Time}\mathtt{Expire}(p,PQ)\)
32 if\(p\) in \(PQ\) and \(c>1\)then
33 Remove \(p\) from \(PQ\): \(PQ=PQ\setminus p\)
34 Exit
35 else
36 Update \((x_{i},y_{i},z_{i})\),\(T_{r}^{i}\), and \(e_{i}\) in \(p\)
37 Forward \(p\)
38 Remove \(p\) from \(PQ\): \(PQ=PQ\setminus p\)
39 return
```  
**Algorithm 1**Proposed data Packet Forwarding Algorithm. When node \(i\) receives data packet \(p\), it first checks, whether the packet is already in the Packet Queue (\(PQ\)), waiting to be forwarded or not. In case of no packet found in \(PQ\), timer for that packet is not active, and \(D\) is in \(T_{r}^{S}\), then \(i\) checks its position that either \(i\) is PFZ or not. Accordingly, node \(i\) computes its \(HT_{p}^{i}\) and initiates the timer \(\mathit{Timer}_{p}\). During the \(\mathit{Timer}_{p}\) is active, node may receive multiple copies of \(p\) form other nodes and records the number of copies received. Once the \(\mathit{Timer}_{p}\) expires, node \(i\) forwards the **data** packet if it received only single copy of the packet, otherwise, it drops and removes the packet from \(PQ\). To conclude this subsection, we have proposed the holding time that uses an energy scaled closeness to the edge of the \(T_{r}^{S}\), expanded proximity to the centerline of the cylinder between \(S\) and \(D\), and adjacency towards the sink node. Collective, all those factors are necessary for the selection of the appropriate forwarder.