本文主要想通过动手实际分析一下是如何通过DNS服务器来解析域名获取对应IP地址的,毕竟,纸上得来终觉浅,绝知此事要躬行。
域名与IP地址
当在浏览器上敲下“www.baidu.com”时,一键回车,很快,浏览器上就会刷新出熟悉的百度搜索页面。以前刚接触网络时,总以为这个过程是通过域名www.baidu.com来访问远程服务器,其实不然,本质上,还是通过IP去远程访问服务器获取资源。
这时,聪明的小伙伴就会出现一个疑问,为啥不直接通过域名去寻找到相应的服务器主机呢?
其实,若要实现通过域名的方式去寻找服务器主机,也不是不行,但没这个必要。
先来对比一下域名方式与IP地址方式两者的最关键差异在哪里,就知道为啥没这个必要了。
我们日常工作接触的IPv4地址一般都是以十进制的方式表示,例如,192.168.200.111,但在计算机当中,它其实是以二进制形式存在,192.168.200.111的二进制为1100 0000 1010 1000 1100 1000 0110 1111,总共32位,也就是32比特。众所周知,1个字节占了8比特,那么就意味着,一个32比特的IP地址长度也就4个字节。
在网络传输过程中,4个字节的长度,可以说,微不足道,但,若换成域名呢?
目前,域名最大长度可达:63个字符,每个char字符就占了2字节,63字符占了126字节,可见,若要用域名当成传输的地址,是多么耗性能,但若用IP地址就不一样了,32位也就只占4字节。
事实上,在浏览器上通过IP同样可以访问到对应域名的网址,但IP地址是一长串数字,难以记住,更难以理解这一堆数字代表了啥,但域名就不一样了,像百度的域名www.baidu.com,很直观就知道,这是访问百度的网址。
按照百度百科的说法,设计域名的作用,就是为了让用户更好理解。
当在浏览器上敲下“www.baidu.com”,在这个过程当中,会做一步域名解析成IP地址的操作,这里就涉及到一个叫做DNS的概念。DNS,全称Domain Name System,即域名系统,它提供的作用是将域名和IP地址相互映射。最通俗的理解,它就像是