DNS是计算机域名系统 (Domain Name System)
- 域名系统采用类似目录树的等级结构。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
- 域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。
域名解析是将域名映射为IP地址的过程。
- DNS是应用层协议,client端(一般指浏览器)构建DNS查询请求,依次被传输层,网络层,数据链路层等封装传送到达DNS服务器端,最终client端接收到DNS响应消息
- DNS主要基于UDP运输层协议
- 一次UDP名字服务器交换可以短到两个包:一个查询包、一个响应包。一次TCP交换则至少包含9个包:三次握手初始化TCP会话、一个查询包、一个响应包以及四次分手的包交换。
考虑到效率原因,TCP连接的开销大得,故采用UDP作为DNS的运输层协议,这也将导致只有13个根域名服务器的结果。
- 一次UDP名字服务器交换可以短到两个包:一个查询包、一个响应包。一次TCP交换则至少包含9个包:三次握手初始化TCP会话、一个查询包、一个响应包以及四次分手的包交换。
小插曲,为什么只有13台根域名解析服务器?
- 因为要UDP报文中包含所有的根服务器信息
- 所以现在只能放13条地址在一个包里,也就是416字节,
- 在IPV4下一个单独的包,解析后只能有512字节用来描述这些跟域名服务器。一个UDP数据包(512bit)必须包括所用跟服务的主机名和IP 。一个完整的IP 包括8 * 4 个字节 也就是 32 个。(11111111.11111111.11111111