目录
域名和IP地址:在1983年,因特网就开始采用层次结构的命名树作为主机的名字,即域名。因为域名比IP地址更加方便人们记忆,人们可以通过域名更加方便地访问互联网。但实际上网络识别的仍然是IP地址,所以就有了域名系统DNS。域名系统DNS是分布式的。
作用:域名系统DNS的作用就是将域名映射成IP地址。DNS是指域名系统,是可以将域名和IP地址相互映射的一个分布式数据库。因为DNS是分布式的,所以即便单个计算机出现故障,也不会影响整个系统的正常运行。 DNS使大多数域名都在本地进行解析,仅少量解析需要在因特网上通信,因此系统效率很高。
大致过程:客户端在访问Web服务器的时候可以大致分为以下三个过程:1、客户机在自己的DNS高速缓存中没有查到域名对应的地址,便会向域名系统DNS发送域名查询请求。 2、DNS服务器告知客户机Web服务器的IP地址。 3、客户机与Web 服务器进行通信。
端口号和协议:DNS运行在UDP协议上,使用的端口号为53。
结构:因特网采用层次树状的域名结构。域名结构由若干个分量组成,每个分量之间用“.”隔开,分别代表不同级别的域名。
级别和每一级的组成:从右往左域名级别逐渐降低,即级别最低的域名在最左边,级别最高的域名在最右边。每一级的域名都由英文字母(不区分大小写)和数字组成,并且不超过63个字符。完整的域名不会超过255个字符。
域名系统既不规定一个域名包含多少个下级域名,也不规定每一级的域名代表什么意思。
各级域名都由其上一级的域名管理机构管理,最高级的顶级域名则由因特网名称与数字地址分配机构ICANN机构进行管理。
如cn(中国),us(美国),uk(英国)等。
该顶级域名下注册的二级域名均由各国家自行确定。比如日本顶级域名为jp,他们将其教育和企业机构的二级域名定位ac和co。
ac(科研机构)、com(工、商、金融等企业)、net(网络服务机构)、org(非营利性组织)、edu(教育机构)、gov(政府部门)、mil(军事机构)。
共34个,用于我国各省、自治区和直辖市。比如bj(北京)、sh(上海)等。
最常用的有7个:com(公司企业)、net(网络服务机构)、org(非营利性组织)、int(国际组织)、edu(美国教育机构)、gov(美国政府部门)、mil(美国军事部门)。
注意:名称相同的域名其等级未必相同。例如我国的二级域名com和通用顶级域名com。
用于反向域名解析,即IP地址反向解析为域名。
域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。
最高层次的域名服务器,每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。
当本地域名服务器向根域名服务器发送查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器,从而加快DNS的查询过程也更合理地利用了因特网资源。
根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址。
比如对于“xxx.xxx.com”,根域名服务器就会返回com所对应的IP地址。
负责管理在该域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。
负责管理某个区的域名。每个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。
该域名服务器并不属于上述的域名服务器的等级结构。它主要起代理的作用,将DNS请求报文转发到上述域名服务器的等级结构中。有时也被称为默认域名服务器。一个主机发送的DNS请求报文会首先被送往该主机的本地域名服务器。
假设一个主机想访问一个网站,它会先将DNS请求发送给本地域名服务器。如果本地域名服务器的缓存中没有对该DNS请求中的域名和IP地址的解析,就会去请求根域名服务器。
有了本地域名服务器,会使得整个DNS系统查询变得更简单,更有效率。
这种方式主要是“靠别人”。
假设一个主机想访问一个网站,它会先将DNS请求发送给本地域名服务器。如果本地域名服务器的缓存中没有对该DNS请求中的域名和IP地址的解析,就会去请求根域名服务器。
如果根域名服务器也无法完整解析该DNS请求,即只能解析顶级域名,根域名服务器就会去请求顶级域名服务器的帮助。如果顶级域名服务器也不能完整解析该DNS请求,顶级域名服务器就会去请求权限域名服务器的帮助。
当能将该DNS请求的域名完整解析后,就又会按照原路返回,从权限域名服务器到顶级域名服务器再到根域名服务器,最后返回给本地域名服务器。
如图:
主机想知道y.abc.com的IP地址,进行图中的递归操作。图中数字就表示第几步。
这种方式主要是“靠自己”。
它与递归最大的区别在于,当本地域名服务器没有域名对应的IP地址,就会去查询根域名服务器,如果根域名服务器也没有,根域名就会告诉它去找哪个顶级域名服务器,本地域名服务器就会继续去查询相应的顶级域名服务器。依次类推,直到本地服务器找到对应的IP地址。
如图:
和递归查询一样,只是采用了迭代查询的方式。
注意:从主机到本地域名服务器的查询方式仍然为递归方式,其余的查询是迭代查询方式。
注意:两个图中的dns都可以忽略,dns.com类似于谁谁谁.com。