简介
FTP协议是应用层协议。
FTP协议是基于客户端/服务器模式的服务系统,它由客户端软件、服务器软件和FTP通信协议3部分组成。
- FTP客户端软件运行在用户计算机上,在用户装入FTP客户端软件后,便可以通过FTP内部命令与远程FTP服务器服务器采用FTP通信协议建立连接或文件传送。
- FTP服务器软件运行在远程主机上,并设置一个名为anonymous的公众用户账号,向公众开放。
文件传输协议用来在计算机之间传输文件。由于Internet是一座装满了各种计算机文件的宝库,其中有免费和共享的软件、各种图片、声音、图像和动画文件,还有书籍和参考资料等,如果需要将它们下载到你的计算机上,最主要的方式是通过文件传输协议来实现。
通常,一个用户需要在FTP服务器中进行注册,即建立用户账号,在拥有合法的登录用户名和密码后,才有可能进行有效的FTP连接和登录。对于Internet中成千上万个FTP服务器来说,这就给提供FTP服务的管理员带来了麻烦,即需要为每一个使用FTP的用户提供一个账号,这显然是不现实的。
实际上,Internet的FTP服务是一种匿名FTP服务,它设置了一个特殊的用户名——anonymous,供公众使用,任何用户都可以使用这个用户名与提供这种匿名FTP服务的主机建立连接,并共享这个主机对公众开放的资源。
匿名FTP的用户名是anonymous,密码通常是guest或者是使用者的E-mail地址。当用户登录到匿名FTP服务器后,其工作方式与常规FTP相同。
处于安全的目的,大多数FTP服务器只允许下载文件,不允许上传文件。即用户只能从匿名FTP服务器复制所需的文件,而不能将文件复制到匿名FTP服务器上。
过程
FTP在客户端与服务器的内部建立两条TCP连接
- 一条是控制连接,主要用于传输命令和参数(端口号为21);
- 另一条是数据连接,主要用于传送文件(端口号为20)。
FTP服务器不断在21号端口侦听用户的连接请求,当用户使用用户名anonymous和密码guest或者E-mail地址进行登录时,用户即发出连接请求,这样控制连接便建立起来。此时,用户名anonymous和密码guest通过控制连接发送给服务器,服务器接收到这个请求后,进行识别,然后向客户回送确认或拒绝应答信息。
用户看到登陆成功的信息后,便可以发出文件传输命令;服务器从控制连接上接收到文件名和传输命令,便在20号端口发起数据连接,并在这个连接上将文件名所指明的文件传输给用户。
只要用户不使用close或者其他命令关闭连接,便可以继续传输其他文件。