文章目录
FTP
FTP是File Transfer Protocol(文件传输协议)的英文缩写,用于Internet上的控制文件的双向传输。同时也是一个应用程序。
Tcp/ip协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。Ftp协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、连接的方式,甚至是否使用相同的操作系统无关。
FTP传输使用的是TCP数据包协议,TCP在建立;连接前会先进行三次握手。不过FTP服务器比较麻烦一些,因为FTP服务器使用了两个连接,分别是命令通道与数据通道。因为是TCP数据包,所以这两个连接都需要经过三次握手。
FTP两个通道(控制通道、数据通道)
原理:FTP协议使用两个TCP连接,一个是命令链接,用于在FTP客户端和服务器;之间传输命令;另一个是数据链接,用于上传或下载数据。
控制通道是FTP服务器进行沟通的重要通道,连接FTP,发送FTP指令都是通过控制通道来完成的。
数据通道是FTP服务器进行文件传输或者列表的通道。
FTP协议中,控制连接均由客户端发起的,而数据连接有PORT与POSV方式。即主动与被动方式。
FTP工作的方式(FTP的两种工作模式)
FTP支持两种模式,一种是主动方式(也称为Standard模式,其FTP的客户端发送PORT命令到FTP服务器),一种是被动方式(也称为Passive模式,其FTP的客户端发送PASV命令带FTP服务器)。
FTP工作的方式(PORT - 主动模式)
主动模式 – 工作原理
原理:服务端从20端口主动向客户端发起链接。 控制端口21;数据传输端口20;
过程:客户端从一个任意的非特权端口N(N>1024)向FTP服务器的命令端口(默认是21)发送请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端开始监听端口N+1,并在命令链路上用PORT命令发送N+1端口到FTP服务器,于是服务器会从自己的数据端口(20)向客户端指定的数据端口(N+1)发送连接请求,建立一条数据链路来传送数据
(Port模式在建立控制通道的时候,首先与FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要发送数据的时候在这个通道上发送PORT命令。
PORT命令包含了客户端用什么端口接收数据。
在传输数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。
FTP服务端必须与客户端建立一个新的连接用来传送数据。)
(可以看见这种情况下的连接是客户端向服务器建立控制连接,服务器向客户端建立数据连接。客户端的数据连接和控制连接端口号是大于1024的两个端口号(临时端口),而FTP服务器的数据端口为20,控制端口为21)