本文内容
wiki 中的解释
FTP 概述
File Transfer Protocol (FTP) 文件传输协议是一个网络协议标准,用于服务端和客户端在计算机网络上传输计算机文件。
FTP 是基于clien-server的现代结构,在客户端与服务端之间使用控制连接与数据连接分离的方式。FTP 用户可能需要通过明文登录进行验证,
通常是以账户密码的形式,但如果设置允许匿名登陆,也可以不需要验证,以匿名用户进行登陆。
为了保证传输安全以及用户名密码的安全,FTP 经常使用SSL/TLS协议进行保护(FTPS),或者使用 SSH File Transfer Protocol(SFTP).
在拥有图形化界面的操作系统诞生之前,第一个FTP客户端应用就以命令行的方式被开发出来了,现在的大部分Windwos, Unix, Linux 操作
系统中都会默认安装FTP。从那以后,许多FTP 客户端 和 各语言的程序包被开发出来用于桌面计算机,服务器,移动设备,硬件。且被整合进
用户产品级的应用程序,例如 HTML 编辑器
FTP 的发展历史
FTP 的原始规范是由Abhay Bhushan 在 1971/04/16 发布为 RFC 114, 直到1980 年才开始用在 NCP 上(NCP 是 TCP/IP的前身)
该协议后来出现了TCP/IP版本,在1980年6月发布 RFC 765, 在 1985年10月发布RFC 959, 当前的版本是在 RFC 959 之上,
增订了几项标准,例如,1994年二月的RFC 1579(增加 Firewall-Friendly 被动模式),1997年6月的RFC 2228(提议安全扩展),
1998年9月的RFC 2428(增加对IPv6的支持,定义新的被动模式)
协议的主要内容
FTP协议 简介
- FTP 协议是ISO 模型层的应用层协议,该协议使用TCP协议进行传输数据,默认端口是 20 ,21(双端口)
- FTP 协议出现较早,在如今的浏览器中直接输入FTP可直接访问,各大操作系统也默认安装FTP协议
- 现如今文件传输和共享服务,出现了云盘,还有各式各样的应用程序都支持文件传输,但在企业内网(局域网中)使用FTP 服务还是很多的
- FTP 基于client - server,支持用户登录
FTP 传输原理
- FTP 服务器 与 客户端,这里使用Linux 中的开源软件 vsftp 作为服务器,客户端使用浏览器进行操作
- FTP 服务器由两部分组成,一部分是控制服务,另一部分是数据传输服务,控制服务一直保持监听状态,当客户端发起请求后,控制服务接受到请求后,就开启一个数据传输服务,与客户端进行通信,当客户端结束访问时,数据传输服务就终止了
- 客户端也有两部分,相对应的是连接服务和数据传输服务,当连接服务发起请求后,客户端就会在后台开启数据传输服务,开始监听,等待服务器的数据传输服务进行连接。
FTP 传输细节
文件类型与文件传输模式
- 文件传输模式有三种,数据流模式,数据块模式,压缩模式
FTP 主动模式与被动模式
FTP 的衍生版本 (Derivatives)
- FTP 的变体1 TFTP (Trivial File Transfer Protocol) 小型的FTP(简单文件传输协议)
- FTP 的变体2 SFTP (Secure Shell File Transfer Protocol 安全FTP) 也就是 SSH FTP SH 表示 shell
参考文章