## 3 MJTAR Protocol
### E-IFTIS Overview
#### 3.3.4 CPP Collection Procedure  
Figure 7 shows how to collect CPP master and subset packets and manage CPP information for vehicles near the J_begin junction.  
Upon vehicle V7's entry into the current junction, a timer initiates, prompting it to gather CPP master and CPP subset packets within a 0.5 s interval. Initially, [PERSON] retrieves the CPP master from the connected road, as depicted in panel (a) of Figure 7. Subsequently, it gathers multiple CPP subsets from subsequent roads, illustrated in panel (b) of Figure 7. If no CPP master or CPP subset packets are received from a specific road within the designated timeframe, it is deemed a low-traffic road and disregarded. V7 ceases the collection of CPP master and CPP subset packets upon the timer's expiration. Based on the collected CPP data, the junction location and pheromone information are updated within the CPP management table. Each vehicle maintains its own CPP management table for reference.  
The rationale behind the independent implementation of E-IFITS between vehicles, without reliance on RSUs as in [26], stems from the assumption that vehicles are equipped with digital maps and GPS receivers. Algorithm 1 outlines the procedure for collecting CPPs at junctions. On the road, the group leader forwards the collected CPP packets to the subsequent junction utilizing a greedy forwarding strategy. Upon receipt of a CPP packet by the last group leader or a neighboring node close to the junction, it broadcasts the packet to its passing neighbors. Lines 3 through 11 ascertain whether the vehicle is approaching the junction location via its GPS receiver. Upon arrival at the junction, the vehicle acquires the CPP master packet, initiating the timer. Subsequently, within the time limit, the vehicle receives the CPP master and CPP subset packets, updating the collected CPP information to the CPP management table, as illustrated in Figure 8. The delivery rate of CPP packets may fluctuate based on the road traffic density. In line 14, the FindOptimizedPath function is invoked, utilizing the CPP management table to determine the optimal path using Equations (1)-(9).  
Figure 7: (a) Collect CPP master information during 0.5 s. (b) Collect CPP subset information during 0.5 s.  
```
Input:\(CurrPos_{CPS}\), \(Junc_{Pos}\), \(Packet_{CPP}\), \(CPP\_Management_{table}\) Output: void
1. Begin
2. \(Time_{collection}\leftarrow\) null
3. if\(CurrPos_{CPS}=Junc_{Pos}\)then
4. if\(Packet_{CPP}\).Type = CPP_Master OR CPP_Sub_Set AND then
5. \(Time_{collection}\leftarrow\) GetTimerStart(1 s)
6. while\(Time_{collection}\
eq\) TIMEOUT do
7. if\(Packet_{CPP}\).Type = CPP_Master then
8. \(CPP\_Management_{table}\).Update(\(Packet_{cpp}\))
9. elseif\(Packet_{cpp}\).Type = CPP_SubSet then
10. \(CPP\_Management_{table}\).Update(\(Packet_{cpp}\))
11. elseif
12. if\(CPP\_Management_{table}\
eq\) null then
13. if\(CurrPos_{CPS}\) = \(Junc_{Pos}\)then
14. FindOptimizedPath(\(CPP\_Management_{table}\))
15. endif
16. endif
17. endwhile
18. endif
19. endif
20. return 0
```  
**Algorithm 1**Collect CPP at junctions  
Table 2 presents the notation to differentiate the fields configured within the CPP management table.  
The CPP management table maintains a list for identifying the current junction and 1-hop candidate junctions. Each entry in the list includes the following fields for every 1-hop candidate junction: Junction ID, pheromone amount, shortest distance to the destination, and a two-hop junction list. The 2-hop junction list comprises a record of junction IDs and corresponding pheromone information for the 2-hop candidate junctions neighboring the 1-hop candidate junctions.  
Figure 8: The definition of the CPP management table.