程序如何确保它们正在侦听的端口尚未被使用?

网络工程 转发端口
2022-02-25 22:28:58

我只是对此感到好奇,但我知道程序可以使用一系列端口,但我很好奇他们如何知道他们正在侦听的端口尚未被另一个程序使用?毕竟似乎端口号是随机选择的,总是有可能发生冲突。如果发生冲突,会发生什么?

1个回答

传输层端口号由各自的协议管理(通常在操作系统的堆栈中)。在应用程序可以使用任何特定端口之前,它需要分配它。否则,它根本无法使用它。

对于出站连接,大多数应用程序分配一个临时端口(49,152 起,Linux 上通常为 32,768 起)。这些数字可能看起来是随机的。