我是 FTP 协议的新手,在这里我已经阅读了 ftp 中的主动和被动模式。
主动模式:表示客户端将端口号发送到服务器进行数据通信。被动模式:表示服务器将端口号发送给客户端进行数据通信。
在这里,这些都还好
我的疑问是处于被动模式对于初始控制连接,两者都将在某个端口上进行通信,例如 5000。服务器接收到“PASV”命令后,服务器将发送端口号示例 5010。
服务器将端口号发送给客户端后,服务器是否应该关闭5000号端口,并开始列出5010端口?还是两个端口都应该处于活动状态?
对于命令我需要使用旧端口(5000),对于数据通信我需要使用新端口(5010),或者它是怎么回事?
谁能帮我这个
FTP 协议与 ssh 或 HTTP 等简单协议的不同之处在于它同时使用两个端口(和两个连接)。
您最初连接的端口是命令端口。到该端口的连接一直处于活动状态,直到会话终止并且所有命令都发送到该端口。
当您发出启动数据传输的命令时——例如
get
或put
——在另一个端口(数据端口)上建立另一个连接(称为数据连接)。此连接是主动模式下从服务器到客户端的连接,以及被动模式下从客户端到服务器的连接。此连接仅在数据传输期间持续,并在传输完成后关闭。