Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:ping空格IP地址。该命令还可以加许多参数使用,具体是键入ping按回车即可看到详细说明.
0.ping 命令格式: ping [选项] ip
1.指定ping的次数: -c 次数
ping -c 4 127.0.0.1
2.只显示结果:-q
不显示ping的过程
[student@room9pc01 ~]$ ping -q -c4 www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 23.257/23.477/23.992/0.300 ms
3.mdev 往返时延
mdev是 Mean Deviation 的缩写, 表示 ICMP包的RTT(Round-Trip Time,往返时延)偏离平均值的程度, 主要用来衡量网速的稳定性。 mdev 的值越大说明 网速越不稳定。 另外,不同的操作系统的mdev的名字也有所不同, 在mac下它叫作 stddev, 而在 Windows 下则根本没有这个统计指标。
[root@client ~]# ping -q -c3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.025/0.031/0.035/0.008 ms
RTT参考值
场景 参考值
本机 0.001ms
同机房 0.1ms
同城 1ms
不同城 20ms
中国北方到南方 50ms
国内到国外 200ms
4.制定ping数据包的大小
默认ping命令的数据包大小是64kb/s,通过-s选项可以制定数据包的大小
范围:1kb-65507kb
[root@client ~]# ping -s 254 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
254 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.025 ms
--- 127.0.0.1 ping statistics ---
补充:,如果以最大值去ping服务器,并且以多进程多终端的方式,可能会造成服务器响应迟缓,可以认为是一种网络攻击手段
5.TTL 生成时间
TTL(Time to Live) ,即生存时间,指的是数据包被路由器丢弃之前允许通过的路由器的跳数,为了防止数据包在路由器之间无限转发,必须设置一个TTL值,每次路由器转发后都会将这个值减1,直到TTL的值为0,这个数据包的生命就被终结了.
命令 : ping -t 255 www.baidu.com
若不指定ttl的值,系统会默认给定一个值,不同的操作系统有不同的默认TTL值:
操作系统 TCP传输 UDP传输
AIX 60 30
DEC Patchworks V5 30 30
FreeBSD 2.1 64 64
HP/UX 9.0x 30 30
HP/UX 10.01 64 64
Irix 5.3 60 60
Irix 6.x 60 60
UNIX 255 255
Linux 64 64
MacOS/MacTCP 2.0.x 60 60
OS/2 TCP/IP 3.0 64 64
OSF/1 V3.2A 60 30
Solaris 2.x 255 255
SunOS 4.1.3/4.1.4 60 60
Ultrix V4.1/V4.2A 60 30
VMS/Multinet 64 64
VMS/TCPware 60 64
VMS/Wollongong 1.1.1.1 128 30
VMS/UCX (latest rel.) 128 128
MS Windows 95/98/NT 3.51 32 32
Windows NT 4.0/2000/XP/2003 128 128
补充:
通过TTL设定值我们可以找到某主机到某主机的最小跳跃次数,即路由转发次数,如下,可以看到我的主机到百度的最小跳至少是11,因为ttl为10是显示跳跃超限,说明数据包在传给百度服务器的路上已经死了
[student@room9pc01 ~]$ ping -t11 www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=54 time=23.6 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=54 time=23.2 ms
--- www.a.shifen.com ping statistics ---
[student@room9pc01 ~]$ ping -t10 www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
From 14.29.117.234 (14.29.117.234) icmp_seq=1 Time to live exceeded
From 14.29.117.234 (14.29.117.234) icmp_seq=2 Time to live exceeded
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1001ms
6.设置时间间隔
ping命令的默认时间间隔为1秒,通过-i(interval)可以设置ping命令的每个数据包发送的时间间隔,root权限可以设置到0.2秒以下,非root用户只能设置在0.2秒以上
ping -i 0.3 www.baidu.com
补充: -i 配合 -s 选项可以向一个服务器发送数量巨大的数据包
7.洪水模式
ping命令有一个选项是-f (flood ping),flood是洪水的意思,在这里是如洪水般的ping,使用这个选项,将会以全力去发送数据包,每秒发送100个数据包,称为'疯狂模式',只有root用户可以使用.可以看到丢包率为0,说明即使是很疯狂的去ping,还是能被服务器接收到的,说明服务器没有限制某个ip疯狂的ping(可能我们没有达到这个服务器的限制阀值)
[root@room9pc01 ~]# ping -f -c 10000 www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
...^C
--- www.a.shifen.com ping statistics ---
6047 packets transmitted, 10000 received, 0% packet loss, time 85831ms
rtt min/avg/max/mdev = 20.631/23.739/59.246/3.791 ms, pipe 5, ipg/ewma 14.196/22.474 ms
补充:洪水模式可以用-i 和 -c 配合使用,将间隔时间调低,将数据包大小调高即可.