720 views
4 votes
4 votes

TRUE/FALSE

DNS can use either of TCP or UDP, for its query and response messages.

3 Answers

Best answer
2 votes
2 votes

Application layer protocols are free to use any transport layer protocol abd then port number , there is no strict bounds , however we choose best suite , like for HTTPS , the best suite is TCP with port 80...

look here , IANA maintained records for ports and corresponding services

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?&page=1

We use TCP , where the reliability is major issue , where we can't digest the errors , like FTP uses TCP , if it uses UDP and as UDP is connection less so let suppose one time , you want to download a file and every time it's getting corrupt ...UDP provide no flow control , no error control...SMTP uses TCP , so there's quite a less probability that you are mailing someone and due to errors contents of mail are changed.....

due to larger header size (20-60B) and other services like flow control , error control TCP is slower than UDP , UDP doesn't establish any connection establishment type work , if it has something to send , it sends immediately so in that way it's fast....If your application wants faster delivery to responses use UDP like DNS uses , here you have to generate response to the domain name as fast as possible...

TFTP uses UDP because it has it's own ACK policy and so in that way it can deal with packet losts , so why to unnecessary slow down the response using TCP ....

Now come to the main point , DNS uses both UDP and TCP ? Yes! why?

there are specific cases when it's better to use TCP than UDP for DNS...like during Zone transfers (zone transfer is basically 'replicating the DNS Database between DNS servers ) It's a sensitive task so it's better to use TCP in that case...

https://tools.ietf.org/html/rfc5936

https://en.wikipedia.org/wiki/DNS_zone_transfer

Second case when TCP is needed , is when data size is greater than 512B (for example during DNSSEC , when we are taking care about security , data size is larger so in that case we have to use TCP)

https://technet.microsoft.com/en-us/library/jj200221(v=ws.11).aspx

https://support.microsoft.com/en-in/help/556000

https://www.networkworld.com/article/2231682/cisco-subnet/cisco-subnet-allow-both-tcp-and-udp-port-53-to-your-dns-servers.html

https://tools.ietf.org/html/rfc7766

So basically DNS uses UDP , but in few cases it prefer to use TCP with compromise at speed of response...

I didn't know much , but Zone transfers are disallowed these days...so you see mostly DNS uses UDP...

selected by
2 votes
2 votes
One thing you must be remember that whenever we need to send only a single request and wanted single reply,we always use UDP,never ever use TCP for that purpose because TCP involves TCP connection(resource reservation) and the data transfer followed by TCP diconncetion(releasing of resource) which surely an extra overhead.

NOTE services or protocol where we uses UDP:
1.DNS
2.TFTP
3.RIP
4.EIGRP...,etc.
1 votes
1 votes
dns uses UDP for its query packet as tcp take more time in connection establishment

No related questions found