ICMP传递差错报文以及其他需要注意的信息,通常被IP层或更高层协议(TCP或UDP使用)
I C M P报文分查询报文,差错报文,ICMP差错报文不会在发送一个新的ICMP报文
Ping程序
ping命令,几秒钟过后会在第1行打印出IP地址,DNS就是利用这段时间来确定主机名所对应的IP地址
第1个往返时间值要比其他的大。这是由于目的端的硬件地址不在 A R P高速缓存
ping程序是对两个TCP/IP系统连通性进行测试的基本工具。它只利用ICMP回显请求和回显应答报文,而不用经过传输层( TCP/UDP);Ping服务器一般在内核中实现ICMP的功能。
Traceroute程序
比ping更深入探索TCP/IP协议的方便可用的工具
看到IP数据报从一台主机传到另一台主机所经过的路由。 该程序还可以让我们使用IP源路由选项
其工作过程如下:
第一次发送ICMP报文,TTL=1【如果ttl=1 ,0 则返回ICMP超时错误】,源主机获取路由1的ip,
第二次发送ICMP报文,TTL=2,到达路由1后ttl减1,到达路由2 ;获取路由2ip,返回ICMP超时错误给源
以此类推,每次ttl递增直到追溯到目的主机,此时不会返回ICMP错误,因为已经到达目的主机
traceroute host ttl最大值为30,40字节的数据报
20,10,10 表示发送三份数据报并接收ICMP报的往返时间
一个TCP/IP网络中,traceroute程序是不可缺少的工具。其操作很简单:开始时发送一个TTL字段为1的UDP数据报,然后将TTL字段每次加 1,以确定路径中的每个路由器。 每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文2,而最终目的主机则产生一个ICMP端口不可达的报文。