The programs and users do not usually use the network address of the host's to find them. In order to simplify the operation, chains of ASCII characters are needed, like, for example, www.auben.net. However, since the equipment only understand binary addresses, mechanisms to convert chains of characters into binary addresses are required. This mechanism is called DNS.
A domain's name is a mnemonic representation that corresponds to an IP address, which is useful to locate the resources and services. The resolution of the domain name to the IP address is performed by the DNS service.
The DNS system is basically a distributed database, where programs called name servers constitute the server part of the client-server mechanism. The name servers contain information about some segments of the database. They provide it to the clients that have made a requirement, called resolvers. The resolvers are usually implemented as a routine which generates a consult and sends it to a name server.
DNS implements a scheme of hierarchical names based on domains, and a distributed database to implement this scheme. Conceptually, the internet is divided into different superior level domains, among which multiple hosts are found. In turn, each domain is subdivided into subdomains and they can keep subdividing themselves. This way, they create a domain tree.
The DNS servers, distributed in the network, form a tree, where each node has registers that save information associated to the domain. The tree is subdivided into zones. A zone consists in a collection of nodes managed by a DNS server of greater authority. In the head of the tree, the DNS Root Name Servers can be found. They are the most important servers and there are only 13 in the world (10 in the USA, 1 in Stockholm, 1 in London and 1 in Tokyo).
The DNS system solves requests making use of a distributed scheme, searching an authoritative answer to a particular request.
More information at: