TCP/IP 协议族 - DNS 笔记

Apr 26, 2016


解析

递归解析

用户向服务器请求解析,如果服务器找不到地址,就发给另外的服务器,直到找到这个地址,然后依次返回给用户。

迭代解析

用户向服务器请求解析,如果服务器找不到地址,就把它认为可以解析这个地址的服务器的 IP 地址返回给客户,客户继续向这个 IP 地址发送请求。

高速缓存

DNS 服务器会把查询过的地址放入告诉缓存中,不过这样会带来过时的信息。

这时候有两个措施:

  1. 权限服务器把 TTL 添加在映射上,经过这段时间后,映射就无效。
  2. DNS 服务器定时检查缓存,清除其中 TTL = 0 的数据。

封装

DNS 可以使用 UDP 也可以使用 TCP,使用的端口都是 53. 当响应报文长度小于 512 字节时使用 UDP,否则使用 TCP。

如果解析程序事先不知道响应报文的长度,可以使用 UDP 端口,这时候如果长度超过了 512 字节,服务器就要截断响应报文,并把 TC 位置置 1. 此时,解析程序打开 TCP 连接,并重复这个请求,来得到完整的响应。