Wireshark - ICMP 报文分析
1. 测试机器,源 IP 地址为 10.21.28.110,目的 IP 地址为 10.6.0.24。

2. 使用 "ip.addr == 10.6.0.24 and icmp" 过滤规则定位数据封包。

如上图所示,Windows 中 ping 命令默认执行 4 次 ping 程序,所以 Wireshark 会抓到 8 个 ICMP 报文。
3. 观察第一个编号为 2066 的 Echo (ping) request 数据帧。

如上图所示,可以看到这个数据帧的结构是:
| Ethernet II |
| IP |
| ICMP |
4. 观察 Ethernet II 数据帧的内容。

Ethernet II 数据帧的格式如下:
| DA | SA | Type | Data | FCS |
DA: 该字段有 6 个字节,表示目的 MAC 地址。如上图所示,目的 MAC 地址为 30:37:a6:f6:5a:4f。
SA: 该字段有 6 个字节,表示源 MAC 地址。如上图所示,源 MAC 地址为 54:ee:75:25:33:fd。
Type: 该字段有 2 个字节,表示数据包的类型。如上图所示,类型的值为 0x0800,表示 Internet Protocol(IP)。
Data: 数据载荷。
FCS: 该字段有 4 个字节,表示帧校验序列,用于校验帧是否出错。该字段内容已被网络设备滤去,抓包软件已无法获取。
5. 观察 IP 数据包的内容。

如上图所示,可以看到 IP 数据包的信息:
Version: 4,表示 IPv4。
Header Length: 5, 表示 5 个以 32 bit 为单位的 word,即 20 bytes。
Time to live: 64, 生存时间。
Protocol: 1,表示 ICMP。
Source: 10.21.28.110,源 IP 地址。
Destination: 10.6.0.24,目的 IP 地址。
6. 观察 ICMP 数据包内容。

ICMP 数据包的格式如下:
| Type | Code | Checksum |
| Identifier | Seq Num | |
| Data | ||
Type: 该字段有 1 个字节,表示特定类型的 ICMP 报文。
Code: 该字段有 1 个字节,进一步细分 ICMP 的类型。如上图所示,Type 的值为 8,Code 的值为 0,表示回显请求。
Checksum: 该字段有 2 个字节,表示校验和。
Identifier: 该字段有 2 个字节,用于匹配 Request/Reply 的标识符。
Seq Num: 该字段有 2 个字节,用于匹配 Request/Reply 的序列号。
Data: 数据载荷。
Wireshark - ICMP 报文分析的更多相关文章
- ICMP报文分析
一.概述: 1. ICMP同意主机或路由报告差错情况和提供有关异常情况.ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议.通常ICMP报文被IP层或更高层协议(TCP或UDP) ...
- UNIX网络编程——ICMP报文分析:端口不可达
ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口).在我们的例子中,跟在IP首部后面的前 ...
- 使用WireShark简单分析ICMP报文
ICMP协议介绍 1.ICMP是"Internet Control Message Protocol"(Internet控制消息协议)的缩写. 它是TCP/IP协议族的一个子协议. ...
- tcp、udp、ip、icmp报文格式分析
TCP .UDP .IP. ICMP协议报文格式分析 Tcp报文格式: Wireshark抓包如图: 源端口/目的端口(16bit): 在TCP报文中包涵了源端口/目的端口,源端口标识了发送进程,目的 ...
- Wireshark安装使用及报文分析(图文详解)
Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使用pcapnetwork l ...
- Wireshark安装使用及报文分析
先看链接!!! Wireshark使用教程:https://jingyan.baidu.com/article/93f9803fe902f7e0e56f5553.html Wireshark过滤规则筛 ...
- Wireshark抓包分析HTTPS与HTTP报文的差异
一.什么是HTTPS: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换 ...
- Wireshark抓包分析/TCP/Http/Https及代理IP的识别
前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...
- 一站式学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)
介绍 掌握显示过滤器对于网络分析者来说是一项必备的技能.这是一项大海捞针的技巧.学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间. 与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wire ...
随机推荐
- Part 45 to 47 Talking about Enums in C#
Part 45 C# Tutorial Why Enums Enums are strongly typed constants. If a program uses set of integ ...
- nodemanager启动失败
yarn启动报错: 2016-11-16 16:12:44,304 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping N ...
- ASP.NET 使用 System.Web.Script.Serialization 解析 JSON (转)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- sql 计算两时间或日期 的相差的 年、 月、 日、时、分、秒,年、月、日分别的提取
--年.月.日.时.分.秒 datediff(yy,date1,date2) datediff(m,date1,date2) datediff(d,date1,date2) datediff(hh,d ...
- iOS数据持久化(三)
#pragma mark - Core Data stack /** * @synthesize 关联成员变量和属性 */ @synthesize managedObjectContext = _ma ...
- java非静态变量初始化
java费静态变量的初始化分为两种情况,一种是局部变量,一种是类的域. 对于类的域,java在类初始化时,会为变量赋一个初始值.对于基本数据类型,java会将初始值设置为二进制0,具体为将boolea ...
- Codevs 3231 小吃
时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description 这里简直是吃货的天堂,小吃太多了.数不胜数. 假设岛上有N种小吃,每种体积Vi, ...
- .Net三维控件
AnyCAD .Net三维建模和可视化控件为.Net 4.0开发者提供简单易用的三维建模.三维可视化和文件交换的API. 30天试用版下载: 1. 三维建模 三维建模有以下功能: 三维基本体,如点. ...
- IOS绘图
#import "ViewController.h" #import "DrawView.h" @interface ViewController () @pr ...
- 【风马一族_Android】Android 前端内容1
Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...