コマンドプロンプト
traceroute
ネットワーク距離の調べ方
ネットワーク上の距離は、実際の地理上の距離とは異なり、利用する ISP やネットワークによって変化し、海外にあるサーバが国内にあるサーバよりも近い場合もある。
ネットワーク上の距離は、traceroute と呼ばれるコマンドを用いて調べる。
Win9x では 一般的に MS-DOS プロンプトから実行する。
コマンドは tracert [host名] と記述し、それにより、経路にある中継サーバ(router)と到達時間(単位:ms)が1行ずつ表示される。
例えば www.example.com までの距離を調べる場合には、以下のように記述する。
【例】 Windows上で www.example.com に対する traceroute を実施。
tracert www.example.com
経路上で「*」が表示された場合は、応答がないかタイムアウトしたことを示す。
traceroute は ICMP プロトコルの type11 である Time Exceeded エラー(TTL の超過によるパケットの破棄情報)を受け取ることで結果を表示している為、ルータが ICMP プロトコルの Time Exceeded エラーに対応していない場合は表示が「*」となる。
ISP の管理下にあるルータでは、セキュリティ上の要件から ICMP パケットを単に破棄する場合があり、その場合も表示は「*」となる。
表示される中継サーバの数が少なく、到達時間が短いほど、利用環境から近いといえる。但、サーバにかかっている負荷により、ネットワーク距離が近くても 反応が遅い(重い)場合もある。
その他の traceroute をサポートしているソフトを用いても、同様のことは行える。
書式
Windows の場合
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
- -d
- (結果に表示する)IPアドレスからホスト名への名前解決を行わない。
- -h maximum_hops
- ターゲットまでの最大ホップ数(使用する最大TTL値)を指定。
- -j host-list
- 経由するホストのアドレスを最大9個まで指定。
- -w timeout
- タイムアウト時間をミリ秒単位で指定。
補足:
- Windows3.1 では、traceroute が使えないため、UNIX サーバに telnet で接続して行うか、WSPING 等で ping を行い 反応速度を調べる。
[参考資料]
- WIDE University - SOI: 湧川隆次「ネットワークアキーテクチャ 第四回」 (2005/10/24)
- HOTWIRED JAPAN: webmonkey 「パケットを追っかけろ」 (1998/01/16)




