Ping 命令的含义和作用:ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。 您所在的位置:网站首页 ping命令的功能是查看 Ping 命令的含义和作用:ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

Ping 命令的含义和作用:ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

2024-05-18 07:57| 来源: 网络整理| 查看: 265

前言

1、PING (Packet Internet Groper),因特网包探索器,作用是测试你到某一个IP之间的网络是否通畅,可以很好地帮助我们分析和判定网络故障。

2、Ping是Windows、Unix和Linux操作系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。

 

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

② ping 本机的IP地址 ,用IPConfig查看本机IP,然后Ping该IP,通则表明网络适配器工作正常,不通则是网络适配器出现故障。【检查本机与网关之间通不通】

【网络适配器又称网卡或网络接口卡(NIC),英文名NetworkInterfaceCard。它是使计算机联网的设备。】

③ ping 域名 ,验证是否可以连接外网,也就是是否可以上网。

3、根据ping不同的ip你就可以知道各种你要了解的网络状况。

比如你不能上网了,你又不知道问题出在哪,那你先 ping 本机IP地址 ,这就是ping你到网关之间通不通。如果通,怎么你到网关之间的线路是通的,你就再ping www.sina.com.cn 看看你到新浪网通不通,如果通,那问题就出在电脑而不是出在网络。

4、ping是网络维护中最重要的一个网络命令,也是最常用的。如果把网络看成一根管子,你不知道哪儿不通,那ping命令就像是一根无限长的探针,用它在网络这跟管子里捅,捅到哪不通了就查出问题了。

5、ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。 

6、ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。(另外ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。)

ping的语法 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list

即:

ping (选项) (参数) 选项 -d:使用Socket的SO_DEBUG功能; -c:设置完成要求回应的次数; -f:极限检测; -i:指定收发信息的间隔时间; -I:使用指定的网络界面送出数据包; -l:设置在送出要求信息之前,先行发出的数据包; -n:只输出数值; -p:设置填满数据包的范本样式; -q:不显示指令执行过程,开头和结尾的相关信息除外; -r:忽略普通的Routing Table,直接将数据包送到远端主机上; -R:记录路由过程; -s:设置数据包的大小; -t:设置存活数值TTL的大小; -v:详细显示指令的执行过程。 ping的用法

下面是爱E族(aiezu.com)收集整理的ping详细参数:

 

①ping 192.168.1.9   开始;ctrl + c 停止

②ping命令通过ICMP协议(Internet控制消息协议)工作;ping可以用来测试本机与目标主机是否联通、联通速度如何、稳定性如何。

③ping命令运行在命令提示符终端,用法为: ping 参数 目标主机 。其中参数为零到多个,目标主机可以是IP或者域名。

④输出格式:

下图为简单的ping产生的响应内容,图中返回内容具体的含义如下:

① ping目标主机的域名和IP(ping会自动将域名转换为IP) ② 不带包头的包大小和带包头的包大小(参考“-s”参数) ③ icmp_seq:ping序列,从1开始;   ttl:剩余的ttl;   time: 响应时间,数值越小,联通速度越快; ④ 发出去的包数,返回的包数,丢包率,耗费时间; ⑤ 最小/最大/平均响应时间和本机硬件耗费时间

⑤每隔0.6秒ping一次,一共ping 5次:

[[email protected] ~]# 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_seq=1 ttl=54 time=16.5 ms 64 bytes from 14.17.32.211: icmp_seq=2 ttl=54 time=17.0 ms 64 bytes from 14.17.32.211: icmp_seq=3 ttl=54 time=16.6 ms 64 bytes from 14.17.32.211: icmp_seq=4 ttl=54 time=18.3 ms 64 bytes from 14.17.32.211: icmp_seq=5 ttl=54 time=19.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

⑥极限快速的使用大包ping:以最快的速度,使用最大的包进行ping,可用于测试目标主机的承压能力:

[root@aiezu ~]# 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的带宽,完全可能导致目标主机拒绝服务。请勿用于非法用途,造成不良后果自负。

⑦联通不稳定,丢包严重的情形:下面的ping发出17个ping icmp包,而只有序号为8、9、12的包收到响应信息,丢包率达82%,联通非常不稳定:

[[email protected] ~]# 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_seq=8 ttl=43 time=32.3 ms 64 bytes from 8.8.8.8: icmp_seq=9 ttl=43 time=32.2 ms 64 bytes from 8.8.8.8: icmp_seq=12 ttl=43 time=32.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

⑧完全无法ping通的情形:

[[email protected] ~]# 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 ping的原理

① ping是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。ping是定位网络通不通的一个重要手段。

② ping 命令是基于 ICMP 协议来工作的,「 ICMP 」全称为 Internet 控制报文协议( Internet Control Message Protocol)。

③ ping 命令会发送一份ICMP回显请求报文给目标主机,并等待目标主机返回ICMP回显应答。因为ICMP协议会要求目标主机在收到消息之后,必须返回ICMP应答消息给源主机,如果源主机在一定时间内收到了目标主机的应答,则表明两台主机之间网络是可达的。

实例1

一般来说,用 ping命令查看电脑的网络情况,主要是检查两个指标:

第一个是看看是不是超时

第二个看看是不是延迟太高

如果超时那么肯定是网络有问题(禁 ping情况除外),如果延迟太高,网络情况肯定也是很糟糕的。

那么,ping是如何检查网络的?ping背后的原理到底是啥样的?

1、环境准备

抓包工具:Wireshark网络抓包分析软件; 准备两台电脑;进行互 ping操作:

A电脑(IP地址:192.168.2.135 / MAC地址:98:22:EF:E8:A8:87) B电脑(IP地址:192.168.2.179 / MAC地址:90:A4:DE:C2:DF:FE)

2、抓包操作

打开 Wireshark,选取指定的网卡进行抓包,进行 ping操作,在 A电脑上 ping B电脑的 IP。

抓包情况如下:(下图显示的就是整个ping命令的过程)

3、简单介绍Wireshark的控制面板,这个面板包含7个字段,分别是:

NO: 编号

Time: 包的时间戳

Source: 源地址

Destination: 目标地址

Protocol: 协议

Length: 包长度

Info: 数据包附加信息

4、根据抓包流程对ping过程解析

A 电脑( 192.168.2.135)对B电脑(192.168.2.179)发起 ping 请求:ping192.168.2.179; A 电脑(192.168.2.135)广播发起 ARP请求,查询 192.168.2.179的 MAC地址; B 电脑(192.168.2.179)应答 ARP请求,向 A电脑发起单向应答,告诉 A电脑自己的 MAC地址为:90:A4:DE:C2:DF:FE; A 电脑(192.168.2.135)知道B电脑(192.168.2.179)的MAC地址后,开始进行真正的 ping请求,由于 B电脑可以根据A电脑发送的请求知道 源 MAC地址,所以就可以根据源MAC地址进行响应;

5、ping过程的流程图

问题:Ping 4次请求和响应结束后,还有一次 B电脑对 A电脑的 ARP请求,这是为什么?

答案:①由于 ARP有缓存机制,为了防止 ARP过期,结束后重新更新下 ARP缓存,保证下次请求能去往正确的路径,如果 ARP过期就会导致出现一次错误,从而影响测试准确性。

② 由于 ping 命令的响应时间是根据请求包和响应包的时间戳计算出来的,所以一次 ARP过程也是会消耗时间。这里提前缓存最新的 ARP结果就是节省了下次 ping的 ARP时间。

验证:

①此时的电脑A(192.168.2.135)里面已经有了ARP的缓存,执行  ARP-a  看看缓存的arp列表:

②电脑A(192.168.2.135)重新 ping 电脑B(192.168.2.179)

通过上图可以看出:在真正 ping 开始之前并没有进行一次 ARP请求。这也就是说,电脑A直接拿了缓存中的 ARP来执行了,另外当电脑B进行响应之前还是进行了一次ARP请求,它还是要确认下之前的 ARP缓存是否为正确的。

6、弄懂了ping的流程之后我们来解析下之前解释的 ICMP数据结果是否和抓包的一致。

①随机点击一个ping request查看ICMP协议报文详情:

上图中红框内就行 ICMP协议的详情了,这里的 Type=8,code=0, 校验是正确,且这是一个请求报文。

②再点击上图中的Response frame:57,这里说明响应报文在Wireshark控制面板的序号为57的一条协议。详情如下:

上图的响应报文, Type=0,code=0,这里知道就是响应报文了,然后最后就是根据请求和响应的时间戳计算出来的响应延迟。3379.764ms-3376.890ms=2.874ms。

抓包过程中出现的协议的详细介绍 ICMP( Internet 控制报文协议)

1、ping命令不是依托于TCP或者UDP这种传输层协议的,而是依托于ICMP协议实现。

2、ICMP协议的产生背景:由于互联网之间通讯会涉及很多网关和主机,为了能够报告数据错误,所以产生了 ICMP协议。也就是说 ICMP 协议就是为了更高效的转发IP数据报和提高交付成功的机会。

3、ICMP协议的数据格式:(ICMP协议头包含 4个字节,头部主要用来说明类型和校验 ICMP报文)

 

5、下图是对应的类型和代码释义列表。

ARP协议

在一个局域网中,计算机通信实际上是依赖于网络设备的MAC地址进行通信的,那么 ARP( AddressResolutionProtocol)的作用就是根据IP地址查找出对应的 MAC地址。

实例2

细心的小伙伴应该会在电脑上或者一些网络游戏中看到有一个ping的参数,那么你知道这个ping是用来表示什么的吗?

①ping指的就是从某个数据包发送到服务器开始,到服务器接收到数据包并且应答的过程就被叫做ping了。

②简单点说,这个ping代表的含义就是我们网络的情况了,一般数值越大(ms)网络的延迟也就越高,玩游戏的话,就会体验到明显的网络卡顿现象。

实例3 使用Ping命令测试网络是否联通:

连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。

首先我们讲一下使用Ping命令的步骤。

使用Ping检查连通性有五个步骤:

①ipconfig /all :观察本地网络设置是否正确,如图:

② ping 127.0.0.1(本地ip)  ,127.0.0.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议是否设置成功:

③ ping 本机IP地址,检查本机的IP地址是否设置有误:

④ ping 本网网关或本网IP地址,检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常(在非局域网中这一步骤可以忽略):

⑤ ping 远程IP地址,检查本网或本机与外部的连接是否正常:

 实例4 Linux操作系统使用指定网卡进行ping操作 1、需要使用指定网卡ping操作的原因

现在很多服务器都拥有双网卡甚至多网卡,有些是为了保持高可用,有些是网络隔离(内网与外网或者不同网络)。

比如说网卡1插在进网口,另一张网卡插在某一个交换机或者路由器下,ping指定网卡可以判断哪条网络不通。

2、ping命令指定网卡的参数 # man ping -I interface interface is either an address, or an interface name. If interface is an address, it sets source address to specified interface address. If interface in an interface name, it sets source interface to specified interface. For IPv6, when doing ping to a link-local scope address, link specification (by the \'%\'-notation in destination, or by this option) is required.

大概意思: ping -I 接口(网卡名) 远程ip地址 : 接口可以是网卡设备名,也可以是网卡设备的IP地址(网卡设备联网之后,万维网会给网卡分配IP地址;此外每一块网卡都有一个独一无二的物理地址)。

3、举例

Linux主机的网卡信息:

其中enp2s0网卡是不通外网的(因为enp2s0网卡插在路由器下,但是路由器因为设置问题导致不通外网),enp3s0是插在进网口的可以通外网。

①ping命令不指定网卡名是可以ping通外网的,但是因为ping会自动走通外网的网卡设备(enp3s0)

② ping命令指定网卡设备(通过网卡设备的IP地址指定)

PING www.a.shifen.com (112.80.248.76) from 192.168.80.90 : 56(84) bytes of data:可以证明ping操作是来自IP地址为192.168.80.90的这块网卡设备。

③ping命令指定网卡设备(通过网卡设备的网卡名指定)

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有