定义:
DNS(域名系统)是将互联网的主机名(域名)转换成IP地址的分布式的系统服务。
why是域名而不是直接IP地址?
变长的和有助于记忆里的字符便于记忆
why机器使用IP而不是用域名?
IP定长32位(IPV4)或者128位(IPV6),便于计算机处理,而不定长的域名则处理起来比较棘手
域名的命名方法
层次树状结构命名法:分不同层次进行命名
why这样命名:
- 解决不断变化名字的冲突问题
- 解决大用户量下的域名唯一性,容易管理,支持弹性伸缩
域名的结构
···.mail.cctv.com
···(三级)(二级)(顶级域名)
域名命名规范
域名中的标号(每一级域名)都由数字和英文字母组成,每个标号不超过63个字符,使用中实际为了记忆不超过12个字符,【不区分大小写】,完整的域名不能超过255个字符
域名服务器
几个概念:
1,区:一个域名服务器所管辖的范围
2,任播:将终点是分配至不同地点具有相同IP地址的主机的IP数据报发送到最近的主机
3,ISP:或联网服务提供商(移动,联通..),IPS的服务也是层次结构,本地ISP-->地区ISP-->主干ISP···
注意:域名的划分以“域“为单位,而域名服务器以”区“为单位,实际上,区是域的子集
域名服务器分类:
1,根域名服务器
保存所有顶级域名服务器的域名和IP地址,根域名采用的是【任播】的方式与顶级域名交互 2,顶级域名服务器
负责管理在顶级域名服务器注册的所有二级域名 3,权限域名服务器
负责一个区的域名管理 4,本地域名服务器(默认域名服务器) 负责在本地ISP内的域名解析映射
域名查询报文的格式
DNS采用的是UDP数据报的格式(无连接,体积小)
域名的解析过程
几个概念:
1,递归查询:以递归的方式查寻目标
2,迭代查询:A 查询 B,B不知道,但是B知道C那可能能查到,B把C的地址给A,A再去问C,依次往返,直到A得到目标
我们以下面的示例图来看域名在域名服务器之间的解析过程
1,主机向本地域名服务器发起递归查询
2, 本地域名服务器发现自己没有存,向根域名服务器发起迭代查询,根域名服务器发现自己也没存,返回指定的顶级域名服务器地址(域名或者ip)
3,本地域名服务器向顶级域名服务器发起迭代查询,顶级域名服务器也没存,返回指定权限域名服务器的地址
4,本地域名服务器向权限域名服务器发起迭代查询,权限域名服务器发现自己有域名-->IP的映射,返回IP给本地域名服务器,本地域名服务器反会IP给主机
主机与本地域名服务器采用递归查询,本地域名服务器采用迭代查询的方式
- 事实上,观察上图,从主机到收到IP地址总共用了8个UDP报文,为了减少域名的查询次数以及减轻域名服务器的压力,域名服务器上设有高速缓存【存放最近查询过的域名映射信息或者其他域名服务器的地址】,并设定定长的缓存过期时间,以保证DNS查询的高效。