Firstly I appreciate the UDP is not a reliable protocol, and I am not guaranteed to receive packets across a network.
However, if the packet does reach my machine, am I guaranteed to receive it at the application level, or can the network stack throw it away with impunity?
The reason I ask is that I seem to be missing packets occasionally, even though I know they're on the wire (simple EtherCAT bus, so packets always loop back).