does the server keep the UDP/DTLS connection open when using something like the Connection Identifier?
Yes, that’s a very simple and effective trick. Usually the ip-address/port is used to identify the encryption-context of the other peer. RFC 9146 replaces that by the “Connection ID”.
Californium uses that for even more: graceful dtls server restart. Once you use it, you will never miss it again ;-).
Currently there are two implementations I know:
- mbedTLS ( C )
- Californium (Java)
and there is a feature branch in
- tinydtls (C, that’s what I use for zephyr)
and very recently, pion (GO), starts to implement it (see Plans for DTLS 1.2 Connection ID)