ping

本页使用了标题手工转换,涉及首字符小写
本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻

ping(呯)是一种计算机网络工具,用来测试数据包能否透过IP协议到达特定主机。ping的运作原理是向目标主机传出一个ICMP的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延,Round-trip delay time)。

在1983年12月,Mike Muuss编写了首个这样的程序,用于在IP网络出现问题时方便探查其根源。因为这个程序的运作原理与潜水艇的主动声纳相似,他便用声纳的声音来为程序取名。David L. Mills曾提出另一个取名:Packet Internet Grouper/Gopher(后者指地鼠)。

网络管理员之间也常将ping用作动词,如“ping一下计算机XXX,看它是否开着。”

例子

Linux系统下的示例

具有iputils的Linux系统内的ping:

root@localhost:~# ping www.wikipedia.org
PING www.wikipedia.org (198.35.26.96): 56(84) data bytes
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=1 ttl=53 time=198.6 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=2 ttl=53 time=199.2 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=3 ttl=53 time=198.5 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=4 ttl=53 time=199.2 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=5 ttl=53 time=198.5 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=6 ttl=53 time=199.2 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=7 ttl=53 time=198.6 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=8 ttl=53 time=199.3 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=9 ttl=53 time=198.7 ms
64 bytes from text-lb.ulsfo.wikimedia.org (198.35.26.96): seq=10 ttl=53 time=198.4 ms
^C
--- www.wikipedia.org ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9021ms
rtt min/avg/max/mdev = 198.402/198.866/199.334/1.536 ms

有时在ping的返回信息里面会显示“DUP!”,表明存在环路,例如:

64 bytes from 10.0.0.1: icmp_seq=10 ttl=62 time=10.2 ms
64 bytes from 10.0.0.1: icmp_seq=10 ttl=62 time=11.8 ms (DUP!)
64 bytes from 10.0.0.1: icmp_seq=10 ttl=62 time=12.6 ms (DUP!)
64 bytes from 10.0.0.1: icmp_seq=10 ttl=62 time=13.2 ms (DUP!)
64 bytes from 10.0.0.1: icmp_seq=11 ttl=62 time=11.9 ms
64 bytes from 10.0.0.1: icmp_seq=11 ttl=62 time=13.3 ms (DUP!)
64 bytes from 10.0.0.1: icmp_seq=11 ttl=62 time=14.3 ms (DUP!)
64 bytes from 10.0.0.1: icmp_seq=12 ttl=62 time=12.1 ms

Windows系统下的示例

Windows XP内置的ping:

C:\> ping www.google.com
Pinging www.l.google.com [64.233.183.103] with 32 bytes of data:
Reply from 64.233.183.103: bytes=32 time=25ms TTL=245
Reply from 64.233.183.103: bytes=32 time=22ms TTL=245
Reply from 64.233.183.103: bytes=32 time=25ms TTL=246
Reply from 64.233.183.103: bytes=32 time=22ms TTL=246
Ping statistics for 64.233.183.103:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 22ms, Maximum = 25ms, Average = 23ms

其中

Pinging www.l.google.com [64.233.183.103] with 32 bytes of data:

www.google.comwww.l.google.com DNS别名,IP地址是64.233.183.103。以32 bytes大小测试,可以以-l(Windows)参数更改,大小是1-65500

Reply from 64.233.183.103: bytes=32 time=25ms TTL=245
Reply from 64.233.183.103: bytes=32 time=22ms TTL=245
Reply from 64.233.183.103: bytes=32 time=25ms TTL=246
Reply from 64.233.183.103: bytes=32 time=22ms TTL=246

反应时间25毫秒,TTL(Time To Live)值为245 由上来看,到google通过255-245 = 10个路由

Ping statistics for 64.233.183.103:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 22ms, Maximum = 25ms, Average = 23ms

总计,最小22ms,最大25ms,平均23ms。

windows下若是ping命令不加任何参数,一次只返回4个数据包,如果希望持续ping某个IP,可以在ping ip地址后加上-t,想终止可以按下ctrl+c,如下所示:

C:\> ping www.baidu.com -t

正在 Ping www.a.shifen.com [112.80.248.75] 具有 32 字节的数据:
来自 112.80.248.75 的回复: 字节=32 时间=10ms TTL=56
来自 112.80.248.75 的回复: 字节=32 时间=9ms TTL=56
来自 112.80.248.75 的回复: 字节=32 时间=10ms TTL=56
来自 112.80.248.75 的回复: 字节=32 时间=9ms TTL=56
来自 112.80.248.75 的回复: 字节=32 时间=9ms TTL=56
来自 112.80.248.75 的回复: 字节=32 时间=9ms TTL=56
...............

相关条目

外部链接