24 张图详解 ICMP :最常用的网络命令 ping 和 tracert

ICMP协议 ICMP(Internet Control Message Protocol)Internet控制协议,ICMP报文由以下字段组成,如何用于网络诊断和错误报告(字段取值及含义)主要看前两个字段——type和code?故障检测工具 阅读详情

ICMP
上帝视角

ICMP

IP 是尽力传输的网络协议,提供的数据传输服务是不可靠的、无连接的,不能保证数据包能成功到达目的地。那么问题来了:如何确定数据包成功到达目的地?

不可靠传输

这需要一个网络层协议,提供错误检测功能和报告机制功能,于是出现了 ICMP(互联网控制消息协议)。ICMP 的主要功能是,确认 IP 包是否成功送达目的地址,通知发送过程中 IP 包被丢弃的原因。有了这些功能,就可以检查网络是否正常、网络配置是否正确、设备是否异常等信息,方便进行网络问题诊断。

ICMP网络诊断功能

举个栗子:如果在传输过程中,发生了某个错误,设备便会向源设备返回一条 ICMP 消息,告诉它发生的错误类型。

ICMP举例

ICMP 消息是通过 IP 进行传输,但它的目的并不是让 IP 成为一种可靠的协议,而是对传输中发生的问题进行反馈。ICMP 消息的传输同样得不到可靠性保证,也有可能在传输过程中丢失。因此 ICMP 不是传输层的补充,应该把它当做网络层协议。

ICMP 消息封装

ICMP 消息使用 IP 来封装,封装格式如下图。

ICMP封装格式

其中 type(类型)字段表示 ICMP 消息的类型,code(代码)字段表示 ICMP 消息的具体含义。例如:type 值为 3 表示目的不可达消息( Destination Unreachable Message ),若 code 值为 0 表示目的网络不可达( Network Unreachable )。常见的 ICMP 消息类型如下图。

ICMP消息类型

从功能上,ICMP 的消息可分为两类:一类是通知出错原因的错误消息,另一类是用于诊断的查询消息。

错误消息和查询消息

常见的 ICMP 消息类型
  • 回送请求消息( Echo Request ):是由源设备(主机或路由器等)向一个指定的目的设备发出的请求。这种消息用来测试目的地是否可达。
  • 回送响应消息( Echo Reply ):对 Echo Request 的响应。目的设备发送 Echo Reply 来响应收到的 Echo Request 。最常用的 ping 命令就是使用 Echo Request 和 Echo Reply 来实现的。

回送消息

  • 目的不可达( Destination Unreachable ):路由器无法将 IP 包发送给目的地址时,会给源设备返回一个 Destination Unreachable 消息,并在消息中显示不可达的具体原因。

    目的不可达

    实际情况下,经常会遇到的错误代码是 1 ,表示主机不可达,它是指路由表中没有目的设备的信息,或目的设备没有连接到网络。

目的不可达类型

  • 参数问题( Parameter Problem ):路由器发现 IP 包头出现错误或非法值后,向源设备发送一个 Parameter Problem 消息。这个消息包含有问题的 IP 头,或错误字段的提示信息。

参数问题消息

  • 重定向( Redirect ):如果路由器发现一条更优的路径发送数据,那么它就会返回一个 Redirect 消息给主机。这个消息包含了最合适的路由信息和源数据。

    实际情况下,这种 Redirect 消息会引发路由问题,所以不进行这种设置。比如:路由器的路由表不准确时,ICMP 有可能就无法正常工作。

重定向

  • 超时( Time Exceeded ):IP 包中有一个字段是 TTL(生存周期),它的值每经过一次路由器就减 1 ,直到减到 0 时 IP 包会被丢弃。这时,路由器会发送一个 Time Exceeded 消息给源设备,并通知 IP 包已被丢弃。

    设置 TTL 的主要目的,是当路由发生环路时,避免 IP 包无休止的在网络上转发。还可以用 TTL 控制 IP 包的可达范围,比如设置一个较小的 TTL 值。

超时

  • 时间戳请求/时间戳响应( Timestamp Request / Timestamp Reply ):时间戳可以记录 ICMP 消息一次往返所需的时间。源设备发送一个带有发送时间的 Timestamp Request 消息,目的设备收到后,发送一个带有原设备发送时间、目的设备接收时间以及目的设备发送时间的 Timestamp Reply 消息。源设备收到 Timestamp Reply 时,并同时记录到达时间。这些时间戳可以估计网络上的传输时间。

时间戳

ICMP 的应用

ICMP 被广泛应用于网络测试,最常用的 ping 和 tracert 网络测试工具,都是使用 ICMP 协议实现的。

ping

ping 是 ICMP 最著名的一个应用,通过 ping 可以测试网络的可达性,即网络上的报文能否成功到达目的地。使用 ping 命令时,源设备向目的设备发送 Echo request 消息,目的地址是目的设备的 IP 地址。目的设备收到 Echo request 消息后,向源设备回应一个 Echo reply 消息,可知目的设备是可达的。也可以通过 ping 命令来判断目标主机是否启用。

ping

如果中间某个路由器没有到达目的网络的路由,便会向源设备回应一个 Destination Unreachable 消息,告知目的设备不可达。

ping目的不可达

如果源主机在一定时间内无法收到回应报文,就认为目的设备不可达,并显示超时。

超时

需要注意的是 ping 过程是双向的消息通信,只有双向都成功传输时,才能说明通信是正常的。另外主机也可能因为防火墙拦截,导致 ping 不通。

tracert

ping 工具只能测试目的设备的连通性,但是看不到数据包的传输路径。所以在网络不通的情况下,无法知道网络问题发生在哪个位置。tracert 工具可以查看数据包的整条传输路径,包括途中经过的中间设备。

tracert

IP 头部的 TTL 字段是为避免数据包循环转发而设计的。每经过一个路由器,数据包头中的 TTL 值减 1 。如果 TTL 值为 0 则丢弃报文,并向源设备回应一个 Time Exceeded 消息,告知错误类型。tracert 就是基于 TTL 字段和 ICMP 协议实现的。在 Windows 中命令是 tracert ,在 Unix 、MacOS 中命令是 traceroute 。

使用 tracert 命令时,源设备的 tracert 逐跳发送数据包,并等待每一个响应报文。发送第一个数据包时,TTL 值设为 1 。第一个路由器收到数据包后 TTL 值减 1 ,随即丢弃数据包,并返回一个 Time Exceeded 消息。源设备的 tracert 收到响应报文后,取出源 IP 地址,即路径上的第一个路由器地址。然后 tracert 发送一个 TTL 值为 2 的数据包。第一个路由器将 TTL 值减 1 ,并转发数据包。第二个路由器再将 TTL 值减 1 ,丢弃数据包并返回一个 Time Exceeded 消息。tracert 收到响应报文后,取出源 IP 地址,即路径上的第二个路由器地址。类似步骤,tracert 逐跳获得每一个路由器的地址,并探测到目的设备的可达性。

tracert

tracert 过程也是双向的消息通信,只有双向都成功传输时,才能正确探测路径。另外主机安装了防火墙,也可能造成路径探测失败。

网络实战

ping

在 Windows 电脑上使用 ping 命令,并查看返回信息。

ping命令

同步抓包进行验证。

ping抓包

还可以直接使用 ping 命令,查看 ping 命令的使用方法。

ping命令用法

tracert

在 Windows 电脑上使用 tracert 命令,并查看返回信息。

tracert命令

同步抓包进行验证。

tracert抓包

也可以直接使用 tracert 命令,查看 tracert 命令的使用方法。

tracert用法


饮水思源:

TCP/IP详解 卷1:协议 - Kevin R.Fall

网络基础 - 田果

图解TCP/IP - 竹下隆史

华为hcia——Datacom实验指南——Ping和Tracert的工作原理 ICMP位于网络层中,在其网络层中子层等级高于IP协议,所以在进行数据封装的时候,先进行ICMP封装再进行IP封装。 阅读详情

相关推荐

深入解析ICMP协议与ping命令的网络诊断原理

ICMP(Internet Control Message Protocol)作为网络层的控制协议,是互联网基础设施的重要组成部分。该协议通过类型/代码字段体系实现网络状态反馈,典型应用包括目标不可达通知、路由重定向等。ping命令正是基于ICMP的Echo Request/Reply机制实现,通过计算往返时间(RTT)和检查丢包率,成为网络连通性测试的基础工具。在TCP/IP协议栈中,ICMP与IP协议协同工作但独立于传输层协议,这种设计使其能够诊断TCP/UDP无法触及的网络层问题。实际工程中,合理使用

weixin_33713707的博客 342

网络:ICMP

网络成长之路

Junzeng_Kai的博客 1421

互联网协议 — ICMP 互联网控制消息协议

目录 文章目录目录ICMPICMPv4 协议栈ICMPv4 的消息类型Echo Request & Echo Reply MsgDestination Unreachable MsgParameter Problem MsgRedirect MsgTime Exceeded MsgTimestamp Request & Timestamp Reply MsgICMP 的应用pingtraceroute ICMP IPv4/v6 协议是尽力传输的网络协议,提供的数据传输服务是不可靠的、无连接

烟云的计算 4047

Linux ping向网络主机发送ICMP ECHO REQUEST

PING (Packet Internet Grope),因特网包探索器

每天都要开心呀(#^.^#) 3923

【CAPL实战:以太网】CAPL如何发送一条ICMPv4 Echo Request报文

想要构造并发送一条ICMPv4 Echo Request报文,首先要了解它的报文结构。ICMPv4 Echo Request报文结构如下:

jasonj333 6734

告别卡顿闪烁!在Cesium 1.134中集成SOG格式,让400万高斯秒级加载

本文详细介绍了如何在Cesium 1.134中集成SOG格式,实现400万高斯数据的秒级加载,解决传统加载方式导致的卡顿和闪烁问题。通过空间索引重构、属性量化编码和WebGPU原生支持等技术,SOG格式显著提升了三维地理空间可视化的性能。文章还提供了环境准备、模型转换和Cesium集成的实战指南,帮助开发者高效优化项目。

weixin_29313817的博客 499

24 张图搞定 ICMP :最常用的网络命令 ping 和 tracert

源设备发送一个带有发送时间的 Timestamp Request 消息,目的设备收到后,发送一个带有原设备发送时间、目的设备接收时间以及目的设备发送时间的 Timestamp Reply 消息。ICMP 消息是通过 IP 进行传输,但它的目的并不是让 IP 成为一种可靠的协议,而是对传输中发生的问题进行反馈。类似步骤,tracert 逐跳获得每一个路由器的地址,并探测到目的设备的可达性。实际情况下,经常会遇到的错误代码是 1 ,表示主机不可达,它是指路由表中没有目的设备的信息,或目的设备没有连接到网络。

2301_78526383的博客 1328

避坑!!!Stata双重机器学习(DML)遇到的问题及解决方式

除了上述代码,我还在Anaconda Navigator图形界面来更新conda,更新过的小伙伴应该都知道,这个过程非常漫长,我大概经历了2-3天,在这个过程中电脑一直运行,但是很不幸,无论哪种方式,最终都没有更新到最新版本。安装成功之后,我抱着试一试的心态再次在stata18MP中运行,没有想到,这次竟然运行成功了!我之前一直用的是stata17MP版本,在运行DML的时候,代码一直出错,我以为是python路径没有设置好的原因,就各种在python上面下功夫,经过各种查找后,确定DML必须要在。

王樰沫 3847

linux 命令:ping、fping、gping、hping3、nping、tracert、traceroute、ip 和 ifconfig

linux 命令:ping、fping、gping、hping3、nping、tracert、traceroute

freeking101的博客 9万+

微信抢红包神器自动抢软件

微信抢红包神器自动抢软件

weixin_44006731的博客 8080

【WorkBuddy】WorkBuddy 智能体快速上手:从零到一的实践指南

文章摘要: 传统自动化脚本难以应对灵活多变的自然语言需求,导致逻辑复杂、维护成本高。智能体(Agent)通过理解语义意图、动态决策和松耦合组件解决了这些问题。WorkBuddy采用声明式配置,通过可视化界面定义意图、实体和对话策略,无需编码即可快速构建智能体。其核心组件包括意图分类、实体提取、对话策略、故事样本和回退机制,适用于客服支持、知识问答等高频场景。通过环境准备(Python/Node.js/Redis)和简单配置,用户可以快速搭建可运行的智能体,显著提升自动化效率。

ruiqideng的博客 1659

Ping和tracert的原理和区别

Ping协议是一种网络通讯协议,用于测试网络连接质量和测量计算机之间的延迟和丢包率。Ping协议通过向目标计算机发送数据包并等待响应来测试连接的可达性,如果目标计算机接收并回复了数据包,则表示连接正常;否则,连接存在问题。

MZC999999的博客 4602

零基础入门simulink仿真建模--通信领域的编码与纠错技术--基于Simulink的CRC校验算法仿真建模示例

CRC是一种广泛应用于数字网络和存储设备中的错误检测码。它的基本原理是利用除法运算来产生固定长度的校验位,这些校验位被附加到原始数据之后发送出去。接收端收到数据后,重新计算校验值并与接收到的校验值进行比较,如果两者相同,则认为数据没有错误;否则,表示数据可能已被损坏。发送端:随机比特生成模块 + CRC生成模块。信道:模拟数据传输过程中的潜在错误(可选)。接收端:CRC校验模块 + 错误指示模块。通过本指南,我们介绍了如何基于Simulink搭建一个简单的CRC校验系统模型,并进行了仿真分析。

amy_mhd的博客 730

智安网络丨24 张图搞定 ICMP :最常用的网络命令 ping 和 tracert

图片 上帝视角 ICMP IP 是尽力传输的网络协议,提供的数据传输服务是不可靠的、无连接的,不能保证数据包能成功到达目的地。那么问题来了:如何确定数据包成功到达目的地? 图片 不可靠传输 这需要一个网络层协议,提供错误检测功能和报告机制功能,于是出现了 ICMP(互联网控制消息协议)。ICMP 的主要功能是,确认 IP 包是否成功送达目的地址,通知发送过程中 IP 包被丢弃的原因。有了这些功能,就可以检查网络是否正常、网络配置是否正确、设备是否异常等信息,方便进行网络问题诊断。 图片 ICMP网络诊断功能

zhianwangluo的博客 325

基于YOLOv8的工业瓷砖缺陷检测:深度学习与UI界面的应用

本文详细介绍了如何使用YOLOv8进行工业瓷砖缺陷检测,并结合图形用户界面(UI)提供了完整的实现方案。通过YOLOv8模型,我们可以高效、精确地检测瓷砖图像中的缺陷,显著提高生产过程中的质量控制水平。随着数据集的进一步扩展和YOLOv8模型的不断优化,未来瓷砖缺陷检测的精度和速度将不断提高。此外,基于深度学习的缺陷检测技术不仅可以应用于瓷砖生产,还可以推广到其他领域的质量检测中。

YOLO 604

手机相机Tuning专项调优(一):基础流程与图像主观评价标准建立实战解析

本篇为手机相机系统“Tuning专项调优”系列的开篇,深入剖析了当前手机相机Tuning的基本流程与图像主观评价标准的构建方法。结合实际工程经验与最新业界案例,详细介绍ISP调优和3A控制中涉及的主观评价标准,如锐度、色彩饱和度、噪声感知等,并提出一套可工程化落地的标准制定与评测实践体系,帮助工程师有效提升图像品质。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1933

揭秘网络诊断双雄:从 ICMP 到 TTL,全面掌握 ping 与 tracert 的高级技巧

本文深入解析了网络诊断核心工具ping与tracert的高级应用技巧。通过剖析其底层ICMP协议与TTL机制,揭示了如何超越基础的连通性测试,利用参数组合进行持续监测、MTU问题诊断及路径质量分析,从而精准定位网络瓶颈与故障节点,提升网络运维效率。

weixin_29208077的博客 582

YOLO26 数据标注工具:LabelImg、Label Studio实战指南:主流标注工具的安装配置与使用技巧,高效完成目标检测数据标注

本文介绍了目标检测中数据标注的核心地位与常用工具。数据标注质量直接影响模型性能,需要关注准确性、一致性等维度。文章详细讲解了边界框、类别标签等基本概念,并对比了LabelImg、Label Studio等主流标注工具的特点。重点介绍了LabelImg的轻量级、易用性等优势,以及Label Studio的协作功能,为不同规模项目提供标注工具选择建议。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1177

ICMP 中的 ping 与 tracet

目录ICMPPingICMP报文格式Ping 常用命令格式Tracert ICMP ICMP(Internet Control Message Protocol)ICMP是一个网络层协议,是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议,Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。 那么ICMP有什么作用呢? 我们数据在网络中传输中,会封装成IP数据包,而IP协议的特点是面向无连接,且不可靠的,可靠性由上层来保证。IP

欢迎光临 我的心 3490

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

常用网络命令(三)-- netstat 命令 和 tracert命令

目录: 常用网络命令(一)-- ping操作常用网络命令(二)-- IPConfig操作常用网络命令(三)-- netstat 命令 和 tracert 命令常用网络命令(四)-- route 命令 和 arp 命令常用网络命令(五)-- nslookup, netsh, net常用网络命令(六)-- ftp (命令行里也能传文件) 重点说明: Win下dos命令行内,使用ctrl + c 可...

zongrongna的博客 1985

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【ICMP协议(ping、tracert命令)、ICMP重定向】-20211130

一、ICMP(Internet控制信息协议) 最常见的就是ping、tracert命令 1.ping命令 用于确认设备之间是否能正常通信 2.tracert命令 用于追踪路由器设备 在一段很长的网络链路中,中间某一台设备可能出故障时,用tracert命令可以定位到,具体某台设备,这样就不用一个一个ping了。 在tracert过程中,有的设备不允许被跟踪,所以是***请求超时,这是正常现象。为了保密(国家...

AZK707的博客 1656

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

24 张图搞定 ICMP

ICMP IP 是尽力传输的网络协议,提供的数据传输服务是不可靠的、无连接的,不能保证数据包能成功到达目的地。那么问题来了:如何确定数据包成功到达目的地? 这需要一个网络层协议,提供错误检测功能和报告机制功能,于是出现了 ICMP(互联网控制消息协议)。ICMP 的主要功能是,确认 IP 包是否成功送达目的地址,通知发送过程中 IP 包被丢弃的原因。有了这些功能,就可以检查网络是否正常、网络配置是否正确、设备是否异常等信息,方便进行网络问题诊断。 举个例子:如果在传输过程中,发生了某个错误,设备便会向.

qq_45742219的博客 563

9个常用网络命令

ICMP的应用举例:1.ping;4.tracert1.pingping用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断tcp/ip参数是否设置得正确以及运行是否正常。ping是一个测试程序,如果ping运行正确,你大体上就可以排除网络访问层、网卡、modem的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。按照缺省设置,windows上运行的...

m0_37357063的博客 19万+
上一篇: 37 张图详解 DHCP :给你 IP 地址的隐形人
下一篇: 36 张图详解 DNS :网络世界的导航
网络技术平台
博客等级 码龄6年 1298粉丝 86原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值