TCP/IP 之FTP协议

1、FTP(文件传输协议),用于将一个主机上的文件传送到另一个主机。和其他协议不同的是,它使用两条连接,一条用于数据传送(port 20),另一条用于命令控制传送(port 21)。其中,控制连接在整个FTP会话阶段(ftp session)都是处于连接状态,而数据连接是有数据要传则打开,没有数据传了就关闭。

2、连接

(1)、在控制连接过程中,IP数据报在TOS字段里面使用的是最小时延标志。

(2)、数据连接方法和别的协议不同,他是客户端被动打开的,而有服务器段主动连接。具体如下:

客户用一个临时端口被动打开,然后用控制连接上通过PORT 命令将这个端口告知服务器,服务器用端口20来主动连接客户的临时端口.

3、通信

(1)、在控制连接上的通信如同telnet协议,用NVT ASCII字符集。(一条命令和响应都是一行)

(2)、数据端口的通信,要解决异构性问题,用3方面属性解决:文件类型,数据结构,传输方式。

a、文件类型:默认的ASCII格式,图像文件等

b、数据结构:默认的文件流结构,记录结构,页面结构。

c、传输方式:默认的流方式(以EOF结束),块方式(每块之前有3字节首部,第一字节定义块描述符,后面的是该快的大小),压缩方式

在unix环境下的限制如下:必须是流方式,只允许文件流结构传输

4、命令处理:

(1)、客户端常见的命令分六组,略.

一些命令解释:

端口定义命令中的PASV,如果不用PORT而用PASV命令,则文件传输连接过程不同于上,是:客户发送PASV,请求服务器选择一个端口号,在这个端口号被动打开,同时服务器发回227响应告知该端口,于是客户主动连接服务器告知的端口进行文件传输。

常见的命令:LIST,QUIT,RETR,STOR,USER,PASS,CWD,

(2)、服务器的响应命令:有3个数字的命令码后跟一些数据。3个数据的命令码的含义如下:(xyz)

x定义命令的状态:1是动作已经开始,2是动作已经完成,3是命令已经接受,正在处理;4是动作出现短暂性错误,5是动作不能接受,无需再试。

y定义命令的对象:0是语法,1是信息,2是连接,3是账号,4是未指明,5是文件系统。

z提供一些附加信息。

详见的响应命令嘛举例如下:

125 数据连接已经打开,传输开始。
200 就绪
214 帮助报文
331 用户名就绪,奥球输入口令
425 不能打开数据连接
452 错写文件
500 语法错误(未认可的命令)
501 语法错误(无效参数)

5、匿名FTP:有些公共的文件供大众访问,用匿名,其口令一般为:guest

你可能感兴趣的:(数据结构,session,list,unix,服务器,user)