笔记11:FTP传输协议

来源:互联网 发布:muji.it 编辑:程序博客网 时间:2024/04/29 19:19




       FTP(File Transfer Protocol)文件传输协议简称为“文传协议”,用于Internet上的控制文件的双向传输。

      支持FTP协议的服务器就是FTP服务器。

      使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。

       匿名FTP:用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。



一、FTP联机
       使用FTP服务,首先必须建立与FTP文件服务器的联机,这样方可下载或上传。

       客户端发送合法指令到FTP服务器,服务器端在21号通信端口倾听由客户端传送进来的指令字符串,并根据指令内容,服务器端返回一组由3个数字组成的响应码,FTP客户端根据响应码,继续相关的操作。

       FTP利用两条联机,完成文件上传与下载,这两条联机分别称为Connection及DataConnection:
            Control connection:  负责客户端传送FTP指令到文件服务器,并且接收服务器端的响应消息内容。
            Data connection:      使用于数据上传与下载,一种全双工(fiiU-duplex)的数据传输联机。
                   
       FTP客户端及服务器端被切割为两层,PI(Protocol Interpreter)及DTP(Data Transfer Process):

           Control Connection  连接客户端PI及服务器端pi;
           Data Connection      连接客户端DTP及服务器端DTP

       PI:客户端初始化连接两端的Control Connection,建立客户端及服务器端的联机,并通过此联机传送FTP指令到服务器端,指令的响应码则由此联机返回到客户端。
       DTP:服务器端初始化Data Connection,通过此联机,服务器端及客户端在其中进行数据传输操作。


二、FTP指令
        FTP指令分三类:访问控制指令(Access Control Commands)、传输参数指令(Transfer Parameter Commands)及FTP 服务指令(FTP Service Commands)。


        1、访问控制指令(Access Control Commands)

             该类指令提供FTP服务器的验证信息内容,如账号及密码、结束FTP联机、状态重设等:
                  USER <usemame>    登录FTP服务器账号
                  PASS <password>   登录FTP服务器密码
                  QUIT              结束FTP联机

        2、传输参数指令(Transfer Parameter Commands)
              定义数据传输格式的转换操作及传输模式,如下:
                  PORT   登录FTP服务器账号
                  PASV   要求服务器端倾听用户端的联机要求,建立所需的数据传输联机
                  TYPE   登录FTP服务器密码
                  STRU   结束FTP联机
                  MODE   数据传输模式

        3、FTP 服务指令(FTP Service Commands)
            操作FTP文件目录的相关指令,如文件的上传、下载、删除,文件列表列举、 目录的建立及命名:
                RETR   下载服务器特定路径下的文件数据副本
                STOR   上传特定文件数据到FTP服务器
                DELE   删除FTP服务器上的特定文件
                RMD    删除FTP服务器上的特定目录
                MKD    在服务器上建立一个指定目录
                PWD    显示FTP服务器当前工作目录消息


三、FTP响应码
       FTP服务器端根据所接收的指令,响应相关处理状况的响应码。
       这个响应码由3个数字所组成,分别代表不同的信息。

     (一)第一码数字代表指令被处理完成之后的状态。
1   指令正常地被处理,初始化动作完成,正确地响应指令
2   指令正常地被处理,完成指令的相关操作,正确地响应指令
3   指令正常地被处理,进一步要求相关的信息以完成指令操作,正确地响应指令
4   暂时性的错误处理消息
5   永久性的错误处理消息

      (二)第二码数字代表可能发生的错误形式
0   语法铕误
1   针对要求所响应的消息
2   数据与控制联机的参照响应
3   登录与账号相关的响应消息
4   未定义
5   FTP文件系统的状态响应消息

         (三)3个号码组成的响应码,代表指令被处理完成时的消息。
110   重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm,其中yyyy是用户进程数据流标记,mmmm是服务器标记。
120   服务在nnn分钟内准备好
125   数据连接已打开,准备传送
150   文件状态良好,打开数据连接
200   命令成功
202   命令未实现
211   系统状态或系统帮助响应
212   目录状态
213   文件状态
214   帮助信息,信息仅对人类用户有用
215   名字系统类型
220   对新用户服务准备好
221   服务关闭控制连接,可以退出登录
225   数据连接打开,无传输正在进行
226   关闭数据连接,请求的文件x作成功
227   进入被动模式
230   用户登录
250   请求的文件x作完成
257   创建"PATHNAME"
331   用户名正确,需要口令
332   登录时需要帐户信息
350   请求的文件x作需要进一步命令
421   不能提供服务,关闭控制连接
425   不能打开数据连接
426   关闭连接,中止传输
450   请求的文件x作未执行
451   中止请求的x作:有本地错误
452   未执行请求的x作:系统存储空间不足
500   格式错误,命令不可识别
501   参数语法错误
502   命令未实现
503   命令顺序错误
504   此参数下的命令功能未实现
530   未登录
532   存储文件需要帐户信息
550   未执行请求的x作
551   请求x作中止:页类型未知
552   请求的文件x作中止,存储分配溢出
553   未执行请求的x作:文件名不合法


0 0
原创粉丝点击