UN3L1——FTP工作原理
UN3L1——FTP工作原理
FTP
FTP(File Transfer Protocol)文件传输协议,是支持Internet文件传输的各种规则所组成的集合
这些规则使Internet用户可以把文件从一台主机拷贝到另一台主机上
除此之外,FTP还提供登录、目录查询以及其他会话控制等功能
说人话:FTP文件传输协议就是一个在网络中上传下载文件的一套规则
FTP的工作原理
划重点:FTP的本质是TCP通信
通过FTP传输文件,双发至少需要建立两个TCP连接
一个称为控制连接,用于传输FTP命令
一个称为数据连接,用于传输文件数据
FTP的数据连接和控制连接方向一般是相反的,举例说明:
用户使用FTP客户端连接FTP服务区请求下载文件
- 控制连接方向:客户端主动连接服务器告知其下载命令(C ——> S)
- 数据连接方向:服务端主动连接客户端下发数据(C <—— S)
当客户端和FTP服务器建立控制连接后,需要告诉服务器采用那种传输模式:
- 主动模式(Port模式) :服务器主动连接客户端,然后传输文件
- 被动模式(Passive模式) :客户端主动连接服务器,即控制连接和数据连接都由客户端发起
一般情况下主动模式会受到客户端防火墙影响,所以被动模式使用较多
在使用FTP进行数据传输时,有两种数据传输方式:
- ASCII传输方式:以ASCII编码方式传输数据,适用于传输仅包含英文的命令和参数或者英文文本文件
- 二进制传输方式(建议使用该方式) :可以指定采用哪种编码传输命令和文件数据,如果传输的文件不是英文文件则应该采用该方式
一般情况下,使用FTP传输文件时,客户端必须先登录服务器,获得相应权限后,才能上传或下载文件
服务器也可以允许用户匿名登录FTP,不需要都拥有一个合法账号
如何学习FTP
在实际学习过程中,我们并不需要利用FTP原理来实现FTP通信,FTP工作原理相关知识点,主要做了解
C#中实现了FTP通信需要用到的相关类:FtpWebRequest
、FtpWebResponse
、NetworkCredential
我们的主要学习的内容就是围绕这三个类来实现:
- 如何搭建FTP服务器
- 上传文件到FTP服务器
- 从FTP服务器下载文件到本地
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!