一、DNS协议概念
DNS是域名系统的缩写,提供主机名到IP地址的转换服务。
它是一个由分层的DNS服务器组成的分布式数据库,是定义了主机如何查询这个分布式数据库的方式的应用层协议。
二、DNS协议作用
将域名解析为IP地址,客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求,DNS服务器告知客户机Web服务器的IP地址。
详细点:客户端向本地DNS服务器发送查询请求,这是递归查询。本地DNS服务器再向根域名服务器、顶级域名服务器、权威域名服务器发送查询请求,最后将结果告知客户端想知道的IP地址。这是迭代查询。
三、DNS使用的传输层协议:TCP协议、UDP协议
(1)区域传输的时候使用TCP协议
辅域名服务器会定时向主域名服务器进行查询数据是否变动。如有变动,会执行一次区域传输,进行数据同步。区域传输使用的是TCP,因为TCP是字节流协议,数据大小没有限制,而UDP是UDP是数据报协议,数据大小有限制,而数据同步传送的数据量比一个请求应答的数据量要多得多。因此用TCP协议。
此外,TCP是可靠传输服务,保证了数据的准确性。
(2)域名解析的时候用UDP协议
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器负载更低,响应更快。理论上也可以用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。
三、DNS完整的查询过程
DNS服务器解析域名过程:
1)浏览器缓存中查找对应的IP地址,查不到就下一步
2)询问本地DNS服务器,本地DNS服务器中是否有缓存,没有查不到就下一步
3)本地域名服务器发送请求给根域名服务器
4)根域名服务器会返回一个所查寻域的顶级域名服务器地址
5)本地域名服务器发送请求给顶级域名服务器,如果顶级域名服务器有缓存记录,就返回结果,没有就下一步
6)顶级域名服务器会返回一个所查寻域的权威域名服务器地址
7)本地DNS服务器向权威域名服务器发送请求,域名服务器返回对应结果
8)本地服务器将返回结果保存在缓存,以便于下次使用将结果返回给浏览器
四、迭代查询和递归查询
五、DNS记录和报文
DNS服务器以资源记录的形式存储星系。每一个DNS响应报文一般包含多个资源记录。一个资源记录的具体格式为
(Name,Value,Type,TTL)