Ad-hoc Service Discovery Protocol Server-Based Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network discovery protocols face limitations in reliability, security, and scalability, particularly in ad-hoc networks where devices and services need to be discovered without prior knowledge.

Innovation Solution

An ad-hoc service discovery protocol that employs a server-based approach with multicast fallback, uses TCP for guaranteed message delivery, includes endpoint identifiers and stateless boot times for improved reliability and caching, and supports hierarchical scopes and filtering for efficient query management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multicast-based discovery is used in ad-hoc networks, then device discovery capability is improved, but network scalability and reliability deteriorate due to message delivery uncertainties and duplicate responses

Engineering Contradiction:
Improvedevice discovery capabilityVSAvoidmessage delivery reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

A discovery server is introduced as an intermediary component that receives discovery requests, manages discovery responses, and coordinates communication between discovery clients and services. The server maintains state information about discovered services and handles message routing, thereby improving reliability while preserving multicast-based discovery capabilities for ad-hoc networks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The protocol implements dynamic behavior where discovery clients can switch between direct multicast discovery and server-mediated discovery based on network conditions and service availability. The discovery server itself dynamically discovers services through multicast announcements and updates its internal state, adapting to changing network conditions.

Inventive Principle:
Principle #15Dynamics

2Reliability

If TCP is used for direct messaging instead of UDP, then message delivery reliability is improved, but protocol complexity and connection management overhead increase

Engineering Contradiction:
Improvemessage delivery guaranteeVSAvoidprotocol implementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The protocol applies different communication qualities to different message types: reliable TCP connections are used for direct discovery requests and responses between clients and services, while simpler UDP multicast is used for service announcements and discovery server communications. This selective approach ensures reliability where needed while minimizing complexity overhead.

Inventive Principle:
Principle #3Local quality

3Loss of time

If service descriptions are cached locally, then discovery response time is improved, but cache consistency and update complexity increase

Engineering Contradiction:
Improvediscovery response timeVSAvoidcache management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The discovery server implements a feedback mechanism where services periodically announce their presence and status through multicast messages. The server receives these announcements, updates its internal service registry, and notifies cached clients of changes. This feedback loop ensures cache consistency without requiring complex pull-based update mechanisms at each client.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Services automatically perform self-announcement through multicast service description messages, providing their own discovery information without requiring active querying. This self-service approach simplifies cache management by making discovery information readily available through passive listening rather than active cache synchronization.

Inventive Principle:
Principle #25Self-service

4Area of stationary object

If multicast message recasting is allowed for service propagation, then network coverage is improved, but duplicate responses and message storms increase

Engineering Contradiction:
Improvenetwork coverage areaVSAvoidduplicate responses
Core Design Contradiction:
Area of stationary objectVSObject-generated harmful factors

Solution Approach 1:

The discovery server performs preliminary actions by maintaining a registry of discovered services and pre-processing discovery requests. When a client requests service discovery, the server checks its registry first and directly returns matching services without requiring extensive multicast recasting. This preliminary filtering reduces the need for widespread message propagation and minimizes duplicate responses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The protocol implements selective message recasting where the discovery server determines the appropriate scope and repetition of multicast messages based on network conditions and service distribution. Rather than uniformly recasting all discovery messages throughout the network, the server applies partial recasting only where necessary to achieve adequate coverage, reducing duplicate responses while maintaining network coverage.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7685288B2Ad-hoc service discovery protocol
Publication Date: 2010.03.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7685288B2 patent drawing
  • US7685288B2 patent drawing
  • US7685288B2 patent drawing

AI summary

An ad-hoc discovery protocol improves reliability, security and scalability of multicast and server-based discovery. In switching from multicast to server-based discovery, the discovery client is made responsible for multicast suppression, and not discoverable devices with services. Messages include message identifier and time-to-live parameters to detect recast queries and avoid duplicating replies. A device's announcement message includes endpoint identifier, configuration number and stateless boot time parameters to detect changed device configuration and rebooted state for refreshing cached device and service descriptions. Paging parameters allow a discovery client to control the number of discovery responses returned at a time from a discovery server.