web-dev-qa-db-ja.com

なぜ65,535のポートしかないのですか?

IPアドレスごとに65,535個のポートを持つことの背後にある元の理由を理解しています。これは、16ビットまたは2バイトの数で表すことができる最大の数であり、コンピューターがこれ以上スペアできるとは考えられませんでしたそれよりも、ポートのように些細なこと、またはそのようなもののために。各ポートは開いている、ブロックされている、「ステルスされた」などの理由により、ポートは実際にはそれぞれ1ビット以上必要ですが、何らかの理由で常にポートは16ビット番号で動作すると言われています。もし私がこれに誤りがあるとしたら、ぜひ教えてください。

しかし、ほとんどのコンピューターが32ビットで、さらに2、3のポートを確保するのに十分なメモリ/スペースがある世界で、なぜこれほど多くのポートがあるのですか? HTML5、HTTP2.0、IPv6、およびその他の明確に異なるバージョンに移行している最中なので、なぜポートも同じではないのですか?これらの多くは16ビットよりはるかに多くのビットを許可します。実際、IPv6では16 バイト!これらの多くが数年または数十年も先にあることを理解していますが、なぜこれらのアップグレードに関するすべてのおしゃべりで、さらに多くのポート(私はアマチュアが聞いたことがある)を覗き見しないのですか?

65,535のポートを維持するために私が見ることができる2つの理由は、大企業が古いレガシーシステムを維持できるようにすることです。 、間もなくインターネットに登場し、多くはモノのインターネットの一部として。これらの組み込みシステムを使用すると、ポートの数を減らすことができます。大きなデスクトップコンピューターが1つに接続しようとすると、赤ちゃんの組み込みシステムは最大65,000ポートしか使用できないため、穏やかであると判断できます。

一方、ポートを増やす理由はいくつか考えられます。ほとんどがNATと、複数のプライベートIPアドレスが残りのポートと通信する必要がある他のシステムに関係しています)同じパブリックIPアドレスを使用するインターネット、たとえば同じコンピューター上のVMの台頭など、すべて同じIPアドレスを使用します。技術的には、各VM IPアドレスには65,535個のポートがありますが、実際にはすべてホストのポートを使用します。このような場合、これらのシステムはかなり早くポートが不足する可能性があります。別の特定のケースはキャリアグレードのNATで、1つのパブリックIPアドレスが複数のプライベートIPアドレスに変換され、これらのプライベートアドレスの少なくとも1つがさらにプライベートアドレスの別のセットに変換されます。ここでも、各プライベートIPアドレスは技術的に独自の65,535ポートのセットを持っていますが、これは幻想です。データがパブリックインターネットに送信されるとき、パブリックIPのポートを使用しているからです。 。それ自体は必ずしもNATが必要かどうかはわかりませんが、そのようなものが必要になりますo IPv6によって大量に提供される場合でもアドレスを節約します。このようなケースがある場合、65,535を超えるポートを持たないこともできますか?

では、なぜ65,535のポートしかないのですか?それ以上許可する計画はありますか?

追伸技術的にはIPアドレスごとに65,536個のポートがあることは知っていますが、通常、ポート0は何にも使用されません。

21
trysis

ポートは使用中のレイヤー4プロトコルの一部です- [〜#〜] tcp [〜#〜] または [〜#〜] udp [〜#〜] 、ほとんどの場合。実際のコンピュータのメモリアドレス指定とは関係ありません。したがって、最新のオペレーティングシステムの32ビットまたは64ビットメモリアドレス指定と混同しないでください。

これらのレイヤー4プロトコルのヘッダーには 特別に定義された構造 があり、送信元ポートと宛先ポートに正確に16ビットが使用されます。インターネット全体が依存するレイヤー4プロトコルに互換性を損なう変更がなければ、ポート数を変更することはできません。新しい [〜#〜] sctp [〜#〜] でも、ポートに16ビットの制約があります。

これらのプロトコルは、受信ポートだけでなく、受信IPおよび送信ポートとIPにも基づいてトラフィックを識別することに注意してください。 65535リスニングTCPポート(ただし、それほど多くはありません))に制限されており、特定のリモートシステム上の特定のサービスへの接続は65535に制限されています(実際には低い ephemeral ports )を参照してください。特定のリモートシステムへの接続を多数作成しているシステムがない限り、これらのプロトコルの制限に遭遇することは一般的ではありません。

29
Shane Madden