admin 管理员组

文章数量: 1086019


2024年4月18日发(作者:split shell)

Ping

1、 Ping的基础知识

Ping 是一个十分好用的TCP/IP工具。

[功能] 用来检测网络的连通情况和分析

2、 Ping命令详解

参数意思和使用。

-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 的远程计算机

Ctrl + c暂停

TTL:(Time To Live ) 生存时间

当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目

的主机,那么就自动丢失,出现Request timed out(请求超时)的情况

默认情况下,

Linux 系统的TTL值为64或255,

Windows NT/2000/XP 系统的默认TTL值为128,

Win7 系统的TTL值是64,

Windows 98 系统的TTL值为32,

UNIX 主机的TTL值为255

3、怎样使用Ping这命令来测试网络连通呢?

连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括

设备等造成的故障。

首先我们讲一下使用Ping命令的步骤。

使用Ping检查连通性有五个步骤:

1. 使用ipconfig /all观察本地网络设置是否正确,如图;

2. Ping 127.0.0.1(本地ip),127.0.0.1 回送地址Ping回送地址是为了检查本地的

TCP/IP协议有没有设置好;

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

4. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检

查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)

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

4、如何用Ping命令来判断一条链路好坏?

Ping这个命令除了可以检查网络的连通和检测故障以外,还有一个比较有趣的用

途,那就是可以利用它的一些返回数据,来估算你跟某台主机之间的速度是多少字节每秒

我们先来看看它有那些返回数据。

在例子中"bytes=32"表示ICMP报文中有32个字节的测试数据,"time=4ms"是往

返时间。 Sent 发送多个秒包、Received 收到多个回应包、Lost 丢弃了多少个Minmum

最小值 、MAXimun 最大值、Average 平均值。所在图上来看,来回只用了4MS 时

间,lost =0 即是丢包数为0,网络状态相当良好。 (更详细可以使用-n参数 “ping –n

100 IP地址” ping 100次。查看 Sent Received Lost Minmum MAXimun Average

这些值的变化。)

5、对Ping后返回信息的分析

t timed out

这是大家经常碰到的提示信息,很多文章中说这是对方机器置了过滤ICMP数据包,

从上面工作过程来看,这是不完全正确的,至少有下几种情况。

(1) 对方已关机,或者网络上根本没有这个地址:比如在上图中主机A中PING

192.168.0.7 ,或者主机B关机了,在主机A中PING 192.168.0.5 都会得到超时的信

息。

(2)对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存

在的,当然不存在也是返回超时的信息。

(3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。

怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如

果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,

多半是对方不存在或关机,或不在同一网段内。

【ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是

TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指

网络通不通、主机是否可达、路由是否可用等网络本身的消息。】

(4)错误设置IP地址

正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址

(这些地址一定要处于不同的IP子网)。但如果一台电脑的“拨号网络适配器”(相当于

一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这

样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机

Ping其他的机器时,会存在这样的问题:

A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。

B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机

器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提

示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目

的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功

Ping通这台机器了。

ation host Unreachable

(1) 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中

不设定默认的路由,运行Ping 192.168.0.1.4就会出现“Destination host

Unreachable”。

(2)网线出了故障

这里要说明一下“destination host unreachable”和 “time out”的区别,如果

所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候

会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现

“destination host unreachable”。 IP address

这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是

IP地址不存在。

quench received

这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。

n host——不知名主机

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

址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远

程主机之间的通信线路有故障。

answer——无响应

这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机

的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不

正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。

127.0.0.1---127.0.0.1是本地循环地址

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

rout to host---网卡工作不正常。

it failed,error code---10043网卡驱动不正常。

n host name---DNS配置不正确。

6.“Ping”的幕后过程

我们以下面一个网络为例:有A、B、C、D四台机子,一台路由RA,子网掩码均为

255.255.255.0,默认路由为192.168.0.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.5的MAC地址(物理地

址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链

路层构建一个数据帧。关键就在这里,IP层协议通过机器B的IP地址和自己的子网掩

码,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有

过通信,在A机的ARP缓存表应该有B机IP与其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返回一个超时的信息。

图1 网络示意图

对Ping后返回信息的分析

t timed out

这是大家经常碰到的提示信息,很多文章中说这是对方机器置了过滤ICMP数据包,

从上面工作过程来看,这是不完全正确的,至少有下几种情况。

(1) 对方已关机,或者网络上根本没有这个地址:比如在上图中主机A中PING

192.168.0.7 ,或者主机B关机了,在主机A中PING 192.168.0.5 都会得到超时的信息。

(2)对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存

在的,当然不存在也是返回超时的信息。

(3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。

怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如

果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,

多半是对方不存在或关机,或不在同一网段内。

(4)错误设置IP地址

正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址

(这些地址一定要处于不同的IP子网)。但如果一台电脑的“拨号网络适配器”(相当于

一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这

样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机

Ping其他的机器时,会存在这样的问题:

A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。

B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机

器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提

示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目

的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功

Ping通这台机器了。

ation host Unreachable

(1) 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中

不设定默认的路由,运行Ping 192.168.0.1.4就会出现“Destination host

Unreachable”。

(2)网线出了故障

这里要说明一下“destination host unreachable”和 “time out”的区别,如果

所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候

会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination

host unreachable”。

IP address

这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是

IP地址不存在。

quench received

这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回

应。

n host——不知名主机

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

址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远

程主机之间的通信线路有故障。

answer——无响应

这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机

的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不

正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。

127.0.0.1:127.0.0.1是本地循环地址

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

rout to host:网卡工作不正常。

it failed,error code:10043网卡驱动不正常。

n host name:DNS配置不正确。


本文标签: 路由 数据包 对方 设置 IP地址