This section proposes an incentive-driven bundle delivery scheme based on the relay selection. It aims to provide efficient message dissemination in MSNs when selfish nodes exist. First, it introduces an overview of the node status and then provides the detailed node selection strategy. Next, the interaction between the bundle carrier and the relay node is formulated by employing a bargain game. Finally, the detailed bundle-forwarding process between both sides is introduced.

Node Status

By considering the factors that can affect the will of a node to participate in bundle delivery in MSNs, a metric of the node status is elaborated, including node buffer, node energy, and the TTL of the bundle.

• Buffer Each node has its limited buffer, and the free space of the buffer gradually decreases with storing more and more data. For simplicity, symbol Bui is defined as the percentage of remaining buffer to represent the status of the node on the buffer by

where Bu_{rei} is the remaining buffer of node i at present, and Bu_{maxi} is the maximum buffer of node i .

• Energy Similar to the buffer, the energy of each node is also limited. Let E_{i} denote the percentage of remaining energy as follows:

where E_{rei} is the remaining energy of node i at present, and E_{maxi} is the maximum energy of node i.

• TTL The TTL of a bundle has a significant impact on bundle delivery. If the TTL of a certain bundle is going to expire, each node should forward the bundle as soon as possible. Otherwise, relay nodes will not get paid. The node status on the TTL of the bundle ID_{m} is defined as

where T{_{D} is the percentage of the remaining TTL of bundle ID_{m} carried by node i at present. TTL_{rei} denotes the remaining TTL of the bundle. TS means the creating time stamp of the bundle, and T_{c} is the current time.

Obviously, at any moment, the given three factors have different impacts on the bundle forwarding of each node. Here, a status metric is introduced by

where SMJ_{D} is the status metric of node i on bundle ID_{m}. а, в, and y are the weight parameters to adjust the importance of buffer, energy, and TTL, respectively, and а + в + Y = 1.