一.作用与功能
- 作用:ICMP一种面向无连接的协议,用于传输出错报告控制信息。
主要用来检测网络通信故障和实现链路追踪,包括以下:
- 主机探测
- 路由维护
- 路由选择
- 流量控制
- 其功能主要有:
(1)确认IP包是否成功到达目标地址
(2)通知在发送过程中IP包被丢弃的原因
二.报文类型
-
ICMP报文是在IP数据报内部被传输的
-
ICMP的报文格式
报文类型:不同类型又报文中的类型字段和代码字段来共同决定(因为对ICMP差错报文有时需要作特殊处理)
eg:在对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文
报文始终包含IP的首部和产生ICMP差错报文的IP数据报的前个字节。
从类型值来看ICMP报文分为两大类,第一类是取值1~127的差错报文、第二类是取值128以上的信息报文 -
下列情况都不会导致产生ICMP差错报文:
(1)ICMP差错报文[但是, ICMP查询报文可能会产生ICMP差错报文]
(2)目的地址是广播地址或多播地址(D类地址)的IP数据报
(3)作为链路层广播的数据报
(4)不是IP分片的第一片
(5)源地址不是单个主机的数据报。也就是说,源地址不饿能为零地址、环路地址、广播地址或者多播地址
三.工作原理
ICMP提供一致易懂的出错报告信息。
发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。
发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。
但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。