为了提高ip数据包交付成功的几率,使用ICMP让主机来报告差错和异常情况。
ICMP数据报是IP层的数据
IP数据报 = 首部 + ICMP数据报
ICMP是IP层协议。
- ICMP差错报告报文
- ICMP询问报文
差错报告报文
发送的情况
- 终点不可达
- 源点抑制:当拥塞时候向源点发抑制报文
- 时间超过:TTL(生存时间)为零的数据包,除了丢弃数据包还应该向源点发送时间超过报文;或者在预定的时间内不能收到数据报的所有数据报片时,也是丢弃并发送超时报文
- 参数问题:首部中有值不对
- 改变路由:(重定向)路由器把改变路由报文发给主机,让主机知道下次数据报发给另一个路由器。
不发的情况
- 对ICMP差错报告报文不发ICMP差错报告报文
- 对第一个分片的数据包片的后续数据报片都不发送ICMP差错报告报文
- 有组播地址的不发
- 有特殊地址的不发(127.xxx.xxx.xxx;0.0.0.0)