ICMP,Internet Control Message Protocol,网际控制报文协议主要用来检测网络连通性和实现链路追踪,最典型的应用就是PING和traceroute。

    PING:

通过发送回送请求报文(echo request)和回送回答报文(echo reply)来检测源主机到目的主机的链路是否有问题,目的地是否可达,以及通信的延迟情况。

    traceroute:

 通过发送探测报文来获取链路地址信息。第一个探测报文TTL为1,到达第一个路由器时,TTL减1为0所以丢掉这个探测包,同时向源主机发回ICMP时间超过报文,这时源主机就获得了第一个路由器的IP地址;接着源主机发送第二个探测报文,TTL增1为2,到达第一个路由器TTL减1为1并转发探测包到第二个路由器,这时TTL减1为0,丢掉这个探测包并向源主机发回ICMP时间超过报文,源主机就获得了第二个路由器的IP地址;以此类推,直到探测报文到达traceroute的目的地,这时源主机就获得了到目的地的每一跳路由的IP地址。