第1章 系统内置的网络测试工具ping
1.ping命令简介
ping命令在网络管理工作中是极为常用的命令,在Windows、Linux或网络设备的IOS系统中都集成了这一命令,以下以常见的Windows系统为例,详细介绍该命令。
ping命令作为一个常用的网络测试命令,包含了许多参数,其完整格式为
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [- j -host-list] | [-k host-list] [-w timeout] destination-list
从这个命令格式中可以看出ping命令的复杂程度。ping命令的参数如下所述。
-t:当使用这个参数ping一个主机时,系统就不停地运行ping这个命令,直到按下“Ctrl”+“C”键(终止命令)为止。
-a:解析主机的NETBIOS主机名。如果要获取所ping的目的计算机名称,就需要使用这个参数,结果在运行ping命令后的第1行显示出来。
-n count:定义用于测试所发出的ICMP测试包的个数,其默认值为4。通过这个命令可以自定义发送的个数,有助于日常网络排错。例如,测试发送10个数据包的返回的平均延时、最快延时和最慢延时时,就可以通过执行带有这个参数的ping命令获知。
-l length:定义所发送缓冲区的数据包的大小。在默认的情况下,Windows的ping命令发送的数据包大小为32B,也可以自定义,但有一个限制,就是最大只能发送65500B,超过这个限制时,对方就很有可能因接收的数据包太大而无法响应,所以微软公司为了解决这一安全漏洞,在默认状态下将ping命令的数据包大小限制在32B。
-f:在数据包中发送“不要分段”标志。通常发送的数据包都会通过路由分段再发送给对方,加上此参数后,路由就不会再进行分段处理。在大多数设备中,最大传输单元MTU默认为1500,如果网络两端的最大传输单元不一致,就会影响网络的传输性能。因此,这个参数是检测MTU和MSS(TCP数据包每次能够传输的最大数据分段)的主要手段。
【说明】 MSS是TCP协议中的一个概念,如果这个值设置不当,可能会造成网络服务异常,如个别网站访问速度非常慢。
-i ttl:指定TTL值在对方系统中停留的时间。此参数同样是帮助网络管理员检查网络运行情况的,在每经过一个路由设备时,TTL值将减少1,常见的Windows 2000以上操作系统其默认值为128。
【说明】 TTL是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。有很多原因可以造成数据包在一定时间内不能被传递到目的地。其解决方法就是在一段时间后丢弃这个数据包,然后给发送者一个报文,由发送者决定是否需要重发。TTL的初值通常是系统的默认值,是数据包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间后就把该数据包丢弃。由于每个路由器都至少要把TTL域减1,TTL通常表示数据包在被丢弃前最多能经过的路由器个数。当计数到0时,路由器决定丢弃该数据包,并发送一个ICMP报文给最初的发送者。
-v tos:将“服务类型”字段设置为“tos”指定的值。
-r count:在“记录路由”字段中记录传出和返回数据包的路由。一般情况下,发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定目的探测经过的路由的个数。
-s count:指定“count”设定的跃点数的时间戳,此参数和-r类似,只是这个参数不记录数据包返回所经过的路由,而且最多也只能记录4个。
-j host-list:利用“host-list”指定的计算机列表路由数据包。连续计算机可以被中间网关分隔IP允许的最大数量为9。
-k host-list:利用“host-list”指定的计算机列表路由数据包。连续计算机不能被中间网关分隔IP允许的最大数量为9。
-w timeout:指定超时间隔,单位为ms。
destination-list:要测试的主机名或IP地址。