首页 > 其他分享 >DNS协议—计算机网络原理

DNS协议—计算机网络原理

时间:2022-12-06 15:55:06浏览次数:54  
标签:本地 IP地址 查询 计算机网络 域名 DNS 服务器 原理

DNS协议详解

DNS协议定义

DNS(Domain Name System)域名系统

DNS协议:

是一个处理IP地址与域名之间映射的网络协议,做用于应用层

img

DNS域名结构

因为用户访问别的主机时,如果一直用IP地址访问就不方便记忆,因此域名就相当于是主机的一个别名,而域名是跟主机的唯一标识IP地址是对应的。由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。

img

根域:DNS域名使用中规定由尾部句点'.'来指定名称位于根或者更高层次的域层次结构。

顶级域:用来指示某个国家、地区或者组织。采用三个字符,如com -> 商业公司,edu -> 教育机构,net -> 网络公司,gov -> 非军事政府机构等等。

二级域:个人或者组织在Internet使用的注册名称。采用两个字符,如:cn -> 代表中国,jp -> 日本,uk -> 英国,hk -> 香港等等。

DNS域名服务器

由于域名的命名结构是层次树状结构,如果针对每一个节点都采用一个域名服务器,就可以快速进行域名到IP地址的映射,但是这样会严重降低域名服务器的运行效率。因此DNS服务器也是采用分布式划区的方式来架构。因特网上的DNS服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为下面四种不同的类型。域名服务主要是基于UDP实现的,服务器的端口号为53。

img

根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

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

权限域名服务器:负责一个“区”的域名服务器。

本地域名服务器:位于本机上的域名服务器。

DNS工作流程

img

示例分析

主机想要查询www.qq.com的IP地址

  1. 在浏览器中输入www . qq .com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
  3. 如果hosts与本地DNS解析器中都没有相应的网址映射关系,则会使用本地DNS服务器进行查询。这里使用的是递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。
  4. 本地服务器向根服务器的查询,则为迭代查询迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询

(注意:本地DNS解析器本地DNS服务器都会设置高速缓存,从而提高查询效率)

DNS报文的具体信息

img

具体细节可参照:DNS报文详解


拓展细节:13台DNS根服务器都存放在哪里?

参考资料:DNS原理总结

标签:本地,IP地址,查询,计算机网络,域名,DNS,服务器,原理
From: https://www.cnblogs.com/robyn2022/p/16955526.html

相关文章

  • Redis原理 - 对象的数据结构(SDS、Inset、Dict、ZipList、QuickList、SkipList、RedisO
    Redis数据结构1.SDSRedis是用C语言写的,但是对于Redis的字符串,却不是C语言中的字符串(即以空字符’\0’结尾的字符数组),它是自己构建了一种名为简单动态字符串(sim......
  • 计算机组成原理(day1)
    1.二进制转换小数部分采用拼凑法(按下表)2.BCD码目的:方便机器语言与十进制快速转换2.18421码六个冗余表示十进制,运算结果落入1010(10)~1111(15)则无定义,需补0110(6)后储存。如果......
  • <二>bind1st和bind2nd的底层实现原理
    自己实现绑定器,代码如下#include<iostream>#include<iostream>#include<vector>#include<functional>#include<algorithm>#include<ctime>usingnamespaces......
  • NOR Flash擦写和原理分析
    1.NORFLASH的简单介绍NORFLASH是很常见的一种存储芯片,数据掉电不会丢失.NORFLASH支持ExecuteOnChip,即程序可以直接在FLASH片内执行(这意味着存储在NORFLASH上......
  • 本科课程【计算机网络】实验4 - VLAN间路由、单臂路由实验
    大家好,我是【1+1=王】,热爱java的计算机(人工智能)渣硕研究生在读。如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!!Goodbetterbest,neverletitrest,un......
  • Docker镜像与容器的工作原理
    提纲1、bootfs和rootfs2、镜像层和镜像3、容器层和容器4、联合文件系统​1、bootfs和rootfs一般而言,Linux的操作系统由两类文件系统组成:bootfs(bootfilesystem)和r......
  • 高速缓存的工作原理
    Cache的基本原理我们先来看一个简单的cache,处理器每次请求一个字,并且每个块由一个单独的字组成。下图展示了该简单cache在请求数据项(该数据项初始不在cache中)前后的状态。......
  • Servlet_执行原理和servlet_生命周期方法
    Servlet_执行原理:执行原理:1.当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径2.查找web.xml文件,是否有对应的<url-pattern>标签内......
  • KNN分类算法原理
    1.1概述K最近邻(k-NearestNeighbor,KNN)分类算法是最简单的机器学习算法。KNN算法的指导思想是“近朱者赤,近墨者黑”,由你的邻居来推断出你的类别。本质上,KNN算法就是用距离来......
  • 【计算机追本溯源】「底层原理系列」 回归与本质,让本文带你认识什么是计算机软件系统
    前提概要如果希望可以把计算机编程技术提升到另外一个高度,,那么想要搞清楚什么是软件设计,首先就要理解什么是计算机软件,在这之后,再去考虑为什么对软件进行设计,以及在通常情......