FTP协议
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105895775
学习课程:《2019王道考研计算机网络》
学习目的:利用最省时间的方法学习考研面试中的计算机网络。
1、FTP协议的功能
- 文件传输协议( File Transfer Protocol, FTP)是因特网上使用得最广泛的
文件传输协议。
- FTP提供
交互式的访问
,允许客户指明文件的类型与格式,并允许文件具有存取权限
。 - 它屏蔽了各计算机系统的细节,因而适合于在异构网络中的
任意计算机之间传送文件
。
FTP提供以下功能:
①提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
②以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
。
③以匿名FTP
的方式提供公用文件共享
的能力。
2、FTP工作原理
- FTP采用客户/服务器(C/S)的工作方式,它使用TCP可靠的传输服务。
- 一个FTP服务器进程可同时为多个客户进程提供服务。
- 依照FTP协议提供服务,进行文件传送的计算机就是
FTP服务器
。 - 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是
FTP客户端
。 FTP的服务器进程
由两大部分组成:
一个主进程,负责接收新的请求;
若干从属进程,负责处理单个请求。
其工作步骤如下:
①打开熟知端口21 (控制端口),使客户进程能够连接上。
②等待客户进程发连接请求。
③启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
④回到等待状态,继续接收其他客户进程的请求。
- FTP服务器必须在整个会话期间保留用户的状态信息。
特别是服务器必须把指定的用户账户与控制连接联系起来,服务器必须追踪用户在远程目录树上的当前位置。
3、控制连接和数据连接
- FTP在工作时使用两个
并行的TCP连接
:
一个是控制连接(端口号21)
,
一个是数据连接(端口号20)
。 - 使用两个不同的端口号可使协议更加简单和更容易实现。
(1)控制连接
-
服务器监听21号端口,等待客户连接,建立在这个端口上的连接称为控制连接,
控制连接用来传输控制信息(如连接请求、传送请求等)
,并且控制信息都以7位ASCII格式传送
。 -
FTP客户发出的
传送请求
,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。
-
在传输文件时还可以使用控制连接(如客户在传输中途发一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态。
(2)数据连接
-
服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建“数据传送进程”和“数据连接”。
-
数据连接
用来连接客户端和服务器端的数据传送进程
,数据传送进程
实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
- 因为FTP使用了一个分离的控制连接,所以
也称FTP的控制信息是带外(Out-of-band) 传送的。
- 使用FTP时,
若要修改服务器上的文件,则需要先将此文件传送到本地主机,然后再将修改后的文件副本传送到原服务器
。 - 网络文件系统(NFS)允许进程打开一个远程文件,并在该文件的某个特定位置开始读写数据。这样,NFS可使用户复制一个大文件中的一个很小的片段,而不需要复制整个大文件。