DEFENSE STRATEGY AGAINST SELFISH NODES TAKING INTO ACCOUNT TRAFFIC DIFFERENTIATION IN VEHICULAR DELAY-TOLERANT NETWORKS

selfish nodes and taking action against them in relation to priority classes in order to reduce their impacts. The operation of this strategy is based, on a partitioned memory management system taking into account the priority and the lifetime of messages, on the calculation of the transmission rate of the node with respect to the priority class of the node with the highest delivery predictability, on a mechanism for calculating the node's degree of selfishness with respect to the priority class, and on the monitoring mechanism. . The simulations carried out show that the proposed model can detect selfish nodes and improve network performance in terms of increasing the delivery rate of high-priority messages, reducing the delivery delay of high-priority messages, and reducing network overload.

However, despite all these precautions to ensure better message transmission, the presence of selfish nodes affects network performance in terms of reduced delivery rate, increased latency and increased network overload [5] [6][7] [8]. Indeed, these selfish nodes, in order to save their resources (buffer space, bandwidth, energy), are not willing to relay messages from other nodes, yet they exploit and consume network resources [9][10] [11] [12].
Recently, in order to detect selfish nodes and then reduce their impact on overall network performance, several works have been based on the node's transmission rate by comparing for each node the total number of messages transferred to the total number of messages received. Thus, if the value of the node's transmission rate is less than one, then the node is selfish. Otherwise, the node is cooperative. This calculation of the transmission rate is only applicable when all messages have the same priority. Since, when traffic differentiation occurs, then a node may appear cooperative without relaying messages of a certain priority class. In addition, a node may appear selfish when it has the ability to relay messages of a certain priority class.
Moreover, in order to improve cooperation in buffer management, recent strategies require nodes to reserve a percentage of their buffer for cooperation [6]. However, these strategies are based on traditional buffer management systems such as Random or First-In-First-Out (FIFO) methods, which do not guarantee a short message delivery time [13].
In this paper, we propose a new strategy, taking into account traffic differentiation, to detect the selfishness of a node with respect to priority classes and to act on these selfish nodes. To do this, we use a partitioned memory management system based on message weight, which takes into account the message time-to-live and priority class in order to guarantee both the buffer cooperation threshold and the quality of service. In addition, taking into account the most predictable delivery of the nodes, we calculate the transmission rate of the node relative to the priority class in order to know whether the node is cooperative or selfish relative to the priority class.
When the node is selfish with respect to a priority class, then the calculation of the degree of selfishness of that node with respect to that priority class is performed to check whether that node is partially or fully selfish with respect to the priority class. An entirely selfish node is isolated relative to the priority class. On the other hand, a partially selfish node is monitored for a certain period of time to ensure that its behavior changes. If this node becomes cooperative, then it can continue communication, otherwise it cannot receive messages from the priority class.

The main contributions of this paper are as follows:
A state of the art of the most important contributions of selfish node detection systems based on the node's residual energy and buffer management system, systems based on the degree of selfishness, and systems based on the transmission rate.
The proposal of a defense strategy against selfish nodes based on a partitioned memory management system and taking into account the class of priority service, calculating the transmission rate relative to the priority class, determining the degree of selfishness of the node relative to the priority class, and monitoring the node.
Performance evaluations to assess the impact of the proposed strategy compared to a strategy without detection of selfish nodes. These evaluations are done using the Opportunistic Network Simulator (ONE) considering as 1140 performance metrics: the high priority message delivery rate, the average high priority message delivery time and the network overload.
The rest of the paper is organized as follows: Section 2 presents a state of the art of node detection and action strategies on selfish nodes. The proposed node defense strategy approach is presented in section 3. Section 4 presents evaluations of the impacts of the number of selfish nodes on network performance. Finally, the conclusion and perspectives are elaborated in Section 5.

Related Works:
As mentioned above, the presence of selfish nodes in the network seriously affects network performance in terms of increasing delivery delay and reducing the rate of messages delivered to the destination. As a result, routing protocols must determine the best nodes to transfer messages despite the presence of selfish nodes. Several strategies have been developed to detect selfish nodes and then act on these nodes to improve the overall performance of the network. In this section, we provide an overview of related work to this field.

Detection based on the residual energy of the node:
The authors in [15] proposed a routing algorithm called MPSSR (Message-Priority Socially-Selfishly Routing). This algorithm combines the degree of centrality of the node, the residual energy of the node, and a buffer management based on the priority class to detect the best relay nodes. In this algorithm, during an opportunistic contact, a node transfers its messages to the node with the highest degree of centrality when the number of message hops from the receiver is less than three (3). On the other hand, if the number of hops in the receiver's messages is greater than three (3), then three situations are defined. If the residual energy of the receiver is very insufficient, then it is chosen as the destination of the transmitter messages. However, if the power of the receiver is limited, then the receiver and sender are in the same community and the receiver with greater predictability of delivery receives messages in their order of priority. In addition, if the sender has sufficient energy and buffer space, then the receiver with the highest predictability of delivery receives messages in the order of priority.
This strategy shows that the detection of selfish nodes can be combined with buffer management that takes into account the priority class of service to guarantee the quality of service. However, since the vehicles have sufficient energy supplied by the batteries [29], then node selfishness based on the node's residual energy is not directly applicable to vehicles in a vehicle-to-vehicle communication architecture.

Strategies based on the selfish degree:
In [16] [17] [18], the authors proposed strategies for detecting selfish nodes based on their selfish degree. Thus in [16], the authors proposed in their algorithm, a decision method named wantToCollaborate() which allows to check the node behavior. This node behavior is indicated by comparing the selfish degree of the node which is represented by a random number taken between 0 and 100, where 0 indicates that the node is cooperative and 100 indicates that the node is entirely selfish. This strategy detects selfish nodes and reduces message loss. However, it is ineffective as the number of nodes increases. In [17], the authors proposed an algorithm that classifies nodes into three categories according to their selfish degree. Thus, cooperative nodes have a selfish degree less than or equal to zero, partially cooperative nodes have a selfish degree between 0 and 100, and fully selfish nodes have a selfish degree equal to 100. In addition, cooperative nodes are induced with an energy input. This strategy improves network performance, but the delivery rate decreases as the number of selfish nodes increases. Similarly, in [18], Sunil K. proposed an algorithm based on a function to ensure the functioning of the node and taking into account the selfish degree of the node. Thus, when the node cooperates in normal operation, then its selfish degree is constant. Otherwise, it increases. In addition, by taking into account the selfish degree, cooperative nodes, partially selfish nodes and fully selfish nodes are detected. Entirely selfish nodes are isolated by the function described above. This strategy improves the performance of the protocol. However, the strategy does not take any action on partially selfish nodes. These strategies show the existence of three categories of nodes (cooperative, partially selfish, entirely selfish) in the network. However, these strategies use traditional buffer management systems (Radom; FIFO) that are less reducing the message delivery delay.

Strategies based on node transmission rate:
In [19] [20] [21], the authors use the transmission rate of the node to determine its behavior in the network, on the one hand, and to guarantee the reliability of the transmitted messages, on the other hand. Thus, in [19], the authors propose a strategy called CFV (Combined-Faith Value) in order to detect the reliability of the next relay. For this 1141 purpose, before transferring a message to a node, the sending node calculates the CFV of the node from the information of its past performance (the number of messages transferred and the number of messages received) obtained from its neighbors and the number of messages created by this node since the beginning of the communication. Thus, if a node's CFV is below a threshold, then the node is isolated and consequently another node is chosen. This process is repeated until the message reaches the destination. However, CFV uses a threshold value that is specific only to the Spray-and-Wait routing protocol [26]. Similarly in [20], the authors proposed a routing algorithm called TBER (trust-based Epidemic routing). TBER determines the next relay by calculating its global confidence. The global confidence is composed of the direct confidence and the recommended confidence. The direct confidence is based on the energy, altruism and connectivity of the next relay. Altruism is based on the transmission rate of the node. As for the recommended trust, it is determined by the set of nodes in the neighborhood of the next relay. This mechanism allows path construction by eliminating non-cooperative nodes. In addition, it promotes an improvement in the delivery rate. However, it is based on the epidemic routing protocol, which leads to an increase in network overload [24]. Bhoiwala J. P. et al. proposed in [21] a strategy called CBDM (Cooperation-Based Defense Mechanism). This strategy, on the one hand obliges nodes to share a percentage of their buffer capacity [6] [22] [23], and on the other hand uses the combination of the transmission rate of the node and the performance of the routing protocol PRoPHET [14], to determine which cooperative and non-cooperative nodes have the highest predictability of delivery. In addition, a dummy message is used to check the honesty of the nodes. If the node is honest, then it is monitored for a period of time to ensure that its behavior changes. This strategy leads to network improvement in terms of reducing the number of selfish nodes, reducing the number of message losses, and reducing network overload. However, the monitoring mechanism is applied to all non-cooperative nodes regardless of their degree of selfishness. As a result, we can observe an unnecessary waste of time especially when the node is completely selfish.
Based on the above research, by combining the benefits and making improvements, we propose a new strategy of defense against selfish nodes taking into account the traffic differentiation required in these networks. Thus, the new strategy of defense against selfish nodes taking into account the priority class of service, is also based on the combination of the performance of the PRoPHET routing protocol and the transmission rate of the node, on the one hand, and on the other hand, it is based on the degree of selfishness of the node and the monitoring mechanism. In the following section, we detail the proposed defense strategy against selfish nodes.

Proposed Defense Strategy Approch: Basic Assumptions:
In this model, we assume that each node holds a table with each line indicating the ID of the node encountered, the number of messages sent to this node and the number of messages received from this node by priority class. Thus, at each contact opportunity between two nodes, each node updates its table. In addition, in this model we do not admit any trusted authority or fixed relay nodes. Message exchanges take place directly between the mobile nodes when they are within communication range of each other. Furthermore, we assume that all nodes in the network have the same buffer capacity.

The Partitionned Memory Management System:
In this model, each node is obliged to share a percentage of its buffer [6]. Thus, the buffer is divided into two parts. One part will be used to store messages intended for the node (NSS: Node Storage Space), while the other part will be used to store messages to be transferred to other nodes (NCS: Node Cooperation Space) [27] in order to ensure a buffer cooperation threshold. However, the available buffer space in general, and the two spaces (NSS and NCS) in particular, can decrease considerably due to excessive replication of multi-copy routing protocols and storage of messages for varying lengths of time [24]. Therefore, we develop a buffer management system to guarantee the buffer cooperation threshold on the one hand, and to guarantee the quality of service on the other hand.

The message weight:
In [13], it is shown that buffer management based on message time-to-live (TTL) reduces the delivery delay better than traditional buffer management strategies. Therefore, taking into account the priority of messages due to the existence of several services with different requirements, we propose a metric called message weight. This metric consists of message TTL and message priority to ensure quality of service for the different applications supported.
The weight of the message is given by the equation (1) : Where TTL r is the remaining time-to-live of the message, TTL 0 is the initial time-to-live of the message and P i (i{1,2,3}) is the priority class of the message.

The Drop Policy:
The drop policy will apply to the storage space for messages destined for the node (NSS: Node Storage Space), and to the cooperation space for storage and transfer of the node's messages (NCS: Node Cooperation Space) to guarantee the node's cooperation threshold.
This drop policy removes messages from the NSS according to the increasing remaining time-to-live, if the current node is the destination of the message. However, if two messages have the same time-to-live, then the lower priority message is deleted first [28]. On the other hand, if the current node is an intermediate node, then the NCS messages are deleted according to their increasing weight. However, if two messages have the same weight value, then the lower priority message is dropped first.

Flow chart of Drop Policy
Scheduling policy: In our model, the scheduling policy orders the NCS messages according to descending weight. Thus, in opportunistic contacts, the message with the highest weight is transferred first. However, if two messages have the same weight value, then the high priority message is transferred first.

Classification based on Transmission Ration by Priority Class:
In VDTNs, selfish nodes drop messages from other nodes in the network. As a result, their presence in the network reduces the routing protocol performance. The main idea of our model is to allow a sender node to check the reliability of a receiver node before forwarding the message of a given priority class to it. Thus, we determine the transmission ratio of the message according to the priority class of the message that the node must receive. This message transmission ratio per priority class is the ratio of the number of messages transferred from a priority class to the number of messages received from that priority class. It is given by the expression: for this node. And P i (i ∈ {1, 2, 3}) determines the priority class for low priority P 1 , medium priority P 2 and high priority P 3 messages.
Thus, if the message transmission ratio per priority class P i (i ∈ {1; 2; 3}) is greater than or equal to 1, then the node is cooperative with respect to this priority class (CN P i ). Otherwise, the node is selfish node relative to this priority class (SN P i ).
The following diagram (Figure 2.) illustrates the classification of nodes with respect to a priority class P i (i ∈ {1; 2; 3}). :-The nodes classification according to the transmission ratio by priority class.
Furthermore, since the traffic consists of emergency messages of high priority P 3 , normal messages of medium priority P 2 and bulk messages of low priority P 1 [3], then we can determine the behavior of nodes in the network with respect to messages of these priority classes.

Nodes Behavior in VDTN:
In our model, we develop the classification of the nodes taking into account simultaneously the values of θ 1 , θ 2 and θ 3 . Thus, we have cooperative nodes, both cooperative and selfish nodes, and selfish nodes relative to the three priority classes.
Cooperative node according to all Priority Classes The node is cooperative when for all priority classes P i (i ∈ {1, 2, 3}), the number of sent messages of a priority class is greater than or equal to the number of received messages of that priority class. The cooperative node is characterized by the expression given by: Thus, this cooperative node transfers messages of any priority class.

Hybrid Nodes:
Hybrid nodes are nodes that are both cooperative and selfish. These nodes fall into two categories: The category of nodes that are both cooperative with respect to two priority classes and selfish with respect to one priority class is given by: o The node is cooperative for low and medium priority messages, but selfish for high priority messages. ; The node is cooperative for low and high priority messages, but selfish for medium priority messages. ; o the node is cooperative with medium and high priority messages, but selfish with low priority messages The category of nodes that are both cooperative relative to one priority class and selfish relative to two priority classes is given by : o The node is cooperative for high-priority messages, but selfish for low and medium-priority messages The node is cooperative for medium priority messages, but selfish for low and high priority messages.
The node is cooperative for low priority messages, but selfish for medium and high priority messages.
Selfish node according to all priority classes: The node is selfish node when for all priority classes Pi (i ∈ {1, 2, 3}) the number of sent messages of a priority class is less than the number of received messages of that priority class. Thus, the selfish node is characterized by the expression (10) given by: This node refuses to forward messages of any priority class.

Diagram of Node Classification according to all Priority Classes:
Thus, taking into account simultaneously the transmission ratios θ 1 , θ 2 and θ 3 for low priority P 1 , medium priority P 2 and high priority P 3 messages respectively, we propose the classification of all nodes in the network represented by the flow chart in Figure 3. :-Nodes classification in VDTN according to all priority classes.
In the diagram above, {CN (P i , P j ); SN P k /i, j, k ∈{1, 2, 3} with i≠j≠k} denote both cooperative node with respect to messages of priority classes P i and P j and selfish node with respect to messages of priority class P k .

Classification and Monitoring of Selfish Nodes:
In our model, a hybrid node cannot be directly isolated if it is not cooperative with respect to a priority class. We give it another chance to become cooperative relative to the priority class for which it is selfish. Before giving it a chance, we determine its degree of selfishness relative to that priority class. In [17] [18], a selfish node can be partially selfish or completely selfish. Thus, in our model, we develop a classification of selfish nodes according to their degree of selfishness in order to determine the partially selfish nodes and the fully selfish nodes with respect to the priority classes.

Selfish nodes classification according to the degree of selfishness:
In the network, not all nodes that behave selfishly with respect to a priority class have the same willingness to refuse to forward messages of a priority class from other nodes. Some nodes tend to refuse the transfer of a larger number of messages of a certain priority class than other nodes. Thus, to distinguish these nodes, we calculate the degree of selfishness of the node with respect to messages of a priority class Pi (i ∈{ 1, 2, 3}). The expression of the degree of selfishness relative to the priority class is given by equation (11): is the sum of messages of a priority class received by the node, but not destined for this node. And P i (i ∈ {1, 2, 3}) determines the priority class for low priority P 1 , medium priority P 2 and high priority P 3 messages.
Thus, from expression (11), if the degree of selfish node with respect to the priority class Pi is = 100; then this node is entirely selfish with respect to messages of this priority class Pi (ESN Pi). On the other hand, if the degree of selfish node with respect to messages of priority class Pi is between = 0 (cooperative node with respect to messages of priority class Pi) and =100 (ESN Pi), then this node is partially selfish with respect to messages of this priority class Pi (PSN Pi).
The following diagram illustrates the classification of selfish nodes relative to the priority class (SN P) according to their degree of selfishness relative to this priority class Pi ( ) :-Selfish nodes classification accordind to the degree of selfishness relative to the priority class Pi.

Monitoring Mechanism:
In our model, when a node is completely selfish with respect to a priority class, then the other nodes will avoid forwarding messages from that priority class to it. On the other hand, if the node is partially selfish with respect to the messages of a priority class, then this node is monitored for a certain period of time [23]. However, if during the monitoring period, the node becomes cooperative with respect to messages of this priority class, then it can receive the message of this priority class. However, if after the monitoring time, the node does not change its behavior, then it cannot receive messages of this priority class.
The following diagram illustrates the detection of PSN P i and ESN P i , and then the monitoring mechanism for PSN P i . :-Selfish nodes detection and monitoring mechanism in relation to the priority class Pi.

1146
The proposed Defense Strategy: The proposed defense strategy against selfish nodes is based on the performance of the PRoPHET routing protocol [14]. Thus, when a node wishes to forward a message of priority P i to an intermediate node, the following points are elaborated: We check the predictability of delivery of the intermediate node. If this intermediate node has the highest predictability of delivery, then it is selected as the next relay. Otherwise, another node is selected; We check the behavior of the node with the highest predictability of delivery relative to the priority class of the incoming message. For this purpose, the transmission rate of the receiver relative to the priority class of the message is calculated.
If this transmission rate is greater than 1, then this receiver is cooperative with respect to the priority class of the incoming message. Then, the availability of the NCS is checked. If this space is available, then the message of priority P i is inserted. On the contrary, if this space is unavailable (saturated), then the receiver drops the NCS messages according to the increasing weight. Then the message of given priority is inserted.
On the contrary, if this transmission rate is less than 1, then the degree of selfishness of the node with respect to this priority class is calculated.
If the calculation of the degree of selfishness shows that the receiver is entirely selfish with respect to the priority class of the incoming message, then the receiver cannot receive the incoming message. Therefore, another receiver with a high probability of delivery is determined.
If the calculation of the degree of selfishness shows that the receiver is partially selfish in relation to the priority class of the incoming message, then the receiver is monitored for a certain period of time.
If during the monitoring period the node becomes cooperative, then the availability of the NCS is checked. If this space is available, then the priority message Pi is inserted. On the other hand, if this space is unavailable (saturated), then the receiver drops the NCS messages according to the increasing weight. Then the message of given priority is inserted. If after the monitoring time the node becomes selfish, then it cannot receive any message of this priority class. The figure below illustrates the flow chart of proposed selfish node defense strategy. :-Flow chart of the proposed defense strategy.

1147
Performance evaluation:-In this section, we evaluate our strategy by comparing its performance to a model without detection of selfish nodes. This model combines the performance of the PRoPHET routing protocol [14] and the buffer management system based on message weight. This weight-based buffer management system, contrary to the proposed strategy, allows only one buffer partition. However, in case of buffer congestion, if the current node is the destination of the message, then the messages in the buffer are deleted with increasing TTL. On the other hand, if the current node is an intermediate node, then the messages in the buffer are deleted as their weight increases.
The simulation tool used to perform the evaluations is the ONE Simulator [30]. It is a discrete event simulator that is written with the JAVA language. This simulator can be run under Windows and Linux.
This section consists of two parts. The first part is dedicated to simulation settings and performance metrics. The second part presents performance analyses of the high priority message delivery rate, high priority message delivery time and network overload respectively.  :-Initial positions of 20 mobile nodes on the map of the city center of Bouaké in Côte d'Ivoire.
In each scenario, in order to study the impact of selfish nodes on the performance of the proposed model, we vary the percentage of selfish nodes by 10%, 30%, and 50%.
In addition, for each of the selfish node percentages, in order to study the impact of selfish nodes on network performance with respect to high priority messages, we vary the degree of selfishness with respect to high priority messages by 10%, 30%, and 50%. In these scenarios, we set the degree of selfishness for low and medium priority messages at 10%.  [31]. In addition, all messages of each priority class are generated by three event generators, with a creation time in the range [15,30] seconds and a TTL of 120 minutes. In the proposed model, each node is obliged to share 50% of its buffer memory. The monitoring time for partially selfish nodes is 60 minutes. All the parameters of the settings are given in table I below. 1148 In addition, we used three performance measures to evaluate the performance of our model: the delivery rate of high-priority messages, the average delivery time of high-priority messages and the network overload rate.

Performance analyses:-
This part focuses on the analysis of the performance of the proposed model. To this end, we analyze the impact of node selfishness on the delivery rate of high-priority messages, the delivery time of high-priority messages and network overload.
Impact of the number of selfish nodes on the delivery rate of high-priority messages: Figures 8 (a and b) show the delivery rate of high priority messages when the network contains 10% selfish nodes. The degree of selfishness of the nodes in relation to the high priority message varies from 10%, 30% and 50%. Based on the percentage of selfish nodes of 10% and the degree of selfishness of the node with respect to high priority messages of 10%, 30% and 50% in Figures 8(a) and 8(b), we determine the average delivery rate when the number of nodes varies between 20, 40, 60, 80 and 100. We find that the proposed model is able to improve the delivery rate of high priority messages. This improvement of the proposed model varies according to the degree of selfishness (10%, 30% and 50%). When the degree of selfishness is 10%, the average delivery rate of high priority messages with the proposed model is 86.52%, while the rate without detection is 78.98%. This trend is verified with the degree of selfishness of 30% where the proposed model offers 86.60% average message delivery rate for HP messages compared to 78.82% for the model without detection. Finally, for the degree of selfishness of 50%, the average proportion of deliveries of high priority messages is, as before, higher with the proposed model (86.60%) compared to the model without detection (78.96%). Therefore, when the percentage of selfish nodes is 10% and the degree of selfishness of the node relative to high priority messages is 10%, 30% and 50%, our model increases the delivery rate relative to the model without detection by 7.55%, 7.78% and 7.63% respectively.
1149 Similarly, based on the percentage of selfish nodes of 30% and the degree of selfishness of the node with respect to high priority messages of 10%, 30% and 50% in Figures 9(a) and 9(b), we determine the average delivery rate when the number of nodes varies between 20, 40, 60, 80 and 100. For our model, the average delivery rate is 86.59%, 86.55% and 86.58%. For the model without detection of selfish knots, the average delivery rate is 79.03%, 79.04% and 79.05%. Our model supports an increase in the delivery rate of high priority messages compared to the model without selfish node detection of 7.56%, 7.51% and 7.53%. The delivery rate of high priority messages as a function of the number of nodes for 30% of selfish nodes for (a) no detection model (b) proposed model. Figures 10 (a and b) show the delivery rate of high priority messages when the network contains 50% selfish nodes. The degree of selfishness of the nodes in relation to the high priority message varies from 10%, 30% and 50%. Similarly, based on the percentage of selfish nodes of 50% and the degree of node selfishness relative to the high priority messages of 10%, 30%, and 50% in Figures 10(a) and 10(b), we determine the average delivery rate when the number of nodes varies from 20, 40, 60, 80, and 100.
The average delivery rate for our model is 86.54%, 86.61% and 86.57%, compared to 79.22%, 79.14% and 79.08% for the model without detection, when the degree of selfishness relative to the high-priority message varies from 10%, 30% and 50%. Therefore, our model favors an increase in the delivery rate of high priority messages compared to the model without detection of 7.32%, 7.47% and 7.49%. The observed results of high priority message delivery rates show that the proposed model allows for an improvement in the rate of high priority messages. The reason for these observed results is due to the fact that, in the proposed model, on the one hand nodes are obliged to share their buffer memory, and on the other hand nodes that are entirely selfish and partially selfish with respect to high priority messages are detected. As a result, either another cooperative node relative to the priority class of the high-priority message is selected in case the node is entirely selfish relative to high-priority messages, or the number of cooperative nodes relative to high-priority messages is increased by the monitoring mechanism.
Impact of the number of selfish nodes on the delivery delay of high-priority messages: Figures 11 (a and b) give the average delivery delay for high priority messages when the network contains 10% selfish nodes. The degree of selfishness of the nodes in relation to the high priority message varies from 10%, 30% and 50%.
Regarding the delivery delay of high-priority messages, when the percentage of selfish nodes is 10%, the proposed model is more efficient than the model without detection for at least 40 nodes. Below 20 nodes, the proposed model is less efficient than the no-detection model because it offers a higher average delivery delay than the no-detection model. But globally, the proposed model must be prioritized because even if initially (for the 20 node size), it has a slightly longer delivery delay; thereafter, the delivery delay only decreases for an increasing number of nodes. However, the relevance of the proposed model differs according to the degree of selfishness of the node with respect to the high-priority messages of 10%, 30% and 50%.
With a 10% degree of selfishness, the proposed model offers a shorter average delay (48.09 min) compared to the model without detection where we obtain an average delay of 55.41 min. This tendency is confirmed with the 30% degree of selfishness where the proposed model is even better than the model without detection because (TimeModel = 48.12 min < Timewithout-detection = 55.34 min).
Considering the past results, it is not surprising to note that with the 50% degree of selfishness, the proposed model is still better than the model without detection. Here, too, the average delivery delay is shorter with the proposed model (48.11 min) compared to 55.46 min with the model without detection.
The overall average delivery delay for high priority messages calculated in the case of the proposed model (proven to be better than the model without detection), gives results between 48.09 min and 48.11 min. These are reasonable times which suggest that the strategy of the proposed model should be implemented to improve the quality of the network. Similarly, based on the percentage of selfish nodes of 30% and the degree of node selfishness relative to high priority messages of 10%, 30% and 50% in Figures 12(a) and 12(b), for 20 nodes, HP's average message delivery delay for the proposed model (60.05 min) is slightly higher than the model without detection (59.43 min). Overall, the proposed model should be prioritized because although it initially (for the 20 node size) has a slightly longer delay, the delivery delay only decreases as the number of nodes increases. However, the relevance of the proposed model differs according to the degree of selfishness of the node with respect to the high priority messages of 10%, 30% and 50%.
When the degree of selfishness is 10%, the proposed model offers a shorter average delay (48.05 min) compared to the model without detection where the average delay is 55.37 min. The same is true for a 30% degree of selfishness. That is to say 48.1 min for the proposed model, compared to 55.52 min for the model without detection. Moreover, for 50% of the degree of selfishness, the proposed model has an average delivery delay of 48.12, against 55.4 min for the model without detection. 1152 Figures 13 (a and b) give the average delivery delay for high priority messages when the network contains 50% selfish nodes. The degree of selfishness of the nodes in relation to the high priority message varies from 10%, 30% and 50%.
Similarly, based on the percentage of selfish nodes of 30% and the degree of node selfishness relative to high priority messages of 10%, 30%, and 50% in Figures 11(a) and 11  The observed results of the average delivery delay for high priority messages show that the proposed model offers a shorter average delay than the model without detection of selfish nodes. The reason for these observed results for average delivery delay of high priority messages is due to the fact that in the proposed model, nodes that are entirely selfish and partially selfish with respect to high priority messages are quickly detected. As a result, either another cooperative node relative to the priority class of the high-priority message is selected to transfer high priority in case the node is entirely selfish, or the monitoring mechanism is used in case the node is partially selfish relative to the high-priority messages. Figures 14 (a and b) show the network overload when the network contains 10% selfish nodes. The degree of selfishness of the nodes in relation to the high-priority message varies from 10%, 30% and 50%.

Impact of the number of selfish nodes on network overload:
With regard to network overload, the proposed model greatly reduces this phenomenon compared to the model without detection. However, taking into account the different degrees of node selfishness in relation to the high priority messages of 10%, 30% and 50%, the variants of this performance can be seen.
When the degree of selfishness is 10%, the proposed model reduces the network overload rate by an average of about 36 compared to 152 in the model without detection of selfish nodes. This is a good result that complements the already detected performance bottlenecks (i.e. HP's message delivery rate and time) of our proposed model. Moreover, this trend holds true for the 30% degree of selfishness. Indeed, based on the 30% degree of selfishness, the proposed model limits network overload to an average of 36 HP messages, while the model without detection of selfish nodes only manages to limit the network overload rate to an average of 148.72. Finally, for the 50% selfishness level, the proposed model still outperforms the model without detection of selfish nodes with a reduction of network overload leading to an average of only 36, compared to an average of 148.07 for the model without detection of selfish nodes.
Whatever the degree of selfishness, the results give an average network overload rate of 36 in the case of our proposed model. This is also a result that militates in favor of implementing this proposed model in order to once again improve the quality of the network for users  Figures 15 (a and b) give the network overload when the network contains 30% selfish nodes. The degree of selfishness of the nodes in relation to the high-priority message varies from 10%, 30% and 50%.
When the number of selfish nodes is 30%, the proposed model reduces the network overload more than the model without detection of selfish nodes. This performance is evidenced by the different degrees of node selfishness relative to high priority messages of 10%, 30% and 50%. When the degree of selfishness is 10%, the proposed model reduces the network overload on average by 36.01 compared to 147.23 for the model without selfish node detection. On the other hand, based on 30% selfish nodes, the proposed model reduces the network overload on average by 36.01 compared to 150.55 for the model without selfish node detection. Indeed, based on 50% degree of selfishness, the proposed model reduces the network overload on average by 36.02 compared to 147.06 for the model without detection of selfish nodes. Network overload ratio as a function of the number of nodes for 30% of selfish nodes for (a) no detection model (b) proposed model. Figures 16 (a and b) show the network overload when the network contains 50% selfish nodes. The degree of selfishness of the nodes in relation to the high-priority message varies from 10%, 30% and 50%.
Analogous to the previous case, we find that regardless of the degree of selfishness, the proposed model significantly reduces the network overload compared to the model without detection of selfish nodes. When the number of selfish nodes is 50%, the proposed model reduces the network overload by 36.01, 36.03 and 36.05 when the degree of selfishness of the high priority message varies by 10%, 30% and 50% respectively compared to 143.95, 145.46 and 144.24 for the model without selfish node detection. The observed results of network overload rates show that the proposed model reduces network overload more than the model without detection of selfish nodes. The reason for these observed results for network overload rates is due to the fact that in the proposed model, selfish nodes (fully and partially) are detected, either by calculations of the node's transmission rate relative to the priority class, or by calculations of the degree of selfishness of the node. As a result, the transfer of messages to selfish nodes is preferentially avoided. As a result, the number of copies is reduced.

Conclusion and Perspectives:-
The presence of selfish nodes in the network affects the performance of routing protocols in terms of delivery rate, delivery delay and network overload. In order to reduce their impact in networks where services are differentiated by messages with different priorities, we propose a new strategy for detecting selfish nodes taking into account the priority class of messages. This strategy is based on the calculation of the transmission rate of the node with the highest predictability of delivery, the calculation of the degree of selfishness of the node with respect to the priority class, the monitoring mechanism and a system for managing a partitioned memory taking into account the time-tolive and the priority class of messages. The results of the simulations performed with the ONE simulator show that the proposed strategy reduces the delivery delay of high priority messages, increases the delivery rate of high priority messages and reduces network overload.
In this paper, we used the PRoPHET routing protocol under the assumption that nodes could not change their delivery probabilities. However, since the PRoPHET routing protocol uses the encounter history to determine the delivery probability of nodes, some nodes can modify this property to be chosen as the next valid delay node while launching attacks. This will then lead to a degradation of the overall network performance. Therefore, our next work is part of the fight against malicious and selfish node attacks.