Ping是个使用频率极高的实用程序,只要是经常用电脑的认尤其是我们更应该了解这个,用了一会时间找了下资料,大致整理了下,ping用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。
Ping是个使用频率极高的实用程序,只要是经常用电脑的认尤其是我们更应该了解这个,用了一会时间找了下资料,大致整理了下,ping用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,我们就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数 据报交换并不表示TCP/IP配置就是正确的,我们必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
简单的说,Ping就是一个测试程序,如果Ping运行正确,我们大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,例如许多大型的网站就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据报而瘫痪的。
按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,我们应能得到4个回送应答。 Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time To Live存在时间)值,我们可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。
ping命令详解
Ping是用来进行网络连接测试的一个程序,其对应的文件名为“Ping.exe”(在Windows XP系统下该文件存在于 C:/Windows/System32文件夹下)。该工具的最简单的用法是: “Ping XXX.XXX.XXX.XXX”(XXX.XXX.XXX.XXX为欲测试的IP地址),根据不同的测试目的可以带上不同的参数。
Ping成功结果和失败结果的意思。
一、“Ping”成功的结果分析
例如输入“Ping 61.139.2.69”,显示如下信息:
Pinging 61.139.2.69 with 32 bytes of data:
Reply from 61.139.2.69: bytes=32 time=49ms TTL=250
Reply from 61.139.2.69: bytes=32 time=54ms TTL=250
Reply from 61.139.2.69: bytes=32 time=54ms TTL=250
Reply from 61.139.2.69: bytes=32 time=54ms TTL=250
Ping statistics for 61.139.2.69:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 43ms, Maximum = 44ms, Average = 43ms
上述结果的意思为:Ping命令用32字节(这是Windows默认发送的数据包大小,如要改变,则应该在后面加上 “-L 数据包大小”,如“Ping 61.139.2.69 -l 5000”表示要测试的数据包大小为5000字节)的数据包来测试能否连接到IP地址为“61.139.2.69”的主机;下面的四行“Reply from”表示本地主机已收到从被测试的机器上返回的信息——返回32个字节用了49或54毫秒,TTL为250。
友情提示:TTL((Time to Live)的意思是存在时间值,通过该值可以算出数据包经过了多少个路由器,方法是:用255减去返回的TTL值.,例如本例中返回250,则应该用255来减去250,得到5。
再下面的“Ping statistics”则表示发送了(sent)4个数据包(这是系统的缺省值,如要指定发送数据包的次数,则在后面加上“-n 次数”,如“Ping 61.139.2.69 –n 20”表示传送20次;如果希望一直Ping下去,则要在后面加上参数“-t”,此时要中断则需要按Ctrl+C),收到了(Receieved)4个,共丢失了(Lost)0个(即没有丢失),发送时间最小为49毫秒,最大54毫秒,平均时间为52毫秒。
二、Ping助你分析网络
1.测试本机网卡是否工作正常
输入“Ping 127.0.0.1”应该可以出现类似于上例的提示,如果出现的是四行“Request timeout”的提示,则说明网卡工作不正常,或者是本机的网络设置有问题。
2.检验网关配置
用Ping域外主机IP的方法可以检验网关的配置是否正确,通过查看从网络内主机向域外主机发送IP包能否送出来判断结果。如出现4行“Request timeout”的提示说明网关设置有错,网关配置正确则会返回传输时间和TTL等信息。
如果上网浏览网页总是收到“找不到该页”或者“该页无法显示”等提示信息,一般应检查DNS是否有问题,一则可以测试DNS服务器是否能够“Ping”通,另外还要测试DNS设置是否有错误。
3.测试DNS服务器是否能够Ping通
在命令行窗口中输入“Ping DNS服务器IP地址”,如果成功表明DNS服务器工作正常。例如“Ping 61.139.2.69”(这是笔者所在地的一台DNS服务器的地址)如果返回测试时间和TTL值等信息就表明正常,如果出现“Request timeout”错误,那很明显在浏览器中输入域名将不能访问网站。
4.测试DNS服务器配置是否正确
我们可以用Ping任一域名的方法来查看DNS服务器配置是否正确,如果可以将该域名解析成一个IP地址并返回测试信息说明配置无误,如出现“unknown Host Name”的提示,则说明DNS配置出错。
友情提示:①返回这个信息也可能是对方的主机有问题。②另一种检验方法是:直接在浏览器地址栏中输入网站服务器的IP地址,若可以连接说明网络通畅,但输入域名时不能连接就证明是DNS服务器设置不对或者是服务器出了问题。
5.测试某主机域名所对应的IP
在收发电子邮件时一般会先解析域名为IP然后再连接,如果想加快收发速度,可以先将邮件服务器的域名转换为IP然后保存在本机上,例如:要测试21cn.com的邮件发送服务器的IP,则输入“Ping smtp.21cn.com”,会得到其IP地址为“202.104.32.230”,将此地址填写到邮件客户端软件的服务器设置中,如在Foxmail中,则在账户属性中的邮件服务器中填入。
三、看懂出错提示信息
(1)No Answer:这种故障表明本机有一条通向中心主机的路由,但没有收到发给该中心主机的任何信息。原因可能是:中心主机没有工作、本机或中心主机网络配置不正确、本地或中心的路由器没有工作、通信线路有故障、中心主机存在路由选择问题,等等。
(2)Request Timed Out:超时错误,被测试的机器不能正常连接,原因可能是该主机此时未连接(如已关机)、或到路由器的连接有问题、或路由器不能通过,或对方主机使用了防火墙软件禁止进行Ping测试等等。
(3)Unknown Host Name:无法解析主机名字,可能是DNS设置不对,或者对方主机不存在。
四、ping命令参数
参照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]] [-wz 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时,对方就很有可能挡机,所以减速机:http://www.chinareducer.com.cn微软公司为了解决这一安全漏洞于是限制了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.
在“记录路由”字段中记录传出和返回数据包的路由。
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由除湿机:http://www.airkins.cn的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。
以下为示例:
C:\>ping -n