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://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
沒有留言:
張貼留言