前言
Internet控制报文协议ICMP(Internet Cotrol Message Protocol)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。使用基于ICMP的应用时,需要对ICMP的工作原理非常熟悉。
一、ICMP的作用
- 用途
- 网关或者目标机器利用ICMP与源通讯
- 当出现问题时,提供反馈信息用于报告错误
- 特点
- 其控制能力并不用于保证传输的可靠性
- 本身也不是可靠传输
- 并不用来反映ICMP报文的传输情况
ping命令
在Windows命令行ping一下,实际上调用的就是ICMP协议。
二、ICMP数据包
格式
类型和代码来标识不同的内容
ICMP重定向
ping命令无法访问解析
ping命令实际上就是发送一段字符串给目的主机,并要求其回显。
- 无法访问目标网,ICMP数据包向下封装时,MAC地址为网关MAC地址,在网关当中没有配目标IP的路由,回应来自于网关。
- 无法访问主机,同一网段的IP,直接用ARP请求MAC地址,无法获得,从而无法封装数据包,数据包发不出去,回应来自于自己。