`
longgangbai
  • 浏览: 7340094 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ping命令深度解析(一)

阅读更多

         Ping命令是我们日常网管工作中使用频率最高的工具之一,主是用来测试网络连接的。在实际平时解决网络故障的过程中,一般应该遵循“先软后硬”的步骤来进行。其中“软”就是指使用Ping命令大概判断出网络故障位置。今天我们就向大家介绍Ping命令的三个典型应用。

以下是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

-t

Ping 指定的计算机直到中断。

-a

将地址解析为计算机名。

-n count

发送 count 指定的 ECHO 数据包数。默认值为 4。

-l length

发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。

-f

在数据包中发送不要分段标志。数据包就不会被路由上的网关分段。

-i ttl

将生存时间字段设置为 ttl 指定的值。

-v tos

将服务类型字段设置为 tos 指定的值。

-r count

在记录路由字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。

-s count

指定 count 指定的跃点数的时间戳。

-j computer-list

利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

-k computer-list

利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。

-w timeout

指定超时间隔,单位为毫秒。

destination-list

指定要 ping 的远程计算机。

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.1,127.0.0.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好;

3. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;

4. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)

5. Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。

在检查网络连通的过程中可能出现一些错误,这些错误总的来说分为两种最常见。

1. Request Timed Out

request time out这提示除了在《PING(一)》提到的对方可能装有防火墙或已关机以外,还有就是本机的IP不正确和网关设置错误。

①、IP不正确:

IP不正确主要是IP地址设置错误或IP地址冲突,这可以利用ipconfig /all这命令来检查。在WIN2000下IP冲突的情况很少发生,因为系统会自动检测在网络中是否有相同的IP地址并提醒你是否设置正确。在NT中不但会出现request time out这提示而且会出现Hardware error这提示信息比较特殊不要给它的提示所迷惑。

②、网关设置错误:这个错误可能会在第四个步骤出现。网关设置错误主要是网关地址设置不正确或网关没有帮你转发数据,还有就是可能远程网关失效。这里主要是在你Ping外部网络地址时出错。错误表现为无法Ping外部主机返回信息Request timeout。

2. Destination Host Unreachable

当你在开始PING网络计算机时如果网络设备出错它返回信息会提示destination host unreachable。如果局域网中使用DHCP分配IP时,而碰巧DHCP失效,这时使用 PING命令就会产生此错误。因为在DHCP失效时客户机无法分配到IP系统只有自设IP,它往往会设为不同子网的IP。所以会出现Destination Host Unreachable。另外子网掩码设置错误也会出现这错误。

还有一个比较特殊就是路由返回错误信息,它一般都会在Destination Host Unreachable前加上IP地址说明哪个路由不能到达目标主机。这说明你的机器与外部网络连接没有问题,但与某台主机连接存在问题。

 

一、验证网卡工作状态

         Ping最简单的一个应用就是验证网卡工作状态是否正常,这也是电脑出现不能上网等故障最简单的判断手段。

在命令提示符下输入“ping 127.0.0.1”并回车,如果返回四行“Reply from 127.0.0.1: bytes=32 time<1ms TTL=128”那么则说明本地网卡是安装正常的,若返回“Request timed out.”则说明本地网卡工作不正常(如下图)。

 

小提示:用户也可以直接使用“Ping 本地计算机的IP地址”,以验证是否IP是否设置成功。

 

二、判断网络连接状态

         判断网络连接时,我们通常的做法就是ping网关地址和远程主机地址,以此判断出网络故障所发地

如果“ping 网关地址”出现“Request timed out.”,那么则说明是内部网络出现了问题,本地网卡发出的数据包不能到达网关;如果Ping网关连接正常,那么可以执行“ping 远程主机”,这时若出现“Request timed out.”,则可能是外部连接的问题了。

        在实际的应用中还会出现这样的情况,在ping执行过程中,会同时包含“Request timed out.”和“Reply from 192168.0.1: bytes=32 time<1ms TTL=128”这样的信息,这种情况则表示网络不太稳定,存在丢包现象,对此大家可以使用“ping IP地址 -t”即在原有的命令后加上“-t”参数,这样ping就会连续尝试与目标主机进行连接,以此观察网络的稳定性。当然从返回信息的“time<1ms”也是一个很重要的信息,如果网络很畅通,例如测试与内网主机的连接,一般都会是“time<1ms”,若该数值比较大,同样说明网络不够稳定,可能是设备不兼容,可能是节点接触不好,也可能是网络内有大量病毒导现堵塞等。

 

三、验证DNS服务器

        DNS服务器负责将域名(网址)转换成IP地址,我们可以使用ping命令判断其配置是否正确以及工作是否正常。

其方法很简单,只需要在命令提示下输入“ping 域名地址”,例如“pint www.itedit.cn”,如果出现“unknown Host Name”则表明不能到达,返回提示“Reply from 222.191.251.34: bytes=32 time=27ms TTL=120”则证明DNS服务器能够成功将域名转换为IP地址。借助这个方法,我们也可以查看知名网站所使用的IP地址(如下图)。

 

 

     现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:

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

Options:

-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.

不停的ping地方主机,直到你按下Control-C。

此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。

-a Resolve addresses to hostnames.

解析计算机NetBios名。

示例:C:\>ping -a 192.168.1.21

Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Reply from 192.168.1.21: bytes=32 time<10ms TTL=254

Ping statistics for 192.168.1.21:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。

 

-n count Number of echo requests to send.

发送count指定的Echo数据包数。 

 

            在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:

C:\>ping -n 50 202.103.96.68

Pinging 202.103.96.68 with 32 bytes of data:

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Request timed out.

………………

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Reply from 202.103.96.68: bytes=32 time=50ms TTL=241

Ping statistics for 202.103.96.68:

Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:

Minimum = 40ms, Maximum = 51ms, Average = 46ms

            从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。

-l size Send buffer size.

定义echo数据包大小。

       

              在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)

C:\>ping -l 65500 -t 192.168.1.21

Pinging 192.168.1.21 with 65500 bytes of data:

Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254

Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254

………………

这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。

 

-f Set Don't Fragment flag in packet.

在数据包中发送“不要分段”标志。

在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。

 

-i TTL Time To Live.

指定TTL值在对方的系统里停留的时间。

此参数同样是帮助你检查网络运转情况的。

 

-v TOS Type Of Service.

将“服务类型”字段设置为 tos 指定的值。

 

-r count Record route for count hops.

在“记录路由”字段中记录传出和返回数据包的路由。

在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。

 

 

以下为示例:

C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)

Pinging 202.96.105.101 with 32 bytes of data:

Reply from 202.96.105.101: bytes=32 time=10ms TTL=249

Route: 202.107.208.187 ->

202.107.210.214 ->

61.153.112.70 ->

61.153.112.89 ->

202.96.105.149 ->

202.96.105.97 ->

202.96.105.101 ->

202.96.105.150 ->

61.153.112.90

Ping statistics for 202.96.105.101:

Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 10ms, Maximum = 10ms, Average = 10ms

从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。

 

-s count Timestamp for count hops.

指定 count 指定的跃点数的时间戳。

此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

 

-j host-list Loose source route along host-list.

利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

 

-k host-list Strict source route along host-list.

利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。

 

-w timeout Timeout in milliseconds to wait for each reply.

指定超时间隔,单位为毫秒。

此参数没有什么其他技巧。

 

使用跟踪路由

          在Windows命令提示符后面使用跟踪路由命令就可以实施跟踪路由。在Windows XPZH中这个命令是:tracert (IP地址或者主机名) 虽然结果不能向你显示丢包,但是,可以向你显示在路径中路由器反应速度减慢的情况。

这个输出结果将显示所有的路由器的反应时间。

 

分享到:
评论
1 楼 di1984HIT 2016-04-21  
学习了,学习了~~~

相关推荐

    IP新技术进阶系列 - SRv6 Ping&Tracert深度解析

    Ping&Tracert作为链路连通性检测和故障定位的重要手段,适用场景极广,本次课程将选取对SRv6网络进行Ping&Tracert检测的场景,以一个示例为主线,深度解析检测过程,解密报文交互与协议扩展,通过介绍关键命令的使用...

    Ping命令详解

    ### Ping命令详解与网络管理深度解析 #### Ping命令概述 Ping命令是一种用于测试网络设备连通性和健康状况的基本工具,其全称为Packet Internet Gopher,但在实际应用中,"Ping"已经成为一个广为人知的缩写。通过...

    (视频)IP新技术进阶系列 - SRv6 Ping&Tracert深度解析

    Ping&Tracert作为链路连通性检测和故障定位的重要手段,适用场景极广,本次课程将选取对SRv6网络进行Ping&Tracert检测的场景,以一个示例为主线,深度解析检测过程,解密报文交互与协议扩展,通过介绍关键命令的使用...

    ping 命令的ftrace文件,基于dm9000

    总的来说,结合`ping`命令和`ftrace`技术,我们可以对`dm9000`网络芯片的网络性能进行深度剖析,对于系统级的网络问题定位和优化具有重要意义。在实际操作中,还需要借助其他工具如`tcpdump`、`strace`等,以及深入...

    smokeping安装中的echoping

    ** Smokeping 安装与 Echoping 深度解析** `Smokeping` 是一个开源的网络监控工具,专门用于追踪网络延迟和丢包情况,它以“ping”为基础,通过绘制精美的图表来展示网络状况。而 `Echoping` 是 Smokeping 的一部分...

    批量ping工具pinginfoview

    《批量ping工具PingInfoView的深度解析与应用》 在信息技术领域,网络诊断是不可或缺的一环,而ping命令作为最基本的网络通信检测工具,被广泛应用于检查网络连接的可达性。然而,当面对大量IP地址需要进行ping测试...

    PING程序设计(课设报告)

    在大一的课程设计中,学生们面临的一个挑战是设计并实现一个基于C语言的PING程序。这个项目旨在让学生掌握网络通信的基础,特别是如何利用ICMP(Internet Control Message Protocol)协议进行主机间的连通性测试。...

    用C语言实现Ping程序功能

    文章提及的Ping命令,其实质是基于TCP/IP协议族中的ICMP(Internet Control Message Protocol,互联网控制消息协议)来工作的。ICMP主要负责在IP层进行差错控制和网络诊断,它并不像TCP或UDP那样用于数据传输,而是...

    ArpPing_d9soft.com.zip

    《ArpPing:网络诊断与安全工具的深度解析》 在信息技术领域,网络诊断和安全是不可或缺的部分。本文将深入探讨一款名为“ArpPing”的工具,它在网络安全和故障排查方面发挥着重要作用。ArpPing,正如其名,结合了...

    Python利用WMI实现ping命令的例子

    在这个例子中,我们将探讨如何使用Python通过WMI来执行ping命令。 首先,确保已经安装了`pywin32`库,因为`win32api`是这个库的一部分。如果尚未安装,可以使用pip进行安装: ``` pip install pywin32 ``` 接下来...

    批量ping测软件pinginfoview

    《批量ping测软件PingInfoView深度解析》 在信息技术领域,网络诊断是不可或缺的一部分,而“ping”命令作为网络连通性检查的最基本工具,一直被广大IT人员所使用。然而,当面对大量IP地址需要进行ping测试时,手动...

    Python库 | aa-discord-ping-formatter-0.1.7.tar.gz

    《Python库深度解析:aa-discord-ping-formatter-0.1.7》 在Python的广阔天地中,丰富的第三方库是其强大的基石之一。今天我们要深入探讨的是一个名为"aa-discord-ping-formatter"的库,版本号为0.1.7,它是一个...

    Windows网络实用工具集

    **Windows网络实用工具集——深度解析Ping命令** Ping是一个在网络管理中至关重要的工具,它基于ICMP(Internet Control Message Protocol)回送请求报文来测试网络连接。通过发送数据包到目标主机并接收其回应,...

    Windows网络实用工具大集合[定义].pdf

    《Windows网络实用工具大集合:深度解析Ping命令》 在Windows操作系统中,网络诊断和故障排查是一项重要的任务,而其中最常用的工具之一便是Ping。Ping是一个基于ICMP(Internet Control Message Protocol,网间...

    浅析网络命令在计算机网络工程中的应用 (1).pdf

    \n\n一、计算机网络工程的发展现状\n\n近年来,国内计算机网络工程取得了显著的进步,信息技术与计算机技术的深度融合为网络工程奠定了坚实基础。然而,快速发展的同时,安全问题频发,对网络工程的稳定性造成威胁。...

    ping_command_Explained.rar_网络编程_DOS_

    描述“ping命令祥解ping command Explained详细讲解了ping的各种命令,很不错的”表明该压缩包内包含的文档是对ping命令的深度解析,涵盖了各种参数和用法,对理解和使用ping命令有很好的指导价值。 **ping命令详解...

    XP.CMD命令大全

    ### XP.CMD命令大全:深度解析与应用 在Windows XP操作系统中,CMD(命令提示符)作为系统的核心组件之一,提供了丰富的命令集,用于执行各种系统管理任务、文件操作及网络配置等。以下是对给定文件中提到的部分CMD...

    全自动热点自动认证(自动认证网络、识别验证码、自动联网断网、切换登录用户、打开视频跑流量、ping ip).zip

    ping命令是网络诊断的基本工具,用于检查设备与特定IP地址之间的连通性。自动ping IP功能可以定期发送ping请求,监测网络状态,及时发现并报告网络故障。 总结来说,“全自动热点自动认证”技术是现代移动设备连接...

    网络通顺的测试命令和技巧.pdf

    `Ping` 是一个广泛使用的网络诊断工具,用于测试两台计算机之间的网络连接。通过发送ICMP回显请求报文,它能检查数据包是否能成功到达目的地并返回。在命令行中输入`ping [目的地址] [参数]`,如`ping 192.168.0.1 ...

Global site tag (gtag.js) - Google Analytics