Performance evaluation and comparison study of adaptive MANET service location and discovery protocols for highly dynamic environments

A critical requirement in Mobile Ad Hoc Networks (MANETs) is its ability to automatically discover existing services as well as their locations. Several solutions have been proposed in various communication domains which could be classified into two categories: (1) directory based, and (2) directory-less. The former is efficient but suffers from the amount of control messages being exchanged to maintain all directories in an agile environment. However, the latter approach attempts to reduce the amount of control messages to update directories, by simply sending broadcast messages to discover services; which is also a non-desirable approach in MANETs. This research work builds on top of our prior work (Nazeeruddin et al. in IFIP/IEEE international conference on management of multimedia networks and services, Springer, Berlin, 2006)) where we introduced a new efficient protocol for service discovery in MANETs (MSLD); a lightweight, robust, scalable, and flexible protocol which supports node heterogeneity and dynamically adapts to network changes while not flooding the network with extra protocol messages—a major challenge in today’s network environments, such as Internet of Things (IoT). Extensive simulations study was conducted on MSLD to: (1) initially evaluate its performance in terms of latency, service availability, and overhead messages, then (2) compare its performance to Dir-Based, Dir-less, and PDP protocols under various network conditions. For most performance metrics, simulation results show that MSLD outperforms Dir-Based, Dir-less, and PDP by either matching or achieving high service availability, low service discovery latency, and considerably less communication overhead.

The rest of the paper is organized as follows. Section presents a summary of the major components and features of MSLD protocol. Section discusses the complexity of MSLD in terms of control messages. Section covers the simulation setup, performance evaluation, and comparison with Dir-based, Dir-less, and PDP. Section gives a brief overview about the literature related to Service Discovery Protocols in three different contexts: infrastructure based network, MANET, and IoT. Section concludes the paper and sets directions for future work.

Method-MSLD protocol design
MSLD was designed to achieve: (1) robustness against directory failures by considering distributed directories and (2) low communication overhead, through its integration with a stateful autoconf protocol. The rest of this section describes the details of MSLD design approach in terms of its integration with one of the existing stateful autoconf protocol (DHAPM) and the major MSLD building blocks.

Integration with stateful auto-configuration protocols
MSLD was designed in such away that it reuses some of the existing stateful auto-configuration protocols such as autoconf. Such an approach aims at optimizing the process of service discovery in terms of the number of control messages being exchanged.
Important auto-configuration functions of the autoconf protocol are delivered through the use of elected/selected hosts. These hosts could be one or multiple and are referred to as Address Agents-AAs. Every AA keeps track of various types of information such as: node specification, IP address, ALT, etc. AAs ensure that local autoconf database (db) are disseminated to other AAs.
Since Autoconf protocol is involved in maintaining, initiating and updating AAs, it would have been more efficient to widen the functionality of AAs by having them perform more than one task including autoconf tasks. For instance, a directory based service directory protocol requires service directory and directory managers (DMs). These can be assured by the db and AAs, respectively. In order to accommodate the service directory and DMs under stateful autoconf protocol, the following changes need to be incorporated.
• Service directory with a full list of accessible services along with information about these services such as attributes and service providers. Table 1 illustrates the structure of such a service directory. • A module for querying and administrating the service directory database, which is being added to the autoconf protocol to maintain the services-related information residing in the database. We refer to this module as MANET Service Location and Discovery (MSLD).
For evaluation purposes, SD protocol was integrated with a stateful auto-configuration protocol, DHAPM, which is based on AAs' being selected dynamically. DHAPM is chosen because it has a lower communication overhead than the other stateful approaches [5] and is highly robust against node failures.

Service resolver (SR)
The SR is the module responsible for acquiring and retrieving detailed information about available services. Based on the DMs accessibility, the retrieval process could occur in either of the following two modes: Unicast mode ( U C mode), or Broadcast mode ( B C mode). The former is the default mode and is being activated when the information about DMs is available. With this mode, DM responds directly with unicast messages to incoming unicast service discovery requests (SDQs). The latter generates more overhead compared to the ( U C mode) due to its message broadcasting nature and is activated upon the failure to connect to any of the DMs. With this mode, SDQs messages are broadcasted 1 to all neighboring devices and a unicast message response is expected from any node having the requested service. The response comes in the form of service discovery reply (SDY) with the requested service information details. This mode gives the opportunity to DMs to respond to SDQs with their availability as well as any matching records from their directory, and would cause the SR within the service request initiator to revert to the U C mode. SR was designed to support two types of queries: single-response and multi-response queries [6]. Based on the user (or application) requirement either of these two modes is selected. A single-response query is selected when only a service is needed, not the device offering this service. However, a multi-response query is selected in case the user is interested in knowing about all devices providing a desired service.
The collected information about service details is cached for a certain time called CLT (Cache Life Time). This makes the response to SR queries more efficient in case the information is readily available in the cache. The cache entries that exceeded their CLT will be removed from the cache at the time of inserting new entries. Cache size is decided based on the type of the device and the number of different service queries generated from that device. It is recommended that minimum cache size should be sufficient to hold at least one entry for each different service request generated from the device.

Service manager (SM)
The SM major two tasks are the following: (1) serves as a liaison between the DM and all existing service modules. This is in contrast to having all service modules interact directly with DMs; instead, every service module needs to register with the local SM by providing their attributes and configuration parameters, which optimizes the number of exchanged messages. (2) handles incoming SDQ messages broadcasted by neighboring devices.

Directory manager (DM)
The MSLD DM is responsible for the following two tasks: (1) collecting then maintaining all available services in MANET, which constitutes the service directory; (2) resolving all SDYs being originated by local or distant SR running on the same or different hosts, respectively.

MSLD operations
MSLD service directory management process includes the following steps: services naming conventions, services registration, service lookup, and services deregistration. These are described next.

Service naming conventions
MSLD uses compact service Uniform Resource Locator (URL) adjusted for MANETs to encode services. We propose using similar semantics and syntax to the encoding scheme as that outlined in RFC 2609 [34].

Service registration
The service registration process consists of having the service agent on a particular device register itself with the local SM, which coordinates the registration with a neighboring DM.

Service lookup
The service lookup process starts when a user application issues a service discovery request message (SDQ). The SR checks its local MSLD cache for a matching entry. If a valid match was found, then the matching entry is sent to the application along with a flag showing its source (cache or DM). The application may request more up-to-date information by commanding the SR to ignore the cache and query a DM. When querying the DM, the SR unicasts an SDQ message to its DM and initiates a Timer. Upon the reception of as SDY from the DM, the SR processes the message then forward the response to the requesting application. If the timer expires before a SDY messages is received, the SR repeats the same process until the number of attempts reaches a certain threshold r min . If no valid response is received, the SR switches to the broadcast mode ( B C ). Under this mode, the SR broadcasts the old SDQ eliciting for service responses. If no positive response is received, the SR signals the termination of the lookup process by returning an error message to the requesting application. The SR reverts back to the unicast mode ( U C ) as soon as a reply is received from a DM.

Service deregistration
This phase is executed whenever a node leaves the network. An address release message (AddrRelReq) is sent out to its corresponding AA, which marks the entire record of the leaving node as invalid. The same update happens when the ALT time of services expires, and records need to be automatically deleted.

MSLD protocol complexity
In this section, the communication overhead of different alternative service discovery approaches is analytically compared with MSLD protocol. For the sake of fairness and clarity, we presume all approaches using the same routing protocol and directory based auto-configuration protocol. This means the overhead arising from routing and autoconfiguration is the same for all compared approaches.

Directory-based complexity in terms of message overhead
To assess the performance of the directory based approach, we assume that all network devices register their available services by adding an entry in the directory. Overhead messages include announcement messages which are periodically sent out by the directory, SDQs issued by client devices (as unicast messages), and the SDY responses from directory to clients' requests. In a given period T ad , the message overhead is given by: where N χ : SDQs average count, N reg : Service registration average count, N cng : Service updates average count during every announcement period, O B c : Broadcast message overhead, O U c : Unicast message overhead.

Directory-less complexity in terms of message overhead
The message overhead of the directory-less approach is different for both modes (push/ pull based). For the push-based mode, where services are announced periodically by service agents, and for a given period T ad , the message overhead is given by: where N sp is the service providers average count. For the pull-based mode, where SDQ messages are flooded by clients, then Unicast SDY replies are sent out by service agents, and for a given period T ad , the message overhead is given by: where α is the average number of service agents.
In the case of combined pull/push approaches, clients cache service announcements made by service agents. The pull-based approach is invoked whenever the desired service does not exist in the cache. With this combined approach, we gain in terms of time required to discover services, however more overhead is incurred. It is important to mention that traditional combined pull/push based approaches experience more overhead compared to pull-based ones [31].

MSLD complexity in terms of overhead messages
The overhead messages in MSLD include those messages needed to maintain and synchronize the distributed directory with the goal of achieving resiliency in dealing with node failure. Considering the fact that MSLD is integrated with DHAPM, the directory maintenance is performed alongside with the address agents (AAs) synchronization process. With this scheme, the AA synchronization messages are augmented with extra service data. The same scheme is used for the first service registration which is performed as part of the address request step. Subsequent service registration/updates are triggered independently. For a given period T ad , the message overhead of MSLD is given by: where ζ : generated overhead for directory synchronization, N − reg : average late service registration counts during ( T ad ).
Analyzing both Eqs. 1 and 4 in the case where N − reg ≤ N reg and ζ ≪ O B c , it is clear that the MSLD achieves better performance in terms of overhead messages compared to that of directory based.
Also comparing Eqs. 3 and 2 with Eq. 4, we conclude that MSLD outperforms the directory-less approach in both modes (pull/push based) in terms of the overhead messages.

Experimental results
In this section, we describe the simulation setup, the set of performance metrics being considered to evaluate MSLD, and the performance results under different case scenarios.

Simulation setup
The performance of MSLD was evaluated using the NS-3 simulation platform under various network configuration conditions. The communication stack consists of DSDV and IEEE 802.11 standards as the main protocols running at the networking layer and at the MAC layer, respectively. The size of the network consists of 50 nodes randomly distributed with 250 m communication range. The mobility model used is the random way point model with 0 pause time, 2 m/s as a minimum node speed and 4 m/s as a maximum speed. During all experiments, the number of service discovery requests is the same for all nodes and the requests are uniformly distributed over a period of 150 s. Also, we set SR SDQ timeout to 1 s, r min to 2 trials, and the Address Lease Time (ALT) to 100 s. The graphs and performance results in Sect. were reported by depicting the mean values collected from 1000 trial runs of corresponding appropriately designed experimental scenarios.

Performance metrics description
The performance of the MSLD protocol is evaluated while considering the following three metrics: 1 Service discovery latency or time This metric tracks the time elapsed between when the service request was originated and when a successful service binding response was received. 2 Service availability ratio This metric tracks the ratio of positive service bindings (positive binding resolution) to the request messages (to contact the servers) being originated. 3 Message overhead This metric counts the total number of control messages during the service discovery process.
We used the aforementioned metrics under different case scenarios to evaluate the performance of MSLD. We also compared the MSLD performance to that of the following three protocols under the same conditions: • Dir-based A distributed directory based protocol is simulated because it has a higher SA than the single directory based approaches. Also, the directory based protocols are known to have a low communication overhead for service discovery when the directory maintenance overhead is ignored. During our simulation we assume that all directories maintain service information and synchronize among themselves, therefore nodes can query any one of the directories for service discovery. • Dir-less This protocol was considered due to the fact that it possesses a large number of SAs when SDQ messages are sent across the entire network. • PDP This protocol showed its effectiveness when compared to many existing IETF protocols [6]. Therefore we considered this protocol for comparison purposes. However, PDP has been configured to use retries in the implementation being considered in this study. This has been done mainly to enable a fair comparison since all other protocols considered in this study use retries which improve service availability.

Results and discussion
Results were collected while considering different scenarios (static versus dynamic) and under various network configuration parameters.

Comparison in static scenarios
We considered the following three ad hoc network static case scenarios where we assume that there are no message losses and there is a full service availability: (1) sce-nario1: both SDY and SDQ messages are being unicasted, (2) scenario2: SDY messages are unicasted and SDQ are broadcasted, (3) scenario3: both SDY and SDQ messages are being broadcasted. In all experiments, we considered a maximum of six hops between the server node and the DM.
In every hop, we calculate the standard deviation ( σ ), and the mean ( µ ) of each of these service times: resolution time ( µ ), service provider contact time ( T bind ), and total time ( T total ). The results presented in Table 2 show that the latency increases as the number of hops increase. However, the case scenario PDP suffers from the highest latency and unicast forwarding outperformed the broadcast case. Also, we noticed that despite the six hops distance between the server and the DM, we achieved less than 95 ms latency.
In the idealistic case scenario execution, and for each of the above cases, the control overhead messages is From these observations, since the Dir-based showed better latency and overhead in static cases, we conclude that MSLD should operate in U C mode in case of the existence of DM.

Comparison in dynamic scenarios
During this set of experiments, we simulated a 50 node MANET network with four different coverage areas: (1) 0.250 × 0.250 km 2 , (2) 0.5 × 0.5 km 2 , (3) 0.75 × 0.75 km 2 , and (4) 1 × 1 km 2 . Several sets of experiments were executed for each of these topologies consisting of varying the rate of generation of SDQ messages (3-27 SDQ messages/second). In this dynamic scenario, and because of the node mobility, we assumed a Random loss of messages. Also for simplicity, we made the following two assumptions: (1) every server in the network offers a unique service, and (2) SDQ messages are of type single response requests.
(i) Latency: Table 3 captures the mean and its corresponding 95% confidence interval performance of the three metrics (the discovery time, the binding time, and the total time) of the four approaches (Dir-based, Dir-less, PDP, and MSLD). The following observations and analysis can be made: • The latency performance behavior for Dir-based, Dir-less, and MSLD is comparable to that of the static case scenario. The Dir-based showed the lowest latency which is attributed to the fact that request messages are directly unicasted to DM. On the other hand, the Dir-less technique showed the highest latency which is attributed to the extra delay induced by the broadcast jitter. • MSLD performance was between that of Dir-based and Dir-less approaches. This was expected because MSLD relies on both approaches. • Because of the broadcast of SDQ and SDY, It was expected that PDP achieves the highest latency, however lower latency was witnessed. This is attributed to the fact that the cache hit ratio is higher due to SDY messages being cached and acting as announcements for available services, and the computed latency does not account for the extra wait time (PDP wait ) that the responder node waits while expecting a different node with better energy specifications to respond. Based on [6], the wait time can be configured and usually varies between 0.5-3 s. In the event of accounting for PDP wait , the latency is around 0.6 s which is way higher than that achieved in the other approaches. • For all approaches, the difference in the latency is considered small (in the order of milliseconds) since a delay between 1 and 2 s is acceptable by the user in this context (service initialization). Therefore, a different metric needs to be considered in order to differentiate between these protocols.
(ii) Service Availability (SrvA): Table 4 captures the performance of all four Service Discovery approaches in terms of service discovery failure ( F res ), service binding failure ( F binds ), and the total SrvA when a total number of 7500 SDQ messages are being originated. The following observations and analysis can be made: • The Dir-less approach witnessed a higher failure probability of service requests compared to that of the Dir-based technique. This is attributed to the fact that with the former approach the failure/success depends on the accessibility or availability of the server offering such services. However with the latter case, the failure/success of service requests mainly depends on the availability of DMs. On the other hand, the MSLD protocol witnessed fewer service request failures when compared to Dir-less and Dir-based approaches. This is attributed to the fact that MSLD borrows from both protocols and hence a failure occurs only in case of the non-availability of DM and non-accessibility of servers offering the requested services. It is also important to note that the PDP witnessed a 100% success rate which is attributed to the fact that nodes local caches are being advertised along the SDY message broadcasts making PDP look like a distributed Dir-based protocol where all nodes are playing the role of directories leading to low F res . • The binding failure performance was better in the case of Dir-less protocol and was comparable to the rest of the protocols (MSLD, Dir-based, and PDP). This is attributed to the fact that in the case of the Dir-less approach service queries are resolved by the server, making it less likely for the same server to be inaccessible, and hence there are fewer service binding failures. • The overall results about SrvA showed that MSLD protocol outperformed the PDP and Dir-based approaches. However, similar performance was achieved when compared to Dir-less.   average SDQ overhead messages ( M total ) given by ( M total / SDQs ). These results are captured in Table 5.
As expected, results are showing poor overhead of PDP and Dir-less protocols which is due to the broadcast nature of these protocols. In case of Dir-less protocol, this performance could be improved by limiting the maximum number of hops that broadcast messages could travel. However, this is expected to reduce the availability. Also, results are showing that PDP slightly outperforms the Dir-less approach because this protocol resolves SDQs by using the existing information in the cache, which minimizes the need for broadcasting the control messages. On the other hand, MSLD message overhead was improved with a rate between 14 and 17% compared to that of PDP and Dir-less, respectively. Table 5 is also showing that MSLD and Dir-based protocols are experiencing almost similar performance in terms of overhead messages.
To conclude, MSLD outperformed the other approaches in terms of communication overhead while maintaining a similar SrvA as the Dir-less approach. In practical cases where SrvA is of major importance, MSLD variant could be considered (MSLD-hsa). It is expected that MSLD-hsa achieves higher SrvA with considerably less overhead.

Performance evaluation under different network setup
In this section, we study the impact of varying some of the network setup parameters on the performance of the SD protocols under study. These parameters are the following: Network area, SDQ rates, network servers' redundancy, and Cache Life Time. We also simulated MSLD-hsa to study the tradeoff between message overhead and SA.

(i) Impact of network area
In this experiment, we propose varying the MANET service coverage range from 0.25 to 1.5 km 2 while keeping the number of nodes the same. In other words, we propose varying the node density within the MANET network. Performance results are captured in Fig. 2.
Performance results were consistent across all SD protocols and showed that decreasing the network density has a negative impact on all protocols in terms of the Mean latency, the Mean SA, and the message overhead. Further, MSLD and its variant (MSLDhsa) achieved lower overhead and comparable SA performance compared to other protocols.

(ii) Impact of SDQ rates
The goal of this experiment is to study the effect of increasing the SDQ message rates on the different SD protocols under study. We propose varying the SDQ rate from 0.8 to 27 SDQ/s. We collected performance results for different network areas (ranging from 0.25 to 1 km 2 ). Results are captured in Fig. 3.
As the number of SDQ messages in the network increases, it is expected to see no impact (in terms of service availability as well as M total ) on the Dir-based and MSLD protocol running in Unicast mode. In the case of Dir-less protocol, the behavior is the same as the previous two cases, whenever the SDQ rate is low. In the case of high SDQ rates, more latency is experienced because the protocol relies on excessive broadcast messages. In addition, for the Dir-less protocol more retries is needed due to the high F res (see Table 4) contributing to the number of broadcast overhead messages leading to low SA (compared to other protocols) and high latency.
On the other hand, results show that PDP performance in terms of latency and overhead improves as the SDQ rates increase. This is due to the fact that the probability of the same requested service to re-occur becomes higher as the number of SDQ messages increase (Fig. 3). We are also noticing, as expected, that the SA is the same for different SDQ rates. This is due to the fact that SA is dependent on the service binding which does not depend on how SDQs get resolved.
In conclusion, and for this set of experiments, the performance of MSLD-hsa depends on the rate of SDQ messages and achieved lower overhead and the best SA. Figure 4 shows the message overhead ( M total ) of all four protocols under study. These results were collected when increasing the percentage of servers offering the same service from 5 to 50 for low and high SDQ rates (these are captured in Fig. 4a, b, respectively.

(iii) Impact of increasing the network servers redundancy ( N srv )
For low rates of SDQ messages, a variation of N srv does not seem to have a major impact on the MSLD protocol running in a unicast mode and the Dir-based protocol. In both protocols, the number of control messages remains the same because only DM    Figure shows that As the number of SDQ messages in the network increases, no impact (in terms of service availability) was noticed on the Dir-based and MSLD protocol running in Unicast mode. In case of high SDQ rates, more latency is experienced. Also, results show that PDP performance in terms of latency and overhead improves as the SDQ rates increase  These results were collected when increasing the percentage of servers offering the same service from 5 to 50 for low and high SDQ rates. For low rates of SDQ messages, a variation of N srv does not seem to have a major impact on the MSLD protocol running in a unicast mode and the Dir-based protocol. On the other hand, the N srv seems to have an impact on the number of control messages since all servers having the requested service are expected to respond with an SDY messages for every service request being originated leading to more overhead as N srv increases. Same behavior is witnessed for PDP except the case where the cache has information about the requested service and only devices with higher energy may respond on behalf of low-energy nodes. Conversely, at higher SDQ rates, when the number of servers offering a similar service increases, there will be a higher chance of re-requesting the same service, and hence message overhead decreases because of higher cache hits. PDP has maximum performance gain because of SDY broadcasts, which well-populate node cache nodes reply to SDYs. On the other hand, the N srv seems to have an impact on the number of control messages since all servers having the requested service will respond with an SDY message for every service request being originated leading to more overhead as N srv increases. The same behavior is witnessed for PDP except for the case where the cache has information about the requested service and only devices with higher energy will respond on behalf of low-energy nodes.
Conversely, at higher SDQ rates, when the number of servers offering a similar service increases, there will be a higher chance of re-requesting the same service, and hence message overhead decreases because of higher cache hits. Thus, as shown in Fig. 4(b), the performance of all protocols improves with N srv . PDP has maximum performance gain because of SDY broadcasts, which well-populate node cache.

(iv) Impact of cache life time (CLT)
The CLT corresponds to the lifetime of services and is set by the server. During this experiment, we consider a service lifetime ranging from 0 to 40% of the total simulation time. Fig. 5 captures the performance achieved in terms of overhead messages for all SD protocols under study.
An increase in the CLT increases the time an SDY remains in the node's cache. An entry in the cache is only useful when the same request is repeated in the same node before the elapse of CLT. In the case when repetition of SDQ is less frequent (i.e., at lower SDQ rates), there will be no change in protocol performance (except in the case of PDP) as shown in Fig. 5a. However, when the SDQs are frequently repeated (i.e., at higher SDQ rates), the performance of all protocols improves with the increase in CLT. Notice that the improvement in PDP's performance is higher because any node in the MANET can benefit from the broadcasted SDY before the elapse of CLT, as explained (ii).  Figure describes an experiment during which, we consider a service life time ranging from 0 to 40% of the total simulation time. The Performance achieved is captured in terms of overhead messages for all SD protocols under study. An increase in the CLT increases the time a SDY remains in the node's cache. An entry in the cache is only useful when the same request is repeated in the same node before the elapse of CLT. In the case when repetition of SDQ is less frequent (i.e., at lower SDQ rates), there will be no change in protocol performance (except in the case of PDP). However, when the SDQs are frequently repeated (i.e., at higher SDQ rates), performance of all protocols improves with the increase in CLT. Notice that the improvement in PDP's performance is higher because any node in the MANET can benefit from the broadcasted SDY before the elapse of CLT

Related work
Service discovery (SD) approaches can be classified into either directory based (centralized) or directory-less (distributed) [4].
The former approach consists of having a single or group of hosts maintaining the directory of all existing services in the entire network. Under this setup, servers or service agents need to update the centralized directory with the corresponding service information details, which will eventually be queried by client devices. On the other side, the directory-less based approach avoids having a centralized management directory through the distribution of service messages across all network nodes. Depending on the distributed message type, the service discovery can be done in two modes: (i) push mode: servers broadcast (or multicast) frequent service advertisements to all hosts, and clients passively cache the services and select the service which is of interest; (ii) pull mode: clients broadcast service requests, and servers that offer the requested service reply to the request.
Service Discovery (SD) solutions have also been conceived for different domains or environments such that traditional infrastructure based networks, infrastructure-less based networks (aka MANET), and Internet of Things (IoT) platforms. It is important here to mention that "Traditional infrastructure based network" includes networks with physical network connectivity allowing devices to efficiently communicate and exchange information. In the next subsections, we overview existing solutions in each of these platforms.

SD in infrastructure based network context
Many Service Discovery (SD) protocols were proposed for traditional networks. For instance, the Service Location Protocol (SLP) [35], is among the first protocols that was introduced and designed by the Internet Engineering Task Force (IETF) working group. The SLP protocol is built around three main agents: (1) Service agents, (2) Directory agents (DAs), and (3) User agents (UAs). Service agents are responsible for advertising information about available services such as types, attributes, access etc. The DAs are responsible for storing service information already announced for users. The UAs act on behalf of end-user applications to query DAs about available services. Under this scheme, the SLP protocol can operate in two modes: centralized (if DAs are present), or pull-based (if DAs are absent). Jini, Salutation and UDDI [26] are other standard approaches that use centralized salutation managers, lookup servers, and registry respectively for retrieving, publishing, and managing services information.
Contrarily to SLP, the Simple Service Discovery Protocol (SSDP) [26] was proposed by Microsoft [30] as part of the Universal Plug and Play initiative. SSDP falls under the category of directory-less protocols and operates in both modes: (1) pull and (2) push modes.
Though these protocols are very efficient in traditional networks, they cannot be considered as efficient in resources constrained environments such as MANETs for the following reasons: (1) they fail to account for packet loss and transmission latency, (2) they do not take into consideration various inherent MANET constraints. These refer to the "nature" and "characteristics" of MANET networks, where no centralized control exist, no association between communicating nodes, relatively fast mobility, limited bandwidth, shared broadcast communication channel, limited availability of resources, and heterogeneous types of communicating nodes. In fact, there has been a consensus among researchers that the traditional SD protocols are not a good option for MANETs [27].

SD in MANET context
Several research proposals have tried to address the SD problem in MANETs from different perspectives.
DEAPspace [8] falls under the category of push based and decentralized protocols. DEAPspace operates by periodically synchronizing among neighboring devices a database list of all known services called world view. Compared to other existing push model based approaches, DEAPSpace is known to be a fast protocol in terms of discovering services while not over-consuming available network bandwidth.
Konark [9] is another protocol that was designed specifically for service discovery and delivery in devices operating in ad hoc networks. This protocol alternates between pull and push modes then uses multicast messages for service discovery and advertisement.
Bonjour (known as Rendezvous) is another type of SD protocol that uses a DNS based protocol for service discovery (DNS-SD [32]). The service discovery requires sending two queries: one to acquire the list of available services, and a second query to acquire all information pertaining to a particular service.
PDP [6] is yet a different SD protocol for MANETs. This protocol uses features of push and pull based approaches. Under this scheme, devices keep track of an exhaustive list of all advertised services, which are used to respond to service queries.
Unfortunately, all these directory-less based approaches do not scale well for larger networks due to the excess of control messages being sent out during multicasting or broadcasting [33].
Several techniques were considered to cope with the excess of control overhead messages. Authors in [10,11] have discussed the concept of using DSR and TORA routing protocols for network service discovery. While others considered Proactive and hybrid routing protocols have also been extended to support SD such as OLSR and ZRP [12][13][14].
In [7], the authors proposed location aware service discovery protocol and tried to achieve efficiency by restricting service discovery broadcasts to limited area.
Using the distributed service directories is another technique that improves the number of control messages being exchanged [27].

SD in IoT context
Recently, SD in IoT started to emerge. Most of the proposed solutions attempt to address the following challenges: availability, scalability, robustness, security, interoperability, management, and self-configuration. Proposed solutions for SD in IoT have been surveyed and were classified into nine different categories [22]. Unfortunately most of the proposed approaches fail to effectively address the aforementioned requirements which are imposed by IoT environment. In [21] for instance, the authors introduced the concept of "IoT Gateway", which is a special smart node with caching capability and is part of the peer-to-peer network used to store and retrieve information about resources. The IoT Gateway interacts with IoT nodes at the application level.
Authors in [23] proposed an SD solution for the IoT environment which is based on mDNS/DNS-SD, a widely used protocol with good scalability. They introduced the concept of "Service Context" to cope with the protocol scalability of large networks.
In [24], a new framework for SD in IoT was proposed which is based on three layers: (1) Proxy layer aiming at discovering physical things regardless of the protocols and communication technologies being used, (2) Discovery Layer, which consists of a database where resource parameters can be stored.
Authors in [17] have studied and presented an extended survey of existing SD mechanisms being deployed in the IoT context along with their weaknesses. They grouped these techniques into 4 categories namely: (1) context-aware techniques, (2) Energy-aware techniques, (3) QoS-aware techniques, and (4) semantic-aware techniques.
Along the same line, authors in [18] presented a review of SD techniques in IoT environment. The authors have presented extended classification of such techniques compared to [17]. This includes: (1) Content-based, (2) Context-based, (3) Location-based, (4) Userbased, (5) Semantic-based, (6) Resource-based. They also summarized the main challenges, which are inherent to the nature of large scale mobile networks that categorize IoT environment. These challenges are the following: Asynchronous notifications, Device replacement, standardization, latency, flexibility and support to communication protocols, service selection optimization, and energy constraints.
In [19], the authors have proposed a different classification of existing SD in IoT context techniques. The proposed classification is based on their architecture, search technique, their dependency on Internet protocols, and their operation mode.
Authors in [20] have focused on service search in IoT environment. Contrary to existing service discovery solutions which rely on trivial service information revealed by service providers, the authors have proposed a flexible service search method that uses an extended set of information and data generated by IoT devices to support service retrieval. Such approach was demonstrated to overcome the service availability problem.
Unfortunately, current service discovery protocols proposed for infrastructure based communication networks, MANET, and IoT networks failed to address all inherent MANET constraints and challenges in terms of the non-existence of centralized control, non-existence of association between communicating nodes, relatively fast mobility, limited bandwidth, shared broadcast communication channel, limited availability of resources, and heterogeneous types of communicating nodes. MSLD, which we have proposed in prior work [1], attempts to overcome most of these challenges. It is a robust general purpose protocol in the sense that it works in all environment. MSLD is integrated with stateful autoconf protocol with the goal of using its address agents (AAs) functionalities. Consequently, it is guaranteed that the selection and maintenance of directories occur with no additional overhead, while taking advantage of the distributed directory-based approaches in terms of protocol robustness.

Conclusion
This paper proposes an extensive performance evaluation and comparative study of a service discovery protocol for MANETs (MSLD) that we proposed in our prior work. MSLD was introduced with several key features such as limited protocol control messages overhead, high availability, and generality. MSLD was evaluated based on the following three metrics: service discovery latency, service availability features, and control message overhead. The same metrics were also considered to compare the performance of MSLD with Dir-Based, Dir-less, and PDP protocols under various network simulation setups. In a dynamic scenario, while all protocols achieved a comparable low latency, MSLD outperformed all in terms of communication overhead, which is crucial in a resource constrained environment such as MANET. Similar performance results were also achieved under various network configuration setup in terms of varying the network area, service discovery request, network servers discovery, and the services cache lifetime.

Future work
In our future work, we propose exploring the following directions: we intend to develop an integrated architecture based on MSLD that provides dynamic auto-configuration, name resolution and service discovery for tactical cloud environments [2]. Furthermore, we intend to add a lightweight security module with the goal of providing defensive mechanisms for MSLD when operating in hostile environments. We intend to further reduce the protocol overhead by using space efficient probabilistic data structures such as bloom filters [36].