web-dev-qa-db-ja.com

プロセスIDとポート番号の違いと関係は何ですか?

プロセスは実行中のプログラムです。例えば。 Firefox。 「プロセス」と「ポート」という用語の関係と違いがわかりません。

Cmdでnetstat -no -p -TCPを実行すると、以下に示すように、各プロセスに複数のポート番号が関連付けられていることがわかります。ただし、ポートとプロセスの関係は不明です。

screenshot: cmd output of "netstat -no -p -TCP"

4
user570593

質問に直接回答するには、プロセスIDとポート番号の間に関係はありません。彼らは完全に異なるものを列挙します。

PIDはプロセス(例:Firefoxセッション:各タブは異なるプロセスとして実行される場合があります)を識別し、ポート番号はそのプロセスが通信に使用しているポートを識別します。特定のポート番号には通常の用途があります。通常、80はHTTPに使用され、443はHTTPSに使用されます。ただし、プロセスは、いつ開始されたかに応じて、任意のPID番号を取得できます。

ご覧のとおり、ローカルポート番号は順番に使用され、宛先ポート番号にも、それらを使用するプロセスのPIDにも関連付けられていません。

32
Andrew Leach

PIDは、通信を行う特定のプロセスを識別できるようにするためにのみ表示され、ポート番号とは関係ありません。

1つのプログラムの複数のコピーを実行していて、それらすべてがネットワークを介して通信している場合、プログラム名を表示するだけでは、どのポートがプログラムのどのコピーに属しているかを一意に識別するには不十分です。

プログラムのすべてのコピーではなく特定の接続を強制終了したい場合は、プログラム名ではなくPIDを知っている必要があります。

12
Mokubai

処理する

プロセスとは何ですか?

プロセスはどのように割り当てられますか?

プロセスは何に適していますか?

役立つと思われるもう1つのコマンドはnetstatです。 netstatを使用しているようです。 「-b」パラメータを追加してみてください。 (このオプションは、Microsoft Windowsに固有のものです。これは、プロンプトのC:\ Users\User>に基づいて使用していると思います。)これにより、NetstatはPIDを使用して実行可能ファイルの名前を把握しようとします。それを次の行に印刷します。

これらはすべて、ポート番号とはまったく関係ありません。

ポート番号

ポート番号とは

ポート番号は、ネットワーク接続の一部として使用されます。すべてのネットワーク通信がポート番号を使用するわけではありません。たとえば、TraceRoute(Microsoft Windowsでは「TRACERT」という名前)とMicrosoft Windowsの「ping」コマンドで使用されるICMPは、ポート番号を使用しません。実行する最も一般的なプロトコルはUDPとTCPです。 (SCTPが次に一般的ですか?)HTTP(S)やSMTP(電子メール用)などの多くのプロトコルはTCPを使用するため、ポート番号が使用されます。

ポート番号は何に適していますか?

(注:角かっこは、その段落を少し読みやすくするために作成した表記法にすぎません。Netstatの出力では、ポート番号はコロンの後に表示されます。通常、「外来」という用語を使用することは好まないポート番号について説明しますが、この場合はnetstatで使用されていたためです。)

ポート番号はどのように割り当てられますか?

概要

プロセスとポート番号は非常に異なります。ここにある他の回答のほとんどまたはすべての情報に同意します。 (ただし、番号の割り当て元など、もう少し詳細にすると区別が明確になると思うので、ここに独自の回答を追加しました。)

9
TOOGAM

やや簡略化:

PIDは、特定のプロセスを参照するためにコンピューターの内部で使用される番号です。プロセッサは一度に1つの処理しか実行できませんが、実行するタスクは複数あるため、異なるプロセスの処理を交互に行います。PIDは、プロセッサが各プロセスを識別するために使用するタグです。

ポート番号はすべてのネットワーク通信に付けられたタグであり、ネットワークから回答が返されたときに、ホームネットワーク上のルーターがその回答を待機しているコンピューターを認識し、回答がコンピューターに到着したときに、コンピューターが待機しているプロセスを認識します。メッセージ。

たとえば、ポートタグは、Stackexchangeのサーバーからこのページをリクエストし、サイトデータがルーターに到着したときに、それがコンピューターであって、兄弟のスマートフォンやその他の必要なデバイスではないことをルーターが認識していることを確認しますそれら。そして、彼らがあなたのコンピューターに到着したとき、あなたのコンピューターは、WordではなくFirefoxが彼らを欲しがっていることを知ることができます。

2
Arthur

ほとんどの場合、プロセスは実行中のプログラムです。 Firefoxのようなプログラムは実際には複数のプロセスが連携して動作しますが、オペレーティングシステムに関する限り、これらは基本的な作業単位です。すべてのプロセスには、イメージ(実行中の実行可能ファイル)、作業ディレクトリ、ハンドルがあります。 (リソース割り当て)、メモリアドレス空間、CPUとI/Oの優先順位など。メモ帳を実行すると、notepad.exeを使用してプロセスが開始され、対話するためのウィンドウが開きます。

ポートはリソースです。オペレーティングシステムには利用可能な特定の数のポート(65535)があり、プロセスはポートの排他的使用を取得するためにハンドルを要求できます。プロセスは、それ以外の場合は未使用のポートのハンドルを取得できます。ネットワーク通信にはポートが必要です。発信接続用に選択されたポート番号(Webサーバーに接続するブラウザーなど)は基本的に任意です。あなたが気にする必要のある重要性はありません。

これはすべて簡略化された概要なので、superであると解釈しないでください。

2
Corrodias