FTP要素 | 描述 |
FTP定义 | 文件传输协议,用于在网络上实现文件从一个主机传输到另一个主机 |
工作原理 | 基于客户端/服务器模型,使用两个TCP连接:控制连接(端口21)和数据连接(端口20或指定端口) |
客户端与服务器 | 客户端通过用户名和密码登录服务器,进行文件传输操作 |
控制连接 | 用于传输FTP命令和应答,始终保持 |
数据连接 | 用于文件数据传输,仅在文件传输时建立 |
传输模式 | 主动模式:服务器主动连接客户端;被动模式:服务器等待客户端连接 |
端口使用 | 控制端口:21;数据端口:20(主动模式),或服务器指定的临时端口(被动模式) |
文件传输类型 | 文本模式(ASCII),二进制模式(Binary) |
用户类型 | 匿名用户:无需密码即可访问公开文件;本地用户:使用系统账户密码;虚拟用户:使用独立账号数据文件 |
FTP服务器软件 | 例如Linux下的vsftpd |
配置修改 | 可以设置用户权限,如上传、创建目录等 |
客户端上传文件 | 客户端通过提供文件路径、服务器路径、用户凭证等信息,上传文件至服务器 |
示例代码 | 在Windows下,可能使用类似以下方法的结构上传文件:uploadFile(String ip, int port, String username, String password, String serverpath, String file) |
主动与被动模式 | 主动模式:服务器向客户端发起数据连接;被动模式:服务器等待客户端发起数据连接,适用于客户端位于防火墙或NAT后 |
NAT ALG | 在主动模式下,如果存在NAT设备,可能需要进行NAT ALG(Application Layer Gateway)转换以确保数据连接的正确建立 |