1 Introduction

At present, with the rapid development of wireless communication technology and the widespread popularity of mobile intelligent devices such as smart phones and tablets, mobile intelligent devices based opportunistic networks, especially the mobile opportunistic networks (MONs), have been rapidly popularized and applied [7, 23, 26, 28]. MONs are a kind of wireless networks, which consist of a large number of stationary or mobile nodes (i.e., mobile intelligent devices carried by people). In MONs, nodes can conduct Device-to-Device (D2D) message transmission in a self-organizing and multi-hop manner via Bluetooth or WiFi [8, 9, 31]. Additionally, by utilizing the opportunities of nodes’ encounter and the short-distance wireless communication capability of mobile intelligent devices, nodes can establish temporary communication links between them and then exchange messages with higher transmission rate [21]. Furthermore, the entire transmission process does not require the support of the communication infrastructures and the phased multi-hop message forwarding is implemented in a “store-carry-forward” paradigm, which can effectively alleviate the current pressure of mobile big data faced by the communication infrastructures [3, 4, 12, 15]. Therefore, MONs will have broad application and can be widely deployed and applied in many fields, such as the intelligent transportation, intelligent medical treatment, and disaster rescue in the near future [1].

Moreover, MONs are considered as an important technical way to improve data transmission rate, increase the effective utilization of wireless spectrum resource, alleviate data flow in backbone network, reduce energy consumption, and realize the intelligent interconnection of all things, which have been an essential component of the next generation mobile communication system and also have attracted high attentions of governments, industries, and academia. Nevertheless, because of the high mobility of nodes and the lack of a complete communication path from the source node to the destination node of a message, the traditional TCP/IP protocols are no longer suitable for the communication in MONs anymore [11]. Thus, routing is a concerning research hotspot in MONs.

However, in MONs, the implementation of designing an effective message transmission method still has many challenges [17]. Firstly, the energy of nodes, that is the power of mobile devices, is usually limited. The contact detection among nodes, transmission, and reception of messages between any two nodes will separately consume a certain amount of energy [22]. Thus, the message transmission capability of nodes is limited, and then, the lifetime of the whole network is affected as well. Obviously, when the energy of nodes cannot be replenished in time, energy would become a very precious resource and the effective utilization of energy is also crucial.

Although some routing algorithms take into account the energy factor of nodes, the energy fairness among nodes is ignored [27]. As a result, some nodes with higher social status will need to forward or receive messages from other nodes frequently. Although the probability that some messages can be successfully delivered to their destination nodes will increase, because of the high energy consumption of these nodes with higher social status that are more likely to be unable to continue the transmission of messages and then become unavailable soon. The routing performance of the whole network will be declined as well. Therefore, taking the energy fairness among nodes into consideration is especially important.

Secondly, due to the high mobility of nodes and the time-varying and uncertain connectivity between any two encountered nodes in mobile opportunistic networks, when a message is broadcast by a node, it is more likely to face with the dynamic changing quality of the wireless channel [28, 29]. Therefore, the relay nodes which are decided in advance for the next hop may not receive the message, and then, the message needs to be retransmitted again, which may increase the energy consumption of nodes and reduce the lifetime of the entire network. The transmission delay of messages will also be increased.

In addition, because of the high mobility of nodes, it is very difficult to decide the time when to forward messages. A user is likely to encounter other different users at different times and sometimes may be isolated, which may further increase the difficulty of designing an effective message routing algorithm. Detailedly, as for a specific message, a node carrying the message usually does not know when it will encounter an excellent relay node and which encountered node can be regarded as an excellent relay node. If the node frequently forwards the message to each encountered nodes, the energy of the node would be quickly exhausted and then it would become an unavailable node soon. Meanwhile, the node could not be able to participate in the later message transmission process which may miss some better relay nodes, and the routing performance would be decreased as well. On the contrary, if the node always carries the message and does not forward the message to other nodes, although its energy is saved, the successful delivery probability of the message would be quite low. Therefore, it is particularly important to decide when to make the forwarding decision and which nodes can be selected as the relay nodes.

Fortunately, the movement of nodes in the mobile opportunistic network is usually not random but according to their interests. Moreover, the probability that people with the same interests are more likely to encounter each other. Therefore, it is better to explore and exploit nodes’ mobility and the encounter relationship among nodes to find out a more suitable opportunity to forward messages in order to improve the routing performance.

Based on the inspiration of the above discussion, we propose a novel energy-efficient probabilistic routing method for MONs in this paper, called NEEP method, in which we fully take the energy fairness among nodes, the quality of wireless channel, and the mobility of nodes into consideration to improve the routing performance. More specifically, the main contributions of the proposed NEEP method are summarized as follows:

  • We explore the regularity of nodes’ mobility and the encounter relationship among nodes to decide the time when to forward a message to other nodes. Only when the message forwarding conditions are satisfied by a node’s neighbors, the node could broadcast the corresponding message; otherwise, the node could wait for a better forwarding opportunity.

  • A longer network lifetime can be achieved, by taking the effective utilization of nodes’ energy and the energy fairness among nodes into consideration. Moreover, the proposed NEEP method can effectively reduce the retransmission number of messages through considering the wireless channel quality of message transmission.

  • In order to improve the message delivery probability and meanwhile effectively control the number of replicas for each message, a forwarding authority transfer policy for each message is adopted. Simulation results show that the proposed method is better than the existing routing algorithms.

The remainder of this paper is organized as follows. Section 2 reviews the related works, followed by the network model in Section 3. Section 4 describes the implementation of the NEEP method. Section 5 reveals the simulation experiments, followed by numerical results and discussions in Section 6. Finally, we conclude our paper in Section 7.

2 Related works

In the past few years, many researchers focus on the study of MONs, especially on designing efficient routing algorithms for MONs, such as the optimization based routing algorithms, energy consumption equilibrium routing algorithms, and the social-aware routing algorithms [25, 29, 30, 32, 33].

One of the most important things for designing an efficient routing algorithm is to decide when to make the forwarding decision and which nodes can be selected as the relay nodes for the next hop of a specific message. As for the optimization-based algorithms, each node first evaluates its neighbors and then selects optimal relay nodes according to the predetermined standard and next forwards messages to the selected nodes. However, the optimization standard of these methods usually has some limitations and easily leads to a locally optimal but globally inferior situation because of nodes’ high mobility. Saha et al. [17] proposed the seer, a simulated annealing-based routing in opportunistic mobile networks, which can avoid getting trapped at local optimum. In seer, each message is related to a cost function, and a message can be replicated to another relay node with a lower cost than the sender. Moreover, the message is replicated with decreasing probability. However, the effectiveness of nodes’ energy has not been taken into account. One of the other most representative routing algorithms is the epidemic algorithm, which was proposed by [20]. This algorithm could achieve the highest delivery ratio and the lowest delivery latency at the expense of consuming plenty of network resources, such as nodes’ energy, nodes’ buffer space and bandwidth and so on. If the network resources were limited, the performance of this algorithm would drop quickly. On the basis of the epidemic algorithm, reference [19] proposed a spray-and-wait routing algorithm, which could effectively reduce the resources consumption by controlling the maximum number of replicas for each message in the network. Although its spraying phase is very effective, the waiting phase takes long to execute and only blindly waits for encountering the destination nodes of the messages that a node stores. Therefore, the performance of the routing algorithm is decreased.

The existing routing algorithms about energy consumption equilibrium often only take the residual energy of a node and its neighbors into consideration and then select a node with the highest residual energy as the relay node, without considering the energy fairness among nodes. Zhang et al. [27] presented an energy-aware congestion control scheme in opportunistic networks to avoid a congestion phenomenon and reduce the energy consumption by proposing a novel congestion control scheme. Simulation results show that the routing performance is improved after using the proposed scheme. However, the energy fairness among nodes are not considered and nodes will adopt the congestion control policy, only when the buffer of these nodes is full. Thus, the routing performance of the proposed scheme is greatly related to the buffer size of nodes. When nodes’ buffer size are larger and the energy of nodes is lower, this routing method may not be a very effective algorithm. Furthermore, although some routing algorithms take the energy factor into consideration, the mobility of node and the instability of wireless channel are ignored. Ma et al. [14] proposed an energy-efficient routing protocol for mobile opportunistic network, in which both the sociality of nodes and the dynamic changes of nodes’ energy were considered when selecting relay nodes. However, the quality of wireless channel is ignored. Thus, the predetermined relay nodes for the next hop may not receive the message because of the dynamic changing quality of the wireless channel. Although these routing algorithms are locally optimal, they cannot always be guaranteed to be globally optimal and cannot achieve a preferable routing performance.

The social-aware routing algorithms often forward messages to the nodes with high social characteristics according to some metrics, in order to make the messages to be delivered as soon as possible. Zhao et al. [31] proposed a social-aware probabilistic routing method for mobile opportunistic social networks, in which probabilistic and social-aware strategies were combined and the multiple copy policy was adopted as well. They first modeled a mobile opportunistic social network (MOSN) into some overlapping regions and then proposed two region-related centrality degrees associated with users’ social characteristics. Furthermore, Shi et al. [18] put forward a cache-aware routing scheme in mobile social network, in which interest routing scheme was designed on the basis of the social regularity associated with the proposed interest metrics among nodes, and meanwhile, the data routing scheme was designed on the basis of the proposed closeness metrics among nodes. Correspondingly, based on the proposed friendship metrics among nodes, an in-network caching scheme was designed to deal with the forthcoming requests. Simulation results show that this scheme can achieve better routing performance. Moreover, Zheng and Wu [33] proposed an up-and-down routing algorithm in mobile opportunistic social networks with bloom-filter-based hints. This routing algorithm first exhibited a nested core-periphery structure, and a message could be uploaded from the source to the network core with this structure, through iteratively forwarding the message to a relay that had a higher position in the nested network hierarchy. Additionally, Lindgren et al. [13] proposed a prophet algorithm, in which a node only replicated a message to the nodes with a higher delivery probability to the message’s destination node than itself, although these four routing methods can achieve a competitive performance. However, the nodes with higher social characteristics would consume relatively large energy. If the energy of nodes cannot be replenished in time, the practicality of these three methods would be limited.

In this paper, we propose a novel energy-efficient probabilistic routing method with a comprehensive consideration of nodes’ energy, the influence of the wireless channel quality, and the mobility of nodes. Consequently, we can effectively realize the control of energy fairness among nodes, reduce the retransmission number of messages, and maintain a good balance between the delivery ratio and the overhead ratio. In the remainder of this paper, we take a detailed look at the proposed NEEP method.

3 System model

In this paper, we mainly consider the following mobile opportunistic network environment. There exist a large number of mobile nodes in the network, and the set of these mobile nodes can be represented by V. Each mobile node vi(viV) could encounter some other nodes, when moving in the network. In addition, there is a link between any two encountered nodes in a pair, on which the connection weight value indicates the encounter closeness relationship between them. We use W to represent the set of encounter link weight, and each weight value wi,j(wi,jW) indicates the average contact frequency between any two nodes vi and vj. To make the presentation easier to follow, we briefly summarize the notations of key parameters used throughout this paper in Table 1.

Table 1 The important notations used throughout this paper

We assume that the average inter-encounter time between any two nodes vi and vj in a pair follows an exponential distribution with the parameter λi,j (e.g., wi,j=λi,j). Thus, the average inter-encounter time between nodes vi and vj is 1/λi,j. Note that this assumption has been validated by realistic dataset analysis [6] and widely adopted in many existing researches, e.g., [2, 5, 16, 22, 24].

Moreover, each node vi has a non-renewable initial energy E. A node vi would become invalid and then move out of the network, when its energy is exhausted. Messages that exist in the network can be generated by the valid nodes. Let us consider that m.sou, m.dst, m.ttl and m.data and Pm separately denote the source, destination, initial time-to-live (TTL), data to be delivered, and the required delivery probability of a message m, ∀mM. The TTL value of a message is usually considered to be a large, but finite positive value, which can be automatically decrease with time. In addition, when the TTL value of a message drops to 0, the message will be removed from the nodes’ cache.

Obviously, the energy resource that each node consumes in the mobile opportunistic networks mainly exists in the following three aspects: scanning channel for contact detection, communication for transmitting, and receiving messages respectively. The energy consumption in transmitting and receiving messages is primarily related to the size of messages and the bandwidth of the network. More specifically, the energy that a node vi whose current residual energy is Ecur will consume within an observable time interval itv can be described with the following three aspects.

Firstly, the scanning energy consumption of a node is mainly used to detect the meeting opportunities between the node and other nodes, which consumes esca energy at each time. T is used to denote the scanning period, which is the time interval between any two adjacent scanning for any node. Thus, the scanning energy consumption Esca can be described by the following formula:

$$ E_{sca}=e_{sca} \times \frac{itv}{T} $$
(1)

Secondly, the transmitting energy consumption of a node is mainly used to forward messages, which consumes etsm energy per second. Let Stsm represent the total size of messages that node vi transmits during the time interval itv. Therefore, the transmitting energy consumption Etsm can be described by the following formula:

$$ E_{tsm}=e_{tsm} \times \frac{S_{tsm}}{B}, $$
(2)

where the channel bandwidth is represented by B. The more messages a node forwards, the more energy it would consume.

Thirdly, the receiving energy consumption of a node is mainly used to receive messages, which consumes ercv energy per second. Let Srcv denote the total size of messages that node vi receives during the time interval itv. Thus, the receiving energy consumption Ercv can be described by the following formula:

$$ E_{rcv}=e_{rcv} \times \frac{S_{rcv}}{B}, $$
(3)

where B is the channel bandwidth.

Consequently, after the time interval itv, the current residual energy Ecur of a node vi can be updated by the following equation:

$$ E_{cur} = E_{cur}-\left(E_{sca}+E_{tsm}+E_{rcv}\right) $$
(4)
$$ = {E_{cur}} - \left(e_{sca} \times \frac{itv}{T} + e_{tsm} \times \frac{S_{tsm}}{B} + e_{rcv} \times \frac{S_{rcv}}{B}\right), $$
(5)

where Ecur on the right side of the Eq. (5) represents the old residual energy value of node vi before the observed time interval itv at this time, and the left side Ecur of the Eq. (5) stands for the new updated residual energy value of node vi after the observed time interval itv at this time.

4 The proposed NEEP routing method

In this section, we mainly present the basic idea of the proposed NEEP method, on the basis of the presented system model. Furthermore, for the sake of simplicity, we mainly focus on the description of the transmission process of a specific message only. This method is composed of two phases: the initialization phase and the routing phase. The initialization phase is designed to collect some useful information for network initialization, and then, the routing phase makes message forwarding decisions on the basis of the collected useful information. The following elaborates the detailed description of the two phases.

4.1 The initialization of NEEP method

In an MON, time is divided into infinitely repeated time cycles with the same length ltc, and each time cycle is partitioned into several discrete time slots of equal size lts, as shown in Fig. 1. For instance, a year can be considered as the time cycle with the same length one week (ltc=1 week), and a week can be regarded as the time slot whose size equals 7 days (lts=7 days). Here, we assume that the encounter behavior between any two nodes is similar within a fixed time slot of each time cycle. For instance, according to the schedule of a semester, a student should take the same class on every Wednesday. Therefore, the classmates and teachers that he will meet on every Wednesday are the same. Consequently, some useful encounter information can be accumulated, which can be treated as an important reference for forwarding messages.

Fig. 1
figure 1

An example about the time cycle and time slot

For the purpose of simplifying the expression, we use D to represent the destination m.dst of message m. The initialization phase includes three stages, which are summarized in the Algorithm 1. (1) Line 2: each node vi (viV) records the average encounter frequency λi,D between itself and the destination D of message m in unit time. (2) Line 3: each node vi (viV) calculates the probability of the number that it meets other nodes in each time slot respectively. We use Pi(k,n) to express the probability that node vi simultaneously encounters n nodes within the current k-th time slot, in which Pi(k,n)∈ [ 0, 1.0], both k and n are finite positive integers, and we set that a time cycle totally has K time slots, 1≤kK. (3) Line 4: each node vi (viV) calculates the average encounter frequency that all the other nodes it meets encounter the destination D of message m within each time slot. Here, we use λi(k) to represent the calculated average encounter frequency that all the other nodes which vi meets encounter the destination D within the k-th time slot, that is,

$$ \lambda_{i}(k) = \left[ \frac{1}{|Ne(i,k)|} \times \sum\limits_{v_{j} \in Ne(i,k)} \lambda_{j,D} \right], $$
(6)

where Ne(i,k) represents a set of nodes that node vi meets within the k-th time slot, vj is a node belonging to Ne(i,k), |Ne(i,k)| denotes the number of nodes in Ne(i,k), and λj,D is the encounter frequency between node vj and the destination D.

4.2 The implementation of NEEP method

Some useful information can be accumulated, after the initialization phase is completed. In this subsection, the detailed implementation of the proposed NEEP method will be introduced based on the accumulated information.

4.2.1 Determining whether to broadcast message m at present

Determining whether to broadcast message m at present will mainly be described in this subsection, and the main process is shown in Algorithm 2. Detailedly, in the Algorithm 2, lines 2–3 demonstrate what should node vi do, if it encounters the destination of message m at present. Similarly, lines 4–5 present what should the node vi do, if it does not encounter the destination of message m at present and meanwhile the required delivery probability Pm≤0. Lines 6–19 determine whether to broadcast message m at present, if node vi not encounters the destination of message m at this moment and the required delivery probability Pm>0. The following are the main detailed decision-making process.

When a node vi carrying a message m encounters several other nodes, if the destination of message m does not exist in the current encountered nodes, node vi should determine whether to forward message m to the current encountered nodes at this time or not. Firstly, node vi calculates the discrete time slot kt that it is currently in by the following formula, that is,

$$ k_{t} = \left\lfloor (t\;\bmod \; l_{tc})/l_{ts} \right\rfloor + 1, $$
(7)

where t is the current time, ltc and lts separately denote the length of a time cycle and the length of a discrete time slot.

Next, by calculating the following two inequalities Eqs. (8) and (9), the node vi can determine whether to broadcast the message m at present. If one of the two inequalities holds, the node vi would broadcast the message m at this time. Otherwise, node vi will give up this chance and still carry message m to wait for the next broadcast chance, if neither of the two inequalities Eqs. (8) and (9) is true.

$$ 1 - \prod\limits_{v_{j} \in N_{i}(t)} \left(1 - p_{j}(R_{TTL})\right) \ge \delta, $$
(8)
$$ {\begin{aligned} 1& - \prod\limits_{v_{j} \in N_{i}(t)} \left(1 - p_{j}(R_{TTL}) \right) \\&\quad\ge \mathop{max}\limits_{n = 1,\ldots,N} \left\{ \left[ 1 - (1 - \hat{p}_{i}(k_{t}))^{n} \right] \cdot P_{i}(k_{t},n) \right\}, \end{aligned}} $$
(9)

where the threshold of the required delivery probability for forwarding a message m at this time is denoted by δ(δ∈ [ 0, 1]), Ni(t) represents the set of nodes that node vi currently encounters, t is the current time, pj(RTTL) represents the probability that node vj would meet the destination within the remaining TTL of message m, pj(RTTL)∈[ 0, 1], Pi(kt,n) denotes the probability that node vi simultaneously encounters n neighbor nodes within the current kt time slot, N is the maximum number of nodes that node vi can simultaneously encounter within a time cycle and N is a finite positive integer as well, and \(\hat {p}_{i}(k_{t})\) stands for the average encounter probability of all the other nodes that node vi encounters within the kt time slot meeting the destination D.

As the aforementioned assumption, the average inter-encounter time between any node vi and the destination node D of message m follows an exponential distribution with the parameter λi,D. Similarly, the probability that node vj has a contact with the destination D of message m at time t follows the exponential distribution, i.e., \(\lambda _{j,D} \cdot e^{-\lambda _{j,D} \cdot t}\phantom {\dot {i}\!}\). Thus, the contact probability pj(RTTL) between node vj and the destination D within the remaining TTL of message m can be calculated as follows:

$$\begin{array}{*{20}l} p_{j}(R_{TTL}) &= \int_{0}^{R_{TTL}} \lambda_{j,D} \cdot e^{-\lambda_{j,D} \cdot t} dt, \end{array} $$
(10)
$$\begin{array}{*{20}l} &= 1 - e^{-\lambda_{j,D} \cdot R_{TTL}}, \end{array} $$
(11)

where λj,D is the average encounter frequency that node vj meets the destination node of message m in unit time and RTTL is the residual TTL value of message m (mM), which can be calculated by the following Eq. (12).

$$ R_{TTL} = m.ttl - (t - m.created), $$
(12)

where m.ttl is the initial TTL value of message m, t is the current time, and the time instant when message m was created is denoted by m.created.

Similarly, based on the recorded information about λi(k), node vi can calculate the average encounter probability that all the other nodes it meets encounter the destination D of message m within each time slot. We use \(\hat {p}_{i}(k_{t})\) to represent the average encounter probability of all the other nodes that node vi encounters within the kt time slot meeting the destination D of message m. Thus, the average encounter probability \(\hat {p}_{i}(k_{t})\) can be calculated by:

$$ \hat p_{i}(k_{t}) = 1 - e^{- \lambda_{i}(k_{t}) \cdot R_{TTL}}, $$
(13)

where the remaining TTL value of message m is denoted by RTTL.

The left side of the Eq. (8) represents the delivery probability of message m with the help of the current neighbor nodes of node vi. Thus, the establishment of Eq. (8) indicates that the current required broadcast threshold can be satisfied with the assistance of node vi’s current neighbor nodes. Therefore, the node vi can broadcast message m to its neighbor nodes next.

The meaning on the left side of the Eq. (9) is similar to the meaning on the left side of the Eq. (8). The right side of the Eq. (9) stands for the expected maximum delivery probability with the assistance of all neighbor nodes that node vi simultaneously encounters within the current kt time slot can achieve. Thus, the establishment of Eq. (9) represents that the delivery probability that message m can achieve with the assistance of node vi’s current neighbor nodes is better than the later expected maximum delivery probability within the kt time slot. Consequently, node vi does not need to wait for a better forwarding opportunity and meanwhile can broadcast message m to its neighbor nodes at this time. In view of this, a worse situation in the future can be avoided. Detailedly, the worse situation refers to the current forwarding opportunity outperforms any other forwarding opportunity in the future. That is to say, the delivery ability that the current neighbor nodes of node vi can satisfy is better than the future encountered neighbor nodes. Thus, the message m should be diffused as soon as possible by utilizing the current good situation to improve the delivery probability of message m.

Additionally, if the node vi carrying message m does not encounter the destination node of message m currently and the current required delivery probability Pm≤0, node vi still carries message m until it meets the destination of message m. Note that, once the required delivery probability Pm≤0 for a replica of message m, the replica of message m cannot be forwarded to other nodes except its destination node.

4.2.2 Deciding which node can continuously forward message m to other nodes

Based on the completion of the Subsection 4.2.1, we can know whether node vi decides to broadcast message m to other nodes or not at this time. If node vi decides not to forward the message m to its current neighboring nodes, it will continue to carry message m until it encounters more appropriate forwarding opportunity or the destination node of message m. Conversely, if node vi decides to forward message m to its current neighboring nodes, it should select which node can continuously forward message m to other nodes, and the main process is summarized in Algorithm 3. Note that, as for a specific message m existing in the network, there may exist several replicas of the message m in different nodes. However, only one replica of the message m could be forwarded to other relay nodes, by the node who carries this specific replica of message m. The main reason for this is that for each message m, the number of replicas for a message m can be effectively controlled.

Detailedly, the main process of this subsection is interpreted as follows. If node vi decides to broadcast message m, it often faces with the dynamic changing quality of the wireless channel, and thus, the predetermined forwarding nodes for the next hop may probably not receive message m successfully. Accordingly, finding out which neighbor nodes have successfully received message m after message m being broadcast is an important thing for node vi. Lines 2–3 of the Algorithm 3: node vi broadcasts message m to its current neighbors.

Lines 4–8: One of the node vi’s neighbor node vj will send an acknowledgement message to node vi, if it has successfully received message m. The sent acknowledgement message includes node vj’s ID number, its residual energy, message m’s ID number, and the contact probability that the node vi will meet the destination within the remaining TTL of message m. Line 9: later, after receiving the acknowledgement messages from its neighboring nodes, the new required delivery probability Pm of message m can be calculated and updated by the node vi through the following formula, that is,

$$ P_{m} = P_{m} - \left\{ 1 - \prod\limits_{v_{j} \in S_{i}} \left(1-p_{j}(R_{TTL}) \right) \right\}, $$
(14)

where the right side Pm of the Eq. (14) indicates the original Pm value of the message m, the left side Pm of Eq. (14) stands for the new updated value, Ni(t) and Si separately stand for the set of node vi’s current neighbor nodes and node vi’s neighbor nodes which have successfully received the message m, SiNi(t), and pj(RTTL) is the encounter probability that node vj would meet the destination node of message m within the remaining TTL of message m.

Lines 10–11: if the updated Pm≤0, node vi would always carry message m until it meets the destination of message m, and update Pm with the newly calculated value. Because Pm≤0 demonstrates that the required delivery probability of message m can be satisfied with the assistance of node vi and its current neighbor nodes. Therefore, the message m no longer needs to be forwarded anymore, and all the nodes carrying the replicas of message m only need to deliver the message m to its destination node, instead of forwarding the replicas of message m to any other nodes for help. In view of this, not only the number of replicas of a message m can be reduced, but the

probability that the message m can be successfully delivered to its destination will also be guaranteed. Thus, the energy consumption of nodes can be decreased and the lifetime of the entire network can be prolonged as well.

Lines 12–20: otherwise, if the updated Pm>0, it indicates that the required delivery probability of the message m still cannot be guaranteed after this broadcast and node vi should select a new appropriate node from itself and all its current neighbors which have successfully received message m to continuously forward message m at a right time. Detailedly, node vi first calculates the forwarding capability of itself and its current neighbors which have sent an acknowledgement information about the message m to vi, according to the following equation. For example, the forwarding capability of node vi can be calculated as follows:

$$ C_{i} = \alpha \cdot \frac{E_{cur}}{E} + \beta \cdot p_{i}(R_{TTL}), $$
(15)

where α+β=1 (α>0, β>0), Ecur is the residual energy of node vi at the current time, E is the initial energy value of node vi, and pi(RTTL) is the contact probability between node vi and the destination D within the remaining TTL of message m.

Furthermore, node vi finds out the node which has the highest forwarding capability from itself and the neighboring nodes who have sent acknowledgement messages to node vi. If the vi is the selected node who has the highest forwarding capability, it will still carry the message m and update the delivery probability Pm of the replica of message m stored in it with the new calculated Pm value. Otherwise, if one of node vi’s neighbor node vj is the selected forwarding node who has the highest forwarding capacity value, an update message including the updated Pm value will be sent from the node vi to node vj. Node vj will update the required delivery probability Pm of message m stored in it with the new received Pm value, after it receives the update message sent by the node vi. Meanwhile, node vi sets the Pm value of message m stored in it to 0, because the unsatisfied delivery probability of message m would continuously be done by the selected neighbor node vj. In this way, the node with the highest forwarding capacity is selected as the forwarding node. That is, the selected forwarding node has both higher residual energy and contact probability with the destination. Consequently, the residual energy of nodes in the network can be balanced and the lifetime of the entire network can be prolonged as well.

Lines 22–26: additionally, if a neighbor node vk (vkSi) does not receive an update message, it would set the required delivery probability of message m stored in it to 0 and always carries message m until it meets the destination of message m. This operation ensures that the replicas of each message can only be forwarded by a specific node, but although the specific node is likely to be different at different times. By doing this, the number of replicas for each message can be effectively reduced and further the network overhead ratio could also be decreased under the condition of guaranteeing the probability that a message can be successfully delivered to its destination node.

5 Simulation experiments

In order to reveal the effectiveness of the proposed NEEP method, extensive simulation experiments are conducted to evaluate the performance of the proposed NEEP method by comparing it with three other routing algorithms, the epidemic algorithm, the spray-and-wait algorithm, and the prophet algorithm, on ONE network simulator version 1.5.1 from the delivery ratio and the overhead ratio [10]. The definitions of the delivery ratio and the overhead ratio are described as follows:

  • Delivery ratio is the message delivery probability defined by Nd/Ng, where Nd is the number of the messages being successfully delivered to their destination nodes and Ng is the number of the generated messages;

  • Overhead ratio is the assessment of bandwidth efficiency defined by (NrNd)/Nd, in which Nr is the number of relayed messages including replicated messages and Nd is the number of the messages being successfully delivered to their destination nodes.

According to the analysis of network structure and the characteristic of nodes encounter, we establish a regulation to simulate a more real MON, which is described as follows. Nodes in the network are divided into five grades in an ascending way. The first degree includes 35% nodes, in which each node can encounter with 5% other nodes. There are 25% nodes in the second degree, where each node can meet 10% other nodes in the network. The third degree includes 20% nodes, in which each node can encounter with 15% other nodes. There are 15% nodes in the fourth degree, where each node can meet 20% other nodes in the network. Moreover, there are 5% nodes belonging to the fifth degree, where each node can meet 25% nodes in the network.

Since the exponential distribution parameter between nodes vi and vj is λi,j, the average encounter time interval is 1/λi,j. We set the value of 1/λi,j to be a random number from 3000 to 4000 s. According to the above regulation, the corresponding data set can be generated. Afterwards, the subsequent experiments can be performed on the generated data set. The parameters used in the later simulation are shown in Table 2.

Table 2 Simulation parameters

6 Numerical results and discussions

In order to verify whether the proposed method outperforms the other aforementioned routing algorithms or not in terms of the delivery ratio and the overhead ratio, we mainly compare the proposed method with other mentioned routing algorithms in the change of nodes’ initial energy, nodes’ buffer size, and messages’ size respectively.

6.1 The impact of nodes’ initial energy on routing algorithm performance

In this experiment, we mainly explore the impact of nodes’ initial energy on routing performance of different routing algorithms and the value of nodes’ initial energy in the network is set to 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2500, 3000, 3500, 4000, 4500, and 5000 J respectively. Figures 2a, 3a, 5a, and 6a show the change of the delivery ratio within a scenario where the number of nodes in the network is 200, 400, 600, and 800 respectively. Figure 4a illustrates the change of the overhead ratio for different routing algorithms, which is achieved in a scenario where the number of nodes in the network is 400.

Fig. 2
figure 2

The change of the delivery ratio when |V|=200. a The delivery ratio by changing the initial energy value of nodes. b The delivery ratio by changing the buffer size of nodes. c The delivery ratio by changing the message size

Fig. 3
figure 3

The change of the delivery ratio when |V|=400. a The delivery ratio by changing the initial energy value of nodes. b The delivery ratio by changing the buffer size of nodes. c The delivery ratio by changing the message size

Fig. 4
figure 4

The change of the overhead ratio when |V|=400. a The overhead ratio by changing the initial energy value of nodes. b The overhead ratio by changing the buffer size of nodes. c The overhead ratio by changing the message size

Fig. 5
figure 5

The change of the delivery ratio when |V|=600. a The delivery ratio by changing the initial energy value of nodes. b The delivery ratio by changing the buffer size of nodes. c The delivery ratio by changing the message size

Fig. 6
figure 6

The change of the delivery ratio when |V|=800. a The delivery ratio by changing the initial energy value of nodes. b The delivery ratio by changing the buffer size of nodes. c The delivery ratio by changing the message size

From Figs. 2a, 3a, 5a, and 6a, we can see clearly that as the initial energy value of nodes in the network increases, the delivery ratio of the spray-and-wait routing algorithm and our NEEP method is ascending first and then remains smooth. Nevertheless, the delivery ratio of the epidemic method and the prophet algorithm is always ascending within a certain range. The main reasons for these phenomena are shown as follows. Since forwarding and receiving messages must consume some energy separately, when the initial energy value of nodes is small, a large number of nodes in the network will quickly exhaust their energy due to forwarding and receiving messages. Therefore, the energy of these nodes will be exhausted and they would become useless, unable to participate in the transmission process of subsequent messages in the later network. Moreover, the messages carried by these useless nodes whose energy is exhausted cannot be forwarded anymore. Similarly, the messages generated by these useless nodes later cannot be forwarded as well. Consequently, the number of messages being successfully delivered to their destination nodes is relatively low, and the delivery ratio of each routing algorithm is also lower. As the initial energy of nodes increases, each node can forward and receive more messages, and the lifetime of each node and the entire network will become longer. Thus, the delivery ratio of each routing algorithm increases to different extent.

In addition, as for the spray-and-wait routing algorithm and the proposed NEEP routing method, the number of replicas for each message can be effectively controlled, so each node needs less energy consumed for forwarding and receiving messages. Therefore, when the initial energy of nodes increases to meet the requirement for forwarding and receiving messages in the network, the initial energy of nodes will no longer be the main factor affecting the delivery ratio of these two routing algorithms. Consequently, the delivery ratio of the two routing algorithms shows a smooth trend in the later stage, which can be seen from Figs. 2a, 3a, 5a, or 6a.

From Fig. 4a, we can find that as the initial energy value of nodes increases, the spray-and-wait routing algorithm and the proposed NEEP method have a lower overhead ratio, while the epidemic method and the prophet method both have a higher overhead ratio in an ascending trend to different extent. The main reasons for these phenomena are that by separately setting the upper bound number of replicas for each message and the conditions for broadcasting messages, the replicas of each message in the network can be effectively controlled through using the spray-and-wait routing algorithm and the proposed NEEP method. As for the epidemic method, nodes exchange their messages without any limitation, and there are many unnecessary replicas existing in the network. Consequently, as the initial energy value of nodes increases, the number of being successfully delivered messages is increased more slowly than that of being successfully relayed messages.

From Figs. 2a, 3a, 5a, and 6a, we can also find that as the number of nodes in the network increases, although the changing trend of the delivery ratio for each routing algorithm is the same, the maximum delivery ratio of them is different. The maximum delivery ratio of the proposed NEEP method is becoming better as the number of nodes increases, while the others do not show the same characteristic. The main reasons are shown as follows. The proposed NEEP method can effectively control the number of replicas for each message. As the number of nodes in the network increases, a node can encounter more nodes and select better neighbors as the relay nodes to help it forward messages. Consequently, the delivery ratio of the proposed NEEP routing method is becoming better, as the number of nodes in the network increases. For the Epidemic routing algorithm, any two encountered nodes would exchange the messages that they store without restriction. Therefore, as the number of nodes in the network increases, energy consumption of nodes for forwarding and receiving messages is too fast. The energy of nodes in the network is easily to be exhausted, and then, these nodes become useless. The number of messages being successfully delivered to their destination nodes is fewer, and the delivery ratio is lower. As the number of nodes in the network increases, the reason why the delivery ratio of the prophet routing algorithm becomes lower is similar to the Prophet routing algorithm.

6.2 The impact of nodes’ buffer size on routing algorithm performance

In this experiment, we mainly explore the impact of nodes’ buffer size on routing performance of different routing algorithms and the value of nodes’ buffer size in the network is set to 1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, and 120 MB respectively. Figures 2b, 3b, 5b, and 6b illustrate the change of the delivery ratio within a scenario where the number of nodes in the network is 200, 400, 600, and 800 respectively. Figure 4b shows the change of the overhead ratio for different routing algorithms with 400 nodes in the network, as the buffer size of nodes increases.

From the aforementioned experiments on the delivery ratio, we can clearly find that as the buffer size of nodes increases, the delivery ratio of each routing algorithm shows an increasing trend to different extent within a certain range. When the buffer size of nodes is smaller, the number of messages they can store and carry is fewer and the buffer of these nodes easily becomes full. Consequently, there exist fewer valid replicas for each message in the network. In addition, when a node’s buffer is full, it would frequently discard several existing messages it is carrying to make room for a new coming message. Such frequent alternating behavior wastes the energy of the nodes that forward or receive these discarded messages, which may also reduce the network lifetime. Therefore, due to the above reasons, when the buffer size of nodes is smaller, the probability each message can be successfully delivered to its destination node is lower, and correspondingly, the delivery ratio of each routing algorithm is lower. As nodes’ buffer increases, the number of messages that each node can store and carry ascends. The replacement between the already stored messages and the newly coming messages does not frequently occur, and each node can carry more messages to help them deliver to their destinations. Consequently, as the buffer size of nodes increases, the probability that each message can be successfully delivered to its destination node increases, and the delivery ratio of each routing algorithm also shows an upward trend to different extent.

As for the spray-and-wait routing algorithm and the proposed NEEP method, the delivery ratio of them first ascends and then remains smooth, as the buffer size increases. The reason for the ascending phase is as described in the above analysis. Moreover, the reason for the smooth phase is that these two methods can effectively control the number of replicas for each message. Therefore, nodes’ buffer for storing messages required by these two methods are not large. When nodes’ buffer is large enough to accumulate the coming messages, the increase of nodes’ buffer has little effect on the delivery ratio of these two routing methods.

From Fig. 4b, we can find that as the buffer size of nodes increases, the overhead ratio of each routing algorithm shows a descending trend to different extent. The reason for this phenomenon is that a node can store fewer messages when its buffer size is small. When a new message is coming, the node would drop some messages that it is carrying to make room for the new message. Consequently, the number of relayed messages is larger while the number of being successfully delivered messages is lower. Thus, the overhead ratio is higher for each routing algorithm, when the buffer size of nodes is smaller. With the increase of nodes’ buffer size, each node can store more messages and help more messages to be successfully delivered. As a result, the number of being successfully delivered messages increases, and the overhead ratio of each routing algorithm decreases. Moreover, the overhead ratio of the spray-and-wait routing algorithm and the proposed NEEP routing method is lower than that of the epidemic routing algorithm and the prophet routing algorithm.

6.3 The impact of message size on routing algorithm performance

In this experiment, we mainly explore the impact of message size on routing performance of different routing algorithms and the value of message size in the network is set to 100, 200, 300, 400, 500, 600, 700, 1000, 1300, 1600, and 1900 KB respectively. Figures 2c, 3c, 5c, and 6c illustrate the change of the delivery ratio within a scenario where the number of nodes in the network is 200, 400, 600, and 800 respectively. Figure 4c shows the change of the overhead ratio for different routing algorithms with 400 nodes in the network, as the message size increases.

With the increase of message size, we can see clearly that the delivery ratio of different routing algorithms shows a decreasing trend. The main reasons for this phenomenon are shown as follows: Firstly, as the message size increases, the energy consumed to forward or receive a message would increase. Thus, nodes’ energy would be consumed faster and these nodes would become useless soon when the residual energy of these nodes is exhausted. Correspondingly, the lifetime of the whole network would become shorter. Consequently, the messages stored in the nodes whose residual energy have been exhausted would lose the opportunity for being successfully delivered. In the whole network, the number of messages being successfully delivered to their destination nodes would decrease, and the delivery ratio descends as well. This reason mainly affects the delivery ratio of the epidemic routing method and the prophet routing method. Secondly, as the message size increases, the number of messages that a node can store becomes less. Thus, a message would have less relay nodes to help deliver it to its destination. Thirdly, as the message size increases, the time required to forward or receive a message would become longer. When the movement speed of nodes is constant, as the message size increases, any two encountered nodes in a pair are more likely to leave the communication range of each other in the process of forwarding or receiving a message, which may interrupt the message transmission and cause the transmission failure. Consequently, as the message size increases, the number of messages that are successfully delivered to their destinations or successfully transmitted to other relay nodes will separately decrease. Thus, the delivery ratio of each routing algorithm decreases to different extent with the increase of the message size.

From Fig. 4c, we can see that the overhead ratio of each routing algorithm is descending to different extent, as the message size increases. The main reason for this phenomenon is that the probability for successfully forwarding a message decreases with the increase of message size. Thus, both the number of messages being successfully transmitted to other relay nodes and the number of messages being successfully delivered to the destination decrease, as the message size increases. Consequently, the overhead ratio of each routing algorithm decreases.

7 Conclusion

Because of nodes’ mobility and the frequent variability of communication links, routing is an important and challenging problem in mobile opportunistic networks. When the energy of nodes cannot be replenished in time, the energy will be regarded as a very valuable resource. In addition, when a message could be forwarded and which nodes can be selected as appropriate relay nodes are especially important. In this paper, we presented NEEP, a novel energy-efficient probabilistic routing method for MONs, including the network initialization phase and the routing phase. By exploring the regularity of nodes’ mobility and the encounter relationship among nodes, some useful encounter information can be collected during the initialization phase. Based on the accumulated encounter information, the routing process is presented, which includes determining whether to broadcast a message m at present and deciding which node can continuously forward a message m to other nodes two phases. Meanwhile, we take the effective utilization of nodes’ energy and the energy fairness among nodes into consideration; thus, a longer network lifetime can be achieved in comparison with other routing algorithms for MONs under the same conditions. Furthermore, we use the exponential distribution to calculate the encounter probability between any two nodes in a pair. Simulation results show that the proposed method outperforms the previous routing algorithms in terms of the delivery ratio and the overhead ratio. Moreover, the proposed NEEP method can be applied in many scenarios, such as the disaster rescue, the intelligent transportation, and the intelligent medical treatment. In the further studies, we will focus on considering the transitivity of the encounter probability among nodes and the privacy protection during the process of message delivery.