ネットワークの基礎
IPv4ヘッダのTTL(Time To Live)の役割として正しいものはどれか。
- Aパケットを送ってから応答が返るまでの時間を記録し、TCPの再送の時期を決める
- Bルータを通るたびに1ずつ減らし、0になったパケットを捨てることで、経路のループでパケットが回り続けるのを防ぐ
- C値が大きいパケットほど、ルータで優先して転送させる
答えと解説を見る
正解:B. ルータを通るたびに1ずつ減らし、0になったパケットを捨てることで、経路のループでパケットが回り続けるのを防ぐ
TTLは名前に「時間」とありますが、実際にはルータを通るたびに1ずつ減らす、通過できるルータの数(ホップ数)の上限として使われています。0になるとルータはそのパケットを捨て、送信元にICMPの時間超過のメッセージを返します。そのため、設定の誤りなどで経路がループしても、パケットが永久に回り続けることはありません。例えばTTLを64で送ったパケットは、ルータを3台通ると61になって届きます。tracerouteはTTLを1、2、3…と増やしながら送り、各ルータが返す時間超過のメッセージから経路を調べます。IPv6では同じ役割のフィールドをホップリミットと呼びます。
- A. 応答までの時間(RTT)はTCPが自分で測ります。TTLは関係しません。
- B. 正しい。ホップ数の上限として、ループするパケットを消します。
- C. 優先度は別のフィールド(DSCPなど)で表します。