ネットワーク通信でトラブルが発生したら,ほとんどの場合,最初に試すべきコマンドがpingです。pingは,ICMPのechoメッセージを送信して,指定した相手との間で,IPレベルでのネットワークの接続状況を調べるコマンドです。

 pingコマンドでは,コマンド・プロンプトから「ping」に続いて接続情報を調べたい相手のIPアドレスやコンピュータ名(ホスト名)を指定します。その相手とIPレベルで通信できる状態なら,相手から「Reply from …」という反応があります。相手と通信できない状態ならば,「Request timed out.」といったメッセージが表示されます。

 単純に相手を指定して実行すると,接続状況を4回調べてコマンドの実行を終了し,コマンド・プロンプトに戻ります。場合によっては,設定変更を繰り返しながらpingでの応答を確認するなど,接続状況を継続的に調べたいこともあるでしょう。このようなときは,以下のように「-t」オプションを付けてpingコマンドを実行すると,ユーザーが「Ctrl+C」を押すまで無限にICMPパケットを相手に送信することが可能です(図1)。このため,送信を停止させなくても,「Ctrl+Break」を必要に応じて押せば,送信中でも統計情報を表示させることが可能です。

ping -t 通信相手

図1●Windows XP Professional SP2でpingを連続実行した画面
図1●Windows XP Professional SP2でpingを連続実行した画面
[画像のクリックで拡大表示]

 なお,Windows 2000/XP/2003を使っている場合は,pingコマンドよりもpathpingコマンドを使ったほうが便利です。pathpingコマンドでは,ネットワーク・セグメントをまたいだノード間の接続状況や通過経路だけでなく,各セグメントのネットワークの混雑具合も調べられます。

 例えば,特にオプションを指定せずに通信相手を指定して実行すると,図2のような結果になります。この検査に必要な時間は,ホップ数×待ち時間×クエリー数で決まります。図2では,2ホップ×0.250秒×100クエリーで,50秒という結果になっています。

図2●Windows XPでpathpingコマンドを実行した画面
図2●Windows XPでpathpingコマンドを実行した画面
[画像のクリックで拡大表示]

 pathpingコマンドの実行結果には,ホップ数や応答時間なども記録されています。特に重要なのは“This Node/Link”項目と“IP Address”の項目です。ここでIPアドレスにはさまれた部分がネットワーク間の混雑具合を意味し,IPアドレスと並んだ部分はネットワーク機器自身の負荷を示しています。図に示した例では、192.168.10.0/24と192.168.100.0/24のネットワーク間で10%程度の損失が起こっていること,これがルーター自身のCPU負荷によるものではないことを表しています。

 pingについての詳細はこちら,pathpingについての詳細はこちらをご覧ください。