DNS 与域名

DNS 与域名

DNS - Domain Name System,域名系统

域名,其实说白了就是给“IP 地址”起的“便于人类记忆的”别名,域名系统就是负责这个转换过程的。

hosts

说到这里不得不提一下 hosts 文件了。

学过计网的人应该知道,不管 OSI、TCP/IP 还是理论模型,统一的地址编排是靠 IP 层的 IP 地址。而 IP 地址这一串纯数字,记忆起来是比较麻烦的。

因此,不管你是 Windows、Linux 还是 Android、iOS,你看你的系统里都会有一个 hosts 文件,这个文件里是一系列形如 IP 别名 的对应列表(最有名的的应该就是 localhost 了)来辅助人们用一串有意义的字符串别名去指代一个 IP。而一般一个 IP 对应一台主机,所以那个名称一般就叫“主机名”。当你访问“主机名”时,可以借助 hosts 文件自动将其转换为 IP 地址。

所以呢,域名也算是一种“主机名”,这个 DNS 就可以看作是大型的、分布式、特殊规范化的“hosts 文件”。(我自己说的,方便理解)

因为通过 hosts 能绕过 DNS 服务器的解析,所以前几年(大概我小学、初中时)这是访问 Google 等网站一个常用的绕过 “DNS 污染” 的方法。可惜现在技术早就升级了😁

现在 hosts 依然广泛存在着。你访问域名(主机名)时,先去hosts中查询,如果hosts中没有,再去DNS中查询。

域名解析

DNS 查询有两种方式:递归和迭代。

DNS 客户端设置使用的 DNS 服务器一般都是递归服务器,它负责全权处理客户端的 DNS 查询请求,直到返回最终结果。而 DNS 服务器之间一般采用迭代查询方式。

域名层次空间

域名系统中的任何名称都是域名。在域名系统的层次结构中,各种域名都隶属于域名系统根域的下级。

域名的第一级是顶级域,它包括通用顶级域,例如.com、.net和.org;以及国家和地区顶级域,例如.us、.cn和.tk等。顶级域名下一层是二级域名,一级一级地往下。

顶级域(TLD)

单独列一下顶级域。

  • 基础结构域
    只有一个arpa,用于反向域名解析。有时被认为是通用顶级域
  • 通用顶级域(gTLD)(共二十多个)
    • 1985创立,共六个
      .com.edu.gov.mil.net.org
    • 2000年,新增
      .aero.biz.coop.info.museum.name.pro(所以 .name.pro 也算是老牌域名了)
    • 2005年,又公布一批
      (包括.xxx,但当时未启用)
  • 国家顶级域(ccTLD)
    可看国家地区代码,基本遵守 ISO 3166-1 两字母代码
  • 新通用顶级域名(New gTLD)
    2011 年 ICANN 理事会正式批准新通用顶级域名申请计划。
    • 国际化顶级域(IDN TLD)
      国际化域名(IDN)使用特殊的文字或非拉丁字母组成,如蓝天救援.中国。国际化域名使用Punycode转写储存,都以 .xn-- 开头,比如前面的蓝天救援实际就是xn--rss04w53a688e.xn--fiqs8s
      在 IDN 发展过程中也出现了国际化顶级域(IDN TLD),其中包括国际化国家或地区顶级域(IDN ccTLD)如 .中国

各顶级域域名数据数量统计:

WHOIS(域名数据库查询)

查询域名所有者。 可看 网络相关常用工具