Ping(ピン)でインターネット接続状態を診断する方法

Pingは古くから使われているツールですが、接続の問題が本当に起きているのか、おおよそどこで起きているのかを調べるうえで今も十分役立ちます。

PingはICMPエコーリクエストを送ることで動作する

pingコマンドは対象のアドレスに小さな「ICMPエコーリクエスト」パケットを送り、「エコーリプライ」が返ってくるまでの時間を測定します。この往復時間がpingで表示される数値です。

ターミナルで1行入力すれば実行できる

Windowsではコマンドプロンプトで「ping」に続けてドメインやIPアドレスを入力します(例:ping google.com)。Macでもターミナルで同じコマンドを使いますが、Macは初期設定で停止するまで継続的に実行され、Windowsは自動的に決まった回数だけ送信して終了します。

応答時間(ms)は距離や混雑状況を反映する

数値は小さいほど良好です。目安として20ms未満は非常に良好(近くのサーバーで一般的)、20〜100msはブラウジングやビデオ通話に概ね問題ないレベル、常時150msを超えるとゲームやビデオ通話などリアルタイム性の高い用途で遅延が体感されやすくなります。

パケットロスは返信が一切届かなかったリクエストを意味する

ping実行結果でパケットロスが0%を超えている場合、一部のリクエストに応答がなかったことを意味します。まれなロスは正常な範囲内のこともありますが、数%を超えるロスが続く場合はWi-Fiの干渉や回線の過負荷など、実際の接続問題を示していることが多いです。

TTL(生存時間)は経路や使用OSのヒントになる

応答にはTTLという値が含まれ、経路上のルーターを1つ通過するごとに1ずつ減っていきます。受け取ったTTLの値を一般的な初期値(64、128、255)と比較することで、対象までのおおよそのホップ数や、使用しているOSのヒントを得られることがあります。

pingは経路が機能しているかを、tracerouteは経路そのものを示す

pingは対象が応答したかどうかと、その所要時間しか示さず、経路そのものは表示しません。pingで問題が判明した場合、どのホップで問題が起きているかを調べるために、次のステップとしてtraceroute(Windowsではtracert)を使うのが自然な流れです。

pingテストで分かることと分からないこと

pingは、そもそも対象に到達できるか、おおよそどれくらいの距離感かを手早く最初に確認するのに優れています。接続がなぜ遅いのかまでは分からず、その原因がWi-Fiの電波状況なのか、通信事業者なのか、ネットワークの混雑なのか、対象サーバー側の問題なのかを切り分けるには、さらに別のツールが必要です。

意図的にpingを無視するサーバーもある

「タイムアウト」という結果は必ずしもサーバーが停止していることを意味しません。多くのサーバーやファイアウォールはセキュリティ上の理由でICMPエコーリクエストを完全に無視するよう設定されており、正常に稼働している有名なWebサイトへのpingが失敗することも珍しくなく、必ずしも実際の問題を示すものではありません。

よくある質問

pingの数値が高いことと、ダウンロード速度が遅いことは同じ意味ですか?

いいえ、測定しているものが異なります。pingは往復にかかる遅延(レイテンシ)を測定し、ダウンロード速度はスループット(1秒あたりに届くデータ量)を測定します。レイテンシは低いが帯域は狭い接続や、その逆のケースもあり得ます。

同じサイトにpingを打つたびに数値が変わるのはなぜですか?

ネットワークの状況は常に変化しているためです。自分のネットワーク内の他の通信、Wi-Fiの干渉、経路上のどこかでの混雑など、さまざまな要因が個々のpingの応答時間を変動させます。