ストーリー
ping とは
一言で言うと
相手のコンピュータにネットワーク接続できるか確認するコマンド
ping は ICMP(Internet Control Message Protocol)という プロトコルを使って、相手にパケットを送り、応答が返ってくるかを確認します。
例え
「もしもーし!聞こえますか?」 → ICMPエコーリクエスト
「はい、聞こえてます!」 → ICMPエコーリプライ
基本的な使い方
ping -c 4 対象
-c 4: 4回だけパケットを送る(省略するとLinux/Macでは停止するまで送り続ける)- 対象: IPアドレスまたはドメイン名
実行例
ping -c 4 8.8.8.8
出力例:
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=3.45 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=3.52 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=3.48 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=3.50 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 3.450/3.487/3.520/0.025 ms
出力の読み方
各行の意味
graph LR
A["64 bytes\n受信データサイズ"] --- B["from 8.8.8.8\n応答元のIP"] --- C["icmp_seq=1\nシーケンス番号"] --- D["ttl=117\nTTL(生存時間)"] --- E["time=3.45 ms\nRTT(応答時間)"]
style A fill:#dbeafe,stroke:#2563eb,color:#1e40af
style B fill:#d1fae5,stroke:#059669,color:#065f46
style C fill:#fef3c7,stroke:#d97706,color:#92400e
style D fill:#fee2e2,stroke:#dc2626,color:#991b1b
style E fill:#f3e8ff,stroke:#7c3aed,color:#5b21b6
RTT(Round Trip Time / 往復時間)
パケットが往復するのにかかった時間。
| RTT | 評価 |
|---|---|
| 1ms 以下 | 非常に高速(ローカルネットワーク) |
| 1〜10ms | 高速(近いサーバー) |
| 10〜100ms | 普通(国内サーバー) |
| 100〜300ms | やや遅い(海外サーバー) |
| 300ms 以上 | 遅い(遠い海外、衛星通信など) |
TTL(Time To Live)
パケットがネットワーク上を通過できる最大ルーター数。ルーターを通過するたびに1ずつ減り、0になるとパケットは破棄されます。
TTL=64 → Linuxサーバーからの応答の可能性
TTL=128 → Windowsサーバーからの応答の可能性
TTL=255 → ネットワーク機器からの応答の可能性
統計情報
graph TD
subgraph Stats["パケット統計"]
S1["4 packets transmitted\n送信パケット数"]
S2["4 received\n受信パケット数"]
S3["0% packet loss\nパケットロス率"]
S1 --- S2 --- S3
end
subgraph RTT["RTT統計"]
R1["min: 3.450ms\n最小値"]
R2["avg: 3.487ms\n平均値"]
R3["max: 3.520ms\n最大値"]
R4["mdev: 0.025ms\n標準偏差"]
R1 --- R2 --- R3 --- R4
end
style Stats fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af
style RTT fill:#d1fae5,stroke:#059669,stroke-width:2px,color:#065f46
style S1 fill:#dbeafe,stroke:#2563eb,color:#1e40af
style S2 fill:#dbeafe,stroke:#2563eb,color:#1e40af
style S3 fill:#dbeafe,stroke:#2563eb,color:#1e40af
style R1 fill:#d1fae5,stroke:#059669,color:#065f46
style R2 fill:#d1fae5,stroke:#059669,color:#065f46
style R3 fill:#d1fae5,stroke:#059669,color:#065f46
style R4 fill:#d1fae5,stroke:#059669,color:#065f46
- packet loss 0%: パケットがすべて届いている(正常)
- packet loss 100%: 1つも届いていない(接続できない)
ping で分かること
| 結果 | 意味 |
|---|---|
| 応答あり + 0% loss | 正常に接続できている |
| 応答あり + 一部 loss | 通信品質が悪い(回線が不安定) |
| 応答なし(タイムアウト) | 接続できない or ファイアウォールでブロック |
| ドメイン名で失敗、IPで成功 | DNS の問題 |
ping が失敗する場合
Request timeout
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
原因:
- 相手が存在しない or 電源オフ
- ファイアウォールがICMPをブロック
- ネットワーク経路に問題がある
Name resolution failed
ping: unknown host example.invalid
原因:
- ドメイン名が存在しない
- DNSサーバーに接続できない
注意
一部のサーバー(特にクラウドサービス)はセキュリティのため ping をブロックしていることがあります。ping が失敗しても、Webサイト自体は正常に動いている場合があります。
まとめ
| ポイント | 内容 |
|---|---|
| ping | ネットワーク接続を確認するコマンド |
| RTT | パケットの往復時間(ms単位) |
| TTL | パケットの生存時間 |
| packet loss | パケットの損失率(0%が理想) |
チェックリスト
- ping コマンドの基本的な使い方が分かる
- RTT(往復時間)の意味を理解した
- packet loss の意味を理解した
- ping が失敗する原因を3つ言える
次のステップへ
ping の使い方が分かりましたね。
次のセクションでは、traceroute コマンドを学びます。データがどの経路を通って相手に届くのか、追跡してみましょう。
推定読了時間: 25分