If a DNS query gets lost along the way to its destination, is nothing done about it? In my networking class, my lecturer said that DNS runs on UDP. I verified this in Wireshark by doing nslookup for a domain and examining the transport layer protocol. It was UDP. I know that UDP is unreliable and makes "best effort" delivery. It does not send Acknowledgements for received packets and does nothing about corrupted or dropped packets. I also know that reliability can be implemented at the application layer, but we never discussed much on that. So back to the query, is nothing done about a lost DNS query? Any help would be appreciated.
1 Answer
From the network side, a lost DNS-over-UDP request is just lost. The client may try again but that is the application side.
DNS can also use TCP, although this is uncommon for a normal client request. A lost DNS-over-TCP request is automatically retransmitted by the TCP protocol until it has been ACKed by the the server (after multiple unsuccessful transmissions the socket times out). Even over TCP, the request can theoretically be "lost" - time out on the client while the server is still trying to resolve.