We’ll now have a look at the domain name system or DNS. The purpose of the domain name system is to map human readable names such www.gatech.edu to IP addresses such as 184.108.40.206. A name such as this is human readable and much easier to remember and type than an IP address. But in fact, the IP address is what’s needed to send traffic to the intended destination. So, we need a look up mechanism that takes a human readable name and maps it to an IP address. The system that does this is a Domain Name System, or the DNS. They system roughly works as follows the client may want to look up a domain name such as www dot [UNKNOWN] edu the network application source code might do so by invoking a function such as get host by name. Which takes as an argument a domain name and returns an IP address. The client typically has what’s called a stub resolver, and that stub resolver takes that name and issues a query. The stub resolver might have cached the answer or the IP address corresponding to this name but if not, the query is sent to what’s called a local DNS resolver. Your local DNS resolver, is typically configured automatically when your host is assigned an IP address using a protocol called the domain host control protocol or DHCP. In your host configuration such as this one, you can see that this local host has two local DNS resolvers. Typically, a client will try the first DNS resolver and if it doesn’t receive a response within a preconfigured timeout, it will try sending the same query To the second local DNS resolver as a backup. This query is typically issued recursively, meaning the client does not want intermediate referrals sent back to it. It only wants to hear when it’s received the final answer. The local resolver on the other hand will perform iterative queries. It might have the answer, to this particular query, in the cache in which case it would simply reply with the answer. But let’s suppose for the moment, that nothing is cached, each fully qualified domain name is presumed to end with a dot, indicating the root of the DNS hierarchy. Now the IP addresses for the root servers, or those that are authoritative for the root may already be configured in the local DNS resolver. In this case, the resolver may be able to query for the authoritative server for .edu and say a.rootservers Dot net. This would be an a record query. The answer might return with what’s called an NS record which is a referral. In this case the answer might be a referral to the edu servers. Now the local resolver issues the same query to the edu servers and receives a referral to the authoritative servers For gatech.edu. Finally the local resolver might query the authoritative name server for gatech.edu and actually receive an A record indicating the actual IP address that corresponds to that name.