FTP基本概念传输模式FTP传输数据时支持两种传输模式:ASCII模式和Binary模式
ASCII模式用于传输文本文件
发送端的字符在发送前被转换成ASCII码格式之后进行传输,接收端收到之后再将其转换成字符
二进制模式常用于发送图片文件和程序文件,发送端在发送这些文件时无需转换格式即可传输
传输过程(服务器)主动模式Port客户端使用一个大于1024的随机端口向FTP的服务器的21号端口发起连接,FTP接受请求,控制通道建立客户端开始监听一个大于1024的端口,并且用port命令通过控制通道告知服务器(服务器可以连接客户端的那个大于1024的端口)
服务器主动使用TCP20端口连接用户的这个随机端口
数据通道建立完成,开始传输数据
无论是建立控制通道还是数据通道,都要先建立TCP连接,要建立两次
下面以客户端192
88,FTP服务器192
188为例,服务器上有一个文件为sslvpn
zip为例建立控制通道用户登录数据通道建立协商开始传输数据客户端通过控制通道请求sslvpn
zip服务器主动创建使用20端口协商客户端的50879端口,然后使用ASCII模式进行传输
(服务器)被动模式Pasv客户端使用一个大于1024的随机端口向FTP的服务器的21号端口发起连接,FTP接受请求,控制通道建立客户端监听一个大于1024的TCP端口A,通过pasv命令告知FTP服务器,服务器收到后也开启一个大于1024的随机端口B,并用enterpasv命令告知客户端该端口
当需要传输数据时侯,FTP客户端从自身的随机端口A向FTP服务器的随机端口B发起连接请求注意1
20端口只在主动模式上出现2
主动模式和被动模式都有一些缺陷使用主动模式传输数据时,如果服务器在外网,客户端在内网,中间有一个NAT设备,FTP客户端在私有网络中并且FTP客户端和FTP服务器