Transports: Zenoh vs DDS
Conduit 2.0 supports two transports for publishing ROS 2 messages. This page helps you pick one and configure it correctly.
Quick Decision
| Your ROS 2 setup | Recommended transport |
|---|---|
Uses rmw_zenoh_cpp |
Zenoh |
Uses rmw_cyclonedds_cpp (default on Humble; opt-in on Jazzy/Kilted/Rolling) |
DDS |
| Needs to cross subnets / WAN | Zenoh (run a router with a public IP) |
| Same-LAN, no bridge infrastructure | DDS |
| Corporate network blocking multicast | Zenoh (TCP) |
Side-by-side
| Zenoh | DDS (CycloneDDS) | |
|---|---|---|
| ROS 2 RMW | rmw_zenoh_cpp |
rmw_cyclonedds_cpp |
| Bridge required | Yes (Zenoh router, rmw_zenohd) |
No |
| Discovery | Via router | Multicast, Unicast, or Hybrid |
| Transport | TCP (default 7447) | UDP (7400 + 250 * domain_id, and neighbors) |
| Cross-subnet | Yes | No (LAN only) |
| Works through NAT | Yes (with router on public IP) | No |
| iOS network interface | Any reachable interface | Must bind to en0 (WiFi) |
| Cellular / VPN | Works (TCP egress) | Not supported |
| Domain ID range | 0-232 | 0-232 |
| Large messages | Router handles fragmentation | UDP fragmentation (WiFi may drop) |
| Setup complexity | Router needed | Direct |
Configuration at a Glance
Zenoh:
- Settings → Transport: Zenoh
- Router Address: <host-ip>
- Router Port: 7447
- Domain ID: match ROS_DOMAIN_ID on host
DDS:
- Settings → Transport: DDS
- Discovery Mode: Hybrid (recommended) / Multicast / Unicast
- Unicast Peers: add the ROS 2 host IP (required for Unicast/Hybrid)
- Network Interface: en0 (do not use auto)
- Domain ID: match ROS_DOMAIN_ID on host
Network Requirements
- Zenoh: iOS device and ROS 2 host must be able to establish a TCP connection to the Zenoh router on port 7447.
- DDS: iOS device and ROS 2 host must be on the same LAN subnet, with UDP traffic permitted on DDS ports (
7400 + 250 * domain_idand adjacent). Multicast reachability is required for Multicast/Hybrid modes. Consumer APs with "AP isolation" enabled will block peer-to-peer UDP — use Unicast mode, or disable AP isolation.
When to switch
Use Zenoh if: - You hit fragmentation drops on DDS with large Camera/LiDAR messages. - You need to connect from outside the LAN. - Your WiFi AP blocks multicast and you cannot change it.
Use DDS if: - Your ROS 2 nodes already use CycloneDDS and you don't want to install a Zenoh router. - You want the shortest network path (no extra hop through a router).
See also: - faq.md — setup Q&A - troubleshooting.md — failure modes for both transports - known-issues.md — current limitations