FTP服务
1.FTP协议:
-
FTP协议(File Transfer Protocol,文件传输协议)定义了一个远程计算机系统和本地计算机系统之间传输文件的一个标准。
-
FTP协议基于TCP/IP协议,工作在OSI七层模型的应用层,并利用传输协议TCP在不同主机之间提供可靠的数据传输。
-
FTP客户端工具还可以支持文件的多点下载以及断点续传功能,可以大幅的减少CPU网络带宽的开销。
-
FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。
2.FTP协议模型:
-
用户接口:提供了一个用户接口,并使用客户端协议解释器的服务
-
客户端协议解释器:向远程服务端协议发送命令,并驱动客户端的数据传输
-
服务端协议解释器:响应客户端协议发出的命令,并驱动服务器的数据传输
-
客户端数据传输协议:负责完成与服务端数据传输的过程及客户端本地文件系统的通信
-
服务端数据传输协议:负责完成与客户端数据传输的过程及服务端本地文件系统的通信
3.连接方式:
![](https://img-blog.csdnimg.cn/20200428193657196.png)
(1)控制连接:建立连接及命令发送和响应(需要更小的延迟时间)
-
主要用来传输实际通信中需要执行的FTP命令以及命令响应;
-
只需要很小的网络带宽;
-
FTP服务器监听在 21号端口来等待控制连接建立;
-
建立控制连接之后,还需要验证客户端身份,决定是否建立数据连接;
-
当需要目录列表,传输文件时,才建立数据连接,并且每次客户端都会使用不同的随机端口来
-
建立数据连接;当数据传输完毕之后,就断开数据连接;
-
在FTP连接期间,控制连接始终保持连接状态,在数据连接存在的期间,控制连接必须存在,一旦控制连接断开,数据连接会自动断开;
(2)数据连接:用于数据传输(需要更大的数据吞吐量)
-
FTP服务端监听在 20号端口上等待数据连接;
-
数据连接依赖于控制连接,一旦控制连接断开,数据连接会立刻中断;
4.工作模式:
(1)主动模式:
-
三次握手建立控制连接,客户端的端口是随机的,目标端口是21
-
控制连接建立完成之后,客户端进行验证,协商数据连接采用的模式(主动模式)。客户端会向服务端发送Port报文,表明自己的IP地址及端口号信息,等待FTP服务端20端口主动地发起数据连接请求
-
服务端发送数据连接请求,连接建立之后开始进行数据传输
(2)被动模式:(默认工作模式)
-
三次握手建立控制连接,客户端的端口是随机的,目标端口是21
-
控制连接建立完成之后,客户端进行验证,协商数据连接采用的模式(被动模式)。客户端向服务端发送PASV报文,表明使用被动模式
-
服务端在收到