TCP/IP 详解 卷1 ch27 FTP: 文件传送协议

1. FTP 采用2个TCP连接来传输一个文件

1)  控制连接以CS方式建立, server port is 21.

2)  当一个文件在客户端和服务器端之间传输时,就创建一个数据连接。

 

2. Data Representation数据表示的4个方面

文件类型、格式控制、结构、传输方式

 

3. 应答代码三位数字每位都有一定的意义,第一位确定响应是好的,坏的还是不完全的,通过检查第一位,用户进程通常就能够知道大致要采取什么行动了。如果用户程序希望了解出了什么问题,可以检查第二位,第三位留表示其它信息。

 

第一位有五个值:


1yz 确定预备应答 请求的操作正在被初始化;在进入下一个命令前等待另外的应答。这类响应用于说明命令被接受,在实现中如何同步监视有困难,用户进程现在可以关注数据连接了。服务器FTP进程对第个命令几乎都返回1yz响应。

2yz 确定完成应答 要求的操作已经完成,可以执行新命令。

3yz 确定中间应答 命令已接受,但要求的操作被停止,停止接收更新的信息。

4yz 暂时拒绝完成应答 未接受命令,要求的操作未执行,但错误是临时的,过一会儿可以再次发送消息。用户应该返回命令序列的开始。这个暂时可是不好确定,此命令的意思就是让用户进程再次尝试使用此命令。

5yz 永远拒绝完成应答 它与暂时拒绝完成应答的区别就在于错误条件是一时半会不会消失。

下面我们来看看第二位所代表的意义:

x0z 格式错误;

x1z 此类应答是为了请求信息的;

x2z 此类应答是关于控制和数据连接的;

x3z 关于认证和帐户登录过程;

x4z 未使用;

x5z 此类应答是关于文件系统的;

第三个数字是在第二个数字的基础上对应答内容的进一步细化。

 

4. 连接管理

 

1) port command, client need to upload a file, and selected port is 3662.

 

TCP/IP 详解 卷1 ch27 FTP: 文件传送协议_第1张图片

 

2) server response, OK

 

TCP/IP 详解 卷1 ch27 FTP: 文件传送协议_第2张图片

 

3) client run "put 1", and server setup a TCP connection for Data transfer, and selected port is 4566.

 

TCP/IP 详解 卷1 ch27 FTP: 文件传送协议_第3张图片

 

4) after data transfer done, client close the TCP connection, then server close the TCP connection, and server response with 226, transfer complete.

 

TCP/IP 详解 卷1 ch27 FTP: 文件传送协议_第4张图片

 

debug info in ftp,

 

>ftp -d a.b.com Connected to a.b.com (135.52.4.8). 220 a FTP server ready. Name (a.b.com:nomad2): nomad2 ---> USER nomad2 331 Password required for nomad2 Password: ---> PASS XXXX 230 User nomad2 logged in. ---> SYST 215 UNIX Type: L8 Version: SUNOS Remote system type is UNIX. Using binary mode to transfer files. ftp> passive Passive mode off. ftp> passive Passive mode on.

 

 

你可能感兴趣的:(TCP/IP 详解 卷1 ch27 FTP: 文件传送协议)