前言
对FTP文件传输协议有一个介绍
一、FTP是什么?
FTP(File Transfer Protocol)文件传输协议
主要实现两台计算机自建的download&upload
采用两个TCP连接
1、命令链路(在FTP客户端与服务器之间传递命令)
2、数据链路(上传或下载数据)
二、FTP用户授权
必须拥有FTP服务器授权的账号以及对应口令
地址格式:
ftp: //用户名:密码@FTP服务器或域名:FTP命令端口/路径/文件名
//FTP服务器IP或域名为必要项
匿名FTP
用户使用特殊用户名“anonymous”登录
只要知道特定信息资源的主机地址,就可以用匿名FTP登录获取所需的信息资料
三、FTP的传输模式(选择权在FTP客户端)
代码如下(示例):
ASCLL传输方式
在拷贝任何非文本文件之前,用 binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理
二进制传输模式
四、FTP的工作方式
Standard(主动方式) PORT
命令连接:客户端 > 1024端口 -> 服务器21端口
数据连接:客户端 > 1024端口 <- 服务器20端口
连接过程: 客户端向服务器的FTP端口(21)发送连接请求,服务器接受连接,建立命令链路,当需要传输数据时,客户端在命令链路上用PORT命令告诉服务器,"我打开了XXX端口,来接我",服务器从20端口发起连接请求,建立一条数据链路传输数据。
Passive(被动方式)PASV
命令连接:客户端 > 1024端口 -> 服务器21端口
数据连接:客户端 > 1024端口 <- 服务器>1024端口
连接过程:客户端向服务器的FTP(21)发送连接请求,建立命令链路。当传数据时,服务器在命令链路PASV命令告诉客户端,“我打开了XXX端口,来接我",客户端向XXX端口发送连接请求求,建立一条数据链路传输数据。
总结
主动(PORT)模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的 端口;
在被动(PASV)模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。