FTP(File Transfer Protocol),主要功能是完成从一个系统到另一个系统完整的档案拷贝。FTP协定要用到两个TCP连线,一个是控制连线,用来在FTP客户端与伺服器之间传递命令;另一个是数据连线,用来上传或下载数据。
基本介绍
- 中文名:FTP空间
- 外文名:File Transfer Protocol
- 主要功能:从一个系统到另一个系统档案拷贝
- 用到:两个TCP连线
- 连线过程:三步
连线过程
第一步:对于一个FTP伺服器来说他会自动对默认连线埠进行监听(默认连线埠是可以修改的,一般为21),当某个客户机向这个专用连线埠请求建立连线时便激活了伺服器上的控制进程,通过这个控制进程进行用户名密码及许可权的验证。
第二步:当验证完成后伺服器和客户机之间还会建立另外一条专有连线进行档案数据的传输。
第三步:在传输过程中伺服器上的控制进程将一直工作,并不断发出指令操作整个FTP传输,传输完毕后控制进程传送给客户机结束指令。
工作模式
FTP自身有两种工作模式,也就是说在第二步中提示“建立另外一条专有数据连线方式”的方法有两种。习惯上我们称为主动模式和被动模式:PORT方式和PASV方式。
PORT(主动)方式的连线过程是:客户端向伺服器的FTP连线埠(默认是21)传送连线请求,伺服器接受连线,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉伺服器:“我打开了XXXX连线埠,你过来连线我”。于是伺服器从20连线埠向客户端的XXXX连线埠传送连线请求,建立一条数据链路来传送数据,有时候这种连线往往被客户端防火墙当作一种外部攻击而据之在外。
PASV(被动)方式的连线过程是:客户端向伺服器的FTP连线埠(默认是21)传送连线请求,伺服器接受连线,建立一条命令链路。当需要传送数据时,伺服器在命令链路上用PASV命令告诉客户端:“我打开了XXXX连线埠,你过来连线我”。于是客户端向伺服器的XXXX连线埠传送连线请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连线方法是一样的,而数据链路的建立方法就完全不同了。在建立数据连线的过程中,客户控制进程反客为主,成为连线的接受者,而伺服器数据传输进程成了连线的请求者。作为新的子进程,伺服器传输进程可以申请一个新的连线埠号建立关联(一般是20连线埠),但是它向哪个客户端口传送连线请求呢?因为客户是没有公认连线埠的,这时就要用到控制连线。客户控制进程通过控制连线告诉伺服器控制进程自己的数据连线连线埠号;伺服器控制进程将它转告自己的数据传输进程,伺服器便利用这个连线埠与客户建立数据连线。
匿名FTP
FTP的全称是File Transfer Protocol(档案传输协定),顾名思义,就是专门用来传输档案的协定。FTP的主要作用,就是让用户连线上一个远程计算机(这些计算机上运行着 FTP伺服器程式)察看远程计算机有哪些档案,然后把档案从远程计算机上拷到本地计算机,或把本地计算机的档案送到远程计算机去。
其实 早期在Internet上传输档案,并不是一件容易的事,我们知道 Internet是一个非常複杂的计算机环境,有PC、工作站、MAC、伺服器、大型机等等,而这些计算机可能运行不同的作业系统,有Unix、Dos、 Windows、MacOS等等,各种作业系统之间的档案交流,需要建立一个统一的档案传输协定,这就是所谓的FTP。虽然基于不同的作业系统有不同的 FTP应用程式,而所有这些应用程式都遵守同一种协定,这样用户就可以把自己的档案传送给别人,或者从其它的用户环境中获得档案。
与大 多数Internet服务一样,FTP也是一个客户机/伺服器系统(C/S)。用户通过一个支持FTP协定的客户机程式,连线到远程主机上的FTP伺服器 程式。用户通过客户机程式向伺服器程式发出命令,伺服器程式执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求伺服器向用户传送某一个档案,伺服器会回响这条命令,将指定档案送至用户的机器上。客户机程式代表用户接收到这个档案,将其存放在用户指定目录中。FTP客户程式 有字元界面和图形界面两种。字元界面的FTP的命令複杂、繁多。图形界面的FTP客户程式,操作上要简洁方便的多。
在FTP的使用当 中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"档案就是从远程主机拷贝档案至自己的计算机上;"上载"文 件就是将档案从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程式向(从)远程主机上载、下载档案。
在ftp的使用过程中,必须首先登录,在远程主机上获得相应的许可权以后,方可上传或下载档案。也就是说,要想同哪一台计算机传送档案,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送档案。这种情况违背了Internet的开放性,Internet上的FTP主机何止千 万,不可能要求每个用户在每一台主机上都拥有帐号。因此就衍生出了匿名FTP。