DNS域名系统(使用UDP协议封装)
DNS:域名系统(Domain Name System)
它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
使用运输层的 udp 协议封装,运输层端口号为 53
域名系统的作用
使用域名访问ip地址
- 用户主机需要先在自己的DNS高速缓存中查找域名对应的IP地址
- 如果没有找到,就会向网络中的某台DNS服务器查询
- DNS服务器中有域名和IP地址映射关系的数据库,当 DNS 服务器收到 DNS 查询报文后,在其数据库中进行查询,之后将查询结果发送给用户主机
域名系统的特点
- 采用层次结构的命名树作为主机的名字(也就是域名), 并使用分布式的域名系统DNS
- 本地化:DNS使得大多数域名都在本地解析,仅少量解析需要在网络中通信,因此效率很高
DNS如何实现的本地解析
针对这个问题可以看这里:重新思考浏览器输入了 URL 并按下回车之后到底发生了什么——本地 DNS 部分
- 分布式:DNS是分布式系统,即使是单个计算机出现了故障,也不妨碍整个系统正常运行
域名的结构形式
- 因特网采用层次树状结构的域名结构

- 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名
- 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母
- 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边
- 完整的域名不超过255个字符
- 域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思
- 各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理
域名分类

网络上的域名服务器
域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询
显然不能将所有信息都储存在一台域名服务器中
DNS使用分布在各地的域名服务器来实现域名到IP地址的转换
page=44
根域名服务器
顶级域名服务器
权限域名服务器
本地域名服务器
域名解析过程
提高查询效率:使用高速缓存(本地域名服务器、用户主机中都使用)
- 为了提高 DNS 的查询效率,减轻根域名服务器的负荷和减少因特网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存
- 高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录
- 域名到 IP 地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)
- 用户主机中也是用高速缓存
- 许多用户主机在启动时从本地域名服务器下载域名和 IP 地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询
- 主机也需要保持高速缓存中内容的正确性
