我可以建立1个以上的TCP连接到同一服务器上的同一端口从同一客户端?特别是端口445



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

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

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

不终止先前建立的连接1。

可以。无需任何特殊设置。

这就是当你开始使用Internet Explorer和Mozilla Firefox并同时导航到同一个站点时所发生的情况。

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

可以,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仍然给您一定程度的自由,通过改变它,您可以设置多个会话。这是默认情况下应该发生的,您的操作系统将为每个连接到同一服务器的新唯一源端口选择。

TCP/IP标准支持临时端口。您连接到服务器端的固定端口,但客户端的端口不受您的控制。TCP/IP堆栈将选择客户端端口,然后用4位信息定义连接并将其与其他连接区分:客户端IP地址,客户端端口,服务器IP地址和服务器端口。

相关内容

最新更新