PING的时候,TTL=50表示什么意思

PING的时候,TTL=50表示什么意思,第1张

TTL Time to Live,意思就是生存周期

首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回去复习OSI7层协议去。

第一个问题,为什么要有生存周期这个概念。

很显然,一个package从一台机器到另一台机器中间需要经过很长的路径,显然这个路径不是单一的,是很复杂的,并且很可能存在环路。如果一个数据包在传输过程中进入了环路,如果不终止它的话,它会一直循环下去,如果很多个数据包都这样循环的话,那对于网络来说这就是灾难了。所以需要在包中设置这样一个值,包在每经过一个节点,将这个值减1,反复这样操作,最终可能造成2个结果:包在这个值还为正数的时候到达了目的地,或者是在经过一定数量的节点后,这个值减为了0。前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。

其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是包是否到达了目的地而不是经过了几个节点后到达。但是TTL值还是可以得到有意思的信息的。

每个操作系统对TTL值得定义都不同,这个值甚至可以通过修改某些系统的网络参数来修改,例如Win2000默认为128,通过注册表也可以修改。而Linux大多定义为64。不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。

TTL(生存时间)

TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

使用多路复用的IP协议,TTL值表示一个包被转发的范围。有以下转换:0, 限制在同一主机 1, 限制在同一子网 32, 限制在同一节点 64, 限制在同一区域(region)128,限制在同一大陆(continent)255,

由于不同的操作系统的默认TTL值不同,因此有文章说可以通过返回的TTL值判断目标系统的类型,这是正确的,但不是TTL的功能,只是对TTL理解的一个应用。TTL的值可以修改。有些特殊的、系统(如NIDS)会定义特殊的TTL值,以拒绝非法访问数据进入。我们在执行PING命令时可以用-i参数指定TTL值,大家可以将TTL设置为0,则该包将被立即丢弃。有时我们执行了一个PING 命令,在繁华时却繁华了另一个地址,并带有一个英语的提示(大致意思是TTL无效),则表示该包在到达目标之前(也就是到返回IP位置时),包所带的TTL已经为0了或小于下一网段许可通过的TTL值了,该包已经被路由丢弃了。

ttl是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段。

在IPv4包头中TTL是一个8 bit字段,它位于IPv4包的第9个字节。如下图所示,每一行表示32 bit(4字节),位从0开始编号,即0~31。TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64。

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

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

TTL值的注册表位置:

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

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » PING的时候,TTL=50表示什么意思

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情