一、FTP基本原理
FTP是用来传送文件的协议,使用FTP实现远程文件传输的同时,保证数据传输的可靠性和高效性
FTP传输文件的过程
使用FTP传输数据时,需要在服务器和客户端之间建立控制连接和数据连接
FTP主动模式
客户端打卡一个随机端口(端口号大于1024,称为它X)同时一个FTP进程连接之服务器的21号命令端口,此时源端口为随机端口X,在客户端;远程端口为21,在服务器端
客户端开始监听端口(X+1),同时向服务器发送一个端口PORT命令(通过服务器的21号命令端口)此命令告诉服务器,现在客户端正在监听的端口号并且已准备号此端口接收数据。这个端口就是我们所知的数据端口
服务器打开20号端口并且建立和客户端数据端口的连接。此时,源端口为20,源数据端为(x+1)
客户端通过本地的数据端口建立一个和服务器20端口的连接,然后向服务器发送一个应答,告诉服务器它已建立好一个连接
FTP被动模式
FTP的被动模式也叫做PASV模式,当客户端通知服务器它处于被动模式时才启用。被动模式的FTP连接,命令连接和数据连接都是由客户端发起
被动模式的FTP连接主要步骤
当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N>1024和N+1)
第一个i端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令
这样做的结果是服务器会开启要给任意的非特权端口(P>1024),并发送PORT命令给客户端
然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据
二、FTP基本配置
FTP提供了一种在服务器和客户机之间上传和下载文件的有效方式
FTP配置
FTP传输模式
传输模式定义了数据在客户端和服务器之间传输时的格式
ASCll模式用于传输文本,发送端的字符在发送前被转换成ASCll码格式之后进行传输,接收端收到之后再将其转换成字符
二进制模式常用于发送图片文件和程序文件。发送端在发送这些文件时无需转换格式即可传输
FTP建立连接过程
1、三次握手建立控制连接与服务器端21端口
2、建立数据连接,使用N+1 与服务器20端口建立连接