- 目的:为了更有效地转发IP数据报和提高交付成功的机会。
- ICMP允许主机或路由器“报告差错情况”和“提供有关异常情况的报告”。
- ICMP报文装在IP数据报中,是IP层的协议。

- 报文中的“代码”字段是为了进一步区分某种类型中的几种不同情况。
- “检验和”用来检验整个ICMP报文。
- ICMP报文有两种:差错报告报文、询问报文。
差错报告报文类型
- 终点不可达:当主机或路由器不能交付数据报时,向源点发送此类报文。
- 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送此类报文,使源点知道应当放慢数据报的发送速率。
- 时间超过:当路由器收到TTL为0的数据报时,丢弃它的同时向源点发送此类报文。当终点在规定时间内不能收到一个数据报的全部报片时,就将已收到的报片丢弃,并向源点发送此类报文。
- 参数问题:当路由器或主机收到的数据报的首部中有的字段不正确时,丢弃该数据报,并向源点发送此类报文。
- 改变路由:路由器通过此类报文告知主机下次将数据报发送给其他路由器(更好的路由)。
ICMP询问报文类型
- 回送请求和回答:主机或路由器向特定的目的主机发出询问,收到报文的主机给源主机或路由器发送“应答报文”。可以测试目的主机是否可达和了解其有关状态。
- 时间戳请求和回答:请某个主机或路由器回答当前日期和时刻,回答报文中含有“从1900年1月1日到当前时刻经历的秒数”。
ICMP应用举例
ping:用来测试两个主机之间的连通性。
traceroute(tracert):用来探测一个分组从源点到终点的路径。
网友评论