「ping」はどのポートで機能しますか?

「ping」はどのポートで機能しますか?

pingコマンドがデフォルトで動作する特定のポート番号はありますか?

また、Linux システムでは、どのポート番号で実行されているかを自分で調べて、別のポート番号を構成する方法はありますか?

答え1

PingはICMPプロトコルTCP や UDP プロトコルのようなポートはありません。

Linux システムで Ping が無効になっているかどうかを確認する必要がある場合は、以下を確認してください。

cat /proc/sys/net/ipv4/icmp_echo_ignore_all
  • 0 は Ping が有効であることを意味します。(システムは Ping に応答します)
  • 1 は Ping が無効であることを意味します (システムは Ping に応答しません)

答え2

TCP/IP は 4 層のネットワーク スタックを使用します。リンク層は物理メディアとバイトの転送方法を扱い、インターネット層は IP アドレスとノード間でのデータのルーティング方法を扱い、トランスポート層は TCP および UDP セッションを扱い、アプリケーション層はユーザー プログラムがネットワークと通常どおり対話するために使用します。

Ping は、エラーや輻輳などを処理するインターネット制御メッセージ プロトコル (ICMP) の一部として実装されます。ICMP はインターネット層で実装されるため、暗号化、ポート、セッション、および上流層によって提供されるその他のものなどについてはまったく考慮しません。また、バイトが物理的にどのようにポイント A からポイント B (リンク層の主なポイント) に移動するのかも考慮しません。

これらすべては、ping が本質的にポートなしであることを意味します。ping はポート番号に対して動作しません。ポート番号は別のレベルで実装されているからです。ping を要求すると、この操作はアプリケーション層とトランスポート層を効果的にバイパスし、インターネット層に直接接続の診断を要求します (つまり、応答を取得するのにどのくらいの時間がかかるかを確認します)。これは多くの場合、ネットワーク ドライバーに直接実装されており、ping を要求したり応答したりするために特別なユーザー アプリケーションは必要ありません。

ping応答のオン/オフを切り替えることはできますが、質問しているレイヤーに文字通り概念がないものを設定することはできません。どのオペレーティングシステムでも、ping応答を有効または無効にする方法については、オンラインマニュアルを確認するだけで済みます。他の回答ではLinuxでの有効化/無効化について詳しく説明されていますが、この回答はなぜping 用に設定できるポートがありません。

答え3

従来の「Ping」は、ポートの概念を持つTCPやUDPとは別のICMPプロトコルを使用します。わかりやすいように図を描いてみました。

答え4

「ping」はどのポートで機能しますか?

なし。

Ping は実際には従来の意味でのサービスではありません。ping デーモン サーバーは存在しません。

Ping (正式には ICMP Echo) はカーネル内の IP ドライバーによって提供されますが、ハードウェア オフロードを備えた一部のアーキテクチャではハードウェア自体によって提供される場合もあります。また、他の人が言及しているように、ICMP を使用します。世界は udp と tcp のどちらかに分かれているわけではありません。

ICMP、IGMP、PPTP、IPSec の一部など、共通性の程度はさまざまですが、その他のレイヤー 4 プロトコルも存在します。

ping の派生版として tcping があり、これは選択した TCP ポートを使用して、ping とほぼ同じことを実行します。この場合、まだ「ping サーバー」は存在しません。「サーバー」とは、たまたま指しているサーバー ソフトウェアのことです。

関連情報