ping - 潜水艦のソナーから生まれたコマンド

ネットワークのトラブルシューティングで最初に実行するコマンド、ping。このコマンドの名前の語源は、潜水艦のソナー (音響測深機) が発する「ピン」という音です。ソナーが音波を発射し、反射波が返ってくるまでの時間で距離を測定するように、ping はパケットを送信し、応答が返ってくるまでの時間でネットワークの到達性と遅延を測定します。

ping の誕生 - 1983 年、Mike Muuss の一夜の仕事

ping は、1983 年 12 月に米国陸軍弾道研究所 (BRL) のエンジニア Mike Muuss によって書かれました。きっかけは BRL の IP ネットワークで起きた不審な挙動でした。Muuss は、その少し前に David Mills から聞いていた「ICMP の echo パケットで経路を診断する」という着想を思い出し、その晩のうちに ping を書き上げています。

Muuss 自身が後に語ったところによれば、名前の由来は潜水艦のソナー音です。「パケットを送って反射を待つ」という動作がソナーに似ていたため、直感的に「ping」と名付けました。一部では「Packet InterNet Groper (パケットインターネット探索器)」の頭文字とする説も流布していますが、Muuss は「自分にとって ping は頭字語ではなくソナーの比喩だ」と述べており、この展開は後付けのバクロニムと位置づけられています。

ICMP - ping が使うプロトコル

ping は、ICMP (Internet Control Message Protocol) の Echo Request と Echo Reply メッセージを使用します。ICMP は TCP や UDP とは異なり、データの転送ではなく、ネットワークの制御と診断のために設計されたプロトコルです。

ping の動作は単純です。

  1. 送信元が ICMP Echo Request パケットを宛先に送信する
  2. 宛先がパケットを受信し、ICMP Echo Reply パケットを返送する
  3. 送信元が往復時間 (RTT: Round Trip Time) を計測する

この RTT が、IP 確認さんで確認できるネットワーク遅延の基本的な指標です。東京から米国西海岸への ping は約 100〜120 ms、欧州へは約 200〜250 ms が一般的です。この遅延の大部分は、海底ケーブルを光が伝搬する物理的な時間です。なお、公衆 Wi-Fi 経由で ping を実行すると、暗号化やルーティングのオーバーヘッドで RTT が通常より大きくなることがあります。

ping で分かること、分からないこと

分かること

  • 到達性: 宛先ホストがネットワーク上で到達可能かどうか
  • RTT (往復遅延): パケットの往復にかかる時間。ネットワークの「距離感」を把握できる
  • パケットロス: 送信したパケットのうち、応答が返ってこなかった割合。ネットワークの品質指標
  • TTL (Time To Live): パケットが通過したルーターの数を推定できる。TTL の初期値 (通常 64 または 128) から応答の TTL を引くと、経由したホップ数が分かる

分からないこと

  • 帯域幅: ping は極小のパケット (通常 64 バイト) を送るだけなので、回線の実効速度は測定できない
  • サービスの稼働状態: ping に応答しても、Web サーバーやアプリケーションが正常に動作しているとは限らない
  • 正確な経路: パケットがどのルーターを経由したかは ping では分からない (それは traceroute の仕事)

ping が「通らない」のは障害とは限らない

ping に応答がない場合、相手がダウンしているとは限りません。多くのサーバーやファイアウォールは、セキュリティ上の理由から ICMP Echo Request を意図的にブロックしています。

  • Windows ファイアウォール: デフォルトで ICMP Echo Request をブロックする設定になっている
  • クラウドプロバイダー: AWS のセキュリティグループは、明示的に ICMP を許可しない限りブロックする
  • DDoS 対策: 大量の ICMP パケットを使った Ping Flood 攻撃を防ぐため、ICMP をレート制限またはブロックするネットワークが多い

ping が通らない場合は、curl や telnet で特定のポートへの接続を試みるか、traceroute でどこまで到達できるかを確認してください。ファイアウォールの基礎知識を理解しておくと、ICMP がブロックされる理由がより明確になります。

ping の派生コマンド

ping 自身も含めて並べてみると、それぞれのコマンドが何を測るための道具なのかがはっきりします。

コマンド 送るパケット 分かること 主な使いどころ
ping ICMP Echo Request を送り、返ってくる Echo Reply を受け取る 到達性、RTT (往復遅延)、パケットロス、TTL から推定した経由ホップ数 相手が到達可能かと遅延の目安を知る。帯域幅・サービスの稼働状態・正確な経路は分からない
traceroute / tracert TTL を 1 から順に増やしながらパケットを送信する (Unix 系の traceroute は既定で UDP、Windows の tracert は ICMP Echo Request) 宛先に到達するまでに経由する各ルーターの IP アドレスと遅延 ping では分からない経路を確認する。ping が通らないときに、どこまで到達できるかを調べる
mtr (My Traceroute) ping と traceroute を組み合わせて送信し続ける 各ホップの遅延とパケットロスをリアルタイムで継続的に表示 経路上のどのホップで品質が落ちているかを見続ける
fping 複数のホストに同時に ping を送信する 多数のホストの応答状況をまとめて把握できる 大規模ネットワークの監視
hping TCP、UDP、ICMP など任意のプロトコルでパケットを送信する ICMP 以外のプロトコルに対する応答 ファイアウォールのテストやポートスキャン。ICMP がブロックされている相手にも使える

Mike Muuss のその後

ping の作者 Mike Muuss は、ネットワークツールの開発だけでなく、BRL-CAD (オープンソースの 3D CAD システム) の開発者としても知られています。残念ながら、2000 年 11 月に交通事故で 42 歳の若さで亡くなりました。

彼が一晩で書いた ping は、誕生から 40 年以上経った 2026 年時点でも、世界中のネットワークエンジニアが毎日使い続けるツールです。シンプルで、確実で、普遍的。優れたソフトウェアの理想形と言えるかもしれません。

この記事の関連用語

IP アドレス ping の宛先として指定する、インターネット上のデバイスの識別子。 レイテンシ (遅延) ping が測定する RTT (往復遅延時間) の基本概念。物理的な距離とネットワーク機器の処理時間に依存する。 ファイアウォール ICMP をブロックすることで ping に応答しない設定が可能。セキュリティ上の理由で広く採用されている。 DNS ping でホスト名を指定した場合、まず DNS で IP アドレスに解決される。DNS の遅延も RTT に含まれる。 ISP ping のパケットが最初に通過するネットワーク。ISP の品質が ping の結果に直接影響する。

よくある質問

ping の名前の由来は?

潜水艦のソナーが発する「ピン」という音に由来します。パケットを送って反射 (応答) を待つ動作がソナーに似ていたため、作者の Mike Muuss が直感的に命名しました。「Packet InterNet Groper」の頭文字とする説は後付けのバクロニムです。

ping が通らないのはサーバーがダウンしているからですか?

必ずしもそうではありません。多くのサーバーやファイアウォールはセキュリティ上の理由から ICMP をブロックしています。ping が通らない場合は curl や telnet で特定ポートへの接続を試みてください。

ping で回線速度は測定できますか?

いいえ。ping は極小のパケット (通常 64 バイト) を送るだけなので、帯域幅 (回線速度) は測定できません。ping が測定するのは RTT (往復遅延時間) とパケットロス率です。