# Relay Service Scheme

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*is the current time.

_{c}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.