一次完整的 FTP 会话,包含有两个连接,一个称之为命令通道,一个称之为数据通道。命令通道用来传递一些“命令”和反馈,包括使用用户名和密码登录,而且众所周知是明文。数据通道用来传递实际数据----列目录、文件传输,一旦需要列目录或文件传输,数据通道就会被建立起来。FTP 服务程序一般会支持两种不同的数据通道模式:Port 和 Pasv(Passive)。
Port 模式:
Port 是主动模式,在建立数据通道时,服务端去连接别人;
在命令连接建立后,客户端会发送一条命令告诉服务端:我(客户端)在本地打开了一个端口 N 等你进行数据连接。当服务端收到这个 Port 命令后 就会向客户端打开的那个端口 N 进行连接,这样数据连接就生成了。
Pasv 模式:
Pasv 是被动模式,在建立数据通道时,服务端被别人连接;
在命令连接建立后,服务端会发信息给客户端,这个信息是:我(服务端)在本地打开了一个端口 M,你现在去连接我吧。当客户端收到这个信息后,就可以向服务端的 M 端口进行连接,连接成功后,数据连接也建立了。
建立数据通道时,用 Port 模式还是 Pasv 模式,选择权在于 FTP 客户端。
本文介绍了FTP会话中涉及的命令通道和数据通道的工作原理,并详细解释了Port模式和Pasv模式下数据通道如何建立。
1485

被折叠的 条评论
为什么被折叠?



