The Domain Name System (DNS) is one of the
foundations of the Internet, yet most people outside networks probably don't
realize that they use it every day to do their jobs, check their email, or
spend time on their smartphones.
Simply put, DNS is a directory of domain names
that match IP numbers, the numbers in this case being IP addresses, which
computers use to communicate with each other.
Each device connected to the Internet has a
unique IP address that other devices use to find the device. DNS eliminates the
need for humans to memorize IP addresses such as 192.168.1.1 (in IPv4), or more
complex alphanumeric IP addresses such as 2400: cb00:2048:1::c629:d7a2 (in
IPv6).
The
DNS resolution process involves converting the domain name (eg www.example.com)
to a suitable IP address of the computer (eg 192.168.1.1), where each device on
the Internet is given an IP address, and this address is necessary to find the
appropriate Internet device or website - Like using a street address to find a
specific house.
When
a user wants to load a web page, a translation must occur between what the user
types into their web browser (example.com) and the familiar address of the
device necessary to locate the example.com web page.
To
understand the process behind DNS resolution, it is important to familiarize
yourself with the various hardware components that a Domain Name System (DNS
protocol) query must pass through. For a web browser, the DNS lookup is done
"behind the scenes" and requires no interaction from the user's
computer except for the initial request.
A
domain name directory that matches name with numbers is not in one place on the
Internet, with over 332 million domain names listed at the end of 2017, a
single DNS directory would already be very large, the directory is distributed
all over the world, and it is stored on domain name servers (commonly referred
to as DNS servers) that all communicate with each other on a very regular basis
to provide updates and redundancy.
When
your computer wants to find the IP address associated with a domain name, it
first makes its request to a recursive DNS server, also known as a recursive
resolver. Other DNS servers it needs to request to resolve a site's name to its
IP address, servers that actually contain the requested information are called
official DNS servers.
Each
domain can correspond to more than one IP address, in fact some sites have
hundreds or more IP addresses that correspond to a single domain name, for
example, the server that your computer accesses is likely to be www.google.com
is quite different from a server that someone in another country might access
by typing the same site name in their browser.
Another
reason for the distributed nature of a directory is the amount of time it would
take to get a response when you were searching for a site if there was only one
directory site, shared among millions, possibly billions of people also
searching for information at the same time.
To
work around this issue, DNS information is shared between many servers. But
information about recently visited sites is also cached locally on client
computers.
You
probably use google.com several times a day, instead of your computer querying
the DNS name server for the IP address of google.com each time, this
information is saved on your computer so that it doesn't have to access to the
DNS server for name resolution with its IP address.
Additional
caching can occur on the routers used to connect clients to the Internet, as
well as on the servers of the user's Internet Service Provider (ISP), with so
much caching, the number of queries actually reaching the DNS name servers is
much less than it appears.
In
general, the DNS server you use will be automatically created by your network
provider when you connect to the Internet, if you want to know which servers
are the primary domain servers - generally a recursive resolver, as described
above - there are web utilities that can provide a range of information About
the current network connection. Browserleaks.com is a good site, and provides a
lot of information, including current DNS servers.
It
is important to keep in mind that although your ISP will set a DNS server by
default, you are not obligated to use it, some users may have a reason to avoid
the ISP's DNS protocol - for example, some ISPs use servers Their DNS is to redirect
requests for non-existent addresses to pages with ads.
If
you want an alternative, you can instead point your computer to a public DNS
server that acts as a recursive resolver. One of the most prominent public DNS
servers is Google; Its IP address is 8.8.8.8.
Google's
DNS services tend to be fast, and while there are some questions about Google's
ulterior motives for offering the free service, they can't get any other
information from you that they didn't already get from Chrome. Google has a
page with detailed instructions on how to configure your computer or router to
connect to Google's DNS protocol.