DNS Message Generation and Transport
(Page 1 of 2)
In the preceding sections we have explored the many different tasks that DNS servers and resolvers perform: regular name resolution, reverse name resolution, e-mail resolution, zone transfers, and more. Each of these operations requires that information be exchanged between a pair of DNS devices. Like so many other TCP/IP protocols, DNS is designed to accomplish this information transfer using a client/server model. All DNS exchanges begin with a client sending a request, and a server responding back with an answer.
In the overview topic on TCP/IP's client/server nature, I explained a potential source of confusion regarding these terms: the fact that they refer to hardware roles, software roles and transactional roles. This issue definitely applies when it comes to DNS. We've already seen that DNS implementation consists of two sets of software elements: resolvers that act as clients and name servers that are of course the servers. Resolver software usually runs on client machines like PCs, while name server software often runs on dedicated server hardware.
However, these designations are based on the overall role of the hardware and software. From a messaging viewpoint, the client is the initiator of the communication, regardless of what type of machine does this initiating, and the server is the device that responds to the client. A resolver usually acts as a client and a name server as a server. However, in a particular exchange a DNS name server can in fact act as a client, in at least two cases. First, in recursive name resolution, a server generates requests to others servers and therefore acts as a client. Second, in administrative functions like zone transfers, one server acts like a client and sends a request to another server. (There are no cases in DNS that I know of where a resolver acts as a server, incidentally.)
Most transactions in DNS consist of the exchange of a single query message and a single response message. The device acting as client for the transaction creates the query and sends it to the server; the server then sends back a reply. This is done through the process described in the next topic. In certain cases where a great deal of data needs to be sent, such as zone transfers, the server may send back multiple messages. Multiple such transactions may be required to perform a complete name resolution, as my example of the DNS resolution process demonstrated.
Home - Table Of Contents - Contact Us
The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005
© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.