FTP的两种连接方式和两种传输方式

   FTP的两种连接方式:PORT模式和PASV模式,中文意思为主动式和被动式。

    PORT(主动)模式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
    工作原理:当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了**端口,你过来连接我”。当服务端收到这个Port命令后就会向客户端打开的那个端口发送连接请求,建立一条数据链路来传送数据。

    PASV(被动)模式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
    工作原理:需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了**端口,你过来连接我”。当客户端收到这个信息后,就可以向服务端的端口发送连接请求,建立一条数据链路来传送数据。

    FTP的两种传输方式:ASCII 和 BINARY

    ASCII模式和Binary模式的区别是回车换行的处理,Binary模式不对数据进行任何处理,ASCII模式将回车换行转换为本机的回车字符,比如:UNIX下是\n,Windows下是\r\n,Mac下是\r。
    ASCII模式下会转换文件,不能说是不同系统对回车换行解释不同,而是不同的系统有不同的行结束符。UNIX系统下行结束符是一个字节,即十六进制的0A,而Windows的系统是两个字节,即十六进制的0D0A,所以当你用ASCII方式从UNIX的FTP Server下载文件到Windows系统上时(不管是二进制或者文本文件),每检测到一个字节是0A,就会自动插入一个0D,所以如果你的文件是二进制文件,比如可执行文件、压缩包什么的,就肯定不能用了。如果你的文件就是UNIX下的文本文件,你用ASCII模式是正确的,要是误用了Binary模式,你在Windows上看这个文件是没有换行的,里面是一个个的黑方块。
    一般来说,我们最好都用Binary方式,这样可以保证不出错。如果有文本格式转换的问题,即UNIX格式的文本和DOS格式的文本之间的转换,有很多工具可以做的,不要在ftp传输的时候冒险,尤其是你如果对这些东西不是非常清楚的话。

    如何设置FTP的传输方式呢?
    在ftp>提示符下输入ascii即转换到ACSII方式,输入bin,即转换到Binary方式.
ftp> ascii
200 Type set to A.

ftp> bin
200 Type set to I.


猜你喜欢

转载自hanover.iteye.com/blog/674190