3.1.1 FTP概述
FTP服务一般运行在20和21这两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向FTP服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功地传输,但因为控制会话会被防火墙断开;传输会产生一些错误。
1. 背景
一般来说,使用互联网的首要目的就是为了实现信息共享,文件传输是信息共享非常重要的一个内容。但是Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,并且连接在Internet上的计算机有上千万台,而且这些计算机可能运行不同的操作系统,例如有运行Unix的服务器,也有运行 DOS、Windows的PC机和运行MacOS的苹果机等。所以各种操作系统之间的文件交流存在问题,很有必要建立一个统一的文件传输协议,这就是FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其他的用户环境中获得文件了。
与大多数Internet 服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
2. 下载和上传
在使用FTP的过程中,经常遇到下载(Download)和上传(Upload)这两个概念。下载文件就是从远程主机拷贝文件至自己的计算机上;上传文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
3. 登录和匿名
使用FTP时,必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有账号。匿名FTP就是为解决这个问题而产生的。
匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员可以建立一个特殊的用户ID,名为anonymous,Internet上的任何人在任何地方都可使用该用户ID。
4. 目标
FTP实现的目标如下:
促进文件的共享(计算机程序或数据)。
鼓励间接或者隐式地使用远程计算机。
向用户屏蔽不同主机中各种文件存储系统(File System)的细节。
可靠和高效的传输数据。
5. 缺点
FTP也有缺点,概括如下:
密码和文件内容都使用明文传输,可能产生不希望发生的窃听。
因为必须开放一个随机的端口以创建连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题,通过使用被动模式的FTP,得到了很大解决。
服务器可能会被告知连接一个第三方计算机的保留端口。
此方式在需要传输数量很多的小文件时性能不好。