将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中,是一项基本的网络应用,即文件传送。
文件传送协议FTP(File Transfer Protocal)是因特网上使用得最广泛的文件传送协议。
- FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。
- FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间的传送文件。
- 以用户权限管理的方式使用户可对远程FTP服务器上的文件进行管理。
- 以匿名FTP(用户ID为anonymous)的方式提供公用文件共享的功能。
FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干从属进程,负责处理单个请求。
FTP客户和服务器之间要建立以下两个并行的TCP连接:
- 一个是控制连接,在整个会话期间一直保持打开,用于传送FTP相关控制命令。
- 另一个是数据连接,用于文件传输,在每次文件传输时才建立,传输结束就关闭。
默认情况下,FTP使用TCP 21端口进行控制连接,TCP 20端口进行数据连接。
但是,是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定。
客户端默认使用端口20与服务器建立数据连接(×)←客户端口的端口号是客户进程自己提供的。