0. 前言

为了保证网址的正常访问,域名解析协议(DNS)其实在背后做出了很多努力,本文将透彻讲解 DNS 协议的原理,了解我们每天都在接触的网址到底是怎么工作的。

1. 什么是 DNS 协议

在学习 DNS 协议之前,我们先区分一下域名和 IP 地址这个两个概念:

IP 地址」:一长串能够唯一地标记网络上的计算机的数字
域名」:又称网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)比如 www.baidu.com

不知道有没有同学会混淆域名和「网址」的概念,可以这样理解,网址里面含有域名。举个例子:www.gitee.com/veal98 就是一个网址,而 www.gitee.com 就是域名

由于 IP 地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并「通过域名解析协议(DNS,Domain Name System)来将域名和 IP 地址相互映射」,使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。将域名映射成 IP 地址称为正向解析,将 IP 地址映射成域名称为反向解析。

DNS 协议可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。但「大多数情况下 DNS 都使用 UDP 进行传输」。

2. 域名详解

❓ 那么域名由谁来规定和管理呢?不能是随便写吧?

全世界域名的最高管理机构,是一个叫做 ICANN (Internet Corporation for Assigned Names and Numbers)的组织,总部在美国加州。「ICANN 负责管理全世界域名系统的运作」。

域名其实是具有一定的层次结构的,从上到下依次为:「根域名」、「顶级域名」(top level domain,TLD)、「二级域名」、(三级域名)

① 顶级域名
先来讲讲「顶级域名」(TLD),即最高层级的域名。简单说,就是网址的最后一个部分。比如,网址www.baidu.com 的顶级域名就是 .com。ICANN 的一项主要工作,就是规定哪些字符串可以当作顶级域名。截至 2015 年 7 月,顶级域名共有 1058 个,它们大致可以分成两类:
一类是「通用顶级域名」(gTLD),比如.com、.net、.edu、.org、.xxx等等,共有 700 多个。
另一类是「国家顶级域名」(ccTLD),代表不同的国家和地区,比如.cn(中国)、.io(英属印度洋领地)、.cc( 科科斯群岛)、.tv(图瓦卢)等,共有 300 多个。

当然,ICANN 自己不会去管理这些顶级域名,因为根本管不过来。想想看,顶级域名有1000多个,每个顶级域名下面都有许多批发商,如果每个都要管,就太麻烦了。ICANN 的政策是,每个顶级域名都找一个「托管商」,该域名的所有事项都由托管商负责。ICANN 只与托管商联系,这样管理起来就容易多了。举例来说,.cn 国家顶级域名的托管商就是中国互联网络信息中心(CNNIC),它决定了 .cn 域名的各种政策。

② 二级域名
而「二级域名」(Second Level Domain,SLD) 在通用顶级域名或国家顶级域名之下具有不同的意义:

通用顶级域名下的二级域名:一般是指域名注册人选择使用的网上名称,如 yahoo.com(商业组织通常使用自己的商标、商号或其他商业标志作为自己的网上名称,如 baidu.com)
国家顶级域名下的二级域名:一般是指类似于通用顶级域名的表示注册人类别和功能的标志。例如,在 .com.cn 域名结构中,.com 此时是置于国家顶级域名 .cn 下的二级域名,表示中国的商业性组织,以此类推。

三级域名」是形如 www.baidu.com 的域名,可以当做是二级域名的子域名,特征为域名包含两个 .。对于域名所有者/使用者而言,三级域名都是二级域名的附属物而无需单独费用。「三级域名甚至不能称为域名,一般称之为域名下的 “二级目录”」。

③ 根域名
❓ 那么「根域名」在哪里呢?在层次结构中根域名不是最顶级的吗?域名中怎么没有看见它?

由于 ICANN 管理着所有的顶级域名,所以它是最高一级的域名节点,被称为根域名(root domain)。在有些场合,www.xxx.com 被写成 www.xxx.com.,即最后还会多出一个点。这个点就是根域名。

理论上,「所有域名的查询都必须先查询根域名」,因为只有根域名才能告诉你,某个顶级域名由哪台服务器管理。事实上也确实如此,「ICANN 维护着一张列表(根域名列表),里面记载着顶级域名和对应的托管商」。

比如,我要访问abc.xyz,也必须先去询问根域名列表,它会告诉我 .xyz 域名由 CentralNic 公司托管。根域名列表还记载,.google由谷歌公司托管,.apple由苹果公司托管等等。

由于根域名列表很少变化,大多数 DNS 服务商都会提供它的缓存,所以根域名的查询事实上不是那么频繁。

3. 域名服务器详解

域名服务器是指管理域名的主机和相应的软件,它可以管理所在分层的域的相关信息。一个域名服务器所负责管里的分层叫作 「区 (ZONE)」。域名的每层都设有一个域名服务器:

根域名服务器
顶级域名服务器
权限域名服务器
下面这幅图就很直观了:

除了上面三种 DNS 服务器,还有一种不在 DNS 层次结构之中,但是很重要的 DNS 服务器,即「本地域名服务器」。下面我们分别讲解这四种服务器都是用来干什么的

868-超详细 DNS 协议解析相关推荐

  1. 计算机网络领略真实的arp,超星地址协议解析失败.doc

    超星地址协议解析失败 篇一:地址解析协议 <计算机网络实验>实验报告 实验名称: 地址解析协议 年 级:2010 专 业: 班 级:姓 名:学 号:成 绩: 指导教师: 软件工程 提交报告 ...

  2. 超详细的 DNS 协议解析

    文章目录 0. 前言 1. 什么是 DNS 协议 2. 域名详解 3. 域名服务器详解 4. DNS 查询方式 5. 域名缓存 6. 完整域名解析过程 0. 前言 为了保证网址的正常访问,域名解析协议 ...

  3. 使用Wireshark进行DNS协议解析

    " DNS协议格式解析及说明." DNS即域名系统(Domain Name System),是用来将域名与IP地址建立映射的协议,通过DNS协议,可以方便记忆. DNS可基于TCP ...

  4. 超详细dns劫持解决办法分享

    DNS劫持有啥解决办法,怎么防止DNS劫持是大家甚是关系的一系列问题. 在回答问题之前,我们首先需要明白什么是DNS劫持.我们在上网过程中都有遇到过网页莫名跳转这些情况,打开的目标网站不是原来的内容, ...

  5. mybatis-plus进阶教程!超详细使用方法解析!

    前言: 关于mybatis-plus的简介以及基本使用,我在入门一文中已做介绍,此处不再赘述.本文主要对mybatis-plus的AR模式.插件.逆向工程.自定义全局操作.公共字段自动填充等知识点进行 ...

  6. 网络工程师入门必备「思科模拟器」实现交换机工作原理_5分钟学会!超详细实验配置解析~

    交换机: 再当今局域网中,交换机作为是作为最常见的以太网交换设备.大到服务器级华为思科交换机,小到十几块钱的塑料盒子.那么作为局域网中最常见的交换设备,它是如何进行工作的. 交换机的工作环境: 交换机 ...

  7. 深入理解MyBatis一级缓存和二级缓存【超详细源码解析】

    视频地址:https://www.bilibili.com/video/BV1nP411A7Gu MyBatis的缓存是一个常见的面试题 一级缓存的作用域为何是 sqlSession.二级缓存的作用域 ...

  8. 超详细find命令解析,一遍就会!!!

    find查找命令用法 1概念语法 1.1查找路径 1.2查找条件 1.2.1基于文件名和inode以及链接数查找 1.2.2基于文件属主属组查找 1.2.3基于文件类型查找 1.2.4基于文件大小查找 ...

  9. Spring AOP 超详细源码解析

    知识章节 基础知识 什么是 AOP AOP 的全称是 "Aspect Oriented Programming",即面向切面编程 在 AOP 的思想里面,周边功能(比如性能统计,日 ...

最新文章

  1. File-nodejs
  2. 极富创意的404错误个性页面设计欣赏
  3. oracle的文件后缀名,转:数据文件的扩展名是ora,dbf,dat的,有什么区别?
  4. 结果集 tostring_关于避免对toString()结果进行解析或基于逻辑的美德
  5. java使用Encoding导什么包_String getEncoding()
  6. CASS11:超越自我,再续辉煌!CASS10.1.6:延续经典,只为更好!
  7. 印章管控私有化部署,助力政企办公开启新纪元
  8. CruiseControl 安装和启动
  9. 【测试表征】五分钟了解俄歇电子能谱仪(AES)
  10. spss26没有典型相关性分析_SPSS数据分析—典型相关分析
  11. 苹果手机投影_家用无线投影解决方案
  12. 嵌入式——嵌入式与单片机傻傻分不清
  13. python分号报错_go、java已经python中分号的使用
  14. 初始Pytorch框架
  15. 斯坦福大学公开课:编程方法学
  16. 怎么查看邮件服务器25端口,如何避免邮件服务器25端口被攻击
  17. 使用 Hyper-V 安装 Linux
  18. C语言之struct
  19. Pinia的简单使用
  20. 周易六十四卦——讼卦

热门文章

  1. 算法设计与分析第十三次作业
  2. Python条件判断
  3. 生物化学 核磁共振 氢谱 n+1定律 邻碳耦合 同碳耦合
  4. known_hosts有什么用?
  5. 031:verbatim 标签
  6. 【First-order Methods】 5 Smoothness and Strong Convexity
  7. 4.7 Case Study on Sandy Bridge C…
  8. jpress-项目升级
  9. 王煜全:AI独角兽必须进行业务升级 否则必死无疑
  10. 吾生也有涯,而学也无涯