You could also handle the "handshake" elsewhere, like the application layer. This type of identification is already done in other UDP-based protocols, like RADIUS.
UDP is arguably faster in some ways that is handled, provided the application load is managed well.