要約

  • IPv4のTTLは秒単位の8ビットフィールドだが、処理されるたびに少なくとも1減らされる。
  • ゼロになるとデータグラムは破棄され、宛先が非マルチキャストなら通常は送信元へICMP Time Exceededが送られる。

秒を表すが、正確な時計ではない

RFC 791は、送信者がデータグラムの最大寿命を指定できるようにした。8ビットの最大値は255で、名目上は255秒、4.25分に相当する。しかし、インターネットヘッダーを処理する各地点は、処理時間を反映してTTLを減らさなければならず、1秒未満しか経過していなくても最低1を減らす。したがってRFC 791が示すのは正確なストップウォッチではなく、寿命の上限である。

この最小減算により、転送が高速だからという理由だけでパケットが無限に巡回することはない。各処理段階が有限の予算を消費する。

ホップ上限として明文化される

RFC 1812はこの実際の意味を明確にした。ルーターは、経過時間が1秒よりはるかに短くても、処理するパケットのTTLを少なくとも1減らす。TTLはデータグラムの到達可能な距離に対する実質的なホップ数制限になる。1秒を超えて保持した場合は、秒ごとに追加で1を減らすこともできる。時間の要素は残るが、共通の保証は転送段階に基づく。

TTLが0以下になるとルーターは破棄し、宛先が非マルチキャストなら送信元へICMP Time Exceeded Code 0を送信する。TTLは途中で変化するため、IPv4ヘッダーだけを対象とするチェックサムも再計算して検証される。

出典