FTP协议原理简析
Posted 狱典司
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP协议原理简析相关的知识,希望对你有一定的参考价值。
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。21端口用于建立控制连接,并传输FTP指令。20端口用于建立数据连接,传输数据流。
一:FTP功能简介
1:FTP服务器能够进行档案的传输与管理功能;
2:可以依据使用者登入的情况分为三种不同的身份,分别是
- 2.1:实体账户:real user
- 2.2:访客:guest
- 2.3:匿名登录者anonymous
3:FTP利用系统的syslog进行数据的记录,包括了用户曾经下达的命令与用户传输数据(传输时间、档案大小)的记录,日志目录/var/log/
4:将使用者的工作范围局限在用户的指定目录中,避免其他多余的操作;
二:FTP服务器概述
1:FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。
- 21端口用于建立控制连接,并传输FTP指令。
- 20端口用于建立数据连接,传输数据流。
2:根据FTP服务器在建立数据连接过程中的主、被动关系,FTP数据连接分为主动模式和被动模式。
- 2.1:主动模式:由服务器主动发起数据连接;
- 2.2:被动模式:服务器被动等待数据连接;
三:FTP主动模式连接
FTP的传输使用的是TCP封包协议;不过FTP服务器使用了两个连接,分别是命令信道与数据流通道(ftp-data)。
两次联机都需要三次握手;先以FTP预设的主动式联机进行说明:
1:建立命令通道的联机
如图所示,客户端会随机取一个大于1024以上的端口(port AA)来与FTP服务器端的port21达成联机,这个过程为三次握手,达成联机后用户便可以对FTP下达指令,包括查询文件名、下载、上传等指令;
2:通知FTP服务器端使用Acte且告知连接的端口
FTP服务器的21端口用于命令的下达,但当涉及数据流传输,就需要另外一个联机。当客户在需要数据的情况下,会告知服务器用什么方式联机,如果是主动式(Active),客户端随机启用一个端口(port BB),通过命令通道告知FTP服务器,等待FTP服务器联机;
3:FTP服务器主动向客户端联机:
FTP服务器由命令通道了解客户端的需求后,主动由20端口向客户端的port BB进行三次握手联机。此时FTP与客户端建立两条联机,分别用于命令的下达和数据的传递。
注意:数据流通道是在有数据传输的行为时才会建立的通道,并不是一开始连接到FTP服务器就建立的;
四:FTP被动模式连接
1:用户与服务器建立命令信道:
与主动联机图第一步相同;
2:客户端发出PASV联机请求:
当有使用数据信道的指令时,客户端可透过命令通道发出PASV的被动联机要求,并等待服务器回应;
3:FTP服务器启动数据端口,通知客户端
如果FTP服务器能够处理被动式联机,此时FTP服务器先启动一个随机或者自定义某一范围的端口监听。然后FTP服务器通过命令通道告知客户端启动的端口(port PASV),等待客户端联机;
4:客户端随机取用大于1024的端口进行联机:
客户端随机取用一个大于1024的端口号来对FTP的port PASV进行三次握手联机。此时FTP与客户端建立两条联机,分别用于命令的下达和数据的传递。
以上是关于FTP协议原理简析的主要内容,如果未能解决你的问题,请参考以下文章
Sftp和ftp 区别工作原理等(服务器被动就是被动模式,PORT模式建立数据传输通道是由服务器端发起的,在PASV模式中,数据传输的通道的建立是由FTP客户端发起的)good
FTP主动模式和被动模式在VRP上实现(实验报文和理论解析)
FTP的主动传输模式(PORT Mode)及被动传输模式(Passive Mode)(PASV)(FTP客户端 client 服务端 server 通信原理)