Skip to content

Discovery

Discovery is a core mechanism in DaaS-IoT that enables autonomous network formation, dynamic node awareness, and secure integration of heterogeneous devices into a shared logical system.

Through discovery, nodes identify each other, negotiate their participation in an overlay network, and establish the foundations required for routing, synchronization, and data exchange.


Purpose

The discovery mechanism is responsible for:

  • Detecting reachable nodes in the surrounding environment
  • Enabling mutual awareness between nodes identified by a Dynamic Identifier (DIN)
  • Bootstrapping the logical overlay network defined by a System Identifier (SID)
  • Triggering the initialization of time synchronization mechanisms
  • Enforcing trust boundaries and admission policies

Discovery is transport-independent and operates uniformly across all supported communication drivers.


How Discovery Works

At a high level, discovery is based on the exchange of lightweight control messages between nodes.

The process typically includes:

  1. Emission or reception of discovery messages
  2. Exchange of minimal identity and capability information
  3. Validation against local admission and security policies
  4. Optional assignment or negotiation of identifiers
  5. Integration of the node into the overlay network
  6. Triggering of synchronization procedures

Discovery does not rely on any centralized registry or external coordination service.


Discovery Activation Modes

Starting from version 0.21.03, discovery behavior is explicitly configurable through four activation modes:

  • discovery_off
    Discovery is completely disabled. The node will neither emit nor accept discovery messages.

  • discovery_sender_only
    The node emits discovery messages but ignores incoming discovery requests.

  • discovery_receiver_only
    The node accepts incoming discovery requests but does not actively emit discovery messages.

  • discovery_full
    The node both emits and accepts discovery messages, fully participating in network formation.

These modes allow fine-grained control over network visibility, security posture, and deployment topology.


Dynamic Identifier Assignment

Discovery is tightly coupled with the dynamic assignment and resolution of identifiers.

DIN Assignment

If a node is initialized without a predefined Dynamic Identifier (DIN):

  • A DIN is automatically generated using a time-based algorithm
  • The generated DIN is guaranteed to be unique within the active overlay
  • The DIN becomes the routing and addressing reference for the node

This behavior is analogous to DHCP-like resolution in traditional networks.

SID Assignment and Inheritance

When discovery is enabled:

  • A node may join the network without a predefined System Identifier (SID)
  • Upon joining an existing network, the node inherits the SID from the network master
  • If a SID was manually set by the user, it may be overridden to ensure consistency and avoid conflicts

A node that has neither a valid SID nor an active discovery process cannot communicate until it successfully joins a network through discovery.


Beaconing and Network Formation

Discovery may leverage beaconing mechanisms to support:

  • Automatic detection of nearby nodes
  • Formation of networks without prior configuration
  • Dynamic adaptation to node mobility or topology changes

Beaconing allows nodes to advertise their presence and discover peers even in unstructured or highly dynamic environments.


Security and Admission Control

Discovery defines the primary trust boundary of a DaaS-IoT system.

Each node can enforce admission policies on incoming discovery requests, including:

  • Accept: the request is processed and the node may join the network
  • Ignore: the request is silently discarded
  • Reject: the request is explicitly refused

These policies enable:

  • Creation of private or restricted overlays
  • Protection against unauthorized nodes
  • Controlled exposure of network presence

Security decisions are evaluated before any identifier assignment or synchronization is performed.


Discovery and Time Synchronization

Discovery is the trigger point for time synchronization.

Once a node is accepted through discovery:

  • An initial ATS (Average Time Synchronization) phase is executed
  • This phase bootstraps the distributed synchronization process
  • The system then transitions to dATS (distributed ATS) for long-term stability

Time synchronization is mandatory before bidirectional communication is considered fully established.


Dynamic Network Adaptation

Discovery is not a one-time operation.

It continuously supports:

  • Node join and leave events
  • Recovery from temporary disconnections
  • Reconfiguration due to mobility or link degradation

The overlay network adapts dynamically while preserving routing consistency and temporal coherence.


Cross-Platform and Transport Independence

Discovery operates uniformly across all supported platforms and communication drivers.

Its behavior and guarantees remain consistent regardless of:

  • Operating system
  • Hardware architecture
  • Underlying transport technology

This ensures predictable and portable behavior across heterogeneous deployments.


Warning

Discovery behavior in version 0.21.03 is not compatible with previous releases. Nodes running older versions cannot correctly participate in discovery with 0.21.03 systems.