" Love - It's when you
memorize her IP Address to over come the DNS overhead "
In it's earlier days, internet websites or rather servers were very limited and not used by a large audience. Hence it was ok to access these websites using their IP Addresses. But as Internet grew more popularity, the number of Web Servers and it's audience grew more. It was hard for people to reach out for these web servers just by their IP Addresses. Therefore, The GREAT Stanford Research Institute came up with a possible solution. They created and maintained a database file which would contain various IP Addresses along with their corresponding Web Addresses. This file was known as HOSTS.TXT .
Being a text file, we couldn't utilize the information efficiently. Also at times when there is a load of Client requests waiting to be responded, HOST.txt was not a fit choice. That is when Paul Mockapetris came up with a whole system to manage these Domain Names. He suggested to store the information into a Database. Thus making it more easier and efficient to use it.
So next time if any client wanted to access any web server,
he/she wouldn't need to type the lengthy and complicated IP Address. The Client
would enter the web address in their browser. Their browser would automatically
visit the corresponding IP Address by looking into the HOSTS.TXT database.
This was a great solution. Human mind can remember the
web address easily than the IP Addresses. Gradually the number of Entries in
HOSTS.TXT increased rapidly thus increasing the size of the database. Now
various servers were established to store and maintain these database files.
These servers were named Domain Name System Servers. Whenever a client made a request
to a Server Web Page, the request was first sent to the DNS to fetch the
corresponding IP.
Let us now check out how this Domain name system actually works…
Domain Name database has a hierarchical
structure i.e. it has various levels at which the domains are stored. Take the
example of the web address : “holymotherpython.blogspot.com”, this web address can be broken into 3 domain names: “n8working” , “blogspot” and “com”. All these are the domain names .
Whenever a request to visit this particular URL is received by the DNS server, a
program runs that reads the URL backwards. As soon as the program finds a
“ . ” , it moves one level down and continues accordingly. This means that
first, the program reads “com” then "blogspot" and finally "n8working". Therefore .com is a Top
Level Domain (TLD).
The “com” can be considered as a directory or a folder
which has other folders inside it. These folders have further folders inside
it. To access a particular folder, you first need to open it's prior
folder.
For those of you who are acquainted with Linux (UNIX)
OS, understanding DNS will be really easy.
- In UNIX operating system, all the other directories and files are stored inside the “Root” i.e. “ / ” directory. Similarly, all the DNS domains are stored inside the “Root” i.e. “ . ” Domain.
- In Unix file system, the absolute path for a particular directory is separated by “ / ” . Similarly in the DNS, to separate the two domains, we use a “ . ”. Now you know why there is a Dot ( . ) in a URL.
- This also means that any URL originally has a Dot ( . ) at it’s ends. But we don’t actually write it… our intelligent Browsers automatically adds it.
With the overgrowing demand of web pages, the demand
for accessing the root servers also increased. Therefore having 1 root server
to maintain the whole world’s HOSTS.txt database wasn’t such a good
idea.Therefore there are 13 Root servers. These Root servers were identified as
Capital Alphabets- Root server A,B,C,D…..,M (That’s 13). Many copies of these
Root servers were established across the globe.
Even after creating such parameters, there was trouble
managing all the websites.
The DNS servers faced the following challenges:
- Consistency
- Overload of Traffic
- Name similarity causing collisions
There were many similar websites. We can
take the example of Google: we have google.com , plus.google.com , mail.google.com etc. So these firms were asked to maintain there own
DNS servers whose root server is going to be google.com . This smaller DNS server had all
the information of google’s websites. This DNS server was named as Name-server.
The root of the Name-server was added into the original DNS database. Therefore
a Name-server is a server which holds up all the information about a small part
of DNS database.
DNS Resolution:
Assume that a client is trying to
access google.com . He/she types the web address
into the browser. The browser first sends the request to the nearest DNS
server. The server reads the web address (backwards) and looks into the Top
level to match up with the TLD’s. If the program finds the following TLD (in
our case “ com “), it checks the domains under that TLD. This process is
continued until the whole web-address is read. Also every time a domain is
available on the DNS directory, it sends a referral carrying the corresponding
IP.
You can also view the whole process in your pc. Follow
the following steps:
- Go to the Command Prompt. (Win + R -> type " cmd " -> Enter)
- Type:- " nslookup " + Enter.
- Type any website address whose IP you want to check and press Enter.
This however, doesn’t mean that the DNS servers and
the Name-servers have all the web-addresses and the corresponding ip addresses
of all website…
There is still the more deeper and more darker part of
the internet. Amazingly, this part is the majority of the internet. “THE
DEEP-WEB”!!!. DNS doesn’t carry information about the Deep-web websites. This
is due to the fact that most of these websites are reached out by directly
entering the IP Addresses.
We’ll look into the fascinating yet terrifying world
of deep web soon in the upcoming articles.
Till then, Thanks for Reading !!! Let me know in the comments if you have any queries or if you liked it.