网络中经常将文件从一台计算机中复制到另一台可能很远的计算机中,在此过程中会有很多问题:
1 计算机的存储格式不同
2 文件的目录结构不同和文件命的规定不同
3 对于相同的文件存取功能,操作系统指令不同
4 访问控制柜方法不同
文件传输协议FTP只提供文件传输的基本服务,他使用TCP可靠的运输服务,FTP的主要功能是减少或消除,由于操作系统不同造成的文件的不兼容性
FTP使用客户服务器方式,服务器可以同时为多个客户进程服务,FTP的服务进程有主进程(接收新的请求)和从属进程(处理单个请求).步骤如下
1 客户端请求打开熟知端口(21)连接服务器
2 服务器打开熟知端口(21)使客户进程能够连接
3 等待客户进程发出连接请求
4 启动从属进程来处理客户进程发出的请求。从属进程对客户的请求处理完毕后关闭,但 从属进程可能在运行期间还创建其他的子进程
5 回到等待状态,继续接受其他客户进程发来的请求,主进程与从属进程的处理是并行的进行
在进行文件传输时FTP的客户和服务器之间,要建立两个并行的TCP连接:“控制连接”和“数据连接‘。控制连接在整个回话期间一直保持打开,FTP客户所发出的传送请求
通过控制连接发送给服务器端的控制进程,但控制进程并不用来传送文件,实际用于传送文件的是”数据连接’,服务器的控制进程是在接收到FTP客户发送的文件传输请求
后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务端的数据传送进程.数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。由于
FTP使用一个分离的控制连接因此FTP控制连接是带外传送的。
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口号21,同时还要告诉服务器进程自己的熟知端口(20)与客户进程提供的端口号码进行
连接,由于服务器进程用自己的两个不同的端口号 ,所以数据连接与控制连接不会发生混乱.
使用两个独立的连接的主要好处是是协议更加简单和更容易实现,同时在传输文件时还可以利用控制连接(例如客户发送请求终止传输)
FTP并非对所有文件传输都是最佳的没,比如计算机A上运行的程序要在远地计算机B的一个很大的文件末尾添加一行信息,若使用FTP则应先将此文件从B传送到A上,添加
信息后在传送到B,这样花了很多时间.
然而网络问价系统NFS则采用另一种思路,NFS允许应用进程打开一个远地文件,并且能在该文件的某一特定位置上进行读写数据,这样NFS可以是用户只复制一个大文件
中的很小一个片段而不需要复制整个文件。对于上述例子计算机A中的NFS客户软件,把要添加的数据和文件后面写数据的请求一起发送到远地的计算机B中的NFS服务器
NFS服务器更新文件后返回应答信息,在网络上传送的只是少量的修改数据。