Wireshark协议分析之ICMP

本文详细解析了ICMP在TCP/IP协议中的作用,包括ICMP头的组成部分、不同类型和代码的应用,如目标不可达和端口不可达。重点介绍了Echo请求与响应机制,以及如何利用ping进行网络检测和路由跟踪。最后展示了TTL设置对数据包传输路径的影响。
摘要由CSDN通过智能技术生成

Wireshark协议分析之ICMP

一:ICMP头

ICMP是TCP/IP协议簇中的一个功能协议,负责提供在TCP/IP网络上的设备、服务以及路由器可用性的消息

大多数网络检修技巧和工具都是基于常用的ICMP消息类型

类型(Type):ICMP消息基于RFC规范的类型或分类

代码(Code):ICMP消息基于RFC规范的子类型

校验和(Checksum):用来保证ICMP头和数据在抵达目的地时的完整性

可变域(Variable):依赖于 Type 和 Code

二:ICMP类型和消息

ICMP数据部分的结构取决于由Type和Code域中的值所定义的用途

ICMP类型域可以作为数据包的分类,Code域作为它的子类。Type域的值为3 意味着“目标不可达”。但只有这个信息可能不足以发现问题,当数据包在Code域中指明值为3,也就是“端口不可达”时,可以知道是通信端口的问题

三:Echo的请求与响应

ICMP因为ping工具而广为人知,ping用来检测一个设备的可连接性

ping命令每次向一个设备发送一个数据包,并等待回复,ping命令只包含两步,请求与响应

echo和ping经常混用:ping是一个工具的名字,ping工具用来发送ICMP的echo请求数据包

可以看出上图是192.168.100.138给192.168.100.1发出的echo请求,这是一个简单的ICMP数据包,包含了很少的数据。

Sequence number用来匹配请求和响应

在ICMP数据包可变域还有一串随机文本字符 

第二个数据包是echo响应数据包,对应上一个请求包,Sequence number一致,当这个数据包被192.168.100.138成功接收到之后,ping就会报告成功

还可以使用ping的选项来增加它的数据填充,这样在检测不同类型的网络时,就可以强制将数据包分片,在检测具有较小分片大小的网络时会用到。

四:路由跟踪

路由跟踪功能用来识别一个设备都另一个设备的通路。在一个简单的网络中,这个通路可能只经过一个路由器,甚至一个不经过。在复杂的网络中可能要经过数十个路由器才能到达目的地。确定数据包从一个目的地到另一个目的地的实际路径,对于通信检修非常重要。

通过使用ICMP,路由跟踪可以画出数据包的路径

上图中的TTL设置为1,这个数据包再遇到第一个路由器会被丢弃掉。因为目标地址为4.2.2.1 ,故源设备和目的设备之间至少会有一个路由器,所以这个数据包不会到达目的地。

上图是第一个数据包的响应的数据包,类型11 代码为0 指数据包TTL在传输过程中超时,因此目的不可达

这个ICMP响应数据包有时候被叫做双头包,因为这个ICMP的结尾部分还包含了原先echo请求的IP头和ICMP数据副本,在网络检修是十分有用 

上图中的TTL设置为2, 一直持续TTL长到9得到了响应

上图的src来自 4.2.2.1 ,type为0 code 为0  ,根据每一次的src即可得到传输路径

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值