LESSON 25分

ストーリー

あなた
先輩、“ネットワークが繋がらない”って言われたとき、最初に何をすればいいですか?
先輩
まずは ping だね。相手のコンピュータが応答するか確認するんだ
あなた
ping ですか。Step 2 の演習でも使いましたね
先輩
そう。今回はもう少し深く、ping の仕組みと読み方を学ぼう

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分