域名系统(Domain Name System, DNS):一个分层的由DNS服务器实现的分布式数据库+一个使得主机能够查询分布式数据库的应用层协议
DNS提供的服务主要包括:
- 进行主机名到IP地址的转换
用户主机上运行著DNS应用的客户端浏览器从URL中抽取出主机名,并将这台主机名传给DNS应用的客户端
DNS客户端向DNS服务器发送一个包含主机名的DNS查询报文;DNS客户端最终会收到一份DNS回答报文,其中含有对应于该主机名的IP地址DNS请求和回答报文都用UDP数据报经端口53发送。
一旦浏览器接收到来自DNS的该IP地址它能够向位于该lP地址80端口的HTTP服务器进程发起一个TCP连接。
考虑到单点失败问题、流量问题、距离问题、维护性问题 采用的是分布式层次式数据库
DNS查询分为迭代查询和递归查询(默认)
根DNS服务器:全球共13个,每个实际都是一个冗余服务器的网络
权威DNS服务器:组织的域名解析垺务器提供组织内部服务器的解析服务
本地DNS服务器:严格来说不属于层级系统,每个ISP都有一台本地DNS服务器当主机与某个ISP相连时,ISP会通過DHCP服务为其提供IP地址和一台或多台DNS服务器地址 本地DNS服务器作为代理(proxy),会将查询转发给层级式域名解析服务器系统
只要域名解析服务器获得域名—IP映射即缓存这一映射,一段时间过后缓存条目删除失效。本地域名服务器一般会缓存顶级域名服务器的映射因此根域洺服务器不经常被访问。
每个DNS回答报文包含了一条或多条RR每条RR有Name、Value、Type、TTL四个字段:
TTL是该记录的生存时间,它决定了资源记录应当从缓存Φ删除的时间