admin管理员组

文章数量:1530861

2023年12月22日发(作者:)

用PING命令Ping通显示的数据是什么意思?

Ping 命令可以用来验证与远程计算机的连接 (该命令只有在安装了TCP/IP协议后才能使用)

Pinging 192.168.1.1 with 32 bytes of data:

Reply from 192.168.1.1: bytes=32 time=1ms TTL=254

Reply from 192.168.1.1: bytes=32 time<1ms TTL=254

Reply from 192.168.1.1: bytes=32 time<1ms TTL=254

Reply from 192.168.1.1: bytes=32 time<1ms TTL=254

Ping statistics for 192.168.1.1:

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

Approximate round trip times in milli-seconds:

Minimum = 45ms, Maximum = 57ms,Average = 50ms.

(1)Pinging 192.168.1.1 with 32 bytes of data: 是什么意思?

正在用大小为32比特的数据包ping IP为192.168.1.1的主机

(2)Reply from 192.168.1.1: bytes=32 time=1ms TTL=254是什么意思?

第一个发送到192.168.1.1的“32比特”的数据包返回,大小为32比特(bytes=32 ),往返用时1毫秒(time=1ms ),生命值为254(TTL=254 ),TTL即time to live(生命值)

(3)Reply from 192.168.1.1: bytes=32 time=1ms TTL=254是什么意思?

第二个发送到192.168.1.1的“32比特”的数据包返回,大小为32比特(bytes=32 ),往返用时1毫秒(time=1ms ),生命值为254(TTL=254 ),TTL即time to live(生命值)

以下依次类推一直到第3个、第4个,其结果都相同。

(4)Ping statistics(统计) for 192.168.1.1是什么意思?

Ping IP地址为192.168.1.1这个主机的统计结果

(5)Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)是什么意思?

Packets:sent = 4------是指一共发送了4个PING 包(数据包)

Received = 4——是指接受到4个ping包,这里是他发送给别的机器4个包然后别的机器回应他的4个包

lost = 0(0% loss), 表示他所发出的包都有回应 没有丢失的数据包

发送4个数据包,收到了4个数据包,丢失率为0%

(6)Approximate round trip times in milli-seconds:是什么意思?

milli-seconds——千分之一秒(1毫秒)

Approximate round trip times——环绕航行的时间大约为

数据包环绕航行(发送到接收到确认信息)来回时间大约在千分之一秒(1毫秒)左右

(7)Minimum = 45ms, Maximum = 57ms,Average = 50ms是什么意思?

表示最小用时45ms,最大用时57ms 平均用时间50ms

使用ping命令后,常见的出错信息通常分为3种:

ping是一个很常用的小工具,它主要用于确定网络的连通性问题。使用ping命令后,常见的出错信息通常分为3种:

1、 Unknown host:不知名主机这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。

故障原因可能是:域名服务器DNS有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。

2、 Noanswer:无响应这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信·息。

故障原因可能是下列之一:中心主机没有工作;

本地或中心主机网络配置不正确:

本地或中心的路由器没有工作:

通信线路有故障;中心主机存在路由选择问题。

3、 Request timed out:响应超时(客户机与中心主机的连接超时)数据包全部丢失。

原因:可能是到路由器的连接出现问题,或路由器不能通过,也可能是中心主机已经关机或死机。

Ping命令的语法格式:

注意:

Ping命令的具体语法格式:ping 目的地址 [参数1] [参数2]……

其中“目的地址”是指被测试计算机的IP地址或域名。主要参数有:

a:解析主机地址——ping KQ(网络中一台主机的名称) -a

即:通过ping【KQ】这个主机名称,然后解析出【KQ】这个主机的IP地址是多少

n 数据:发出的测试包的个数,缺省值为4——ping –n 5

即:发送5个数据包给来测试本地到百度服务器的网络线路

l 数值:所发送缓冲区(即数据包)的大小,系统默认为32 bytes

ping 192.168.1.250 –l 500 即:所发送数据包的大小定义为500(字节bytes)

t:继续执行Ping命令,直到用户按Ctrl/C终上。

Ping 192.168.1.250 –t ——即:一直ping IP地址为192.168.1.250的这台主机,直到用户键入Ctrl+C终上

(1)用Ping命令检测另外一台计算机中的 “线路/TCPIP” 工作是否正常,则只要在开始菜单下的 “运行” 子项中键入Ping192.168.1.250就可以了。如果“线路/TCPIP” 工作正常,即会以DOS

屏幕方式显示如下所示的信息:

Pinging 192.192.225.225 with 32 byteS of dara:

Reply from 192.192.225,225:bytes=32 time=lms TTL二128

Reply from 192.192,225.225:bytes=32 time<1mS TTL=128

Reply from 192.192.225.225:byteS’32 timeReply from 192.192.225.225:byteS‘32 timePing StatiStiCe for 192.192.225.225:

PacketS:Sent二4,ReceiVed二4,LOSt二0(0%lOSS)

Approximate round trip timeS in milli-secondS:

Minimum=Oms,Maximum=1mS,Average=OmS

如果网络有问题,则返回如下所示的响应失败信息:

Pinging 192.192,225.225 with 32 bytes of data

Reque timed out.(请求超时)

Reque timed out.(请求超时)

Reque timed out.(请求超时)

Ping StatiStiCe for 192.192.225,225:

PacketS:Sent=4,ReceiVed二0,LOSt\二4(100%lOSS)

Minimum‘0ms,Maximum=OmS,Average’0mS

网络故障,建议从以上几个方面来着手排查:

《1》是看被测试计算机是否已安装了TCP/IP协议

《2》是检查一下被测试计算机的:网卡安装是否正确且是否已经连通

《3》重新安装一下 “TCP/IP” 协议试一下,如果是TCP/IP协议的问题,这时绝对可以彻底解决。

(2)为什么要有 “生存周期” 的这个概念。(TTL—time to live)

很显然,一个package从 “一台机器” 到 “另一台机器” 中间需要经过很长的路径,显然这个路径不是单一的,是很复杂的,并且很可能存在环路。如果一个数据包在传输过程中进入了环路,如果不终止它的话,它会一直循环下去,如果很多个数据包都这样循环的话,那对于网络来说这就是灾难了。

所以需要在 “包” 中设置这样一个值,包在每经过一个节点(路由器、工作站、服务器),就将 “TTL这个值减1”,反复这样操作,最终可能造成2个结果:

《1》包在这个值还为正数的时候到达了目的地

《2》或者是在经过一定数量的节点后,这个值减为了0。

前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。

其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是:包是否到达了 “目的地” 而不是经过了几个节点后到达。

(3)每个操作系统对 “TTL” 值得定义都不同,这个值甚至可以通过——修改某些系统的 “网络参数” 来修改:

例如Win2000默认为128,通过注册表也可以修改。

而Linux大多定义为64。

不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。

(4)以我公司2台机器为例

看如下命令

D:Documents and Settingshx>ping 61.152.93.131

Pinging 61.152.93.131 with 32 bytes of data:

Reply from 61.152.93.131: bytes=32 time=21ms TTL=118

Reply from 61.152.93.131: bytes=32 time=19ms TTL=118

Reply from 61.152.93.131: bytes=32 time=18ms TTL=118

Reply from 61.152.93.131: bytes=32 time=22ms TTL=118

Ping statistics for 61.152.93.131:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 18ms, Maximum = 22ms, Average = 20ms

D:Documents and Settingshx>ping 61.152.104.40

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.104.40: bytes=32 time=28ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Ping statistics for 61.152.104.40:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 13ms, Maximum = 28ms, Average = 19ms

第一台TTL为118,则基本可以判断这是一台Windows机器,从我的机器到这台机器经过了10个节点,因为128-118+1=11。而第二台应该是台Linux,理由一样64-54+1=11。

(2)了解了上面的东西,可能有人会有一些疑问,例如以下:

《1》不是说包可能走很多路径吗,为什么我看到的4个包TTL都是一样的,没有出现不同?

回答:这是由于包经过的路径是经过了一些最优选择算法来定下来的,在网络拓扑稳定一段时间后,包的路由路径也会相对稳定在一个最短路径上。具体怎么算出来的要去研究路由算法了,不在讨论之列。

《2》对于上面例子第二台机器,为什么不认为它是经过了74个节点的Windows机器?因为128-74=54。

回答:对于这个问题,我们要引入另外一个很好的ICMP协议工具。不过首先要声明的是,一个包经过74个节点这个有些恐怖,这样的路径还是不用为好。

(3)要介绍的这个工具是:ICMP协议工具——Tracert(*nix下为Traceroute),让我们来看对上面的第二台机器用这个命令的结果

D:Documents and Settingshx> tracert 61.152.104.40

Tracing route to 61.152.104.40 over a maximum of 30 hops

1 13 ms 16 ms 9 ms 10.120.32.1

2 9 ms 9 ms 11 ms 219.233.244.105

3 12 ms 10 ms 10 ms 219.233.238.173

4 15 ms 15 ms 17 ms 219.233.238.13

5 14 ms 19 ms 19 ms 202.96.222.73

6 14 ms 17 ms 13 ms 202.96.222.121

7 14 ms 15 ms 14 ms 61.152.81.86

8 15 ms 14 ms 13 ms 61.152.87.162

9 16 ms 16 ms 28 ms 61.152.99.26

10 12 ms 13 ms 18 ms 61.152.99.94

11 14 ms 18 ms 16 ms 61.152.104.40

Trace complete.

从这个命令的结果能够看到从 “我的机器” 到 “服务器” 所走的路由,确实是11个节点(上面说10个好像是我犯了忘了算0的错误了,应该是64-54+1,嘿嘿),而不是128的TTL经过了70多个节点。

既然已经说到这里了,不妨顺便说说关于这两个ICMP命令的高级一点的东西。 首先是“ping命令”,其实ping有这样一个参数,可以无视操作系统【默认TTL值】而使用自己定义的值来发送ICMP Request包。

《1》例如:还是用那台Linux机器,用以下命令:

D:Documents and Settingshx> ping 61.152.104.40 -i 11

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.104.40: bytes=32 time=10ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Reply from 61.152.104.40: bytes=32 time=10ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Ping statistics for 61.152.104.40:

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

Approximate round trip times in milli-seconds:

Minimum = 10ms, Maximum = 13ms, Average = 11ms

【ping 61.152.104.40 -i 11】这个命令我们定义了发包的TTL为11,而前面我们知道,我到这台服务器是要经过11个节点的,所以这个输出和以前没什么不同。现在再用这个试试看:

《2》例如:还是用那台Linux机器,用以下命令:

D:Documents and Settingshx> ping 61.152.104.40 -i 10

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.99.94: TTL expired in transit.

Reply from 61.152.99.94: TTL expired in transit.

Reply from 61.152.99.94: TTL expired in transit.

Reply from 61.152.99.94: TTL expired in transit.

Ping statistics for 61.152.104.40:

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

Approximate round trip times in milli-seconds:

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

可以看到,结果不一样了,我定义了TTL为10来发包,结果是TTL expired in transit.就是说在到达服务器之前这个包的生命周期就结束了。

注意看这句话【前面的ip=61.152.99.94:】,这个ip恰好是我们前面tracert结果到服务器之前的最后1个ip,包的TTL就是在这里减少到0了,根据我们前面的讨论,当TTL减为0时设备会丢弃包并发送一个TTL过期的ICMP反馈给源地址,这里的结果就是最好的证明。

Ping参数说明 :

-t :一直Ping指定的计算机,直到从键盘按下Control-C中断

-a :将地址解析为计算机NetBios名

-n :发送count指定的ECHO数据包数,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助能 够测试发送数据包的返回平均时间,及时间的快慢程度默认值为 4

-l :发送指定数据量的ECHO数据包默认为 32 字节;最大值是65500 byte

-f :在数据包中发送不要分段标志,数据包就不会被路由上的网关分段通常你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理

-i :将生存时间字段设置为TTL指定的值指定TTL值在对方的系统里停留的时间同时检查网络运转情况的

-r :在记录路由字段中记录传出和返回数据包的路由,发送的数据包是通过一系列路由才到达目标地址的,通过此参数可以设定,想探测经过路由的个数限定能跟踪到9个路由

一般情况下,通过ping目标地址,可让对方返回TTL值的大小,通过TTL值可以粗略判断目标主机的系统类型是Windows还是UNIX/Linux,一般情况下Windows系统返回的TTL值在100-130之间,而UNIX/Linux系统返回的TTL值在240-255之间但TTL的值是可以修改的故此种方法可作为参考.

Ping能够以 毫秒 (milli-seconds千分之一秒) 为单位显示发送请求到返回应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time To Live生存时间)值,你可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回时的TTL略大一个2的乘方数,如21、22、23…)—返回时TTL值。

数据包已经通过了多少个路由器=源地点TTL起始值(就是比返回时的TTL略大一个2的乘方数,如21、22、23…)— 返回时TTL值

例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。

这应当从网络的层次讲起:

首先,PING命令是属于ICMP协议规定的,而ICMP是内嵌于IP层的,因此,可以说,PING是网络层的命令。

PING的实现过程很简单——【Ping命令】将通过【网络层ICMP协议】引发【IP层】发送一个简单的IP包,而 “目的方” 收到这个包之后,将 “源地址” 和 “目的地址” 做一下交换,

重新发出这个包即可,当然还要加一些超时的机制。

简单来说,为了避免数据包在网路上的传送路径造成死循环或者无休止的投递下去,每个ip数据包都包含乐一个寿命计数器,这个就是数据包的的生存时间TTL,也叫hop count,只要【一个路由器】处理过这个数据包,它就递减这个数据包的寿命计数,当寿命计数递减到0的时候,路由器就丢弃该包.

首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回去复习OSI7层协议去。

本文标签: 数据包路由命令发送网络