北海亭-最简单实用的电脑知识、IT信息技术网站

北海亭-最简单实用的电脑知识、IT技术学习个人站

当前位置: 北海亭 > 疑难解答 > 网络故障 >

Ping值中“TTL”是什么意思,为什么使用“TTL”这个概念?

时间:2012-09-01 15:01来源:未知 作者:草房子 点击:
Ping值中 TTL含义 是什么, 为什么使用TTL 的这个概念?TTL:(Time To Live ) 生存时间,指定数据包被路由器丢弃之前允许通过的网段数量。TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小

  Ping值中“TTL”含义是什么,为什么使用“TTL”的这个概念?TTL:(Time To Live ) 生存时间,指定数据包被路由器丢弃之前允许通过的网段数量。TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小1。 很显然,一个package (数据包)从 “一台机器” 到 “另一台机器” 中间需要经过很长的路径,显然这个路径不是单一的,是很复杂的,并且很可能存在环路。如果一个数据包在传输过程中进入了环路,如果不终止它的话,它会一直循环下去,如果很多个数据包都这样循环的话,那对于网络来说这就是灾难了。所以需要在“包”中设置这样一个值,包在每经过一个节点(路由器、工作站、服务器), 就将 “TTL 这个值减 1”,反复这样操作,最终可能造成2 个结果:

  1、包在这个值还为正数的时候到达了目的地

  2、或者是在经过一定数量的节点后,这个值减为了0。

  前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为 0 的时候,网络设备将不会再传递这个包而是 直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。 其实TTL 值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是:包是否 到达了“目的地”而不是经过了几个节点后到达。

  通过“TTL”判断被Ping电脑是什么操作系统

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

  以下面2 台机器为例,看如下命令

  第一台电脑,运行命令框中输入ping 61.152.93.131 -t回车后

  Pinging 61.152.93.131 with 32 bytes of data:

  Reply from 61.152.93.131: bytes=32 time=21ms TTL=118

  Reply from 61.152.93.131: bytes=32 time=19ms TTL=118

  Reply from 61.152.93.131: bytes=32 time=18ms TTL=118

  Reply from 61.152.93.131: bytes=32 time=22ms TTL=118
  Ping statistics for 61.152.93.131: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss Approximate round trip times in milli-seconds: Minimum = 18ms, Maximum = 22ms, Average = 20ms

  第二台电脑,运行命令框中输入ping 61.152.104.40 -t回车后

  Pinging 61.152.104.40 with 32 bytes of data:

  Reply from 61.152.104.40: bytes=32 time=28ms TTL=54

  Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

  Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

  Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

  Ping statistics for 61.152.104.40: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss Approximate round trip times in milli-seconds: Minimum = 13ms, Maximum = 28ms, Average = 19ms

  第一台 TTL 为118,则基本可以判断这是一台Windows 机器,从我的机器到这台机器经过 了10 个节点,因为 128-118+1=11。而第二台应该是台 Linux,理由一样 64-54+1=11。

  了解了上面的东西,可能有人会有一些疑问,例如以下:

  1、不是说包可能走很多路径吗,为什么我看到的4 个包 TTL 都是一样的,没有出现不同?

  回答:这是由于包经过的路径是经过了一些最优选择算法来定下来的,在网络拓扑稳定一段时间后,包的路由路径也会相对稳定在一个最短路径上。具体怎么算出来的要去研究路由算法了,不在讨论之列。

  2、对于上面例子第二台机器,为什么不认为它是经过了74 个节点的Windows 机器?因为128-74=54。

  回答: 对于这个问题, 我们要引入另外一个很好的 ICMP 协议工具。下一节我们将要一起学习:什么是路由器追踪命令,Tracert命令有什么作用?

(责任编辑:IT信息技术民工)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容