Protocols
NDI
Newtek NDI
NDI stands for Network Device Interface.
https://en.wikipedia.org/wiki/Network_Device_Interface
Also see NDI page https://videng.wiki/en/software/VizRT/NDI
Ports
| Port number | Type | Use |
|---|---|---|
| 5353 | UDP | This is the standard port used for mDNS communication and is always used for multicast sending of the current sources onto the network. |
| 5959 | TCP | NDI Discovery Server is an optional method to have NDI devices perform discovery. This can be beneficial in large configurations, when you need to connect NDI devices between subnets or if mDNS is blocked. |
| 5960 | TCP | This is a TCP port used for remote sources to query this machine and discover all of the sources running on it. This is used for instance when a machine is added by an IP address in the access manager so that from an IP address alone all of the sources currently running on that machine can be discovered automatically. |
| 5961 and up | TCP | These are the base TCP connections used for each NDI stream. For each current connection, at least one port number will be used in this range. |
| 5960 and up | UDP | In version 5 and above, when using reliable UDP connections it will use a very small number of ports in the range of 5960 for UDP. These port numbers are shared with the TCP connections. Because connection sharing is used in this mode, the number of ports required is very limited and only one port is needed per NDI process running and not one port per NDI connection. |
| 6960 and up | TCP/UDP | When using multi-TCP or UDP receiving, at least one port number in this range will be used for each connection. |
| 7960 and up | TCP/UDP | When using multi-TCP, unicast UDP, or multicast UDP sending, at least one port number in this range will be used for each connection. |
| Ephemeral | TCP | Legacy to NDI v1 - The current versions (4.6 and later) no longer use any ports in the ephemeral port range. |
Audinate Dante
Dante
Dante is a combination of software, hardware, and network protocols that delivers uncompressed, multi-channel, low-latency digital audio (and now video) over a standard Ethernet network. Dante is an acronym for Digital Audio Network Through Ethernet.
https://en.wikipedia.org/wiki/Dante_(networking)
FAQ
What is the minimum requirement for switches in a Dante network?
While Gigabit switches are recommended, 100Mbps switches may be used in limited scenarios.
For low channel count (<32) applications, a 100Mbps switch may be used as long as it supports proper QoS, and QoS is active. The use of 100Mbps switches without QoS is not recommended or supported. For higher channel counts, Gigabit switches are essential. QoS is recommended for Gigabit switches on networks that share data with services other than Dante.
Network Configuration
IGMP Snooping
IGMP v2 / v3 on macOS
IGMP is specified in two commonly used versions: v2 and v3. This difference is most easily seen on current macOS computers that use IGMP v3 on built-in Ethernet ports; these may fail when connected to IGMP v2 switches. An easy workaround is to use an Ethernet adapter, all of which use IGMP v2. https://www.audinate.com/blog/post/well-intentioned-mishaps-with-igmp-snooping
Alternately (at the switch level) you can ‘Forward All’ multicast traffic to the Mac. In effect, that disables IGMP snooping for that port. However, assuming the Mac has a Gigabit port, you should be fine.
Link-Local
For Link-Local networks, Dante expects primary interfaces to use the 169.254.x.x range, and secondary interfaces to use the 172.31.x.x range. {.is-info}
The primary and secondary interfaces should not share a subnet or IP space. If a Dante device resets to factory default settings it may revert to "Daisy-Chain" mode – meaning it is now bridging your primary and secondary networks instead of offering redudancy - causing multiple interfaces to use the same IP address. {.is-warning}
- IP addresses for each network interface must be unique.
- Dante Primary and Secondary networks must never be physically linked.
- Dante Primary and Secondary addresses must be in different subnets.
- Dante Primary will use the 169.254.x.x subnet when set to auto-configure. This is standard IPv4 protocol and therefore the same behaviour as the Connectivity network.
- Dante Secondary will use the 172.31.x.x subnet when set to auto-configure. This is still a private address within IPv4, and is not reserved exclusively for auto-configuration, making its use for secondary auto-configuration unique to Dante.
- In addition to being configured in different subnets, Dante Primary, Dante Secondary and Connectivity should typically be treated as three physically separate networks, with their own network hardware.
Troubleshooting
Using Wireshark to Troubleshoot Dante Issues
Filters
Filter Multicast
(eth.dst[0] & 1)
Filter to Port
udp.port == 4440
Reverse Engineering
Some details on this page are derrived from packet inspection or other reverse-engineering techniques and are not officially released from Audinate. {.is-warning}
Ports
8700 (UDP)
- Sample rate
- Level control
- Preferred Encoding
- Device Identification (Flash Port Light)
4440
- Get/set subscriptions
- Device latency
- Set/reset channel name
- Rename device
5353 (MDNS)
- Read device encoding
- Read device sample rate
- Read device latency
- Enumerate channel count
- Device discovery
- Device model
- MAC address
- Device manufacturer
- Device version