TCPサーバーは65535クライアントに制限されていますか?


9

これは、単一のコンピューター/アプリケーションが維持できるクライアントの数に厳しい制限を課すと考えるかもしれません。

1つはWebサーバーを監視していて、最大65,000接続を超えると予測される使用レベルにまで拡張できることを確認する必要があります。

ソフトウェアの場合、特定の考慮事項があります(/programming/1575453/how-many-socket-connections-can-a-web-server-handle


何か回答がありましたか?もしそうなら、あなたは答えを受け入れて、質問が永遠にポップアップし続けないようにして、答えを探します。または、独自の回答を提供して受け入れることもできます。
Ron Maupin

回答:


15

短い答えはノーです、それは限界ではありません。

TCPポートフィールドは2xバイトで、65536の量を保持します。この数サーバーが持つことができるアドレスの量を制限します。しかし、これはクライアントの数を〜64kに制限しません。各TCPパケットには、宛先用と送信元用の2つのポートフィールド(および2つのIPアドレス)があります。

特定のTCP接続は、送信元と宛先のタプルであり、それぞれにIPアドレスとポート番号が付いています。宛先(サーバー側)は固定されたままですが、送信元アドレス(クライアント側)はポートとIPアドレスの両方で変化する可能性があります。

検討してください:

  • サーバーIP-100.0.0.1(固定)
  • サーバーポート-80(固定)
  • クライアントIP-0.0.0.0-255.255.255.255(32ビット範囲)
  • クライアントポート-0〜65535(16ビット範囲)

はい、単一のIPアドレスを持つクライアント(またはオフィス)はサーバーに65535回しか同時に接続できませんが、そのクライアント(またはオフィス)が複数のIPv4アドレスを持っている場合は、さらに多くの倍数に接続できます。

通常、多くのクライアントデバイスで数百万のIPアドレスが使用されています。単一の送信元ポートのみを使用して単一のサーバーポートに接続する場合、すでに65536を超える可能性があります。

IP / TCPプロトコルの理論上の数学的制限は2 ^ 32 * 2 ^ 16です。実際には、IPアドレスの数は少なくなります。予約済みのIPブロックを差し引く必要があります。また、実際には、典型的なクライアントコンピューターが他のサーバーに接続している複数のアプリケーションを実行してTCPポートプールを減らしすぎるため、クライアント側ポートの数は少なくなりますが、このプールはめったに使い果たされません-TCPセッションがポート番号を終了すると再びプールで利用可能です。

注:IPv6の場合、IPアドレスの量は増えますが、TCPのポートフィールドは同じサイズのままです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.