2021年2月24日 星期三

什麼是TTL(Time To Live:)?

TTL使用的地方

  • TCP/IP 封包表頭佔用了8 bits。
  • DNS 預設TTL=86400秒,等同24小時(難怪每次更新至少24小時)

TCP/IP Time To Live

  • 當TTL使用在TCP/IP時,表示躍點的意思,128 hops是傳送端發出,每經過一個Router就會減一,當接收端收到後,會回傳,就可以知道中間經過多少個Router,而當減到0時就Time Out避免封包一直傳遞。
  • 這時候可能會有人問,為何回傳都是TTL = 128,因為當128-128 = 0時,表示兩地是存在同一個網路內。
  • 所以TTL使用在TCP/IP時,就沒有所謂越大越好或者越小越好的問題。

DNS Time To Live

  • DNS也使用到TTL,但是這時候TTL表示秒數的意思,當DNS Record相同時,需等到TTL到期才會失效,這時候TTL數值的大與小就有意義。
  • 當TTL數值越大時表示,需要等待越久時間才能生效,但是當越小時,卻會讓DNS主機非常忙碌,而且世界上有那麼多DNS主機也不知道,目前查詢的是否已經更新Record。

若TTL設定 1800,表示 1800 秒。所以當變更這筆 DNS 紀錄的時候,要 1800 秒後才會全球生效!

當用戶端發出查詢時,會將查詢交給 DNS 快取 (Cache) 伺服器來查詢,快取伺服器就會透過階層式的方式逐一由 (.com->.net->"my web name") 開始往下查到 "my web name" 的主機,並由權威主機回應 www.mywebname.com 的正確 IP 位址。當 DNS 快取伺服器拿到 104.199.156.86 這個 IP 位址的時候,會一同取得這筆資料的 TTL。


在 DNS 快取回應給用戶之後,這筆 104.199.156.86 就會存留在快取伺服器存留 1800 秒,在這 1800 秒之內,若有其他人來詢問 www.mywebname.net,快取伺服器會直接回應 104.199.156.86 這個 IP 位址。


如果說你在這 1800 秒之內,將 www.mywebname.net 變更成別的 IP 位址,快取伺服器依舊會回覆舊的答案(104.199.156.86),要等待 1800 秒之後,才會更新,所以 TTL 稱為 DNS 紀錄在快取伺服器的存活時間。

REF:

http://linux.vbird.org/linux_server/0110network_basic/0110network_basic-centos5.php#whatisnetwork_tcpip

http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?p=17610

http://kb.mediatemple.net/questions/908/Understanding+TTL+%28time-to-live%29

http://smalleaf.blogspot.tw/2011/12/ttl.html

http://en.wikipedia.org/wiki/Time_to_live


沒有留言:

張貼留言