大家写我也写这个东西,用搜索引擎去搜索,这样的文章一大堆,全部都是转载的,其实我也可以转载,但是仔细想想,没有用,转载过来是给别人看。如果自己写,那么这就是我的东西。
ping:packet internet Grope 因特网包探测器,用来测试网络的连通性。是ICMP协议的良好体现。ping命令的使用就是发送ICMP信息给目的,并收到ICMP应答消息,这样一个Ping才算完成。
ping的原理简单来说就是利用ICMP协议给目的主机发送数据包,目的主机接收之后,回应一个ICMP应答给源主机,然后由源主机体现出来。这样以证明该网络是连通的,还能确定目标主机的存在,目标主机的操作系统等等。
ping是windows自带的一个可执行命令。
使用方法:ping A.B.C.D
例如:
C:\>ping 192.168.1.100
Pinging 192.168.1.100 with 32 bytes of data:
Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
Reply from 192.168.1.100: bytes=32 time<1ms TTL=128
Ping statistics for 192.168.1.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
一)常用Ping命令的途径
1)测试主机TCP/IP协议栈
C:\>ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
127.0.0.1是环回地址,发送的数据包是给本机的,这样的话,如果本机的协议由问题,那么就会出现 Request timed out。由此判定:该机协议由问题——计算机网络连接设置有问题——网卡有问题。
2)ping网关
如果显示正常说明与网关连接正常,否则说明连通性有问题。
网关路由端口?软件?还是水晶头?网线?
都可以想到,于是就可以一步一步排查。
3)ping外网主机
If 显示正常,证明与外网连接状态良好;
If not,检查主机设置和网关。
注意:有的时候超时并不是网络不通,而是对方主机或者路由禁止ping。
4)把域名解析为IP地址
Reply from 220.181.37.4: bytes=32 time=88ms TTL=53
Reply from 220.181.37.4: bytes=32 time=108ms TTL=53
Reply from 220.181.37.4: bytes=32 time=54ms TTL=53
Reply from 220.181.37.4: bytes=32 time=54ms TTL=53
Ping statistics for 220.181.37.4:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 54ms, Maximum = 108ms, Average = 76ms
二)ping命令的高级应用
一般来说,只有在比较专业的网络领域才会用到高级应用。
具体参数解析:
-t :一直Ping指定的计算机,直到从键盘按下Control-C中断。
-a :将地址解析为计算机NetBios名。
-n :发送count指定的ECHO数据包数。,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助。能够测试发送数据包的返回平均时间,及时间的快慢程度。默认值为 4。
-l :发送指定数据量的ECHO数据包长度。默认为 32 字节;最大值是65500byt。
-f :在数据包中发送“不要分段”标志,数据包就不会被路由上的网关分段。通常你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
-i :将“生存时间”字段设置为TTL指定的值。指定TTL值在对方的系统里停留的时间。同时检查网络运转情况的。
-v :tos 将“服务类型”字段设置为 tos 指定的值。
-r :在“记录路由”字段中记录传出和返回数据包的路由。通常情况下,发送的数据包是通过一系列路由才到达目标地址的,通过此参数可以设定,想探测经过路由的个数。限定能跟踪到9个路由。
-s :指定 count 指定的跃点数的时间戳。与参数-r差不多,但此参数不记录数据包返回所经过的路由,最多只记 录4个。
-j :利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源) IP 允许的 最大数量为 9。
-k :computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格 源)IP 允许的最大数量为 9。
-w:timeout 指定超时间隔,单位为毫秒。
是不是有点头大?别着急么。只要知道了在哪儿该用什么,您就回很快记住它的。
-t 无休止的ping下去。测试对等网或者远程登陆router调试路由的时候,本地主机测试连通性,可以一直使用ping,当且仅当你把网络调试好之后,本地才会有ICMP回应数据包。此刻,你就知道了网络出错在什么地方了。
-a 有点像DNS。只不过是干本地活的。
-n 能够测试发送数据包的返回平均时间,及时间的快慢程度。
-l 测试网络的吞吐量
-i TTL,生存周期,为了测试网络链路的快速收敛,可以定义TTL。
还有几个命令更加是专业的了, 在这里我就不讲了。
还有:在路由器调试中,使用ping的方法很多,扩展ping是一种地地道道的专业可排查网络故障的好东西。