做相亲网站赚钱吗,网站建设运行工作情况总结,旅游网站开发周期,官方网站怎么找转自#xff1a;微点阅读 https://www.weidianyuedu.com 不管在windows平台#xff0c;还是在linux平台#xff0c;ping都是非常常用的网络命令#xff1b;ping命令通过ICMP#xff08;Internet控制消息协议#xff09;工作#xff1b;ping可以用来测试本机与目标主机是… 转自微点阅读 https://www.weidianyuedu.com 不管在windows平台还是在linux平台ping都是非常常用的网络命令ping命令通过ICMPInternet控制消息协议工作ping可以用来测试本机与目标主机是否联通、联通速度如何、稳定性如何。
一 、ping 用法
ping命令运行在命令提示符终端用法为“ping 参数 目标主机”。其中参数为零到多个目标主机可以是IP或者域名。
1
2
3
4
Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
[-w deadline] [-W timeout] [hop1 ...] destination
二、ping 参数解释
参数详解
-aAudible ping.
-A自适应ping根据ping包往返时间确定ping的速度
-b允许ping一个广播地址
-B不允许ping改变包头的源地址
-c countping指定次数后停止ping
-d 使用Socket的SO_DEBUG功能
-F flow_label为ping回显请求分配一个20位的“flow label”如果未设置内核会为ping随机分配
-f极限检测快速连续ping一台主机ping的速度达到100次每秒
-i interval设定间隔几秒发送一个ping包默认一秒ping一次
-I interface指定网卡接口、或指定的本机地址送出数据包
-l preload设置在送出要求信息之前先行发出的数据包
-L抑制组播报文回送只适用于ping的目标为一个组播地址
-n 不要将ip地址转换成主机名
-p pattern指定填充ping数据包的十六进制内容在诊断与数据有关的网络错误时这个选项就非常有用如“-p ff”
-q不显示任何传送封包的信息只显示最后的结果
-Q tos设置Qos(Quality of Service)它是ICMP数据报相关位可以是十进制或十六进制数详见rfc1349和rfc2474文档
-R记录ping的路由过程(IPv4 only)
注意由于IP头的限制最多只能记录9个路由其他会被忽略
-r忽略正常的路由表直接将数据包送到远端主机上通常是查看本机的网络接口是否有问题如果主机不直接连接的网络上则返回一个错误。
-S sndbufSet socket sndbuf. If not specified, it is selected to buffer not more than one packet.
-s packetsize指定每次ping发送的数据字节数默认为“56字节”“28字节”的ICMP头一共是84字节
包头内容不能大于65535所以最大值为65507linux:65507, windows:65500
-t ttl设置TTL(Time To Live)为指定的值。该字段指定IP包被路由器丢弃之前允许通过的最大网段数
-T timestamp_option设置IP timestamp选项,可以是下面的任何一个
tsonly (only timestamps)
tsandaddr (timestamps and addresses)
tsprespec host1 [host2 [host3]] (timestamp prespecified hops).
-M hint 设置MTU最大传输单元分片策略。
可设置为
do禁止分片即使包被丢弃
want当包过大时分片
dont不设置分片标志DF flag
-m mark设置mark
-v使ping处于verbose方式它要ping命令除了打印ECHO-RESPONSE数据包之外还打印其它所有返回的ICMP数据包
-U Print full user-to-user latency (the old behaviour).
Normally ping prints network round trip time, which can be different f.e. due to DNS failures.
-W timeout以毫秒为单位设置ping的超时时间
-w deadlinedeadline
参考内容http://ss64.com/bash/ping.html
三 、输出格式
下图为简单的ping产生的响应内容图中返回内容具体的含义如下
① ping目标主机的域名和IPping会自动将域名转换为IP② 不带包头的包大小和带包头的包大小参考“-s”参数③ icmp_seqping序列从1开始如果数字不是按顺序递增也就意味着丢包了 ttl剩余的ttl见四TTL解释 time: 响应时间,数值越小联通速度越快④ 发出去的包数返回的包数丢包率耗费时间⑤ 最小/最大/平均响应时间和本机硬件耗费时间
四 、TTL解释
当我们在使用ping命令时返回结果里会带一个TTL值。这个东西的含义其实就是Time To Live指的是报文在网络中能够‘存活’的限制。以前这个限制方式是设定一个时间Time To Live中的Time就是这样来的当报文在网络中转发时时间超过这个限制最后一个收到报文的‘路由点’就会把它扔掉而不继续转发。后来把时间限制改为了跳数限制就是当报文在网络中转发时每经过一个‘路由点‘就把预先设定的这个TTL数值减1直到最后TTL1时报文就被扔掉不向下转发。
路由点我这里是指完成路由功能的机器因为并不是只有路由器才可以完成路由转发功能比如主机可以配置路由转发。
ping命令中的TTL
上边解释的TTL是基础然后我们这篇文章要说明的是ping中的TTL到底是什么意思。因为不管怎么想返回了一个TTL这东西是说被你ping的主机预设的报文TTL是这个值吗还是说你ping它的时候自己的报文自动设定了TTL是这个值还是说你的报文经过了TTL跳到达被ping主机。。。总之就是不能明确地说出这个TTL的意义。
其实这个TTL是指被ping主机那里返回的报文到了你这里从它自己预设的TTL减小到还剩下多少。
有点绕口举个例子就明白了。
我们先tracert www.baidu.com
这里表示我们发出的ICMP报文从自己主机到目标主机一共经过12跳这里可以想成我们发过去的和对方返回的路由路径是一样的其实网络很复杂的这样说是在基本理论上简化问题——一般网络情况不变化就是这样的也就是目标主机它预设的报文TTL要减掉12。现在按照刚才说的“被ping主机那里返回的报文到了你这里从它自己预设的TTL减小到还剩下多少。”我们可以计算ping www.baidu.com时的TTL了。
TTL 目标主机预设报文TTL - 12
现在等式中有两个未知数但是“目标主机预设报文TTL”其实比较容易知道。并且有一个前提一般有64、128等几个值这些东西大家另外去查资料吧
我们先来ping www.baidu.com
这里我们看到 TTL 52。一般就可以推断目标主机预设的报文TTL为64因为它比较接近一般啦。然后对比一下上边的等式代入数值
52 64 - 12
默认情况下Linux系统的TTL值为64或255Windows NT/2000/XP系统的TTL值为128Windows 98系统的TTL值为32UNIX主机的TTL值为255。
五 、简单示例
1、每隔0.6秒ping一次一共ping 5次
1
2
3
4
5
6
7
8
9
10
11
[rootaiezu.com ~]# ping -c 5 -i 0.6 qq.com
PING qq.com (14.17.32.211) 56(84) bytes of data.
64 bytes from 14.17.32.211: icmp_seq1 ttl54 time16.5 ms
64 bytes from 14.17.32.211: icmp_seq2 ttl54 time17.0 ms
64 bytes from 14.17.32.211: icmp_seq3 ttl54 time16.6 ms
64 bytes from 14.17.32.211: icmp_seq4 ttl54 time18.3 ms
64 bytes from 14.17.32.211: icmp_seq5 ttl54 time19.9 ms
--- qq.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 2405ms
rtt min/avg/max/mdev 16.520/17.692/19.919/1.293 ms
2、极限快速的使用大包ping
以最快的速度使用最大的包进行ping可用于测试目标主机的承压能力
1
2
3
4
5
6
[rootaiezu ~]# ping -f -s 65507 10.0.0.52
PING 10.0.0.52 (10.0.0.52) 65507(65535) bytes of data.
.^
--- 10.0.0.52 ping statistics ---
646 packets transmitted, 646 received, 0% packet loss, time 1675ms
rtt min/avg/max/mdev 1.202/2.406/8.253/0.507 ms, ipg/ewma 2.598/2.318 ms
注意此用法非常危险65535包头内容*100个包每秒6.25MB每秒发送6.25MB的数据相当于50Mbps的带宽完全可能导致目标主机拒绝服务。请勿用于非法用途造成不良后果自负。
3、联通不稳定丢包严重的情形
下面的ping发出17个ping icmp包而只有序号为8、9、12的包收到响应信息丢包率达82%联通非常不稳定
1
2
3
4
5
6
7
8
9
[rootaiezu.com ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq8 ttl43 time32.3 ms
64 bytes from 8.8.8.8: icmp_seq9 ttl43 time32.2 ms
64 bytes from 8.8.8.8: icmp_seq12 ttl43 time32.0 ms
^C
--- 8.8.8.8 ping statistics ---
17 packets transmitted, 3 received, 82% packet loss, time 16003ms
rtt min/avg/max/mdev 32.038/32.208/32.362/0.246 ms
4、完全无法ping通的情形
1
2
3
4
5
[rootaiezu.com ~]# ping -c 3 9.9.9.9
PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.
--- 9.9.9.9 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
六常见错误
1、错误一
1
ping: packet size too large: 70000
1
2
3
4
WARNING: packet size 65508 is too large. Maximum is 65507
PING 10.0.0.52 (10.0.0.52) 65508(65536) bytes of data.
ping: local error: Message too long, mtu1500
ping: local error: Message too long, mtu1500
解决
将ping的“-s”参数设置一个更小的值windows最大值为“65500”linux最大值为“65507”。