Direct mapping, one packet to one message, always cloaked.
Local port binding is dynamic (bind to 0
) unless given a specific port. Implementations should support mapping the dynamic port via NAT-PMP and UPnP when possible.
Packets larger than the MTU may be fragmented by the router, but chunking should not be used for UDP messages. packets larger than a low MTU should be dropped so that higher-level implementations can optimize the packet sizes and detect the MTU.
A new keepalive handshake should be automatically triggered when no packets have been sent for 30 seconds in order to keep any NAT mappings active.
UDP transports must always also listen on *:42420
with broadcast enabled and also join the multicast address group 239.42.42.42
when available.
When discovery is enabled, the announcement packet(s) should be broadcast to the local LAN subnets port 42420
and the multicast group once every 10 seconds.
Example path JSON for IPv4:
{
"ip": "192.168.0.55",
"port": 42424,
"type": "udp4"
}
Example path JSON for IPv6:
{
"ip": "fe80::bae8:56ff:fe43:3de4",
"port": 42424,
"type": "udp6"
}