我们知道,每个网站都有一个域名和一个以上的IP地址,当我们想浏览某个网站的时候,只需要在浏览器输入该网址的域名就可以访问了。要是没有域名能不能实现访问网站呢?答案当然是可以啦,不过你每次都需要记住访问的网址的IP地址,比如,你想用百度,每次都需要在浏览器打入112.80.248.74,是不是很令人崩溃啊哈哈哈哈。那么,网址域名和IP地址之间是如何实现一一映射的呢?这时候DNS就该闪亮登场的了。
DNS的全称是domain name system,即。DNS是因特网上作为域名和IP地址相互映射的一个,能够使用户更方便的去访问互联网而不用去记住能够被机器直接读取的IP地址。通过域名,最终得到该域名对应的IP地址的过程则是域名解析的过程。
1.递归查询
某天,客户端想要访问XXX网站,但是,客户端并不知道XXX网站的IP地址。于是,展开了如下对话 客户端:“本地DNS服务器大佬,求问XXX的IP地址是多少?” 本地DNS服务器:“不好意思,我不知道,但是根域名服务器可能会知道,我替去问他吧” 本地DNS服务器:“根域名服务器大佬,求问XXX的IP地址是多少?” 根域名服务器:“不好意思,我不也知道,但是A顶级域名服务器可能会知道,我替你去问他吧” 根域名服务器:“A顶级域名服务器,求问XXX的IP地址是多少?” A顶级域名服务器:“不好意思,我不也知道,但是B域名服务器可能会知道,我替你去问他吧” A顶级域名服务器:“B域名服务器,求问XXX的IP地址是多少?” B域名服务器:“A顶级域名服务器,查到XXX的IP地址是192.168.168.6” A顶级域名服务器:“根域名服务器,查到XXX的IP地址是192.168.168.6” 根域名服务器:“本地DNS服务器,查到XXX的IP地址是192.168.168.6” 本地DNS服务器: “客户端,查到XXX的IP地址是192.168.168.6” 客户端:“谢谢各位大佬,XXX的IP地址是192.168.168.6,我可以和他愉快的通讯了”
2.迭代查询
客户端:“本地DNS服务器大佬,求问XXX的IP地址是多少?” 本地DNS服务器:“不好意思,我不知道,但是根域名服务器可能会知道,你去问他吧”,本地DNS服务器说完,并把根域名服务器地址发给客户端。 客户端:“根域名服务器大佬,求问XXX的IP地址是多少?” 根域名服务器:“不好意思,我不也知道,但是A顶级域名服务器可能会知道,你去问他吧”,根域名服务器说完,并把A顶级域名服务器地址发给客户端。 客户端只能又跑去问A顶级域名服务器了。 客户端:“A顶级域名服务器大佬,求问XXX的IP地址是多少?” A顶级域名服务器:“不好意思,我不也知道,但是B域名服务器可能会知道,你去问他吧”,A顶级域名服务器说完,并把B域名服务器地址发给客户端。 客户端非常无奈,只能又跑去问B域名服务器了。 客户端:“B域名服务器大佬,求问XXX的IP地址是多少?” B域名服务器:“客户端同学,查到XXX的IP地址是192.168.168.6”。 客户端:“谢谢B域名服务器大佬,XXX的IP地址是192.168.168.6,我可以和他愉快的通讯了” 就这样,客户端在询问了一大圈之后,终于知道了XXX的IP地址了。