FTP基本工作模式

2 FTP基本工作模式 
2.1 术语 
2.1.1 控制连接(Control-Connection,   CC) 
总是有客户端主动发起,连接ftp服务器的21端口; 
双方在控制连接上发送/响应ftp命令。 
2.1.2 数据连接(Data-Connection,   DC) 
ftp客户端和服务器通过数据连接实现数据和文件传输; 
数据连接的2个端点的IP不一定是控制连接的2个端点的IP,也就是说,ftp客户端可以向服务器发送一个文件下载请求,同时,请求将文件下载到另外一台主机;同时,ftp服务器也可以在响应客户端的PASV命令中,指定不同于本机的IP。 
2.1.3 数据端口 
用来监听数据连接请求或发起数据连接请求(仅ftp服务器端)的端口号。 
数据端口可以监听在客户端主机,也可以在服务器端主机。 
2.1.4 默认数据端口 
客户端的默认数据监听端口为当前控制连接的本地端口号。 
服务器端的默认连接发起端口为20。 
客户端可以通过PORT命令通知服务器使用非默认数据端口; 
2.1.5 FTP命令 
所有的ftp命令都由可打印ascii字符组成并且都以”\r\n”结尾。在没有收到”\r\n”结尾字符串前,不要处理该命令。 
客户端发起的命令一般为3到4个英文字母。服务器端的应答命令为3位十进制数字(如220)。 
FTP命令是大小写不敏感的。 
命令后如果跟参数,必须以一个或多个空格隔开;如果没有参数,直接跟”\r\n”。 
2.1.6 FTP   PORT命令 
PORT命令从客户端通过控制连接发送到服务器,格式如下: 
“PORT   ip1,ip2,ip3,ip4,port1,port2\r\n” 
该命令告诉服务器:对于随后的数据传输请求,请向由 <ip1.ip2.ip3.ip4> 指定的主机的(port1*256+port2)端口发起数据连接。 
服务器端的(成功)应答命令格式如下: 
  “200   PORT   command   successful.\r\n” 
如果错误,可能的应答命令为: 
                  500   Syntax   error,   command   unrecognized. 
                          This   may   include   errors   such   as   command   line   too   long. 
                  501   Syntax   error   in   parameters   or   arguments. 
                  421   Service   not   available,   closing   control   connection. 
                          This   may   be   a   reply   to   any   command   if   the   service   knows   it 
                          must   shut   down. 
                  530   Not   logged   in. 
2.1.7 FTP   PASV命令 
PASV命令从客户端通过控制连接发送到服务器,格式如下: 
“PASV\r\n” 
该命令要求服务器进入passive模式,即在服务器端开放一个临时的数据连接监听端口,然后客户端向该端口发起数据连接请求。 
服务器端的(成功)应答命令格式如下: 
  “227   Entering   Passive   Mode.   ip1,ip2,ip3,ip4,p1,p2\r\n” 
其中 <ip1.ip2.ip3.ip4> 为服务器IP,(p1*256+p2)为服务器监听数据端口号。 
如果错误,可能的应答命令为: 
                  500   Syntax   error,   command   unrecognized. 
                          This   may   include   errors   such   as   command   line   too   long. 
                  501   Syntax   error   in   parameters   or   arguments. 
                  502   Command   not   implemented. 
                  421   Service   not   available,   closing   control   connection. 
                          This   may   be   a   reply   to   any   command   if   the   service   knows   it 
                          must   shut   down. 
                  530   Not   logged   in. 

2.2 工作模式 
2.2.1 常规工作模式 
该模式下,双方使用默认数据端口完成数据传输。 
对该模式的支持以后再考虑。 
2.2.2 主动打开模式——PORT模式 
在该模式下,客户端首先通过在控制连接上发送一个PORT命令,告诉服务器自己的一个临时数据端口。服务器连接临时数据端口,建立数据连接。双方在数据连接上完成数据传输。 
数据传输完毕,一般由服务器端主动关闭连接。 
2.2.3 被动打开模式——PASIVE模式 
在该模式下,客户端首先通过在控制连接上发送一个PASIVE命令,要求服务器进入passive模式。服务器响应客户端的PASIVE请求: 
“227   Entering   Passive   Mode.   ip1,ip2,ip3,ip4,p1,p2\r\n” 
客户端解析上面的应答,获得服务器的监听IP:端口( <ip1.ip2.ip3.ip4> : <p1*256+p2> ),然后向该端口发起数据连接请求。 
注意:FTP服务器应答的IP可以不是自己的IP。 
数据传输完毕,一般由服务器端主动关闭连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值