【网络层】ICMP 因特网控制协议


ICMP 含义以及作用

ICMP:Internet control massage protocol 因特网控制协议
Internet控制报文协议ICMP是网络层的一个重要协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,
它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。


ICMP协议解析

使用ping、tracert等命令调用ICMP协议
在这里插入图片描述
ICMP的类型:echo request 回响请求; echo reply 回响应答
在电脑命令行使用ping命令:ping 域名/IP
在这里插入图片描述
默认会ping 4下,正常会有4个回复。现在使用Wireshark抓包看下:
在这里插入图片描述
如上图抓包情况来看,是有4组(request/reply)。现在对比下request包(图一)和reply包(图二):
在这里插入图片描述
在这里插入图片描述
在ICMP中有两个很重要的字段Type和Code
在这里插入图片描述
Type表示ICMP消息类型。
Code表示同一消息类型中的不同信息。(在例子中 request :Type/Code为8/0;reply :Type/Code为0/0)
Data是一串随机序列。

Type/Code组合有以下几种:

类型编码描述
00Echo Reply
30网络不可达
31主机不可达
32协议不可达
33端口不可达
50重定向
80Echo Request

结合ICMP协议和ping常见问题

第一、无法访问 【 未获取到MAC地址,导致无法进行ICMP封装】
在这里插入图片描述
环境:192.168.80.123设备不在线

在链路中数据是以帧的形式传输的,封装ICMP时,由于在MAC表中没有找到这个IP对应的MAC地址,因此会先发出ARP请求获取这个IP的MAC地址。抓包数据可以看出发出ARP请求后没有设备进行回应,因此显示信息中只能来自自己的回复:无法访问目标主机。
这种情况在ARP阶段就失败了,无法封装并发出ICMP数据

第二、超时 【 对方主机不在线、屏蔽 (不在线-有对方MAC地址缓存,对方可能关机,平并-对方开启了策略“如防火墙”)】
在这里插入图片描述
环境:ping 其他网段的ip地址(对方主机不在线)
这种情况和上面的设备不在线,区别在于这个设备之前已经通过ARP获取到MAC地址(在MAC地址缓存表中存在MAC地址),封装ICMP将数据发出去,但迟迟没有得到回应。这例子中1.2.3.4为检测到是其他网段的,所以在封装ICMP的时候目标MAC为本地设备网关的MAC地址。

环境:对端设备开防火墙或者禁用ping操作
现象:ping 对端设备ip地址失败,但是对端ping 本地设备是通的(屏蔽)
这种情况也是会显示“请求超时”。本地设备同样也是会发出ICMP数据,由于对端设备开启了防火墙或者禁用ping操作,因此不会有任何的回应发出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bazinga bingo

您的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值