给定的目标端口是否可以与多个 TCP 连接相关联?
Can a given destination port be associated with more than one TCP connection?
经过一番搜索,我了解了几点
- 我们不能为 TCP 多路复用一个端口。
- 如果两个连接使用相同的协议并且具有相同的目标端口,则它们必须具有相同的连接。
- 我很困惑,有些网站说 TCP 一次只能让一个应用程序侦听同一个端口,而其他网站说多个侦听 TCP 套接字,都绑定到同一个端口,可以共存,前提是它们都绑定到不同的本地 IP 地址。
阅读以上内容让我比以往更加困惑。一个目标端口是否可以关联多个 TCP 连接?
We cannot multiplex a port for TCP.
这是错误的。您可以可以 运行 同一端口上的多个 TCP 连接,只要它们是唯一连接即可。并且在同一进程内编写多路复用 I/O 多个 TCP 套接字的代码也不是很难。
If two connections use the same protocol and have the same destination ports, they must have the same connection.
这是错误的。 TCP 连接由协议 + 本地 IP/port + 和远程 IP/port.
的组合唯一标识
使用相同协议和相同目标的两个连接 IP/port 如果它们使用不同的源 IP/port 进行连接,则它们仍然是唯一的。例如,如果同一台机器上的多个客户端 运行ning 使用不同的本地端口进行连接,则它们可以连接到同一台服务器。这是典型的情况,因为大多数客户端使用由 OS 选择的随机可用本地端口用于出站连接。
同样,使用相同协议和相同源的两个连接 IP/port 如果连接到不同的目的地 IP/port,则它们仍然是唯一的。例如,同一台机器上的多个客户端 运行 如果连接到不同的服务器,则可以使用相同的本地 IP/port 进行连接。
some sites say that TCP can only have one application listening on the same port at one time
这是正确的,但前提是所有听众都试图同时使用同一个本地 IP/port。它只允许 1 个侦听器。
others say multiple listening TCP sockets, all bound to the same port, can co-exist, provided they are all bound to different local IP addresses.
这是正确的。
Can a destination port be associated with more than one TCP connection?
是的。即使该端口上只有 1 个侦听器,它接受的每个连接都将使用服务器端的相同本地端口,但来自客户端的不同来源 IP/port。这允许来自不同远程机器的多个客户端同时连接到同一台服务器。
经过一番搜索,我了解了几点
- 我们不能为 TCP 多路复用一个端口。
- 如果两个连接使用相同的协议并且具有相同的目标端口,则它们必须具有相同的连接。
- 我很困惑,有些网站说 TCP 一次只能让一个应用程序侦听同一个端口,而其他网站说多个侦听 TCP 套接字,都绑定到同一个端口,可以共存,前提是它们都绑定到不同的本地 IP 地址。
阅读以上内容让我比以往更加困惑。一个目标端口是否可以关联多个 TCP 连接?
We cannot multiplex a port for TCP.
这是错误的。您可以可以 运行 同一端口上的多个 TCP 连接,只要它们是唯一连接即可。并且在同一进程内编写多路复用 I/O 多个 TCP 套接字的代码也不是很难。
If two connections use the same protocol and have the same destination ports, they must have the same connection.
这是错误的。 TCP 连接由协议 + 本地 IP/port + 和远程 IP/port.
的组合唯一标识使用相同协议和相同目标的两个连接 IP/port 如果它们使用不同的源 IP/port 进行连接,则它们仍然是唯一的。例如,如果同一台机器上的多个客户端 运行ning 使用不同的本地端口进行连接,则它们可以连接到同一台服务器。这是典型的情况,因为大多数客户端使用由 OS 选择的随机可用本地端口用于出站连接。
同样,使用相同协议和相同源的两个连接 IP/port 如果连接到不同的目的地 IP/port,则它们仍然是唯一的。例如,同一台机器上的多个客户端 运行 如果连接到不同的服务器,则可以使用相同的本地 IP/port 进行连接。
some sites say that TCP can only have one application listening on the same port at one time
这是正确的,但前提是所有听众都试图同时使用同一个本地 IP/port。它只允许 1 个侦听器。
others say multiple listening TCP sockets, all bound to the same port, can co-exist, provided they are all bound to different local IP addresses.
这是正确的。
Can a destination port be associated with more than one TCP connection?
是的。即使该端口上只有 1 个侦听器,它接受的每个连接都将使用服务器端的相同本地端口,但来自客户端的不同来源 IP/port。这允许来自不同远程机器的多个客户端同时连接到同一台服务器。