【计算机网络】ICMP报文实验
一:实验目的
1:掌握ICMP报文的各种类型及其代码。
2:掌握ICMP报文的格式。
3:深入理解TTL的含义(Time to Live,生存时间)。
二:实验仪器设备及软件
硬件:RCMS-C服务器、网线、Windows 2019/2003操作系统的计算机等。
软件:记事本、WireShark、Chrome浏览器等。
三:实验方案
【实验的网络拓扑图】
1:请求、应答类型需要在ping通情况下获得,因此网络拓扑结构采用实验4.3的拓扑。
2:不可达类型需要发送方和接收方不在同一网内。

3:连接超时类型需要在ping通情况下获得,但是将TTL限制在1,因此网络拓扑结构采用实验4.3的拓扑。
四:实验步骤
1:设计拓扑并实现抓包分析4种icmp报文,每种报文按下表填写抓到的前4个报文信息。
设计拓扑方法已经在第三部分阐述。

Request类型下的前4个报文信息截图如下。




Request类型下的前4个报文信息填表如下。
| 报文号 | 源IP | 目的IP | 报文格式 | |||||
| 类型 | 代码 | 标识 | 序列号 | |||||
| BE | LE | BE | LE | |||||
| 1 | 10.206.30.2 | 10.206.10.2 | 8 | 0 | 1 | 256 | 65 | 16640 |
| 3 | 10.206.30.2 | 10.206.10.2 | 8 | 0 | 1 | 256 | 66 | 16896 |
| 7 | 10.206.30.2 | 10.206.10.2 | 8 | 0 | 1 | 256 | 67 | 17152 |
| 9 | 10.206.30.2 | 10.206.10.2 | 8 | 0 | 1 | 256 | 68 | 17408 |
Reply类型下的前4个报文信息截图如下。




Reply类型下的前4个报文信息填表如下。
| 报文号 | 源IP | 目的IP | 报文格式 | |||||
| 类型 | 代码 | 标识 | 序列号 | |||||
| BE | LE | BE | LE | |||||
| 2 | 10.206.10.2 | 10.206.30.2 | 0 | 0 | 1 | 256 | 65 | 16640 |
| 4 | 10.206.10.2 | 10.206.30.2 | 0 | 0 | 1 | 256 | 66 | 16896 |
| 8 | 10.206.10.2 | 10.206.30.2 | 0 | 0 | 1 | 256 | 67 | 17152 |
| 10 | 10.206.10.2 | 10.206.30.2 | 0 | 0 | 1 | 256 | 68 | 17408 |

Unreachable类型下的前4个报文信息截图如下。




Unreachable类型下的前4个报文信息填表如下。其中,代码为0标识是network unreachable。
| 报文号 | 源IP | 目的IP | 报文格式 | |||||
| 类型 | 代码 | 标识 | 序列号 | |||||
| BE | LE | BE | LE | |||||
| 2 | 10.206.30.1 | 10.206.30.2 | 3 | 0 | 无 | 无 | 无 | 无 |
| 4 | 10.206.30.1 | 10.206.30.2 | 3 | 0 | 无 | 无 | 无 | 无 |
| 6 | 10.206.30.1 | 10.206.30.2 | 3 | 0 | 无 | 无 | 无 | 无 |
| 8 | 10.206.30.1 | 10.206.30.2 | 3 | 0 | 无 | 无 | 无 | 无 |

Time out类型下的前4个报文信息截图如下。




Time out类型下的前4个报文信息填表如下。
| 报文号 | 源IP | 目的IP | 报文格式 | |||||
| 类型 | 代码 | 标识 | 序列号 | |||||
| BE | LE | BE | LE | |||||
| 2 | 10.206.30.1 | 10.206.30.2 | 11 | 0 | 无 | 无 | 无 | 无 |
| 4 | 10.206.30.1 | 10.206.30.2 | 11 | 0 | 无 | 无 | 无 | 无 |
| 6 | 10.206.30.1 | 10.206.30.2 | 11 | 0 | 无 | 无 | 无 | 无 |
| 9 | 10.206.30.1 | 10.206.30.2 | 11 | 0 | 无 | 无 | 无 | 无 |
2:执行【tracert 某某网址】,抓图、抓包、分析。
执行的命令为:tracert www.baidu.com。完整的捕获报文,如下图所示。


本地cmd运行结果,如下图所示。

各类ICMP报文,汇总如下表。
| ICMP报文 | 类型码 | 代码 |
| 请求 | 8 | 0 |
| 应答 | 0 | 0 |
| 超时 | 11 | 0 |
| 不可达 | 3 | 3 |
Request:

Exceeded:

Unreachable:

Reply:

五:实验结果及分析
1:第二个实验截获了哪几种ICMP报文?其类型码和代码各为多少?
截获了4种ICMP报文,分别是request、reply、unreachable、exceeded。
分别对应的类型码是8、0、3、11。
分别对应的类型码是0、0、3、0。
2:在第二个实验截获的报文中,哪些是超时报告报文?请截图显示并指出源地址分别是多少?
Info处显示Time-to-live exceeded的报文,均是超时报告报文。
截图如下,源地址是192.168.0.254,目的地址是192.168.0.108。
![]()
3:查看第二个实验ICMP echo分组,是否这个分组和前面使用ping的ICMP echo一样?若不一样,请分析使用tracert命令后收到的分组里TTL值的变化规律。
Echo的字段是一样的,字段内的数值不一样。
Ping的ICMP echo分组如下图所示。

Tracert的ICMP echo分组如下图所示。

使用tracert命令后收到的分组里TTL值,逐次加1。
4:对照ICMP协议,分析一下ICMP超时报告分组比ICMP echo分组多包含的信息有哪些?
IP数据报的首部以及TCP或UDP协议的端口号。
具体来说,超时报告有一个外层的internet control message protocol,内部包含基本的echo分组信息、internet protocol version 4、一个内层的internet control message protocol。
六:实验总结及体会
1:常用的查询报文和差错报文的type和code如下。其中黄色部分为查询报文,绿色部分为差错报文。



2:IP协议的缺点:IP协议没有差错报文或差错纠正机制,且缺少一种为主机和管理查询的基址。
3:ICMP报文格式如下。

相关文章:
【计算机网络】ICMP报文实验
一:实验目的 1:掌握ICMP报文的各种类型及其代码。 2:掌握ICMP报文的格式。 3:深入理解TTL的含义(Time to Live,生存时间)。 二:实验仪器设备及软件 硬件:RCMS-C服务器…...
transformers进行学习率调整lr_scheduler(warmup)
一、get_scheduler实现warmup 1、warmup基本思想 Warmup(预热)是深度学习训练中的一种技巧,旨在逐步增加学习率以稳定训练过程,特别是在训练的早期阶段。它主要用于防止在训练初期因学习率过大导致的模型参数剧烈波动或不稳定。…...
智能优化算法之灰狼优化算法(GWO)
智能优化算法是一类基于自然界中生物、物理或社会现象的优化技术。这些算法通过模拟自然界中的一些智能行为,如遗传学、蚁群觅食、粒子群体运动等,来解决复杂的优化问题。智能优化算法广泛应用于各种工程和科学领域,因其具有全局搜索能力、鲁…...
昇思25天学习打卡营第17天|计算机视觉
昇思25天学习打卡营第17天 文章目录 昇思25天学习打卡营第17天ShuffleNet图像分类ShuffleNet网络介绍模型架构Pointwise Group ConvolutionChannel ShuffleShuffleNet模块构建ShuffleNet网络 模型训练和评估训练集准备与加载模型训练模型评估模型预测 打卡记录 ShuffleNet图像分…...
Windows图形界面(GUI)-MFC-C/C++ - 键鼠操作
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 MFC鼠标 派发流程 鼠标消息(客户区) 鼠标消息(非客户) 坐标处理 客户区 非客户 坐标转换 示例代码 MFC键盘 击键消息 虚拟键代码 键状态 MFC鼠标 派发流程 消息捕获&#…...
Angular 18.2.0 的新功能增强和创新
一.Angular 增强功能 Angular 是一个以支持开发强大的 Web 应用程序而闻名的平台,最近发布了 18.2.0 版本。此更新带来了许多新功能和改进,进一步增强了其功能和开发人员体验。在本文中,我们将深入探讨 Angular 18.2.0 为开发人员社区提供的…...
matlab 小数取余 rem 和 mod有 bug
目录 前言Matlab取余函数1 mod 函数1.1 命令行输入1.2 命令行输出 2 rem 函数2.1 命令行输入2.2 命令行输出 分析原因注意 前言 在 Matlab 代码中mod(0.11, 0.1) < 0.01 判断为真,mod(1.11, 0.1) < 0.01判断为假,导致出现意料外的结果。 结果发现…...
Avalonia中的数据模板
文章目录 1. 介绍和概述什么是数据模板:数据模板的用途:2. 定义数据模板在XAML中定义数据模板:在代码中定义数据模板:3. 使用数据模板在控件中使用数据模板:数据模板选择器:定义数据模板选择器:在XAML中使用数据模板选择器:4. 复杂数据模板使用嵌套数据模板:使用模板绑…...
Sqlmap中文使用手册 - Techniques模块参数使用
目录 1. Techniques模块的帮助文档2. 各个参数的介绍2.1 --techniqueTECH2.2 --time-secTIMESEC2.3 --union-colsUCOLS2.4 --union-charUCHAR2.5 --union-fromUFROM2.6 --dns-domainDNS2.7 --second-urlSEC2.8 --second-reqSEC 1. Techniques模块的帮助文档 Techniques:These o…...
科普文:kubernets原理
kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 kubernetes ,了解我们谈论 kubernetes 都是在谈论什么。 一、背…...
GO-学习-02-常量
常量是不变的 const package main import "fmt"func main() {//常量定义时必须赋值const pi 3.1415926const e 2.718//一次声明多个常量const(a 1b 2c "ihan")const(n1 100n2n3)//n2,n3也是100 同时声明多个常量时,如果省略了值则表示和…...
Vue系列面试题
大家好,我是有用就扩散,有用就点赞。 1.Vue中组件间有哪些通信方式? 父子组件通信: (1)props | $emit (接收父组件数据 | 传数据给父组件) (2)ref | $refs&a…...
等级保护 总结2
网络安全等级保护解决方案的主打产品: HiSec Insight安全态势感知系统、 FireHunter6000沙箱、 SecoManager安全控制器、 HiSecEngine USG系列防火墙和HiSecEngine AntiDDoS防御系统。 华为HiSec Insight安全态势感知系统是基于商用大数据平台FusionInsight的A…...
关于Redis(热点数据缓存,分布式锁,缓存安全(穿透,击穿,雪崩));
热点数据缓存: 为了把一些经常访问的数据,放入缓存中以减少对数据库的访问频率。从而减少数据库的压力,提高程序的性能。【内存中存储】成为缓存; 缓存适合存放的数据: 查询频率高且修改频率低 数据安全性低 作为缓存的组件: redis组件 memory组件 e…...
【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十七章 字符设备和杂项设备总结回顾
i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...
C#初级——枚举
枚举 枚举是一组命名整型常量。 enum 枚举名字 { 常量1, 常量2, …… 常量n }; 枚举的常量是由 , 分隔的列表。并且,在这个整型常量列表中,通常默认第一位枚举符号的值为0,此后的枚举符号的值都比前一位大1。 在将枚举赋值给 int 类型的…...
Linux 动静态库
一、动静态库 1、库的理解 库其实是给我们提供方法的实现,如上面的对于printf函数的实现就是在库中实现的,而这个库也就是c标准库,本质也是文件,也有对应的路径 2、区别 静态库是指编译链接时,把库文件的代码全部加入…...
微信小游戏之 三消(一)
首先设定一下 单个 方块 cell 类: 类定义和属性 init 方法 用于初始化方块,接收游戏实例、数据、宽度、道具类型和位置。 onWarning 方法 设置警告精灵的帧,并播放闪烁动作,用于显示方块的警告状态。 grow 方法 根据传入的方向…...
软件测试---Linux
Linux命令使用:为了将来工作中与服务器设备进行交互而准备的技能(远程连接/命令的使用)数据库的使用:MySQL,除了查询动作需要重点掌握以外,其他操作了解即可什么是虚拟机 通过虚拟化技术,在电脑…...
数据库之数据表基本操作
目录 一、创建数据表 1.创建表的语法形式 2.使用SQL语句设置约束条件 1.设置主键约束 2.设置自增约束 3.设置非空约束 4.设置唯一性约束 5.设置无符号约束 6.设置默认约束 7.设置外键约束 8.设置表的存储引擎 二、查看表结构 1.查看表基本结构 2.查看建表语句 三…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
