您的位置:首页 > 编程语言 > PHP开发

FTP协议过程分析

2015-10-24 11:40 429 查看
FTP连接过程分析
建立TCP连接
 客户呼叫服务器21端口,客户端自已选一个端口如:3963

 三次握手建立TCP连接

服务器发回FTP欢迎信息
 220  Welcome to HUST SOUTH 1 Bulding Kaka FTP service.

客户端登录
 端口:3963--21 客户--服务器
 首先客户端发送用户名,
  55 53-45 52 20 31 0D 0A

  USER 1

     USER是FTP命令,1为用户名,命令和用户名之间用0x20(空格)隔开,用户名最后以0x0d,0x0a(回车,换行)结尾。

 FTP服务器回复
  331 Please specify the password.//关键是331 提示信息可不一样。

  客户端发送密码
  PASS 1

    服务器效验用户名和密码
 1、用户名和密码正确服务器回复
  230 Login successful. Have fun... 

 2、用户名或密码错误回复
  530 Login incorrect.
服务器设置  

 确认服务器上运行的操作系统
 端口:3963--21 客户--服务器
 客户端发送
  53 59-53 54 0D 0A           

  SYST  //最后以0x0d,0x0a(回车,换行)结尾
 服务器回复
  215 UNIX Type: L8

 设置传输模式
 客户端发送
 54 59-50 45 20 41 0D 0A

 TYPE A

 服务器回复信息:

 200 Type set to ASCII

数据传输
 客户发送FTP命令
 50 41-53 56 0D 0A

 PASV

 服务器发回FTP信息:

 227 Entering Passive Mode (211,69,207,115,5,203).

 服务器这里会被动打开一个端口 5*256+203=1483这个端口来做为数据传输。
 客户端接下来就打开一个端口(例如:3964),客户端3964---服务器1483端口,这个连接用来以后传输数据文件或目录。
 

 客户发送FTP命令 客户端3963---服务器21端口
  LIST -al  //显示目录
 服务器回复
  150 Here comes the directory listing.

 服务器回复 客户端3964---服务器1483端口
  目录数据,基于TCP流,UNIX目录可直接显示

退出
 客户发送FTP命令
 QUIT

 服务器发回FTP信息:

 221 Goodbye.

FTP 返回说明

110 重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm,其中yyyy是用户进程数据流标记,mmmm是服务器标记。
120 服务在nnn分钟内准备好
125 数据连接已打开,准备传送
150 文件状态良好,打开数据连接
200 命令成功
202 命令未实现
211 系统状态或系统帮助响应

212 目录状态
213 文件状态

214 帮助信息,信息仅对人类用户有用
215 名字系统类型
220 对新用户服务准备好
221 服务关闭控制连接,可以退出登录
225 数据连接打开,无传输正在进行
226 关闭数据连接,请求的文件操作成功
227 进入被动模式
230 用户登录
250 请求的文件操作完成
257 创建"PATHNAME"

331 用户名正确,需要口令
332 登录时需要帐户信息
350 请求的文件操作需要进一步命令
421 不能提供服务,关闭控制连接
425 不能打开数据连接
426 关闭连接,中止传输
450 请求的文件操作未执行
451 中止请求的操作:有本地错误
452 未执行请求的操作:系统存储空间不足
500 格式错误,命令不可识别
501 参数语法错误
502 命令未实现 
503 命令顺序错误
504 此参数下的命令功能未实现
530 未登录
532 存储文件需要帐户信息
550 未执行请求的操作
551 请求操作中止:页类型未知
552 请求的文件操作中止,存储分配溢出
553 未执行请求的操作:文件名不合法
 
命令和服务器响应序列
 建立连接

         120, 220, 220, 421

 登录

 USER

     230, 530, 500, 501, 421, 331, 332

        PASS

     230,202,530,500, 501, 503, 421,332

        ACCT

     230,202,530,500, 501, 503, 421

        CWD

     250,500, 501, 502, 421, 530, 550

        CDUP

     200,500, 501, 502, 421, 530, 550

 SMNT

     202, 250, 500, 501, 502, 421, 530, 550

 退出登录

        REIN

     120, 220, 220, 421, 500, 502

 QUIT

     221, 500

 传输参数

 PORT

     200, 500, 501, 421, 530

 PASV

     227, 500, 501, 502, 421, 530

 MODE

     200, 500, 501, 504, 421, 530

 TYPE

     200, 500, 501, 504, 421, 530

 STRU

     200, 500, 501, 504, 421, 530

 文件操作命令

 ALLO

     200, 202, 500, 501, 504, 421, 530

 REST

     500, 501, 502, 421, 530, 350

 STOR

     125, 150, (110)

     226, 250, 425, 426, 451, 551, 552, 532, 450, 452, 553, 500, 501, 421, 530

 STOU

     125, 150  (110)

     226, 250, 425, 426, 451, 551, 552, 532, 450, 452, 553, 500, 501, 421, 530

 RETR

     125, 150

  (110)

     226, 250, 425, 426, 451, 450, 550, 500, 501, 421, 530

 LIST

     125, 150, 226, 250, 425, 426, 451, 450, 500, 501, 502, 421, 530

 NLST

     125, 150, 226, 250, 425, 426, 451, 450, 500, 501, 502, 421, 530

 APPE

     125, 150,

     (110)

     226, 250, 425, 426, 451, 551, 552,532, 450, 550, 452, 553, 500, 501, 502, 421, 530

 RNFR

     450, 550, 500, 501, 502, 421, 530, 350

 RNTO

     250, 532, 553, 500, 501, 502, 503, 421, 530

 DELE

    250,450, 550,500, 501, 502, 421, 530

 RMD

    250, 500, 501, 502, 421, 530, 550

 MKD

    257, 500, 501, 502, 421, 530, 550

 PWD

    257, 500, 501, 502, 421, 550

 ABOR

    225, 226, 500, 501, 502, 421

 获得信息命令

 SYST

    215, 500, 501, 502, 421

 STAT

    211, 212, 213, 450, 500, 501, 502, 421, 530

 HELP

    211, 214, 500, 501, 502, 421

 其它命令

 SITE

  200, 202, 500, 501, 530

 NOOP

  200, 500 421
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: