ICMP

发布时间 2023-08-11 17:34:04作者: 楚颖i

ICMP


ICMP(Internet Control Message Protocol)协议:互联网控制报文协议。

ICMP是网络探测与回馈机制的一种


ICMP格式

ICMP报文由ICMP头和数据(无用数据)组成

ICMP主要类型字段:

8:ping请求

0:ping应答

3:目标主机不可达

11、TTL超时

当主机ping别人时,会发送ICMP报文,报文里的ICMP类型为8,代码为0(代码不同,情况不同,参考:什么是ICMP?ICMP如何工作? - 华为 (huawei.com)

ping通时,别人又会返回一个类型0,代码0的ICMP报文来回馈。


作用

  • 网络探测

例:ping


  • 路由跟踪

命令:

windows:tracert IP地址

linux或路由:traceroute IP地址

原理

pc0构造一个TTL值为1的数据包发送给目标IP(20.1.1.1),当该数据包到达第一个路由器时,TTL值减一,刚好为0,路由器丢弃该数据包,并给pc0发送一个类型为11,代码为0的ICMP报文,pc0就可知道第一个经过的路由器IP地址。

随后TTL值取2、3、4...不断加一,获取中间路上经过的路由器IP地址(获得的都是离pc近的路由器的端口)。


第一个就是序号

第二个是往返时间:表示了从源到目标的往返延迟

第三个是源到第一个路由器的往返时间:表示源主机与第一个路由器之间的延迟

第四个是到最后一个路由器的往返时间:表示了探测数据包从目标主机返回源主机的延迟。

*号原因:防火墙,超时,ICMP 协议被禁用


  • 错误反馈

上面也有用到,就是路由器或目标设备返回的ICMP报文,里面的类型是报错的那些,一个反馈机制。