I find it ironic that Linus’s explanation for ENOENT
being invalid for an ioctl given its meaning of “No such file or directory”, while simultaneously ioctl can return ENOTTY
when using a mismatched device fd despite the error meaning “Not a typewriter.”
Not really a problem with UDP itself, but with some very old protocols like DNS that rely on UDP but can’t be changed because of compatibility. If you’re writing a new service that uses UDP, there’s nothing stopping you from designing it so that it doesn’t provide an opportunity for bandwidth amplification.