FTP服务工作原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FTP服务工作原理
一、FTP简介
文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在OSI 模型的第七层,TCP 模型的第四层,即应用层,使用TCP 传输而不是UDP,客户在和服务器建立连接前要经过一个“三次握手”的过程,保证客户与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。
然而,用户并不真正登录到自己想要存取的计算机上面而成为完全用户,可用FTP程序访问远程资源,实现用户往返传输文件、目录管理以及访问电子邮件等等,即使双方计算机可能配有不同的操作系统和文件存储方式。
FTP在对外提供服务时需要维护两个连接:一个是控制连接,负责监听21端口,用来传输控制命令;另一个是数据连接,在主动传输方式下监听20端口,用来传输数据。
二、FTP用户分类
基于FTP服务器安全性的考虑,可采用分用户访问FTP服务器的方式。
FTP 的用户默认提供三类用户,不同的用户对应着不同的权限和操作方式。
(1)匿名用户:即Anonymous用户。
当客户端访问FTP资源时,可以在没有服务器的账户名及密码的情况下,使用匿名用户访问FTP服务器的共享资源。
(2)实体用户:是指FTP服务器的本地账户,即当用户登录FTP服务器时,其默认的工作主目录就是以其账户命令的目录,也可变更其工作主目录。
该用户不仅可以访问FTP共享资源,还可以访问系统下该用户的资源。
(3)虚拟用户:是指FTP建立专有的用户,将账号和密码保存在数据库中,采用非系统账户访问服务器资源。
相对FTP的实体用户,虚拟用户只能访问FTP
共享资源,而没有操作系统其他资源的权利。
三、FTP的工作原理
FTP大大简化了文件传输的复杂性,它能够使文件通过网络从一台主机传送到另外一台计算机上却不受计算机和操作系统类型的限制。
无论是PC、服务器、大型机,还是IOS、Linux、Windows操作系统,只要双方都支持协议FTP,就可以方便、可靠地进行文件的传送。
FTP服务的具体工作过程如下:(1)客户端向服务器发出连接请求,同时客户端系统动态地打开一个大于1024的端口等候服务器连接(比如1031端口)。
(2)若FTP服务器在端口21侦听到该请求,则会在客户端1031端口和服务器的21端口之间建立起一个FTP会话连接。
(3)当需要传输数据时,FTP客户端再动态地打开一个大于1024的端口(比如1032端口)连接到服务器的20端口,并在这两个端口之间进行数据的传输。
当数据传输完毕后,这两个端口会自动关闭。
(4)当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放。
四、FTP的数据传输模式
FTP协议有两种工作模式:
主动传输模式(PORT模式):主动模式FTP的客户端发送PORT命令到FTP 服务器。
被动传输模式(PSA V模式):被动模式FTP的客户端发送PSA V命令到FTP 服务器。
主动和被动是对于FTP服务器而言的。
(一)主动传输模式
主动传输模式下,FTP客户端随机开启一个大于1024的端口N(比如1031)向服务器的21号端口发起连接,然后开放N+1号端口(1032)进行监听,并向服务器发出PORT 1032命令。
服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口1032,进行数据传输。
(二)被动传输模式
被动传输模式下,FTP客户端随机开启一个大于1024的端口N(比如1031)向服务器的21号端口发起连接,同时会开启N+1号端口(1032),然后向服务器发送PASV命令,通知服务器自己处于被动模式。
服务器收到命令后,会开放一个大于1024的端口P(1521)进行监听,然后用PORT P命令通知客户端,自己的数据端口是1521。
客户端收到命令后,会通过1032号端口连接服务器的端口1521,然后在两个端口之间进行数据传输。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP
服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。