All the machines which are connected in a network have a numerical address which has been associated to them and this numerical addresses used to communicate with that particular machine and to ensure that when you’re sending any kind of message at any kind of data it gets sent to the right kind of machine. It is very difficult to keep a record of all the machines which are present in and it would just buy the numerical address of the machine and that is why, some other way had to be devised to find out how to identify the machines which are connected in the network. If you’re just relying on the numerical address of the machines then you would have to remember more than 350 million numbers of the machines which are connecting to the Internet.
The first change to the system was the introduction of the hosts file on the machine which tried to connect to the Internet. With the help of this file mapping was done regarding the address but there were flaws in this concept as well.
In the hosts file each and every new entry was to be updated which you had to do manually and moreover there was no easy way to find out among the bulk of entries whether a single entry had been updated are not because there was no automatic notification and you had to check each and everything manually and as time passed and as the use of the Internet grew this file became more and more large and it reached a point where it used to take a significant amount of resources to just do that is mapping with the help of the hosts file.
That is when the concept of domain names servers was devised as a substitute for the hosts file. The simple logic behind the name servers was that they are much more easier to remember than a string of numbers.
The main issue in converting the names to the numbers of the machines was that since each and every numerical address was present in the network of each and every name server you just needed the numerical address and the destination name to access that machine. With this information it became very easy to find out about the numerical IP address of the machine which you want to connect to.
The main advantage of all the setup was that each and every client did not need to update the numerical address whenever some changes were made and they were just updated in the domain name server and you can easily access the new address if it has been changed in the past from the domain name server and since this was a completely different server it did not take the resources from your own machine and therefore it was very affordable as well. All the entries of the domain name servers where updated in a server from where you can easily access the IP address of the machine which you want to access to.
One of the biggest drawbacks of this setup was that if the domain name server was not accessible then you could not access any machine. To resolve this problem came the concept of multiple domain name servers having redundant information. Instead of creating all the servers of same hardware capability a master and slave configuration was adopted. The slave server was accessed only when the master was not online.
In this concept of master and slave domain name server setup there was also a drawback or rather multiple drawbacks.
The problem was that as the Internet started expanding there are simply too many entries which had to be recorded in the servers and retrieving the IP addresses from these entries according to the domain name servers required quite a bit of time and processing power. That is why, now we needed a proper method in which we can organise the entries so that accessing the entries becomes more easier.
At the same point of time as the users on the Internet started increasing, the choir is per second which were to be processed by the domain name server setup also increased and therefore a large amount of processing power was required and all this could not be centralised in a single server and therefore a method was needed in which you can distribute the load of the queries which are coming in to multiple servers having the same entries so that the load can be distributed and the queries can be answered within a proper frame of time.
The answering of the queries are to be separated from the addition of the queries from the admin side and therefore are different protocol was needed for the adding of these queries.
These three were the main disadvantages of the earlier setup which was used for accessing the eyepiece of the machine which you wanted to access on the Internet.
This is what led to the invention of the modern day domain name server setup.
Working of DNS:
Whenever you’re typing in a new domain name, the domain name is then forwarded to the domain name server that is the root server which is the list of all the IP corresponding to the domain names and then you get forwarded to the IP address of the machine on which the site is hosted. Since there are millions of sites on the Internet and it is not possible to remember all the IP addresses this domain name server method is used to ensure that the user just has to remember the domain name instead of remembering the IP. The process of forwarding the request to the IP address from the domain name is known as DNS resolution.
Domain names are used for the human interaction with the network and the IP addresses are used for the interaction internally so that the machine is able to retrieve for you the data which you require or the website which you require.
Types of domain name servers:
Root server: this is the server which contains the information about all the domain names and the IPs which are associated with it. There are 13 such servers globally.
Local name server: these are owned by the Internet service providers and other organisations all around the world and they contain a cache of the common websites as well as the list of the common websites accessed in their region.
Forwarding the DNS request:
The process of DNS request is pretty simple and that is whenever you’re typing any kind of domain name in your browser the request is forwarded by your local computer to the local domain name server first and if the local domain name server is able to find the IP address of the website which you are searching for the request is returned otherwise the request is forwarded to another server which is higher in the hierarchy and this process continues until the IP address of the domain name is found.
This is how the DNS system works which enables us to use the Internet in its present form.