FTP 文件传输协议技术详解
FTP(File Transfer Protocol)在 TCP/IP 协议族中属于应用层协议,是文件传输标准。
主要功能是向用户提供本地和远程主机之间的文件传输,尤其在进行版本升级、日志下载和配置保存等业务操作时,广泛地使用 FTP 功能。FTP 协议基于相应的文件系统实现。
FTP 采用 C/S(Client/Server)结构,如图 所示。
- FTP Server:运行于设备上的 FTP 服务。提供远程客户端访问和操作的功能,用户以通过 FTP 客户端程序登录到设备上,访问设备上的文件。
- FTP Client:FTP 的客户端。提供本地设备对远程服务器的文件进行操作的命令。用在PC 上通过终端程序或 Telnet 程序与作为 FTP Client 的设备建立连接后,可以输入 FTP 命令建立与远程 FTP Server 的连接并访问远程主机上的文件,对远程主机上的文件进行操作。
二、FTP 连接的建立
FTP 采用 2 个 TCP 连接来传输文件:控制连接和数据连接。
其中控制连接用于连接控端口,传输控制命令;数据连接用于连接数据端口。
在控制连接建立后,数据连接通过控制端口的命令建立起连接,进行数据的传输。
FTP 连接的建立分为主动模式和被动模式,两者的区别在于数据连接是由服务器发起还是由客户端发起。缺省情况下采用主动模式,用户可以通过命令切换。
主动模式下,当客户端存在防火墙时,由于数据连接是由服务器发起,数据连接可能会发问题。被动模式下,这个问题得到了解决。主动模式有利于对 FTP 服务器的管理,不利于对客端的管理;被动模式则相反。
缺省情况下,服务器的端口 21 用于传输控制命令,端口 20 用于传输数据。
A、主动模式下 FTP 连接建立
FTP 连接主动模式建立过程如图所示。
1. 服务器打开端口 21 启动监听,等待连接。
2. 客户端发起控制连接的建立请求,服务器响应连接,控制连接建立。
3. 客户端通过控制连接发送 PORT 命令,将客户端数据连接的临时端口号告诉服务器。
4. 服务器的 20 号端口与客户端建立起数据连接。
B、被动模式 FTP 连接建立
FTP 连接被动模式建立过程如图所示。
1.服务器打开端口 21 启动监听,等待连接。
2. 客户端发起控制连接的建立请求,服务器响应连接,控制连接建立。
3. 客户端通过控制连接发送命令字 PASV,告知服务器处于被动模式。
4. 服务器回应,将服务器数据连接的临时端口号告诉客户端。
5. 客户端与服务器的临时端口建立起数据连接。
说明:
临时端口为随机产生。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?