The term address resolution refers to the process of finding an address of a computer in a network. The address is "resolved" using a protocol in which a piece of information is sent by a client process executing on the local computer to a server process executing on a remote computer. The information received by the server allows the server to uniquely identify the network system for which the address was required and therefore to provide the required address. The address resolution procedure is completed when the client receives a response from the server containing the required address.
The Domain Name Service is an example of a client/server system which is used by the Internet Protocol (IP) Suite to resolve the logical names of nodes in an IP network to an IP address (see also arp - which is used to resolve Ethernet addresses to IP addresses).
This example considers a login from a computer X to a remote computer Y using a DNS server Z. The process is shown in the figure below:
The process may be described in six steps:
The Story of the DNS
Once there were only a few computers connected to the first internet, called the ARPANET, at that time everyone knew each others IP address, so communication was easy, one simply typed the appropriate sequence of digits representing the IP number for each destination.
After a while, the number of computers started to grow, and people began to forget the strange numeric IP numbers. So IP names came into being, and each computer held a table of names and their associated addresses, which had to be updated as new computers were connected to the network.
Soon new computers were being connected to the network too quickly for everyone to keep up. Someone had the bright idea of keeping just one central list, and such a list was created and stored at Stanford University. Too add a new computer, one simply told the people at Stanford, and they added your name and IP address to the list. Every week, or so, you had to transfer the list to your own computer (using ftp).
A little while passed, and the network grew. Eventually, there were just too many computers, the people at Stanford became overloaded with requests to add and change the network information: the file of all addressees was getting too big, and there was a constant demand for the users to download new copies of the file. The solution was to create a distributed database - called the Domain Name System (DNS).
In the DNS, there are a set of root domain servers (rather like the old Stanford computer), but they don't actually store much information. Instead they contain the IP addresses of other servers which have information about specific groups of addresses known as "domains". The root server is said to delegate responsibility for each domain to a lower domain server. In turn, each of these servers may delegate other domains to other servers. Before long, there were many many domain servers each responsible for the groups of users in a local area. Each server maintained pointers allowing them to find out information about other domains by sending query messages to the other domain servers. In this way, any DNS server can resolve the name of any computer to an IP address of any user irrespective of whether that user is in the same local domain or is registered with some remote domain.
P.V. Mockapetris, Domain names - concepts and facilities, RFC1034