0

我正在用 C# 编写服务器代码,我认为用一个端口为所有客户端(比如我梦中的数百万)提供服务是好的(甚至可能),或者最好使用例如 1000 个端口并使用更少 -每个客户端使用的端口或随机端口!性能影响是什么?

4

1 回答 1

1

为不同的客户端使用多个端口通常是错误的方法。

端口是有限的资源,因此您需要这样管理它们。
最多有 65,535 个,您只能使用 1024 和 49,151 之间的端口。见https://en.wikipedia.org/wiki/Registered_port

从管理的角度来看,它们也并非没有开销。想想防火墙、代理、负载均衡器、路由等。如果您有一个使用多个端口的应用程序,那么它需要为这些类型的应用程序配置所有这些(这也增加了安全风险)并且有与另一个应用程序发生冲突的风险碰巧在特定服务器上使用相同的端口。

此外,端口根本不是性能限制。

如果遇到性能瓶颈,则需要更改代码或使用负载均衡器将负载分配到同一主机或多个主机上的应用程序的多个实例。

如果您考虑一下,世界上所有的 Web 服务器都使用端口 80(至少在外部)。因此,如果 Google 搜索、Facebook、Instagram 等可以在单个端口上处理此类负载,那么我相信您的简单应用程序也可以管理这个!

您可以将不同的端口用于不同的目的,包括不同的协议,这是公认的做法。

于 2020-01-10T08:22:22.780 回答