什么是生存时间 (TTL)?

计算机程序员坐在办公室的办公桌前使用笔记本电脑的肖像

作者

Camilo Quiroz-Vázquez

IBM Staff Writer

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

什么是生存时间 (TTL)?

生存时间 (TTL) 是一个值,用于定义数据包或记录被丢弃或重新验证之前应在网络、计算机或服务器上存在的时间。

TTL 值是根据不同功能的独特需求而测量的时间限制。生存时间用于多种环境,包括网络、数据缓存、内容交付网络缓存和域名系统 (DNS) 缓存。

例如,DNS 记录中的 TTL 值告诉递归解析器或本地解析器,在联系权威服务器获取新副本之前,将 DNS 记录缓存多长时间。

网络中,Internet Protocol 数据包(IP 数据包)标头中设置的 TTL 值会告诉网络路由器数据包何时过期或达到“跳跃限制”并应被丢弃。当路由器确定数据包已过期时,它会向主机发回互联网控制消息协议 (ICMP) 消息,并丢弃该数据包。

TTL 用于删除无法送达的数据包,并降低数据包在各个路由器之间无限反弹的风险。这样可以防止这些过期的数据包堵塞系统,提高内容交付速度并减少网络延迟

TTL 还用于 ping 和 traceroute 等计算机网络实用程序,以识别网络上的主机、绘制数据通过网络传输的路径并测量数据包通过网络从一个点移动到另一个点所需的时间。

高速公路鸟瞰图

在云端保持清醒头脑 


获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。

TTL 的工作原理是什么?

在网络中,数据和 IP 数据包中嵌入了一个数值,表示数据包应在网络上存在的时间长度。TTL 值的范围从 1 到 255。不同的操作系统支持不同的默认 TTL 值;不过,管理员可以根据组织用例、偏好或要求修改 TTL 值。

每次数据包通过路由器等网络设备时,路由器都会将 TTL 字段值减少 1。通过网络设备的每一通道称为一个“跳跃”。一旦 TTL 值达到零,就会向数据包来源的主机服务器发送一条 ICMP 消息,并丢弃该数据包。管理数据包的生命周期可以防止它们陷入路由循环。这有助于减少网络拥塞并改进负载均衡、资源优化和内容交付。

NS1 Connect

IBM NS1 Connect

使用 IBM NS1 Connect 增强网络弹性。我们将在本视频中讨论 IBM NS1 Connect 在应用程序弹性和性能方面的价值。

TTL 和 DNS

DNS TTL 是指 DNS 服务器可以提供缓存 DNS 记录的时间长度。它就像 DNS 记录上的到期日期,告诉本地解析器应将记录在缓存中保留多长时间。

DNS 解析是将域名转换为 Internet Protocol (IP) 地址并将用户连接到网站的过程。它涉及从多个 DNS 服务器检索 DNS 记录中存储的信息,并从递归或本地 DNS 解析器开始。互联网服务提供商 (ISP) 通常提供并管理递归解析器。

当用户在 Web 浏览器中输入域名(启动 DNS 查询)时,递归解析器会查询一系列权威服务器,以获取指示域的 IP 地址的 A 记录(IPv4 地址为 A 记录,IPv6 地址为 AAAA 记录)。

但是,如果本地解析器已经具有解析查询所需的记录,它可以直接连接用户,而无需继续 DNS 查找过程。这种高效的过程可以减少权威服务器上的查询负载,并显著提高用户连接到网站的速度。TTL 值以秒为单位,并决定本地缓存服务器在联系权威服务器接收当前记录副本之前可以提供 DNS 记录的时间长度。

大多数 IP 地址都是动态的,并会随着时间的推移而变化,这意味着 DNS 记录所保存的信息必须更新以反映这些变化。TTL 设置可确保以适当的时间间隔停用和更新记录,从而协助此过程。

对于持续刷新或更新内容的网站来说,较短的 TTL 值是一种战略选择。这些较低 TTL 值有助于确保服务器上缓存的记录保持最新,并且近乎实时地传播记录更改。另一方面,较长的 TTL 值用于更改频率较低的 DNS 记录,例如 TXT 记录(包含与域的配置和所有权相关的信息)和 MX 记录(将电子邮件定向到电子邮件服务器)。

TTL 值影响连接到权威名称服务器的查询量。如果 DNS 缓存将记录保存的时间过长,则记录的更改需要更长的时间来传播,因此可能会减慢用户的搜索速度或导致出现错误消息。如果 TTL 值不必要地偏低,组织将面临查询导致服务器过载的风险。托管 DNS 解决方案可用于帮助确保最大运行时间、简化可观察性以及快速响应和传播时间。

SOA TTL

在每个 DNS 区域的顶部,在起始授权记录 (SOA) 中,有 5 个 TTL 值在 DNS 中起着更高的作用。建议不要修改这些 TTL,除非您有非常特殊的需求,但这种情况通常非常罕见。

SOA TTL:刷新 SOA 记录的间隔。

刷新 TTL:
将辅助服务器(辅助 DNS)设置为从主服务器刷新主区域文件的间隔。

重试 TTL:如果初始刷新失败,辅助服务器将重试刷新主区域文件的速率。

过期 TTL:如果刷新重试反复失败,则在此时间段之后,应将主数据库视为已消失,并且不再对给定区域具有权威性。

NX TTL:如果域请求导致不存在的查询 (NXDOMAIN),这是递归器返回 NXDOMAIN 响应所需的时间。

TTL 和 CDN

内容交付网络 (CDN) 是位于地理分散区域的服务器网络,它通过从距离用户最近的服务器向用户分发内容来实现更快的网络性能。CDN 使用生存时间值来确定内容在边缘服务器上存储的时间长度。

一旦 TTL 到期,将从源服务器刷新内容。如果校准得当,TTL 有助于向用户交付内容,而无需将请求传播回源服务器。这样可以加快内容交付速度,同时降低源服务器的带宽要求。

ping 和 traceroute 中的 TTL

ping 和 traceroute 等计算机网络实用程序使用 TTL 连接主机或跟踪到主机的“跳跃”路由。ping 用于验证主机是否在网络上。traceroute 有助于跟踪数据包通过互联网从计算机和路由器等网络设备到达目的地的路径。

traceroute 提供对数据包通过网络的每个“跳跃”的可见性。数据包流会发送到 TTL 值顺序较高的目的地。假设数据包的 TTL 值为 1、2、3,依此类推。

在每一站,都会有一个数据包到达由 TTL 定义的最终目的地。发生这种情况时,该数据包将被丢弃,并且 ICMP 消息将被发送回发送者。ICMP 消息返回所需的时间用于跟踪从原始主机到目的地的路径,并确定在网络中每次连续跳跃之间移动所需的时间。

数据库中的 TTL

TTL 用于设置策略以自动删除过期的数据库记录。与其他用例一样,TTL 定义允许数据在数据库中生存的时间。在这种情况下,TTL 以秒为单位。

当达到数据记录的超时值时,将无法再检索该数据,并且不会出现在数据库统计信息中。这种过期和自动删除有助于降低存储成本、减少表大小(从而提高查询性能),并使组织能够更好地遵守有关数据保留时间的任何规定。

TTL 的优点

优化内容交付

TTL 帮助 CDN 和 DNS 服务器更高效地向最终用户提供信息。设置适当的 TTL 值可以在确保用户接收他们所请求资源的最新版本和不会不必要地增加服务器过载或造成过度延迟之间取得平衡。

在 CDN 中,用户连接到最近的服务器以接收更新内容,从而减少交付延迟(因为请求是从最近的服务器完成的)和向源服务器发送的请求。在 DNS 中,TTL 使递归解析器能够在适当时候返回缓存的答案,从而减少加载时间和对权威服务器的查询,并在记录发生更改时及时接收传播更新。

高效的资源管理和负载均衡

管理缓存信息和数据包的生命周期有助于组织更有效地利用网络基础架构资源,例如 DNS 服务器、CDN 边缘服务器和路由器。TTL 用于帮助分配网络流量,并确保网络资源不会过载。它还可以防止数据包在路由器之间无限期地反弹。这些措施有助于提高网络性能。

强化安全措施

丢弃过期数据包可以提高网络安全性,减少数据泄露的威胁。未被丢弃的过期数据包可能包含过时的安全协议。更新缓存和重新验证数据包可以为服务器和网络提供最新的安全信息。

相关解决方案
IBM NS1 Connect

IBM NS1 Connect 是一项完全托管的云服务,用于企业 DNS、DHCP、IP 地址管理和应用程序流量导向。

深入了解 NS1 Connect
网络解决方案

IBM 的云网络解决方案可实现高性能连接,为应用程序和业务提供支持。

深入了解云网络解决方案
网络支持服务

使用 IBM Technology Lifecycle Services 整合数据中心支持,以实现云网络等。

云网络服务
采取后续步骤

借助 IBM NS1 Connect 增强网络弹性。从免费开发人员帐户起步,探索托管 DNS 解决方案;或者预约实时演示,了解我们的平台如何帮助您优化网络性能和可靠性。

深入了解托管 DNS 服务 预约实时演示