web-dev-qa-db-ja.com

3つのポートタイプの違いは何ですか?

これとよく似たスレッドをすでに読んでいますが、それでも理解できませんでした。

よく知られている登録済みポートと動的ポートの違いを誰かが説明できますか?.

これまでに知っていること:

よく知られているポートはリスニングに使用され、特定のIPにトラフィックを送信するためにポート転送されます

動的ポートはクライアント側であり、アクティブなセッションでのみ使用されます。期限が切れると、ポートは再び使用可能になります。これらは使用されるだけなので、トラフィックは正しいユーザーに戻ります。

登録済み-まったく理解していない

5
Simon

既知のポート

  • 0から1023の範囲のポート番号は、既知のポートまたはシステムポートです。これらは、広く使用されているタイプのネットワークサービスを提供するシステムプロセスによって使用されます。 Unixライクなオペレーティングシステムでは、既知のポートの1つを使用してネットワークソケットをIPアドレスにバインドできるように、プロセスはスーパーユーザー特権で実行する必要があります。

動的ポート

  • 49152から65535の範囲(215+214 2に16-1)IANAに登録できない動的ポートまたはプライベートポートが含まれています。この範囲は、プライベートまたはカスタマイズされたサービスまたは一時的な目的、および一時ポートの自動割り当てに使用されます。

登録済みポート

  • 1024から49151までのポート番号の範囲が登録済みポートです。これらは、要求側エンティティによるアプリケーションの特定のサービスにIANAによって割り当てられます。[1]ほとんどのシステムでは、登録済みポートは通常のユーザーが使用できます。 well-known portsregistered ports を次に示します。

ここ は、ポートの用途に関する優れた説明であり、 jcrawford の補足です。

8
DrZoo

TCPとUDPプロトコルに関する限り、ポートはすべて同じです。サービス/デーモンがリッスンするために使用でき、ポート転送はa NAT(別名NAPT、PAT)ゲートウェイ)。これらのいずれも、クライアントが接続を開始するために使用できます。

歴史的に、HTTP(80)などのよく知られている多くのプロトコルには1024未満のデフォルトポートが割り当てられているため、ほとんどのUnixやUnixライクなOSを含む多くのOSでは、これらのポートでリスナーを開くことができません。管理者/ルートの資格情報を持っている。これは、Unixボックスが実際にはマルチユーザーシステムであり、J。ランダムユーザーがボックスでHTTPサーバーを実行できず、そのユーザーのHTTPサーバーが公式のHTTPサーバーであるかのように想定されているためです。そのボックスをポート80で実行します。SSH(22)、Telnet(23)、SMTP(25)、FTP(21)などと同じです。

1024〜49152の範囲は、あまり知られていない、特に企業/独自のプロトコルの多くのデフォルトポートとして割り当てられている束のポートです。 OSがこれらのポートを使用しないようにすることをお勧めします。

クライアントまたはサーバープロセスがポートでリッスンするように要求するか、発信TCP接続またはUDPフローを開始するように要求し、特定のポートを指定しない場合、TCPおよびカーネル(「ネットワークスタック」)のUDPネットワーキングコードにより、現在未使用のポートが任意に割り当てられます。独自の「登録」ポートを後で使用する可能性があるサービスの邪魔にならないように、ネットワークスタックは通常、既知のポートまたは登録されたポートの使用を回避しようとし、代わりに49152から65535までの一時/動的ポートに制限します。

6
Spiff

それらは単なる数字です。それらをそれ以上複雑なものと考える必要はありません。

たとえば、TCPポート80はHTTPポートであると広く認識されています。そのサービスは重要であると認識されていたため、 IANAのポートリスト)で比較的低い番号が与えられました =。(ポート番号ごとに分割せずにリスト全体を表示するには、そのページの「XML」ハイパーリンクをクリックします。)

ただし、別のサービス(SSHサーバーなど)をデフォルト以外のポート(TCPポート80)など)に配置する場合、これは機能します。通常、これはサーバーとクライアントはデフォルト以外の設定を指定する必要があり、他の副次的な影響( "netstat -a"がSSH接続であっても "www"を表示するなど)がある可能性がありますが、機能します。

つまり、これは「既知の」ポート、「登録済みのポート」、または「動的」/「一時的な」ポートの間に技術的な違いがないということです。多くの場合、ポートはまったく同じように動作し、ポートが該当する数値範囲に基づいて異なる方法で処理される場合、それは多くの場合、オーバーライドできるデフォルトの動作の一部にすぎません。

1023以下のポートは、数が1023以下であるため、「よく知られている」カテゴリにまとめられます。実際、IANAのページでは、「システム」ポート(0〜1023の場合)、ユーザーポート(1024〜49151の場合)、プライベートポート(49152〜65535の場合)など、これらのカテゴリに異なる名前を付けています。したがって、カテゴリの名前でさえも異なる場合があります。要約すると、試験の準備をしているのでない限り、通常、ポート番号がどのカテゴリに分類されるかについてあまり心配する必要はありません。

2
TOOGAM

動的ポートの定義は、いくつかの点で、どの回答よりも明確に見えます。

あなたが書く

動的ポートはクライアント側であり、アクティブなセッションでのみ使用されます。期限が切れると、ポートは再び使用可能になります。これらは使用されるだけなので、トラフィックは正しいユーザーに戻ります。」.

最後の言葉を「クライアント」に修正します。

ユーザーは関係ありません、それはすべてコンピュータについてです。ユーザーはコンピュータの通信を促進するだけです!

サーバーはIPを使用して、適切なコンピューター(クライアントコンピューター)に送信できます。パケットを取得し、取得したパケットの送信元IPを確認し、パケットを送信するときにそれを宛先IPとして書き込むことができます。

Toomgoは彼のコメントの中で、プロセスは多くの「会話」を開始できると指摘しています。

クライアントポートは、そのパケットが含まれている会話を識別します。

あなたが書く

よく知られたポートはリスニングに使用され、特定のIPにトラフィックを送信するためにポート転送されます

よく知られたポートはリスニング用だと思います。つまり、ご存じのように、これらはサーバー側です。リッスンするポートを持つコンピューターはサーバーです(とにかくサーバーの主な定義によると)

NATルーターは、ポート転送を行っている場合、ポート転送を行います。ただし、ポート転送は「NATルーター」で行われるものですが、LAN内のあるコンピューターからLAN内の別のコンピューターに接続できます。ポート転送なし。そのため、既知のポートを使用する場合の定義の一部ではありません。

登録済み-まったく理解していない

私もどちらかを確認します。

それらはよく知られたポートと同じであるかもしれないがあまり知られていないようです。つまり、あまり知られていないポートと呼ぶことができます。また、いわゆるウェルノウンポートは1024未満であり、いわゆる登録済みポートは1023を超えています。

本当に技術的には、IANAがポートの目的を言っていることは重要ではありません。人々は、何が接続されているか、どのポートに接続されているかがわかるように、ポートで何が実行されているかを知っているか、知る限り、任意のポートでサーバーを実行できます。もちろん、特定のポートで何かを期待している人やソフトウェアがそれを期待している人を扱っている場合は、そのポートを使用することをお勧めします。 Webページ用のポート80と同様です。内部Web用にポート8080を使用するものもあります。または、記憶の助けとして、慣習に固執することもできます。セキュリティの1つの層として、ハッカーがサーバーを推測できないようにサーバーを高いポートで実行することがあります。

A NATルーターは、ポート転送を行う場合、それらにもポート転送します。

だからあなたがした区別は最高です。動的クライアント側ポート、およびサーバー側ポート。 NAT=ルーターがポート転送を実行している場合、サーバー側のポートに送信します。IANAには、サーバー側のポート番号に、従来のポート番号と同じ名前を付けたリストがあるようです。そこにあり、リストは1024未満のポートの規則を「よく知られている」と分類し、1023を超えるポートの規則は「登録済み」と分類していますが、あまり知られていないようです。それ以上の違い。

1
barlop