关于FTP的三篇文章整理:
😉【FTP】一、什么是FTP? 😉【FTP】二、Linux下FTP的搭建、排错与配置 😉【FTP】三、FTP命令行指令–实现FTP文件共享
1、FTP
FTP即File Transfer Protocol,是TCP/IP协议组中的协议之一,是Internet文件传送的基础。
直白的讲,就是实现与远程计算机之间文件的拷贝和共享,或者说下载与上传。
2、FTP的服务端与客户端
FTP是一个C/S系统,FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。FTP的客户端比如Windows自带的ftp命令行、Flash_FTP程序…… 😉 FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。 对应与两个TCP连接,需要两个端口,一个控制端口,一般为21,还有个数据端口,和FTP的工作模式有关,主动模式下为20,被动模式下由服务端和客户端协定。
3、FTP的工作模式
Standard方式(PORT方式、主动方式)
过程如下:
- 客户端向FTP服务器的21端口发送连接请求,服务器接收连接,建立了命令链路
- 需要传数据的时候,客户端在命令链路上用PORT命令告诉服务器:“我打开了xxx端口,速连我”
- 于是,服务器从20端口向客户端的xxx端口发送连接,建立了数据链路
手绘个不成熟的图,不想看文字的看图:
Passive方式(PASV方式、被动方式)
过程如下:
- 客户端向FTP服务器的21端口发送连接请求,服务器接收连接,建立了命令链路
- 需要传数据的时候,服务器在命令链路上用PASV命令告诉客户端:“我打开了xxx端口,速连我”
- 于是,客户端向服务器的xxx端口发送连接,建立了数据链路
建立两个链路的过程中,FTP客户端都是主动发起请求,称FTP(服务器)的被动模式。
主动 FTP :
命令连接:客户端 >1024 端口 → 服务器 21 端口
数据连接:客户端 >1024 端口 ← 服务器 20 端口
被动 FTP :
命令连接:客户端 >1024 端口 → 服务器 21 端口
数据连接:客户端 >1024 端口 → 服务器 >1024 端口
--------
主动(PORT)模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的 端口;
被动(PASV)模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。
FTP被动模式出现的原因--共享公网IP
多台电脑共享一个公网IP对FTP主动模式有什么影响? 😉 某个局域网共享210.33.25.1这个公网IP上网,当一个内网用户 192.168.0.100去访问外网的FTP服务器时,如果采用主动模式的话,192.168.0.1告诉了FTP服务器我需要某个文件和我打开了x端 口之后,由于共享上网的原因,192.168.0.1在出网关的时候自己的IP地址已经被翻译成了210.33.25.1这个公网IP,所以服务器端收到 的消息也就是210.33.25.1需要某个文件并打开了x端口,FTP服务器就会往210.33.25.1的x端口传数据,这样当然会连接不成功了,因 为打开x端口的并不是210.33.25.1这个地址。被动模式由此而生。
4、FTP的传输模式
FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。
FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。
我们用客户端连接ftp成功的时候,会有提示是哪种传输模式:
关于这两种传输模式的介绍,想了解移步百度百科。
参考文档:文档1
|