PING的时候,TTL=240 或者249表示什么意思?

网吧里的光纤,ping的时候TTL值有时候会改变有时候是240有时候是249(是网通的DNS),并且网吧里的网速有时候还会卡。
拒绝大篇幅的专业术语复制,那样我会看不懂的。

TTL,表面意思为包的存活时间,但实际是个次数,跳转的次数。

当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。

当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。

不同操作系统发出的Ping数据包TTL值不同,不过大多为64,125,255这几种,你的ping命令返回TTL结果是64,说明此ping包没有经过路由器,你ping的是内网机器.


ping 命令,使用 /i 参数设置TTL值。

例:TTL设置为1,那么在第一个路由 192.168.0.1 就停止了,如图:


而直接ping 192.168.0.1 没有通过路由,所以TTL为1,还是可以ping 通。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-04-29
TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。所以需要在包中设置这样一个值,包在每经过一个节点,将这个值减1,反复这样操作,最终可能造成两个结果:包在这个值还为正数的时候到达了目的地,或者是在经过一定数量的节点后,这个值减为了0。前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。第二个问题,通过TTL值我们能得到什么其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是包是否到达了目的地而不是经过了几个节点后到达。但是TTL值还是可以得到有意思的信息的。每个操作系统对TTL值得定义都不同,这个值甚至可以通过修改某些系统的网络参数来修改,例如Win2000默认为128,通过注册表也可以修改。而 Linux大多定义为64。不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。如你看到112,可能是初始128,跳了16个节点,或者是初始160,跳了48次。
不同的操作系统,它的TTL值默认值是不相同的。默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。
第2个回答  2020-05-13
我来简单说下吧,首先了解三个数字,64代表linux设备,128代表windows设备,255代表路由器,ttl=249的意思:255-249=6,代表从你的电脑出发到目标机器,经过了6台路由器,不包含所ping的目标路由器。因为机器之间的路由器不能超过50,所以数字偏向255,所以你拼的设备是台路由器。但这个数字也不能绝对,因为ttl值能修改,所以能拼出100多的值 。
第3个回答  推荐于2017-09-14
TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间。

一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20本回答被提问者采纳
相似回答