FTP协议详细解析

FTP的工做原理

FTP(File Transfer Protocol)协议,文件传输协议。提供交互式的访问,对传输文件的格式和类型有分类,容许文件具备存取权限。适合异构网络任意计算机的传送。web

FTP有如下基本功能
1.提供不一样种类主机系统(硬,软件体系等均可以不一样)之间的文件传输能力。
2.以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力。
3.以匿名FTP的方式提供公用文件共享的能力。服务器

FTP采用C/S架构,使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务,FTP服务器检查有两大部分组成:一个主进程,负责接收新的请求,另外有若干的从属进程,负责处理单个请求,工做步骤以下:
1.打开熟知端口21(控制端口),使客户进程可以链接上,
2.等待客户进程发连接请求。
3.启动从属进程来处理客户进程发来的请求。主进程与从进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
4.回到等待状态,继续接收其余客户进程的请求。网络

控制链接和数据链接

FTP在工做时使用两个并行的TCP连接,一个是控制链接(端口号21),一个是数据链接(端口号20)。使用两个不一样的端口号可以使协议更加简单和更容易实现。
在这里插入图片描述架构

1.控制链接
服务器在监听21好端口,等待客户链接,创建在这个端口上的了链接称为控制链接,控制链接用来传输控制信息(如链接请求,传送请求等)。而且控制信息都是以7位ASCII格式传送的。控制链接一直保持打开状态。并发

2.数据链接
服务器端控制进程在接收到传输请求以后建立“数据传送进程”和“数据链接”,数据链接用来链接客户端和服务期端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送链接”并结束运行。
由于FTP使用了一个分离的控制链接,因此也称FTP的控制信息是带外(out-of-band)传送的。修改文件须要将此文件传送本地进行修改在进行覆盖。
网络文件系统NFS容许进程打开一个远程文件,并在该文件的某个特定位置开始读写数据,这样,NFS可以使用用户复制一个大文件中的一个很小的片断,而不是须要复制整个大文件。svg