## 4 Proposed Solution
### Packet Transmission at Source Node  
When the source nodes start receiving the RREP packets, they are stored in a newly defined route table that is capable of holding multiple entries for the same destination nodes, unlike the routing table in AODV (Table 2). As per algorithms defined in Algorithm 1, upon receiving the first RREP, a timer is initiated for \"1 s\", so that multiple routes can be established. The transmission starts once the count of the minimum number \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Sender IP** & **Timestamp** & **Request ID** & **Origin IP** & **Destination IP** & **Flag** \\ \hline
10.10.1.15 & +1286351.0 ns & 1 & 10.10.1.32 & 10.10.1.32 & - \\
10.10.1.2 & +9034998.0 ns & 1 & 10.10.1.32 & 10.10.1.32 & - \\
10.10.1.40 & +16931601.0 ns & 1 & 10.10.1.32 & 10.10.1.32 & - \\
10.10.1.28 & +23828591.0 ns & 1 & 10.10.1.32 & 10.10.1.32 & - \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Link table. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Destination IP** & **Gateway IP** & **Interface IP** & **Flag** & **Expire** & **Hops** \\ \hline
10.10.1.27 & 10.10.1.1 & 10.10.1.32 & DOWN & \(-\)1.58 & 4 \\
10.10.1.27 & 10.10.1.42 & 10.10.1.32 & DOWN & 1.95 & 5 \\
10.10.1.27 & 10.10.1.9 & 10.10.1.32 & UP & 8.50 & 4 \\
10.10.1.27 & 10.10.1.6 & 10.10.1.32 & UP & 9.87 & 6 \\
10.10.1.27 & 10.10.1.42 & 10.10.1.32 & UP & 11.20 & 7 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: New routing table. Figure 2: Link info control packet. of packets and valid route counts is achieved; the assumed values are four and two, respectively. The transmission is always done via the queue only. The purpose of using the queue is to perform the encryption on every data packet that is transmitted. Another important consideration for using the queue is to divide the packets based on the number of available routes, using the following formula 1 & 2:  
\[PR=N_{TQ}/VR \tag{1}\]  
\[RP=\text{mod}\ (N_{TQ},\ VR) \tag{2}\]  
where:  
\(PR=\) Packets per Route, \(RP=\) Remaining Packets, \(N_{TQ}=\) Packets in Transmission Queue, \(VR=\) Valid Route count. ```
1:InitializeNodes() & GenerateCertificates(). 2:GenerateData() for transmission. 3:Enqueue Datapacket & Raise RREQ. 4:Process RREQ RecvRequest(). 5:Initialize Timers for Multiple Routes & HelloProcessing. 6:If timer's set at Step5 \(>\) SetTime. 7:Fetch all valid routes validRouteCount(). 8:If validRouteCount \(>=\) 1, then:
9:\(\{\)
10:\(\)
11:\(\)
12:\(\)
13:\(\{\)
14:\(\{\)
15:\(\)
16:\(\{\)
17:\(\}\)
18:\(\{\)
19:\(\}\)
20:\(\{\)
21:\(\}\)
22:\(\{\)
23:\(\{\)
24:\(\}\)
25:\(\{\)
26:\(\}\)
27:\(\{\)
28:\(\}\)
29:\(\{\)
30:\(\}\)
31:\(\{\)
32:\(\}\)
33:\(\{\)
34:\(\}\)
35:\(\{\)
36:\(\}\)
37:\(\{\)
38:\(\}\)
39:\(\{\)
40:\(\}\)
41:\(\{\)
42:\(\}\)
43:\(\{\)
44:\(\}\)
55:\(\{\)
56:\(\}\)
57:\(\{\)
58:\(\}\)
69:\(\{\)
60:\(\}\)
70:\(\{\)
71:\(\}\)
72:\(\{\)
73:\(\}\)
74:\(\{\)
75:\(\}\)
76:\(\{\)
77:\(\}\)
78:\(\{\)
79:\(\}\)
80:\(\{\)
81:\(\}\)
82:\(\{\)
83:\(\}\)
84:\(\{\)
85:\(\}\)
86:\(\{\)
87:\(\}\)
88:\(\{\)
89:\(\}\)
90:\(\{\)
91:\(\}\)
92:\(\{\)
93:\(\}\)
94:\(\{\)
95:\(\}\)
96:\(\{\)
97:\(\}\)
98:\(\{\)
99:\(\}\)
99:\(\{\)
100:\(\}\)
90:\(\{\)
111:\(\}\)
90:\(\{\)
120:\(\}\)
91:\(\{\)
13:\(\}\)
92:\(\{\)
14:\(\}\)
93:\(\{\)
15:\(\}\)
94:\(\{\)
16:\(\}\)
95:\(\{\)
17:\(\}\)
96:\(\{\)
18:\(\}\)
97:\(\{\)
19:\(

**Algorithm 1**. : _Cont._

_24: Else._

_25: Raise RREQ._

_26: Process packets RouteInput()._

_27: if DataPacket._

_28: Decrypt () & initiate Timer for DeliveryInfo() broadcast._

_29: if Timer set at Step 28 \(>\) SetTime._

_SendDeliveryInfo()._

_}_

_30: At source RecvDeliveryInfo()._

_31: Compare DeliveryInfo P1D with BQ P1D._

_32: Increment the GWStatus for performing Gateway nodes._

_33: Clear BQ where P1D \(==\) BQ(P1D)._

_34: if TO!= 0 GOTO Step 3._

Where:

_BQ_: Backup Queue; _TQ_: Transmission Queue; _Px_: Packet Count; _PPR_: Packets Per Route; _RP_: Remaining Packets; _PID_: Packet ID; _GWStatus_: Gateway Node Status.