DNS和ICMP

news2024/9/22 17:24:27

DNS

DNS(Domain Name System )

DNS 是一整套从域名映射到 IP 的系统

关于DNS背景

TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序 . 但是 IP 地址不
方便记忆 .
于是人们发明了一种叫主机名的东西 , 是一个字符串 , 并且使用 hosts 文件来描述主机
名和 IP 地址的关系 .

最初 , 通过互连网信息中心 (SRI-NIC) 来管理这个 hosts 文件的 .
如果一个新计算机要接入网络 , 或者某个计算机 IP 变更 , 都需要到信息中心申
请变更 hosts 文件 .
其他计算机也需要定期下载更新新版本的 hosts 文件才能正确上网 .

这样太麻烦了,于是就有了DNS系统

一个组织的系统管理机构 , 维护系统内的每个主机的 IP 和主机名的对应关系 .
如果新计算机接入网络 , 将这个信息注册到数据库中 ;
用户输入域名的时候 , 会自动查询 DNS 服务器 , DNS 服务器检索数据库 , 得到对应的IP地址
至今 , 我们的计算机上仍然保留了 hosts 文件 . 在域名解析的过程中仍然会优先查找
hosts 文件的内容 .

cat /etc/hosts

 介绍域名

 主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称

比如:www.baidu.com  ,其中

com: 这个是一级域名。 .com表示这是一个企业域名,同级的还有 .org (非盈利组织) ,.net(网络运营商),或者 .edu(教育组织)

baidu:这是二级域名。一般是公司名

www:这只是一个习惯用法。

域名解析过程 

以浏览器或者app也就是客户端,来请求www.baidu.com为例。

1:用户拿到域名想访问百度,首先会拿着域名去访问本地的DNS服务器,以此来获取百度的IP地址是多少。如果本地服务器缓存了这个域名和IP的映射关系,那么在这一步就直接返回给用户了,用户就可以拿着IP地址去访问百度了。

2:如果在本地DNS服务器没有找到,那么本地服务器会将这个域名转发到根服务器。

3:根服务器经过查询,发现这是由.com服务器进行管理的,于是返回相应让本地服务器去.com服务器询问。

4:接着,本地服务器就又拿着域名向.com服务器发起请求。

5:在.com服务器中解析这个域名,发现是由baidu.com服务器管理的,所以返回响应,让本地服务器再去baidu.com的服务器进行询问。

6:继续拿着域名请求 baidu.com。

7:最终拿到域名对应的IP地址。

8:将IP地址返回给用户。

我们发现这其实是一个树状结构

如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我
们所熟知的 .com .net .cn 等通用域和 .cn .uk 等国家域组成,称为顶级域。网上注
册的域名基本都是二级域名,比如 http://baidu.com http://taobao.com 等等二级域
名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名。

使用dig工具分析域名

 如果没有安装dig,可以先进行安装

Ubuntu下进行安装:

sudo apt update

sudo apt install bind9-utils

比如说解析百度域名

这里也解析出来了百度的IP地址,但是百度做了特殊处理,以前可以直接用这个IP地址来访问百度,但是现在不行了。 

关于这个结果的解释:

1.开头位置是 dig 指令的版本号
2. 第二部分是服务器返回的详情, 重要的是 status 参数 , NOERROR 表示查询成功
3. QUESTION SECTION 表示要查询的域名是什么
4. ANSWER SECTION 表示查询结果是什么 . 这个结果先将 www.baidu.com 查询
成了 www.a.shifen.com, 再将 www.a.shifen.com 查询成了两个 ip 地址 .
5. 最下面是一些结果统计, 包含查询时间和 DNS 服务器的地址等 .

 ICMP协议

ICMP协议是网络层的协议。它不是用来传递用户数据的,而是用来进行网络问题定位,状态诊断的。

位置结构:

ICMP虽然和IP协议同为网络层,但是它是在IP协议上面的,ICMP报文也要把自己打包封装成IP报文,然后再向下继续封装。

另外ICMP它提供了一些接口给应用层,也就是说用户是可以直接绕过传输层使用ICMP的。比如我们使用的Ping命令就是。

ICMP的功能:

确认 IP 包是否成功到达目标地址 .
通知在发送过程中 IP 包被丢弃的原因 .
ICMP 也是基于 IP 协议工作的 . 但是它并不是传输层的功能 , 因此人们仍然把它
归结为网络层协议 ;
ICMP 只能搭配 IPv4 使用 . 如果是 IPv6 的情况下 , 需要使用 ICMPv6;

 

 ICMP允许距离故障事发地最近的主机设备(一般是最近的路由器)返回应答。

ICMP报文格式:
 

ICMP报文一般分两类:

1.通知出错原因

2.用于诊断查询

apt install -y traceroute

 

有时候路由器转发的报文数量太多了,路由器设备压力太大了,就有可能给对方发送重定向报文,要求对方给别的路由器转发。

关于ICMP的命令:

ping命令不用多少了

还有一个是traceroute命令:

也是基于 ICMP 协议实现 , 能够打印出可执行程序主机 , 一直到目标主机之前经历多少
路由器。

 

在Ubuntu下的安装 (要在管理员权限下)
apt install -y traceroute

比如还是对百度进行使用测试

 其中最上面的 30 hops max 表示的是最多经过了30个路由器, 60 byte packets表示报文大小是60字节。

其中下面有些显示出来的IP地址的表示的是经过了一个有效的路由器。我们之所以能看到它们的IP地址,是因为他们给我们进行应答了。

某一跳为 * * * 表示这些路由器没有给我们进行ICMP应答。没有给应答的原因有很多,比如设备故障;或者设置了防火墙,不允许给外界的设备发送ICMP报文。

关于ICMP的面试比较坑的问题:ping的端口号是什么?

端口号是传输层面的概念,ping命令是基于网络层协议实现的,所以它是没有端口号的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2144388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

computed计算属性与watch侦听器

1.computed计算属性的写法有两种,一种是只读的,只负责展示,另一种可以进行修改,利用get来获取值,利用set来进行修改 2.watch侦听器的写法也有两种,可以直接写成函数,也可以写成对象,…

浅显易懂的Git教程

Git概述 SVN与Git的对比 SVN(Subversion) 类型:集中式版本控制系统 工作流程: 从中央服务器下载最新版本到本地。在本地进行开发。提交更改回中央服务器。 优点: 简单易用,适合小型团队。版本历史清…

【源代码+仿真+原理图+技术文档+演示视频+软件】基于物联网的多功能手环设计与实现

摘 要 随着社会进步和生活水平的提高,人们对健康的重视程度不断增加。为了更好地了解自身的身心健康状况,人们对高精密、便携式医疗监控仪器的需求也越来越大。电子信息技术和医学的发展相互促进,二者的结合可以解决人们在健康问题上的困扰…

单通道低压全桥驱动芯片既可应用在电子锁,医疗器械等产品中也能直接Pin to pin贝岭的BL8123

芯片描述 GC8123 是一款低压 5V 全桥驱动芯片,为摄像机、消费类产品、玩具和其他低压或者电池供电的运动控制类应用提供了集成的电机驱动解决方案。GC8123 能提供高达 1.2A 的持续输出电流。可以工作在 1.2~6V 的电源电压上。GC8123 具有 PWM(IN/IN&…

Git使用教程-将idea本地文件配置到gitte上的保姆级别教程

🤹‍♀️潜意识起点:个人主页 🎙座右铭:得之坦然,失之淡然。 💎擅长领域:前端 是的,我需要您的: 🧡点赞❤️关注💙收藏💛 是我持…

Linux配置静态IP详细步骤及联网问题,以及更改主机名问题

一,Linux配置静态IP详细步骤及联网问题 我的Linux操作系统版本是是CentOS7/CentOS8 1.网络适配器:NAT模式点击设置-网络适配器-网络连接 (选择NAT模式)-点击确定 2.查看网关相关配置点击 编辑-虚拟网络编辑器-选择VMnet8-点击更…

python 环境问题

日常环境问题记录 1、pycharm 终端禁止运行脚本1.1 问题描述1.2 以管理员身份运行powershell1.3 修改权限 1、pycharm 终端禁止运行脚本 1.1 问题描述 当我在pycharm终端执行脚本,比如 activate激活虚拟环境时,会报错不让执行 这类问题的出现原因是没…

操作系统相关

操作系统 1. 操作系统主要功能 进程管理 功能:创建、调度、终止进程,管理进程的执行。目的:确保多个进程能够有效地共享处理器资源,并进行合理的调度和管理。 内存管理 功能:分配和管理系统内存,包括虚拟…

02 基于STM32的按键控制继电器驱动电机

本专栏所有源资料都免费获取,没有任何隐形消费。 注意事项:STM32仿真会存在各种各样BUG,且尽量按照同样仿真版本使用。本专栏所有的仿真都采用PROTEUS8.15。 本文已经配置好STM32F103C8T6系列,在PROTUES仿真里,32单片…

系统编程-初识MCU

初识MCU 目录 初识MCU 一、什么是mcu? 二、MCU 的组成与作用 三、常见的MCU 四、家用空气质量检测仪项目分析 1、项目市场调研 2、项目需求分析(重要) 3、产品的硬件设计 五、常用元器件以及对应电路介绍(重点) 1、电阻 2、电容 …

怎么使用Chrome与C++实现高效自动化测试

在软件开发过程中,自动化测试是确保代码质量和稳定性的关键步骤。谷歌浏览器(Chrome)提供了强大的开发者工具和丰富的API,结合C的强大功能,可以实现高效的自动化测试。本文将介绍如何使用Chrome和C来实现这一目标。&am…

路径规划算法-蚁群算法

一、蚁群算法(ACO)基本原理 winter老哥链接 蚁群路径规划算法(Ant Colony Optimization, ACO)是一种模拟蚂蚁觅食行为的启发式优化算法,它通过模拟蚂蚁在寻找食物过程中的路径选择和信息素交流来解决路径规划问题。以下…

图片文字翻译怎么快速翻译?5个软件教你快速进行图片文字翻译

图片文字翻译怎么快速翻译?5个软件教你快速进行图片文字翻译 图片文字翻译是日常工作和生活中常见的需求,尤其是在处理外文资料或旅游时。以下5款优秀的软件可以帮助你轻松、快速地将图片中的文字进行翻译,让你不再依赖手动输入和繁琐操作。…

linux概述与安装虚拟机

linux 1.Linux 概述 Linux 是一个极具影响力和广泛应用的操作系统。 它起源于芬兰人林纳斯・托瓦兹在大学期间编写的开源内核。Linux 作为一个整体,是免费供用户使用的,具备多用户、多任务、支持多线程的强大特性。 Linux 内核是其核心部分&#xff…

JAVA基础:线程优先级和精灵线程

目录 前言 线程优先级 精灵线程 前言 线程存在的目的是为了提升代码的效率,以前的程序只有主线程自己执行是串行的,这样的代码效率低 ,多线程执行的代码是并行的,多个线程同时执行代码,这样的效率高,但是…

Verdin AM62 引脚复用配置

By Toradex 胡珊逢 简介 Verdin AM62 是 Toradex 基于 TI AM623/AM625 SoC 的 Arm 计算机模块。它最多提供 4 个 A53 和 1 个 M4F 处理器。这是 TI 基于其 K3 平台的处理器,虽然和 NXP 的 iMX8M Mini/Plus 都使用 A53 核心,但是由于架构不同&#xff0…

智能优化算法-遗传算法(GA)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 遗传算法 (Genetic Algorithm, GA) 是一种基于自然选择和遗传学原理的元启发式优化算法,它模仿了生物进化过程中的选择、交叉和变异操作来搜索最优解。 GA的工作机制主要包括: 选择&am…

1652AM任意波形发生器

1652AM 任意波形发生器 1652AM任意波形发生器是一款多通道、多功能的任意波形发生器。它在兼顾了输出信号高质量的同时,实现了高通道密度。它可与其它通用或专用模块化测试仪器构成综合测试系统或平台,支持众多解决方案,包括先进计算机调…

鹰眼降尘系统多少钱

关于鹰眼系统的价格,由于该系统可能涉及多个领域和不同的配置,因此价格范围可能相对较广。以下是朗观视觉小编对鹰眼系统价格的一些分析和说明: 一、价格影响因素 应用领域:鹰眼系统可能应用于不同的领域,如环保降尘、…

线性代数书中求解线性方程组的三种方法的实例

目录 一、克拉默法则(P45) 二、逆矩阵(P46) 三、高斯-约当消元法(P65) 一、克拉默法则(P45) 二、逆矩阵(P46) 三、高斯-约当消元法(P65)