据说能讲清楚这些,你就已经掌握了80%的计算机网络知识了。
限于篇幅,本文当然不能完全讲清全部细节,若有兴趣,详见下面的GitHub链。
我们在此主要关注是如何通过简单好记的域名来定位对应网站资源的IP地址。
我们知道,在计算机视角,我们一直都是在使用IP地址来进行通信的,但是于我们人类而言,比起记忆百度的IP地址(110.242.70.57),记忆其域名()肯定要容易得多。
所谓DNS域名解析,就是干了这件事。
以百度为例,我们先拆解一下地址构成:
有点类似于古文,我们从左往右,由点号来区分,分别命名成顶级域名,一级域名,二级域名,三级域名……以此类推。
这里需要讲明白我们日常所说的网址和域名的小小区别,如知乎的创作中心页面网址为: ,抛开用于安全传输的HTTPS协议以外,剩下的就是我们日常所说的网址,但是我们所指的域名,仅限于斜杠之前的内容,斜杠之后属于资源路径,学过Java开发的同学或许知道Javaweb应用开发大多默认首页是localhost8080/index,斜杠之后的index就是你在前端文件夹中放置的首页html文件。
另外,如今万维网协议已经非常广泛了,因此域名www. 和均可访问到对应网页,实际上这两个域名是被定位到同一个IP地址上去了。
言归正传,当计算机发出访问的请求时,首先会优先查找本地主机的hosts文件
若本地的hosts文件存有对应域名和IP地址的映射,则直接转换即可,否则,主机将会访问本地域名解析服务器,多为运营商ISP或者自己配置的公共DNS地址(如114.114.114.114),接下来则会将域名拆解,首先访问根域名服务器(root)[1]根域名服务器存储着顶级域名服务器的地址,(全球只有13台,1个为主根服务器在美国,由美国互联网机构Network Solutions运作。其余12个均为辅根服务器,其中9个在美国,2个在欧洲(位于英国和),1个在(位于日本)。)由根服务器将请求转到对应的顶级域名服务器(如com),接着转发到下属的一级域名服务器,再由一级域名服务器转发到二级服务器,如此向下,直到找到对应IP返回给主机。
这就是DNS中的嵌套查询机制。我们还可使用迭代查询机制,这个更常用:
访问hosts的省略,首先访问本地域名服务器,由本地域名服务器访问根服务器,此时根服务器不再负责继续向下访问,而是将需要向下访问的顶级域名服务器地址告知本地域名服务器,由本地域名服务器自己去访问,同理对于顶级域名服务器也是告知一级域名的地址由本地域名服务器去访问。
此外,上述的一级、二级等等服务器都可称为权限(授权)域名服务器。[2]
了解DNS的工作原理,那么常见某些的网络攻击,以及莫名其妙的广告就能得到解释,如DNS污染/欺骗/劫持,就是通过篡改网站域名和IP之间的对应关系,来引导访问访问到某些钓鱼网站或者广告网站。
转载请注明来自海坡下载,本文标题:《域名解析和DNS是什么关系(如何理解域名系统 DNS)》
京公网安备11000000000001号
京ICP备11000001号
还没有评论,来说两句吧...