PING工作原理
一、什么是PING
  DOS命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢
  PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
  它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。
  Ping Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。ping指的是端对端连通,通常用来作为可用性
的检查, 但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑
二、PING的工作流程
  我们以下面一个网络为例:有ABCD四台机子,一台路由RA,子网掩码均为255.255.255.0,默认路由为192.168.0.1 [1]
  1.在同一网段内
  在主机A上运行“Ping 192.168.0.5”后,都发生了些什么呢? 首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.0.5”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.0.5”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到192.168.0.5MAC地址(物理地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通
过机器BIP地址和自己的子网掩码,发现它跟自己属同一网络,就直接在本网络内查这台机器的MAC,如果以前两机有过通信,在A机的ARP缓存表应该有BIP与其MAC的映射关系,如果没有,就发一个ARP请求广播,得到B机的MAC,一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。
  主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。
  2.不在同一网段内
  在主机A上运行“Ping 192.168.1.4”后,开始跟上面一样,到了怎样得到MAC地址时,IP协议通过计算发现D机与自己不在同一网段内,就直接将交由路由处理,也就是将路由的MAC取过来,至于怎样得到路由的MAC,跟上面一样,先在ARP缓存表,不到就广播吧。路由得到这个数据帧后,再跟主机D进行联系,如果不到,就向主机A返回一个超时的信息。
三、PING测试
  1.Ping本机IP
  例如本机IP地址为:172.168.200.2。则执行命令Ping 172.168.200.2。如果网卡安装配置没有问题,则应有类似下列显示:
  Replay from 172.168.200.2 bytes=32 time<10ms
  Ping statistics for 172.168.200.2
  Packets Sent=4 Received=4 Lost=0 0% loss
  Approximate round trip times in milli-seconds
  Minimum=0ms Maxiumu=1ms Average=0ms
  如果在MS-DOS方式下执行此命令显示内容为:Request timed out,则表明网卡安装或配置有问题。将网线断开再次执行此命令,如果显示正常,则说明本机使用的IP地址可能与另
一台正在使用的机器IP地址重复了。如果仍然不正常,则表明本机网卡安装或配置有问题,需继续检查相关网络配置。
  2.Ping网关IP
  假定网关IP为:172.168.6.1,则执行命令Ping 172.168.6.1。在MS-DOS方式下执行此命令,如果显示类似以下信息:
  Reply from 172.168.6.1 bytes=32 time=9ms TTL=255
  Ping statistics for 172.168.6.1
  Packets Sent=4 Received=4 Lost=0
  Approximate round trip times in milli-seconds
  Minimum=1ms Maximum=9ms Average=5ms
  则表明局域网中的网关路由器正在正常运行。反之,则说明网关有问题。
  3.Ping远程IP
  这一命令可以检测本机能否正常访问Internet。比如本地电信运营商的IP地址为:202.102.48.141。在MS-DOS方式下执行命令:Ping 202.102.48.141,如果屏幕显示:
  Reply from 202.102.48.141 bytes=32 time=33ms TTL=252
  Reply from 202.102.48.141 bytes=32 time=21ms TTL=252
  Reply from 202.102.48.141 bytes=32 time=5ms TTL=252
  Reply from 202.102.48.141 bytes=32 time=6ms TTL=252
  Ping statistics for 202.102.48.141
  Packets Sent=4 Received=4 Lost=0 0% loss
  Approximate round trip times in milli-seconds
  Minimum=5ms Maximum=33ms Average=16ms
  则表明运行正常,能够正常接入互联网。反之,则表明主机文件(windows/host)存在问题。
  对于Windowsping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
  此参数没有什么其他技巧。
  ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
  [HKEY_LOCAL_MACHINEsys temCurrentControlSetServicesTcpipParameters]
  "DefaultTTL"=dword:000000ff
  255---FF
  128---80
  64----40
  32----20
  Ping是个使用频率极高的网络诊断程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
  ===============================================
  Ping的返回信息有"Request Timed Out""Destination Net Unreachable""Bad IP address"还有"Source quench received"
  "Request Timed Out"这个信息表示对方主机可以到达到TIME OUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。
  "Destination Net Unreachable"这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下"destination host unreachable""time out"的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现"time out",如果路由表中连到达目标的路由都没有,那就会出现"destination host unreachable"
  "Bad IP address" 这个信息表示你可能没有连接到DNS服务器所以无法解析这个IP地址,也可能是IP地址不存在。
  "Source quench received"信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
  ===============================================
  怎样使用Ping这命令来测试网络连通呢?
  连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。
  首先我们讲一下使用Ping命令的步骤。
  使用Ping检查连通性有六个步骤:
  1. 使用ipconfig /all观察本地网络设置是否正确;
  2. Ping 127.0.0.1127.0.0.1 回送地址Ping网线原理回送地址是为了检查本地的TCP/IP协议有没有设置好;
  3. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;
  4. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)