なぜ65,535のポートしかないのに、もっと多くのポートがあるのでしょうか?[閉まっている]


20

IPアドレスごとに65,535個のポートを持つ背後にある元の理由を理解しています。これは、16ビットまたは2バイトの数値で表すことができる最大の数値であり、コンピューターがこれ以上余裕を持たせることは考えられませんでした港のようなささいなもの、またはそのようなもののためのそれよりも。各ポートは開いたり、ブロックされたり、「ステルス」されたりする可能性があるため、実際にはポートにはそれぞれ1ビット以上が必要な場合があります。この間違いの一部がある場合は、ぜひ教えてください。

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

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

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

では、なぜ65,535個のポートしかまだないのに、さらに許可する予定があるのでしょうか?

PS技術的にはIPアドレスごとに65,536個のポートがありますが、ポート0は通常何にも使用されません。


リソースを制御するこれらの質問をIANAに尋ねる必要があると思います。あなたの理解の一部に欠陥があるように思えるので、TCP / IPガイドも読む必要があると思います。
user9517はGoFundMonicaを

1
ええ、私は考え出した。私は理解している限り話そうとしましたが、あなたが見ることができるように、私はすべてを理解していません。
トリシス14年

7
この質問のオフトピックとは何ですか?ただ疑問に思う。
トリシス14年

1
また、これらのサイトで質問することを断念しました。最近はすべてがトピックから外れているようです
ヌーノ

IPv6は、使用するアドレスの/ 64をコンピューターに提供することにより、ポートの制限を無効にします。
J.Money

回答:


28

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

これらのレイヤー4プロトコルのヘッダーには、構造明確に定義されており、ソースおよび宛先ポートに正確に16ビットが使用されます。インターネット全体が依存しているレイヤー4プロトコルに対する互換性を損なう変更がないと、ポートの数を変更できません。新しいSCTPでも、ポートに16ビットの制約があります。

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


3
常に下位互換性になりますよね?あまりにも多くのIPアドレスを許可するIPv6に変更できるのはなぜですか?それが私の主な迷惑です。
トリシス14年

2
@trysis正しい-IPv4からIPv6に移行することは、ポートのヘッダーにより多くのビットがあるTCPのバージョンおよびUDPのバージョンに移行するのに必要なものとの良い比較です。また、気づいていない場合は、世界規模のIPv6展開を現在の場所(世界規模のトラフィックの1〜2%で使用)に移行するのも、時間と手間がかかります。IPv4の場合、移動する必要がありました。アドレスの枯渇です。一方、これらのプロトコルのポートスペースが不足することは一般的な問題ではないため、それを実現するために必要な大規模な変更を行う必要はありません。
シェーンマッデン

ああ、それはもっと理にかなっています。ありがとう。いつか必要性を感じるかもしれませんが、その必要性が今はないという点であなたは正しいと思います。
トリシス14年

このような問題をすべて経験した場合、整数ベースのポートアドレッシングよりも優れたものを思いつくことができると思います。UUIDベースのポートのようなものは素晴らしいでしょう。または、実際の名前空間はさらにわかりやすく、アプリケーション間の競合の可能性を排除します。「com.windows.local.yourdomain.server001」名前空間またはそのような何かのためにポートフォワードを設定することを想像してください。
-njbair

したがって、2台のPCが一緒に65,535の接続を作成するか、NATの外部のPCのクーペルに類似する場合、他のPCはitnernetにアクセスできません。私は正しいですか?
デニス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.