四 应用层(一)DNS域名系统

来源:互联网 发布:asp获取远程json数据 编辑:程序博客网 时间:2024/06/05 16:41

一  域名系统概述:

(1)域名系统:

DNS:提供域名和IP地址之间的转换。

DNS被设计成一个联机分布式数据库系统,采用客户服务器方式工作,通常采用UDP数据报的方式发送DNS请求报文和DNS响应报文。


(2)域名服务器:

DNS服务器是以区而不是域为单位来管理的。区小于或等于域。

根据域名服务器所起的作用,将域名服务器划分为四个不同类型:

1.根域名服务器(root name server):根域名服务器是最高层次和最重要的域名服务器,根域名服务器知道所有的顶级域名服务器的域名和IP地址。当本地域名服务器不能对一个域名进行解析的时候,它首先要求助于根域名服务器。假的所有的根域名服务器都瘫痪了,那么DNS系统就无法工作了。

2.顶级域名服务器(TLD服务器):负责管理在该顶级域名服务器下注册的所有二级域名。当收到DNS请求时就给出相应的应答(可能是最后结果,也可能是下一步应当查找的域名服务器的IP地址)。

3.权限域名服务器:负责管理一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询的DNS客户,下一步查找哪一个域名服务器。

4.本地域名服务器(local name server)也称为默认域名服务器:本地域名服务器不属于域名服务器的层次结构,但是对于域名系统非常重要。

当一个客户发出DNS查询请求时,这个查询报文就发送给本地域名服务器。

windows下的TCP/IP属性中的DNS地址选项指的就是本地域名服务器。


(3)域名到IP地址的解析过程:

1.当一个应用进行需要把域名解析为IP地址的,该进程调用地址解析器(resolver),并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发送发给本地域名服务器。(在unix中地址解析器是通过两个库函数gethostbyname()和gethostbyaddr()来访问的)

2.本地域名服务器在查找到域名后,把相应的IP地址放在回答报文中返回。

3.如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的,向其他域名服务器连续发出DNS请求报文,而不是该主机自己进行查询。

4.本地域名服务器向根域名服务器的查询通常采用迭代查询。当根域名服务器收到本地域名服务器的DNS请求报文后,要么给出所查询的IP地址,要么告诉本地域名服务器“你下一步应当向哪一个域名服务器进行查询”,然后让本地域名服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。

5.顶级域名服务器收到本地域名服务器的查询报文后,要么给出所查询的IP地址,要么告诉本地域名服务器下一步应当向哪一个权限域名服务器进行查询。

6.本地域名服务器就进行这样的迭代查询,最后知道了这个IP地址,就返回给查询主机。

ps:本地域名服务器也可以采用递归方式查询,这取决于DNS请求报文的设置要求使用哪一种查询方式。


(4)高速缓存:

为了提高DNS查询效率,并减轻根域名服务器的负荷和减少Internet上的DNS查询报文数量,在所有域名服务器中使用了高速缓存。

高速缓存:存放最近查询过的域名以及从何处获得域名映射信息的记录。


(5)可靠性:

为了提高域名服务器的可靠性,DNS服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其它的是辅助域名服务器。


原创粉丝点击