-
ftp简介
网络文件共享服务主流的主要有三种,分别是ftp、 nfs、 samba。
FTP是File Transfer Protocol (文件传输协议)的简称,用于internet上的控制文件的双向传输。
FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两种概念:下载和上传 -
ftp架构
FTP工作于应用层,监听于tcp的21号端口,是一种C/S架构的应用程序。其有多种客户端和服务端的应用程序,下面来简单介绍一下 -
ftp数据连接模式
ftp有2种数据连接模式:命令连接和数据连接
●命令连接:是指文件管理类命令,始终在线的持久性连接,直到用户退出登录为止
●数据连接:是指数据传输,按需创建及关闭的连接
其中数据连接需要关注的有2点,一是数据传输格式,二是数据传输模式
数据传输格式有以下两种: .
●文件传输:文件目录的传输
●二进制传输:程序的传输
数据传输模式也有2种:
●主动模式:由服务器端主动创建数据连接
●被动模式:服务器等待客户端创建数据连接
两种数据传输模式的建立过程:
传输模式 建立过程
命令连接:
Client (1025) --> Server (21) 客户端登录服务端
主动模式 客户端以一个随机端口(大于1023) 来连服务器端的21号端口
数据连接:
Server (20/tcp) -> Client (1025+1)
服务器端以自己的20号端口去连客户端创建命令连接时使用的随机端口+1的端口号
命令连接:
Client (1110) --> Server (21)
客户端以一个随机端口来连成服务器端的21号端口
被动模式 数据连接:
Client (1110+1) --> Server (随机端口)
客户端以创建命令连接的端口+1的端口号去连服务器端通过命令连接告知自己的-个随机端口号来创建数据连接
主动模式有个弊端,因为客户端的端口是随机的,客户端如果开了防火墙,则服务器端去连客户端创建数据连接时可能会被拒绝。