在主动模式下运行 ftp 如下所示(在这地点):
在主动模式 FTP 中,客户端从随机的非特权端口 (N > 1023) 连接到 FTP 服务器的命令端口,即端口 21。然后,客户端开始监听端口 N+1,并将 FTP 命令 PORT N+1 发送到 FTP 服务器。然后,服务器将从其本地数据端口(即端口 20)连接回客户端指定的数据端口
这是我的问题。当有额外的客户端连接时会发生什么?服务器是否会为该新连接打开额外的数据端口?如果是,它会选择哪个端口?
答案1
一个tcp会话包括源端口、源IP、目标端口和目标IP。
对于每个会话,这些必须是唯一的。
假设客户端一打开一个会话,并取回数据连接:
Control: source_ip:1024 -> server_ip:21
Data: source_ip:1025 <- server_ip:20
现在打开了第二个会话。1024 和 1025 都已在使用中,因此接下来的是:
Control: source_ip:1026 -> server_ip:21
Data: source_ip:1027 <- server_ip:20
它不一定会按那样的顺序增加,这取决于服务器上发生的其他事情。