FTP、Pine与SSH的应用案例解析
1. FTP协议相关内容
1.1 PASV命令的历史用途
PASV命令最初并非用于当前常见的用途,它原本是为了让FTP客户端在两个远程服务器之间直接进行文件传输而设计的。具体操作流程如下:
1. 客户端与两个远程服务器建立控制连接。
2. 向其中一个服务器发送PASV命令,使其监听某个套接字。
3. 向另一个服务器发送PORT命令,告知其连接到前一个服务器监听的套接字。
4. 最后发送数据传输命令(如STOR、RETR等)。
不过如今,大多数人甚至不知道这种操作是可行的,通常会先将文件从一个服务器拉到本地机器,再将其传输到第二个远程服务器。而且很多FTP客户端不支持这种模式,部分服务器出于安全考虑也禁止使用该模式。
1.2 使用默认数据端口的FTP传输
当客户端既不发送PORT命令也不发送PASV命令时,会触发第三种文件传输模式。在此模式下,服务器会从知名的ftp - data端口(20)发起数据连接,连接到控制连接的源套接字,客户端必须监听该套接字(这些套接字是FTP会话的“默认数据端口”)。
使用此模式的常规步骤如下:
1. 客户端从本地套接字C发起与服务器端口21的控制连接。
2. 用户输入sendport命令,然后输入数据传输命令,如put或ls。此时,FTP客户端开始在套接字C上监听传入的TCP连接。
3. 服务器确定控制连接另一端的套接字C。它无需客户端通过FTP协议显式发送该信息,因为可以通过TCP获取(例如使用getpeername()套接字API例程)。然后,服务器从其ftp - dat
超级会员免费看
订阅专栏 解锁全文
1170

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



