1 Introduction

Wireless sensor networks (WSN), represent great challenges in the area of energy consumption. These tiny devices of low memory and processing capacity, as well as limited battery power, have potential for use in inhospitable locations with applications such as in deep sea oil and gas [1], disaster recovery [2] and agriculture [3]. As such the issue of battery replacement arises. Given the difficulty this may represent, these devices must adopt duty cycling methods in order to conserve power and increase network lifetime. Duty cycling involves nodes sleeping when not idle and can thus have great benefit in reducing energy conservation [4]. This is controlled at the MAC layer, with different approaches to be implemented. For example, in carrier-sense multiple access (CSMA) MAC implementation, the IEEE 802.15.4 standard [5, 6], clear channel assessment (CCA) is utilised before sending data. This operates alongside the sending of preambles, keeping the channel open as data is sent. When transmitted, a preamble is required to be at least the length of the sleep period of the receiver, and this has been shown to have benefit regarding energy consumption [7]. However, network functionality arises as an issue given the time a node may be asleep for. An inherent challenge is in ensuring that nodes may actually discover each other such that Neighbour Discovery (ND) can occur with duty cycling in place. In particular, that wake-up schedules overlap between nodes in order that ND may actually take place. Without this, communication between nodes would become impossible and the network would be rendered useless.

The IoT has moved into mobile environments in recent times [8,9,10], however, when considering a WSN as a static implementation, another issue arises. Due to the multi-hop to sink basis of WSNs they are prone to nodes closest to the sink taking on greater load and subsequently running out of energy faster. This may result in other nodes in the network being unable to communicate with the sink node, effectively ending the functionality of the entire WSN. This is known as the energy hole [11] or hotspot problem. Sink node mobility is a common approach to combating this. The assumption here is that as the sink node moves, as does the responsibility for final delivery to it. Thus, the role of hotspot is spread across several nodes in the network, rather than just those who would be closest to the sink if stationary. These nodes are termed as significant nodes [12, 13]. Mobile sink nodes (MSNs) are utilised in various applications, such as within vehicles, located on robots or merely carried by a person. An emerging area is to utilise drones, or unmanned aerial vehicles (UAVs) to give their scientific name [14, 15]. However, merely mobilising the sink node does not guarantee that all nodes the sink passes shall expend energy at the same rate. Energy spikes may be problematic in the long term, with even a small difference in energy consumption resulting in certain nodes dying earlier than others as time passes.

Probabilistic [16] and deterministic [17] algorithms have formed the legacy approach to ND in WSNs. With deterministic approaches guaranteeing an overlap and probabilistic approaches resulting in a high probability. Although value is found in both approaches, the deterministic approach is the most commonly used. The long-tail discovery issue is considerable issue regarding the probabilistic approach, where a node may never be discovered at all [18]. This counters its otherwise greater efficiency in ensuring ND when compared to its deterministic counterpart. However, within the area of ND in WSNs, new studies such as those focusing on opportunistic routing approaches, have emerged. In opportunistic routing the approach is taken of decisions being made on the fly [19].

In this study, however, the key problem to be solved is within the area of mobility awareness in WSNs [20]. Here network behaviour is influenced by knowledge of mobility, in this case the mobility of the sink. With the network behaviour in question being that of ND. In using a MSN within a WSN another layer of complexity is added to the issue of ND, with nodes awakening when the sink is nearby preferable. Unlike other approaches, when utilising mobility awareness the aim is not to negate the mobility in the network. That being, that it would be a problem requiring to be worked around. A mobility aware approach seeks to use the very mobility patterns of mobile nodes in order to improve elements such as routing and data delivery [21]. This study seeks to improve and balance energy consumption in static nodes by using the mobility pattern of a MSN by which to influence duty cycling in the nodes it has direct communication with. To achieve this, we build on our previous work to propose a novel MAC layer algorithm to be utilised in WSNs with a MSN.

As such, this work utilises the dynamic communication threshold between a MSN and static sink developed in our original study, the Mobility Aware Duty Cycling Algorithm (MADCAL) [12, 13], with predictable sink mobility. Within a static, significant node, the move from the SLEEP function to clear channel assessment (CCA) only occurs when the sink node is within the threshold of the static node. Otherwise this will wait until the threshold is reached, effectively leaving the node asleep. This has already shown benefit in both frame delivery to the sink and, ultimately, energy consumption. In this paper we propose the novel Mobility Aware Duty Cycling and Dynamic Preambling Algorithm (MADCaDPAL) to utilise the communication threshold created by MADCAL in order to further improve energy consumption and network efficiency.

This study extends our conference paper [22] as follows:

  • Algorithm A new determination of the communication threshold is detailed in Algorithm 3 with a dynamic approach to the factor applied to the threshold size based on sink speed. Both algorithms, for the determination of a communication threshold and the threshold interval, described in detail including relevant equations.

  • Test Scenarios In this journal version we utilise both a random topology in addition to the grid topology utilised in the conference paper. This demonstrates benefit in the use of MADCaDPAL even when used in a more strained topology. The topology layout can be found in Fig. 2, with significant nodes demonstrated for each interference range in Fig. 4. Resultantly, twice as many test results are provided, proving the effectiveness of the MADCaDPAL algorithm more extensively. In addition, related work has been extended and classified in Section 2.

In the development of MADCaDPAL we examine the relationship between the MSN and static sink threshold in finer detail. Establishing that whilst MADCAL is a crucial first step, in utilising sink position in relation to the static node to influence the behaviour of CCA and the sending of preambles, that further benefits can be achieved in relation to energy consumption and frame delivery. This whilst also countering the issue of energy spikes amongst significant nodes. Where, despite average energy across significant nodes improving, some nodes still take on a greater network load than others. MADCAL and, subsequently, MADCaDPAL are both implemented into each node independently. As such, there is no use of expensive beacons between nodes. However, this also means there is no knowledge of neighbouring nodes. As such, network density may cause overlaps of communication, resulting in the aforementioned energy spikes in some nodes, while others wait for a clear channel.

This paper is organised as follows. Section 2 examines related work in the area of the two proposed algorithms, while Sect. 3 gives a review of Mobility Aware Duty Cycling, the development of the original MADCAL algorithm and the sink mobility pattern and network topologies in use. Section 4 details the MADCaDPAL algorithm, the problem statement, methodology and resultant algorithm with the testing and results following in Sect. 5. Section 6 concludes this paper and details future work.

2 Related work

In examining related work it can be found that the use of a MSN to influence the duty cycling of static nodes is a novel approach. Existing work where a MSN is utilised tend to focus on either network layer routing protocols or optimal path determination.

2.1 Dynamic use of preambles

In considering a dynamic approach to the use of preambles and the beneficial relationship between this and energy consumption, Chen et al. [4] analyse several factors in the delivery of packets. Initial preamble length is shortened as a result of the use of opportunistic forwarding. Subsequently, the relationship between delivery probability, length of preamble, density of the network and sleep duration of nodes is utilised, such that the preamble length may be adjusted based on this relationship. This is shown to have benefit in packet delivery, without incurring additional delay. Also, energy consumption is reduced by as much as twice.

2.2 Routing with mobile sink nodes

When examining research in the use of MSNs it becomes clear that the vast majority focus on network layer routing. As such, routing protocols for use with MSNs can be referred to as being in the categories of hierarchical and non-hierarchical [23]. Hierarchical protocols are defined as giving some nodes greater value than others, in order that the MSN is not required to advertise its presence to the entire network. In regard to hierarchical routing protocols this is generally in reference to the use of grids and clusters, used to divide the WSN into specific areas, requiring position awareness of nodes. Mobility of a sink node within a grid sector is invisible, but these approaches suffer from problems such as the high overhead of grid construction and nodes that form part of the grid becoming hotspots [24, 25]. As such, hotspot avoidance seen as one of the supposed main benefits of the use of MSNs. The hotspot issue could also occur in the use of clusters, with strain being placed on the cluster head. To avoid this the cluster heads can be rotated. TDMA schedules may also be enforced to aid in energy conservation, but with the additional requirement of utilising the MAC layer. Sink mobility may also need to be controlled when utilising a cluster method [26, 27]. Delay-tolerance can be utilised along with clustering techniques, although this of course adds to delay. However, this is shown to produce good results in regard to energy efficiency [28].

In this area [29] recognises the need for MSNs in order to negate the hotspot issue, and that if this is used correctly, energy consumption may be balanced out. The proposal here is for a routing algorithm in which the network is divided into cells. This so that only a certain number of cells require to store the location of the sink node as it moves through the network. This works with any sink trajectory as the sink location is sent to other nodes in the network via beacon messages. As such, network lifetime and energy consumption is shown to improve versus other approaches as each node may more easily find the shortest route to the sink node. This is an important network layer approach to routing with a MSN in order to attain the best results from its use and would have potential for future use with other studies, potentially utilising different approaches at other layers. However, this does rely on the exchange of messages, which may add to network overhead.

A similar study by [30] seeks to utilise landmark-nodes for use with a MSN in a WSN, again to reduce energy consumption. With these landmark-nodes identified as being one-hop from all nodes within its cluster and on the path of the sink, utilising Kalman filtering. As such, the MSN will stop and collect data from these nodes. Using a random walk sink mobility pattern, the landmark-node locations are continuously updated. Again this study demonstrates how proper use of an MSN can improve network behaviour in terms of energy consumption and packet delivery. By reducing the average hop count to the sink this demonstrates energy improvements of over 20% compared to existing alternative studies. This is also tested on a real test bed using robots. However, this network layer solution makes no allowances for MAC or Physical layer parameters being influenced by sink mobility despite identifying this in related works.

The path of the MSN is a consideration in previous works such as by [31]. Utilising a Voronoi diagram and rendezvous points, this work constructs a path for the MSN where routing may be conducted most efficiently with regard to delivery delay. As such, the authors claim improvement over existing works when considering fault tolerance and average waiting time.

The use of a predefined MSN path is proposed by [32], integrating both geographic and hierarchical routing. In this case networks are divided into partitions consisting of virtual grids. The MSN then travels through the virtual grids and includes the possibility of having multiple MSNs, subsequently further reducing latency.

Predictable sink mobility is again in evidence as utilised by [33]. In this case a predictable circular path around the network is used, with forwarded nodes along the sink path used in combination with a virtual infrastructure to reduce network overhead. This demonstrating the potential inherent in the use of predictable sink mobility, which generally is found to be underused in existing literature. With the desire for optimal sink paths more prevalent.

3 Mobility aware duty cycling

3.1 Mobility pattern and network topology

In building upon the MADCAL algorithm we again utilise a circular mobility pattern around the static nodes in the network. Two approaches are taken to network topology. Firstly, a controlled grid formation is utilised, with each of the 25 static nodes within one-hop of neighbours. This in order to observe the effect sink mobility has on the nodes in the network when node density and location has been controlled. This can be seen in Fig. 1, with the sink node travelling in a clockwise direction around the network.

Fig. 1
figure 1

Network topology - grid

Secondly, a random network topology is used. While there are still 25 static nodes, there location, with some large spaces between nodes and some clustered together, is designed to test the ability of the algorithms to positively affect duty cycling in a situation where node location is not controlled. This is illustrated in Fig. 2.

Fig. 2
figure 2

Network topology - random

3.2 Overview of mobility aware duty cycling

This work builds upon the earlier MADCAL algorithm [12, 13] in utilising a predictable sink mobility pattern. Network parameters within a static node enable the calculation of the current sink position. Those being the sink starting position, speed and the time it has been travelling for. This calculation involves no expensive beaconing and is made within each node, independently of others. A circular mobility pattern is utilised, with the sink travelling around the periphery of the network. Therefore, the significant nodes to be identified, are those which are one-hop from the path of the sink based on interference range.

figure e

Mobility aware duty cycling involves two stages, the first to create a dynamic threshold between static node and mobile sink, as detailed in Algorithm 1. The point on the circular path the shortest distance from the significant node is named as the circlePoint. The maximum possible threshold may then be calculated based on this point and the node interference range, as seen in Fig. 3 from the point of view of Node 15. The size of this threshold is then controlled by a factor, in order to avoid extremes of size if the node is very close or far away from the sink path. Interference distance over distance to the path is applied to the size of the threshold, with sink speed then used to adjust further, ensuring the threshold size does increase or decrease too much. Smaller thresholds are found to perform better when the sink is faster, therefore the threshold is adjusted accordingly. Increasing in size as the sink speed decreases. The MADCAL algorithm only accounts for speeds of 2mps, 10mps, 20mps and 40mps. An adjustment the MADCaDPAL algorithm makes is to ensure this calculation is now completely dynamic for any speed in this range.

Fig. 3
figure 3

Threshold Calculation

Secondly, the focus is on utilising the threshold created such that duty cycling within significant nodes may now be positively influenced. This is achieved within the SLEEP procedure of the MAC implementation, in particular at the point where the move from the SLEEP procedure to CCA takes place. If the sink node is calculated to not be in the node’s threshold yet, then this move is delayed for the time it will take for the sink to reach the threshold start point. Still able to receive messages, but effectively asleep. This is detailed in Algorithm 2. This approach has already shown benefit of up to 15% in energy consumption, when compared to a standard duty cycling approach with CCA, preambles and check interval. With an additional benefit shown in frame delivery.

figure f

4 The proposed MADCaDPAL algorithm

4.1 Problem statement

The dynamic threshold of communication between MSN and static significant node is shown to have benefit when considering the average energy consumption of all significant nodes. Once this threshold is determined it is utilised in determining when to move from SLEEP to CCA within a MAC layer implementation. However, on examining results further it can be observed that while average energy consumption is improved there remain energy consumption spikes. These being where certain significant nodes consume far more energy than others. These are not consistent across all tests and spike nodes may not even be the same across repeats of the same test with parameters unchanged. As such, despite the benefits of sink mobility it can be claimed that, to a certain degree, the hotspot issue remains as some nodes will still run out of energy faster than others. With the obvious negative resultant effect on network lifetime. As such, the first aim of the MADCaDPAL algorithm is to reduce these spikes in energy consumption, with an overall reduction in energy consumption also desirable. Again, without a detrimental effect on frame delivery to the sink.

4.2 Mobility aware approach to duty cycling and preambles

A communication threshold between a static significant node and a MSN has been shown to have benefit in terms of energy consumption. Thus far, however, this has only been utilised to intercept the move from the SLEEP process to CCA [12, 13] at the MAC layer. As such, in examining this procedure, it could be observed that once the CCA process started, this would continue between the static node and sink beyond the end of the communication threshold. The result being that some nodes could then monopolise communication with the sink, whilst others must wait for the channel to clear, even if the sink is now within their threshold. This results in the aforementioned spikes of energy. Hence, in this study the aim is to close the communication threshold, in order that as soon as the sink passes the end of the threshold, communication is no longer possible.

As such, whereas the MADCaDPAL algorithm still influences the SLEEP function at the MAC layer, only moving to CCA when the sink is within the node’s threshold, further factors are also take into account. The position of the MSN in relation to the threshold is now used to influence the CCA process as well as the sending of preambles. With these changes, we aim to further reduce energy consumption amongst significant nodes, while also improving frame delivery to the sink node. However, a more even distribution of energy consumption across significant nodes is of equal importance.

We utilise the grid and random network topologies as shown in Figs. 1 and 2. As can be seen in the test parameters in Table 1, the interference range of nodes is varied across four values. Within the grid topology this results in the same significant nodes each time, as can be seen in Fig. 4. However, with the random topology in use the number of significant nodes reduces as the interference range of nodes becomes smaller. This can be seen in Fig. 5.

Fig. 4
figure 4

Network topology - grid with significant nodes

Fig. 5
figure 5

Network topology - random with significant nodes

The lightweight carrier-sense multiple access (CSMA) MAC implementation in use can be seen in Fig. 6, with the first part of the original MADCAL algorithm shown to create the communication threshold, and MADCaDPAL highlighted to intercept SLEEP, CCA and preamble sending.

Fig. 6
figure 6

Lightweight CSMA MAC Implementation with MADCaDPAL

4.2.1 Network layer

It should be noted that this work is located at the MAC layer. Therefore, a routing protocol is only used to ensure a route, and subsequent packet delivery, to the MSN. In this case, the optimized link state routing protocol (OLSR) [34] is used. This due to the heavy load it places on the network in terms of energy consumption. This is an unconventional use of this protocol but for our requirements it proves effective.

4.3 New threshold calculation

An illustration of the development of a dynamic communication threshold between static significant node and MSN can be seen in Fig. 7, from the viewpoint of node 10. The threshold is created based on significant node distance from the circular sink path, but an adjustment is then made based on a factor which takes into account MSN speed combined with the distance to the path. When the MADCAL algorithm was developed, the initial threshold calculation was adjusted by a factor of the distance to the circle path divided by the node interference distance. This was then adjusted based on sink speed, with faster speeds allowing for smaller thresholds. However, this was based around the specific speeds used, those being 2mps, 10mps, 20mps and 40mps. With MADCaDPAL, the calculation of this adjustment factor now becomes completely dynamic, with the only input required that of maximum and minimum sink speeds. In this case, 2mps and 40mps. Any speed within that range will have an adjustment factor calculated specifically. This is defined in Eq. (1). How this algorithm is applied to the building of the threshold can be seen in Algorithm 3, which details the initialisation and establishment of the communication threshold within each static, significant node.

$$\begin{aligned} factorCheck = \left( \frac{maxF - minF}{maxS - minS} \times speedDiff \right) \end{aligned}$$
(1)

where maxF and minF represent the maximum and minimum factors. In the case of this study 0 and 0.5. maxS and minS represent the maximum and minimum sink node speeds. In the case of this study, 2mps and 40mps. With speedDiff the range between the highest and lowest speeds.

figure g

Algorithm 3 Within the Initialisation procedure, the MSN speed is set from input (2, 10, 20, or 40 mps), the max and min speeds in this case are 40mps and 2mps. The maximum factor we use is 0.5, utilised for slower speeds. The minimum factor is 0 which means for faster speeds there is no limit to how much the threshold may be reduced by. The speedDiff variable sets a range value between highest and lowest speeds.

Fig. 7
figure 7

Illustration of Threshold

The establishThreshold function, as with MADCAL, establishes the coordinates of the communication threshold, inputting the radius of the circular path and whether the coordinates to be calculated are before or after the circlePoint. The difference in MACDaDPAL is the new dynamic approach to determining the factor to apply to to threshold size. The distance from the centre of the circle to the static node is again calculated as nodeDist. As before, calculate the angle of the circle centre to the furthest point of communication, and the circle centre to the node,and to avoid excessively large thresholds, determine a factor by which this angle should be reduced based upon distToCircle divided by interDist.

A new dynamic factor check is based on the difference of the highest and lowest factor divided by the difference in maximum and minimum speeds, multiplied by the difference between sink speed and the minimum speed. This ensures that whatever the speed, the factorCheck is calculated uniquely for that speed. The faster the sink speed may be, the more the angle of the threshold may be reduced by. If the factor calculated is less than the factor check then the factor check value becomes the factor. The value of the angle of the threshold is multiplied by the factor in order to reduce it accordingly. The threshold is then calculated as in MADCAL.

4.4 Mobility aware duty cycling and dynamic preambling algorithm (MADCaDPAL)

The novel approach the MADCaDPAL algorithm takes is in how duty cycling at the MAC layer may be influenced by this threshold. Beyond existing work where only the SLEEP procedure is influenced [12, 13] in its move to CCA, this approach remains but is now extended to include a deeper examination of the actual CCA process and how the send of preambles may be influenced. As such, the move from the SLEEP function to CCA will still only occur once the MSN is calculated to be within the significant node’s threshold. However, in order to ensure that communication between the sink and static node ends as soon as possible once the MSN has exited the node’s threshold, further checks as now made. Once the CCA procedure is entered a further check to ensure the sink is within the threshold is made. However, this merely ensures that the small possibility that between the SLEEP procedure and CCA the sink has moved beyond the threshold is accounted for.

Of greater importance is a further check once a clear channel is confirmed and the sending of preambles commences. As such, the sending of preambles will be interrupted as soon as the MSN leaves the threshold, with any data in the cache of the static node stored until the next pass of the sink. Once interrupted, both the CCA and preamble sending procedures send the node to sleep for one slot duration. This is in line with the existing approach to sending the node to sleep within the MAC protocol. This ensures the SLEEP procedure will then again assume responsibility for calculating the position of the sink node.

$$\begin{aligned} pos.x= & {} start.x+radius{\times }\cos \left( \left( \frac{startAngle}{180}\right) {\times }PI\right) \nonumber \\&+\left( \frac{speed}{radius}\right) {\times }simTime \end{aligned}$$
(2)
$$\begin{aligned} pos.y= & {} start.y+radius{\times }\sin \left( \left( \frac{startAngle}{180}\right) {\times }PI\right) \nonumber \\&+\left( \frac{speed}{radius}\right) {\times }simTime \end{aligned}$$
(3)

This can be seen in Algorithm 4. It should be noted that the sending of data is not interrupted. Once this commences it is allowed to finish, wherever the sink may be located.

The control flow between Algorithms 3 and 4 can be seen in Fig. 8.

Fig. 8
figure 8

MADCaDPAL Control Flow

figure h

Algorithm 4

In the Sleep procedure, the default sleep interval is set as checkInterval. Now, only applying to significant nodes; the thresholdTime function is called to establish the time it will take for the sink to reach the threshold. If the threshold has been reached, the interval to wake-up and move to CCA reverts to the checkInterval otherwise, it is set to the time it will take for the sink to reach the threshold. If this is not a significant node the wake-up schedule reverts to the checkInterval as normal. This ends the Sleep procedure.

The thresholdTime function is designed to establish how long it will take the sink to reach the threshold. The current sink position is calculated as sinkPos based on simulation time and the initial sink start position as in Eqs. (2) and  (3).

Where pos.x, pos.y denotes the calculated sinkPos coordinates; start.x, start.y denotes the sink start position; startAngle denotes the starting angle of the sink, in this case 0; speed denotes the sink speed; simTime denotes the current time the simulation has been running.

The withinThreshold function is then called to establish if the sink is already within the communication threshold or not. If the threshold has not been reached yet, arc is set to the distance the sink must travel to reach the sinkThresholdBefore coordinates. Using the distance calculated between sinkPos and sinkThresholdBefore, the length of the arc is calculated as illustrated in Eq. (4):

$$\begin{aligned} arc = \left( \frac{180-\left( \left( \arccos {\left( \frac{\left( \frac{D}{2}\right) }{R} \right) }{\times }\left( \frac{180}{PI}\right) \right) *2\right) }{360}\right) {\times }C \end{aligned}$$
(4)

Where D denotes the distance between sinkPos and sinkThresholdBefore; C denotes the circumference of the sink circular path and R it’s radius. The current quartile in which the sink resides is established and the time left to reach the threshold is calculated as the size of the arc in metres divided by the speed of the MSN in mps. However, if the threshold has been reached, then the time left to reach the threshold is set as zero. The thresholdTime function returns the timeToThreshold.

The withinThreshold function will establish the position of the sink node in relation to the static node communication threshold. The distance between the current sink position and the thresholdAfter coordinates is established as per Equation ??. If this is greater than the size of the entire threshold then the threshold has not been reached and thresholdReached is set to false. However, if this is not true and the distance between the current sink position and the thresholdAfter coordinates is less than the size of the entire threshold, now establish if the sink is before or after the threshold. If the distance between the sink position and the thresholdBefore coordinates is greater than the thresholdDistance then the sink must be beyond the threshold and therefore thresholdReached is set to false. If the sink is also within thresholdDistance of thresholdBefore however, this means the sink is within the threshold. Therefore thresholdReached is set to true. With this, thresholdReached is returned and the withinThreshold function ends.

Within the CCA procedure, first there is a check to establish if there there is something in the queue to send. If so, the withinThreshold function is called to establish if the MSN is within the threshold currently. If the threshold has been reached move to sending preambles and schedule the stopping of preambles after a slot duration as normal. Otherwise, return to the Sleep procedure and awaken after a slot duration. If there is nothing in the queue, return to the Sleep procedure and awaken after a slot duration as normal. This ends the CCA procedure.

Within the Send Preamble procedure, the withinThreshold function is called to establish if the MSN is within the threshold currently. If the threshold has been reached then the process of sending preambles continues as normal unless Stop Preambles is reached. If the threshold has not been reached then the process of sending or stopping preambles is cancelled and the MAC protocol returns to the Sleep procedure. The node is scheduled to awaken after a slot duration. This ends the Send Preamble procedure.

5 Evaluation and results

5.1 Network parameters

Among both network implementations the assumption is made that static nodes will retain their positions throughout. Each static node implements MADCaDPAL independently and although aware of its own location, is unaware of neighbouring nodes. Although four different interference ranges are used across different test scenarios, each range is consistent across all nodes in each test. All other parameters can be found in Table 1.

Table 1 Simulation Parameters

The simulation time utilised guarantees the network is traversed an exact number of times by the MSN, this based on the network size and thus, the size of the circle path circumference. As such, at 40mps, the network shall be circled exactly 40 times, reducing down to twice for 2mps. This ensures each node is passed by the sink the same number of times, otherwise results would not be accurate for individual nodes.

The interference distance of each node is calculated using Eq. (5) [35]:

$$\begin{aligned} interference Distance = \left( \frac{\left( \frac{SoL}{Freq}\right) ^2{\times }Power}{16{\times }PI^2 {\times }10^{\frac{SAT}{10}}}\right) ^\frac{1.0}{Alpha} \end{aligned}$$
(5)

Where SoL represents the speed of light; Freq is the carrier frequency of the node; Power is the transmitter power of the node; SAT represents the signal attenuation threshold; Alpha is the path loss alpha. This is of particular importance as it is altered to affect the interference distance. As such, four different path loss alpha value are used, resulting in the four different interference ranges. As the path loss alpha increases, so the interference range decreases. With the path loss alpha simulating signal loss in normal situations such as interference from obstacles.

The sensitivity value used is an adjustment to ensure there is no node overload in the network. As such, node overload may result from a high sensitivity value and therefore, to reduce the number of received signals, sensitivity is adjusted from -85dBm to -75dBm.

5.2 Simulation environment and parameters

The grid and random topology networks are built using the OMNeT++ [36] simulation framework. In this case MiXiM [37] is utilised to build the actual network layout, whilst inetmanet [38] is used to define physical, MAC, network and transport layer parameters.

Results show the effect of an MSN on the significant nodes, these highlighted in Figs. 3 and 4. Each test scenario has been conducted using three different MAC implementations to establish the effect of a MSN at four different speeds and with four different interference ranges across the network. Firstly, the existing lightweight MAC implementation using standard duty cycling techniques with no allowance for sink mobility is shown. Secondly, results are shown using the MADCAL [12, 13] algorithm. Finally, we present results where MADCaDPAL is in use.

5.3 Results - grid topology

Figures 9, 10, 11, 12 show the average energy consumption of all significant nodes. This is presented alongside the maximum energy consumption of significant nodes, this being the single significant node to consume the most energy. In examining this comparison we may observe the difference between the overall average and the greatest spike in energy consumption in a single node.

Fig. 9
figure 9

Average and maximum energy consumption of significant nodes (mWs), Grid topology. Transmission range 77.52m. MADCaDPAL

In Fig. 9a the initial energy saving of up to 15% when MADCAL is in use can be seen versus the original MAC implementation. However, when MADCaDPAL is in use the resultant reduction in energy consumption is significant. Compared to original results with no allowance made for use of an MSN, we can observe up to 79% reduction in energy consumed. What can also be seen in Fig.  9b is that in the original MAC implementation and again when MADCAL is in use, that spikes in energy were considerable. Now with MADCaDPAL in use, the highest single node is only slightly above average on this particular scale.

Fig. 10
figure 10

Average and maximum energy consumption of significant nodes (mWs), Grid topology. Transmission range 69.13m. MADCaDPAL

Even though the interference range is reduced, a similar pattern of results can be seen in Fig.  10. Again there is a significant reduction in average energy consumption as seen in Fig.  10a, as well as with the maximum single node energy once MADCaDPAL is in use, as seen in Fig.  10b.

Fig. 11
figure 11

Average and maximum energy consumption of significant nodes (mWs), Grid topology. Transmission range 62.02m. MADCaDPAL

It can be seen in Fig.  11 that as the interference range becomes smaller, as do the benefits achieved by the MADCAL algorithm. However, with MADCaDPAL in use, the pattern of significant improvement in average energy as seen in Fig.  11a and maximum energy as seen in Fig.  11b, remains.

Fig. 12
figure 12

Average and maximum energy consumption of significant nodes (mWs), Grid topology. Transmission range 55.94m. MADCaDPAL

Even at the smallest interference range used as in Fig. 12, this pattern of improvements with the MADCaDPAL algorithm in use continues. Originally, as the interference range constricted to not much more then then distance between nodes, it became more difficult for the MADCAL algorithm to make improvements. Although they are still there to be seen. This, however, does not affect the MADCaDPAL algorithm. In ensuring the threshold is closed effectively the result is a reduction in energy consumption of over 80% amongst the significant nodes as seen in Fig. 12a. With energy consumed more evenly as the maximum figures show in Fig. 12b.

However, a benefit such as this would be less significant if it has a detrimental effect on other factors in the network. In Figs. 13,14, 15, 16 the number of MAC layer frames received by the MSN during each simulation can be seen.

Fig. 13
figure 13

Sink frame reception. Transmission range 77.52m, Grid topology. MADCaDPAL

Fig. 14
figure 14

Sink frame reception. Transmission range 69.13m, Grid topology. MADCaDPAL

In Fig. 13 and 14 it can be seen that as well as a significant improvement in energy consumption, the MADCaDPAL algorithm has also improved frame delivery in all but one scenario. With a 77.52m interference range and sink speed of 10mps frame reception decreases by around 20% from the MADCAL algorithm, although this is still an improvement on the original MAC implementation. However, in all other scenarios there is an improvement over both no change and the MADCAL algorithm. Significant improvement can be seen at 20mps, despite this being highlighted as of difficulty to achieve by the MADCAL algorithm.

Fig. 15
figure 15

Sink frame reception. Transmission range 62.02m, Grid topology. MADCaDPAL

Fig. 16
figure 16

Sink frame reception. Transmission range 55.94m, Grid topology. MADCaDPAL

Figures 15 and 16 show that even as interference range again reduces, sink frame reception improves with MADCaDPAL in use. Across all tests a speed of 10mps proves to be problematic in this regard. However, considering the benefit in energy consumption, sink reception even remaining at similar levels could be seen as acceptable.

5.4 Results - random topology

Figures 17, 18, 19, 20 show the average energy consumption of all significant nodes, again presented alongside the maximum energy consumption of significant nodes.

Fig. 17
figure 17

Average and maximum energy consumption of significant nodes (mWs). Transmission range 77.52m, Random topology. MADCaDPAL

In Fig. 17 results are very much as with the grid topology, although it can be seen that the spike in energy consumption when standard duty cycling and MADCAL are in use is even more distinct. Again energy consumption is reduced dramatically. What is off interest is that although the benefits are great, there is still a slight difference between average energy with MADCaDPAL in use and the maximum energy consumed. Showing that even though the scale of energy consumption is reduced and network lifetime increased, there is still an opportunity to further even energy consumption across significant nodes.

Fig. 18
figure 18

Average and maximum energy consumption of significant nodes (mWs). Transmission range 69.13m, Random topology. MADCaDPAL

This pattern repeats in Fig. 18, even as interference range reduces. MADCaDPAL can be seen to again significantly reduce energy consumption.

Fig. 19
figure 19

Average and maximum energy consumption of significant nodes (mWs). Transmission range 62.02m, Random topology. MADCaDPAL

Fig. 20
figure 20

Average and maximum energy consumption of significant nodes (mWs). Transmission range 55.94m, Random topology. MADCaDPAL

Even at the smallest interference ranges used as in Fig. 19 and 20, this pattern of improvements with the MADCaDPAL algorithm in use continues. The improvement in reducing energy spikes is now very clear. As a result, improving network lifetime before the first node expires by a factor of up to 7.

In Fig. 21, 22, 23, 24 the number of MAC layer frames received by the MSN during each simulation can be observed.

Fig. 21
figure 21

Sink frame reception. Transmission range 77.52m, Random topology. MADCaDPAL

Fig. 22
figure 22

Sink frame reception. Transmission range 69.13 m, Random topology. MADCaDPAL

In Fig. 21 it can be seen that with the largest interference range in use there is generally an improvement in frame delivery to the sink. As the interference range lessens in Fig. 22, frame delivery generally stays the same aside from when the sink is moving at 10mps. Delivery now returns to the poor level of when the standard duty cycling was in use.

Fig. 23
figure 23

Sink frame reception. Transmission range 62.02m, Random topology. MADCaDPAL

Fig. 24
figure 24

Sink frame reception. Transmission range 55.94m, Random topology. MADCaDPAL

Figure 23 shows that in the lower interference ranges again frame delivery remains at similar levels. Again though, at the smallest interference range as seen in Fig. 24, there is a drop when the sink moves at 10mps.

6 Conclusion

In this study we propose MADCaDPAL, for use with MSNs. This algorithm adds no network overhead, utilising predictable sink mobility and self-knowledge of location amongst static nodes to improve energy consumption and network performance when no allowance is made for a MSN, or when the MADCAL [12, 13] algorithm is in use. In utilising determination of the sink node position in relation to the threshold, within the CCA and preambling procedures of the lightweight CSMA MAC protocol used, and linking this to the already successful use of this approach in the SLEEP procedure, improvements of between 70% and 80% are observed. As importantly from a network lifetime standpoint however, the issue of excessive energy spikes is somewhat negated. With the maximum energy consumption across significant nodes now much closer to the average consumption figures. This in contrast to the results for MADCAL.

Improvements are also shown in frame delivery when a controlled, grid network formation is used. When we utilise a more strained, random topology frame delivery is generally the same or improved aside from two scenarios. As such, whereas MADCAL represented a crucial first study in utilising predictable sink mobility to positively influence network behaviour, the extended MADCaDPAL algorithm demonstrates how this functionality may be used to have a significant effect on network behaviour. Whilst the initial aim was to reduce network spikes, the subsequent benefit in energy consumption is so great as to represent a major step forward in this area.

The MADCaDPAL algorithm shows significant reduction in average energy consumption whilst improving frame delivery. However, despite the improvement in energy consumption and bringing the maximum energy consumption more in line with the overall average, some differences remain. For future work we seek to develop a completely dynamic approach, altering the communication threshold as time passes to react to spikes in energy consumption and subsequently, improve network lifetime.