DNS Message Processing and General Message Format
(Page 2 of 3)
Header and Question Section
The Header is always present in all messages and is fixed in length. In addition to containing important DNS control information, it has a flag (QR) that indicates whether a message is a query or a response. It also has four count fields that tell the recipient the number of entries in the other four sections.
When a client initiates a query, it creates a message with the fields in the Header filled in, and one or more queries (requests for information) in the Question section. It sets the QR flag to 0 to indicate that this is a query, and places a number in the QDCount field of the header that indicates the number of questions in the Question section. The number of entries in the others sections are usually zero, so their count fields (ANCount, NSCount and ARCount) are set to 0 in the header. (While more than one question can be put into a query, usually only one is included.)
When the server receives the query it processes it and performs the information retrieval operation requested (if it can). It then uses the query as the basis for its response message. The Header and Question sections are copied to the response message, and the QR flag is set to 1 to indicate that the message is a reply. Certain fields are also changed in the header to provide information back to the client. For example, the server sets the RCode (Response Code) field to indicate whether the query was successful or if an error occurred, and if one did occur, to indicate what the problem was. The next topic shows all the Header fields and indicates how each is used by both client and server.
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.