1.概述
1.1 文件传送协议(File Transfer Protocol)
文件传输协议( File Transfer Protocol, FTP)是因特网上使用得最广泛的
文件传输协议
。
FTP提供
交互式的访问
,允许客户指明文件的类型与格式,并允许文件具有存取权限
。它屏蔽了各计算机系统的细节,因而适合于在异构网络中的
任意计算机之间传送文件
。1.2 简单文件传送协议TFTP(Trivial File Transfer Protocol)
TFTP是一个轻量的,比较容易实现的,面对小文件的,UDP的文件传输协议
1.3 FTP提供以下功能
- 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
。- 以
匿名FTP
的方式提供公用文件共享
的能力。
2.FTP服务器和用户端
FTP是基于客户/服务器(C/S)的协议, 它使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务。
用户通过一个客户机程序连接至在远处计算机上运行的服务器程序。
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。
3.FTP工作原理
FTP使用TCP实现可靠传输
FTP的服务器进程
由两大部分组成:一个主进程,负责接收新的请求;
若干从属进程,负责处理单个请求。

3.1登陆 FTP地址
(1)用户名&密码
(2)匿名登陆
互连网中有很大一部分FTP服务器被称为“匿名”(Anonymous)FTP服务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。
Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以厝名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名"anonymous"登陆FTP服务,就可访问远程主机上公开的文件。
3.2工作原理
- 客户端和服务器端先建立TCP连接,端口是21,称为控制连接;
- 然后看情况是主动建立连接还是被动建立连接;
- 主动建立连接是指服务器端主动发送请求和客户端进行连接,此时端口号固定是20;
- 被动连接是指客户端发送请求和服务器端建立数据传送连接,此时端口号是不确定,有两者协商得到
- 数据传输完成之后,数据连接断开,控制连接继续保持,直至两边发送断开请求

- 控制连接始终保持
- 数据连接保持一会
- 传输端口是否使用TCP 20端口建立数据连接与传输模式有关
- 主动方式使用TCP 20端口
- 被动方式由服务器和客户端自行协商决定(端口 >1024)
(1) 控制连接
服务器监听21号端口,等待客户连接,建立在这个端口.上的连接称为控制连接,控制连接用来传输控制信息(如连接请求、传送请求等),并且控制信息都以7位ASCII格式传送。
FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。
在传输文件时还可以使用控制连接(如客户在传输中途发一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态。
(2) 数据连接
服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建“数据传送进程”和“数据连接”。
数据连接
用来连接客户端和服务器端的数据传送进程
,数据传送进程
实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
4.FTP传输模式
文本模式:ASCII模式,以文本序列传输数据
二进制模式:Binary模式,以二进制序列传输数据。