トレースルートの仕組み

ルータによってたくさんのネットワークは相互に接続されていて、異なるネットワーク上の通信相手にデータを送信するときには、ルータを経由します。トレースルートによって、通信相手にデータを送信するときに経由するルータを調べることができます。Windows OSでは、トレースルートを行うにはtracertコマンドを利用します。

トレースルートで経由するルータを調べるには、TTLによって経路上のルータでデータを破棄されるようにしています。TTLとは、データが経由できるルータ台数です。ルータを経由するごとにTTLが減り、0になるとそのデータを破棄します。破棄したらICMPによって、送信元にデータを破棄したことを通知します。これにより、ルータのIPアドレスがわかります。

トレースルートを実行すると、はじめはTTL=1としてデータを送信します。すると、1台目のルータでそのデータは破棄され、ルータがデータを破棄したことを通知します。次にTTL=2としてデータを送信すると、2台目のルータで破棄されます。2台目のルータがデータを破棄したことを送信元に通知します。以降、同様にTTLを増やしていくことによって、経由するルータがわかるようになります。

なお、Windowsのtracertコマンドで送信するデータはpingコマンドと同じICMPエコーリクエストです。

トレースルート(tracertコマンド)の概要
図 トレースルート(tracertコマンド)の概要

tracertコマンド

tracertコマンドはコマンドプロンプトから入力します。tracertコマンドの構文は以下のとおりです。

C:\>tracert <IPアドレスまたはホスト名>

ホスト名を指定した場合は、pingコマンドと同じようにDNSサーバに問い合わせてIPアドレスを取得します。

以下は、tracertコマンドの実行結果の例です。

tracertコマンド実行結果の例
図 tracertコマンド実行結果の例

tracertコマンドでは、デフォルトで3つずつデータを送ります。データを送信してから各ルータでデータが破棄されてその通知が返ってくるまでの時間で応答時間の目安がわかります。3回データを送ることによって、応答時間が平均してどの程度であるかがわかります。

各ルータからの通知では、ルータのIPアドレスがわかります。さらに、PC側でルータのIPアドレスから逆引きしてホスト名を調べています。逆引きができればホスト名も表示されます。なお、tracertコマンドの最後の行は、コマンドで指定した通信相手です。つまり、上の例ではwww.yahoo.co.jpまで14台のルータを経由しているということがわかります。

表示中の「ホップ」とはルータのことです。「ホップ」という言葉は、ネットワーク技術の中ではたいていルータを表しています。
セキュリティ上、ルータがtracertコマンドに応答しないように設定されている場合もあります。
自宅のPCからインターネット上のサーバまでの通信経路は契約しているISPによって異なります。そのため、読者の方が実行したtracertコマンドは上記の表示結果と同じにはなりません。

TCP/IP