- 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
6. 状态图
下面是一个简单实现的FTP的状态图,只用到响应码的首位。对于所有命令或命令序列有三种可能性:成功(S),失败(F)或错误(E)。在状态图中B代表开始,W代表等待响应。下面我们给出一个总图,总图可以包括的命令有:
ABOR,ALLO,DELE,CWD,CDUP,SMNT,HELP,MODE,NOOP,PASV,QUIT,SITE,PORT,SYST,STAT,RMD,MKD,PWD,STRU和TYPE
而下图可以包括的命令有:APPE,LIST,NLST,REIN,RETR,STOR和STOU。
第一幅图和第二幅图差别不大,第一幅图中如果出现了100系列响应会是错误,而在第二幅图中不会。下面是重命名过程:
下面是重新启动命令,其中cmd代表APPE,STOR或RETR。
下图代表登录过程:
7. 典型FTP过程
假设位于U的用户希望从S上(下)传文件,通常用户需要使用用户FTP进程和服务器通信,下面就是一个例子:
用户发出的本地命令 |
|
ftp (host) multics<CR> |
|
用户名 Doe <CR> need password<CRLF>. | USER Doe<CRLF>----> <---- 331 用户名正确 |
口令 <CR> |
|
retrieve (local type) ASCII<CR> (local pathname) test 1 <CR> (for. pathname) test.pl1<CR> |
|
文件传输中 | |
| |
type Image<CR> |
|
store (local type) image<CR> (local pathname) file dump<CR> (for.pathname) >udd>cn>fd<CR> |
|
中止 |
|
服务器关闭所有连接 |
FTP控制连接通过用户进程端口U和服务器端口L建立,这里默认的L=21。