标签:大写 结构 选项参数 服务 数字 code 文件读取 就是 建立
一、FTP管理:
基于tcp,首先有客户端相服务端的知名端口21发起tcp连接建立ftp控制连接,控制连接在整个会话期间都保持打开,只用来发送连接/传送请求。
这里分为两种模式:
主动模式(PORT)和被动模式(PASV),这两种模式是站在FTP服务器的“角度”来说的,如果设置为主动模式,则需要传输数据时,服务器主动连接客户端,那么客户端就需要有数据监听端口(从port h1,h2,h3,h4,p1,p2命令中获知);如果设置为被动模式,则需要服务器告诉客户端(通过对pasv命令响应告知))自己用于数据传输的监听端口,同时在该端口上监听被动的等待客户端来连接,被动方式通常用于客户端位于nat内网,服务器位于nat外网的场景中以避免被防火墙阻止数据连接的建立。
这里说一下注意点:port命令的参数h1,h2,h3,h4,p1,p2 前面4个h分别对应客户端ip地址的4个十进制数字,p1和p2分别表示端口的高8位和低8位,因次端口计算为p1*256+p2。
二、FTP数据传输:
在数据连接建立好后则开始传输数据,数据传输按方向分为上传下载:
下载时客户端命令行使用get或mget等命令(对应内部协议命令为RETR filename),向服务器请求下载filename,服务器打开该文件读出数据以某种传输方式向服务器传送数据,客户端收数据直到数据传输完。一旦数据传输完成则数据连接关闭。
上载文件时客户端命令行使用put或mput等命令(对应内部协议命令为STOR filename),向服务器请求上传filename,客户端打开文件读取数据发送给服务端,服务端创建文件并写入数据。完成后数据连接关闭。
FTP协议规定了控制协议传送与存储的多种选择,在以下4个方面必须做出一个选择。
三、FTP内部协议控制命令和应答编码/消息
命令和应答在客户和服务器的控制连接上以 NVT ASCII码形式传送。这就要求在每行结尾都要返回C R、 L F对(也就是每个命令或每个应答)。这些命令都是3或4个字节的大写ASCII字符,其中一些带选项参数。从客户向服务器发送的FTP命令超过30种。下图是比较常用的几种命令:
应答都是A S C I I码形式的3位数字,并跟有报文选项。其原因是软件系统需要根据数字代码来决定如何应答,而选项串是面向人工处理的。由于客户通常都要输出数字应答和报文串,一个可交互的用户可以通过阅读报文串(而不必记忆所有数字回答代码的含义)来确定应答的含义。
标签:大写 结构 选项参数 服务 数字 code 文件读取 就是 建立
原文地址:https://www.cnblogs.com/dingbj/p/ftp.html