通过向被测试的目的主机地址发送ICMP 报文并接收应答报文,可以测试当前主机到目的主机的网络连接状态。ping 命令只有在安装了TCP/IP 协议以后才可以使用。
语法格式:
主要参数说明:
●-t: 不停地ping 目标主机,直到按下【Ctrl +C】 组合键。
●-a: 解析计算机NetBIOS 名。
●-n count: 发送count 指定的Echo 数据包数。在默认情况下,一般都只发送4 个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助。
●-l length: 定义echo 数据包大小为length。默认情况下,Windows 操作系统的ping 命令发送的数据包大小为32 字节,-l 参数可以定义发送的数据包的大小,但有大小限制,即最大只能发送65500 字节。
●-f: 默认发送的数据包都允许路由器将其分段后发送给对方,加上此参数后,路由器就不能分段处理了。
●-i ttl: 指定发送的数据包的“生存时间”字段的值为ttl。
●-v tos: 将“服务类型”字段设置为tos 指定的值。
●-r count: 在“记录路由”字段中记录传出和返回数据包的路由。一般情况下,发送的数据包是通过一个个路由器到达对方的,但到底是经过了哪些路由呢? 通过此参数就可以设定想探测经过的路由的个数,记录经过的路由器的IP 地址。不过,该参数限制count 值最大为9,即只能跟踪到9 个路由,如果想探测更多,则应通过其他命令实现。
【实例分析】
(1)解析www.sohu.com 的NetBIOS 名称,如图4-2-1 所示。
图4-2-1 “ping-a www.sohu.com”的运行界面
由图4-2-1 可知,域名为www.sohu.com 的计算机NetBIOS 名称为pgcertut01.a.sohu.com。
(2)发送1 个数据包,最多记录2 个路由,如图4-2-2 所示。
由图4-2-2 可知,发送到目的IP 的数据包仅经过一个路由器,IP 地址为192.168.0.1。
5.ping 命令的工作原理及实例
ping 命令的实质工作内容,就是向目标主机发送类型值为“8”的ICMP 报文,即“请求回显”ICMP 报文,目标主机收到后,会向源主机发送类型值为“0”的ICMP 报文,即“回显应答”ICMP 报文。若ping 命令正常收到了此报文,则认为ping 通目标主机了;反之,则认为未ping 通。
图4-2-2 “ping-n 1-r 2 192.168.0.1”的运行界面
图4-2-3 所示为运行“ping www.bnu.edu.cn”时的抓包数据实例,可以看到,运行ping 命令时给的参数不是IP 地址而是域名,同时本机的DNS 缓存中没有该域名的解析信息,那么本机在发送“请求”ICMP 数据包之前,会先给本地域名服务器发送DNS “请求”数据包,查询域名www.bnu.edu.cn 的IP 地址,收到回应的DNS 数据包,提取出IP 地址后,再发送4 个“请求”ICMP 数据包,随即收到目标主机返回的4 个“应答”ICMP 数据包。
图4-2-3 “ping www.bnu.edu.cn”的抓包数据
在本例中,源主机的IP 地址是202.112.88.96,本地域名服务器的IP 地址是202.112.80.106,查询到域名www.bnu.edu.cn 的IP 地址是60.247.18.7,因此 “请求”ICMP 数据包和“应答”数据包在202.112.88.96 和60.247.18.7 之间来回传送。
6.ping 命令和IP 数据包的关系(www.xing528.com)
当ping 命令使用不同的参数时,会发送不同的数据包,有的影响IP 数据包的大小,有的影响IP 数据包首部的相关字段的设置。下面分析- f 参数和- r 参数对IP 首部的影响。
(1)当ping 命令使用-f 参数时,通过抓包,会看到IP 首部的“标识”字段的中间位被置1 了,这表明发送的该IP 数据包不允许经过的路由器对它进行分段。
图4-2-4 所示为运行“ping-f www.bnu.edu.cn”时的抓包数据实例,分析第1 帧数据,可以看到IP 首部的“标识”字段值为“2”,即二进制数“010”,可见“标识”字段的中间位被置1。
(2)当ping 命令使用-r 参数时,会在发送的IP 数据包首部增加RR 选项,即要求经过的路由器记录路由,当收到回显应答数据包时,就可以查阅经过的路由器IP 地址。
图4-2-5 所示为IP 数据包首部的RR 选项的格式。
图4-2-4 “ping-f www.bnu.edu.cn”的抓包数据
图4-2-5 IP 数据包首部的RR 选项的格式
主要参数说明:
●code: 指明IP 选项的类型。当它的值为7 时,就是RR 选项。
●len: RR 选项总字节长度,由ping 命令[-r] 参数后面的数值决定。例如,命令“ping-r 2”表示记录最多2 条路由记录,那么,选项总长度为2 ×4 +3,即11 字节。
●ptr: 指针字段。它是一个基于1 的指针,指向存放下一个IP 地址的位置。它的最小值为4,指向存放第一个IP 地址的位置。随着每个IP 地址存入清单,ptr 的值分别为8、12、16、…、36。当记录9 个IP 地址后,ptr 的值为40,表示清单已满。
【实例分析】
运行“ping-r 2 www.sohu.com”命令后的抓包数据如图4-2-6 所示。分析第1 帧数据,这是源主机发给目标主机的ICMP 请求数据包。
由图4-2-6 的“数据内容”子窗口可知,IP 首部的“首部长度”字段值为“8”,表明该帧数据的IP 首部长度是32 字节,除去基本的20 字节外,还携带12 字节的选项部分。
在实例中,IP 首部的选项部分数据内容为“07 0b 04 00 00 00 00 00 00 00 00 00”。由第1 字节数据“07”可知,这是一个RR 选项数据;第2 字节“0b”表明该选项部分的长度是11 字节;第3 字节“04”表明ptr 指针指向选项的第4 字节,等待将路由器的IP地址存入第4 字节开始的位置;其后的两组4 字节的“00”表明留好了空位,等待存入新的IP 地址;最后1 字节的“00”是系统自动添加的,使选项长度为4 的倍数,没有实际意义。
图4-2-6 IP 首部中带RR 选项的ICMP 请求数据实例
图4-2-7 所示的“数据内容”子窗口中显示的是目标主机返回的ICMP 应答数据包的数据内容。与图4-2-6 中的ICMP 请求数据包比较,不同之处有以下两点:
(1)IP 首部选项部分的第3 字节的值为“oc”,表明ptr 指针指向选项的第12 字节,等待将路由器的IP 地址存入第12 字节开始的位置,同时表明前面的位置已经存入了IP 地址,被占用了。
(2)RR 选项的数据部分不再是两组4 字节的 “00”,而是两个IP 地址,分别是“192.168.203.10”和“172.18.251.38”,表明这两个IP 地址是源主机发往目标主机的数据包要经过的第1、2 跳路由器的IP 地址。
思考:
为什么RR 选项部分最多只能记录9 个IP 地址?
IP 数据报首部的“首部长度”字段的值指出了整个数据报首部的长度,用首部占4 字节的数目来表示,即“首部长度”字段的值是“5”时,表示IP 数据报首部长度是20 字节。因为“首部长度”字段占4 位,所能表示的最大数是15,所以数据报首部长度的最大值是60 字节,其中20 字节是固定的基本IP 数据报首部,余下40 字节是RR 选项部分的最大容量,即RR 选项最多占40 字节。
40 字节的RR 选项的前3 字节为固定字段,余下的37 字节最多能存放9 个IP 地址,所以RR 选项部分最多只能记录9 个IP 地址,即9 条路由信息。
图4-2-7 IP 首部中带RR 选项的ICMP 应答数据实例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。