1、PING(PacketInternetGroper),因特网包探索器,作用是测试你到某一个IP之间的网络是否通畅,可以很好地帮助我们分析和判定网络故障。
2、Ping是Windows、Unix和Linux操作系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。
①ping127.0.0.1,如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。
②ping本机的IP地址,用IPConfig查看本机IP,然后Ping该IP,通则表明网络适配器工作正常,不通则是网络适配器出现故障。【检查本机与网关之间通不通】
【网络适配器又称网卡或网络接口卡(NIC),英文名NetworkInterfaceCard。它是使计算机联网的设备。】
③ping域名,验证是否可以连接外网,也就是是否可以上网。
3、根据ping不同的ip你就可以知道各种你要了解的网络状况。
比如你不能上网了,你又不知道问题出在哪,那你先ping本机IP地址,这就是ping你到网关之间通不通。如果通,怎么你到网关之间的线路是通的,你就再pingwww.sina.com.cn看看你到新浪网通不通,如果通,那问题就出在电脑而不是出在网络。
4、ping是网络维护中最重要的一个网络命令,也是最常用的。如果把网络看成一根管子,你不知道哪儿不通,那ping命令就像是一根无限长的探针,用它在网络这跟管子里捅,捅到哪不通了就查出问题了。
5、ping命令是依托于ICMP协议的,ICMP协议的存在就是为了更高效的转发IP数据报和提高交付成功的机会。
6、ping命令除了依托于ICMP,在局域网下还要借助于ARP协议,ARP协议能根据IP地址反查出计算机的MAC地址。(另外ARP是有缓存的,为了保证ARP的准确性,计算机会更新ARP缓存。)
ping[-t][-a][-ncount][-llength][-f][-ittl][-vtos][-rcount][-scount][-jcomputer-list]|[-kcomputer-list][-wtimeout]destination-list即:
①ping192.168.1.9开始;ctrl+c停止
②ping命令通过ICMP协议(Internet控制消息协议)工作;ping可以用来测试本机与目标主机是否联通、联通速度如何、稳定性如何。
③ping命令运行在命令提示符终端,用法为:ping参数目标主机。其中参数为零到多个,目标主机可以是IP或者域名。
④输出格式:
下图为简单的ping产生的响应内容,图中返回内容具体的含义如下:
[root@aiezu.com~]#ping-c5-i0.6qq.comPINGqq.com(14.17.32.211)56(84)bytesofdata.64bytesfrom14.17.32.211:icmp_seq=1ttl=54time=16.5ms64bytesfrom14.17.32.211:icmp_seq=2ttl=54time=17.0ms64bytesfrom14.17.32.211:icmp_seq=3ttl=54time=16.6ms64bytesfrom14.17.32.211:icmp_seq=4ttl=54time=18.3ms64bytesfrom14.17.32.211:icmp_seq=5ttl=54time=19.9ms---qq.compingstatistics---5packetstransmitted,5received,0%packetloss,time2405msrttmin/avg/max/mdev=16.520/17.692/19.919/1.293ms⑥极限快速的使用大包ping:以最快的速度,使用最大的包进行ping,可用于测试目标主机的承压能力:
[root@aiezu~]#ping-f-s6550710.0.0.52PING10.0.0.52(10.0.0.52)65507(65535)bytesofdata..^---10.0.0.52pingstatistics---646packetstransmitted,646received,0%packetloss,time1675msrttmin/avg/max/mdev=1.202/2.406/8.253/0.507ms,ipg/ewma2.598/2.318ms注意:此用法非常危险,65535(包头+内容)*100个包每秒=6.25MB,每秒发送6.25MB的数据,相当于50Mbps的带宽,完全可能导致目标主机拒绝服务。请勿用于非法用途,造成不良后果自负。
⑦联通不稳定,丢包严重的情形:下面的ping发出17个pingicmp包,而只有序号为8、9、12的包收到响应信息,丢包率达82%,联通非常不稳定:
[root@aiezu.com~]#ping8.8.8.8PING8.8.8.8(8.8.8.8)56(84)bytesofdata.64bytesfrom8.8.8.8:icmp_seq=8ttl=43time=32.3ms64bytesfrom8.8.8.8:icmp_seq=9ttl=43time=32.2ms64bytesfrom8.8.8.8:icmp_seq=12ttl=43time=32.0ms^C---8.8.8.8pingstatistics---17packetstransmitted,3received,82%packetloss,time16003msrttmin/avg/max/mdev=32.038/32.208/32.362/0.246ms⑧完全无法ping通的情形:
[root@aiezu.com~]#ping-c39.9.9.9PING9.9.9.9(9.9.9.9)56(84)bytesofdata.---9.9.9.9pingstatistics---3packetstransmitted,0received,100%packetloss,time1999msping的原理①ping是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。ping是定位网络通不通的一个重要手段。
②ping命令是基于ICMP协议来工作的,「ICMP」全称为Internet控制报文协议(InternetControlMessageProtocol)。
一般来说,用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电脑上pingB电脑的IP。
抓包情况如下:(下图显示的就是整个ping命令的过程)
3、简单介绍Wireshark的控制面板,这个面板包含7个字段,分别是:
4、根据抓包流程对ping过程解析
5、ping过程的流程图
问题:Ping4次请求和响应结束后,还有一次B电脑对A电脑的ARP请求,这是为什么?
答案:①由于ARP有缓存机制,为了防止ARP过期,结束后重新更新下ARP缓存,保证下次请求能去往正确的路径,如果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数据结果是否和抓包的一致。
①随机点击一个pingrequest查看ICMP协议报文详情:
上图中红框内就行ICMP协议的详情了,这里的Type=8,code=0,校验是正确,且这是一个请求报文。
②再点击上图中的Responseframe:57,这里说明响应报文在Wireshark控制面板的序号为57的一条协议。详情如下:
1、ping命令不是依托于TCP或者UDP这种传输层协议的,而是依托于ICMP协议实现。
2、ICMP协议的产生背景:由于互联网之间通讯会涉及很多网关和主机,为了能够报告数据错误,所以产生了ICMP协议。也就是说ICMP协议就是为了更高效的转发IP数据报和提高交付成功的机会。
3、ICMP协议的数据格式:(ICMP协议头包含4个字节,头部主要用来说明类型和校验ICMP报文)
5、下图是对应的类型和代码释义列表。
在一个局域网中,计算机通信实际上是依赖于网络设备的MAC地址进行通信的,那么ARP(AddressResolutionProtocol)的作用就是根据IP地址查找出对应的MAC地址。
细心的小伙伴应该会在电脑上或者一些网络游戏中看到有一个ping的参数,那么你知道这个ping是用来表示什么的吗?
①ping指的就是从某个数据包发送到服务器开始,到服务器接收到数据包并且应答的过程就被叫做ping了。
②简单点说,这个ping代表的含义就是我们网络的情况了,一般数值越大(ms)网络的延迟也就越高,玩游戏的话,就会体验到明显的网络卡顿现象。
连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。
首先我们讲一下使用Ping命令的步骤。
使用Ping检查连通性有五个步骤:
①ipconfig/all:观察本地网络设置是否正确,如图:
②ping127.0.0.1(本地ip),127.0.0.1回送地址Ping回送地址是为了检查本地的TCP/IP协议是否设置成功:
③ping本机IP地址,检查本机的IP地址是否设置有误:
④ping本网网关或本网IP地址,检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常(在非局域网中这一步骤可以忽略):
⑤ping远程IP地址,检查本网或本机与外部的连接是否正常:
现在很多服务器都拥有双网卡甚至多网卡,有些是为了保持高可用,有些是网络隔离(内网与外网或者不同网络)。
比如说网卡1插在进网口,另一张网卡插在某一个交换机或者路由器下,ping指定网卡可以判断哪条网络不通。
#manping-Iinterfaceinterfaceiseitheranaddress,oraninterfacename.Ifinterfaceisanaddress,itsetssourceaddresstospecifiedinterfaceaddress.Ifinterfaceinaninterfacename,itsetssourceinterfacetospecifiedinterface.ForIPv6,whendoingpingtoalink-localscopeaddress,linkspecification(bythe\'%\'-notationindestination,orbythisoption)isrequired.大概意思:ping-I接口(网卡名)远程ip地址:接口可以是网卡设备名,也可以是网卡设备的IP地址(网卡设备联网之后,万维网会给网卡分配IP地址;此外每一块网卡都有一个独一无二的物理地址)。
Linux主机的网卡信息:
其中enp2s0网卡是不通外网的(因为enp2s0网卡插在路由器下,但是路由器因为设置问题导致不通外网),enp3s0是插在进网口的可以通外网。
①ping命令不指定网卡名是可以ping通外网的,但是因为ping会自动走通外网的网卡设备(enp3s0)
②ping命令指定网卡设备(通过网卡设备的IP地址指定)
PINGwww.a.shifen.com(112.80.248.76)from192.168.80.90:56(84)bytesofdata:可以证明ping操作是来自IP地址为192.168.80.90的这块网卡设备。