DNS域名解析详解

DNS协议用于将域名转换为IP地址,方便记忆的域名通过层次结构分为根域名、顶级域名、二级域名等。域名服务器包括根域名服务器、顶级域名服务器、权限域名服务器和本地域名服务器,它们协同工作完成解析。查询方式有递归和迭代两种,而域名解析过程中涉及浏览器缓存和操作系统缓存,以减少网络请求。
摘要由CSDN通过智能技术生成

DNS域名解析详解


1、什么是DNS协议?

  • IP地址:一长串能够唯一标记网络上的计算机的数字。IP便于机器直接读取,但是不方便记忆,且不能显示出组织的名称和性质。
  • 域名:由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识。域名便于记忆。

域名解析协议(DNS,Domain Name System)来将域名和IP地址相互映射。

✨域名与网址,www.gitee.com/veal98是一个网址,而www.gitee.com是一个域名
✨DNS协议可以使用UDP或TCP传输,使用的端口号都为53.但大多数情况下DNS都是用UDP。

2、域名的结构

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

顶级域名

顶级域名是域名的最后一个部分,例如www.baidu.com的顶级域名就是.com。顶级域名可以分为两类:

  • 通用顶级域名,比如.com.net.edu.org.xxx等等
  • 国家顶级域名,代表不同的国家和地区,比如.cn(中国)、.io(英属印度洋领地)、.cc(科科斯群岛)等。

每个顶级域名有一个托管商,托管商负责管理该顶级域名的所有事项。

二级域名

二级域名在通用顶级域名和国家顶级域名下具有不同的意义:

  • 通用顶级域名下的二级域名:一般指域名注册人选择使用的网上名称,如yahoo.combaidu.com
  • 国家顶级域名下的二级域名:一般指类似于通用顶级域名的表示注册人类别和功能的标识。例如.com.cn域名中,.com是置于国家顶级域名.cn下的二级域名,表示中国的商业性组织。

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

根域名

有时,www.xxx.com被写成www.xxx.com,即最后还会多出一个点,这个点就是根域名。


3、域名服务器

在这里插入图片描述

根域名服务器

根域名服务器保存所有顶级域名服务器的地址。

顶级域名服务器

顶级域名服务器用来管理注册在该顶级域名下的所有二级域名,记录这些二级域名的IP地址。

权限域名服务器

按照上面的逻辑,权限域名服务器应该是管理注册在二级域名下的所有三/四级域名,但其实不是这样,如果一个三/四级域名对应一个域名服务器,则域名服务器数量会很多,我们需要使用划分区来解决这个问题。那么权限域名服务器就是负责管理一个“区”的域名服务器。

区和域是不同的,区可以由多种不同的划分方法。以百度为例,假设有fanyi.baidu.comai.baidu.comtieba.baidu.com这三个域名。可以这样分区,fanyi.baidu.comtieba.baidu.com放在baidu.com权限域名服务器,ai.baidu.com放在ai.baidu.com权限域名服务器中。并且baidu.com权限域名服务器和ai.baidu.com权限域名服务器是同等地位的,具体怎么分区由百度公司自己规定。

在这里插入图片描述

本地域名服务器

除了上面三种服务器,还有一种不在DNS层次结构中的,但是很重要的服务器,就是本地域名服务器。本地域名服务器是电脑解析时的默认域名服务器,即电脑选中的首选DNS服务器和备选DNS服务器。常见的由电信、联通、谷歌等本地DNS服务器。


4、DNS的查询方式

DNS查询方式有两种:

  • 递归查询。
  • 迭代查询

一般来说域名服务器之间的查询使用迭代查询方式,以免根域名服务器的压力过大。主机与本地域名服务器的查询方式使用递归查询。

(1)递归查询

(2)迭代查询


5、域名缓存

为了减轻域名服务器的压力。主机会使用缓存保存域名和IP地址的映射。计算机中DNS记录在本地有两种缓存方式:浏览器缓存和操作系统缓存

  • 浏览器缓存:浏览器在获取网站域名的实际IP地址后会对其进行缓存,减少网络请求的损耗。
  • 操作系统缓存:操作系统的缓存是用户自己配置的hosts文件

6、完整域名解析系统

  1. 首先搜索浏览器中的DNS缓存,缓存中维护一张域名与IP地址的对应表
  2. 若没有命中,则继续搜索操作系统的DNS缓存
  3. 若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存,查找成功则返回结果。(主机和本地域名服务器之间的查询方式是递归查询)
  4. 若本地域名服务器的DNS缓存没有命中,则本地域名服务器向上级域名服务器进行查询,通过以下方式迭代查询(防止根域名服务器压力过大)
    • 首先本地域名服务器向根域名服务器发起请求,根域名服务器是最高层次的,它并不会直接指明这个域名对应的IP地址,而是返回顶级域名服务器的地址。
    • 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址。
    • 本地域名服务器拿到这个权限域名服务器的地址后,就向其发起请求,最终得到该域名对应的IP地址。
  5. 本地域名服务器将得到的IP地址返回给操作系统,同时自己将IP地址缓存起来
  6. 操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起来
  7. 至此,浏览器就得到了域名对应的IP地址,并将IP地址缓存起来。

在这里插入图片描述


  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值