《Linux高性能服务器编程》阅读笔记:
1. DNS工作原理
通常情况下我们要访问某个网站,使用的是该网站所在机器的域名,而不是直接使用其IP地址。将机器域名转换为IP地址的过程,这就需要域名查询服务。常见的域名查询服务有NIS(Network Information Service, 网络信息服务)、本地静态文件和DNS。
DNS是一套分布式的域名服务系统,即有多个DNS服务器遍布于世界。每个DNS服务器上存放着大量的机器域名和IP地址的映射,并且是动态更新。众多网络客户端程序都使用DNS协议来向DNS服务器查询目标主机的IP地址。举例:有时候电脑的DNS服务器的地址没有设置好时,出现浏览器不可以访问网站,但是腾讯QQ可以上网聊天的情况。这是因为腾讯QQ客户端访问腾讯服务器时用的是IP地址而非域名,因此不需要DNS服务器进行域名查询服务,而浏览器上通过域名访问网站自然需要DNS服务器了。
DNS协议属于应用层的协议,它既可以使用TCP服务,也可以使用UDP服务:
(以太网帧中)DNS的查询和应答报文如下:
(1) 16位标识: 标记一堆DNS查询和应答,以区分哪一个DNS应答对应哪个DNS查询的回应
(2) 16位标志: 协商具体的通信方式和反馈通信状态。具体位如下: