文章目录

  • 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 因为这个是他的权威服务器(父亲服务器)
  • 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相关推荐

  1. 计算机网络之网络应用--DNS应用

    系列文章目录 第二章计算机网络网络应用之DNS应用 DNS应用 系列文章目录 一.DNS概述(域名系统) 二.分布式层次数据库 2.1DNS根域名服务器 2.2顶级域名服务器(TLD)和权威域名服务器 ...

  2. 计算机网络协议(五)——DNS、HTTPDNS

    底层网络知识详解:DNS.HTTPDNS 概述 一.DNS协议:网络世界的地址簿 1.1 DNS解析流程 1.2 负载均衡 二.HTTPDNS 概述 这个专栏的计算机网络协议,我是在极客时间上学习 已 ...

  3. 计算机网络协议分析dns,DNS协议分析

    一直有一个愿望,能把知道的东西的原理搞明白:计算机网络.操作系统等等等等.今天好好研究了研究DNS协议. DNS协议是应用层协议,一般是基于UDP协议,不过我看了Golangnet 包里相关源码用的是 ...

  4. 【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )

    文章目录 一.域名 二.域名服务器 三.域名解析过程 四.递归查询 五.迭代查询 六.高速缓存 一.域名 域名 : ① 域名表示方法 : 字母 , 数字 , "-" 符号 , &q ...

  5. 计算机网络修复提示DNS服务器,dns的服务器故障怎么办,电脑dns异常修复了没用...

    Dns是每个人的电脑里都有的,但是很多时候,会因为一些不当的操作而出现故障. 当dns出现故障的时候,我们要怎么处理呢?其实处理方法有很多,小编接下来为大家介绍一些比较简单的处理方法. 不知道怎么处理 ...

  6. 【计算机网络】域名解析(DNS)过程

    DNS报文 DNS分为查询请求和查询响应,请求和响应的报文结构基本相同.DNS报文格式如图1所示.其中,会话标识.标志.问题计数.回答资源记录数.授权资源记录数.附加资源记录数这6个字段是DNS的报文 ...

  7. 计算机网络笔记:DNS域名解析过程

    基本概念 DNS是域名系统(Domain Name System)的缩写,也是TCP/IP网络中的一个协议.在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但计算机之间只能互 ...

  8. 计算机网络——域名系统(DNS)

    一.域名系统(DNS) 域名系统(Domain Name Ssten. DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如blog.csdn.net)转换为便于机器处理的IP ...

  9. 计算机网络-详解DNS域名解析全过程

    详解DNS域名解析全过程 DoubleWeiWei001 转载 :https://blog.csdn.net/m0_37812513/article/details/78775629 dns域名解析大 ...

  10. 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★

    文章目录 一.网络应用模型 ★ 二.域名解析过程 ★ 三.FTP 文件传输协议 四.电子邮件★ 五.万维网 和 HTTP 协议★ 一.网络应用模型 ★ 网络应用模型 : ① 客户 / 服务器 模型 ( ...

最新文章

  1. css毛玻璃效果白边_CSS3毛玻璃效果(blur)有白边问题的解决方法
  2. python中package机制的两种实现方式(转载)
  3. java对象不会被改变_Java 并发编程(二)对象的不变性和安全的公布对象
  4. java linux获取实时cpu_用java取得linux系统cpu、内存的实时信息(参考别人代码)...
  5. 被卡性能的时候要care数据类型(洛谷P5594TLE+RE的经历,Java语言描述)
  6. python--pexpect
  7. 手机版php7怎么安装,Centos7 安装 PHP7最新版的详细教程
  8. JDK开发环境搭建及环境变量配置(win10)
  9. 闪讯无线助手-Android端闪讯破解路由器拨号实现原理
  10. (新东方)背单词,记住这200个词根词缀就够了(我自用)
  11. python爬虫-喜马拉雅_晚安妈妈睡前故事
  12. python filelock 文件锁_详解进程文件锁FileLock
  13. 移动UI设计学习总结
  14. 如何查询我的连连跨境支付提现手续费费率?
  15. 毛玻璃效果(CSS)实现
  16. response.setHeader()方法设置http文件头的值
  17. 【Python】Pathlib操作
  18. 【print的格式化输出】
  19. 提示Microsoft office word 遇到问题需要关闭。还问是否发送错误报告。
  20. springboot+vue+android商城源码

热门文章

  1. 单片机程序生产烧录工具
  2. vue实现图书管理案例
  3. 基于FRP反向代理工具实现内网穿透攻击
  4. 报警器语音ic单片机芯片如何选型
  5. 读书笔记——我知道的杨振宁(葛墨林/2022)
  6. 500万像素视频会议摄像机 高清视频会议摄像机
  7. class 和 def
  8. c语言程序设计 超市收银设计,C语言超市收银系统方案
  9. idea 将分支代码合并到master分支
  10. android studio(自带SDK)安装教程