Networked Media Open Specifications

Discovery: Peer to Peer Operation

←Discovery - Registered Operation · Index↑ · Behaviour→

This document describes usage of NMOS APIs for discovery in cases where where a distributed registry is not available, such as small ad-hoc installations.

Note that the peer to peer discovery mechanism depends upon mDNS which is not intended to operate over IP routed boundaries (ie. between network subnets). As such it is recommended that for most use cases, in particular fixed installations and those requiring high levels of resilience, the registered discovery mechanism is used.


The following pre-requisites are mandatory aspects of the Node API implementation which must be in place to permit peer to peer discovery.


The following scenario describes a peer-to-peer discovery in which a Node features an onboard control interface (for example a display with an input source menu).

  1. Node comes online
  2. Node scans for an active Query API on the network (type ‘_nmos-query._tcp’)
  3. Given no active Query API, Node scans mDNS for other Nodes (type ‘_nmos-node._tcp’)
  4. Using the returned list of Nodes, the requesting Node may request data from remote Node API resources as required in order to populate a control interface. This may be as simple as requesting the ‘/senders’ resource.
  5. The Node continues to monitor for changes to Node advertisements via mDNS. When Node API resources are changed, the TXT records associated with each Node will be updated to indicate which API resource(s) have been updated (see Node API specification)
  6. The Node SHOULD not re-poll remote Nodes on a timer in order to gather data about updated API resources
  7. The Node can perform connection management tasks automatically without user intervention provided they only affect that Node’s operation. This includes but is not limited to automatically routing video from a discovered Sender to a display’s Receiver

If a Query API becomes available on the network during peer-to-peer operation, the Node modifies its behaviour in one of the following two ways:

Recommendations for Dual-Mode Operation

To allow both peer-to-peer operation and operation using a distributed Query API, it is recommended that:

←Discovery - Registered Operation · Index↑ · Behaviour→