1 Introduction

In Mobile Ad hoc Network (MANET), the wireless medium is shared by all nodes in a definite region. The pre-established fixed infrastructure or centralized administration is not required for functioning of ad-hoc network. There is a collection of nodes where each node performs like a router as well as a host. The routing decisions are made in a distributed manner at the node level. Predominant among the particular features of ad-hoc networks are the node mobility and a shared wireless channel. In wireless networks, there is fast increment of traffic load due to the development of mobile devices and wireless services. At the point when the input data rate of the node is more prominant than the output data rate, the packets are aggregated in the node buffer, which causes congestion [1]. Congestion largely happens due to the intricacy of network organization and associated traffic models, which are dynamic in nature and hard to anticipate. The scalability is the capacity of a routing protocol to perform productively when one or more intrinsic parameters of the system develop in esteem. The parameters that impact the scalability of the MANETs are the quantity of nodes, the mobility of nodes, terrain area, the rate of link establishment and number of simultaneous connections [2].

Congestion is a spatial phenomenon, occurring not only in a node, but includes area of the network also. When congestion occurs on the Internet, it is usually confined on one single router. In contrast, congestion influences an entire area in MANET on account of the shared medium. Congestion increases the packet drop rate, reduces the transmission quality and the throughput, and furthermore wastes the energy resources. The objective of this research is that the network topology is created in such a way that the congestion is avoided. An essential congestion control system has three vital stages: Congestion detection, which refers to the process of detecting the presence of congestion in network; Congestion notification, in which upstream or neighboring nodes are informed about congestion so that right measure is adopted; and congestion prevention, where congestion is averted [3].

In general, two main methodologies are used to mitigate congestion in mobile adhoc networks: Rate control and Resource control. In former technique, the traffic rate is adjusted to control congestion. However, this technique suffers from main limitation of bandwidth underutilization and low throughput. Further, communication rate depends on target application and it is desired not to modify it. In latter approach, the congestion free alternative paths are used for rerouting the data, when congestion occurs. The resources are balanced in the network in resource control method. But, considerable system overhead is generated in order to regularly maintain substitute routes. The abovementioned methods control network congestion, but at the cost of increased latency and lower throughput.

In [4], the metrics traffic load density and lifetime associated with a routing path are considered to decide the congestion status and identify the weakest node of the route. Each node updates information about the latest traffic load assessment at each of its neighbors in its neighborhood table. The nodes with lighter traffic load are used to establish the route and overloaded nodes are bypassed. A persistent aspect of this protocol is the need to regularly update information about the traffic load at nodes, which results in unnecessary delay and overhead.

A network model is constructed to detect the extent of congestion of nodes in [5]. Depending on node locations and service rate of packets, two parameters named link gradient and traffic radius are formulated. The allocation of path selection probabilities for each path is done based on link flow rates. However, in both methods, it is not necessary that everytime shortest path is considered for data transfer, so data transmission is affected.

The work in [6] uses congestion control scheme to address the limitations in existing multipath routing schemes. Each node on an active path monitors the congestion by checking its traffic load. When congestion is detected, the congestion information is updated in Hello message and is sent to its source node. The packet delivery rate over each path is adjusted by the source node according to congestion level. However, this method results in additional complexity at nodes.

The paper [7] proposes a method in which the average threshold level of congestion is estimated. A warning message is sent to all the neighbors for instant adjustment of packets forwarding. A congestion-free alternative path to the destination is located by neighbours. But, additional warning messages for congestion notification increases the traffic in network.

In paper [8], a load balanced approach is adopted which is based on the parameters minimum queue length, congestion-blocking probability and stochastic congestion probability. The limitation of this method is that more paths lead to high energy consumption by the network.

A novel technique is presented in [9] for judiciously shifting router load between network routers. This works by estimating the probability of occurrence of congestion in the network and reassigning load to reduce congestion. The information from cache management policies is used to lessen packet loss. This method suffers from increase in system overhead.

A dual queue system is established in [10] for both requests and data to recover the information about data transmission and network congestion over the network. The packet forwarding and caching strategies are determined derived from local information. In paper [11], routing scheme proactively computes alternate paths to avoid the congested region ahead of packets. Specifically, when the next to next-hop node along the shortest route to its destination is the center of the congestion, the packet is forwarded to its destination without visiting the node neighboring the congestion central node. This method tries to find the optimised route, but it results in additional delay or routing load.

In [12], the offered bandwidth at each link is estimated and then compared with the consumed bandwidth by the network. To resolve network congestion, method is proposed that permits source node to regulate its data sending rate whenever situation of congestion occurs. This traffic control technique suffers from bandwidth underutilization in case of low traffic.

The congestion risk level is measured in [13] by considering the network status and the buffer size of a node. I Additionally, a node is selected as a forwarding node according to both the congestion risk and service ability. In paper [14], an active queue management algorithm based on multiagent is designed to reduce transmission delay and improve the network throughput and fairness by considering the data transmission rate and queue length. But in this method, the queue size is sensitive to the level of traffic load.

All the limitations of existing congestion control methods discussed above are addressed and removed in this research. Along with the increasing demands for the applications of wireless ad-hoc network, energy consumption and congestion become two foremost problems that need to be resolved. However, in most research works, these problems are not considered concurrently. This research takes into account reduction in energy consumption by incorporation of congestion control scheme.

The remaining paper is organised as follows. The overview of the work is discussed in Sect. 2. The description of the proposed methodology is presented in Sect. 3. Section 4 summarises the simulation scenario and analysis of results. Finally, Sect. 5 concludes this work.

2 Overview

2.1 Network Coding

Network coding (NC) is a practice in which the data packets are not only forwarded at the intermediate node, but some input packets are encoded at a node into one output packet in order to obtain maximum information flow in the network. It accomplishes the cooperation between network nodes to perform congestion control [15]. In XOR-network coding, messages are XOR-ed together to generate coded message.

$$m_{c}^{xor} = \sum\limits_{i = 1}^{k} {m_{i} }$$
(1)

In network coding schemes, the encoded packet is obtained by a linear combination of some given packets and is transmitted. This approach is capable of reducing the amount of traffic [16]. Further, this algorithm minimizes the energy consumption and extends the lifetime of the network [17]. The performance of wireless network is improved significantly by using network coding and by utilizing the broadcast nature of the wireless medium. As a result, the capacity of the network is enhanced and throughput is improved [18].

In paper [17], a network coding based energy efficient algorithm in wireless sensor networks is addressed. The nodes are allowed to control their traffic according to the network connectivity by using the benefit of network coding. The competing algorithm aims to decrease the number of times a packet is retransmitted and energy consumed by a node in processing.

The performance of multicast is improved by using by network coding in [19], which minimizes the total transmission cost, depending on successful delivery and link transmission limitation.

In paper [20], an optimization model is formulated in which channel assignment, rate selection, and flow allocation problems are considered. This is used to maximize the network coding gain for a wireless network supporting multiple bit rates and channels.

A multicast routing protocol is proposed in [21] that employs network coding and constructs multiple multicast trees. The proposed protocol provides required bandwidth to a requested flow and ongoing flows and reduces the total bandwidth consumption. As a consequence of employing network coding, the redundant packet is not generated.

Multicast scheduling protocols with network coding is designed in cognitive radio networks [22], in which network coding is largely employed to reduce overhead and achieve error control. A multicast routing protocol using network coding is proposed in [23] for MANETs, which can satisfy bandwidth requirements and reduce the total bandwidth consumption of the requested flow by taking advantage of network coding.

Network coding has advantages like enhancing network robustness [17], better throughput [18], and ensure security by reducing network attacks [24]. Network coding has applications in many areas such as Ad Hoc Network [20, 21], D2D network [25], wireless sensor network [17], and vehicular network [26]. However network coding increases overhead, computational complexity and energy consumption at the nodes. Consequently, an algorithm which provides the optimum performance with minimum overhead and computational complexity should be designed. The contribution of this research paper is discussed below:

  • In this research, XOR-based adaptive NC scheme is considered with an objective of reducing the number of transmissions and these reduced transmissions results in energy savings as well as alleviate congestion in the network. The decoding process is simpler due to XOR coding, so reduces computational complexity.

  • This research is first attempt to develop energy efficient adaptive method to control congestion in mobile ad-hoc network by using adaptive network coding and local route assistance at nodes. A solution is proposed where XOR coding is performed by high congested nodes to lessen the number of transmitted packets and minimize congestion in the output queue of node and also increases packet drain rate at the node. The medium congested nodes are also dealt with by accepting assistance from less congested nodes in neighbourhood.

  • The congestion control method is accomplished in three steps, first congestion detection, which is notified by the congested node to the neighbouring nodes without using additional control packets, so that control action is taken. The work in this paper is further extended to implement a revival mechanism in MANET depending on the congestion level of nodes. This work attempts to reduce the frequent loss of data packets due to the congestion in network.

  • In previous works, the congestion status of the node is informed by the congested node itself by sending special control packets or by updating information regarding congestion in control packets. Extra bits or extra packets are used for congestion notification which increases overhead due to increase in size or quantity of control packets and further increases the output queue size and traffic. Whereas in this research, no special control packets are used but existing Hello packets are only used for notification of congestion.

  • The modification is incorporated in reactive routing protocol AODV. The frequency of Hello message (renamed as Congestion Status Packet CSP) transmission is not fixed but it is varied according to the congestion status of the node. In previous works, the transmission of Hello message is decreased to limit control traffic for alleviating congestion in network, though in this research the frequency of Hello message increments with congestion. This is on the grounds that; it is required to have regular connectivity information with the congested node, only then it will be supplanted by non congested node, well in time, as it ceases to exist anytime and causes route failure.

2.2 Problem Identification

  • The practice of consistent data transmission between the source and destination nodes is an inexplicable problem in MANETs as they lack centralized control for communication [27]. The majority of reliable data transmission techniques implemented for ad-hoc networks relies on the belief of the shortest path, but this causes maximum levels of congestion due to excess numbers of packets in the networks [28].

  • The mobility of nodes results in the state of congestion that leads to frequent route failure and data flow discontinuity. This results in frequent retransmission of data packets in the network. Delay is incurred as a result of repeated retransmission of packets and routing overhead and congestion significantly increases due to increase in the number of control packets [29].

From the study of existing works, we deduce that the research for resolving congestion in medium congested nodes is rarely handled. All the congested nodes are treated equally for minimising the loss due to congestion. It is observed that the extent of degradation of network performance caused by medium and high congested nodes is different, thus they should be treated in a different manner. There should not be unnecessary wastage of resources and processing at the node to resolve medium congestion, but at the same time the network should respond to medium congestion to resolve it well in time. In this work, network coding is done on high congested nodes and local route assistance is provided for medium congested nodes. Thus the medium congested nodes are resolved before they become highly congested and affect the network performance severely. Further, no additional control packets are employed, thus congestion due to additional traffic is considerably reduced. The system performance is enhanced as congestion, data access latency and energy consumption of nodes is minimized.

3 Proposed Methodology

In proposed protocol, the path is built up in a system amongst source and destination nodes by utilizing Ad hoc on Demand Distance Vector routing protocol (AODV). AODV is a reactive routing protocol in which path discovery is on request, by utilizing RREQ and RREP control packets. The number of broadcasts is reduced by initiating route discovery process only, when required as opposed to proactive routing protocols. In proposed method, each active node periodically checks its congestion status using proposed congestion detection method which is discussed as follows.

3.1 Congestion Detection

For established routes, the congestion level of the mobile node is dictated by utilizing the proposed congestion identification method. The congestion level of the node is determined based on the parameters—node queue length, residual node energy and channel utilization ratio. The effect of node queue length, node energy consumption and channel utilization ratio on network congestion is discussed below:

3.1.1 Effect of Node Queue Length

Nodes or switches have queues to store approaching packets briefly. The condition of contention at a node is communicated by the queue length at the node. The queue length of a node or a router demonstrates the quantity of packets in the queue, which can be utilized as a crucial congestion metric to investigate the system implementation. More packets are collected in the interface queue with larger traffic, subsequently increasing the congestion and results in packet drop. The retransmission of these lost packets would build the traffic and aggravate the condition in the system. Thus the quantity of incoming packets at node should not exceed the node queue length.

3.1.2 Effect of Residual Node Energy

The energy required by a node to transmit a packet (Etx) [30] is computed as

$$E_{tx} = \frac{{P_{tx} *S}}{BW}$$
(2)

where S is the packet size, Ptx is the transmitting power of one packet and BW is the bandwidth of the link.

Each node contains battery with restricted power, and it is essential to save energy for batteries for the purpose of node survival and network maintenance. As the energy of the node gets drained, the node expires and the link between two nodes is disrupted. This causes packet drop and further enhances the system congestion. Substantial traffic load prompts severe congestion and high energy utilization at node, which causes fast energy exhaustion at nodes. In this manner the remaining or residual node energy is diminished. The residual energy characterizes the remaining energy accessible in every node after the transmission. The energy devoured by the node (ETot) is processed as follows

$$E_{Tot} = N_{tx} *E_{tx} + N_{rd} *E_{rd} + \Delta E_{sleep} + \Delta E_{proc}$$
(3)

where Ntx = Number of data packets sent by the node amid time t, Nrd = Number of data packets received by the node amid time t, Etx and Erd is the energy required by a node to transmit and receive one packet. Esleep is the energy required by a node in sleep mode during time t and Eproc is energy consumed by a node for packet processing during time t. A node is said to be in sleep mode when it switches off its network interface and is inactive. Its CPU does no processing and the node has no capability to send/receive messages. The energy consumption in sleep mode and during packet processing is very less as compared to transmit and receive mode.

If Ei indicates the initial energy of a node, the remaining energy Er of a node is computed as:

$$E_{r} = \, E_{i} {-} \, E_{Tot}$$
(4)

3.1.3 Effect of Channel Utilization Ratio

When data is transmitted by a node in network, the interference is caused to all nodes located within its coverage which surely impacts traffic flow. Along these lines, congestion happens because of its own traffic as well as neighboring routers traffic load. Channel utilization ratio is defined as the fraction of time amid which a node is detecting the channel as being used. When incoming and outgoing queues at the node are occupied, channel utilization around the node probably increases. The congestion is noticed when predefined limit of channel utilization is exceeded. Channel utilization ratio is the proportion of time intervals when the channel is occupied (effective transmission or collision) to the total time. It is a measure of link level congestion in the network.

$$Channel{\kern 1pt} \;Utilization\;Ratio = \frac{Channel\;busy\;time}{Sampling\;Interval}$$
(5)

The next step after congestion detection is congestion notification which is essential so that nodes take measures for congestion control. The proposed method of congestion notification is discussed in next section.

3.2 Congestion Notification and Modification in AODV Protocol

In AODV, every node transmits Hello packets periodically to declare its presence to its neighbors. In modified protocol, periodic transmission of Hello control packet is not utilized. The change in existing routing protocol AODV is that the Hello packet is renamed as Congestion Status Packet (CSP) and is utilized for congestion notification. The format of packet is changed and the recurrence of the CSP is decided according to the congestion status of the node. The CSP is communicated to neighboring nodes after an interval called CSP interval. Higher is the congestion at the node, more will be the frequency of CSP transmitted by the node to the neighboring nodes and less is the CSP interval. CSP interval is decreased in proportion to the congestion state.

The CSP packet assists in providing local route assistance without any additional traffic. In previous works, the transmission of Hello message is decreased to limit control traffic for alleviating congestion in network, though in this research the frequency of Hello message increments with congestion. This is on the grounds that; it is required to have regular connectivity information with the congested node, only then it is supplanted by non congested node, well in time, as it ceases to exist anytime and causes route failure. The CSP packets are utilized for congestion notification to neighboring nodes. The node assesses the congestion status of neighboring node by observing the frequency of CSP. No extra packets are transmitted for congestion notification, so additional traffic because of control packets is avoided.

The congestion status of the active node in established path is evaluated based on the above mentioned parameters using fuzzy logic controller. The fuzzy rules consider node queue length, node energy consumption and channel utilization ratio as input variables and CSP interval as an output variable. The congestion status of node is categorised as low, medium and high depending on CSP interval as per the fuzzy rules given in Table 1. The selected ranges for L, M and H for all parameters are specified in Table 2.

Table 1 Rule table for CSP interval
Table 2 Range table for calculation of CSP interval

Some of the rules are discussed below:

  • When the node traverses the threshold of channel utilization, average queue length and energy consumption at node, then that node becomes congested. There is increased packet drop at node. To have regular connectivity with the node, the CSP interval should be low.

  • When channel utilization, average queue length and energy consumption at node is low, the node is least congested. The node will continue forwarding the packet without dropping the packet. Thus the CSP interval of the node is high as there are less chances of disruption of route.

  • When channel utilization is low, but energy consumption and average queue length is high, the node is congested due to high traffic at node. Thus the CSP interval is low to notify high congestion at node. Similarly, when any two of the congestion metrics are high, the CSP interval is low as there is high congestion at node and regular connectivity with congested node need to be maintained through CSP packet.

After congestion notification, the congestion control method is proposed to alleviate congestion and is discussed in next section.

3.3 Congestion Control

The three conditions according to congestion status of the node are discussed below:

  • When the frequency of CSP packets is low i.e. CSP interval is high and the congestion is low. Already established path is used to transfer the data. There is a normal operation.

  • When the congestion is high or CSP interval is low, the performance is enhanced by XOR coding of data packets coming to at congested node from different sources as shown in Fig. 1. Since congestion is a neighbourhood phenomenon, the nodes encompassing the congested links, i.e. nodes which are at one hop distance from the congested node also perform XOR coding of data packets. This newly created ‘inter flow coded’ packet with additional appropriate identification is transmitted. The header in encoded packet is modified to incorporate two new fields:

    Fig. 1
    figure 1

    Exchange of packets using network coding

  • Encoded field: It identifies if the packet is encoded or not. It will have two values, either set or reset.

  • Pkt ids: It stores the packet ids of encoded components.

All packets are buffered at node before being conveyed. When two nodes receive a coded packet, another XOR operation is performed with the buffered packets by both recepients to decode the original packets. A single transmission is needed by a congested node, instead of two, providing the most productive approach to lessen link contention. Consider the scenario in Fig. 1 where nodes A and B exchange packets through node C which is congested. Nodes A and B forward their individual packets to the router C, which performs XOR-ing of the two packets and broadcasts the coded packet. A and B XOR the received coded packet with their own particular packet and obtain each other’s packet. The network coding is performed in same manner at nodes A and B also, which are at one hop distance from C. The deciphering process is simple and incurs less computational complexity. Assume that one message per unit of time is capacity of all links. If received messages are only forwarded by routers, the relay node C will be congested, which either delivers P1 to B or P2 to A for every time unit. Thus messages P1 and P2 are delivered at their destinations B and A respectively in two time units. In contrast, if the relay node C combines the two messages and sends P1 ⊕ P2; both receivers obtain respective messages in one time unit. By sending the XOR of P1and P2, two messages per unit of time are delivered to respective receivers. Thus, network coding reduces traffic and increases number of received packets per unit time. This also reduces delay of received packets.

When the congestion and CSP interval is medium, the neighbouring non congested node for providing alternate congestion free route to the destination is identified. The data is being routed using the path A → X→B as shown in Fig. 2. Nodes A, X and B are active nodes and form active route and node X is congested. The IP address of active nodes is broadcasted through Hello message (CSP). The inactive neighbour nodes i.e. C and D also receive CSP and make IP address entry of neighbouring active nodes in its routing table. The last bit in congestion assistance bit is set in CSP transmitted by X as it needs to be repaired. The format of CSP packet is shown in Fig. 3. The CSP packet transmitted by X contains IP address of active predecessor and successor nodes of X i.e. A and B respectively. Nodes C and D which are not congested, recognize nodes A and B as their neighbour nodes. Nodes C and D inform the nodes A, X and B through CSP packets for their availability as a node in alternate path by setting second bit from last in congestion assistance bit. The node from which CSP with congestion assistance bit set is heard first is selected as a node for assistance. Node A updates successor node IP address and node B updates predecessor node IP address in their routing table. Now the old route is switched to a substitute route using non congested node. The route is searched locally using neighboring nodes of congested nodes before condition of severe congestion. This avoids the congested path and subsequently packet drop is reduced. Route is repaired without any additional control traffic and the data is routed on an alternate path and the network performance is improved.

Fig. 2
figure 2

Transmission of CSP packets for local route assistance

Fig. 3
figure 3

Format of CSP packet

figure c

Two diverse variants of congestion control protocols are developed using the above algorithm depending on the congestion level of the nodes as given below:

  1. (1)

    CONGESTION CONTROL THROUGH ADAPTIVE NETWORK CODING (ANC) PROTOCOL:

This protocol works for highly congested nodes. When high congestion is detected at node, network coding of data packets coming from different sources is performed at congested node and the nodes surrounding the congested link. All nodes in the network are not involved which reduces unnecessary computational complexity and energy consumption at nodes. Thus, network coding of congested and surrounding nodes is performed in an adaptive manner depending on the congestion status.

  1. (2)

    CONGESTION CONTROL WITH NETWORK CODING AND LOCAL ROUTE ASSISTANCE (NCLR) PROTOCOL:

This protocol works for both medium and high congested nodes. The high congested nodes and its 1-hop neighbor nodes perform XOR coding of data packets; though medium congested nodes are supplanted by neighboring non-congested nodes in the path without any additional control packet transmission. Thus congestion is controlled by employing network coding along with local route assistance using non congested nodes. In this manner the congested path is avoided and reliable communication is provided.

The congested links are prone to disconnections; therefore the congestion is resolved well in time in both the proposed variants before it causes serious damage to network performance.

4 Results and Analysis

4.1 Simulation Environment

The performance of implemented variants ANC and NCLR is evaluated and investigated in networks of growing size from 50 nodes to 175 nodes with fixed node speed and varying number of connections between source and destination from 10 to 35. Scalability of these protocols is analysed by changing the number of nodes in two ways.

  • Field size is varied and links are kept constant,

  • Field size is varied and number of links is increased to increase traffic load in the network.

Simulations are conducted on the Network simulator NS2 and simulation model is built for performance evaluation. Performance of proposed protocols is compared with AODV protocol. The results for various performance parameters such as routing overhead, normalized routing load, number of congested nodes, end to end delay, packet delivery ratio, dropped packets, energy consumed and residual energy are plotted and compared. The simulation parameters taken in simulation scenario are summarized in Table 3. The variable parameters, terrain area with varying nodes and links are briefed in Table 4.

Table 3 Simulation parameters
Table 4 Terrain area with varying nodes and links

Distributed Coordination Function (DCF) is based on carrier sense multiple access with collision avoidance mechanism and is implemented in ad-hoc networks. This mechanism follows Request to Send and Clear to Send packets to establish connection between source and destination. IEEE 802.11 avoids collisions by allowing multiple users to gain access to shared wireless channel one after another. The MAC layer operation is identical to IEEE 802.11.

4.2 Simulation Results

The performance comparison investigation of basic AODV and proposed congestion control methods ANC and NCLR is investigated for change in traffic. In this section, the performance has been analyzed for change in the number of the nodes and links in a varying terrain area on proposed variants.

4.2.1 Routing Overhead

The number of routing or control packets transmitted by nodes in network in a given simulation time is called Routing overhead. The path length increases with increase in simulation area and number of nodes. Routes are prone to disconnections in mobile networks if data packets travel through multiple hop routes in larger terrain area. The packets being delivered to their destination degrades with the increase in network size.

Nodes move around in larger area and there is high possibility of link breakage between two nodes as they can possibly move out of each other’s communication range. There are more source nodes transmitting packets as nodes are increased. In Ist case, with increase in the number of links and terrain area, more packets are disseminated in network. The active nodes become congested due to increase in traffic. The nodes become depleted of energy and the link breakage increases. There is rise in the number of control packets transmitted in network due to route re-establishment. Subsequently, the routing overhead increases with increase in links. Traffic is maximum in AODV which causes congestion at nodes and as a result, link breakage occurs. Thus control traffic and routing overhead increases. It is observed that ANC and NCLR perform better as there is less congestion and less number of data packets is dropped. In NCLR method, the propagation of CSP packets for congestion assistance increases routing overhead as compared to ANC. Thus, the routing overhead is highest for AODV and least for ANC, as demonstrated in Fig. 4a.

Fig. 4
figure 4

Routing overhead analysis a variation with CBR links, b variation with terrain area

Whereas in 2nd case, the links are kept constant whereas terrain area and number of nodes are increased. The mobility of nodes is in larger area so there is more possibility of route disruption. With increase in number of nodes, the traffic is more as there are more sources transmitting packets. In basic AODV, data and control packets increases with increase in nodes, this makes network likely to be congested. The possibility of route failure increases and the control traffic increases due to re-establishment of route. Thus routing overhead increases with spread in terrain area. For increased terrain area and number of nodes, the difference in traffic for AODV and proposed variants is not prominant because links are kept constant and more nodes are available for providing alternate routes. The routing packets are increased in NCLR method as compared to ANC due to propagation of CSP packets for congestion assistance, as shown in Fig. 4b.

4.2.2 Packet Delivery Ratio (PDR)

This metric determines the ratio of number of data packets delivered at the destination node to number of data packets sent by the sender. For each of the scenarios considered, PDR of ANC and NCLR protocols is significantly better than that of AODV with change in terrain area and number of nodes as congestion is controlled and less number of data packets are dropped. The route failure due to depletion of node enegy also reduces, thus prevents loss of data packets. The number of data packets successfully received per unit time increases due to XOR coding of packets. Consequently, larger number of data packets is successfully received at destination node and PDR shows higher value in proposed methods as shown in Fig. 5a. Both of the modified protocols show better results with rise in terrain area and links as shown in Fig. 5b. The packet delivery fraction is more in NCLR as network responds to medium and high congestion simultaneously, as compared to ANC method. The medium congested nodes are treated before they become highly congested.

Fig. 5
figure 5

Packet delivery ratio analysis a variation with CBR links, b variation with terrain area

4.2.3 End to End Delay

As terrain area and number of nodes increases, the probable chances of availability of alternate routes are more, thus results in reduction in delay. At the same time, the path length as well as traffic increases which enhances delay. Thus the variation in end to end delay is oscillatory. Traffic as well as queue length increases with expansion in the number of links for all the protocols. The congestion control techniques have comparatively shorter delays as congestion is controlled efficiently and route become accessible in short period of time. AODV protocol has longer end-to end delays due to frequent route failure and longer route reestablishment latency as shown in Fig. 6a. In case of constant links, congestion is high when 20 links are taken in a scenario of size 500*500 m2 with 50 nodes. The congestion is controlled in proposed methods, whereas there is large packet drops due to congestion in AODV. Thus packets are retransmitted and there is high delay in reception of packets as shown in Fig. 6b. As terrain area and number of nodes are increased without changing links, there are possible chances of routes available, so variation in delay takes place. The delay is high in network coding at some instance as it introduces extra decoding delay.

Fig. 6
figure 6

End to end delay analysis a variation with CBR links, b variation with terrain area

4.2.4 Normalized Routing Load

Normalized Routing Load is given as the ratio of amount of routing packets that are transmitted to number of data packets received at the destination. When terrain area, number of nodes and links increases, there is rise in normalized routing load (NRL). This is because the traffic increases and more packets are disseminated in network. The active nodes become congested and the possibility of route failure increases. There is decline in NRL in AODV in some network conditions as routes are also formed due to movement of nodes towards each other. In proposed variants, the congested nodes are resolved by using network coding and route assistance by less congested nodes in neighborhood. The possibility of route disruption decreases and as a result, NRL is less in proposed variants as compared to AODV as shown in Fig. 7a. NRL in AODV is much higher than ANC and NCLR in 2nd case wnen 20 links are kept constant in smaller terrain area of 500*500 m2 as shown in Fig. 7b. This is due to high congestion in AODV as congestion control method is not employed for controlling large traffic in smaller network area. At higher terrain area, the number of received packets at destination node is much less in AODV as compared to ANC and NCLR. Thus NRL is highest in AODV.

Fig. 7
figure 7

Normalised routing load analysis a variation with CBR links, b variation with terrain area

4.2.5 Dropped Packets

Link failure occurs during transmission of data as a consequence of congestion and energy depletion of nodes. Traffic increases with increase in the number of nodes and links and as a result, packet drop increases for all the cases, but this is greatest for AODV and least for NCLR.

In AODV, dropping of packets is maximum whereas in ANC and NCLR, congestion is less which leads to reduced link breakage and packet loss as shown in Fig. 8a, b.

Fig. 8
figure 8

Dropped packets analysis a, b variation with CBR links, c, d variation with terrain area

In case of constant links with 20 links for 50 and 75 nodes, the congestion is more, thus more packets are dropped in AODV as compared to ANC and NCLR, shown in Fig. 8b. Thereafter, the packet drop reduces in AODV as links are constant for increasing terrain area and nodes. This is because the congestion is reduced as more nodes are available in larger area. However, the number of dropped packets is less in method NCLR as compared to other proposed variant ANC in both the cases as shown in Fig. 8c, d. As the link is repaired locally in NCLR, the quantity of data packets that are successfully received at the destination increases and data packets are not dropped.

Since the congestion improves in proposed work, the number of congested nodes is less in proposed research work as compared to AODV as shown in Fig. 9a, b. ANC and NCLR give more stable connectivity between transmitter and receiver, so number of congested nodes is least in NCLR and maximum in AODV.

Fig. 9
figure 9

Number of Congested nodes analysis a variation with CBR links, b variation with terrain area

4.2.6 Energy Consumption and Residual Energy

When number of nodes grows in network, load is disseminated among all the nodes. So fewer load is available at the nodes. Thus less transmission and reception of packets and obviously less processing is done by a node. Therefore residual energy increases with number of nodes. On the contrary, due to increased traffic, more data and control packets are transmitted by nodes, so nodes consume high energy. Thus there is variation in the amount of energy consumption and residual energy. Consider case when links are varying with terrain area, when there are only 10 links, less traffic of data packets and less congestion is observed. There is no need of congestion control for less traffic. So, there is unnecessary consumption of energy in congestion detection process. Thus ANC method shows slightly higher energy consumption than AODV. As number of links goes on increasing, there is more traffic and more data loss due to congestion. This aggravates energy consumption of node, if congestion control is not employed. Thus at higher links, AODV will show maximum energy consumption and least residual energy as shown in Figs. 10a and 11a. There is increased traffic and congestion in basic AODV, thus nodes incur high consumption of energy. Thus residual energy is minimum in this case. When nodes perform network coding, the energy is consumed by the nodes but it is less in comparison with AODV. This is because of less route failure and less packet drops. The need for transmission of control packets for route establishment and retransmission of lost packets is low. Thus energy consumption is less and residual energy is high in proposed variants as shown in Figs. 10b and 11b.

Fig. 10
figure 10

Energy consumption analysis a variation with CBR links, b variation with terrain area

Fig. 11
figure 11

Residual energy analysis a variation with CBR links, b variation with terrain area

  • It is shown from graphs that for varying links, the difference in energy consumption of AODV and proposed variants is more than that of constant links, however, number of nodes and simulation area increases in both the cases. As number of links remains constant there are more nodes available for route establishment in larger area, so extent of congestion is less. Thus, there is not much difference in the amount of energy consumption in AODV and other proposed variants.

  • In case of constant links in Figs. 10b and 11b, for example, 20 links for terrain area 500*500 m2 and 50 nodes, the data loss is high due to congestion in AODV. Thus more energy is consumed in retransmission of data packets. Thus difference in energy consumption and residual energy between AODV and proposed variants is higher in comparison with less number of links in same terrain area.

It is observed that proposed variants demonstrated enhanced performance than AODV for increase in traffic and terrain area. Further, NCLR performs efficiently than ANC for the objective of controlling congestion and packet drop.

5 Conclusion

This paper introduces congestion control method based on network coding and local congested link repairing scheme in accordance with congestion status of a node. This paper proposes an adaptive congestion control scheme which works both for medium and high congested nodes, in order to make up the deficiency of the existing congestion aware routing protocols. The modifications are made to AODV protocol and ANC and NCLR are variants of the proposed work. The ANC protocol implements network coding for high congested nodes to cut down the quantity of transmissions among nodes, with low overhead and latency. The NCLR protocol works for both medium and high congested nodes. The XOR coding of data packets is performed at high congested nodes, whereas medium congested node are replaced by neighboring non-congested node in the path with minimal overhead. NCLR performs efficiently than ANC for the objective of controlling congestion and packet drop. When only high congested nodes are treated by using network coding, there is reduced overhead, delay and energy consumption but congested nodes are more. When both high and medium congested nodes are treated by network coding with local route assistance, there are less congested nodes. Thus the number of dropped packets is less and packet delivery ratio is high.

The performance of these algorithms is investigated and comparison is done with basic AODV to investigate impact of traffic on the protocols. The impact of change in traffic is tested by varying network size and number of nodes, keeping links constant and further by increasing the traffic load by increasing links in the network.

It is observed that there is remarkable reduction in NRL and packet drops due to congestion control in proposed variants. Simulation results demonstrate that routing overhead, NRL, end-to-end delay, number of dropped packets, PDR and energy consumption performances of ANC and NCLR are enhanced than those of AODV, even when there is increase in traffic and terrain region.