FTP协议简介

    FTP是应用层的一个文件传输协议,使用了两个并行的TCP来传输文件,一个是控制连接(21)一个是数据连接(20)     
    在介绍FTP的工作原理时候,通常会讲到两个信道(控制信道、数据信道)和两种模式(主动模式、被动模式)
控制信道和数据信道,可以初步的理解为控制信道是创建会话的必要条件,通常传输控制信息,如口令,用户标识,存放、获取文件等命令,而数据信道则是临时创立的,它通常被用来传输文件。当发送完文件之后数据连接会自动关闭。
    至于两种模式,主动和被动可以站在服务器的角度去理解:我(服务器)主动发起请求,我就是主动的,反之同理。举例:
主动模式:
    控制信道:客户端(端口随机)  -----> 服务器21端口
    数据信道:客户端(端口随机)  <----- 服务器20端口
在主动模式下,客户端向服务器的FTP端口21发起连接请求,服务器接收连接后,创建一条命令链路。当需要传输数据时,客户端在链路上用PORT命令告诉服务器:"我打开了X端口,需要你连接我"。接着服务器从20端口向客户端的X端口发起连接请求,之后双方可以利用数据通道来传输数据
被动模式:
    控制信道:客户端(端口随机)  -----> 服务器21端口
    数据信道:客户端(端口随机)  <----- 服务器随机端口
被动模式下控制信道的传输方式和主动一致,但是在需要数据传输的时候,服务器在控制信道上用PASV的命令告诉客户端,我开启了XX端口,你过来连接我,之后服务器被动等待客户端连接它的XX端口,创建连接后开始传输数据
 
在创建连接的过程中,有很多FTP独有的命令。例如在被动模式下的控制信道,经过三次握手后,客户端会向服务器发送PASV命令,意为:你是否支持被动模式,服务器如果支持则会返回227:a,b,c,d,e,f。其中a,b,c,d为IP地址。端口为e*256+f,到了第二信道,双方的通信端口都是随机的,这样较为安全。
 
总结:
在学FTP时候需要知道:
1.多信道协议
2.两种模式工作
3.当有防火墙的时候,需要转换IP端口,防火墙做了什么?
原文地址:https://www.cnblogs.com/Tempt/p/11815648.html