UN3L1——FTP工作原理

FTP

FTP(File Transfer Protocol)文件传输协议,是支持Internet文件传输的各种规则所组成的集合
这些规则使Internet用户可以把文件从一台主机拷贝到另一台主机上
除此之外,FTP还提供登录、目录查询以及其他会话控制等功能

说人话:FTP文件传输协议就是一个在网络中上传下载文件的一套规则

FTP的工作原理

划重点:FTP的本质是TCP通信
通过FTP传输文件,双发至少需要建立两个TCP连接
一个称为控制连接,用于传输FTP命令
一个称为数据连接,用于传输文件数据

image

FTP的数据连接和控制连接方向一般是相反的,举例说明:

用户使用FTP客户端连接FTP服务区请求下载文件

  • 控制连接方向:客户端主动连接服务器告知其下载命令(C ——> S)
  • 数据连接方向:服务端主动连接客户端下发数据(C <—— S)

当客户端和FTP服务器建立控制连接后,需要告诉服务器采用那种传输模式:

  1. 主动模式(Port模式) :服务器主动连接客户端,然后传输文件
  2. 被动模式(Passive模式) :客户端主动连接服务器,即控制连接和数据连接都由客户端发起

一般情况下主动模式会受到客户端防火墙影响,所以被动模式使用较多

在使用FTP进行数据传输时,有两种数据传输方式:

  1. ASCII传输方式:以ASCII编码方式传输数据,适用于传输仅包含英文的命令和参数或者英文文本文件
  2. 二进制传输方式(建议使用该方式) :可以指定采用哪种编码传输命令和文件数据,如果传输的文件不是英文文件则应该采用该方式

一般情况下,使用FTP传输文件时,客户端必须先登录服务器,获得相应权限后,才能上传或下载文件
服务器也可以允许用户匿名登录FTP,不需要都拥有一个合法账号

如何学习FTP

在实际学习过程中,我们并不需要利用FTP原理来实现FTP通信,FTP工作原理相关知识点,主要做了解
C#中实现了FTP通信需要用到的相关类:FtpWebRequest​、FtpWebResponse​、NetworkCredential
我们的主要学习的内容就是围绕这三个类来实现:

  1. 如何搭建FTP服务器
  2. 上传文件到FTP服务器
  3. 从FTP服务器下载文件到本地