浅谈FTP文件传输协议

文件传输协议概述

如果你想往你的服务器上传递文件,该怎么办呢?

这是个常见的问题,我们常常不仅要传文件,还涉及到下载文件,和管理服务器文件。

这时FTP协议出现了!(现在有很多基于FTP的客户端图形化软件,可以在网上下载,连接服务器,轻松管理服务器文件)

FTP: 文件传输协议 File Transfer Protocol

  • 主要功能:
    • 传输文件到远程主机/从远程主机下载文件
  • 应用层模式:
  • client/server模式
    • client: 发起传输的一方
    • server: 远程主机
  • ftp: RFC 959
  • ftp服务器: 端口号 21

和HTTP相比,FTP面向的直接是服务器的文件系统,并且具有维持状态的特点,在文件传输管理上,FTP更胜一筹。

工作流程:

  • FTP客户首先发起建立1个与FTP服务器端口号21之间的TCP控制连接, 指定TCP作为传输层协议
  • 客户在建立的控制连接上获得身份认证
  • 客户在建立的控制连接上发送命令来浏览远程主机的目录.
  • 当服务器接收到1个文件传输命令时, 在服务器端口号20创建1个与客户 的TCP数据连接
  • 1个文件传输后,服务器结束这个TCP数据连接.
  • 之后 再次传输,服务器创建第2个TCP与客户的数据连接来传输下一个文件.

特点:

  • 控制连接: 带外发送控制信息(对比 HTTP 带内控制信息)

  • FTP 服务器要维护用户状态信息: 当前目录, 先前的身份认证(对比HTTP的无状态连接)


FTP的模块架构

控制连接:

  • USER-PI(protocol interpreter):用户协议解释器
  • SERVER-PI:服务器协议解释器

数据连接:

  • user-DTP(Data Transfer Process):用户数据传输进程
  • server-DTP:服务器数据传输进程

模型一

模型二


FTP数据连接建立方式

主动模式:

  • 客户端发送PORT命令

    PORT h1,h2,h3,h4,p1,p2 (h1-h4是IP地址,p1-p2是端口号)

  • 服务器根据PORT命令指定的客户端地址和端口号发起数据连 接

被动模式:

  • 客户端发送PASV命令
  • 服务器返回监听的地址和端口号 • 客户端发起数据连接

FTP命令和应答

常见命令:

  • 在控制连接上发送ASCII文本
    • USER username
    • PASS password
    • LIST:返回当前远程目录的文 件列表
    • RETR filename:获取远程主 机当前目录下的1个文件(get)
    • STOR filename:存放1个文 件到远程主机当前目录下(put)

常见应答:

  • 状态码及其相应短语 (同 HTTP)
  • 331 Username OK, password required
  • 125 data connection already open; transfer starting
  • 425 Can’t open data connection • 452 Error writing file

FTP数据传输的模式?

希望通过这篇文章,能让你知道,什么是FTP协议,以及他的基本原理。

Default image
LIU
代码是躯体,思想是灵魂

Leave a Reply