[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

TTL

pointこの用語のポイント

point寿命(有効期限)だよ

point数字だよ

pointネットワークのお話とかDNSのお話で出てくるよ

スポンサーリンク

簡単に書くよ

TTLとは

そいつの寿命として設定される値
です。

image piyo

詳しく書くよ

Time To Live」の頭文字を取って「TTL」です。
その名の通り「生きていられる時間」を意味します。
つまり、寿命のことですね。

「TTL」という用語は、主にネットワークの話とDNSIPアドレスドメイン名の紐付けをしまっせシステム)の話で出てきます。
両者は別のものなので、分けて説明しますね。

まずは、ネットワークの話で登場するTTLについて書いていきます。

ネットワークで登場するTTLは

1.数字である
2.機器を一つ経由する毎に数字を1減らす
3.数字が「0」になったら、その時点で中継を止める


の特徴を持つ、パケット通信用に細切れにしたデータ)にくっつく情報です。
このTTLがあることによって、パケットさんがネットワークの世界で永遠に放浪する事態が、回避されています。

例えば、何かの間違いで輪っか構造になっているネットワークがあったとしましょう。
ルータAは「ルータBに行けよ」と指示を出すし、ルータBは「ルータAに行けよ」と指示を出す状態です。
この指示に従うと、パケットさんは永遠にルータAとルータBの間をぐるぐる行き来し続けることになります。

TTL

この状況はマズイですよね?
流れ込むパケットは増えていくのに、出て行くパケットは無いので、いずれパンクしてしまいます。

これを回避するためにあるのがTTLです。

仮に最初、TTLの値が4だったとしましょう。
ルータAに到着した時点で、TTLの値を一つ減らして3にします。

TTL2

ルータAには「ルータBに行けよ」と言われました。
パケットさんはルータBに行きます。
そして、ルータBに到着した時点で、TTLの値を一つ減らして2にします。

TTL3

ルータBには「ルータAに行けよ」と言われました。
おっと、何かの設定ミスで「ぐるぐる同じところを回っちゃうよ構造」になっているようです。
それでもパケットさんは、指示に従いルータAに行きます。
そして、ルータAに到着した時点で、TTLの値を一つ減らして1にします。

TTL4

案の定、ルータAには「ルータBに行けよ」と言われました。
パケットさんは涙目になりながらルータBに行きます。
そして、ルータBに到着した時点で、TTLの値を一つ減らして0にします。

TTL5

TTLの値が0になった時点で、パケットさんの旅は終わりです。
力尽きて倒れてしまいます。
力尽きたパケットさんを看取ったルータBさんは、パケットさんを送り出してきたコンピュータに対して「俺はルータBって、ケチな者だけどよー。あんたのところから来たパケットさん、今、力尽きたぜ」と報告のお手紙を出します。

これがネットワークの世界におけるTTLです。
繰り返しになりますが

1.数字である
2.機器を一つ経由する毎に数字を1減らす
3.数字が「0」になったら、その時点で中継を止める


情報です。
パケットがネットワーク上で永遠に放浪する事態になることを、避けるために使われます。

よく分からない人は、パケットさんの体力ゲージだと思えば良いでしょう。
機器を経由する度に1ずつ減っていって、最終的に0になると力尽きます。
数字が大きい方が長生きできるあたりが、人間様の寿命みたいですね。
そのせいか、TTLを設定することを指して「パケットの寿命を設定する」と表現する人もいます。

次に、DNSの世界におけるTTLについて説明します。

DNSの世界におけるTTLは、単純に「有効期限」と解釈して構いません。
それでは、何の有効期限か?
キャッシュの有効期限です。

DNS関連のお仕事をしているDNSサーバさんには「フルサービスリゾルバDNSキャッシュサーバ)」と「権威DNSサーバ」の2種類います。

フルサービスリゾルバさんは、どんな手を使おうともお問い合わせに答えてあげるのがお仕事のDNSサーバさんです。
もし自分で答えが分からなければ、他のDNSサーバさんに答えを教えてもらいに行きます。

TTL6

一方の権威DNSサーバさんは、自分の持っている情報を教えてあげるのがお仕事のDNSサーバさんです。
分からなければ素直に「分からないから他の人に聞いて」とお返事します。

TTL7

フルサービスリゾルバさんは、分からないことがあると、ちょいちょい、権威DNSサーバさんに問い合わせます。
でも、何回も同じ内容を問い合わせたら「いい加減にしろよ!メモを取れ!メモを!」と怒られそうですね。

そこで、フルサービスリゾルバさんは、一度問い合わせた内容を自分の中にメモっておきます。
カンペを作っておくのです。

TTL8

このカンペを「キャッシュ」と言います。

フルサービスリゾルバさんは、問い合わせがあると、まずは自分の中にあるカンペに答えが載っていないかを探します。
カンペを見ても載っていなければ、そのときはじめて、他のDNSサーバさんに助けを求めるのです。
意外と気遣いのできる奴ですね。

TTL9

さて、このDNSサーバさんの使うカンペですが、ずっと同じ内容の物を使っていて良いのでしょうか?

答えは、駄目です。
情報は日々、更新されています。

でも、カンペは一度書いたら、新しく書き直さない限り、そのままですね。

つまり、どこかの時点で、カンペに書いてある内容が古くて役立たずになってしまいます。
そうすると、何か困ったことが起こりそうですね。

このような状況を避けるために、フルサービスリゾルバさんが教えてもらう情報には「これくらいの期間は、カンペとして使って良いよ」な有効期限が設定されています。
「その期間を過ぎたら、情報としては古いから破棄してもう一度問い合わせてね」な期間です。
よく分からなければ、食品の賞味期限とか消費期限みたいなものだと、お考えください。

このお話における「これくらいの期間は、カンペとして使って良いよ」な有効期限がDNS関連で登場するTTLです。
例えばTTLに「3600」と設定されていたら「情報を取得してから1時間(3600秒)の間はカンペに載せておいて良いよ」の意味になります。

image piyo2

一言でまとめるよ

まぁ「TTL」って単語が出てきたら「そのデータの寿命のことなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク