1. ホーム
  2. sockets

[解決済み] TCP:2つの異なるソケットでポートを共有することができますか?

2022-04-22 07:25:31

質問

これは非常に基本的な質問かもしれませんが、私を混乱させます。

異なる接続の2つのソケットがポートを共有することは可能ですか?私は100k以上の同時接続を処理できるはずのアプリケーションサーバーを書いていますが、システムで利用可能なポートの数は約60k(16bit)であることがわかっています。接続されたソケットは新しい(専用の)ポートに割り当てられるので、複数のソケットが同じポートを共有できない限り、同時接続数はポートの数によって制限されるということです。そこで質問です。

どのように解決するのですか?

A サーバー ソケットは1つのポートでリッスンします。 そのサーバーで確立されたすべてのクライアント接続は、その同じリスニングポートに関連付けられます。 サーバー側 接続の 確立された接続は、クライアント側とサーバー側のIP/Portの組合せによって一意に識別されます。 同じサーバ上の複数の接続は、同じ サーバー側 IP/Portのペアは、それらが異なる クライアント側 IP/Portのペアと サーバー は、利用可能なシステムリソースが許す限り、多くのクライアントを処理することができるようになります。

について クライアント側 の場合、新しいアウトバウンド接続では、ランダムな クライアント側 その場合、短時間に大量の接続を行うと、利用可能なポートが足りなくなる可能性があります。