计算机网络 实验2:基于tcpdump与Wireshark的ICMP协议深度解析

发布时间:2026/7/15 23:39:30

计算机网络 实验2:基于tcpdump与Wireshark的ICMP协议深度解析
1. ICMP协议基础与实验环境搭建ICMPInternet Control Message Protocol是TCP/IP协议族中不可或缺的组成部分它就像网络世界的信使专门负责传递各种控制消息。当你在命令行敲下ping baidu.com时屏幕上跳动的响应时间就是ICMP协议的功劳。这个看似简单的协议实际上承载着网络连通性测试、路由跟踪、错误报告等重要功能。要深入理解ICMP协议我们需要搭建一个合适的实验环境。我推荐使用以下组合抓包工具tcpdump命令行抓包 Wireshark图形化分析测试命令ping基本连通性测试 traceroute路由路径追踪操作系统Linux推荐Ubuntu/CentOS或Windows需安装Wireshark在Linux环境下安装这些工具非常简单# Ubuntu/Debian sudo apt install tcpdump wireshark traceroute # CentOS/RHEL sudo yum install tcpdump wireshark traceroute安装完成后建议将当前用户加入wireshark组避免每次都需要sudo权限sudo usermod -aG wireshark $USER newgrp wireshark2. tcpdump抓包实战技巧tcpdump是网络分析师的瑞士军刀它的强大之处在于灵活的过滤表达式。在开始抓取ICMP包之前我们先掌握几个核心参数-i指定网卡接口如eth0、wlan0-w将抓包结果保存到文件-v增加输出详细程度-c限制抓包数量-n不解析主机名提升性能基础抓包命令# 抓取所有ICMP包 sudo tcpdump -i eth0 icmp # 抓取特定主机的ICMP包如与8.8.8.8的通信 sudo tcpdump -i eth0 icmp and host 8.8.8.8高级过滤技巧# 抓取ICMP请求包type8 sudo tcpdump -i eth0 icmp[0] 8 # 抓取ICMP响应包type0 sudo tcpdump -i eth0 icmp[0] 0 # 组合过滤抓取来自192.168.1.1的TTL超时报文type11 sudo tcpdump -i eth0 icmp[0] 11 and src 192.168.1.1在实际操作中我习惯将抓包结果保存为pcap文件方便后续分析# 后台抓包并保存CtrlC停止 sudo tcpdump -i eth0 -w icmp.pcap icmp ping -c 5 baidu.com3. Wireshark深度解析ICMP报文将tcpdump抓取的pcap文件导入Wireshark后我们可以进行更细致的分析。在过滤栏输入icmp就能看到所有ICMP报文。ICMP报文结构详解Type1字节报文类型如8请求0响应11TTL超时Code1字节子类型如网络不可达、主机不可达等Checksum2字节校验和Identifier2字节进程标识符用于匹配请求/响应Sequence2字节序列号用于排序典型ICMP报文分析Echo Request/ReplyPing包请求包Type8, Code0响应包Type0, Code0在Wireshark中可以右键Ping包 → Follow → ICMP Stream查看完整对话TTL Exceeded路由追踪Type11, Code0包含原始IP头8字节数据RFC规定通过观察TTL递增的超时报文可以绘制网络路径Destination UnreachableType3, Code有多种情况Code0网络不可达Code1主机不可达Code3端口不可达常用于UDPWireshark实用技巧使用icmp.type8过滤所有Ping请求右键报文 → Decode As...可以强制解析特定协议统计 → 协议分级 查看ICMP流量占比分析 → 专家信息 查看异常报文4. 结合ping和traceroute的协议分析Ping实验分析启动抓包sudo tcpdump -i eth0 -w ping.pcap icmp执行Pingping -c 3 example.com分析抓包结果观察请求/响应的Identifier和Sequence匹配计算RTT往返时间响应时间 - 请求时间检查TTL变化响应包的TTL通常为64/128/255Traceroute原理剖析 traceroute利用了IP协议的TTL机制首先发送TTL1的探测包ICMP/UDP第一跳路由器将TTL减为0返回ICMP超时报文逐步增加TTL直到到达目标主机目标主机返回ICMP端口不可达UDP方式或Echo ReplyICMP方式实验步骤# Linux下使用ICMP方式traceroute sudo tcpdump -i eth0 -w trace.pcap icmp[0]11 or icmp[0]0 traceroute -I baidu.com在Wireshark中分析时重点关注每个TTL层级对应的路由器IP超时报文中的原始IP头信息最终目标的响应类型5. 常见问题排查与协议细节ICMP报文封装细节ICMP作为IP的上层协议协议号为1整个ICMP报文作为IP数据部分传输头部校验和计算范围是整个ICMP报文典型问题排查案例Ping不通但网络正常检查防火墙规则sudo iptables -L验证ICMP是否被过滤ping -c 1 127.0.0.1使用tcpdump确认请求是否发出Traceroute卡在某一跳可能是防火墙丢弃了ICMP超时报文尝试改用UDP方式的traceroute使用-n参数避免DNS解析超时ICMP重定向问题类型5报文指示更优路由现代网络通常禁用ICMP重定向可通过sysctl -w net.ipv4.conf.all.accept_redirects0关闭协议交互时序首次Ping时通常先有ARP请求局域网然后才是ICMP请求/响应Traceroute会看到TTL从1开始递增网络拥塞时可能触发源抑制报文Type46. 高级分析与实际应用网络延迟分析使用Ping的时序信息计算抖动Jitter通过TTL变化推测网络设备类型分析DUP!标记重复报文诊断网络问题安全相关应用ICMP隧道检测异常大的Ping包网络扫描识别密集的ICMP请求防火墙策略验证特定类型ICMP是否放行自定义ICMP实验 通过Python的scapy库可以构造自定义ICMP包from scapy.all import * # 构造ICMP请求包 pkt IP(dst8.8.8.8)/ICMP(type8, code0)/Hello send(pkt)企业网络中的ICMP监控系统使用ICMP进行设备存活检测网络设备通过ICMP报告错误状态负载均衡器利用ICMP进行健康检查在实际网络运维中ICMP协议的分析能力可以帮助我们快速定位网络断点诊断路由异常评估网络质量发现潜在安全威胁

相关新闻

Obsidian五种同步策略详解:怎么根据设备角色设置仅发送、仅接收和双向同步

Obsidian五种同步策略详解:怎么根据设备角色设置仅发送、仅接收和双向同步

2026/7/15 23:39:30

Obsidian 多端同步时,很多用户会遇到一个共性问题:所有设备都在双向同步,每次打开都要等同步完成,手机上的误操作也可能影响主库。Nutstore Sync 同步插件已上线的同步策略功能,就是为解决这个问题设计的。它让你可以给…

《全域数学·工程应用大典》113–200讲完整总目录

《全域数学·工程应用大典》113–200讲完整总目录

2026/7/15 23:39:30

作者: 乖乖数学《全域数学工程应用大典》113–200讲完整总目录 全书总序: 93–100讲低维基础工程;101–200讲《全域统一场高阶拓展工程篇》 前置已有内容回顾: 1–100讲:三极本源数理、C60超导实验、真空能、反重力原型…

基于脉冲计数与自动量程切换的高精度数字电容表设计

基于脉冲计数与自动量程切换的高精度数字电容表设计

2026/7/15 23:39:30

1. 为什么你需要一台高精度数字电容表 如果你经常和电子电路打交道,一定会遇到需要测量电容的情况。普通数字万用表的电容档虽然方便,但测量范围通常局限在1pF到20μF之间,精度也往往差强人意。我在维修一块老式音响功放板时就深有体会——当…

开源新纪元:深度解析小米 MiMo Code 的技术架构与实战应用

开源新纪元:深度解析小米 MiMo Code 的技术架构与实战应用

2026/7/16 0:59:33

开源新纪元:深度解析小米 MiMo Code 的技术架构与实战应用 在当今的大模型领域,参数量的竞争似乎已不再是唯一的焦点,社区正在将目光转向模型的推理能力与实际落地效果。近期,一个名为 MiMo Code 的项目悄然登上各大技术社区的热榜…

PD端内部的POE电源变压器

PD端内部的POE电源变压器

2026/7/16 0:59:33

PoE电源变压器是PoE受电设备(PD)内部DC-DC电路里的隔离功率变压器:把网线送来的37~57V直流隔离降压成3.3V、5V、12V等低压,同时提供IEEE 802.3强制要求的1500Vrms电气隔离。它只转换能量、不传数据,和网络变…

OpenAI将核心引擎装进对手Claude Code,开启AI编程工作流新竞争模式

OpenAI将核心引擎装进对手Claude Code,开启AI编程工作流新竞争模式

2026/7/16 0:59:33

OpenAI与Claude Code联手:打造双模型编程新工作流今年3月30日,OpenAI做出惊人之举,为竞争对手Anthropic旗下的编程工具Claude Code发布官方插件。开发者安装后,只需一条命令,Claude就能负责管理任务、拆分需求、审核输…

GitHub、Vercel 和 Firestore 技术栈:提升开发速度、消除运维烦恼的“免运维”之选

GitHub、Vercel 和 Firestore 技术栈:提升开发速度、消除运维烦恼的“免运维”之选

2026/7/16 0:59:33

为速度而生的“免运维”技术栈如今,应用开发者可从众多架构解决方案中做选择,云计算革命中涌现的强大折中技术已成熟,这里探讨整合 GitHub、Vercel 和 Firestore 三项技术。它们结合能满足多应用场景需求,缩短开发与部署距离。若追…

免费开源 WhatCable 应用:苹果硅基 Mac 识别 USB - C 线缆规格,还能解锁专业功能!

免费开源 WhatCable 应用:苹果硅基 Mac 识别 USB - C 线缆规格,还能解锁专业功能!

2026/7/16 0:59:33

ZDNET 要点总结USB - C 线缆外观看似相同,规格却可能差异巨大。WhatCable 能在苹果硅基 Mac 上免费读取线缆规格。经测试,有几根线缆实际规格与标注不符。USB - C 的一大问题是,不管是包装盒里仅用于充电的免费线缆,还是花 159 美…

每日 AI 研究简报 · 2026-07-15

每日 AI 研究简报 · 2026-07-15

2026/7/16 0:49:32

(本文借助 AI 大模型及工具辅助整理) 一句话总结:OpenAI 首款硬件设备曝光为无屏可移动智能音箱,苹果智能在中国获批整合阿里百度模型,AI 电力成本开始显现——数据中心将导致美国 13 州电价上涨 63 亿美元。 &#x…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/15 0:26:43

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

2026/7/16 0:09:31

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

跨境电商多语言商品图翻译方案实现

跨境电商多语言商品图翻译方案实现

2026/7/16 0:09:31

一、问题引入对于做跨境电商的卖家来说,多语言商品图的制作一直是令人头疼的环节。当你准备在亚马逊、Shopee、Lazada等多个平台同步上架新品时,首先遇到的就是图片翻译问题。以一位做家居用品的卖家为例,他需要将200张商品图片中的英文文案全…

Windows系统文件d3dx9_36.dll丢失找不到问题解决

Windows系统文件d3dx9_36.dll丢失找不到问题解决

2026/7/16 0:09:31

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…