それはほとんど魔法のようです。インターネット上の他のノードへのパス全体をマッピングするために、traceroute コマンドは何を行っていますか?
2 に答える
traceroute は TTL (Time To Live) フィールドを 1 に設定し、ホップごとに増分します。メッセージを受信したルーターはこの値を減らし、値が 0 に達すると、TTL がゼロに達したというメッセージを返信します。この返信で、クライアントは間に誰がいるのかを知ることができます。目的地までこれを繰り返し、(少なくとも 1 つの) ルートを取得します。
traceroute は、TTL (Time To Live) 値が小さいパケットを送信します。TTL は、パケットが無限ループに陥るのを防ぐために使用される IP ヘッダー フィールドです。パケットを処理するルーターがパケットの TTL から 1 を引くとき。パケットは期限切れになり、TTL がゼロになると破棄されます。
これが発生すると、 Traceroute は ICMP Time Exceeded メッセージ ( RFC 792 ) を送信者に送り返します。小さな TTL 値を使用すると、パケットはすぐに期限切れになるため、traceroute は、パケットのパスに沿ったすべてのルーターに、ルーターを識別する ICMP メッセージを生成させます。
たとえば、TTL = 1 は最初のルーターからメッセージを生成する必要があり、TTL = 2 はパス内の 2 番目のルーターからメッセージを生成するなど...