Time To Live
寿命(有効期限)だよ
数字だよ
ネットワークの話とかDNSの話で出てくるよ
「TTL」と表現されるのが一般的だよ
簡単に書くよ
Time To Live(読:タイム・トゥー・ライブ)とは
いわゆる「TTL」のこと。
用語の中身としては
そいつの寿命として設定される値
です。
詳しく書くよ
最初に留意事項です。
「TTL」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
TTLの正式名称(?)が「Time To Live」です。
「Time To Live」の頭文字を取ったのが「TTL」ね。
※「Time To Live」を何となく日本語にすると「生きている時間」となります。[詳細]
以上が「TTL」の意味を知っている人向けの説明です。
「TTLって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
少し大雑把過ぎる説明ですが、サクっと一言で説明すると
生きていられる時間
を意味する用語が「Time To Live」です。
言い方を変えると
寿命
ですね。
上でも書きましたが、一般的には「TTL」と表現されます。
※本ページでも以降は「TTL」と表現します。
「TTL」という用語は、主にネットワークの話とDNS(IPアドレスとドメイン名を紐付けしまっせシステム)の話で出てきます。
両者は別のものなので、分けて説明しますね。
まずは、ネットワークの話で出てくるTTLについて説明します。
ネットワークで出てくるTTLは
1.数字である
2.機器を1つ経由する毎に数字を1減らす
3.数字が「0」になったら、その時点で中継を止める
の特徴を持つ、パケット(通信用に細切れにしたデータ)にくっつく情報です。
TTLがあることによって、パケットさんがネットワークの世界をずっと放浪する事態が回避されています。
例えば、そうですね。
何かの間違いで輪っか構造になっているネットワークが あったとしましょう。
ルータAは「ルータBに行けよ」と指示を出すし、ルータBは「ルータAに行けよ」と指示を出す状態です。
この指示に従うと、パケットさんはルータAとルータBの間をぐるぐる行き来し続けることになります。
この状況はマズイですよね?
流れ込むパケットは増えていくのに、出て行くパケットはないので、いずれパンクしてしまいます。
このような状況に対する備えとしてあるのがTTLです。
仮に最初、TTLの値が4だったとしましょう。
ルータAに到着した時点でTTLの値を1つ減らして3にします。
ルータAには「ルータBに行けよ」と言われました。
パケットさんはルータBに行きます。
そして、ルータBに到着した時点でTTLの値を1つ減らして2にします。
ルータBには「ルータAに行けよ」と言われました。
おっと、どうやら何かの設定ミスで「ぐるぐる同じところを回っちゃうよ構造」になっているようです。
それでもパケットさんは指示に従いルータAに行きます。
そして、ルータAに到着した時点でTTLの値を1つ減らして1にします。
案の定、ルータAには「ルータBに行けよ」と言われました。
パケットさんは涙目になりながらルータBに行きます。
そして、ルータBに到着した時点でTTLの値を1つ減らして0にします。
TTLの値が0になった時点でパケットさんの旅は終わりです。
力尽きて倒れてしまいます。
力尽きたパケットさんを看取ったルータBさんは、パケットさんを送り出してきたコンピュータに対して「俺はルータBって、ケチな者だけどよー。あんたのところから来たパケットさん、今、力尽きたぜ」と報告のお手紙を出します。
これがネットワークの世界におけるTTLです。
繰り返しになりますが
1.数字である
2.機器を1つ経由する毎に数字を1減らす
3.数字が「0」になったら、その時点で中継を止める
情報です。
パケットがネットワーク上をずっと放浪する事態になることを避けるために使われます。
よく分からない人は、パケットさんの体力ゲージだと思えば良いでしょう。
機器を経由する度に1ずつ減っていって、最終的に0になると力尽きます。
数字が大きい方が長生きできるあたりが人間様の寿命みたいですね。
そのせいか、TTLを設定することを指して「パケットの寿命を設定する」と表現する人もいます。
次に、DNSの世界におけるTTLについて説明します。
DNSの世界におけるTTLは単純に「有効期限」と解釈してください。
それでは何の有効期限か?
キャッシュの有効期限です。
DNS関連のお仕事をしているコンピュータ(DNSサーバ)には
1.フルサービスリゾルバ(DNSキャッシュサーバ)
2.権威DNSサーバ
の2種類います。
フルサービスリゾルバさんは、どんな手を使おうともお問い合わせに答えてあげるのがお仕事のDNSサーバさんです。
もし自分で答えが分からなければ、他のDNSサーバさんに答えを教えてもらいに行きます。
一方の権威DNSサーバさんは、自分の持っている情報を教えてあげるのがお仕事のDNSサーバさんです。
分からなければ素直に「分からないから他の人に聞いて」とお返事します。
フルサービスリゾルバさんは、分からないことがあると、ちょいちょい権威DNSサーバさんに問い合わせます。
でも、何回も同じ内容を問い合わせたら「いい加減にしろよ!メモを取れ!メモを!」と怒られそうですね。
そこで、フルサービスリゾルバさんは問い合わせた内容を自分の中にメモっておきます。
カンペを作っておくのです。
このカンペを「キャッシュ」と言います。
フルサービスリゾルバさんは、問い合わせがあったときは、まずカンペを見ます。
自分の中にあるカンペを見て、答えが載っていないか探します。
カンペを見ても分からなければ、どうしようもありません。
他のDNSサーバさんに助けを求めます。
一応、他のDNSサーバさんに迷惑をかけない工夫はしているのです。
意外と気遣いのできるやつですね。
さて、このDNSサーバさんの使うカンペですが、ずっと同じ内容の物を使っていて良いのでしょうか?
答えは、ダメです。
情報は日々、更新されています。
でも、カンペは一度書いたら、新しく書き直さない限り、そのままですね。
つまり、どこかの時点でカンペに書いてある内容が古くて役立たずになってしまいます。
そうすると、何か困ったことが起こりそうですね。
このような状況を避けるために、フルサービスリゾルバさんが教えてもらう情報には「これくらいの期間はカンペとして使っていいよ」な有効期限が設定されています。
「その期間を過ぎたら情報としては古いから捨てちゃって、もう一度問い合わせてね」な期間です。
よく分からなければ、食品の賞味期限とか消費期限みたいなものだと思ってください。
このお話における「これくらいの期間はカンペとして使っていいよ」な有効期限がDNS関連で出てくるTTLです。
例えばTTLに「3600」と設定されていたら「情報を取得してから1時間(=3,600秒)はカンペに載せておいていいよ」の意味になります。
一言でまとめるよ
まぁ「Time To Live」って単語が出てきたら「TTL
(そのデータの寿命)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「time(タイム)」の意味は「時間」とかです。
「to(トゥ)」の意味は「~に」とか「~へ」とか「~まで」とかです。
「live(ライブ)」の意味は「生きる」とか「住む」とか「生放送の」とかです。
何となく くっつけると
生きている時間
となります。






