# A Family of ACO Routing Protocols for Mobile Ad Hoc Networks
## 4 AntOR Protocol Family  
As its name suggests, AntOR-RDLR [19] is derived from the protocol AntOR-DLR, presenting two important differences with respect to this. The first, which gives rise to its name, is that in the route established maintenance phase and exploration of new routes occurs, where, on the one hand, enabling proactive ants and the coexistence of non-disjoint link routes to adapt flexibly and disjoint link routes and, on the other, restricting these to contain a maximum number of disjoint links. The second difference occurs in the route setup phase and is related to the pheromone update process. The pheromone update process in the route setup phase is as follows: If the node ithat has a route to the destination d already has a value of the virtual pheromone and in the route setup phase, we obtain the other regular pheromone applying Equation (7), then the value of the regular pheromone replaces the virtual pheromone using the maximum of these two values and setting the value of virtual pheromone to zero. Equation (13) summarizes the process:  
\[ \begin{array}{l}Regular_{last}=F(Regular_{new},time)\\ Regular_{final}=max(Regular_{last},Virtual_{old})\\ Virtual_{final}=0\end{array}  \tag{13}\]  
As its name suggests, AntOR-UDLR [20] is derived from the protocol AntOR-DLR, differing from this in the link failure management phase. AntOR-UDLR replaces notification messages sent in broadcast mode in AntOR-DLR by simple messages (unicast) sent to the predecessor, which has a valid route to a reachable destination, understanding a valid route to belong to the active session of a given destination with a positive value of the regular pheromone. Figure 3 illustrates the notification process of the failure of the link in AntOR-UDLR. When there is a node failure, both link and node failures occur. The node that perceives the failure eliminates this from its neighbor table to the corresponding node. Then, it updates the routing table with the new information of the pheromone and proceeds as follows:  
1. If there is no route at the source, a reactive forward ant is sent. 2. If there is no route at the intermediate node and a data packet was retransmitting when the failure occurred, it sends a route repair forward ant. If there is no reply from the corresponding repair backward ant in a determined period of time, a unicast message is sent to the precursor of the route, informing that the destination is unreachable. The node that receives this message updates the routing table and forwards this message to the predecessor, and so on, up to the source node of the data session. Figure 3: Link failure management (AntOR-UDLR). 3. If there is no route at the intermediate node and if the control packet (a Hello message or a unicast control message) is dealt with, no message is sent. This can cause routes to not be repaired properly. When an intermediate node, which routes the data, does not find a valid route, it sends a unicast message to all one-hop neighbors to update their routing tables. It is necessary to send this message to all neighbors because, otherwise, in addition to the fact that there is not a located valid route, there is also no information of the predecessor. When one of these neighboring nodes has a valid route to the destination, it forwards the unicast message to the precursor of the route, and so on, until reaching the source node. As its name implies, AntOR-v2 [21] is derived from the protocol AntOR (more specifically of AntOR-DLR), although there are important differences, namely: control packet buffering, obsolete route management, management of sending failures and removal of the virtual pheromone in the maintenance of established routes and the exploration of new routes phase. these differences are discussed in detail. The control packet buffering consisting of these is stored for subsequent sending to the respective destinations at every certain interval of time. This fact allows it to have synchronism in the sending of packets and not to congest the network, decreasing its collision.