什么是生存时间 (TTL)?| TTL定义

生存时间 (TTL) 是指数据包在被路由器丢弃之前可存在于网络内部的时间或“跃点”数。TTL 还用于其他上下文中,包括 CDN 缓存和 DNS 缓存。

学习目标

阅读本文后,您将能够:

  • 定义生存时间 (TTL)
  • 说明 TTL 在网络中的用途
  • 了解其他使用 TTL 的情况

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

使用 Cloudflare CDN 提升性能

网络中的生存时间 (TTL) 是什么?

生存时间 (TTL) 是指数据包在被路由器丢弃之前可存在于网络内部的时间或“跃点”数。TTL 还用于其他上下文中,包括 CDN 缓存和 DNS 缓存。

TTL 的工作原理

信息数据包被创建并通过 Internet 发送时,有可能持续无限期地在路由器之间传递。为了减轻这种可能性,数据包在设计时带有称为生存时间或跃点限制的到期时间。数据包 TTL 可用于确定数据包已流通多长时间,并允许发送方通过 Internet 接收有关数据包路径的信息。

每个数据包都有一个用于存储数值的位置,该数值决定着数据包应继续在网络中移动的时间。路由器每次接收到一个数据包,都会从 TTL 计数中减一,然后将其传递到网络中的下一个位置。减去后,如果在任意时间点 TTL 计数等于零,则路由器将会丢弃该数据包并将 ICMP 消息发回给原始主机。

常用的网络命令 ping 和 traceroute 都使用 TTL。使用 traceroute 命令时,一串剩余计数越来越高的 TTL 的数据包流将通过 Internet 发送到目的地。由于连接的每一步都是其中一个数据包的最后一站,因此每个位置都会在丢弃数据包后向发送方返回 ICMP 消息。然后,ICMP 消息返回到发送方所花费的时间就可以用于确定到达网络上每个连续跃点所花费的时间。

ICMP traceroute 图解

TTL 还用于什么情况?

除了在互联网上跟踪路由数据包外,生存时间还用于在一定时间内缓存信息。某些网络用例以更传统的方式运行,而不是测量路由器之间的跳跃时间(每次跳跃之间的时间可能不同)。

Cloudflare CDN 这样的 CDN 通常使用 TTL 来确定在从源服务器获取新副本之前,应从 CDN 边缘服务器提供多长时间的缓存内容。通过正确设置源服务器获取之间的时间量,CDN 能够提供更新的内容,而无需将请求不断传播回源服务器。这种优化使 CDN 可以有效地从更靠近用户的位置提供内容,同时减少从源服务器开始所需的带宽。

DNS 记录的环境中,TTL 是一个数值,它确定 DNS 缓存服务器在连接到权威性 DNS 服务器并获取记录的新副本之前可以为 DNS 记录提供服务的时间。