The Domain Name System provides a consistent name space that is used for referring to resources. It is a distributed hierarchical system that can be used in many applications and across multiple communications systems. It consists of three kinds of entities: name servers, name resolvers, and resource records. Name servers answer queries using data available to them. Name resolvers serve as an interface between user programs and the Domain Name System. Resource records are the data associated with the names. The details of the algorithms used in the name server and name resolver entities of the Domain Name System will be described and examples will be given to clarify the interactions between the various entities. As well, links to course material will be highlighted and the strong and weak points of the Domain Name System will be discussed.