【计算机网络】一文带你弄懂DNS解析过程(最强详解!!)

目录

首先了解一下什么是DNS协议吧

 域名的结构

顶级域名

二级域名

根域名

DNS的查询方式

递归查询

迭代查询

 完整域名解析系统


首先了解一下什么是DNS协议吧

        DNS(Domain Name System)是一个用于将域名(例如www.example.com)转换为对应 IP 地址的协议。它起到了“互联网电话簿”的作用,让我们可以使用简单易记的域名来访问网站,而不需要记住复杂的数字 IP 地址。

        通俗地说,DNS 协议就像是一个大型的电话簿系统,它帮助我们找到互联网上的网站。假设你想要访问一个网站,比如谷歌(google.com),你会在浏览器中输入这个域名。然后,浏览器会向你所使用的网络提供商的 DNS 服务器发送一个请求,询问:“你们知道谷歌的 IP 地址吗?”

        接下来,DNS 服务器会开始进行查找。它首先会检查自己的记录,看是否已经有谷歌的 IP 地址缓存。如果有,它会立即返回给浏览器。如果没有,它会向其他 DNS 服务器询问,直到找到能提供谷歌 IP 地址的服务器。

        一旦 DNS 服务器找到了谷歌的 IP 地址,它会将这个信息返回给浏览器。然后,浏览器就知道了谷歌的真实地址,可以开始建立连接,并向该 IP 地址发送请求,获取网页内容。

 域名的结构

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

【计算机网络】一文带你弄懂DNS解析过程(最强详解!!)_第1张图片

 

顶级域名

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

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

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


二级域名

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

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

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

根域名

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

【计算机网络】一文带你弄懂DNS解析过程(最强详解!!)_第2张图片

 

DNS的查询方式

DNS查询方式有两种:

  • 递归查询
  • 迭代查询

递归查询

  1. 客户端向本地DNS服务器发送查询请求,包含要解析的域名,比如"www.example.com"。

  2. 如果本地DNS服务器的缓存中已经有了对应的解析结果,它会直接返回解析结果给客户端,并结束查询过程。

  3. 如果本地DNS服务器的缓存中没有对应的解析结果,它会向根DNS服务器发送迭代查询请求。

  4. 根DNS服务器收到请求后,会根据请求的域名后缀(例如".com")告诉本地DNS服务器负责该域名后缀的顶级域名服务器的地址。

  5. 本地DNS服务器再向顶级域名服务器发送迭代查询请求。

  6. 顶级域名服务器收到请求后,根据请求的域名(例如"example.com")告诉本地DNS服务器负责该域名的权威域名服务器的地址。

  7. 本地DNS服务器再向权威域名服务器发送迭代查询请求。

  8. 权威域名服务器收到请求后,检查自己是否有该域名的解析记录。如果有,它会将解析结果返回给本地DNS服务器。

  9. 本地DNS服务器收到解析结果后,将其缓存,并将解析结果返回给客户端。

  10. 客户端接收到解析结果后,便可以使用该IP地址与目标服务器建立连接,并进行网站访问等操作。

【计算机网络】一文带你弄懂DNS解析过程(最强详解!!)_第3张图片

迭代查询

  1. 客户端向本地DNS服务器发送查询请求,包含要解析的域名,比如"www.example.com"。

  2. 如果本地DNS服务器的缓存中已经有了对应的解析结果,它会直接返回解析结果给客户端,并结束查询过程。

  3. 如果本地DNS服务器的缓存中没有对应的解析结果,它会向根DNS服务器发送迭代查询请求。

  4. 根DNS服务器收到请求后,会根据请求的域名后缀(例如".com")告诉本地DNS服务器负责该域名后缀的顶级域名服务器的地址。

  5. 本地DNS服务器再向顶级域名服务器发送迭代查询请求。

  6. 顶级域名服务器收到请求后,根据请求的域名(例如"example.com")告诉本地DNS服务器负责该域名的权威域名服务器的地址。

  7. 本地DNS服务器再向权威域名服务器发送迭代查询请求。

  8. 权威域名服务器收到请求后,检查自己是否有该域名的解析记录。如果有,它会将解析结果返回给本地DNS服务器。

  9. 如果权威域名服务器没有该域名的解析记录,它会返回一个"域名不存在"的响应。

  10. 本地DNS服务器接收到解析结果或"域名不存在"的响应后,将其返回给客户端。

  11. 如果得到的是解析结果,客户端就可以使用该IP地址与目标服务器建立连接,并进行网站访问等操作。

【计算机网络】一文带你弄懂DNS解析过程(最强详解!!)_第4张图片

 完整域名解析系统

1、首先搜索浏览器中的DNS缓存,缓存中维护一张域名与IP地址的对应表
2、若没有命中,则继续搜索操作系统的DNS缓存。
3、若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存,查找成功则返回结果。(主机和本地域名服务器之间的查询方式是递归查询)
4、若本地域名服务器的DNS缓存没有命中,则本地域名服务器向上级域名服务器进行查询,通过以下方式迭代查询(防止根域名服务器压力过大)

  • 首先本地域名服务器向根域名服务器发起请求,根域名服务器是最高层次的,它并不会直接指明这个域名对应的IP地址,而是返回顶级域名服务器的地址。
  • 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址。
  • 本地域名服务器拿到这个权限域名服务器的地址后,就向其发起请求,最终得到该域名对应的IP地址。

5、本地域名服务器将得到的IP地址返回给操作系统,同时自己将IP地址缓存起来
6、操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起来
7、至此,浏览器就得到了域名对应的IP地址,并将IP地址缓存起来。
【计算机网络】一文带你弄懂DNS解析过程(最强详解!!)_第5张图片

你可能感兴趣的:(计算机网络,java,http,网络协议,信号处理)