# A Family of ACO Routing Protocols for Mobile Ad Hoc Networks
## 4 AntOR Protocol Family
Each entry in the buffer includes the following information: (a) the socket that sends the packet; (b) the control packet or particular message of the protocol; and (c) the destination address (it can be a broadcast address or unicast address sent to a specific node). The obsolete route management replaces the evaporation process of the pheromone. This event takes place every certain interval of time and is as follows:  
* Each entry in the routing table has a field (timestamp) indicating when it was created or was last updated. * If the field timestamp associated with each route in the routing table is lesser than the difference between the current time and a given time limit, the aforementioned entry is removed in a local way (each node). * The value of this limit is important. A low value makes the routes converge slowly, eliminating routes to active destinations. Conversely, a high value implies a high convergence in the creation of routes with the consequent possibility of maintaining obsolete routes. The management of sending failures is related to a fault tolerance. When a failure is detected in a control message, a neutralization process is launched. In highly dynamic environments (with more links breaks), the number of neutralization processes as a route local repair is greater, causing a major overload. The introduced mechanism pretends to alleviate this fact by checking for the existence of a valid path (positive value of regular pheromone) to the neighbor that will be transmitted. Only in the case that the path exists, the control packet is sent. The fourth and final difference and, perhaps the most significant, is, as mentioned above, the elimination of the virtual pheromone in the maintenance of established routes and exploration of new routes phase. It is intended to reduce the overhead using proactive agents that do not require routes with the virtual pheromone. These agents create alternative routes that go from neighbor to neighbor until reaching the destination node. At the time of selecting the next hop, the agents take into account the maximum value of the regular pheromone from the one-hop neighbor. In this way, we can reach alternative routes, which are also link disjoint. HACOR [22] consists of a refinement of AntOR-v2, differing from this in the incorporation of the data packet buffering capacity, in an optimized link failure neutralization process and the introduction of a particular type of S-ACO during the maintenance of established routes and the exploration of new routes. These differences are discussed in detail. The data packet buffering has these stored for subsequent sending to their respective destinations at every certain interval of time on the assumption that there are no routes. Indeed, when the data packet is ready to send to the next hop, it checks if there is a valid route to the destination belonging to the current data session. In the case that there is not a valid route, the data packet is stored in the packet queue, sending a local route repair forward ant to solve the problem. At the same time, repairing the route is tried; the node sends a unicast message to all reachable neighbors. The neighbors, which receive this message, send it to its predecessors. Otherwise, that is, if there is a valid route, it is processed for sending. The first event that occurs when there is a node failure is that the node that perceives it updates its neighbor table, eliminating all routes that have the node that fails as a next hop. If there is not a route at the source node, the route setup is started, sending a reactive forward ant. If there is not a route at an intermediate node and a data packet was being forwarded when the failure occurred, a local route repair forward ant is sent to each of the destinations of all affected data sessions. If there is no route at the intermediate node and a control packet (Hello) was being sent in broadcast mode, no neutralization process is performed.