• 应用层协议——DNS



    【前言】当用户在浏览器输入一个URL后,如果该URL中协议名称后跟的是域名而不是IP,则会先进行域名解析,即DNS协议,DNS协议就是把域名转换为IP地址

    DNS协议是基于UDP传输的

    1.域名的层次结构

    在这里插入图片描述

    注意注意注意!根域名默认是个.,常见的最后的比如com,是顶级域名并不是什么根域名

    (1)域名的层级之间是属于管理的关系

    根域名只有一个,是没有标识的,直接用.表示

    根域名知道所有的顶级域名的IP,以此类推

    (2)如下面这个域名:

    Host.example.Microsoft.com.

    这个域名中,Host是四级域名,example是三级域名,Microsoft是二级域名,com是顶级域名,最后的.是根域名

    Host是四级域名,是最基本的信息,一般是一台计算机的主机名称,常见的www表示的是一个Web服务器

    2.部分顶级域名

    com 商业组织,比如www.baidu.com

    cn 中国

    net 网络支持机构

    gov 政府组织

    edu 教育机构

    3.域名解析过程

    3.1 递归查询

    一般由DNS客户端提出的查询请求都是递归型的查询方式

    所谓递归查询,就是指DNS客户端发出查询请求后,如果DNS服务器内没有所需的数据,则DNS服务器会代替客户端向其他的DNS服务器进行查询,直至查找到结果回来,即这种查询方式,DNS服务器必须给DNS客户端做出回答
    在这里插入图片描述

    3.2 迭代查询

    一般,DNS服务器与DNS服务器之间的查询方式就是迭代查询

    所谓迭代查询,就是指:

    第一台DNS服务器向第二台DNS服务器提出查询请求后,如果第二台DNS服务器内没有查找到,则它会提供第三台DNS服务器的IP地址给第一台,让第一台直接去向第三台DNS服务器查询,依此类推

    如果查找到最后一台DNS服务器还没有找到,则通知第一台DNS服务器查询失败
    在这里插入图片描述

    3.3 示例

    比如,域名为me.abc.com的主机,需要知道目标域名为a.xyz.com的IP地址,则查询过程如下:

    首先,主机向本地域名服务器dns.abc.com进行递归查询

    然后本地域名服务器dns.abc.com采用迭代查询,向一个根域名服务器查询

    根域名服务器告诉本地域名服务器,下一个要查询的顶级域名服务器dns.com的IP

    本地域名服务器去向顶级域名服务器dns.com查询

    顶级域名服务器再告诉本地域名服务器下一个要查询的权限域名服务器dns.xyz.com的IP

    本地域名服务器去向权限域名服务器dns.xyz.com查询

    权限域名服务器查找到了目标域名a.xyz.com的IP,告诉给了本地域名服务器

    最后,本地域名服务器把查询到的最终结果告诉了本地主机me.abc.com

    在这里插入图片描述

    4.其他

    4.1 缓存机制

    每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录

    因此,当再次请求解析相同的域名时,就可以直接用缓存中的地址

    通过缓存机制,不但降低了DNS查询数据网络的流量,也减少了上层服务器工作的负载

    4.2 相关命令(Windows系统下)

    • 查找为主机配置的默认DNS服务器——nslookup

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oBTGvxjy-1659845478275)(C:\Users\星\AppData\Roaming\Typora\typora-user-images\1659845298959.png)]+

    • 显示所有DNS缓存条目——ipconfig/displaydns
      在这里插入图片描述
  • 相关阅读:
    【无标题】
    【Maven基础概览】Maven是什么 | Maven的优势 | Maven的核心概念 | Maven的安装和使用;【分布式架构】特点介绍 | 使用Apache Kafka进行消息传递
    Cobalt Strike(四)
    python大数据毕业设计选题题目大全
    docker mysql 5.7
    Android查漏补缺(5)ContentProvider和ContentResolver
    MongDB的高级查询
    11.物联网lwip,网卡原理
    IntelliJ IDEA 创建 Java 工程,运行 HelloWorld
    3.JS
  • 原文地址:https://blog.csdn.net/m0_58652786/article/details/126208974