FTP主动模式和被动模式详解

FTP原理
概述:
FTP (File Transfer Protocol文件传输协议),应用层协议,是基于TCP的双向可靠传输。
FTP模型—C/S模型
基本构成:服务器端&客户端交互。FTP传输流程:客户端程序先和服务器建立连接,再向服务器发送一些常用的操作请求,服务器给予响应并执行相关操作。
FTP主动模式和被动模式详解_第1张图片
务类型:最常见的就是上传下载业务,还可以做一些新建、删除、重命名等等操作。
协议特点:FTP C/S端之间进行数据交互 必须建立两个socket。一个作为命令通道,一个作为数据通道。
a.命令通道 用于客户端向服务器发送相关文件操作的指令,如新建,删除,重命名等操作。
b.数据通道 用于数据传输,例如下载或上传、目录列表。
优略性:这样分开处理的话看着相对复杂,但是提高了传输效率,且对网络资源利用率来说没有浪费。例如客户端到服务器端建立连接成功了,也许用户暂时不需要数据传输,那只需要建立命令通道即可满足,如果有数据业务需求,再去请求数据通道。
端口特点:
默认情况下,FTP传输端口是 20和21;21用于命令通道,20为数据通道待定使用。(涉及到FTP的传输模式:主被动的区别)
如果采用主动模式,那么数据传输端口就是20;
如果采用被动模式,数据传输的端口则是临时生成的随机端口
FTP传输—主/被动模式
Active—主动模式
FTP主动模式和被动模式详解_第2张图片
主动的含义:是针对服务器说的,客户端向服务器建立命令通道的连接,且只是简单告知了数据监听端口号,再由服务器向客户端指定端口发起建立数据连接的请求
在这里插入图片描述
(1)客户端随机生成端口AA,和服务器的21端口发送连接命令建立命令通道。
(2)当需要传输数据时,客户端随机生成端口BB,通过命令通道告知服务器(PORT 192,168,67,131,129,237)。最后由服务器使用数据端口 20连接到客户端指定的数据端口 BB。
随机生成的端口信息解析:由逗号隔开的6个数字,前四个为客户端程序地址,最后两个数字,将倒数第二个乘以256再加最后一个数字得到客户端开放的这个任意端口号用于数据传输。例如,服务器地址是192.168.67.131,客户端开放的数据端口号为33261:129*256+237
弊端:对于客户端的防火墙来说,这是从外部到内部的连接,出于安全考虑可能会被拦截,由此催生出了被动连接模式。
在被动方式FTP中,命令连接和数据连接都由客户端发起,要求服务器端随机产生一个监听端口用于数据链路建立。
PASV—被动模式
FTP主动模式和被动模式详解_第3张图片
FTP主动模式和被动模式详解_第4张图片
(1)在建立控制通道的时候和主动模式相同,客户端随机端口AA,和服务器的21端口发送连接命令建立命令通道。
(2)当需要传输数据时,通过命令通道发出联机请求,并等待服务器回应。服务器响应,并生成一个临时数据端口,通过命令通道告知客户端(返回如“227 entering passive mode (192,168,67,136,195,89)”),客户端随机生成临时数据端口,向服务器发起连接(服务器被动接受角色)。
总结:主被动的区分原则是根据FTP服务器在建立数据连接过程中的主、被动角色划分的

你可能感兴趣的:(网络协议)