&2应用层 - DNS:因特网的目录服务

2023-10-30

标识主机的两种方式:

  • 主机名:由不定长的字母和数字组成。便于记忆。
    如www.yahoo.com
    路由器处理困难。
  • IP地址:由4个字节组成,有着严格的层次结构。
    路由器容易处理。
    在这里插入图片描述

DNS提供的服务

报文在网络中传输,使用IP地址

  • 域名系统DNA(Domain Name System):进行主机名到IP地址的转换。
  • 一个由分层的DNS服务器实现的分布式数据库
  • 允许主机查询分布式数据库的应用层协议。

说明:
运行BIND软件的UNIX机器;
DNS协议运行在UDP之上,使用53号端口。
DNS通常直接由其他的应用层协议(包括HTTP、SMTP和FTP)使用,以将用户提供的主机名解析为IP地址。用户只是间接使用。

用户主机将一个HTTP请求报文发送到Web服务器的过程

若某个用户主机上的一个浏览器访问某个Web页,www.someschool.edu/index.html
用户主机要将一个HTTP请求报文发送到Web服务器 www.someschool.edu,需先得到相应的IP地址。

过程如下

  1. 用户主机上运行DNS应用的客户机端
  2. 浏览器从URL中解析出主机地址,传给DNS客户机端。
  3. DNS客户机向DNS服务器发送一个包含主机名的请求;
  4. DNS客户机收到含有对应主机名的IP地址的回答报文;
  5. 浏览器向该IP地址指定的HTTP服务器发起一个TCP连接。

增加一定时延。

DNS服务

  • 主机名到IP地址的转换
  • 主机别名
    规范名和别名:通过DNS可以得到主机别名(别名更 易记)对应的规范主机名及IP地址。
  • 邮件服务器别名
    电子邮件应用程序调用DNS,对提供的邮件服务器 别名进行解析,以获得该主机的规范主机名及其IP 地址。
  • 负载分配
    冗余服务器:一个IP地址集合和一个规范主机名

DNS工作机理概述

DNS工作过程:

  1. 某个应用程序调用DNS的客户端,并指明需要被转换的主机名
  2. 用户主机上的DNS客户端接收到后,向网络中发送一个DNS查询报文
  3. 经过若干毫秒到若干秒的时延后,用户主机上的DNS客户端接收到一个提供所希望映射的DNS回答报文
  4. 映射结果被传递到调用DNS客户端的应用程序
    DNS查询/回答报文使用UDP数据报,从53号端口发送

从用户主机调用应用程序的角度看,DNS是一 个提供简单、直接的转换服务的黑盒子。

DNS的一种简单设计(集中式设计)

假设因特网上只使用一个DNS服务器,该服 务器包含所有的映射。

工作过程

  1. 用户直接将所有查询直接发往单一的DNS服务器
  2. 该DNS服务器直接对所有的查询客户做出响应

优点
设计简单,具有吸引力

问题

  1. 单点故障:若该DNS服务器崩溃,整个因特网随 之瘫痪。
  2. 通信容量:单个DNS服务器要处理所有的DNS查 询。
  3. 远距离的集中式数据库:单个DNS服务器不可能 “邻近”所有查询客户,远距离查询将导致严重 时延。
  4. 维护:单个DNS服务器要为所有的因特网主机保 留记录。

分布式、层次数据库

单一DNS服务器上运行集中式数据库完全没有可扩展 能力
为了处理扩展性问题,DNS使用了大量的DNS服务器, 它们以层次方式组织,并且分布在全世界范围内

注意
没有一台DNS服务器拥有因特网上所有主机的映射
该映射分布在所有的DNS服务器上

在这里插入图片描述

3种类型的DNS服务器交互的方式

假定一个DNS客户要决定主机名www.amazon.com 的IP地址。

  1. 客户首先与根服务器之一联系,它将返回顶级域名com 的TLD服务器的IP地址
  2. 该客户则与这些TLD服务器之一联系,它将为 amazon.com返回权威服务器的IP地址。
  3. 最后,该客户与amazon.com权威服务器之一联系,它 为主机名www.amazon.com返回其IP地址。

本地DNS服务

(local DNS server):

  1. 严格来说,不属于DNS服务器的层次结构
  2. 每个ISP都有一台本地DNS服务器(也叫默认DNS服务 器)
  3. 主机的本地DNS服务器通常“邻近”本主机
  4. 当主机发出DNS请求时,该请求被发往本地DNS 服务 器,它起着代理的作用,并将该请求转发到DNS服务器 层次结构中。

假设主机cis.poly.edu想知道主机 gaia.cs.umass.edu的IP地址。 同时假设理工大学的本地DNS服务器为
dns.poly.edu,并且gaia.cs.umass.edu的权 威DNS服务器为dns.umass.edu

交互过程
在这里插入图片描述
在这里插入图片描述

DNS缓存

作用:
改善时延性能、减少在因特网上到处传输的DNS报文数量

原理:
在一个请求链中,当某DNS服务器接收一个DNS回答时, 它能将该回答中的信息缓存在本地存储器中。

注意:
由于主机和主机名与IP地址间的映射并不是永久的,DNS服 务器在一段时间后(通常设置为两天)将丢弃缓存的信息。

举例:

  1. 假定主机apricot.poly.edu向dns.poly.edu 查询主机名cnn.com的IP地址
  2. 假定过了几个小时,理工大学的另外一台主 机也向dns.poly.edu查询相同的主机名
  3. 因为有了缓存,该本地DNS服务器可以立即 返回cnn.com的IP地址,而不必查询其他任 何DNS服务器。

DNS记录报文

资源记录(RR):由DNS服务器储存,提供 了主机名到 IP地址的映射。
(每个DNS回答报文包含了一条或多条资源记录)
资源记录是一个包含了下列字段的4元组:
( N a m e , V a l u e , T y p e , T T L ) (Name,Value,Type,TTL) Name,Value,Type,TTL
在这里插入图片描述

记录例子(忽略TTL)

在这里插入图片描述
在这里插入图片描述
注意:
通过使用MX记录,一个公司的邮件服务器和其他服务器(如Web服务器)可以使用相同的别名

例:假设一台edu TLD服务器不是主机 gaia.cs.umass.edu的权威DNS服务器,则该服务器将
包含一条包括主机cs.umass. edu的域记录,如 (umass.edu,dns.umass.edu,NS);还将包含一条类
型A记录,如(dns.umass.edu,128.119.40.111, A),该记录将名字dns.umass.edu映射为一个IP地址。

服务器不是用于某主机名的权威服务器,则该 服务器会有一条类型NS记录,该记录对应于 包含主机名的域;还将包含一条类型A记录

总结例子:澳大利亚的Alice观看www.networkutopia.com的Web页面

  1. Alice主机向本地DNS服务器发送请求。
  2. 本地服务器接着联系一个TLD com服务器。(如果TLD com服 务器地址没有被缓存,该本地DNS服务器也将必须与根DNS服 务器相联系。)
  3. 该TLD com服务器包含前面列出的类型NS和类型A资源记录, 向Alice的本地DNS服务器发送一个回答,该回答包含这两条资 源记录。
    • networkutopia.com, 权威服务器DNS名字, NS
    • 权威服务器DNS名字, 212.212.212.1, A
  4. 该本地DNS服务器向212.212.212.1发送一个DNS查询,请求 应对与www.networkutopia.com( 212.212.71.4 )的类型A 记录。
  5. Alice的浏览器此时能够向主机212.212.71.4发起一个TCP连接, 并在该连接上发送一个HTTP请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

&2应用层 - DNS:因特网的目录服务 的相关文章

  • 第二节课内容学习

    监听远程端口 并映射到本地 先配置ssh的公私钥非对称加密 假设远程开放的端口为33090 在本地计算机终端执行 ssh CNg L 6006 127 0 0 1 6006 root ssh intern ai org cn p 33090
  • 如何查看崩溃日志

    目录 描述 思路 查看ipa包崩溃日志 简单查看手机崩溃信息几种方式 方式1 手机设置查看崩溃日志 方式2 Xocde工具 方式3 第三方软件克魔助手 环境配置 实时日志 奔溃日志分析 方式四 控制台资源库 线上崩溃日志 线上监听crash
  • 成为一个黑客,就按照这个路线来!

    前几天一个同学在聊天中提到毕业后想要从事网络安全方向的工作 虽然他本身也是学计算机的 但是又怕心有余而力不足 因为 从事网络安全方面的工作向来起点都比较高 大学里少有开设这类课程的 在学校能够学到的知识比较有限 网上的关于这方面课程的质量又
  • Linux中如何查看开启了哪些端口?

    在Linux中 端口是设备与外界通讯交流的出口 常用于指TCP IP协议中的端口 其按照端口号可以分为三类 分别是 公认端口 注册端口 动态端口 那么Linux中如何查看开启了哪些端口 以下是常用命令介绍 1 使用netstat命令 net
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • Linux 系统日志及其归档

    主要记录Linux 系统需要关注的日志文件 以及日志归档服务 rsyslogd 系统日志服务 rsyslogd 日志服务 rsyslogd reliable and extended syslogd 可靠 可扩展的系统日志服务 Rsyslo
  • 服务器集群是如何提高计算性能的?

    服务器集群是一种将多台服务器连接起来协同工作的技术 通过集群配置 可以提高计算性能 可靠性和可扩展性 以下是服务器集群如何提高计算性能的详细解释 一 并行处理能力 服务器集群的核心优势在于其并行处理能力 通过将多个服务器组成一个集群 可以将
  • 如何解决Mybatis-plus与Mybatis不兼容的问题:An attempt was made to call a method that does not exist. The attempt

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 用户数据中的幸存者偏差

    幸存者偏差 Survivorship bias 是一种常见的逻辑谬误 意思是没有考虑到筛选的过程 忽略了被筛选掉的关键信息 只看到经过筛选后而产生的结果 先讲个故事 二战时 无奈德国空防强大 盟军战机损毁严重 于是军方便找来科学家统计飞机受
  • messages,CentOS 7不收集日志或不存在 /var/log/messages

    var log message var log secure等都不记录了 并且都是空文件 重启机器 reboot 无效 重启日志 systemctl start rsyslog 无效 怀疑空间不足 删除 var log messages 重
  • 如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问

    文章目录 1 前言 2 Imagewheel网站搭建 2 1 Imagewheel下载和安装 2 2 Imagewheel网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar临时数据隧道
  • 服务器VPS是什么意思?一文了解其含义与重要性

    在今天的数字时代 服务器扮演着至关重要的角色 它们是网站 应用程序和在线业务的基石 但是 你是否听说过VPS 本文将深入探讨什么是服务器VPS 以及为什么它在今天的互联网世界中如此重要 什么是服务器VPS 服务器的基本概念 在我们深入探讨V
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 高防服务器什么意思

    高防服务器什么意思 为什么要用高防服务器 小编为您整理发布高防服务器什么意思的解读 高防服务器是指具备较高防御能力的服务器 能够抵御DDoS CC等网络攻击 高防服务器通常用于保护游戏 APP 金融 电商等业务 这些领域因为其业务特性 容易
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
  • 网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

    01 同程旅行 招聘岗位 网络工程师 职责描述 1 负责职场 门店网络规划 建设 维护 2 负责网络安全及访问控制 上网行为管理和VPN设备的日常运维 3 负责内部相关网络自动化和系统化建设 4 优化与提升网络运行质量 制定应急预案 人员培

随机推荐

  • Word数据恢复,简单几个方法恢复未保存的Word文档!

    日常生活中 我们经常会用到Word文档 里面记录着我们很多重要内容 当遇到电脑死机 没电关机 或者是编辑文档的软件突然崩溃 我们又没有及时保存Word文档里面的数据 这时该怎么办 Word数据恢复 其实很简单 就看下面这几个方法 一 Wor
  • Java唤醒本地应用的两种姿势

    作为一个后端同学 经常被安全的小伙伴盯上 找一找安全漏洞 除了常说的注入之外 还有比较吓人的执行远程命令 唤醒本地应用程序等 然后有意思的问题就来了 写了这么多年的代码 好像还真没有尝试过用java来唤醒本地应用程序的 比如说一个最简单的
  • 计算机的网络配置的方法是什么,怎么配置计算机网络

    在计算机安装好网络适配器且安装了该设备的驱动程序之后 需配置计算机网络的主要参数包括IP地址 子网掩码 默认网关 DNS 配置方式分为静态IP地址和动态IP地址两种设置方法 静态IP地址设置下面以Win2000为例来说明静态IP地址的设置和
  • Linux编译器-gcc/g++使用及项目自动化构建工具-make/Makefile

    目录 程序编译的过程 预处理阶段 编译阶段 汇编阶段 链接阶段 Linux中的四种阶段 gcc g 格式 make Makefile 程序编译的过程 有这样一段程序文件名为hello c include
  • linux mnit 安装boost1.58库

    1 安装依赖库文件 sudo apt get install libbz2 dev 安装mpi库 sudo apt get install libicu dev 支持正则表达式的UNICODE字符集 sudo apt get install
  • python协整与异步调用,压榨程序的摸鱼时间——使用异步编写需要循环执行的程序,并获取返回值(2)

    对于同步 异步的基础与基本的书写方法请参考上一篇博客 python协整与异步调用 压榨程序的摸鱼时间 异步改写一般程序 1 由于request本身只能发送同步的请求 因此我们使用支持异步的httpx来访问网站 对比同步与异步的写法 用同步与
  • 分布式限流之 - Spring Cloud Gateway层限流实现

    写在前面的话 高并发的三驾马车 缓存 降级 限流 这里仅仅说限流 常用的限流算法有 计数器算法 固定窗口算法 滑动窗口算法 漏桶算法 令牌桶算法 每种算法的特点和优缺点这里不展开 比较适用的限流算法基本都会选择令牌桶 并且这里基于Sprin
  • springboot-项目获取resources下文件的方法(2019.12.07补充)

    spring项目获取resources下文件的方法 最近写读取模板文件做一些后续的处理 将文件放在了项目的resources 下 发现了一个好用的读取方法 比如上边是你需要读取的文件 读取的方法如下 File file ResourceUt
  • Oracle函数--日期函数

    3 日期函数 months between add months next day last day round trunc sysdate sysdate关键字 表示系统的当前时间 select sysdate from dual 结果
  • STM32Cube HAL库——霍尔编码器测速(电机转速测量)

    STM32Cube HAL库 霍尔编码器测速 电机转速测量 一 测速原理 1 霍尔编码器概述 霍尔编码器 Hall Encoder 是一种用于测量旋转位置和方向的传感器 它通过感应磁场变化来测量旋转轴的位置和方向 霍尔编码器通常由霍尔传感器
  • ubuntu 18.04 安装 opencv(踩了很多雷终于整合成一个完整的成功版本)

    更新源 sudo apt update 安装相关包 sudo apt get install build essential cmake git libgtk2 0 dev pkg config libavcodec dev libavfo
  • [482]tf.cast()

    tf cast x dtype name None 此函数是类型转换函数 参数 x 输入 dtype 转换目标类型 name 名称 返回 Tensor 例 tensor a is 1 8 2 2 dtype tf float tf cast
  • lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析

    目前使用比较多的就是标题中提到的这两者 其实lvs和haproxy都是实现的负载均衡的作用 keepalived和heartbeat都是提高高可用性的 避免单点故障 那么他们为什么这么搭配 而又有什么区别呢 经过一番google 大体明白了
  • PyTorch-11 自编码器AutoEncoders 、 Variational AutoEncoders

    PyTorch 11 自编码器AutoEncoders Variational AutoEncoders 这里我们主要涉及如何利用大量Unlabeled数据 因此Unsupervised Learning这个领域就需要解决这个问题 下图是主
  • 【实用小知识】常用的软件测试方法

    随着软件测试技术的不断发展 测试方法也越来越多样化 针对性更强 选择合适的软件测试方法可以让我们事半功倍 以下是一些常用的软件测试方法 测试 Beta测试 测试 英文是Beta testing 又称Beta测试 用户验收测试 UAT 测试是
  • Keil中的工程配置选项说明

    工程配置选项说明 工程配置栏 Device Target 1 晶振频率 2 操作系统 是否选择Keil自带的RTX操作系统 一般不选 3 系统预览文件 一般默认使用系统自带 不选择自己定义的 4 生成代码所选择的编译器 5 使用交叉模块优化
  • flutter学习之旅(一)

    初学Flutter flutter官网和中文开发手册 安装flutter windows 官方文档 windows flutter windows 3 7 9 stable zip 编辑环境变量 在 用户变量 一栏中 检查是否有 Path
  • 谷歌浏览器禁用自动更新

    解决谷歌浏览器自动升级的问题 最好 最简单的解决方式 1 找到hosts文件 文件位置C Windows System32 drivers etc 2 修改hosts文件 增加 127 0 0 1 update googleapis com
  • 基础网络详解4--HTTP Cookie&&Session 思考

    一 cookie技术思考 一台多用户浏览器发起了三笔请求 将某款产品放入购物车中 A一次 选择了篮球 B两次 第一次选了足球 第二次选了钢笔 如何确认选择篮球 足球 钢笔的请求属于谁呢 如果不确认属于谁 请求将没有意义 如果每次请求都带一个
  • &2应用层 - DNS:因特网的目录服务

    DNS DNS提供的服务 用户主机将一个HTTP请求报文发送到Web服务器的过程 DNS服务 DNS工作机理概述 DNS的一种简单设计 集中式设计 分布式 层次数据库 3种类型的DNS服务器交互的方式 本地DNS服务 DNS缓存 DNS记录