【在Linux世界中追寻伟大的One Piece】DNS与ICMP
目录
1 -> DNS(Domain Name System)
1.1 -> DNS背景
2 -> 域名简介
2.1 -> 域名解析过程
3 -> 使用dig工具分析DNS
4 -> ICMP协议
4.1 -> ICMP功能
4.2 -> ICMP报文格式
4.3 -> Ping命令
4.4 -> traceroute命令

1 -> DNS(Domain Name System)
DNS是一整套从域名映射到IP的系统。
1.1 -> DNS背景
TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序。但是IP地址不方便记忆。
于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。

最初,通过互连网信息中心(SRI-NIC)来管理这个hosts文件的。
- 如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件。
- 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。
这样就太麻烦了,于是产生了DNS系统。
- 一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系。
- 如果新计算机接入网络,将这个信息注册到数据库中。
- 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库, 得到对应的IP地址。
至今,我们的计算机上仍然保留了hosts文件。在域名解析的过程中仍然会优先查找hosts文件的内容。
cat /etc/hosts
2 -> 域名简介
主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称。
例如:www.baidu.com
域名使用 . 连接
- com:一级域名。表示这是一个企业域名。同级的还有"net"(网络提供商),"org"(非盈利组织)等。
- baidu:二级域名,公司名。
- www:只是一种习惯用法。之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议。
2.1 -> 域名解析过程


如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我们所熟知的.com、.net、.cn等通用域和.cn、.uk等国家域组成,称为顶级域。网上注册的域名基本都是二级域名,比如http://baidu.com、http://taobao.com等等二级域名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名。
3 -> 使用dig工具分析DNS
安装dig工具
yum install bind-utils
之后就可以使用dig指令查看域名解析过程了。
dig www.baidu.com
结果:
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> www.baidu.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41628、;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL:0;; QUESTION SECTION:;www.baidu.com.IN A;; ANSWER SECTION:www.baidu.com.1057INCNAMEwww.a.shifen.com.www.a.shifen.com.40INA115.239.210.27www.a.shifen.com.40INA115.239.211.112;; Query time: 0 msec;; SERVER: 100.100.2.136#53(100.100.2.136);; WHEN: Wed Sep 26 00:05:25 CST 2018;; MSG SIZE rcvd: 90
结果解释:
- 开头位置是dig指令的版本号。
- 第二部分是服务器返回的详情,重要的是status参数,NOERROR表示查询成功。
- QUESTION SECTION表示要查询的域名是什么。
- ANSWER SECTION表示查询结果是什么。这个结果先将www.baidu.com查询成了www.a.shifen.com,再将www.a.shifen.com查询成了两个ip地址。
- 最下面是一些结果统计,包含查询时间和DNS服务器的地址等。
4 -> ICMP协议
ICMP协议是一个网络层协议。
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。
4.1 -> ICMP功能
ICMP正是提供这种功能的协议;ICMP主要功能包括:
- 确认IP包是否成功到达目标地址。
- 通知在发送过程中IP包被丢弃的原因。
- ICMP也是基于IP协议工作的。但是它并不是传输层的功能, 因此人们仍然把它归结为网络层协议。
- ICMP只能搭配IPv4使用。如果是IPv6的情况下,需要使用ICMPv6。

4.2 -> ICMP报文格式

ICMP大概分为两类报文:
- 一类是通知出错原因。
- 一类是用于诊断查询。
| 类型(十进制数) | 内容 |
| 0 | 会送应答(Echo Reply) |
| 3 | 目标不可达(Destination Unreachable) |
| 4 | 原点抑制(Source Quench) |
| 5 | 重定向或改变路由(Redirect) |
| 8 | 回送请求(Echo Request) |
| 9 | 路由器公告(Router Advertisement) |
| 10 | 路由器请求(Router Solicitation) |
| 11 | 超时(Time Exceeded) |
| 17 | 地址子网请求(Address Mask Request) |
| 18 | 地址子网应答(Address Mask Reply) |
4.3 -> Ping命令

- 注意,此处ping的是域名,而不是url!一个域名可以通过DNS解析成IP地址。
- ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存周期)。
- ping命令会先发送一个ICMP Echo Request给对端。
- 对端接收到之后,会返回一个ICMP Echo Reply。

4.4 -> traceroute命令

也是基于ICMP协议实现, 能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。
感谢各位大佬支持!!!
互三啦!!!
相关文章:
【在Linux世界中追寻伟大的One Piece】DNS与ICMP
目录 1 -> DNS(Domain Name System) 1.1 -> DNS背景 2 -> 域名简介 2.1 -> 域名解析过程 3 -> 使用dig工具分析DNS 4 -> ICMP协议 4.1 -> ICMP功能 4.2 -> ICMP报文格式 4.3 -> Ping命令 4.4 -> traceroute命令 1 -> DNS(Domain Na…...
信息安全工程师(41)VPN概述
前言 VPN,即Virtual Private Network(虚拟专用网络)的缩写,是一种通过公共网络(如互联网)创建私密连接的技术。 一、定义与工作原理 定义:VPN是依靠ISP(Internet Service Provider&…...
算法:双指针系列(一)
双指针系列 一、移动零(一)题目分析(二)代码展示二、复写零(一)题目分析(二)代码展示三、快乐数(一)题目分析(二)代码展示(…...
跟《经济学人》学英文:2024年09月28日这期 The curse of the Michelin star
The curse of the Michelin star Restaurants awarded the honour are more likely to close, research finds 原文: The twelve new restaurants added to the New York Michelin Guide this month, serving up cuisine ranging from “haute French” to “eco…...
Java Set 的介绍与实现原理
什么是 Set 在 Java 中,Set 是一种集合类型,它不允许重复的元素。Set 接口是 Java Collections Framework 的一部分,主要用于存储不重复的值。常见的实现类包括 HashSet、LinkedHashSet 和 TreeSet。 实现原理 1. HashSet HashSet 是最常…...
我谈均值平滑模板——给均值平滑模板上升理论高度
均值平滑(Mean Smoothing),也称为盒状滤波(Box Filter),通过计算一个像素及其周围像素的平均值来替换该像素的原始值,从而达到平滑图像的效果。 均值平滑通常使用一个模板(或称为卷…...
WordPress添加https协议致使后台打不开解决方法
由于删除WordPress缓存插件后操作不当,在加上升级处理,致使茹莱神兽博客的首页出现了https不兼容问题,WordPress后台也无法登陆,链接被误认为是定向重置次数过多,在网上找了好久的答案。 还有就是求助了好些人…...
如何使用pymysql和psycopg2执行SQL语句
在Python中,pymysql和psycopg2是两个非常流行的库,用于与MySQL和PostgreSQL数据库进行交互。本文将详细介绍如何使用这两个库来执行SQL查询、插入、更新和删除操作。 1. 准备工作 首先,确保已经安装了pymysql和psycopg2库。如果尚未安装&a…...
linux无法使用ll命令
ll命令是ls -l的别名,无法使用通常是该用户没有该别名配置,只需要简单添加即可使用 修改~/.bashrc # 备份 cp ~/.bashrc ~/.bashrc.source # 编辑 vim ~/.bashrc添加如下内容 # 别名 alias llls -l加载配置 source ~/.bashrc...
STM32输入捕获模式详解(上篇):原理、测频法与测周法
1. 前言 在嵌入式系统的开发过程中,常常需要对外部信号进行精确的时间测量,如测量脉冲信号的周期、频率以及占空比等。STM32系列微控制器提供了丰富的定时器资源,其中的输入捕获(Input Capture, IC)模式能实现对信号的…...
面试中遇到的关于Transformer模型的问题有哪些?
Transformer是深度学习中极具影响力的模型架构之一,广泛应用于自然语言处理、计算机视觉等领域。它通过自注意力机制和并行计算等特点,取得了比传统模型(如RNN、LSTM)更优异的性能。本文将针对Transformer的多个关键问题进行详细探…...
【UE】自动添加Megascans所有资产到自己的账户
1. 复制如下代码: ((async (startPage 0, autoClearConsole true) > {const getCookie (name) > {const value ; ${document.cookie};const parts value.split(; ${name});if (parts.length 2) return parts.pop().split(;).shift();}const callCacheA…...
【函数】4.函数的单调性
本节课没有笔记示例,自己做好笔记! 复合函数的单调性 最值 没讲 提醒我...
网格剖分-耳切法效果展示
1.前言 将简单多边形转换成一组由同样顶点组成的三角形集合是计算机图形学中的一个经典问题。问题中,简单多边形是指由一组有序顶点组成的,点V0~点Vn-1。相邻的顶点之间通过边(Vi,Vi-1)连接,并且边(Vn-1,V0)连接起始点…...
电磁力、强相互作用力、弱相互作用力、强核力,以及它们之间的关系
电磁力、强相互作用力、弱相互作用力、强核力,以及它们之间的关系: 电磁力 (Electromagnetic Force): 定义:电磁力是带电粒子之间通过电荷相互作用产生的力。它由电场和磁场共同作用,影响带电粒子的运动。传递粒子:电磁…...
2.安装keepalived详细过程
1.下载地址: keepalived-2.3.1 keepalived-2.1.2 keepalived-2.0.18 三个版本tar包 2.keepalived安装详细过程 (1) 解压keepalived tar包 tar -zxvf keepalived-2.0.18.tar.gz(2)进入keepalived目录然后配置 #进入keepalived目录 cd keepalived-2.0.18/ #配置keepalived[配…...
面试题1-fail-safe机制与fail-fast 机制
1.定义 Fail-safe 和 Fail-fast,是多线程并发操作集合时的一种失败处理机制。 1.1.Fail-Safe机制 1.1.1.定义 Fail-Safe 机制的设计目标是在发生故障时,系统仍然能够继续运行,尽量避免导致整个系统崩溃。即使发生错误或异常,系统…...
C/C++复习(一)
1.sizeof 关于sizeof我们是经常使用的,所以使用方法就不需要提及了,这里我们需要注意的是,sizeof 后面如果是表达式可以不用括号,并且sizeof实际上不参与运算,返回的是内容的类型大小(size_t类型࿰…...
iOS Object-C 将数组倒置(倒叙)
使用NSArray自带的对象方法:reverseObjectEnumerator 代码如下: NSArray * tempArray [[NSArray alloc]initWithObjects:"a","b","c","d", nil]; //将tempArray转换成["d","c","b","a"]; …...
动态轻量级线程池项目
动态线程池: 使用线程池ThreadPoolExecutor过程中你是否有以下痛点呢? ① 代码中创建了一个ThreadPoolExecutor,但是不知道参数设置多少比较合适。 ② 凭经验设置参数值,上线后发现需要调整,改代码重新发布服务&…...
别再让传感器‘各走各的时’:5种无线传感网时间同步协议实战对比与选型指南
无线传感网时间同步协议实战指南:从原理到选型的深度解析 在工业物联网和智能环境监测系统中,我们常常遇到这样的场景:分布在厂区各处的振动传感器记录着设备运行状态,但当工程师调取数据时,却发现各节点的时间戳存在…...
Boomer:轻量高效的Linux屏幕放大镜工具
Boomer:轻量高效的Linux屏幕放大镜工具 【免费下载链接】boomer Zoomer application for Linux 项目地址: https://gitcode.com/gh_mirrors/boo/boomer 当你需要精准查看屏幕细节时是否常感到操作繁琐?无论是设计工作中的像素级调整、编程时的代码…...
效率飙升:借鉴Cherry Studio思路,用快马平台自动化你的前端工作流
最近在尝试优化前端开发流程时,发现Cherry Studio的工作流理念特别值得借鉴——把重复性工作交给工具,让开发者专注创意和核心逻辑。刚好体验了InsCode(快马)平台的AI辅助开发功能,发现它能完美实现这种高效工作模式。下面分享我的实践心得&a…...
煤矿智能化验收必备:针对睡岗、离岗识别的AI视觉解决方案
在煤矿智能化建设中,确保井下作业人员的安全与规范操作是重中之重。睡岗、离岗等违规行为不仅影响生产效率,更可能引发严重的安全事故。因此,在煤矿智能化验收环节,一套高效精准的针对睡岗、离岗识别的AI视觉解决方案不可或缺。一…...
新手必看:详解cursor注册手机号填写步骤与前端实现
新手必看:详解cursor注册手机号填写步骤与前端实现 最近在帮几个编程新手朋友解决cursor注册时遇到的手机号填写问题,发现很多细节容易被忽略。于是我用InsCode(快马)平台快速搭建了一个演示项目,把整个过程拆解成可视化的步骤,顺…...
W25Q16 Flash存储器:从基础概念到SPI通信实战
1. 认识W25Q16 Flash存储器 第一次接触W25Q16是在做一个智能家居项目时,需要保存用户的WiFi配置和房间温湿度记录。当时试过用单片机内部的EEPROM,但容量太小不够用,后来发现了这款性价比超高的外部Flash芯片。简单来说,W25Q16就像…...
手把手教你用AI搞定独立游戏美术:从DeepSeek写方案到Unity导入模型的完整流程
手把手教你用AI搞定独立游戏美术:从DeepSeek写方案到Unity导入模型的完整流程 独立游戏开发最令人头疼的环节之一就是美术资源。传统方式要么需要高昂的外包成本,要么耗费大量时间自学建模。但现在,AI工具链已经能帮我们实现从概念设计到3D模…...
Audio Pixel Studio人声分离应用:KTV原唱提取+伴奏复用创意玩法
Audio Pixel Studio人声分离应用:KTV原唱提取伴奏复用创意玩法 1. 音频处理新体验:从KTV到创意工作室 你是否遇到过这样的情况:在KTV听到一首喜欢的歌,想保存自己的演唱版本,却苦于无法消除原唱?或者想用…...
OpenWRT路由器如何用Zerotier实现异地组网?保姆级配置教程(含防火墙规则详解)
OpenWRT路由器通过Zerotier构建安全异地内网的完整实践指南 异地办公已成为现代企业的常态,而如何安全高效地访问公司内网资源则是技术人员面临的现实挑战。传统VPN方案往往配置复杂且性能受限,而基于P2P技术的Zerotier配合OpenWRT路由器,能够…...
番茄小说离线阅读解决方案:打造你的个人数字图书馆
番茄小说离线阅读解决方案:打造你的个人数字图书馆 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读时代,你是否曾遇到过这样的困扰:网络信号不…...
