首页 理论教育ICMP应用举例计算机网络技术

ICMP应用举例计算机网络技术

【摘要】:分组网间探测PING是ICMP 协议的一个重要应用。它使用ICMP的回送请求与回送应答报文实现了测试两台主机之间连通性的功能。由图6.12 可知,PC 机使用PING 命令后,会一连发出4 个ICMP 回送请求报文。由于往返的ICMP 报文有时间戳,因此很容易得出往返时间。图6.12ping 命令的使用另一个非常有用的应用是路由跟踪,在Windows 操作系统中即tracert 命令。R2 收到时TTL 的值为“1”,再将TTL 减“1”,变成“0”后将其丢弃,并向源主机发送一个ICMP 超时差错报告报文。

分组网间探测PING(Packet InterNet Groper)是ICMP 协议的一个重要应用。它使用ICMP的回送请求与回送应答报文实现了测试两台主机之间连通性的功能。PING 是应用层直接使用网络层ICMP 的一个例子,没有通过传输层的TCP 和UDP。

PING 命令主要用于检查路由能否到达。因为PING 命令的包长很小,所以在网上传递的速度非常快,能够快速地检测目的站点是否可到达。一般在访问某个站点前,可先运行此命令确定站点的可达性。其具体格式为:

ping[ -t][ -a][ -n count][……]目的结点

其中,目的结点可以用IP 地址的方式表示,也可以用域名的方式表示。中括号中的各个参数是可选项,具有一定的意义。例如,[ -t]表示向目的结点连续发送测试数据包直到用户中断;[ -a]表示将地址解析为计算机名;[ -n count]表示发送由count 指定数量的回送请求应答报文(默认为4)。

Windows 操作系统用户可以在接入互联网后进入MS DOS(“开始”→“运行”→输入命令“cmd”),看见屏幕的提示符后,便可使用PING 命令进行网络测试。图6.12 给出了从一台PC机到新浪邮件服务器的连通性测试结果。由图6.12 可知,PC 机使用PING 命令后,会一连发出4 个ICMP 回送请求报文。报文发出后,若能够到达目的站,那么PC 就会收到来自目的站点的回送应答报文。由于往返的ICMP 报文有时间戳,因此很容易得出往返时间。

图6.12 ping 命令的使用

另一个非常有用的应用是路由跟踪,在Windows 操作系统中即tracert 命令。此tracert 命令用来跟踪一个分组从源结点到目的结点所经过的路径,显示到达目的结点所经过的路由器列表;如果分组不能到达目的结点,则显示成功转发分组的最后一个路由器。

Tracert 的工作原理如下:

Tracert 从源主机向目的主机发送一连串的IP 数据报,数据报中封装的是无法到达的UDP用户数据报。第一个数据报P1 的生存时间TTL 设置为“1”,当P1 到达路径上的第一个路由器R1 时,路由器R1 收下P1 并将TTL 的值减去“1”。由于P1 的TTL 为“0”,则R1 将其丢弃,并向源主机发送一个ICMP 超时差错报告报文。(www.chuimin.cn)

源主机接着发送第二个数据报P2,并将TTL 的值设置为“2”。P2 先到达路由器R1,R1收下P2 后将TTL 的值减去“1”再转发给路由器R2。R2 收到时TTL 的值为“1”,再将TTL 减“1”,变成“0”后将其丢弃,并向源主机发送一个ICMP 超时差错报告报文。这样一直继续下去,当最后一个数据报到达主机时,数据报的TTL 为“1”,主机不转发数据报,也不将TTL 减“1”。但因IP 数据报封装的是无法交付的UDP 用户数据报,因此,目的主机要向源主机发送ICMP 终点不可达差错报告报文,这样源主机便达到了自己的目的。

Tracert 命令的常见用法如下:

tracert IP address [ -d]

参数[ -d]即不解析所经过路由器的名称,只快速显示路由器即可。

如图6.13所示为从一台PC 向新浪网邮件服务器发出的tracert 命令后所获得的结果。

图6.13 用tracert 命令获得目的主机的路由信息

图中每一行有三个时间出现,是因为对应于每个TTL 值,源主机都要发送三次同样的IP数据报。