目录
ICMP
辅助IP的ICMP
架构IP网络时需要特别注意两点:确认网络是否正常工作,以及遇到异常时 进行问题诊断。
例如,一个刚刚搭建好的网络,需要验证该网络的设置是否正确。此外, 为了确保网络能够按照预期正常工作,一旦遇到什么问题需要立即制止问题的蔓 延。为了减轻网络管理员的负担,这些都是必不可少的功能。
ICMP正是提供这类功能的一种协议。
ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程 当中IP包被废弃的具体原因,改善网络设置等。有了这些功能以后,就可以获得 网络是否正常、设置是否有误以及设备有何异常等信息,从而便于进行网络上的 问题诊断。
在IP通信中如果某个IP包因为某种原因未能达到目标地址,那么这个具体 的原因将由ICMP负责通知。主机A向主机B发送了数据包,由于某 种原因,途中的路由器2未能发现主机B的存在,这时,路由器2就会向主机A 发送一个ICMP包,说明发往主机B的包未能成功。
ICMP的这种通知消息会使用IP进行发送。因此,从路由器2返回的ICMP 包会按照往常的路由控制先经过路由器1再转发给主机A。收到该ICMP包的主机 A则分解ICMP的首部和数据域以后得知具体发生问题的原因。
ICMP的消息大致可以分为两类:一类是通知出错原因的错误消息,另一类是 用于诊断的查询消息。
主要的ICMP消息
ICMP目标不可达消息(类型3)
IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标 不可达(Destination Unreachable Message)的ICMP消息,并在这个消息中显示不 可达的具体原因。
在实际通信当中经常会遇到的错误代码是1表示主机不可达{ Host Unreachable), 它是指路由表中没有该主机的信息,或者该主机没有连接到网络的意思。 此外,错误代码4 { Fragmentation Needed and Don't Fragment was Set)则用于MTU探索。由此,根据ICMP不可达的具体消息,发送端主机 也就可以了解此次发送不可达的具体原因。
ICMP重定向消息(类型5)
如果路由器发现发送端主机使用了次优的路径发送数据,那么它会返回一个 ICMP重定向(ICMP Redirect Message)的消息给这个主机。在这个消息中包含了 最合适的路由信息和源数据。这主要发生在路由器持有更好的路由信息的情况下。 路由器会通过这样的ICMP消息给发送端主机一个更合适的发送路由。
不过,多数情况下由于这种重定向消息成为引发问题的原因,所以往往不进 行这种设置。