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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 动态规划经典题目_动态规划详解

    动态规划经典题目_动态规划详解一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 -&gt

    2022年8月9日
    9
  • 制作直通网线和交叉网线「建议收藏」

    制作直通网线和交叉网线「建议收藏」制作直通网线和交叉网线双绞线的连接方法有两种:直通连接和交叉连接。直通连接是将双绞线的两端分别都依次按白橙、橙、白绿、蓝、白蓝、绿、白棕、棕色的顺序(国际EIA/TIA568B标准)压入RJ45水晶头内。这种方法制作的网线用于计算机与集线器的连接。交叉连接是将双绞线的一端按国际标准EIA/TIA568B标准压入RJ45水晶头内。另一端将芯线依次按白绿、绿、白橙、蓝、白蓝、橙、白棕、棕色的顺序(国际EIA/TIA568A标准)压入RJ45水晶头内。这种方法制作

    2022年6月19日
    33
  • python 字符串转列表,列表转字符串

    python 字符串转列表,列表转字符串1.字符串转列表python的split()函数个人认为是个相当神奇的存在。比如你有一串字符串需要解析。就可以用split()想去掉字符串里面的回车键:str=a.split(‘\n’)想去掉前两个a字符str=a.split(‘a’,2)就是这么神奇。返回的str还是个列表。2.列表转字符串若想将python的列表转化为字符串,直接去掉‘[…

    2022年5月20日
    34
  • 图像标注-自动标注图像

    图像标注-自动标注图像常见的图像标注工具有Yolo_mark,labelImg,以下两篇文章是对这两款工具的说明Yolo_mark使用教程labelImg标注图像深度学习图像标注工具汇总这里需要提供另一款标注工具—百度物体检测模型,不同于以上的标注工具,百度提供的物体检测模型在标注一定数量(100张)后,提供智能标注功能,可以对数据集中的其他图片自动标注,详细介绍确认百度自动标注结果后可以将数据集…

    2022年6月26日
    66
  • ContentPlaceHolderID属性

    ContentPlaceHolderID属性内容页ContentPlaceHolder里使用CSS我想在内容页里放个文本框和按钮,然后让他们并排,我加了CSS不行,网上查了说内容页不能使用CSS好像,那应该怎么做才能让他们并排呢?内容页可以

    2022年6月30日
    22
  • java中的pojo是什么意思_java中的POJO是什么意思?

    java中的pojo是什么意思_java中的POJO是什么意思?簡單的Java對象(PlainOrdinaryJavaObjects)實際就是普通JavaBeans,使用POJO名稱是為了避免和EJB混淆起來,而且簡稱比較直接.其中有一些屬性及其gettersetter方法的類,有時可以作為valueobject或dto(DataTransformObject)來使用.當然,如果你有一個簡單的運算屬性也是可以的,但不允許有業務方法,也不能攜帶…

    2022年5月28日
    36

发表回复

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

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