DNS工作原理

DNS工作原理

一、简介

它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
DNS使用TCPUDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。

作用:

DNS是一种可以将域名和IP地址相互映射的以层次结构分布的数据库系统。

二、体系

2.1 报文:

DNS 定义了两种报文 ,一种为查询报文;另一种是对查询报文的响应,称为响应报文。无论是查询报文还是响应报文,都有12个字节的头和查询问题。

2.2 服务器体系

1.根域名服务器:

  • 最高层次的域名服务器,也是最重要的域名服务器,本地域名服务器如果解析不了域名就会向根域名服务器求助。
  • 全球共有13个不同IP地址的根域名服务器,它们的名称用一个英文字母命名,从a一直到m。
  • 每个根服务器都有镜像服务器,每个根服务器与它的镜像服务器共享同一个 IP 地址
  • 所有的根域名服务器都知道所有的顶级域名服务器的域名和地址

2.顶级域名服务器

  • 负责管理在该顶级域名服务器下注册的二级域名。

3.权限域名服务器

  • 负责一个区的域名解析工作

4.本地域名服务器

  • 当一个主机发出DNS查询请求的时候,这个查询请求首先就是发给本地域名服务器的。

三、工作原理

3.1解析步骤

<span>DNS工作原理</span>

有一台计算机:通过ISP(互联网服务提供商)接入了互联网,那么ISP就会给我分配一个DNS服务器,后续使用此DNS作为作为迭代查询的首选域名服务器(也可以手动配置首选域名服务器

在浏览器输入url后(www.baidu.com):

  1. 先在检查本地的Hosts表文件,看其中是否已经有相应的域名与IP地址的对应关系,如果有就会直接采用会被标记为非权威服务器的应答
  2. 然后向首选域名服务器的缓存中查找,如果有对应关系则返回
  3. 如果没有会从配置文件里面读取13个根域名服务器的地址
  4. 然后首选服务器向其中一台根域名服务器发起请求
  5. 根服务器拿到这个请求后,知道他是com这个顶级域名下的,所以就会返回com域中的域名服务器记录给首选服务器
  6. 然后首选服务器再次向该域名服务器(com)发起请求, 然后发现是baidu.com这个域(权威域名服务器),于是返回该域的服务器记录给首选服务器
  7. 首选服务器又向baidu.com这个权威域名服务器发起请求,然后该域查到有www的这台主机,就把这个IP返回给首选服务器了。
  8. 然后首选服务器拿到IP之后,就返回给客户端浏览器,并且把这映射关系保存在告诉缓存中

3.2注意:

  1. 域名对大小写不敏感

  2. 域名解析总体可分为两大步骤
    第一个步骤是本机向本地域名服务器发出一个DNS请求报文,报文里携带需要查询的域名;
    第二个步骤是本地域名服务器向本机回应一个DNS响应报文,里面包含域名对应的IP地址。

  3. DNS的查询顺序

    1、本地hosts文件
       2、本地DNS缓存
       3、本地DNS服务器
       4、发起迭代查询

  4. 使用递归查询+迭代查询(从主机视角看是递归,从首选服务器来看是递归)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115169.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月12日 下午5:00
下一篇 2021年11月12日 下午6:00


相关推荐

  • 大模型人工智能Agent到底是什么,一文搞懂智能体相关概念及原理

    大模型人工智能Agent到底是什么,一文搞懂智能体相关概念及原理

    2026年3月15日
    2
  • 微信小程序反编译及源码抓取(2021最新)

    微信小程序反编译及源码抓取(2021最新)网易 Mumu 模拟器安装下载地址 http mumu 163 com 360 下载完安装包后直接安装 打开模拟器安装微信 RE 文件管理器设置 Root 权限打开 RE 文件管理器 提示请求超级用户访问权限 选择允许到此准备工作完成 打开微信 然后打开小程序 获取小程序编译包先打开微信 搜索微博小程序打开 打开 RE 文件管理 按照 data data com tencent mm MicroMsg 80b34bca4945

    2026年3月16日
    1
  • 线程阻塞的原因

    线程阻塞的原因线程阻塞的原因导致线程阻塞的原因主要由以下几方面 1 线程执行了 Thread sleep intn 方法 线程放弃 CPU 睡眠 n 毫秒 然后恢复运行 2 线程要执行一段同步代码 由于无法获得相关的同步锁 只好进入阻塞状态 等到获得了同步锁 才能恢复运行 3 线程执行了一个对象的 wait 方法 进入阻塞状态 只有等到其他线程执行了该对象的 notify 或 notif

    2026年3月17日
    1
  • windows下常见php集成环境安装包介绍(updated)

    windows下常见php集成环境安装包介绍(updated)windows下常见php集成环境安装包介绍(updated)September4,2010 |作者:猪肉有毒   WAMP是指在Windows服务器上使用Apache、MySQL和PHP的集成安装环境,可以快速安装配置Web服务器,一般说来,大家都习惯于将Apache、MySQL、PHP架设在Linux系统下,但是,不可否认的是Windows也有其优点,就是易用,

    2022年6月28日
    28
  • Node.JS 删除数组元素

    Node.JS 删除数组元素//数组数据varvalArray=[2,2,2,3,4,5,2,6,7];//删除的值vardelVal=2;//删除元素for(vari=0;i<valArray.length;i++){//数据比对if(valArray[i]==delVal){//删除值valArray.splice(i,1);//下标递减i–;}}//输出日志console.log(.

    2025年6月15日
    9
  • 简述servlet生命周期

    简述servlet生命周期servlet 生命周期主要有三个方法 init 初始化阶段 service 处理客户端请求阶段 destroy 终止阶段初始化阶段 Servlet 容器加载 Servlet 加载完成后 Servlet 容器会创建一个 Servlet 实例并调用 init 方法 init 方法只会调用一次 Servlet 容器会在一下几种情况装载 Servlet Servlet 容器启动时自动装载某些 servl

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号