您好,登录后才能下订单哦!
ping命令是在日常网络管理维护工作中最常用到的命令之一
比如在主机A上执行ping命令,目标主机是B。在A主机上就会发送“echo request”(回显请求)控制消息,主机B正确接收后即发回“echo reply”(回显应答)控制消息,从而判断出双方能否正常通信。其工作原理如图1所示。
如果在A主机上能够ping通B主机,那么主机A上显示的信息就是从主机B上返回来的“回显应答”。如果不能ping通,主机A上显示的信息则是由系统自身所产生的错误提示。
在Windows系统中,默认情况下,每次执行ping命令会发送4个“回显请求”消息,每个消息的数据包大小为32字节,如果一切正常,应能收到4个同样为32字节大小的“回显应答”消息。其格式如下:
Reply from ...(IP):bytes=32 time<1ms TTL=128
在这些“回显应答”中包含了丰富的信息:
通过回显应答中的“time”时间,可以大致的推断出网速情况,数据传递经过的时间越长,网速越慢。
回显应答中的“TTL”,即数据包的生存周期。每个系统对其所发送的数据包都要赋一个TTL的初始值,默认情况下,
Windows XP系统为128,Win7系统为64,Linux系统为64或255(当然,系统的TTL值都是可以修改的)。数据包每经过一次路由,TTL值就要减1,所以通过TTL值,
我们既可以大概地推算出对方主机所用的操作系统,又可以推断出在数据包在传送过程中经过了多少次路由。比如,在执行“ping www.baidu.com”命令时,
回显应答中显示的TTL值为52,则首先可以大概推断出百度使用的是Linux系统,其次可以得知数据在传送过程中经过了12次路由。
这点可以通过tracert命令进行验证,执行“tracert www.baidu.com”命令,
发现数据包正是经过了12次路由。tracert也是一个利用ICMP协议工作的命令,它的原理非常巧妙:它向指定的目的主机发送多次回显请求消息,并把封装该消息的数据包的TTL值从1开始递增。即tracert命令第一次发送出去的数据包的TTL为1,这些数据包在经过第一个路由器时,TTL值便被减为了0,这台路由器就要将数据包丢弃,并同时向源主机发回一个回显应答消息,通过这种方式就获得了数据包所经过的第一台路由器的信息。通过这种递进的查询过程,查询端就可以追踪到达目的主机所经过的所有路由器的情况。
另外,大家可能会发现,每次执行tracert命令所查询到路径都不大一样,这是完全正常的,数据包每次传送时采用不同的路径,这正是Internet所采用的分组交换方式的特点
Request timed out(请求超时)
出现这种提示,表示网络不通,但具体故障原因要视实际网络情况而定。
另外还有一种错误提示为:
Destination host unreachable(目的主机不可达)
出现这种提示,则通常是因为没有设置网关或网关设置不正确而导致的。
比如,一台主机的IP地址为192.168.0.10/24,默认网关为192.168.0.1。在这台主机上随便ping另外一个网段中的不存在的IP,如“ping 172.16.1.10”,因为这个IP根本不存在,所以肯定无法ping通,但此时发送方主机的“回显请求”消息已发送给了网关,只是网关无法将其转发给目的主机,因而此时显示的错误提示就为“Request timed out”(请求超时)。
接下来将这台主机的默认网关删掉,再次执行“ping 172.16.1.10”命令,此时由于没有网关为其转发数据,因而发送方主机根本不会将“回显请求”消息发送出去,此时显示的错误提示就为“Destination host unreachable”(目的主机不可达),即根本找不到数据发送的路径。
因而通过ping命令不同的错误提示,我们可以大致地判断出故障原因。
① 首先ping网关,如果能够ping通,则证明内部网络没有问题,问题应该出在外部网络。
② 如果网关能够ping通,接下来再ping某个网址,比如“ping www.baidu.com”,测试能否将网址解析为IP,以确认是否DNS服务器设置错误。
③ 如果在步骤①中ping网关不通,则证明问题出在内部网络。此时可以测试能否ping通内网中的其它电脑,如果不能ping通,则证明是我们自己的电脑或是网线出了问题;如果能ping通,问题则与我们的电脑或网线无关,而多半是内部网络的某处出现了故障。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。