1.关于ICMP

ICMP:Internet control massage protocol 因特网控制协议

icmp echo reply的checksum为0x0000 icmp type echo_网络层

 

用于测试网络可达性;

使用ping、tracert等命令调用;

就像打招呼一样; 

icmp echo reply的checksum为0x0000 icmp type echo_数据链路层_02

 

2.ICMP的格式

ICMP数据是封装在网络层ip包头下面,但并不代表它是传输层协议;

ICMP也是网络层协议,和IP协议是两个网络层协议的嵌套关系;

icmp echo reply的checksum为0x0000 icmp type echo_封装_03

 

icmp echo reply的checksum为0x0000 icmp type echo_封装_04

 

ICMP的类型:echo request 回响请求

                      echo reply 回响应答

 

Type 类型和 Code 代码的组合:不同的组合表达不同的意思

icmp echo reply的checksum为0x0000 icmp type echo_封装_05

 

3.ICMP命令

 

命令

备注

Ping

测试网络连通性

tracert

显示经过的路径

 

Ping 参数:

icmp echo reply的checksum为0x0000 icmp type echo_封装_06

 

tracert参数:

icmp echo reply的checksum为0x0000 icmp type echo_封装_07

 

4.Ping 常见问题

 

成功

对方成功回响

超时

对方主机不在线、屏蔽 (不在线-有对方MAC地址缓存,对方可能关机,平并-对方开启了策略“如防火墙”)

传输失败

物理链路/网卡问题,网关未指定

无法访问

未获取到MAC地址,导致无法进行ICMP封装

1)成功响应:

icmp echo reply的checksum为0x0000 icmp type echo_封装_08

 

2)请求超时

    1】招呼打出去,对方屏蔽了

        目标开了防火墙,或者其它防ping策略;

        防火墙可以防ping,但无法防arp;

        就像我在线,但是你给我打招呼我不理你;

    2】招呼打出去,对方不在线了

        也就是,已经拿到了对方mac,但是对方已经不在线了

    3】不在同一广播域的请求

        ping一个地址时,并且数据链路层以太网协议的目标地址是网关地址时,如果规定时间内得不到回应;

        就像把信交给快递员(网关),但没收到回信;

icmp echo reply的checksum为0x0000 icmp type echo_网络层_09

 

3)传输失败

网关丢失;

马上得到失败响应;

就像要从房间出去,没找到门,直接放弃;

icmp echo reply的checksum为0x0000 icmp type echo_封装_10

 

4)无法访问

ping一个不存在的设备时;

icmp是网络层协议,封装在数据链路层以太网协议中;

要包装成以太网协议需要目标mac地址;

获取目标mac要先发送arp请求;

arp请求失败时,数据链路层由于没有mac地址,icmp协议无法完成封装;

报无法访问目标主机错误;

icmp echo reply的checksum为0x0000 icmp type echo_数据链路层_11