在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。
FTP地址如下:
ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名
上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。如以下地址都是有效FTP地址:
ftp://foolish.6600.org
ftp://list:[email protected]
ftp://list:[email protected]:2003
ftp://list:[email protected]:2003/soft/list.txt
=============================================================================
1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印符)。
在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,
2. 二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。
字符转义与否的区别
FTP的工作方式
一种方式叫做Standard (也就是 PORT方式,主动方式),
一种是 Passive (也就是PASV,被动方式)。
Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
两种方式的工作原理
Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。
=============================================================================
FTP:屏幕信息举例
1、用户要用FTP和远地主机(网络信息中心NIC上的主机)建立连接。
2、本地FTP发出的连接成功信息。
3、从远地服务器返回的信息,220表示“服务就绪”。
4、本地FTP提示用户键入名字。用户键入的名字表示“匿名”。在internet上有许多文件免费向公众提供。用户不需要键入自己的真是名字而只需键入anonymous即可。
5、数字331表示“用户名正确”,需要口令。
6、本地FTP提示用户键入口令。用户这时可键入guest作为匿名的口令,也可以键入自己的电子邮件地址,即耶鲁大学数学系名为xyz的主机上的abc。
7、数字230表示用户已经注册完毕。
8、“ftp> ”是FTP提示信息。用户键入的是将目录改变为包含RFC文件的目录。
9、字符CWD是FTP的标准命令,代表Change Working Directory。
10、用户要求将名为rfc1261.txt的文件复制到本地主机上,并改名为nicinfo。
11、字符PORT是FTP的标准命令,表示要建立数据连接。200表示“命令正确”。
12、数字150表示“文件状态正确,即将建立数据连接”。
13、数字226是“释放数据连接”。现在一个新的本地文件已产生。
14、用户键入退出命令。
15、表明FTP工作结束。
110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm where yyyy is User-process data stream marker, and mmmm server 's equivalent marker (note the spaces between markers and "= ").
120 Service ready in nnn minutes.
125 Data connection already open; transfer starting.
150 File status okay; about to open data connection.
200 Command okay.
202 Command not implemented, superfluous at this site.
211 System status, or system help reply.
212 Directory status.
213 File status.
214 Help message.On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user.
215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.
220 Service ready for new user.
221 Service closing control connection.
225 Data connection open; no transfer in progress.
226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed. Logged out if appropriate.
250 Requested file action okay, completed.
257 "PATHNAME " created.
331 User name okay, need password.
332 Need account for login.
350 Requested file action pending further information
421 Service not available, closing control connection.This may be a reply to any command if the service knows it must shut down.
425 Can 't open data connection.
426 Connection closed; transfer aborted.
450 Requested file action not taken.
451 Requested action aborted. Local error in processing.
452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy).
500 Syntax error, command unrecognized. This may include errors such as command line too long.
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
530 Not logged in.
532 Need account for storing files.
550 Requested action not taken. File unavailable (e.g., file not found, no access).
551 Requested action aborted. Page type unknown.
552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
553 Requested action not taken. File name not allowed
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
未登录(用户名或密码错误,1、FTP密码修改了?2、用户名/密码输入错误?先仔细检查有无输入错误 如复制的时候误复制了空格!!)
532
存储文件需要帐户信息
550
未执行请求的操作
551
请求操作中止:页类型未知
552
请求的文件操作中止,存储分配溢出
553
未执行请求的操作:文件名不合法