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报文,里面的类型是报错的那些,一个反馈机制。