[Network] | |||||||||||||||
pingのタイムスタンプ・オプションで進行状況を確認する
|
|||||||||||||||
|
解説 |
pingコマンドは、ネットワークの通信状況を確認するための最も基本的なコマンドである。サーバやほかのコンピュータ、サイトなどと通信ができなくなった場合、pingコマンドを使えば、相手先コンピュータとIPプロトコル的に通信が可能かどうかを確認できる。このコマンドの具体的な使い方についてはTIPS「pingでネットワーク・トラブルの原因を調査する」を参照していただきたい。
このpingを繰り返し実行させることにより、特定のコンピュータとの通信が滞っていないかどうかをチェックできる。TIPS「pingを繰り返し実行させる」ではこのような目的のために、-tオプションを付けてpingを実行する方法を紹介した。この方法は簡単だが、1つだけ懸念事項がある。pingの出力によってコマンド・プロンプトの画面がいっぱいになってしまうと、画面上の表示が常に同じになり(特にローカル・コンピュータ相手の場合は応答時間もほぼ同じになることが多いため)、pingコマンドが正常に実行されているかどうかが分からなくなってしまうのだ([Ctrl]+[S]キーで一時停止したのと同じような状態になる)。このような場合でも[Ctrl]+[Break]キーを押せば途中で統計情報が表示されるので、動作中であることは分かるのだが、いちいちキーを操作しないといけないので面倒である。
まったく同じ表示ばかりが続くpingコマンドの実行例 | ||||||
「ping -t <あて先>」で繰り返しpingを実行する場合、応答時間が同じ表示ばかりが続くと、pingが正しく動作しているのか、それとも([Ctrl]+[S]キーやクイック編集機能などで)停止しているかが判断できなくなる。 | ||||||
|
このような問題を避けるためには、例えば結果表示において、毎回異なる、何らかの数字列や文字列などが表示できるとよいだろう。いくつか方法が考えられるが、本TIPSでは最も簡単な手段として、pingのタイムスタンプ・オプションを利用する方法を紹介する。
操作方法 |
pingにはいろいろな使い方があるが、-sオプションを付けると「タイムスタンプ」機能が有効になる。まずその実行結果を見ていただこう。-sオプションには1〜4までのいずれかの数字を指定できるが、ここでは最大値の4を指定して、「ping -t -s 4 <あて先>」コマンドを実行している。
先ほどの実行例と比べると、「Reply from 〜」行の次に、「Timestamp: <IPアドレス> : <時刻情報>」のような表示が追加されていることが分かるだろう。よく見ると、<時刻情報>の部分は、ほぼ1000ずつ増加している。この部分が異なるので、たとえ画面上に同じような表示が続いても、動作中か(スクロールしているか)どうかがすぐに判断できる。
ただしこの機能はいつでも利用できるわけではない。pingのあて先コンピュータ/ルータによってはタイムスタンプ情報を返さないことがある。その場合は通常のpingコマンドと同様に、応答時間しか表示されない。
タイムスタンプ情報とは?
pingコマンドにおける-sタイムスタンプ・オプションとは、パケットが通過した時刻を記録して、それを最後に表示させる機能である。pingコマンドでは、指定されたコンピュータまで何らかのデータを送信すると(Windows OSのpingコマンドでは「abcdefg……」といった文字データを送信している)、相手先コンピュータからそのデータがそのまま送り返されてくるが、タイムスタンプ・オプションが有効になっていると、パケットを返信/中継(ルーティング)したコンピュータが、自分自身の持つ時刻情報をパケット中に追加データとして記録する。そのため、最終的に受信したパケットを調べると、送信元(返信元)コンピュータや途中で通過したルータの持つ時刻情報を得ることができる(tracertコマンドなどと違い、順番が入れ替わって表示されることもある。TIPS「tracertでネットワークの経路を調査する」も参照)。
ただしこのタイムスタンプ情報はIPヘッダ中に記録されるため(IPヘッダのサイズは最長でも60bytesに制限されている)、最大でも4つまでしか記録できないという制限がある。1エントリあたり、4bytesのIPアドレスと4bytesの時刻情報(GMTの当日0時0分からの経過ミリ秒数)が記録される。タイムスタンプとして記録される情報は「RFC781 ―― A SPECIFICATION OF THE INTERNET PROTOCOL (IP) TIMESTAMP OPTION」で定義されている。時刻はミリ秒単位で記録されるので、ほぼ1秒に1回パケットを送信するpingコマンドの場合は、1回ごとに1秒(=1000ミリ秒)ずつ異なる結果が得られることになり、結果として、毎回異なる文字列が表示されることになる。
なお、このオプションを指定しても、pingのあて先や途中にあるルータが必ずタイムスタンプ情報を記録してくれるとは限らない(セキュリティや実装依存などのために無視されることがある)。試した限りでは、Windows 7/Windows Server 2008/Windows Server 2008 R2はデフォルトでタイムスタンプ情報を返さないようだ。また、そのルータなどが持つ時計の精度の問題や、最大で4つしかタイムスタンプ情報を記録できないという制約(5つ目以降は無視される)などのため、記録されている時刻情報そのものにはあまり意味がないだろう。かなりずれた値が表示されていることも少なくない。ところでWindows 2000に付属のpingコマンドではバイト・オーダーの解釈を間違えて表示しているので、一見するとかなりでたらめな数値が表示されるが、その分、違いを識別しやすくなって便利である。
この記事と関連性の高い別の記事
- Windowsのpingコマンドでネットワークトラブルの原因を調査する(TIPS)
- pingを繰り返し実行させる(TIPS)
- Windowsのpingの-rオプションでパケットの通過ルートを確認する(TIPS)
- pingでネットワークの速度を調査する(TIPS)
- Windowsのtracertでネットワークの経路を調査する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|