现代操作系统中有多少个端口?

How many ports count in the modern operating systems?

TCP 和 UDP 协议有 16 位端口字段。因此,操作系统网络堆栈、函数和结构具有用于端口的 16 位值。 但是,当操作系统有超过 65535 个端口时,是否可能出现这种情况?

But is it possible situation, when operating system has more than 65535 ports?

不适用于任何使用 16 位字段作为端口号的协议。它不取决于操作系统,因为它是协议的一部分,您不能在不更改 所有 现有主机的情况下更改它。

正如 Ron Maupin 指出的那样,这通常不是实际限制,因为应用程序可以使用单个端口与任意数量的主机通信。套接字由元组 源 IP、目标 IP、L4 协议、源端口、目标端口 定义。只要该元组是唯一的,就明确定义了套接字。

L4 端口的数量可能成为 网络地址(端口)转换 (NAPT) 的瓶颈,但 business-grade NAT 路由器通常支持使用 public IP 地址,而不仅仅是一个 IP 地址。

What if "extended port number" exists only inside OS network stack for multiplex to isolated environments?

如果您定义自己的 transport-layer 协议,您可以根据需要将该字段设置为 128 位。实际上,没有必要这样做。