# A Family of ACO Routing Protocols for Mobile Ad Hoc Networks
## 7 Conclusions  
This work has addressed a fundamental aspect of so-called mobile ad hoc networks, the routing problem. First of all, we have specified a new ACO routing protocol for mobile ad hoc networks called AntOR. Like its predecessor AntHocNet, AntOR is hybrid in the sense that it contains both reactive and proactive routing elements. In particular, it combines a reactive process of route setup with a proactive process of the maintenance and exploration of new routes. Routing information is stored in pheromone tables that are similar to those utilized by other ACO routing algorithms. The forwarding of data and control packets is performed in a stochastic manner with the use of these tables. Link failures are treated with specific reactive mechanisms, such as the local route repair and the use of warning messages. The key aspects of the AntOR protocol are the use of disjoint node and disjoint link routes, the separation between the regular pheromone and the virtual pheromone in the diffusion process and the exploration of new routes, which takes into account the number of hops in the best routes. Then, we have specified a family of ACO routing protocols for mobile ad hoc networks; all of them derived from the AntOR protocol, presenting two variants: the disjoint link version (AntOR-DLR) and the disjoint node version (AntOR-DNR). The disjoint link version has originated a set of sequential protocols: AntOR-RDLR, AntOR-UDLR, AntOR-v2 and HACOR. All of these protocols are successive refinements from the original protocol. The disjoint node version has resulted in a set of parallel protocols: PAntOR and PAntOR-MI. In AntOR-DNR, the routes do not share nodes and in AntOR-DLR do not share links. By the disjoint property, a failure in one node only affects a path, not the entire network. In addition, load balancing is better (by not repeating routes). The routes' calculation in AntOR-DLR is easier (less restrictive) than AntOR-DNR since all disjoint nodes also comprise a disjoint link, but not vice versa. AntOR-RDLR differs from its predecessor (AntOR-DLR) in the pheromone update process and the route discovery mechanism, allowing the proactive forward ants to go by disjoint link routes until a maximum number of attempts has been made. The latter allows the generation of more alternative routes. The main idea of AntOR-UDLR is to replace link failure notification messages by unicast messages that are sent to the predecessor of the node that reports about the link failure until reaching the source of the data session, since in AntOR-DLR, this is sent in broadcast mode. The use of unicast messages causes losing fewer messages, because before transmitting, it is checked if the medium is available through which you want to send; the fact is that it does not happen when it is sent in broadcast mode. This new protocol aims to reduce network traffic, preventing the transmission of information from unnecessary nodes that do not need to process it. AntOR-v2 and HACOR are the two more evolved variants, providing new optimization techniques such as the storage of control packets and outdated routes management, as well as different failures link management and route exploration. The main difference between AntOR-v2 and HACOR is in the route exploration process and consists of the technique used. In AntOR-v2, proactive ants are sent to the one-hop neighbor with the best pheromone value. On the other hand, in HACOR, the proactive process focuses on the algorithmic implementation S-ACO, which constitutes the starting point of the functioning of the ACO algorithms. HACOR also presents new techniques of link failure neutralization. PAntOR is a large-grained parallelization version of AntOR making use of multiprocessor programming architectures based on a shared memory system through the standardization Posixtthread, which allows it to execute tasks in parallel using threads, this parallelization being applicable in the route setup phase, local route repair process and link failure notification.