()centos6.8安装配置ftp服务器
ftp传输原理
客户端通过某软件用某个端口(a端口)向服务端发起tcp连接请求,同时告诉服务端客户端另一个空闲端口号(b端口),服务端用21端口与客户端建立一条控制连接通道。
接着在默认情况下,服务端使用20端口和b端口建立数据传送通道。这样就用客户端的2个端口和服务端2个端口通道建立了两条通道,之后就可以传送数据了。
ps:客户端的两个通道是都是随机的,服务端的控制通道用21,服务端的数据传送通道默认是20也可以设置成其他端口号。
客户端<------------>服务端
a端口<------------->21端口 控制通道
b端口<------------->20端口 数据传送通道
控制连接通道,会在传送一个文件后会关闭通道,然后再开启通道传统另一个文件,每一个文件传输都需要建立和关闭Tcp连接
所以ftp传送多个小文件要比一个大文件时效率要低。
ftp协议规范
1:数据传送格式
文件类型:ASCII或者二进制
控制格式:只允许非打印
数据结构:只允许文件结构
传输方式:只允许流方式
2:控制命令种类
建立控制连接后,服务端保持监听状态,随时根据客户端发送的命令做相应的工作
3:答应格式
略
抓包工具
yum install -y wireshark
客户端连接方式
上面的 a端口<------------->21端口 的连接方式有两种:主动方式(port)和被动方式(pasv)
主动和被动是相对于服务器而言,数据连接如果是服务器发起的就是主动连接,反之。
主动方式下,客户端首先通过port命令向服务器发送自己的一个控件端口号,然后服务器通过默认的20端口向客服端提供的端口发起连接请求
被动方式下,客户端发送pasv命令,服务端回应一个端口号,告诉客户端它将在这个端口监听来自客户端的TCP请求
在全开放的网络环境下二种方式传输的效率是一样的。
如果在客户端和服务器端有防火墙存在