0
点赞
收藏
分享

微信扫一扫

Ping 命令的含义和作用

前言

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

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

 Ping 命令的含义和作用_mac地址

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

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

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

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

Ping 命令的含义和作用_mac地址_02

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是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间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 命令的含义和作用_缓存_03

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

Ping 命令的含义和作用_mac地址_04

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

  • NO: 编号
  • Time: 包的时间戳
  • Source: 源地址
  • Destination: 目标地址
  • Protocol: 协议
  • Length: 包长度
  • Info: 数据包附加信息

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

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

5、ping过程的流程图

Ping 命令的含义和作用_mac地址_05

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

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

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

验证:

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

Ping 命令的含义和作用_mac地址_06

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

Ping 命令的含义和作用_抓包_07

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

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

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

Ping 命令的含义和作用_缓存_08

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

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

Ping 命令的含义和作用_缓存_09

上图的响应报文, 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报文)

 Ping 命令的含义和作用_mac地址_10

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

Ping 命令的含义和作用_抓包_11

ARP协议

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

实例2

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

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

Ping 命令的含义和作用_缓存_12

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

去期待陌生,去拥抱惊喜。

举报

相关推荐

0 条评论