## 4 Proposed Scheme
### Packet Forwarding Mechanism In EESEVBF
The technical differences between the EESEVBF and ESEVBF lie in the mechanism used for holding time/timer value calculation. Our proposed protocol EESEVBF uses a novel approach in vector-based forwarding protocols by not disturbing the timer value in the first hop but only exchanging the priority of the transmission based on the subsequent hops. Moreover, the proposed scheme uses _Announcement Packet_ for the solution of the hidden terminal problem that occurs in ESEVBF. To understand this problem, consider the following scenario: A neighbor node receives a data packet from the source node. The qualified forwarding nodes calculate the holding times and set the timers accordingly. When the timer expires and the node does not receive the duplicate packet of the Data, it forwards the packet. The reproducing nodes are those that are in the range of the source node but not in the range of the node with the lowest holding time value among all the PFNs. The packet is forwarded by the node with the lowest holding time value, but the reproducing nodes do not receive a duplicate copy and hence, they also transmit the same packet. In contrast, our proposed scheme uses _Announcement Packet_, broadcast by the source node after receiving the _Container Packet_. The _Announcement Packet_ contains the necessary information about the forwarder. When a node receives the _Announcement Packet_, it calculates its distances with the forwarder and checks if it lies in the range of the forwarder or not. If the statement is true, then it waits until the timer expires, otherwise it drops the packet. The reproducing nodes not lying in the range of the forwarder node drop the packet before the expiry of the timer. In this way, the generation of duplicate packets is suppressed resulting in lower energy consumption. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Struct1** & **Node A** & **Node B** & **Node C** & **Node D** \\ \hline ID & 1 & 2 & 3 & 4 \\ \(HT_{1 st}\) & 17 msec & 10 msec & 15 msec & 30 msec \\ \(HT_{2 nd}\) & 70 msec & 55 msec & 35 msec & 45 msec \\ \(HT_{r}\) & — & — & — & — \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Packet Forwarding Scenario before the nodes receive the CP Packet. ```
\(Total_{Nodes}\), \(t_{range}\); for\(R\gets 1\)to\(Rounds\)by\(1\)do \(Total_{Nodes}\)=\(Total_{Nodes}\)+50; for\(n_{0}\gets 1\)to\(Total_{Nodes}\)by\(1\)do  Network Deploy for\(tr\gets 0\)to\(No_{T}\)by\(1\)do \(t_{range}=t_{range}+50\); for\(i\gets 1\)to\(Total_{Nodes}\)by\(1\)do for\(j\gets 1\)to\(Total_{Nodes}\)by\(1\)do  Find distance between node i and j if\(distance\leq t_{r}\)\(range\)\(AND\)\(Depth\) of node\(i>Depth\) of node jthen  Qualified forwarding node of node i for\(i\gets 1\)to\(DataGenerated\)by\(1\)do  Source node S.ID =i  PFNS(1).ID=i;  PFNS(1).H=1;  PFNS(1).D=0;  PFNS(1).HT=0;  PFNS(1).TT=0; \(sink\_recvd=0\); whilePFNs of\(S>0\)\(AND\)\(sink_{received}==False\)do \(c\_{forwr}\)=PFNS(1).ID; \(c\_{hops}\) =PFNS(1).H; \(c\_{dist}\) =PFNS(1).D; \(c\_{ht}\) =PFNS(1).HT; \(c\_{ht}\) =PFNS(1).TT; Find Distance with the sink if\(Distance\leq t_{r}\)\(ange\)then \(sink_{received}=True\), \(Packet_{tosink}=Packet_{tosink}+1\), Energy consumption calculation ST1=[];  bcast=0; [ST1 nforwardrs2 bcast]=CFRWDRS3h(S, \(c\_{forwr}\), Sink, W, \(t\_{range}\), v, PFNS, NFORVDD); for\(i\gets 1\)to\(nforwardrs2\)by\(1\)do  Insert the forwarders to forwarding list as following;  inPFN=0;  nPFNS=numel(PFNS)+1;  PFNS(nPFNS).ID=ST1(i).ID; \(tchops=c\_{hops}+1\);  PFNS(nPFNS).H=tchops; \(PFNS(nPFNS).D=c\_{dist}+ST1(i).SF\);  PFNS(nPFNS).HT=ST1(i).HT; \(PFNS(nPFNS).TT=c\_{ht}+c\_{ht}+(ST1(i).SF/v)\);  PDR_EESVBF(\(R,n_{0},tr)=\frac{Packet_{tosink}}{DataGenerated}\), EnergyConsumption_EESVBF(\(R,n_{0},tr)\)=Total EnergyConsumed Delay_EESVBF(\(R,n_{0},tr)=\frac{Delay}{DtoSink}\)  Calculate PDR, End-to-End delay and EnergyConsumption
```  
**Algorithm 1**Proposed Algorithm for Selecting the Next PFN.