1. 序章

Ping(PacketInternetまたはInter-NetworkGroper)は、 network ユーティリティで、ネットワーク上のホストがリモートコンピュータまたはノードに到達できるかどうかを確認します。 Pingでは、AppleTalk、Connectionless Network Service(CLNS)、 IP 、Internetwork Packet Exchange(IPX)、Apollo、VIP(VINES Internetwork Protocol)、Xerox Network Systems(XNS)などのさまざまなプロトコルを使用できます。 )。 このチュートリアルでは、pingで使用されるプロトコルについて説明し、それらのさまざまな側面を探ります。

2. Pingのインターネットプロトコル

ネットワークに使用されるデフォルトのプロトコルはインターネットプロトコル(IP)。 次のようなIPスタックの複数のレイヤーインターネット制御メッセージプロトコル (ICMP)、 アドレス解決プロトコル (ARP)はpingプロセスに関与します。 Pingには、IPアドレスに到達できるかどうかを確認するためのネットワークサポート付きのオペレーティングシステムが付属しています。 使用目的に応じて、pingはICMPおよびARPプロトコルを使用し、 TCPとUDP pingは、TelnetやNmapなどのさまざまなツールを使用してTCPおよびUDPポートの接続をテストするための総称としてよく使用されます。 tcping、TCPポートを介してpingを実行する別のコンソールアプリケーションについて考えてみましょう。

2.1. ARP

アドレス解決とは、ネットワーク内のコンピューターのアドレスを見つけるプロセスを指します。 PingはARPプロトコルを使用してリモートコンピューターのMACアドレスを識別します。ソースコンピューター(たとえばホスト1)のIPアドレスを含むARP要求がターゲットコンピューター(たとえばホスト2)に送信されると仮定します。 。 ARP要求への応答として、ホスト2はIPアドレスとMACアドレスを使用して応答を送信します。 繰り返しのアドレス解決要求を回避するために、ホスト1は解決されたアドレス(IPおよびMAC)を(短い)期間キャッシュします。  

2.2. ICMP

ICMP プロトコルは、pingコマンドの特定のポート番号なしでコードとタイプを提供します。pingユーティリティにはICMPプロトコルへのクライアントインターフェイスが含まれ、エコー要求(タイプ8)とエコー応答(タイプ0)を使用します。 )メッセージ。 ソースマシンからpingコマンドが発行されると、エコー要求パケットがターゲットマシンのIPアドレスに送信されます。このICMPエコー要求は、ターゲットマシンに到達可能かどうかを確認するために生成されます。 ターゲットマシンは、ICMPエコー応答を使用してエコー要求に応答します。  この応答では、pingプログラムは、ターゲットマシンのIPと、送信時間を示すタイムスタンプ値である遅延情報を受け取ります。 IPv4およびIPv6をサポートするために2つのICMPバリアントが利用可能です。

2.3. AppleTalk

Pingは、AEP(AppleTalk Echo Protocol)パケットをターゲットのAppleTalkノードに送信し、応答を待ちます。 以下の返信テキスト形式を確認できます。

2.4. CLNS

リモートCLNSノードのステータスを確認するために、Pingは「pingclns」コマンドを使用しており、以下の応答テキスト形式と説明を確認できます。

3. Pingはどのように機能しますか?

pingの操作は簡単です。コマンドプロンプト「ping」を入力してみましょう。

C:\>ping

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
            [-4] [-6] target_name

Options:
    -t             Ping the specified host until stopped.
                   To see statistics and continue - type Control-Break;
                   To stop - type Control-C.
    -a             Resolve addresses to hostnames.
    -n count       Number of echo requests to send.
    -l size        Send buffer size.
    -f             Set Don't Fragment flag in packet (IPv4-only).
    -i TTL         Time To Live.
    -v TOS         Type Of Service (IPv4-only. This setting has been deprecated
                   and has no effect on the type of service field in the IP
                   Header).
    -r count       Record route for count hops (IPv4-only).
    -s count       Timestamp for count hops (IPv4-only).
    -j host-list   Loose source route along host-list (IPv4-only).
    -k host-list   Strict source route along host-list (IPv4-only).
    -w timeout     Timeout in milliseconds to wait for each reply.
    -R             Use routing header to test reverse route also (IPv6-only).
                   Per RFC 5095 the use of this routing header has been
                   deprecated. Some systems may drop echo requests if
                   this header is used.
    -S srcaddr     Source address to use.
    -c compartment Routing compartment identifier.
    -p             Ping a Hyper-V Network Virtualization provider address.
    -4             Force using IPv4.
    -6             Force using IPv6.
Ping does the following checks:
  • ネットワーク上の送信元IPと宛先IPの間に接続があるかどうか。
  • 接続の速度(レイテンシー)。

ほとんどの場合、オプションなしでpingコマンドを使用するだけで、ネットワーク内のマシンが到達可能かどうかを確認できます。 ただし、接続の問題の高度なトラブルシューティングには、「オプション」が使用されます。 オプション-f、-v、-r、-s、-j、-kはIPv4をサポートし、-Rおよび-SはIPv6のみをサポートします。 pingコマンドは、いくつかのエコー要求を宛先アドレスに送信し、結果が表示されます。 以下に示すように、応答には、要求ステータス、応答で受信されたバイト数、遅延、パケット損失、ラウンドトリップ時間などの情報が含まれていることがわかります。

C:\>ping www.baeldung.com

Pinging www.baeldung.com [2606:4700:20::681a:c4a] with 32 bytes of data:
Request timed out.
Reply from 2606:4700:20::681a:c4a: time=110ms
Reply from 2606:4700:20::681a:c4a: time=114ms
Reply from 2606:4700:20::681a:c4a: time=107ms

Ping statistics for 2606:4700:20::681a:c4a:
    Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
    Minimum = 107ms, Maximum = 114ms, Average = 110ms

4. Pingの使用方法は?

pingは、システムの使用状況を追跡するためのスクリプト、ネットワークアクセスを追跡するためのトラブルシューティング、ネットワーク内のデバイスの検索など、いくつかの目的に使用できます。 pingの使用は、大まかに次のように分類できます。
  • トラブルシューティング–一連のpingコマンドを使用して、接続の問題を解決し、IPが到達可能かどうかを確認できます。
  • デバイス検出– Pingを使用すると、ネットワーク内の接続されたデバイスを検索できます。
  • ネットワーク監視-一般的な使用法は、pingの-tオプション(停止するまで)を使用することです。 応答がタイムアウトするか、遅延が長すぎる場合は、システムアクセスに問題があります。
次の表を、WindowsとLinuxでのpingの使用を比較して考えてみましょう。

5. 安全保障問題

pingの応答により、オペレーティングシステム、マシンIP、およびMACに関する情報が得られ、セキュリティ上の懸念が生じる可能性があります。  高度なサイバー攻撃者は、この情報を標的のマシンへの悪意のある攻撃に利用する可能性があります。 特定されたネットワークでは、攻撃者はpingを使用して、到達可能で応答しているシステムのリストを取得する可能性があります。セキュリティ違反を回避するために、多くのファイアウォールが信頼できないネットワークからのping要求をブロックします。

6. 結論

この記事では、pingコマンドの背後にある概念とプロトコルについて説明しました。 pingは、ターゲットマシンの接続ステータスと関連するネットワークパラメータを評価するために使用されます。 速度低下、パケット損失、ネットワーク監視などの接続の問題をトラブルシューティングする目的で使用できます。 IPプロトコルに加えて、pingはさまざまなネットワーク問題をデバッグするために他のいくつかのプロトコルを使用できます