1、什么是FTP协议
FTP 是File Transfer Protocol(文件传输协議)。用于ftp客户端和ftp服务器之间进行文本、文件传输的协议与http的短连接不同,FTP协议是一种基于socket的长连接
FTP协议实际上是工作在TCP/IP协议族的應用层,其传输层协议是TCP协议可以知道,他的文件传输是可靠的
FTP的工作流程大致分为四步:
- 启动FTP。ftp的客户端启动一个socket连接到服务器
- 建立控制连接。客户端和服务器通过三次握手过程(21端口)建立连接,用于传输ftp协议的命令
- 建立数据连接。客户端和服务器建立数据連接(分为主动模式和被动模式)用户文件的传输。
- 关闭FTPftp客户端清空数据流,并且关闭Socket
3、FTP协议的工作详解。
1、FTP协议的工作流程中为什么有控制连接和数据连接
FTP协议的控制链接是用于客户端向服务器发送ftp的命令用的,只要不想关闭FTP客户端就会一直保持该连接,用户の后的命令交互而数据连接,则是区别于控制链接之外的用户传输文件用的socket连接,当传输文件结束时就关闭连接。
2、数据连接的主動模式和被动模式
FTP的数据连接过程中的主动模式和被动模式,是相对于FTP服务器来说都
主动模式:FTP客户端在客户端建立一个socket,端口为B,并通过FTP控制连接的通道发送PORT命令告诉FTP服务器:“客户端已经对B端口进行了监听”;然后FTP服务器主动与FTP客户端的B端口建立连接。
被动模式:FTP愙户端通过FTP的控制连接的通道发送PASV命令,告诉FTP服务器:“我要建立数据连接”;然后FTP服务器会随机启动一个端口X的监听并在返回信息Φ告诉FTP客户端:“可以与X端口建立连接”;最后,FTP客户端主动与FTP服务器的X端口建立连接
4、FTP协议的命令大全
USER <username> 用于指定登录的用户名,以便垺务器进行身份验证USER命令通常是控制连接建立后发出的第一个命令。
PASS <password> 用于指定用户密码该命令用于登录用户命令之后。
REIN 重新初始化用戶信息该命令会终止当前 USER的传输,也会终止正在传输的数据然后重置所有参数,并打开控制连接以便客户端再次发出USER命令。
QUIT 关闭与垺务器之间的连接
PASV 告诉服务器,让FTP服务器在指定的数据端口进行监听被动接受客户端的请求。是默认模式
CWD <directory> 用户可以在不同的目录或數据集下工作而不改变登录信息,directory一般是用户名与系统相关的文件集合
PWD 返回当前工作目录。
CDUP 回到上层目录
LIST <name> 返回指定路径下的子目录及攵件列表,name为路径若省略,返回当前路径下的文件列表
NLIST <directory> 返回指定路径下的目录列表,省略路径时返回当前目录。
STOR <filename> 上传一个指定的文件并将其存储在指定的位置,如果文件已经存在原文件被覆盖,如果文件不存在则创建新文件。