我被问了两个问题,但我不确定答案。
*假设 PC X 的 21 端口上有一个 FTP 服务器。两台不同的 PC(Y 和 Z)是否可以同时与端口 21 上的 FTP 服务器建立连接?为什么可以或为什么不可以?
我认为这是可能的,但我不确定原因。
*PC Y 是否可以同时与端口 21 上的此 FTP 服务器建立多个连接?为什么可以或为什么不可以?
我认为不是,但我仍不确定具体原因。
答案1
是的,是的。服务器连接都是基于“套接字”而不仅仅是端口。每个套接字由以下信息组成:
SRC-IP
SRC-PORT
目标IP
目标端口
协议
一台服务器可以处理多个套接字。如果两台机器正在连接,那么它们的源 IP 将是唯一的,并且每个连接在连接时都会被赋予一个随机源端口。您的服务器可以处理的连接数各不相同,受内存、网络带宽等限制。您的 FTP 服务器软件应该提供一个配置选项,用于设置最大客户端连接数。
答案2
是的,没错。当服务器监听某个端口时,它可以在该端口上同时建立多个连接。想想如果服务器在端口 80 上一次只接受一个连接,我们会遇到什么问题:网站一次只允许加载一个页面。
您还可以在同一端口上建立从一台计算机到另一台计算机的多个连接,因为源端口会随机改变。
希望这能回答你的问题。
答案3
是的,您计算机的每个连接都由其目标地址/端口和源地址/端口识别。
使用上述信息可以唯一地标识来自不同主机(甚至同一主机)的多个连接。
答案4
由于源端口通常是随机的,因此每个连接的源端口都不同,FTP 服务器有足够的信息来区分来自同一台 PC 的两个连接(并且当回复返回时,PC 也有足够的信息来区分它们)。所以,是的,是的,即使 FTP 是一个有状态的协议。
此外,大多数 FTP 实现都支持并使用 PASV 命令来协商附加端口以建立数据连接。这样就可以使用同一个 FTP 会话传输多个数据流。