为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)。
ICMP的应用举例
ICMP的一个重要应用就是分组网间探测PING(Packet InterNet Groper),用来测试两个主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的一个例子 。他没有通过运输层的TCP或UDP。 另一个非常有用的应用是traceroute(这是UNIX操作系统的名字),它用来跟踪一个分组从源点到终点的路径。在Windows操作系统中这个命令是tracert。 Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP|用户数据报。第一个数据报的P1的生存时间TTL设置为1。当P1到达路径的第一个路由器R1时,路由器R1先收下它,接着把TTL的值减1.由于TTL等于0了,R1就把P1丢弃了,并向源主机发送一个ICMP时间超过差错报告报文。
图中每一行有三个时间出现,是因为对应于每一个TTL值,源主机要发送三次同样的IP数据报。