LESSON 25分

pingで接続を確認しよう

ストーリー

「先輩、"ネットワークが繋がらない"って言われたとき、最初に何をすればいいですか?」

「まずは ping だね。相手のコンピュータが応答するか確認するんだ」

「ping ですか。Step 2 の演習でも使いましたね」

「そう。今回はもう少し深く、ping の仕組みと読み方を学ぼう」


ping とは

一言で言うと

相手のコンピュータにネットワーク接続できるか確認するコマンド

ping は ICMP(Internet Control Message Protocol)という プロトコルを使って、相手にパケットを送り、応答が返ってくるかを確認します。

例え

「もしもーし!聞こえますか?」  → ICMPエコーリクエスト
「はい、聞こえてます!」        → ICMPエコーリプライ

基本的な使い方

bash
ping -c 4 対象
  • -c 4: 4回だけパケットを送る(省略するとLinux/Macでは停止するまで送り続ける)
  • 対象: IPアドレスまたはドメイン名

実行例

bash
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

出力の読み方

各行の意味

64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=3.45 ms
│          │            │          │        │
│          │            │          │        └── RTT(応答時間)
│          │            │          └─────────── TTL(生存時間)
│          │            └────────────────────── シーケンス番号
│          └─────────────────────────────────── 応答元のIP
└────────────────────────────────────────────── 受信データサイズ

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 → ネットワーク機器からの応答の可能性

統計情報

4 packets transmitted, 4 received, 0% packet loss, time 3005ms
│                     │           │
│                     │           └── パケットロス率
│                     └────────────── 受信パケット数
└──────────────────────────────────── 送信パケット数

rtt min/avg/max/mdev = 3.450/3.487/3.520/0.025 ms
    │    │    │   │
    │    │    │   └── 標準偏差(ばらつき)
    │    │    └────── 最大値
    │    └─────────── 平均値
    └──────────────── 最小値
  • 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分