计算机网络之(4):DNS
文章目录
- DNS
- 必要性
- 要解决的问题
- DNS 域名结构
- 工作原理
- 主要目的
- Q1:DNS 命名空间
- 域名
- 域名管理
- Q2 : 解析问题
- 单个 DNS 服务器的问题
- 权威名字服务器(authoritative record)
- 资源记录(resource records)
- TTL 生存时间
- Domain 域名: Value 值
- Type 类别
- 资源记录实例
- DNS 大致工作原理
- 递归查询
- 迭代查询
- 提高性能:缓存
- DNS 协议 & 报文
- Q3: 维护问题:如何新增一个域
DNS
- DNS 是给其他应用提供服务的,不是直接给人提供服务的(不直接给人提供服务)
- 将域名转化为 IP 地址
必要性
- DNS 为应用层的应用提供服务,得到了 IP 地址之后,应用层向传输层提交的是 IP 地址,因为 域名 是应用层的事情, IP 地址才是下层能够理解的
要解决的问题
- 如何命名设备(如何避免重名)—— 分层化的命名方式
- 如何解决域名到 iP 地址的转化问题——一台设备专门负责解析,要使用的人提供域名,服务器返回对应的 ip 地址(理论上可行,现实不行,因为设备太多,这种过于中心化的操作可能会导致很严重的问题)——分布式的解决思路(分布式的维护和解析域名)
- 如何维护:增加或者删除一个域名或子域名
DNS 域名结构
- NDS:域名
工作原理
- 分层式的,基于域的命名机制
- 若干分布式的数据库完成名字到 IP 地址的转换
- 运行在 UDP 的 53 端口的应用服务
- DNS 是一个互联网的核心功能,但是在网络边缘的客户端上进行处理(以应用层协议的方式实现)
主要目的
- 实现主机名—IP 地址的转换(name / IP translate)
- 其他目的:
- 主机别名到规范名字的转换:Host aliasing
- 邮件服务器别名到邮件服务器正规名字的转换:Mail server aliasing
- 负载均衡:load distribution
Q1:DNS 命名空间
域名
- 域名有两种,一种是从树的叶子节点向上找到树根(这表示的是一台机器的 域名)
- 第二种是从树的树枝起向树根找(这表示的是一个域的域名)
- 例如 ustc.edu.cn 表示的是一个域的域名;而 auto.ustc.edu.cn 表示的是一个服务器主机的域名
域名管理
- 一个域管理其下的子域,例如 .cn 这个域是中国的域名,那么它可以负责子域的命名,例如 edu 表示教育网站,edu.cn 就是 .cn 的一个子域;在其他国家,教育网站未必叫 edu,这要看那个国家如何指定这个子域的名称
- 域的划分是逻辑上的,而不是物理上的,比如美国有中国的大使馆,大使馆的域名还是属于 .cn 的
Q2 : 解析问题
单个 DNS 服务器的问题
- 如果只有一个域名服务器容易出现下面的问题:
权威名字服务器(authoritative record)
- 如何解决这个问题(分布式的方法):
- 将互联网的名字空间划分成一个个的 zone,zone 之间相互不重叠
- 在每个 zone 内部安排一个 权威名字服务器(authoritative record) 来维护这个 zone 内部的名字和 ip 地址的对应关系
- 每个权威名字服务器都要维护一个数据库,数据库内容包括:
- 内部的子域
- 内部的域名到 iP 地址的对应关系
- 所有的这些内容,统称 资源记录(resource records)
资源记录(resource records)
- 记录的是权威名字服务器中需要维护的内容;
- 资源记录的内容再数据库中存储的时候使用下面几个字段:
- Domain 域名
- ttl time to live 生存时间(权威,缓冲记录)
- Class 级别,Internet 的 class 是 IN
- Value 值, 可以是数字,域名,或者 ASCII 串
- Type 类别, 资源记录的类型
TTL 生存时间
- 如果 ttl 维护的是是一个权威记录,那么它的生存时间就是无限大,如果是一个缓存记录,那么生存时间可能是几天;
- 例如上海交大要访问中科大,那么上交大要去中科大的权威服务器查询中科大的 IP 与 域名的对应关系,然后将中科大的域名和 ip 的对应关系维护在上交大自己的服务器中,这个记录是一个缓存记录,过几天就删掉了
- 缓存是为了提高效率,删除是为了一致性,因为 ip 和 域名的对应关系可能会变,如果迁到另外一个 ip 那么就变了
Domain 域名: Value 值
- 域名和 ip 地址的对应关系就分别保存在 domain 字段和 value 字段中
Type 类别
控制了记录的方式,不同的字段应该记录什么内容
当 type=A 的时候,这时候的 domain 和 value 字段中分别存储的就是域名和 ip 地址
type=NS 的时候,domain 存的是域名,value 存的是该域名的权威服务器的域名
- 例如下图中,如果 yale 大学 cs 学院的域名为 cs.yale.edu 那么这个域在维护资源记录(RR)的时候就需要维护一条 type=NS 的记录,这条记录的 domain 是 cs.yale.edu,value 是 yale.edu 因为这个是他的权威服务器(父亲服务器)
- 例如下图中,如果 yale 大学 cs 学院的域名为 cs.yale.edu 那么这个域在维护资源记录(RR)的时候就需要维护一条 type=NS 的记录,这条记录的 domain 是 cs.yale.edu,value 是 yale.edu 因为这个是他的权威服务器(父亲服务器)
type=CNAME 的时候,Name 为规范名字的别名, value 记录的是规范名字
- 例如 www.ibm.com 是个别名,并不是规范的名字,其规范的名称是:servereast.backup2.ibm.com
type=MX 的时候,Value 为 Name 对应的邮件服务器的名字
资源记录实例
- 记录格式:domain, tll, class, type, value
- 图中内容的 domain 是 flits.cs.vu.nl; tll=86400s; class=IN; type=A; value=192.31.231.165
- 下面的例子中,tll 没有标记,代表这些是权威,生存时间无限大
DNS 大致工作原理
应用application 首先向解析器 resolver;
解析器作为客户向 local name server 发送查询报文
name server 返回响应报文(域名name/ip)
解析器将结果返回给应用程序
每台主机都需要主动或者通过协议自动设置将哪台 local name server 作为他查询的时候的对象。
如果 local name server 中找不到对应的信息怎么办?
递归查询
如果美国某台设备想访问 www.ustc.edu.cn 的网站,首先回去找 local name server,发现本地的名字服务器没有缓存,因此 local name server 会向 cn 的根域名服务器发出请求,cn 服务器会逐步向下查找 cn -> edu -> ustc 就找到了,然后跳到 中科大的权威名字服务器,找到 www.ustc.edu.cn 与其 ip 地址的对应关系
迭代查询
- 因为递归查询对于根服务器的负担太重了
- 通过 cn 得到 edu 的服务器线索,返回 edu 的地址,然后 local name 服务器再向 edu.cn 的权威名字服务器发出查询请求,然后再返回 ustc.edu.cn 的域名和 ip 地址对应的信息给 local name 服务器。
提高性能:缓存
DNS 协议 & 报文
- 查询和响应报文格式相同
- 标识符(ID)16 位:谁发出的查询请求,例如我和小明分别向 DNS 服务器发出了请求,如果不使用 ID 标志我和小明,那么 DNS 只能先向目标的名字服务器发送请求得到结果后把结果给我,然后才能处理小明的解析请求。但是如果用 ID 标志了我和小明,那么我们的请求就可以被同时发出去,DNS 得到解析结果后只要分别的找到我和小明的 ID 并给我们结果就行了。
- flags:
- 查询 / 应答
- 希望递归
- 递归可用
- 应答是否需要权威
Q3: 维护问题:如何新增一个域
- 首先新增一个域,它的顶级域肯定得知道并且维护这个信息,所以首先在其上级域中增加两条记录:
- 指向这个新增的子域的域名
- 指向这个新增的子域的服务器的地址
计算机网络之(4):DNS相关推荐
- 计算机网络之网络应用--DNS应用
系列文章目录 第二章计算机网络网络应用之DNS应用 DNS应用 系列文章目录 一.DNS概述(域名系统) 二.分布式层次数据库 2.1DNS根域名服务器 2.2顶级域名服务器(TLD)和权威域名服务器 ...
- 计算机网络协议(五)——DNS、HTTPDNS
底层网络知识详解:DNS.HTTPDNS 概述 一.DNS协议:网络世界的地址簿 1.1 DNS解析流程 1.2 负载均衡 二.HTTPDNS 概述 这个专栏的计算机网络协议,我是在极客时间上学习 已 ...
- 计算机网络协议分析dns,DNS协议分析
一直有一个愿望,能把知道的东西的原理搞明白:计算机网络.操作系统等等等等.今天好好研究了研究DNS协议. DNS协议是应用层协议,一般是基于UDP协议,不过我看了Golangnet 包里相关源码用的是 ...
- 【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )
文章目录 一.域名 二.域名服务器 三.域名解析过程 四.递归查询 五.迭代查询 六.高速缓存 一.域名 域名 : ① 域名表示方法 : 字母 , 数字 , "-" 符号 , &q ...
- 计算机网络修复提示DNS服务器,dns的服务器故障怎么办,电脑dns异常修复了没用...
Dns是每个人的电脑里都有的,但是很多时候,会因为一些不当的操作而出现故障. 当dns出现故障的时候,我们要怎么处理呢?其实处理方法有很多,小编接下来为大家介绍一些比较简单的处理方法. 不知道怎么处理 ...
- 【计算机网络】域名解析(DNS)过程
DNS报文 DNS分为查询请求和查询响应,请求和响应的报文结构基本相同.DNS报文格式如图1所示.其中,会话标识.标志.问题计数.回答资源记录数.授权资源记录数.附加资源记录数这6个字段是DNS的报文 ...
- 计算机网络笔记:DNS域名解析过程
基本概念 DNS是域名系统(Domain Name System)的缩写,也是TCP/IP网络中的一个协议.在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但计算机之间只能互 ...
- 计算机网络——域名系统(DNS)
一.域名系统(DNS) 域名系统(Domain Name Ssten. DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如blog.csdn.net)转换为便于机器处理的IP ...
- 计算机网络-详解DNS域名解析全过程
详解DNS域名解析全过程 DoubleWeiWei001 转载 :https://blog.csdn.net/m0_37812513/article/details/78775629 dns域名解析大 ...
- 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★
文章目录 一.网络应用模型 ★ 二.域名解析过程 ★ 三.FTP 文件传输协议 四.电子邮件★ 五.万维网 和 HTTP 协议★ 一.网络应用模型 ★ 网络应用模型 : ① 客户 / 服务器 模型 ( ...
最新文章
- css毛玻璃效果白边_CSS3毛玻璃效果(blur)有白边问题的解决方法
- python中package机制的两种实现方式(转载)
- java对象不会被改变_Java 并发编程(二)对象的不变性和安全的公布对象
- java linux获取实时cpu_用java取得linux系统cpu、内存的实时信息(参考别人代码)...
- 被卡性能的时候要care数据类型(洛谷P5594TLE+RE的经历,Java语言描述)
- python--pexpect
- 手机版php7怎么安装,Centos7 安装 PHP7最新版的详细教程
- JDK开发环境搭建及环境变量配置(win10)
- 闪讯无线助手-Android端闪讯破解路由器拨号实现原理
- (新东方)背单词,记住这200个词根词缀就够了(我自用)
- python爬虫-喜马拉雅_晚安妈妈睡前故事
- python filelock 文件锁_详解进程文件锁FileLock
- 移动UI设计学习总结
- 如何查询我的连连跨境支付提现手续费费率?
- 毛玻璃效果(CSS)实现
- response.setHeader()方法设置http文件头的值
- 【Python】Pathlib操作
- 【print的格式化输出】
- 提示Microsoft office word 遇到问题需要关闭。还问是否发送错误报告。
- springboot+vue+android商城源码