ping工作原理.docx

上传人:b****4 文档编号:3694371 上传时间:2022-11-24 格式:DOCX 页数:8 大小:22.47KB
下载 相关 举报
ping工作原理.docx_第1页
第1页 / 共8页
ping工作原理.docx_第2页
第2页 / 共8页
ping工作原理.docx_第3页
第3页 / 共8页
ping工作原理.docx_第4页
第4页 / 共8页
ping工作原理.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

ping工作原理.docx

《ping工作原理.docx》由会员分享,可在线阅读,更多相关《ping工作原理.docx(8页珍藏版)》请在冰豆网上搜索。

ping工作原理.docx

ping工作原理

 PING工作原理

 一、什么是PING是

DOS命令,一般用于检测网络通与不通,也叫时延,其值越大,速度越慢 PING(PacketInternetGrope),因特网包探索器,用于测试网络连接量的程序。

Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。

 它是用来检查网络是否通畅或者网络连接速度的命令。

作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:

网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。

Ping是Windows系列自带的一个可执行命令。

利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。

应用格式:

PingIP地址。

该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。

ping指的是端对端连通,通常用来作为可用性的检查,但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。

严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。

通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑

二、PING的工作流程我们以下面一个网络为例:

有A、B、C、D四台机子,一台路由RA,子网掩码均为255.255.255.0,默认路由为192.168.0.1[1]

1.在同一网段内

 在主机A上运行“Ping192.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上运行“Ping192.168.1.4”后,开始跟上面一样,到了怎样得到MAC地址时,IP协议通过计算发现D机与自己不在同一网段内,就直接将交由路由处理,也就是将路由的MAC取过来,至于怎样得到路由的MAC,跟上面一样,先在ARP缓存表找,找不到就广播吧。

路由得到这个数据帧后,再跟主机D进行联系,如果找不到,就向主机A返回一个超时的信息。

三、PING测试

1.Ping本机IP

例如本机 IP地址为:

172.168.200.2。

则执行命令Ping172.168.200.2。

如果网卡安装配置没有问题,则应有类似下列显示:

Replayfrom172.168.200.2bytes=32time<10msPingstatisticsfor172.168.200.2PacketsSent=4Received=4Lost=00%lossApproximateroundtriptimesinmilli-secondsMinimum=0msMaxiumu=1msAverage=0ms如果在MS-DOS方式下执行此命令显示内容为:

Requesttimedout,则表明网卡安装或配置有问题。

将网线断开再次执行此命令,如果显示正常,则说明本机使用的IP地址可能与另一台正在使用的机器IP地址重复了。

如果仍然不正常,则表明本机网卡安装或配置有问题,需继续检查相关网络配置。

2.Ping网关IP

 假定网关IP为:

172.168.6.1,则执行命令Ping172.168.6.1。

在MS-DOS方式下执行此命令,如果显示类似以下信息:

Replyfrom172.168.6.1bytes=32time=9msTTL=255Pingstatisticsfor172.168.6.1PacketsSent=4Received=4Lost=0Approximateroundtriptimesinmilli-secondsMinimum=1msMaximum=9msAverage=5ms则表明局域网中的网关路由器正在正常运行。

反之,则说明网关有问题。

3.Ping远程

IP这一命令可以检测本机能否正常访问Internet。

比如江苏电信运营商的IP地址为:

202.102.48.141。

在MS-DOS方式下执行命令:

Ping202.102.48.141,如果屏幕显示:

Replyfrom202.102.48.141bytes=32time=33msTTL=252

Replyfrom202.102.48.141bytes=32time=21msTTL=252

Replyfrom202.102.48.141bytes=32time=5msTTL=252

Replyfrom202.102.48.141bytes=32time=6msTTL=252

Pingstatisticsfor202.102.48.141

PacketsSent=4Received=4Lost=00%loss

Approximateroundtriptimesinmilli-seconds

Minimum=5msMaximum=33msAverage=16ms

则表明运行正常,能够正常接入互联网。

反之,则表明主机文件(windows/host)存在问题。

对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。

 

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

ping命令的其他技巧:

在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在 100-130 之间,UNIX/Linux系列的系统返回的TTL而值在 240-255 之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:

[HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Tcpip\Parameters]

"DefaultTTL"=dword:

000000ff

255---FF

128---80

64----40

32----20

Ping是个使用频率极高的网络诊断程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。

根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。

需要注意的是:

成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。

 ===============================================

Ping的返回信息有"RequestTimedOut"、"DestinationNetUnreachable"和"BadIPaddress"还有"Sourcequenchreceived"。

"RequestTimedOut"这个信息表示对方主机可以到达到TIMEOUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。

大多数的原因可能是对方装有防火墙或已下线。

"DestinationNetUnreachable"这个信息表示对方主机不存在或者没有跟对方建立连接。

这里要说明一下"destinationhostunreachable"和"timeout"的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现"timeout",如果路由表中连到达目标的路由都没有,那就会出现"destinationhostunreachable"。

"BadIPaddress"这个信息表示你可能没有连接到DNS服务器所以无法解析这个IP地址,也可能是IP地址不存在。

"Sourcequenchreceived"信息比较特殊,它出现的机率很少。

它表示对方或中途的服务器繁忙无法回应。

===============================================

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

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

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

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

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

2.Ping127.0.0.1,127.0.0.1回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好;

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

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

5.Ping本地DNS地址,这样做是为了检查DNS是否能够将IP。

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

===============================================

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

1.RequestTimedOut"requesttimeout"这提示除了在《PING

(一)》提到的对方可能装有防火墙或已关机以外,还有就是本机的IP不正确和网关设置错误。

①、IP不正确:

IP不正确主要是IP地址设置错误或IP地址冲突,这可以利用ipconfig/all这命令来检查。

在WIN2000下IP冲突的情况很少发生,因为系统会自动检测在网络中是否有相同的IP地址并提醒你是否设置正确。

在NT中不但会出现"requesttimeout"这提示而且会出现"Hardwareerror"这提示信息比较特殊不要给它的提示所迷惑。

②、网关设置错误:

这个错误可能会在第四个步骤出现。

网关设置错误主要是网关地址设置不正确或网关没有帮你转发数据,还有就是可能远程网关失效。

这里主要是在你Ping外部网络地址时出错。

错误表现为无法Ping外部主机返回信息"Requesttimeout"。

2.DestinationHostUnreachable

当你在开始PING网络计算机时如果网络设备出错它返回信息会提示"destinationhostunreachable"。

如果局域网中使用DHCP分配IP时,而碰巧DHCP失效,这时使用PING命令就会产生此错误。

因为在DHCP失效时客户机无法分配到IP系统只有自设IP,它往往会设为不同子网的IP。

所以会出现"DestinationHostUnreachable"。

另外子网掩码设置错误也会出现这错误。

还有一个比较特殊就是路由返回错误信息,它一般都会在"DestinationHostUnreachable"前加上IP地址说明哪个路由不能到达目标主机。

这说明你的机器与外部网络连接没有问题,但与某台主机连接存在问题。

五、PING的各类反馈信息Requesttimedout[1]

a.对方已关机,或者网络上根本没有这个地址:

比如在上图中主机A中PING192.168.0.7,或者主机B关机了,在主机A中PING192.168.0.5都会得到超时的信息。

b.对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。

c.对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)怎样知道对方是存在,还是不存在呢,可以用带参数-a的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。

d.错误设置IP地址正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。

但如果一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。

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

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

B.主机不知道用哪个地址作为数据包的源地址。

因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping就会给出一个“超时无应答”的错误信息提示。

但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。

DestinationhostUnreachable

对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping192.168.0.1.4就会出现“DestinationhostUnreachable”。

网线出了故障

这里要说明一下“destinationhostunreachable”和“timeout”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“timeout”,如果路由表中连到达目标的路由都没有,那就会出现“destinationhostunreachable”。

BadIPaddress

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

Sourcequenchreceived这个信息比较特殊,它出现的机率很少。

它表示对方或中途的服务器繁忙无法回应。

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

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

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

故障原因可能是下列之一:

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

 Ping127.0.0.1:

127.0.0.1是本地循环地址

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

norouttohost:

网卡工作不正常。

transmitfailed,errorcode:

10043网卡驱动不正常。

unknownhostname:

DNS配置不正确。

pingUNIX命令

用途

发送一个回送信号请求给网络主机。

语法

ping[-d][-D][-n][-q][-r][-v][\-R][-aaddr_family][-cCount][-wtimeout][-f|-i\Wait][-lPreload][-pPattern][-sPacketSize][-Shostname/IPaddr]\[-L][-Ia.b.c.d.][-ointerface][-Tttl]Host[PacketSize]\[Count]

描述/usr/sbin/ping命令发送一个因特网控制报文协议(ICMP)ECHO_REQUEST去从主机或网关那里获得ICMPECHO_RESPONSE信号。

ping命令用于:

*确定网络和各外部主机的状态。

*跟踪和隔离硬件和软件问题。

*测试、评估和管理网络。

如果主机正在运行并连在网上,它就对回送信号进行响应。

每个回送信号请求包含一个网际协议(IP)和ICMP头,后面紧跟一个timeval 结构,以及来填写这个信息包的足够的字节。

缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。

ping命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。

ping命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。

ping命令在程序超时或当接收到SIGINT信号时结束。

Host参数或者是一个有效的主机名或者是因特网地址。

缺省情况下,ping命令将连续发送回送信号请求到显示器直到接收到中断信号(Ctrl-C).中断键可以使用 stty命令来更改。

由于连续回送信号请求会对系统造成一定的负载,重复的请求信号应当主要用作问题隔离。

标志

-cCount指定要被发送(或接收)的回送信号请求的数目,由Count变量指出。

-wtimeout这个选项仅和-c选项一起才能起作用。

它使ping命令以最长的超时时间去等待应答(发送最后一个信息包后)。

-d开始套接字级别的调试。

-D这个选项引起ICMPECHO_REPLY信息包向标准输出的十六进制转储。

-f指定flood-ping选项。

-f标志“倾倒”或输出信息包,在它们回来时或每秒100次,选择较快一个。

每一次发送ECHO_REQUEST,都打印一个句号,而每接收到一个ECHO_REPLY信号,就打印一个退格。

这就提供了一种对多少信息包被丢弃的信息的快速显示。

仅仅root用户可以使用这个选项。

注:

这在网络上将非常困难,必须小心使用。

Floodping命令仅仅root用户可以使用。

-f标志与-iWait标志不兼容。

-Ia.b.c.d指定被a.b.c.d标明的接口将被用于向外的IPv4多点广播。

-I标志是大写的i。

-ointerface指出interface将被用于向外的IPv6多点广播。

接口以“en0”,“tr0”等的形式指定。

-iWait在每个信息包发送之间等待被Wait变量指定的时间(秒数)。

缺省值是在每个信息包发送之间等待1秒。

这个选项与-f标志不兼容。

-L对多点广播ping命令禁用本地回送。

-lPreload在进入正常行为模式(每秒1个)前尽快发送Preload变量指定数量的信息包。

-l标志是小写的L。

-n指定仅输出数字。

不企图去查寻主机地址的符号名。

-pPattern指定用多达16个“填充”字节去填充你发送的信息包。

这有利于诊断网络上依赖数据的问题。

例如,-pff全部用1填充信息包。

-q指定静默输出。

除了在启动和结束时显示总结行外什么也不显示。

-r忽略路由表直接送到连接的网络上的主机上。

如果主机不在一个直接连接的网络上,ping命令将产生一个错误消息。

这个选项可以被用来通过一个不再有路由经过的接口去ping一个本地主机。

-R指定记录路由选项。

-R标志包括ECHO_REQUEST信息包中的RECORD_ROUTE选项,并且显示返回信息包上的路由缓冲。

 注:

IP头仅仅大到适合9个这样的路由。

而且,许多主机和网关忽略这个选项。

-aaddr_family映射ICMP信息包的目的地址到IPv6格式,如果addr_family等于“inet6”的话。

-sPacketSize指定要发送数据的字节数。

缺省值是56,当和8字节的ICMP头数据合并时被转换成64字节的ICMP数据。

-Shostname/IPaddr将IP地址用作发出的ping信息包中的源地址。

在具有不止一个IP地址的主机上,可以使用-S标志来强制源地址为除了软件包在其上发送的接口的IP地址外的任何地址。

如果IP地址不是以下机器接口地址之一,则返回错误并且不进行任何发送。

-Tttl指定多点广播信息包的生存时间为ttl秒。

-v请求详细输出,其中列出了除回送信号响应外接收到的ICMP信息。

参数

PacketSize指定了要发送数据的字节数。

缺省值是56,当和8字节的ICMP头数据合并时被转换成64字节的ICMP数据。

包含这个参数是为了和以前的ping命令版本相兼容。

Count指定了要发送(接收)的回送信号请求的数目。

包含这个参数是为了和以前的ping命令版本相兼容。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1