DNS 协议


# DNS 协议

# 概述

DNS:Domain Name System,域名系统解析,应用层协议

作用:实现网络 IP 地址和主机域名的映射

端口号:53

使用协议:UDP

# 域名结构

dns

# 域名层次结构

目的:保持唯一性

方法:采用层次结构的命名方法

  • 每一个域名都是一个标号序列,用字母、数字和链接符组成
  • 标号序列总长度不能超过 255 个字符,由点号分割成一个个的标号
  • 每个标号应该在 63 个字符之内,可以看成一个层次的域名
  • 级别最低的域名写在左边,最高的域名写在右边

例子:常用的 www.baidu.com

  • com:一级域名,表示一个企业域名
  • baidu:二级域名,指公司名
  • www:指主机名

# 域名分级

域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样形成了顶级域、二级域等

例:xxx.yyy.zzz.com

com:顶级域名

zzz:二级域名

yyy:三级域名

xxx:四级域名

顶级域名分为:

  • 国家顶级域名,如:
    • 中国:cn
    • 美国:us
    • 英国:uk
  • 通用顶级域名,如:
    • com:公司企业
    • edu:教育机构
    • gov:政府部门
    • int:国际组织
  • 反向域名,如:
    • arpa:用于 PTR 查询(IP 地址转换为域名)

# 域名解析过程

域名解析总体可分为以下过程:

  • 输入域名后,先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据
  • 如果没有,就向上级域名服务器进行查找,依次类推
  • 最多回溯到根域名服务器, 肯定能找到这个域名的 IP 地址
  • 域名服务器自身也会进行一些缓存,把曾经访问过的域名和对应的 IP 地址缓存起来, 可以加速查找过程,具体可描述如下:
  • 主机先向本地域名服务器进行递归查询
  • 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
  • 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的 IP 地址
  • 本地域名服务器向顶级域名服务器进行查询
  • 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的 IP 地址
  • 本地域名服务器向权限服务器进行查询
  • 权限服务器告诉本地域名服务器所查询的主机的 IP 地址
  • 本地域名服务器最后把查询结果告诉主机

递归查询

本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以 DNS 客户机的身份向其它域名服务器查询,直到得到最终的 IP 地址告诉本机

迭代查询

本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询

(完)