Subscribe Now Subscribe Today
Research Article
 

Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network



Sanjeev Sharma, R.C. Jain and Sarita S. Bhadauria
 
Facebook Twitter Digg Reddit Linkedin StumbleUpon E-mail
ABSTRACT

Many congestion issues were raised with the incremental deployment of ad hoc networks. This gives congestion adaptive routing mechanism applied to reactive ad hoc routing protocol, denoted congestion adaptive Ad Hoc on demand distance vector routing protocol. The aim of this mechanism is to minimize the congestion issues of ad hoc routing. The main characteristics of the mechanism are its support of finding alternate route, in case of congestion on the primary route, on the basis of status of the buffer size of the neighbor and status of the buffer size of the next node on the primary route. It diverts the incoming packets if the number of packets being queued at the interface queue of a node is more then 80% of its buffer size. Congestion adaptive ad hoc on demand distance vector routing protocol takes, as a baseline some current protocols likes CRP and BR-AODV, trying to gather their benefits so as to minimize congestion in AODV. In summary, this mechanism is able to curtail congestion problems through parameters like buffer size and based on this the probability with which the node sends data to the next node. This study presents the evaluation study of congestion adaptive ad hoc on demand distance vector routing protocol for mobile Ad Hoc network (MANET).

Services
Related Articles in ASCI
Search in Google Scholar
View Citation
Report Citation

 
  How to cite this article:

Sanjeev Sharma, R.C. Jain and Sarita S. Bhadauria , 2006. Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network. Trends in Applied Sciences Research, 1: 368-378.

DOI: 10.3923/tasr.2006.368.378

URL: https://scialert.net/abstract/?doi=tasr.2006.368.378

Introduction

Today modern civilization is bestowed with enormous advancement of information technology and mobile communication. Internet technology has added much ease and speed in all spheres of our life, from office job to personal entertainment, emergency services like ambulance, natural disaster, military and police, Besides these applications it is expected in the near future that ad hoc networking will be more intensively used for different applications such as: Digital battlefield communications, movable base-stations (for military applications), range extension for cellular telephone. Recently mobile computing has enjoyed a tremendous improvement and enhancement. Excellent rise of processing power and computing power of mobile devices deserves the credit of such proliferation.

Mobile ad hoc network users share resources, applications and information quickly and without the need or possibility of any centralised infrastructure. Applications of ad hoc networks include the emergency services and military sectors. Mobile ad hoc networks come together to form a network without any centralised control. Because of the limited transmission range of wireless devices, data hops across the network from source to destination, makes use of intermediate nodes. Ad hoc network nodes accept responsibility for managing the network and routing of data. Routing of data, the most intensive task, is performed in a distributed manner. To send data to a destination who is not an immediate neighbor, a node must first find a route to that destination. Intermediate nodes co-operate to forward packets from the source to the destination.

AODV
The Ad Hoc On-Demand Distance Vector (AODV) routing protocol enables multi-hop routing between participating mobile nodes wishing to establish and maintain an ad-hoc network. AODV is based upon the distance vector algorithm. The difference is that AODV is reactive, as opposed to proactive protocols like DV, i.e., AODV only requests a route when needed and does not require nodes to maintain routes to destinations that are not actively used in communications. As long as the endpoints of a communication connection have valid routes to each other, AODV does not play any role.

Features of this protocol include loop freedom and that link breakages cause immediate notifications to be sent to the affected set of nodes, but only that set. Additionally, AODV has support for multicast routing and avoids the Bellman Ford counting to infinity problem. The use of destination sequence numbers guarantees that a route is fresh.

The algorithm uses different messages to discover and maintain links. Whenever a node wants to try and find a route to another node, it broadcasts a Route Request (RREQ) to all its neighbors. The RREQ propagates through the network until it reaches the destination or a node with a fresh enough route to the destination. Then the route is made available by unicasting a RREP back to the source.

The algorithm uses hello messages (a special RREP) that are broadcasted periodically to the immediate neighbors. These hello messages are local advertisements for the continued presence of the node and neighbors using routes through the broadcasting node will continue to mark the routes as valid. If hello messages stop coming from a particular node, the neighbor can assume that the node has moved away and mark that link to the node as broken and notify the affected set of nodes by sending a link failure notification (a special RREP) to that set of nodes.

The problem with AODV is that its capabilities are not used efficiently due to the presence of congestion. If there is congestion in the network the performance of this protocol degrades due to the non availability of another route towards the destination, which leads to more packet drops. Thus the performance of protocol affected.

Previous Works
Although the research on congestion analysis have been covered quite thoroughly in wired networks, research on congestion for wireless networks is still in the early age and there is always a need of new techniques for new technologies and methodologies. There are some proposed By Pass-routing protocols for MANET. However, these distribute traffic on one connection at a time for each source-destination pair. In other words, traffic is not diversified into multiple routes at the same time but focused on primary route. When this route is broken, other alternate routes are used for transmission. The D-LAOR (Song et al., 2004) delay based load aware on demand routing determines the optimal path based on the estimated total path delay and the hop count. D-LAOR also has a mechanism in new route selection to avoid a congested node by selectively dropping the route request (RREQ) packets. In Barry et al. (2004) initially congestion is handled locally and packets are re-routed using an appropriate non-congested route. In the event that this does not resolve the issue, congestion is dealt with by preventing source nodes from adding packets to the network by using routes which they know to contain congested nodes. Congestion management attempts to predict when congestion is about to occur and reduces the transmission rate at this time. Jacquer and Viennot (2004) proposes a probabilistic model for the network topology and the data traffic is proposed in order to estimate overhead due to control packets of routing protocols. In Dynamic Load-Aware Routing (DLAR) protocol (Lee and Gerla, 2000a) that considers intermediate node routing loads as the primary route selection metric. The protocol also monitors the congestion status of active routes and reconstructs the path when nodes of the route have their interface queue overloaded. A bandwidth efficient routing mechanism is introduced in which route discovery is based on delay variance and hop count (Sharma et al., 2006).

In CRP (Raghavandra and Tran, 2004), every node appearing on a route warns its previous node when prone to be congested. The previous node then uses a “bypass” route bypassing the potential congestion to the first non-congested node on the route. Traffic will be split probabilistically over these two routes, primary and bypass, thus effectively lessening the chance of congestion occurrence. In Congestion Avoidance Using Multipath Routing and Power Control in Mobile Ad Hoc Network (Pham, 2002), Utilization of multi-path routing mechanism to provide improved throughput and route resilience as compared with single-path one has been explored in details in the context of wired network.

The on-demand multi-path routing scheme is presented by Nasipuri and Das (1999) as a multi-path extension of dynamic source routing (DSR) (Johnson and Maltz, 1996), in which alternate routes are maintained so that they can be utilized when the primary one fails. Multiple Source Routing protocol (MSR) (Lee and Gerla, 2001) proposes a weighted round-robin heuristic-based scheduling strategy among multiple paths in order to distribute load, but provides no analytical modeling of its performance. Split multi-path routing (SMR), proposed by (Pearlman et al., 2002), focuses on building and maintaining maximally disjoint paths, however, the load is distributed in two routes per session. In AODV-BR (Lee and Gerla, 2000b), an extension of AODV (Perkins et al., 2003), multiple routes are maintained and utilized only when the primary roots fails. However, traffic is not distributed to more than one path. The secondary path is kept based on the assumption that each node over listens the broadcasts of its neighbor. Thus maintains a route towards the destination that can be used as an alternate route towards the destination. The positive effect of alternate path routing (APR) on load balancing and end-to-end delay in mobile ad hoc networks has been explored (Ogier et al., 2003).

The Reliable Adaptive Lightweight Multicast (RALM) (Tang et al., 2002) protocol is a multicast transport protocol that favors reliability and congestion control over throughput. RALM employs TCP-like congestion and error control mechanisms. RALM is a reliable congestion controlled protocol specifically designed for the multi-hop wireless ad hoc network. RALM performs TCP-like error and congestion control by picking one multicast receiver at a time in a round-robin fashion. The goal is to reduce control overhead while guaranteeing reliable multicast delivery. RALM achieves reliability by guaranteeing reliable data delivery to one multicast member at a time in a round-robin order. History-Aware Multi-path Routing (HAMR) protocol (Kim and An, 2003) introduces a session history as one of routing metrics. A session history implies how many times and how much duration a node is involved in communication sessions between mobile nodes in a network. The motivation of HAMR is that if a node’s session history is higher, the node will be more stable than nodes with lower histories. HAMR supports the establishment of multiple paths, which are selected in consideration for their session histories. HAMR’s approach sets the goal at reducing control traffic overhead and route reconfiguration time by decreasing frequent route re-starts due to route failures.

From the research survey of literature for congestion adaptive routing strategy, there are still many issues in applying by-pass routing techniques into mobile ad hoc networks that are to be covered. In most of the routing protocols, the traffic is distributed mainly on the primary route. It is only when this route is broken that the traffic is diverted to alternate routes. Clearly, load-balancing is not achieved by using these routing mechanisms. Although there are some routing protocols which distribute traffic simultaneously on multiple paths, there has not been a routing protocol which could dynamically cope with the changes of topology in ad hoc network.

Obviously, there is a demand for a congestion adaptive routing strategy that not only efficiently can balance the load on the network but also can cope with the dynamics of the network.

Congestion Adaptive Ad Hoc On Demand Distance Vector Routing Protocol
Congestion adaptive ad hoc on demand distance vector routing protocol copes the problem of load sharing in case of congestion dynamically with the change in network and this is done by means of the changing status of the probability of the nodes around a node. Our approach works in coordination with AODV rather than against it. In this approach every node warns its preceding node about the occurrence of congestion using congestion status parameters. This is done based on the condition whether the number of packets being queued at the interface queue of a node is more than 80% of its buffer size. If this is the case than the preceding node uses a secondary non-overlapping route to direct the incoming packets. That route must be non-congested. Traffic will split probabilistically over these two routes, primary and secondary, thus reducing the chances of congestion.

Our approach consists of following components:

Examining congestion.
Secondary route discovery.
Disseminating congestion status.
Traffic ripping.

Examining Congestion
In order to examine the congestion status of the route we used two parameters namely average packet delay and average queue length. Status of congestion depends on whether the number of packets being queued at the interface queue of a node is more than 80% of its buffer size. If this is the case than the preceding node uses a secondary non-overlapping route to direct the incoming packets. We further classify the congestion status into three levels. These are Green (G), Red (R) and Yellow (Y). A node is said to be in G state if it is not congested, in Y state if it is slightly congested and R state if it is congested. The next G node is the first G node at least two hops away downstream on the primary route.

Secondary Route Discovery
During normal route discovery in the AODV, each node takes advantage of the broadcasting nature of the wireless networking and listens to the packets that are transmitted by there neighboring nodes. From these packets node obtains alternate path information. When a node not a part of primary route listens a RREP packet not directed to it transmitted by a neighbor, it records that neighbor as a next hop to the destination in its alternate route table.

A node may receive numerous replies for the same route, so it chooses the best route among them and add them into their alternate route table. During congestion, alternate route table provides the secondary path towards the destination. However, after one hop route must be directed towards the primary route.

Data packets are passed through the main route unless there is congestion on the primary route. When a node detects congestion (for ex. Average packet delay is more and the average queue length is exceeded) it checks the updated hello message to find the next G node towards the destination and route the packets through that node. Data packets therefore can be delivered through alternate route and are not dropped when congestion occur.

Disseminating Congestion Status
A node periodically broadcasts to neighbors Hello packets with the additional information about the congestion status (len_) and a set of values {Accumulative probability of neighbor}.

Table 1: Probability adjustment for congestion control
Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network

The purpose is that when a node receives a hello message from its next primary node, the node will be aware of the congestion status of neighbor node. If the node is R or Y then congestion is likely ahead if data continues to flow on the primary route, so it’s better to divert it through alternate path from alternate route table.

Traffic Ripping
At each node, the probability to send data on the primary link is initially set to 1. It is then modified periodically based on the congestion status of the next primary node and secondary route shows in Table 1.

Probability

Pnode = 1 - (number of packets in interface queue/max. buffer size)
Or
Pnode = 1 - len_/ AODV_RTQ_MAX_LEN
where:
AODV_RTQ_MAX_LEN is the maximum number of packets that we allow a routing protocol to buffer
len_: number of packets currently in the buffer

The congestion status is the accumulative status of every secondary node. We increased the amount of traffic on the primary link if primary link leads to less congested node and reduce otherwise.

If the probability p to forward the data on primary link approaches 1, the next node on main route is far from congestion or the secondary route is congested, so secondary route is deleted. However, if the primary route is congested then it is removed and the secondary route is selected for the data flow.

In this algorithm we implemented the concept used by CISCO routers to overcome the problem of congestion. In CISCO routers, each node looks after its own packet queue to find out the number of packets residing in it. If the number of packets reaches a certain percentage (80%) of the buffer size than it decides to block further intake in take of packets from the previous node. It sends a message to the previous node that its buffer size had reached a certain level and now any further intake will leads to the congestion. So kindly don’t send any packet. This concept is used in congestion adaptive ad hoc on demand distance vector routing protocol to decide when to stop further intake of packets in the buffer. After this decision is made node sends its previous node a sendError() message to inform it not to send further packet. Than sendHello() message is used to send the probability situation to the other nodes. Other node receives this information from the neighbor node and keeps it as the probability of the neighbor node P_nb. This information from the other nodes and also probability of the node is used to find the congestion status of the nearby node to find a best route towards the destination. This probabilistic information is than used to forward the incoming packets towards the destination.

These are the two new fields added to the hello message to pass the values of the node probability to the neighbor or vice versa. Status field shows the current probability status of the node.

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 1: Cumulative sum of generated packets vs event time

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 2: Average end to end delay vs packet size

Cumulative sum graph in Fig. 1 is an empirical cumulative distribution function. One more field is added into the header format of the hello messages as shown in Fig. 8. This is the congestion status of the current node which is calculated on the basis of the status of the length o the interface queue at that instance. This is probability is passed as neighbor probability to the neighbor nodes. Number of generated packets increases because now Hello messages also carries with them the neighbor probability. Therefore congestion adaptive ad hoc on demand distance vector routing protocol shows a rise in the cumulative sum of generated packets.

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 3: End to end delay vs packet sent time

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 4: Throughput of generated packet vs simulation time

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 5: Throughput of receiving bits vs. average simulation processing time

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 6: Throughput of sending bits vs average end to end delay

Packet size vs average end to end delay graph in Fig. 2 shows minimal/average/maximal delay in the whole network (simulation End to End delay). Here we have taken into consideration only the average simulation end to end delay versus packet size in order to find out the proportional effect of delay on the packet size. The graph shows a steep increase in average end to end delay with increases in packet size, this is due to the presence of control messages of ADOV protocol but as the packet size reaches to the level where it resembles the data packet (512 bits) the delay starts reducing. Here congestion adaptive ad hoc on demand distance vector routing protocol outperforms the existing AODV by reducing the end to end delay in packets (either control packets or the data packets).

Send events time vs end to end delays graph in Fig. 3 shows time when packets were sent (X-axis) vs end to end delay (Y-axis).

Throughput of Generated Packets Vs Processing Time graph in Fig. 4 shows throughput (bits) on Y axis and simulation time on X-axis. Throughput and processing times are calculated every TIME INTERVAL. Throughput of generating bits and processing times are calculated in the whole network. Because of buffer check those packets which are unnecessarily waiting in the buffer now finds alternate route to reach the destination. This causes a rise in the throughput of the generated packets. Congestion adaptive ad hoc on demand distance vector routing protocol definitely out performs existing AODV in this regard.

Figure 5 shows graph of Throughput of receiving bits vs. average simulation processing time in which throughput consistency is found in the modified approach.

For throughput of sending bits graphs in Fig. 6 shows delays of sent packets are calculated in the same time intervals as throughput is calculated. If a bit founds that the node it is being forwarded to is about to get congested in the near future by looking at the status of buffer, it starts moving itself through another route so that its chances of reaching the destination increases manifold thus reducing the average end to end delay.

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 7: Throughput of sending bits vs average simulation jitter

Image for - Simulation Study of Congestion Adaptive Routing Algorithm For Mobile Ad Hoc Network
Fig. 8: Congestion adaptive ad hoc on demand distance vector routing protocol hello message: header

Congestion adaptive ad hoc on demand distance vector routing Protocol had again outperforms the existing AODV. There is slight increase in delay with the increase in throughput but as compared to existing AODV it is far better

Throughput vs jitter graph in Fig. 7 shows throughput (bits) on X-axis and jitter on Y-axis. It's similar to throughput vs delay graphs. If S(i) is the time packet i was sent from the sender and R(i) is the time it was received by the receiver,

jitter(i) = [(R(i+1)-S(i+1))-(R(i)-S(i)]. Congestion adaptive ad hoc on demand distance vector routing protocol has reduced simulation jitter many fold compared with the existing AODV (Fig. 8). This simulation study has been conducted is school of information technology, Rajiv Gandhi Technological University and Samrat Ashok Technological Institute.

Discussion

We have simulated above said protocol that utilizes a well known schema being used by the CISCO routers for the load shedding purpose. This scheme can be used with any other on-demand routing protocol to improve reliable packet delivery in the case of route congestion. We hadn’t temper with the basic functionality of the existing protocol. The decision when to find an alternate path for the packet transmission is taken in case of interface queue is full more than 80% of buffer size is chosen independently by the existing AODV in the manner it is doing normal packet transmission. The secondary path for congestion avoidance uses probabilistic approach. The secondary path is discovered on the basis of the congestion status of the neighbor node and the next node on the primary route. Probability is used to split the traffic between the primary route and the secondary route. The secondary path provides an alternate route for data packets to flow up-to the destination without making another attempt for route discovery in case the congestion is likely to happen in the primary route. These routes are utilized only for data packet delivery. As a case study we compared our scheme with the existing AODV and measured performance improvements. Results provided by the NS2 simulator shows that this scheme perform well under low traffic. The number of packet dropped due to congestion is reduced with congestion adaptive ad hoc on demand distance vector routing protocol because of the presence of an alternate route towards the destination through which node can forwards packets to the destination.

We measured mechanism performance on reactive routing protocol AODV along metrics such as cumulative sum of generated packets, throughput, end to end delay, jitter and processing time in high mobility environment.

For congestion adaptive ad hoc on demand distance vector routing protocol in high mobility, we observed that the packet delivery ratio for congestion adaptive ad hoc on demand distance vector routing protocol is increased manifold. It can be seen from the figures that in the high mobility scenario the packet delivery ratio of congestion adaptive ad hoc on demand distance vector routing protocol is almost constant and nearly 100%. However, the packet delivery ratio of AODV suffers severely when 20% of the nodes drop the data packets. It should also be noted that in the case of throughput of receiving bits the performance of AODV gets better. When the nodes move constantly their overall effect becomes more significant. Average end to end delay in case of congestion adaptive ad hoc on demand distance vector routing protocol for different packet size has reduced as compared with AODV. Throughput of generated packet in case of congestion adaptive ad hoc on demand distance vector routing protocol against simulation time is constant throughout as compared with the AODV because of the presence of an alternate path for every node through which it can send packets without any delay.

Purpose of the simulation study of congestion Adaptive routing protocol is to provide strength to the protocol by verification of the results in comparison with the most popular routing protocol AODV in mobile ad hoc network environment.

This study shows that Congestion Adaptive routing protocol works batter the AODV high mobility scenario and provide good packet delivery ratio. It is found that in the high mobility scenario the packet delivery ratio of congestion adaptive ad hoc on demand distance vector routing protocol is almost constant and nearly 100%. However, the packet delivery ratio of AODV suffers severely when 20% of the nodes drop the data packets, this provide consistency of network which is very important aspect in network planning.

Future Work
In our simulation model we incorporate few parameters for the probabilistic evaluation of congestion. These are: the average queue length and based on this length the probabilities of the next node on the primary route and the neighbor node. However, there are other parameters also on which congestion depends. These may be retransmit time of packet, standard deviation of packet delay, buffer space etc. Simulation results based on these parameters can also be evaluated. Above technique can also be checked with different network scenarios i.e., with more number of mobile nodes, higher mobility rates, for varying packet loads.

Additionally this scheme can further be evaluated using more detailed and realistic channel models with fading and obstacles in the simulation.

REFERENCES

1:  Barry, M., B. Hogan and S. McGrath, 2004. Congestion avoidance in source routed Ad Hoc networks. Proceedings of the 13th IST Mobile and Wireless Communications Summit, June 27-30, 2004, Lyon -

2:  Jacquer, P. and L. Viennot, 2004. Analyzing control overhead in mobile ad-hoc network protocols. INRIA Rocquencourt, Projet Hipercom. http://citeseer.ist.psu.edu/viennot02analyzing. html.

3:  Johnson, D.B. and D.A. Maltz, 1996. Dynamic Source Routing in Ad Hoc Wireless Networks. In: Mobile Computing, Imielinski, T. and H.F. Korth (Eds.). Chapter 5, Kluwer Academic Publishers, Norwell, MA., USA., ISBN-13: 9780792396970, pp: 153-181

4:  Kim, S. and S. An, 2003. History-aware multi-path routing in mobile Ad-Hoc networks. Inform. Networking, 2662: 662-671.
CrossRef  |  

5:  Lee, S.J. and M. Gerla, 2000. AODV-BR: Backup routing in ad hoc networks. Proceedings of the IEEE Conference on Wireless Communications and Networking, September 23-28, 2000, Chicago, IL., USA., pp: 1311-1316
CrossRef  |  

6:  Lee, S.J. and M. Gerla, 2001. Split multipath routing with maximally disjoint paths in ad hoc networks. Proceedings of the IEEE International Conference on Communications, June 11-14, 2001, Hewlett-Packard Co., Palo Alto, CA., pp: 3201-3205
CrossRef  |  Direct Link  |  

7:  Ogier, R.G., F.L. Templin and B. Bellur, 2003. Topology broadcast based on reverse-path forwarding. (TBRPF) March 2003 Work in Progress.

8:  Nasipuri, A. and S.R. Das, 1999. On-demand multi-path routing for mobile ad hoc networks. Proceedings of the 8th International Conference on Computer Communications and Networks, October 11-13, 1999, Boston, MA., USA., pp: 64-70
CrossRef  |  

9:  Pham, P.P., 2002. Congestion avoidance using multipath routing and power control in mobile ad hoc network. Ph.D. Thesis, University of South Australia.

10:  Pearlman, M.R., Z.J. Haas, P. Sholander and S.S. Tabrizi, 2000. On the impact of alternate path routing for load balancing in mobile ad hoc network works. Proceedings of the 1st ACM International Symposium on Mobile ad Hoc Networking and Computing, August 11, 2000, Boston, MA., USA., pp: 3-10

11:  Perkins, C.E., E. Belding-Royer and S. Das, 2003. Ad hoc on-demand distance vector (AODV) routing. IETF Internet Draft.

12:  Raghavandra, H. and D.A. Tran, 2004. Improving routing performance in mobile ad hoc networks with congestion adaptivity. Technical Report, University of Dayton.

13:  Sharma, S., R.C. Jan and S.S. Bhadauria, 2006. Bandwidth efficient variance adaptive routing protocol for mobile adhoc network. ADIT J. Eng., 2: 11-15.

14:  Song, J.H., W. Vincent, S. Wong and V.C.M. Leung, 2004. Efficient on-demand routing for mobile ad-hoc wireless access networks. IEEE J. Sel. Areas Commun., 22: 1374-1383.

15:  Tang, K., K. Obraczka, S.J. Lee and M. Gerla, 2002. A reliable, congestion-controlled multicast transport protocol in multimedia multi-hop networks. Proceedings of the 5th International Symposium on Wireless Personal Multimedia Communications, October 27-30, 2002, Los Angeles, CA., USA., pp: 252-256
CrossRef  |  Direct Link  |  

©  2021 Science Alert. All Rights Reserved