一、域名结构
像之前讲过的Linux目录结构一样,现代因特网也采用层次树状结构的命名方法,每一个与因特网连接的主机都有一个唯一的层次结构名字,称为域名。域名的层次树状结构如图。
三、域名查询
域名查询分为递归查询和迭代查询,递归查询为上一层向下一层查询,而迭代查询为第一层向后层查询。查询过程中,递归查询和迭代查询可能会都使用,客户和服务器之间采用递归查询,服务器之间采用迭代查询。DNS域名解析时具体查询过程如下:
1.网络客户端向本地DNS服务器发出请求。
2.本地DNS服务器查询缓存记录,如果缓存中有此条记录则直接返回,没有则向DNS根服务器进行查询。
3.DNS根服务器向本地DNS服务器给出域服务器地址。
4.本地DNS服务器向域服务器发出请求。
5.域服务器向本地DNS服务器提供该域名解析服务器的地址。
6.本地DNS服务器向域名的解析服务器发出请求,收到域名和IP地址的对应关系,本地DNS服务器将对应关系返回到用户电脑,并将对应关系写入缓存供网络客户端使用。
除此之外,进行DNS域名解析时,还有一个容易被忽视的参数,就是DNS解析的TTL参数。这个参数能告诉本地服务器域名缓存的最长时间,在既定时间之后,本地DNS服务器就会删除这条域名记录。删除之后再再次访问这个域名,就要重新进行DNS域名解析。如果网站进入稳定发展状态,不会轻易更换IP地址,就可以将TTL设置到最大值,即24小时,以便于用户访问域名。
另一份资料
当然域名解析的话是由运行在域名服务器上的程序完成的。主要的域名服务器有以下几类:
根域名服务器顶级域名服务器授权域名服务器(权限域名服务器)本地域名服务器
这四种域名服务器贯穿整个域名解析过程。
2.1、递归查询
当浏览器需要知道域名所对应的 IP地址 时,那么它会向本地域名服务器进行查询
如果本地主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步的查询。
在这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归在其他几个域名服务器之间进行的(也就是根域名以DNS客户的身份,向顶级域名服务器继续发出查询请求报文;顶级域名服务以此类推)。
然后,本地域名服务器从根域名服务器得到了所需的IP地址,最后本地域名服务器将查询结果告诉主机
2.2、迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“你下一步应该向哪一个顶级域名服务器进行查询”。
然后让本地域名服务器向这个顶级域名服务器进行后续的查询。同样,顶级域名服务器收到查询报文后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应该向哪一个权限域名服务器查询。
然后让本地域名服务器向这个权限域名服务器进行后续的查询。最后,知道所要解析的域名的IP地址后,把这个结果返回给发起查询的主机。
本地域名服务器将查询结果保存到本地缓存,同时返回给客户机
发表评论