gpt4 book ai didi

http - 服务器如何使用有限数量的端口?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:12:09 25 4
gpt4 key购买 nike

据我所知,(单一通用)网络服务器使用端口(与任何其他 tcp/upd 应用程序一样)来识别用户/进程。由于端口是一个 16 位无符号整数,因此范围从 0 到 65535。当服务器达到其限制时如何操作?

高级样本

  1. 服务器 1 通过 8080 应答! client1 连接到 server1(现在它们通过随机端口连接:(但唯一)server1:5123 <--> client1:6123)

  2. 另一个 client2 连接到 server1 ( server1:5124 <--> client2:7123 )

所以,问题是:对于给定的实例,服务器是否受 65535(实际上小于该值)的限制?

最佳答案

在最简单的情况下,网络服务器只使用服务器系统上的一个 TCP 端口(通常是端口 80)。所有与网络服务器的连接都通过该单一端口处理。其他 65534 个端口仍可用于其他用途。

之所以可行,是因为 TCP 连接不仅由服务器上的端口号标识,而且由(服务器 IP、服务器 TCP 端口、客户端 IP、客户端 TCP 端口) 的组合标识。因此服务器可以在其端口 80 上拥有大量并发 TCP 连接,使用其他三项来识别流量属于哪个连接。如果服务器只有一个 IP 地址,因此 (server IP, server port) 部分在与网络服务器的所有连接上都是相同的,各个连接仍然可以通过 (client IP、客户端端口) 部分组合。

如果您在繁忙的 Unix 网络服务器上运行 netstat -a 命令,您将看到它的实际效果。该命令将显示服务器端口 80 上的一堆连接,但所有连接都具有不同的客户端 IP 和/或端口。它还将显示系统仍在监听端口 80 上的新连接,同时它正在处理该端口上的所有现有连接。

与网络服务器的连接总数可能受到某些其他约束(可能是内存使用,可能是网络服务器本身或操作系统内核中的某些任意限制)或某些外部约束(可能是外部防火墙中的连接表大小)的限制或网关),但不受 16 位 TCP 端口范围的限制。

另请注意,TCP 端口与 UDP 端口完全分开,因此将 TCP 端口 80 用于网络服务器不会阻止 UDP 端口 80 用于其他目的。反之亦然。

关于http - 服务器如何使用有限数量的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com