Wireshark抓包分析IP协议

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《计算机网络零基础快速入门》

试验目的:抓包分析IP协议的传输过程和数据分片

操作系统:Windows 10 企业版

抓包工具:Wireshark 3.6.3

第一步:ping 目标主机

1)Wireshark开启抓包后, cmd 中执行命令:ping 54.222.162.186 -n 1 -l 3200

翻译:向目标主机发送一次数据包,包大小是 3200字节。

第二步:分析传输过程

1)重点看我标记的这6个包:

前三个是请求包,后三个是响应包;

数据帧的最大传输限制(MTU)是1500字节,我们 ping 的数据包是 3200 字节,会被IP协议分割成三个数据包(1500 + 1500 + 200),刚好对应前面三个请求包;

三个请求包最后以一个ICMP协议数据包结尾,用来传输控制信息。

响应包的作用也是如此。接下来,我们分析一下,IP协议是怎么分割数据的。

第三步:分析数据分片

1)先看第一个数据包(IPv4),重点看我圈中的字段:

Flags字段第二个值是 More Fragments,表示这个数据报后边有多余的数据分片;

Fragment Offset字段的值是0,表示这个数据分片从第0个字节开始保存数据。

2)再看第二个数据包(IPv4),重点看我圈中的字段:

Flags字段第二个值仍是More Fragments,表示这个数据报后边也有多余的数据分片;

Fragment Offset字段的值是1480,表示这个数据分片从第1480个字节开始保存数据。

从这里也可以反推出,第一个字段保存了 0~1480个字节。之所以只保存了1480个字段,是因为首部占了20个字节,首部+数据刚好够1500个字节,达到数据帧的上限。

3)再看第三个数据包(ICMP),重点看我圈中的字段:

Flags字段第二个值为空,表示这个数据报没有多余的数据分片;

Fragment Offset字段的值是2960,表示这个数据分片从第2960个字节开始保存数据。

从这里可以反推出,第二个字段保存了第 1480 ~ 2960个字节。

最下面的 IPv4 Fragments 字段记录了数据报的分片信息:第一、二个数据包保存了1480个字节,第三个数据包保存了248个字节。

接收方可以根据这些分片信息,重组被分割的数据。

第四步:分析生存时间

TTL是生存时间值,每经过一个路由器时,生存时间值减1,减少为0时,则会丢弃,目的是防止数据包在网络中循环转发,以节约网络资源。

1)观察ICMP请求和响应包,重点看我圈中的地方:

ICMP请求包的TTL是128,而返回的ICMP响应包的TTL则变成了48,这意味着中间经历了80个路由器,ping 命令的返回结果也可以观察到这一点:

相关推荐
leafff123几秒前
AI研究:轻量模型和专用模型在算力优化上的差异对游戏制作的效率和质量有何影响?
人工智能·游戏
吃鱼不卡次21 分钟前
RT-DETR解码模块(Decoder)
人工智能·深度学习·cross attention·rt-detr·匈牙利匹配·self attention·对比去噪训练
zhan11451421 分钟前
解析平面卷积/pytorch的nn.Conv2d的计算步骤,in_channels与out_channels如何计算而来
人工智能·pytorch·深度学习·cnn·卷积神经网络
Juchecar22 分钟前
假设人类能用光波沟通……
人工智能
K姐研究社22 分钟前
AipexBase怎么用?AI 原生BaaS平台一句话做后端开发
人工智能
IT_陈寒24 分钟前
SpringBoot 3.2新特性实战:这5个隐藏功能让开发效率翻倍🚀
前端·人工智能·后端
IT_陈寒31 分钟前
Vue3性能优化实战:这5个技巧让我的应用加载速度提升70% 🚀
前端·人工智能·后端
努力学习的小廉33 分钟前
深入了解linux网络—— 守护进程
linux·运维·网络
Mr.Winter`40 分钟前
自动驾驶运动规划 | 基于自行车模型的运动学模型和横向动力学模型详细推导图解
人工智能·机器人·自动驾驶·ros
唯道行1 小时前
计算机图形学·6 OpenGL编程3 谢尔宾斯基垫与三维编程
人工智能·算法·计算机视觉·计算机图形学·三维·谢尔宾斯基垫