2. Routing in MANETs
In MANETs, each node is responsible for packet forwarding on behalf of the source node, and it also initiates routing discovery mechanisms to discover its neighbors in the network, then find the best route to reach a destination node [
3]. When a new node joins the network, it announces itself by broadcasting a hello message to all neighbors and starts learning about the network [
4]. In addition, each node holds a routing table database to maintain a record of the current network nodes as well as the number of hops to reach each node inside the network [
5]. There are a multitude of routing protocols related to MANETs’ discovery and data forwarding. The three main categories for routing protocols in MANETs are as follows:
-
Proactive routing protocols: For example, OLSR, each node maintains its routing table by periodically updating its information [
6]; this increases network overhead. On the other hand, routes will always be available with a minimum delay. Proactive protocols provide better performance than reactive protocols as each node continuously updates its awareness of network changes. When a request is received, the packet forwarding procedure is directly handled.
-
Reactive routing protocols: For example, AODV and DSR, when a source node tries to perform a packet transmission, it initiates a route discovery mechanism to know how to reach the destination. After the route is determined and updated in the routing table, the packet is forwarded [
7]. Reactive protocols have minimal network overhead, but there is a delay time consumed in the route discovery.
-
Hybrid routing protocols: For example, ZRP, the close local neighbors to a node are periodically updated, and the global nodes that are not direct neighbors will be updated on demand such as in reactive routing protocols [
8].
Figure 2 shows a simple classification of the MANETs’ routing protocols.
Figure 2. MANETs’ routing protocols classification.
2.1. AODV Routing Protocol
AODV is a reactive routing protocol used for MANETs where mobile hosts provide a packet forwarding service acting as an intermediate node between source and destination. In AODV, each node acts as a router and their local routing tables are updated on demand when a request to forward a packet is received or the node is the packet originator [
9].
To maintain connectivity between a node and its neighbors, a discovery mechanism is used. AODV discovery mechanism is used to increase the response time for new requests. The route discovery mechanism is initiated by transmitting a RREQ packet to neighbors, asking them to search for the shortest path to the destination. This mechanism increases node awareness with the smallest number of hops needed to reach the destination node. When an intermediate node receives a RREQ, it rebroadcasts the RREQ to all neighbor nodes only in case it does not have a direct connectivity link with the destination node [
10].
When an intermediate node has a fresh route to the destination node and the RREQ conditions are fulfilled, the intermediate node sends a RREP in the backward direction to the source. During the forward and reverse path of RREQ and RREP packet forwarding, all intermediate nodes update their local routing table with the latest information contained in the forwarded packet [
11].
Each routing table entry contains the following information fields [
12]:
-
Destination node address;
-
Number of hop counts to reach the destination;
-
Intermediate nodes address;
-
Route entry expiry time;
-
Destination node sequence number.
When the source node receives the RREP packet, it can begin sending the data needed. If the source node is out of a MANET’s range during the active route request, it can initiate another route discovery request with a different request identification.
To ensure that connectivity is present between neighbors, each node periodically sends a hello message. A hello message is a type of RREP packet that is used to announce the node’s existence inside the network. If a node has not participated in any packet forwarding or has not sent a hello message for a specific period, the link toward this node will be considered broken. The broken node neighbors send RERR packets to their active neighbors in the network to invalidate any existing route that uses this broken node ‘as an intermediate node’ in data forwarding [
13]. The AODV routing protocol flow chart is illustrated in
Figure 3.
Figure 3. The AODV routing protocol flowchart.
A mobile node holds AODV configuration parameters with default values to control routing protocol operations. The main configuration parameters that affect the AODV protocol are as follows [
14]:
-
Network diameter: The network diameter value sets the maximum number of hop counts between two nodes in MANETs. The network diameter default value is up to thirty-five hops at most as per RFC 3561 standard.
-
Node transversal time: The node transversal time is the estimation of packet transversal time between two neighbor nodes; this estimation should consider the network, processing, and transfer delay time. The default configuration time is 40 ms.
-
Network transversal time: The network transversal time is the expected time between sending the RREQ packet and the reception of the RREP packet as per the equation [
14]:
A route maintenance mechanism is issued when the cached route to a destination is no longer valid. When a link to the destination node is broken, the source node can try using another cached route to this destination or it can initiate a route discovery mechanism to find new routes and update the cache. Figure 4 depicts the DSR routing protocol flowchart.
Figure 4. The DSR routing protocol flowchart.
When the destination node receives a RREQ, it examines the route back again to the source node, then it returns a RREP message that holds the accumulated record list back again to the initiator. If the examination of the reverse path to reach the source node fails, the destination node should broadcast a route discovery and then send the RREP message after updating the cached route. The DSR protocol contains a set of configuration parameters that could affect routing in MANETs as follows [22]:
-
Discovery hop limit: The discovery hop limit value is defined as the limit to the route request re-broadcast. If the first attempt of RREQ does not reach the destination node, the default value of the discovery hop limit is 255 hops, and the minimum value is one hop.
-
Broadcast jitter: The destination node should delay the RREP message by a random value that does not exceed the broadcast jitter’s maximum delay time. The broadcast jitter default value is ten milliseconds.
Different evaluation metrics are used to define the characteristics of the MANET performance under certain conditions. After researchers set up the simulation environment and define the parameters needed to control the MANET environment, the results of the simulation tool need to be evaluated. To analyze the network performance, some metrics are used as follows:
-
THPT: Throughput is the rate of successfully delivered packets that reached the receiver node per time slot [
43]. Throughput is affected by topology changes, noise on communication links, the power of transmission from the source node, and the existence of malicious nodes affecting the throughput ratio.
-
AETED: Average end-to-end delay is the average time taken to send a packet to the destination node [
44]. This delay is due to many reasons such as route discovery queuing and process latency, delays caused by wireless links, and processing delays at both the sender and the receiver sides.
-
Route cache timeout: The route cache timeout is associated with each route entry in the cache [23]. When the timeout is reached, this means that the related route is not used and needs to be deleted from the node’s cache. Route cache timeout default value is three hundred milliseconds.
-
PDR: Packet delivery ratio is the ratio of packets that are received by the destination across the overall transmitted packets from the source node [
45]. The packet delivery ratio represents the maximum throughput that can be achieved by the MANET network.
Send buffer timeout: When a packet cannot be transmitted to the next-hop node, this packet is queued inside a buffer to try sending it when possible. Send buffer timeout is the maximum time associated with a packet to be sent before being removed from the send buffer. The default value for send buffer timeout is 30 s.
-
Max request period: After a route discovery attempt fails to find a route to the destination node, the time between successive route discovery attempts doubles until the maximum request period is reached. The default value for the maximum request period time is 10 s.
-
Re-transmit buffer size: Re-transmit buffer holds the maximum number of packets waiting for the next-hop reachability confirmation. If the buffer is not sufficient to keep the new packet, this packet is discarded without notification. The re-transmit buffer size defines the buffer size with a default value of 50 packets.
-
Max maintenance re-transmission: The maximum number of re-transmissions for a packet waiting for a confirmation from the next hop should be limited by the configuration value of the max maintenance re-transmission parameter. The default value is only two transmissions.
3.0. Simulation in MANETs
MANET technology is rapidly changing, and new protocols and mechanisms are continuously proposed by researchers. Evaluating a network’s performance under different attacks is important to be able to propose protection mechanisms. Therefore, a cost-effective method that empowers researchers to set up and test MANETs plays a key role in research.
3.1. MANETs Simulators
Simulators are software tools used to create a virtual environment that supports researchers to set up and test a network’s performance under different conditions. Simulators are GUI-driven tools used to set up a network environment and then perform different attacks on the defined network or make comparisons between a standard routing protocol and a newly proposed protocol. Using the defined evaluation metrics, a simulator is also capable of collecting the network’s results and evaluating the overall performance [30].
There is another method for developers to define and test MANETs using testbeds. Testbeds are experimentation in-lab networks that researchers can set up using dedicated hardware sets for this purpose. Testbeds lack the flexibility to define a MANET network, as MANETs are dynamic networks where nodes continuously join and leave the network. Additionally, the cost is much higher than software simulations to define a MANET using testbeds.
To be able to select a suitable simulator, the researchers need to know the simulator’s key features [31]. Table 2 is a comparison between the widely used simulators in MANETs.
Table 2. Comparison between simulation tools in MANETs.
Simulator Name
|
Languages Supported
|
Platform Support
|
License
|
Advantages
|
Disadvantages
|
OPNET
|
C, C++
|
Windows, Sun Solaris, RedHat Linux
|
Commercial, Free Educational License
|
-User-friendly and easy to use.
-Provides additional supportive tools.
|
-Limited wireless mobility.
-Not open source and supported protocols are limited.
-Expensive.
-Lack of energy model.
|
OMNeT++
|
C++, NED
|
Windows, MacOS, and any Unix-like systems
|
Open source
|
-Used by a wide number of users.
-Extensive GUI interface.
-Intelligence support.
-Rich C++ libraries.
-Parallelly distributed simulation is supported.
|
-Documentation is poor.
-Performance measures are weak.
-Does not cover all protocols.
|
NS-2
|
C++, OTCL
|
Windows, MacOS, Ubuntu, Sun Solaris, Fedora Linux, and any Unix-like systems
|
Open source
|
-The most used simulator for research.
-Good with complex systems’ evaluation.
-Provides energy model.
-Supports wired and wireless networks.
|
-Documentation is poor.
-Simulation is not real-time.
-Lack of supporting tools.
-Not suitable for large systems.
-Difficult to use and poor GUI.
-High computational overhead and memory usage.
|
NS-3
|
C++, Python
|
MacOS, FreeBSD, Linux
|
Open source
|
-Very fast simulator where parallel simulation is supported with real-time scheduling.
-Supports emulation.
-Provides debugging traces.
-Organized source code with low-level abstraction.
-Good documentation.
|
-Lacks backward compatibility with NS-2.
-Virtualization support is limited.
-Difficult to use.
|
GloMoSim
|
C, PERSEC
|
Windows XP/7, FreeBSD, Sun Solaris, Fedora Linux
|
Free
|
-Scalable and can handle very large systems with thousands of nodes.
-Parallel simulation environment.
-Scalable simulation library.
|
-Documentation is poor.
-The simulator is outdated.
-Does not support end devices such as simulators.
|
QualNet and EXATA/cyber
|
JAVA
|
Windows NT/2000/XP/Professional, macOS, Sun Solaris, and most Unix-like systems
|
Commercial
|
-Provides animation tools.
-Scalable and can handle very large systems with thousands of nodes.
-Support wired and wireless networks.
- Realtime simulator
|
-Slow interfaces.
-Difficult to install.
-Expensive.
|
JIST/SWANS
|
JAVA, Tcl
|
Windows, macOS, Sun Solaris Linux
|
Commercial
|
-Powerful simulator and suitable for simulating real-world systems.
-Less memory usage.
|
-Features not competing with other simulators.
|
J-SIM
|
JAVA
|
Simulator Name
|
Languages Supported
|
Platform Support
|
License
|
Advantages
|
Disadvantages
|
OPNET
|
C, C++
|
Windows, Sun Solaris, RedHat Linux
|
Commercial, Free Educational License
|
-User-friendly and easy to use.
-Provides additional supportive tools.
|
-Limited wireless mobility.
-Not open source and supported protocols are limited.
-Expensive.
-Lack of energy model.
|
OMNeT++
|
C++, NED
|
Windows, MacOS, and any Unix-like systems
|
Open source
|
-Used by a wide number of users.
-Extensive GUI interface.
-Intelligence support.
-Rich C++ libraries.
-Parallelly distributed simulation is supported.
|
-Documentation is poor.
-Performance measures are weak.
|
-
Route request retry: If a route reply is not received by the source node within the maximum network transversal time, the source node can retry to request the route discovery again for a maximum route request retry times. If the route discovery exceeds the route request retry times, the destination node should be considered unreachable. The default value for the route request retry parameter is equal to 2 retries.
-
Blacklist timeout: When the RREP transmission from node A to node B fails, node A records node B in its blacklist buffer. During this blocking time, node A discards any RREQ from neighbor node B until the blacklist timeout is reached. After the blacklist timeout expires, node B is removed from the blacklist [
14].
Table 1 summarizes all AODV configuration parameters and their default values.
Table 1. AODV parameters’ default values.
Windows, Sun Solaris Linux |
|
|
-Supports wired and wireless networks. |
|
-Reusable models with good flexibility. |
|
| -Worst execution time. |
|
-Does not cover all protocols. |
|
NS-2
|
C++, OTCL
|
Windows, MacOS, Ubuntu, Sun Solaris, Fedora Linux, and any Unix-like systems
|
Open source
|
-The most used simulator for research.
-Good with complex systems’ evaluation.
-Provides energy model.
-Supports wired and wireless networks.
|
-Documentation is poor.
-Simulation is not real-time.
-Lack of supporting tools.
-Not suitable for large systems.
-Difficult to use and poor GUI.
-High computational overhead and memory usage.
|
NS-3
|
C++, Python
|
MacOS, FreeBSD, Linux
|
Open source |
|
2.2. DSR Routing Protocol
DSR is an efficient reactive routing protocol for MANETs. Each data packet contains a header that carries the IP address of all intermediate nodes between a source node and a destination node. The DSR header holds the sequence of hops to reach the destination [19].
In DSR, each node holds a cache memory to store the routing information needed for all MANET nodes; a source node can also cache multiple routes to the same destination. This mechanism allows the routing of data packets to be much more rapid in comparison to other MANETs’ routing protocols. There is no need for periodic packets in DSR to minimize network overhead [20]. The DSR protocol is divided into two mechanisms: route discovery and route maintenance [21].
The route discovery mechanism is initiated when a source node does not hold the needed routing information to reach the destination node. The source node broadcasts a RREQ message to all neighbors within the source’s wireless range to initiate a route discovery. The RREQ message contains the following information:
-
source node identifier;
-
destination node identifier;
-
route request identifier;
-
record listing the address of all intermediate nodes.
-Very fast simulator where parallel simulation is supported with real-time scheduling. |
-Provides debugging traces. |
|
-Organized source code with low-level abstraction. |
|
-Good documentation. |
|
| -Lacks backward compatibility with NS-2. |
| -Virtualization support is limited.
-Difficult to use.
|
GloMoSim
|
C, PERSEC
|
Windows XP/7, FreeBSD, Sun Solaris, Fedora Linux
|
Free
|
-Scalable and can handle very large systems with thousands of nodes.
-Parallel simulation environment.
-Scalable simulation library.
|
-Documentation is poor.
-The simulator is outdated.
-Does not support end devices such as simulators.
|
QualNet and EXATA/cyber
|
JAVA
|
Windows NT/2000/XP/Professional, macOS, Sun Solaris, and most Unix-like systems
|
Commercial
|
-Provides animation tools.
-Scalable and can handle very large systems with thousands of nodes.
-Support wired and wireless networks.
- Realtime simulator
|
-Slow interfaces.
-Difficult to install.
-Expensive. |
JIST/SWANS
|
JAVA, Tcl
|
Windows, macOS, Sun Solaris Linux
|
Commercial
|
-Powerful simulator and suitable for simulating real-world systems.
-Less memory usage.
|
-Features not competing with other simulators.
|
J-SIM
|
JAVA
|
Windows, Sun Solaris Linux
|
Open source
|
-Supports wired and wireless networks.
-Reusable models with good flexibility.
|
-Worst execution time.
|
3.2. Attacks on MANETs’ Routing Protocols
The MANET’s environment is dynamic, and nodes continuously join and leave. An attacker could easily take a critical location in the network to block data packets from being delivered to the destination node. Moreover, a malicious node might produce a high-power signal that covers a wide range of network nodes to introduce itself as the best routing path to forward the packet between the source node and the destination node [32]. This malicious node would then block the data packets from being forwarded to the destination node. Such malicious activity leads to increasing the loss of important data packets, and it is reducing the network’s overall throughput.
MANETs suffer from malicious activities where malicious nodes tend to impact the routing protocol mechanism. The direct impact of the attacks on routing protocols is to degrade the MANET’s performance. To disrupt the MANET routing protocol, attackers tend to use several techniques such as follows:
- Routing table overflow attack: In this attack, the attacking node tends to crowd the network by advertising several non-existing nodes to overflow the routing table [33]. This prevents legitimate nodes from being aware of network nodes and routing their packets normally.
- Flooding attack: In a flooding attack, malicious nodes tend to waste network resources such as memory, bandwidth, and battery by flooding the network with bogus packets [34]. For example, flooding RREQ packets prevents the MANET from functioning normally.
- DDoS attack: In a DDoS attack, attackers tend to keep the targeted legitimate node busy by continuously requesting RREQ messages from collaborative attackers at the same time without respecting the TTL time [35].
- False removal of working route: In this attack, the malicious node advertises a false state of the link with the destination node as if the link is broken. This enforces the source node to re-initiate route discovery protocol to find another path to reach the destination. Additionally, it slows down packet transmission. False removal of working route attack could be used with another collaborative attack to isolate the targeted legitimate node from MANET.
- Node isolation attack: Attackers isolate an innocent node by blocking routing information about this targeted node from the entire network [36]. This leads to an ignorance of the presence of this innocent node.
- Routing table poisoning: In this attack, the attacker sends false RREQ packets with a higher sequence number to force all nodes to delete the old genuine route to a destination and update this route with a corrupted one.
- Blackhole attack: The attacker tends to change the routing protocol packets to be the best route known for a targeted destination, and when it is requested to forward data packets to the destination node, it starts discarding the received packets to slow down the network performance [37].
- Grayhole attack: Grayhole attack is an instance of a blackhole attack where an attacker selectively drops some data packets and normally forwards others [38], or drops all packets but only at a certain time. This makes the attack difficult to detect.
- Wormhole attack: In a wormhole attack, two attacking nodes cooperate where one attacker at a specific location encapsulates some packets and tunnels them to the second attacker, bypassing all intermediate nodes to introduce itself as the fastest route to a destination and then drop the data packets later [39]. It can also be used to replay the received data packets in the other side of the network to disrupt the routing protocol.
- Rushing attack: In a rushing attack, the malicious node sends RREQ messages with high-power transmission to introduce itself as the shortest path to any destination with only one hop count [40], this manipulates all network nodes to use this routing path. The rushing attack is most likely used alongside another attack such as dropping the network packets that need forwarding.
4. Evaluation Metrics and Performance Analysis in MANETs
Figure 5 is a conclusion of the evaluation metric terms used in MANETs.
Figure 5. The different evaluation metrics used in MANETs.