Ping 命令小探

Ping命令是对两个TCP/IP系统连通性进行测试的基本工具,目的是为了测试目标主机是否可达。它利用ICMP回显请求(8,0)和回显应答(0,0)报文,而不用经过传输层(TCP/UDP)。Ping服务器一般在内核中实现ICMP的功能


利用它可以检查网络是否能够连通,可以很好地帮助我们分析判定网络故障。该命令只有在安装了 TCP/IP 协议后才可以使用。Ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点。Ping命令成功只是说明当前主机与目的主机之间存在一条连通的路径。如果不成功,则考虑:网线是否连通、网卡设置是否正确、IP地址是否可用等。


ping qzher.com

 

TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间,直接的说,此值影响客户第2次访问您站点的速度, 每经过一个结点就会减少一定的TTL,直到TTL=0,这IP包就当作超时丢弃 .


对网络上的主机进行ping操作的时候,本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。


默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。当我们不知道目的主机的操作系统的时候我们可以根据TTL来猜测,但是不一定100%准确,如果目的主机是windows,但是经过了比如75个路由器,那么TTL的返回值是128-75=53,那么你可能认为这个目的主机是Linux系统,但是一般不会经过那么多的路由器,所以通过TTL来判断目的主机的操作系统还是有一定的依据的。
(事实上这个数据是可以伪造的,通过修改注册表就可可以把windows系统被ping时返回的TTL变得和*nix系统一样)



qzher.com采用的是*NIX主机, 它的的TTL值为255,目前我们得到的TTL值为 241,则我们经过了 255-241 = 14 个路由器 (数量相对有点多)



再来ping一个不存在的域名:

ping qzher.com.com

IP地址显示在美国,可能这些域名没有销售出去,都是美国的域名解析服务器在负责吧?


C:\Users\yulin>ping qzher.com.com

正在 Ping qzher.com.com [52.33.196.199] 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。

52.33.196.199 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失)


出现完全丢失可能:

(1) 对方已关机,或者网络上根本没有这个地址
(2)对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息
(3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)
(4)错误设置IP地址



ping 127.0.0.1
如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作




 

ping 的使用:

C:\Users\yulin>ping /?

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

            [-r count] [-s count] [[-j host-list] | [-k host-list]]

            [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]

            [-4] [-6] target_name

选项:

    -t             Ping 指定的主机,直到停止。

                   若要查看统计信息并继续操作,请键入 Ctrl+Break;

                   若要停止,请键入 Ctrl+C。

    -a             将地址解析为主机名。

    -n count       要发送的回显请求数。

    -l size        发送缓冲区大小。

    -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。

    -i TTL         生存时间。

    -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,

                   对 IP 标头中的服务类型字段没有任何

                   影响)。

    -r count       记录计数跃点的路由(仅适用于 IPv4)。

    -s count       计数跃点的时间戳(仅适用于 IPv4)。

    -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。

    -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。

    -w timeout     等待每次回复的超时时间(毫秒)。

    -R             同样使用路由标头测试反向路由(仅适用于 IPv6)。

                   根据 RFC 5095,已弃用此路由标头。

                   如果使用此标头,某些系统可能丢弃

                   回显请求。

    -S srcaddr     要使用的源地址。

    -c compartment 路由隔离舱标识符。

    -p             Ping Hyper-V 网络虚拟化提供程序地址。

    -4             强制使用 IPv4。

    -6             强制使用 IPv6。

发表评论

电子邮件地址不会被公开。 必填项已用*标注