1.ICMP报文的组成
其中目标mac地址是通过第一章的ARP协议获取的
2.ICMP协议的主要功能
ICMP协议主要有两大类功能,一是询问报告,比如询问目标主机是否可以连通,并做出回答,比如我们常用的ping命令;二是差错报告,如果网关发现目标网络不可达或目标主机发现访问的UDP端口不可达则需要把错误报告给原主机,traceroute工具就是实现这个功能的。
1.询问报告(ping命令)
执行完这六个步骤控制台就会打印一条结果信息,然后程序会重复执行以上六个步骤,每执行一次打印一条结果信息。
如果目标主机不存在或目标主机存在但回复报文丢了,那么原主机就会在等待一段时间后超时,打印出超时信息表示目标主机无法连通,即ping不通。
2.差错报告(traceroute/tracert工具)
ping命令只能确定两个主机是否连通,但是如果想知道从原主机到目标主机中间经历了哪几个网关的转发以及这些网关的IP地址都是多少就要使用到traceroute工具(Linux可使用traceroute工具,Windows可使用tracert工具)所以可以用该工具来了解一个复杂网络的拓扑结构
原理图:
TTL字段的意思是此帧数据可经过的最大节点数,每经过一个节点,TTL的值都会减1,直到为0,TTL值为0时,便会向原主机发送一个差错报告的ICMP报文,利用这个原理,我们就可以知道从原主机到目标主机中间经历了哪几个网关的转发以及这些网关的IP地址都是多少。
3.ICMP重定向原理