FTP(File Transfer Protocol)有两种工作模式,即主动模式(Active Mode)和被动模式(Passive Mode)
它们分别对应于不同的数据连接建立方式。
1. FTP 主动模式 (Active Mode)•
在主动模式下,FTP客户端首先与FTP服务器的21端口建立控制连接。
•当需要传输数据时,客户端会随机选择一个大于1024的高位端口号,并告知服务器它将监听这个端口(通过PORT命令)。
•服务器随后在收到此信息后,从自己的20号端口发起数据连接到客户端先前指定的那个高位端口。
2. FTP 被动模式 (Passive Mode)•
同样,被动模式下也是先建立一个从客户端到服务器21端口的控制连接。
•当需要进行数据传输时,客户端会发送PASV命令请求服务器开启一个高位端口并进入被动监听状态。
•服务器收到PASV命令后,在自己的系统上随机打开一个高位端口(大于1024),并将该端口号通过控制连接告诉客户端。
•客户端接收到服务器提供的端口号后,由客户端自己发起数据连接到服务器上预先打开的被动监听端口。
总结:
1)主动模式
21端口:控制端口
20端口:数据端口
2)被动模式
21端口+随机端口作为数据传输端口
注意:
主被动模式,阐述的是数据传输过程
主被动模式,选择权在客户机上!
•主动模式中,服务器主动建立数据连接到客户端的随机端口。
•被动模式中,客户端主动建立数据连接到服务器的随机端口,
避免了防火墙或NAT设备可能对服务器主动出站连接产生的限制问题。