详解什么是ICMP发布时间:2020/7/29 17:33:25 阅读次数:

  

ICMP是网络控制消息协议,主要用于传递查询报文与差错报文。ARP是地址解析协议,它的作用是在以太网环境下,通过3层的IP地址来找寻2层的MAC地址,得到一张ARP缓存表。转发数据的时候根据ARP缓存表来进行传输。

更多信息

ICMP:

Internet操作是由路由器严密监控的。当路由器端处理报文时如有意外发生,事件通过ICMP报告给发送端。ICMP也用来测试Internet。ICMP信息封装在IP报文中,最重要的一部分如下表所列:

 ICMP.jpg

DESTINATION UNREACHABLE消息用于当路由器无法找到目标地址或当设置了DF位的报文无法递送,因为路径上存在“小报文”网络。


TIME EXCEEDED消息是由于报文TTL(Time to live)计数器到达0时。该事件是报文在回环,或计数器值设置过低的迹象。对于这一错误信息的聪明的应用是traceroute工具,traceroute发现从主机到目的IP地址路径上的路由器。它向目的地发送IP包,第一次的时候,将TTL设置为1,引发第一个路由器的Time Exceeded错误。这样,第一个路由器回复ICMP包,从而让出发主机知道途径的第一个路由器的信息。随后TTL被设置为2、3、4,...,直到到达目的主机。这样,沿途的每个路由器都会向出发主机发送ICMP包来汇报错误。traceroute将ICMP包的信息打印在屏幕上,就是接力路径的信息了。这并不是TIME EXCEEDED信息的本意,但却是非常有用的故障排查工具。


PARAMETER PROBLEM信息表示报文头字段发现了非法值。这一问题表明发送主机的IP软件或可能是途经的路由器发生了bug。


SOURCE QUENCH信息以前用来节制发送太多报文的主机。当主机接收到该信息,它预计将放缓发送报文。现在很少使用,因为当拥塞发生时,这类报文会起到火上浇油的作用,而且也不清楚如何做出回应。Internet中的拥塞控制现在大部分在传输层完成,使用报文丢失作为拥塞信号。


REDIRECT信息用于路由器发现报文被错误路由的时候。路由器用该信息告知发送主机更新合适的路径。


主机发送ECHO和ECHO REPLY信息以查看目前的目的地址是否可到达或是否alive。接收到ECHO信息之后,目的地址预计会发回一条ECHO REPLY信息。这些信息用在ping工具中来查看主机是否up以及是否挂在网上。


TIMESTAMP REQUEST和TIME REPLY信息是类似的,除了信息的到达时间以及回复的离开时间是记录在回复中的。这一工具可用于衡量网络性能。


ROUTER ADVERTISEMENT和ROUTER SOLICITATION信息用于主机发现附近的路由器。主机需要从至少一个路由器学习IP地址来发送报文。