1

我可以在同一端口上与同一服务器建立超过 1 个 TCP 连接吗?例如 :

连接 1:机器 A 到机器 B 的端口 445

连接 2:机器 A 到机器 B 的端口 445

不终止先前建立的连接 1. 如果是,我需要做任何设置来启用这种情况吗?

4

3 回答 3

3

是的你可以。无需任何特殊设置。

这正是您启动时发生的情况,比如说 Internet Explorer 和 Mozilla Firefox,并使用两者导航到同一个站点。

在后台连接到服务器,机器 A 使用任何端口号打开一个套接字并尝试连接到机器 B 的 445 端口。正在侦听端口 445 的机器 B 可以接受这个传入连接,并使用另一个套接字使用其他任何连接它的端口号。最后,实际的 TCP 连接建立在机器 A 上的任何端口和机器 B 上的任何端口之间。在机器 B 上,端口 445 仅用于侦听(并且可以接受其他连接)。

于 2013-01-17T10:00:41.300 回答
2

是的,您可以,TCP/IP 会话由以下 5 元组标识:

(src-ip, src-port, dst-ip, dst-port, protocol).

在您的情况下,5 个值中的 4 个必须相同:src-ip (A), dst-ip (B), dst-port (445), protocol (tcp). 因此,src-port仍然为您提供一定程度的自由度,通过改变它,您可以设置多个会话。这是默认情况下应该发生的情况,您的操作系统将为与同一服务器的每个连接选择一个新的、唯一的源端口。

于 2013-01-17T10:20:05.370 回答
1

TCP/IP 标准通过临时端口支持这一点。您连接到服务器端的固定端口,但客户端的端口不受您的控制。TCP/IP 协议栈会选择客户端端口,然后定义连接并通过 4 位信息将连接与其他连接区分开来:客户端 IP 地址、客户端端口、服务器 IP 地址和服务器端口。

于 2013-01-17T10:17:30.617 回答