我可以在同一端口上建立多个到同一服务器的TCP连接吗? 例如:
连接1:端口445上的机器A到机器B
连接2:端口445上的机器A到机器B
不终止先前建立的连接1。 如果是,我是否需要进行任何设置才能启用此类方案?
答案 0 :(得分:2)
是的,你可以。没有任何特殊设置。
这正是您开始时所发生的事情,让我们说Internet Explorer和Mozilla Firefox并导航到同一站点。
在连接到服务器的场景后面,机器A使用任何端口号打开套接字并尝试连接到机器B端口445.正在侦听端口445的机器B可以接受此传入连接,并使用另一个套接字使用任何其他端口号将其连接到。最后,在机器A的任何端口和机器B上的任何端口之间建立实际的TCP连接。在机器B上,端口445仅用于监听(并且可以接受其他连接)。
答案 1 :(得分:2)
是的,可以通过以下5元组识别TCP / IP会话:
(src-ip, src-port, dst-ip, dst-port, protocol).
在您的情况下,5个值中的4个必须相同:src-ip (A), dst-ip (B), dst-port (445), protocol (tcp)
。因此,src-port
仍然为您提供了一定程度的自由,通过对此进行变换,您可以设置多个会话。这是默认情况下应该发生的情况,您的操作系统将为每个到同一服务器的连接选择一个新的,唯一的源端口。
答案 2 :(得分:1)
TCP / IP标准支持ephemeral ports。您连接到服务器端的固定端口,但客户端端口不受您的控制。 TCP / IP堆栈将选择客户端端口,然后定义连接并将其与具有4位信息的其他连接区分开:客户端IP地址,客户端端口,服务器IP地址和服务器端口。