ping命令到底在“ping”什么?

PING (Packet Internet Groper),因特网包探索器,作用是测试你到某一个IP之间的网络是否通畅,可以很好地帮助我们分析和判定网络故障。

Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。

在这里插入图片描述
(1)ping 127.0.0.1,如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。

(2)ping 本机的IP地址,用IPConfig查看本机IP,然后Ping该IP,通则表明网络适配器工作正常,不通则是网络适配器出现故障。

(3)ping 域名,验证是否可以连接外网,也就是是否可以上网。

在这里插入图片描述
根据ping不同的ip你就可以知道各种你要了解的网络状况。比如你不能上网了,你又不知道问题出在哪,那你先ping 192.168.1.1 这就是ping你到网关之间通不通。如果通,怎么你到网关之间的线路是通的,你就再ping www.sina.com.cn 看看你到新浪网通不通,如果通,那问题就出在电脑而不出在网络了,懂了吗?

ping是网络维护中最重要的一个网络命令,也是最常用的。如果把网络看成一根管子,你不知道哪儿不通,那ping命令就像是一根无限长的探针,用它在网络这跟管子里捅,捅到哪不通了就查出问题了。

ping的原理:
「ping」是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。ping是定位网络通不通的一个重要手段。

ping 命令是基于 ICMP 协议来工作的,「 ICMP 」全称为 Internet 控制报文协议( Internet Control Message Protocol)。ping 命令会发送一份ICMP回显请求报文给目标主机,并等待目标主机返回ICMP回显应答。因为ICMP协议会要求目标主机在收到消息之后,必须返回ICMP应答消息给源主机,如果源主机在一定时间内收到了目标主机的应答,则表明两台主机之间网络是可达的。

举一个例子来描述「ping」命令的工作过程:

假设有两个主机,主机A(192.168.0.1)和主机B(192.168.0.2),现在我们要监测主机A和主机B之间网络是否可达,那么我们在主机A上输入命令:ping 192.168.0.2
 

Ping命令是在日常网络管理维护工作中最常用到的命令之一,对于这个熟悉的命令,我们是否已经掌握了它的方方面面呢?本文就来全面深入地介绍一下ping命令,只有透彻地掌握了它的各个知识点,才能更好地利用它来为我们服务。

1. ping命令的基本原理
Ping命令利用ICMP协议进行工作,ICMP是Internet控制消息协议,用于在主机和路由器之间传递控制消息。Ping命令利用了ICMP两种类型的控制消息:“echo request”(回显请求)、“echo reply”(回显应答)。

比如在主机A上执行ping命令,目标主机是B。在A主机上就会发送“echo request”(回显请求)控制消息,主机B正确接收后即发回“echo reply”(回显应答)控制消息,从而判断出双方能否正常通信。其工作原理如图1所示。

全面掌握ping命令(一) ping命令的基本原理_网络运维与管理 ping 原理 icmp

 如果在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所采用的分组交换方式的特点。

TTL是 Time To Live的缩写,TTL是生存时间的意思。表示该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。

简单来说,TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。

TTL由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,则把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包,并向IP包的发送者发送 ICMP time exceeded消息,以防止数据包不断在IP互联网络上永不终止地循环。

扩展资料

TTL的功能特点

TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64。

虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。

TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。

TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小 1。

TTL值的注册表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ,其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。Windows系统设置后重启才生效。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值