8. 賞味期限 [Time to Live (TTL)]

         The definition of values appropriate to the TTL field in STD 13 is
         not as clear as it could be, with respect to how many significant
         bits exist, and whether the value is signed or unsigned.  It is
         hereby specified that a TTL value is an unsigned number, with a
         minimum value of 0, and a maximum value of 2147483647.  That is, a
         maximum of 2^31 - 1.  When transmitted, this value shall be encoded
         in the less significant 31 bits of the 32 bit TTL field, with the
         most significant, or sign, bit set to zero.

STD 13 においては、TTL フィールドに与えるべき値に関して、 有効桁数が何桁か、符号付き数か、符号なし数かなどが十分クリアになっていない。 それで、ここではっきり定義する。 TTL 値は 符号無し数であり、最小値は 0、最大値は 2147483647、 つまり、2^31 - 1 であると。 転送時にはこの値は 32 ビットある TTL フィールドの 下 31 ビットに 置かれ、最上位の符号ビットは ゼロにセットされるものとする。

         Implementations should treat TTL values received with the most
         significant bit set as if the entire value received was zero.

最上位のビットが 1 であるような TTL 値を受けとったら、 その値がゼロであったのとおなじ扱いをするように実装すべきである。

         Implementations are always free to place an upper bound on any TTL
         received, and treat any larger values as if they were that upper
         bound.  The TTL specifies a maximum time to live, not a mandatory
         time to live.

受けとった TTL 値にたいして、実装側で自由にきめた上限を越えないように 制限することはかまわない。 そして、上限よりも大きな値は上限値であるものとして扱ってよい。 TTL が規定するのは有効期間の最大値であり、その間、有効であることを 保証しなければならないものではない。

2002-07-01 訳 前野年紀