我可以在同一个客户端的同一端口上build立多个TCP连接到同一个服务器吗? 具体到端口445

我可以在同一个端口上build立多个TCP连接到同一台服务器吗? 例如 :

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

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

没有终止以前build立的连接1.如果是,我是否需要做任何设置来启用这种情况?

是的你可以。 没有任何特殊的设置。

这正是您开始时发生的情况,比方说Internet Explorer和Mozilla Firefox,并使用两者导航到相同的站点。

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

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

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