关于FTP的基础知识 什么是ftp

本文主要介绍FTP的工作原理,FTP主动与被动两种工作模式 。
FTP 简介
FTP协议就是文件传输控制协议 。它可以使文件通过网络从一台主机传送到同一网络的另一台主机上,而不受计算机类型和操作系统类型的限制 。服务器、大型机,还是DOS操作系统、Windows操作系统、Linux操作系统,只要双方都支持FTP协议,就可以方便地传送文件 。
FTP 的两种模式
FTP分为两种工作模式:主动模式(Active)与被动模式(Passive)
FTP 主动工作模式(PORT)原理
FTP客户端首先会随机开启一个大于1024的端口N(1032),并连接服务端的21号端口,然后开放M端口(与端口N没直接联系)进行监听,同时向服务器发出PORT 1033命令通知服务器自己的在接收数据时所使用的端口号 。服务器在传输数据的时候,服务端通过自己的20端口去连接客户端的端口M 。当不需要传输时,此连接会自动断开 。如下图(图中端口号仅为示例):
FTP 被动模式(PASV)原理
FTP客户端随机开启一个大于1024的端口X向服务器的21端口发起连接,同时会开启X+1端口 。然后向服务器发送PASV命令,通知服务器自己处于被动模式 。服务器收到命令后,会开放一个大于1024的端口Y进行监听,然后在ACK回复中通知客户端,自己的数据端口是Y 。客户端收到命令后,会通过X+1号端口连接服务器的端口Y,然后在两个端口之间进行数据传输 。这样就能使防火墙知道用于数据连接的端口号,而使数据连接得以建立。如下图:
主动模式与被动模式区别
在主动模式中,传输数据时,服务器是主动连接客户端的数据端口 。但如果客户端存在防火墙,那么当服务端在连接客户端数据端口的时,就有可能被防火墙阻挡 。所以FTP主动模式在许多时候用于没有防火墙隔离的内部网络机器 。一但有防火墙的存在,那么一般就不会在使用主动模式,而是被动模式 。因为在被模式中,命令连接与数据连接,都是由客户端发起的,而防火墙一般不会对出去的数据包进行阻挡 。
同时,FTP的主动模式(PORT)和被动模式(PASV)都只ipv4,在针对IPV6扩展后就出现EPRT、EPSV相对应 。
简而言之,客户端被防火墙保护时,尽量使用被动模式;服务端被保护时,尽量使用主动模式 。但不管使用哪种模式,数据连接的目标端口都不固定,无法简单配置基于端口的策略,当前防火墙一般通过解析FTP控制连接数据,临时开启数据连接访问权限的方式实现(经测试确认H3C防火墙确实采用此方式支持FTP协议,且V5版本不支持EPSV、EPRT) 。
常见FTP客户端支持的连接方式:
PORT:主动模式
EPRT:增强主动模式
PASV:被动模式
EPSV:增强被动模式
FTP与其他文件传输类型对比
【关于FTP的基础知识 什么是ftp】
-- 展开阅读全文 --

    推荐阅读