ICMP报文的种类
ICMP差错报告报文共有四种:
1.终点不可达
2.源点抑制
3.时间超过
4.参数问题
5.改变路由(重定向)
下面是不发送ICMP差错报告报文的情况:
常用的ICMP询问报文有两种:
回送请求和回答:
是由主机或路由器向一个特定的目的主机发出的询问.这种询问报文用来测试目的站是否可达以及了解其有关状态
时间戳请求和回答:
ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前一共有多少秒.时间戳请求与回答可用于时钟同步和时间测量
ICMP的应用举例
下图是从南京的一台PC到新浪网的邮件服务器的连通性的测试结果.PC一连发出四个ICMP回送请求报文。可以看出第三个测试分组丢失了。
另一个非常有用的应用是traceroute,用来跟踪一个分组从源点到终点的路径.
Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报,第一个数据报P1生存时间设为1,当P1的到达第一个路由器R1时,先收下它,然后TTL值减1。并向源主机发送一个ICMP时间超过差错报告报文.
以此类推,当到最后一个数据报刚刚达到目的主机时,TTL是1.主机不转发数据,也不把TTL值减1,但由于IP数据报中封装的是无法交付的UDP用户数据报,因此目的主机要向源主机发送ICMP终点不可达差错宝购报文.