什麼是存留時間 (TTL)?| TTL 定義

存留時間 (TTL) 是指封包在被路由器捨棄之前,所設定的在網路中存在的時間或「躍點數」。TTL 還用於其他上下文中,包括 CDN 快取和 DNS 快取。

學習目標

閱讀本文後,您將能夠:

  • 定義存留時間 (TTL)
  • 說明如何在網路中使用 TTL
  • 瞭解其他一些使用 TTL 的環境

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

使用 Cloudflare CDN 提升效能

什麼是網路中的存留時間 (TTL)?

存留時間 (TTL) 是指封包在被路由器捨棄之前,所設定的在網路中存在的時間或「躍點數」。TTL 還用於其他上下文中,包括 CDN 快取和 DNS 快取。

TTL 如何運作?

當建立資訊包並透過網際網路傳送時,存在它無限期地從一個路由器傳遞到另一個路由器的風險。為了減少這種可能性,封包設計了稱為存留時間或躍點限制的過期時間。封包 TTL 還可用於確定封包的循環時間,並允許傳送者透過網際網路接收有關封包路徑的資訊。

每個封包都有一個位置來儲存一個數值,該數值確定它應該繼續在網路中移動多長時間。每次路由器收到封包時,它都會從 TTL 計數中減去一,然後將其傳遞到網路中的下一個位置。如果在進行該減法後的任意時間,TTL 計數等於零,路由器將丟棄封包並將 ICMP 訊息傳送回原始主機。

常用的網路命令 ping 和 traceroute 都使用 TTL。使用 traceroute 命令時,一串剩餘計數越來越高的 TTL 的封包流將透過網際網路傳送到目的地。由於連線中的每個步驟都是其中一個封包的最後一站,因此每個位置都會在丟棄封包後向傳送者傳回 ICMP 訊息。然後,ICMP 訊息返回到傳送者所需的時間用於確定到達網路上每個連續躍點所需的時間。

ICMP traceroute 圖

還有哪些其他情況會使用 TTL?

除了追蹤封包在網際網路上經過的路線外,存留時間還用於在一段時間內快取資訊。一些網路使用案例以更傳統的方式運作,而不是以路由器之間的躍點來測量時間(每個躍點需要的時間是可變的)。

Cloudflare 的 CDN 之類的 CDN 通常使用 TTL 來確定在從原始伺服器獲取新複本之前,應該從 CDN 邊緣伺服器提供快取內容的時間。透過正確設定原始伺服器拉取之間的時間量,CDN 能夠提供更新的內容,而無需不斷將請求傳播回源站。此最佳化讓 CDN 能夠有效地提供更靠近使用者的內容,同時減少源站所需的頻寬。

DNS 記錄的環境中,TTL 是一個數值,用於確定 DNS 快存伺服器在聯絡權威 DNS 伺服器並獲取記錄的新複本之前,能夠提供 DNS 記錄的時間。